diff --git a/Makefile b/Makefile index d513cfe1b6..11a47584fb 100644 --- a/Makefile +++ b/Makefile @@ -126,6 +126,20 @@ show_current_branches: $(foreach CAL_BRANCH,$(CALICO_CLOUD_BRANCHES),$(info * $(CAL_BRANCH))) @true +scripts/versions/format-versions: scripts/versions/go.* scripts/versions/main.go +ifdef LOCAL_BUILD + make -C scripts/versions +else + docker run --rm --net=host \ + -e LOCAL_USER_ID=$(LOCAL_USER_ID) \ + -e GOOS=$(shell go env GOOS) \ + -e GOARCH=$(shell go env GOARCH) \ + -v $(CURDIR):/go/src/$(PACKAGE_NAME):rw \ + -v $(CURDIR)/.go-pkg-cache:/go/pkg:rw \ + -w /go/src/$(PACKAGE_NAME) \ + $(CALICO_BUILD) make -C scripts/versions +endif + .PHONY: build-operator-reference build-operator-reference: @mkdir -p .go-pkg-cache && \ @@ -199,11 +213,26 @@ run-update-cloud-image-list: # e.g. for new versions of v3.18.0-2, DOCS_VERSION_STREAM=3.18-2 # If the version to updates is the latest version for the product, specify IS_LATEST=true # e.g. if 3,18,1 is the latest version, IS_LATEST=true -version/autogen: + +VERSION_ALL_VERSIONS=$(foreach version,$(wildcard calico-enterprise_versioned_docs/*),version/autogen/$(version:calico-enterprise_versioned_docs/version-%=%)) + +# This target updates *the current versions* based on what is present in calico-private. It will +# not (to my knowledge) add a new version which has not yet been added to the docs. +version/updateall: $(VERSION_ALL_VERSIONS) + $(info [info] All current versions have been updated, but please check `git diff` to ensure the values are correct!) + +version/autogen/%: + $(info Building $@) + @$(MAKE) --no-print-directory version/autogen \ + PRODUCT=calico-enterprise \ + DOCS_VERSION_STREAM=$* \ + VERSION=$(shell jq -r '.[0].title' calico-enterprise_versioned_docs/version-$*/releases.json) + +version/autogen: scripts/versions/format-versions $(if $(GITHUB_TOKEN),,$(error GITHUB_TOKEN is not set or empty, but is required)) $(if $(PRODUCT),,$(error PRODUCT is not set or empty, but is required)) $(if $(VERSION),,$(error VERSION is not set or empty, but is required)) - ./scripts/update-component-versions.sh + @./scripts/update-component-versions.sh # Call the github API. $(1) is the http method type for the https request, $(2) is the repo slug, and is $(3) is for json # data (if omitted then no data is set for the request). If GITHUB_API_EXIT_ON_FAILURE is set then the macro exits with 1 diff --git a/calico-cloud/reference/installation/_api.mdx b/calico-cloud/reference/installation/_api.mdx index ba0edb1320..0f90b1e805 100644 --- a/calico-cloud/reference/installation/_api.mdx +++ b/calico-cloud/reference/installation/_api.mdx @@ -146,7 +146,7 @@ APIServerDeployment
-APIServerDeployment configures the calico-apiserver Deployment. If +APIServerDeployment configures the calico-apiserver (or tigera-apiserver in Enterprise) Deployment. If used in conjunction with ControlPlaneNodeSelector or ControlPlaneTolerations, then these overrides take precedence.
@@ -4693,7 +4693,7 @@ APIServerDeployment-APIServerDeployment configures the calico-apiserver Deployment. If +APIServerDeployment configures the calico-apiserver (or tigera-apiserver in Enterprise) Deployment. If used in conjunction with ControlPlaneNodeSelector or ControlPlaneTolerations, then these overrides take precedence.
diff --git a/calico-enterprise_versioned_docs/version-3.19-2/releases.json b/calico-enterprise_versioned_docs/version-3.19-2/releases.json index c977f9a465..6da522fcd6 100644 --- a/calico-enterprise_versioned_docs/version-3.19-2/releases.json +++ b/calico-enterprise_versioned_docs/version-3.19-2/releases.json @@ -2,8 +2,8 @@ { "title": "v3.19.7", "tigera-operator": { - "image": "tigera/operator", "version": "v1.34.12", + "image": "tigera/operator", "registry": "quay.io" }, "calico": { @@ -11,242 +11,242 @@ "archive_path": "archive" }, "components": { - "cnx-manager": { - "image": "tigera/cnx-manager", - "version": "v3.19.7" + "alertmanager": { + "version": "v3.19.7", + "image": "tigera/alertmanager" }, - "voltron": { - "image": "tigera/voltron", - "version": "v3.19.7" + "calicoctl": { + "version": "v3.19.7", + "image": "tigera/calicoctl" }, - "guardian": { - "image": "tigera/guardian", - "version": "v3.19.7" + "calicoq": { + "version": "v3.19.7", + "image": "tigera/calicoq" }, "cnx-apiserver": { - "image": "tigera/cnx-apiserver", - "version": "v3.19.7" - }, - "cnx-queryserver": { - "image": "tigera/cnx-queryserver", - "version": "v3.19.7" + "version": "v3.19.7", + "image": "tigera/cnx-apiserver" }, "cnx-kube-controllers": { - "image": "tigera/kube-controllers", - "version": "v3.19.7" - }, - "calicoq": { - "image": "tigera/calicoq", - "version": "v3.19.7" - }, - "typha": { - "image": "tigera/typha", - "version": "v3.19.7" + "version": "v3.19.7", + "image": "tigera/kube-controllers" }, - "calicoctl": { - "image": "tigera/calicoctl", - "version": "v3.19.7" + "cnx-manager": { + "version": "v3.19.7", + "image": "tigera/cnx-manager" }, "cnx-node": { - "image": "tigera/cnx-node", - "version": "v3.19.7" + "version": "v3.19.7", + "image": "tigera/cnx-node" }, "cnx-node-windows": { - "image": "tigera/cnx-node-windows", - "version": "v3.19.7" + "version": "v3.19.7", + "image": "tigera/cnx-node-windows" }, - "dikastes": { - "image": "tigera/dikastes", - "version": "v3.19.7" + "cnx-queryserver": { + "version": "v3.19.7", + "image": "tigera/cnx-queryserver" }, - "dex": { - "image": "tigera/dex", - "version": "v3.19.7" + "compliance-benchmarker": { + "version": "v3.19.7", + "image": "tigera/compliance-benchmarker" }, - "fluentd": { - "image": "tigera/fluentd", - "version": "v3.19.7" + "compliance-controller": { + "version": "v3.19.7", + "image": "tigera/compliance-controller" }, - "fluentd-windows": { - "image": "tigera/fluentd-windows", - "version": "v3.19.7" + "compliance-reporter": { + "version": "v3.19.7", + "image": "tigera/compliance-reporter" }, - "es-proxy": { - "image": "tigera/es-proxy", - "version": "v3.19.7" + "compliance-server": { + "version": "v3.19.7", + "image": "tigera/compliance-server" }, - "eck-kibana": { - "version": "7.17.28" + "compliance-snapshotter": { + "version": "v3.19.7", + "image": "tigera/compliance-snapshotter" }, - "kibana": { - "image": "tigera/kibana", - "version": "v3.19.7" + "coreos-alertmanager": { + "version": "v0.28.1" }, - "eck-elasticsearch": { - "version": "7.17.28" + "coreos-config-reloader": { + "version": "v0.76.2" }, - "elasticsearch": { - "image": "tigera/elasticsearch", - "version": "v3.19.7" + "coreos-prometheus": { + "version": "v2.55.1" }, - "elastic-tsee-installer": { - "image": "tigera/intrusion-detection-job-installer", - "version": "v3.19.7" + "coreos-prometheus-operator": { + "version": "v0.76.2" }, - "intrusion-detection-controller": { - "image": "tigera/intrusion-detection-controller", - "version": "v3.19.7" + "csi": { + "version": "v3.19.7", + "image": "tigera/csi" }, - "compliance-controller": { - "image": "tigera/compliance-controller", - "version": "v3.19.7" + "csi-node-driver-registrar": { + "version": "v3.19.7", + "image": "tigera/node-driver-registrar" }, - "compliance-reporter": { - "image": "tigera/compliance-reporter", - "version": "v3.19.7" + "deep-packet-inspection": { + "version": "v3.19.7", + "image": "tigera/deep-packet-inspection" }, - "compliance-snapshotter": { - "image": "tigera/compliance-snapshotter", - "version": "v3.19.7" + "dex": { + "version": "v3.19.7", + "image": "tigera/dex" }, - "compliance-server": { - "image": "tigera/compliance-server", - "version": "v3.19.7" + "dikastes": { + "version": "v3.19.7", + "image": "tigera/dikastes" }, - "compliance-benchmarker": { - "image": "tigera/compliance-benchmarker", - "version": "v3.19.7" + "eck-elasticsearch": { + "version": "7.17.28" }, - "ingress-collector": { - "image": "tigera/ingress-collector", - "version": "v3.19.7" + "eck-elasticsearch-operator": { + "version": "2.16.1" }, - "l7-collector": { - "image": "tigera/l7-collector", - "version": "v3.19.7" + "eck-kibana": { + "version": "7.17.28" }, - "license-agent": { - "image": "tigera/license-agent", - "version": "v3.19.7" + "egress-gateway": { + "version": "v3.19.7", + "image": "tigera/egress-gateway" }, - "tigera-cni": { - "image": "tigera/cni", - "version": "v3.19.7" + "elastic-tsee-installer": { + "version": "v3.19.7", + "image": "tigera/intrusion-detection-job-installer" }, - "tigera-cni-windows": { - "image": "tigera/cni-windows", - "version": "v3.19.7" + "elasticsearch": { + "version": "v3.19.7", + "image": "tigera/elasticsearch" }, - "firewall-integration": { - "image": "tigera/firewall-integration", - "version": "v3.19.7" + "elasticsearch-metrics": { + "version": "v3.19.7", + "image": "tigera/elasticsearch-metrics" }, - "egress-gateway": { - "image": "tigera/egress-gateway", - "version": "v3.19.7" + "elasticsearch-operator": { + "version": "v3.19.7", + "image": "tigera/eck-operator" }, - "honeypod": { - "image": "tigera/honeypod", - "version": "v3.19.7" + "envoy": { + "version": "v3.19.7", + "image": "tigera/envoy" }, - "honeypod-exp-service": { - "image": "tigera/honeypod-exp-service", - "version": "v3.19.7" + "envoy-init": { + "version": "v3.19.7", + "image": "tigera/envoy-init" }, - "honeypod-controller": { - "image": "tigera/honeypod-controller", - "version": "v3.19.7" + "es-gateway": { + "version": "v3.19.7", + "image": "tigera/es-gateway" }, - "key-cert-provisioner": { - "image": "tigera/key-cert-provisioner", - "version": "v3.19.7" + "es-proxy": { + "version": "v3.19.7", + "image": "tigera/es-proxy" }, - "elasticsearch-metrics": { - "image": "tigera/elasticsearch-metrics", - "version": "v3.19.7" + "firewall-integration": { + "version": "v3.19.7", + "image": "tigera/firewall-integration" }, - "packetcapture": { - "image": "tigera/packetcapture", - "version": "v3.19.7" + "flexvol": { + "version": "v3.19.7", + "image": "tigera/pod2daemon-flexvol" }, - "policy-recommendation": { - "image": "tigera/policy-recommendation", - "version": "v3.19.7" + "fluentd": { + "version": "v3.19.7", + "image": "tigera/fluentd" }, - "prometheus": { - "image": "tigera/prometheus", - "version": "v3.19.7" + "fluentd-windows": { + "version": "v3.19.7", + "image": "tigera/fluentd-windows" }, - "coreos-prometheus": { - "version": "v2.55.1" + "guardian": { + "version": "v3.19.7", + "image": "tigera/guardian" }, - "coreos-prometheus-operator": { - "version": "v0.76.2" + "honeypod": { + "version": "v3.19.7", + "image": "tigera/honeypod" }, - "coreos-config-reloader": { - "version": "v0.76.2" + "honeypod-controller": { + "version": "v3.19.7", + "image": "tigera/honeypod-controller" }, - "prometheus-operator": { - "image": "tigera/prometheus-operator", - "version": "v3.19.7" + "honeypod-exp-service": { + "version": "v3.19.7", + "image": "tigera/honeypod-exp-service" }, - "prometheus-config-reloader": { - "image": "tigera/prometheus-config-reloader", - "version": "v3.19.7" + "ingress-collector": { + "version": "v3.19.7", + "image": "tigera/ingress-collector" }, - "tigera-prometheus-service": { - "image": "tigera/prometheus-service", - "version": "v3.19.7" + "intrusion-detection-controller": { + "version": "v3.19.7", + "image": "tigera/intrusion-detection-controller" }, - "es-gateway": { - "image": "tigera/es-gateway", - "version": "v3.19.7" + "key-cert-provisioner": { + "version": "v3.19.7", + "image": "tigera/key-cert-provisioner" + }, + "kibana": { + "version": "v3.19.7", + "image": "tigera/kibana" + }, + "l7-collector": { + "version": "v3.19.7", + "image": "tigera/l7-collector" + }, + "license-agent": { + "version": "v3.19.7", + "image": "tigera/license-agent" }, "linseed": { - "image": "tigera/linseed", - "version": "v3.19.7" + "version": "v3.19.7", + "image": "tigera/linseed" }, - "deep-packet-inspection": { - "image": "tigera/deep-packet-inspection", - "version": "v3.19.7" + "packetcapture": { + "version": "v3.19.7", + "image": "tigera/packetcapture" }, - "eck-elasticsearch-operator": { - "version": "2.16.1" + "policy-recommendation": { + "version": "v3.19.7", + "image": "tigera/policy-recommendation" }, - "elasticsearch-operator": { - "image": "tigera/eck-operator", - "version": "v3.19.7" + "prometheus": { + "version": "v3.19.7", + "image": "tigera/prometheus" }, - "coreos-alertmanager": { - "version": "v0.28.1" + "prometheus-config-reloader": { + "version": "v3.19.7", + "image": "tigera/prometheus-config-reloader" }, - "alertmanager": { - "image": "tigera/alertmanager", - "version": "v3.19.7" + "prometheus-operator": { + "version": "v3.19.7", + "image": "tigera/prometheus-operator" }, - "envoy": { - "image": "tigera/envoy", - "version": "v3.19.7" + "tigera-cni": { + "version": "v3.19.7", + "image": "tigera/cni" }, - "envoy-init": { - "image": "tigera/envoy-init", - "version": "v3.19.7" + "tigera-cni-windows": { + "version": "v3.19.7", + "image": "tigera/cni-windows" }, - "webhooks-processor": { - "image": "tigera/webhooks-processor", - "version": "v3.19.7" + "tigera-prometheus-service": { + "version": "v3.19.7", + "image": "tigera/prometheus-service" }, - "flexvol": { - "image": "tigera/pod2daemon-flexvol", - "version": "v3.19.7" + "typha": { + "version": "v3.19.7", + "image": "tigera/typha" }, - "csi": { - "image": "tigera/csi", - "version": "v3.19.7" + "voltron": { + "version": "v3.19.7", + "image": "tigera/voltron" }, - "csi-node-driver-registrar": { - "image": "tigera/node-driver-registrar", - "version": "v3.19.7" + "webhooks-processor": { + "version": "v3.19.7", + "image": "tigera/webhooks-processor" } } }, diff --git a/calico-enterprise_versioned_docs/version-3.19-2/variables.js b/calico-enterprise_versioned_docs/version-3.19-2/variables.js index 6ef7cff14f..a481acd372 100644 --- a/calico-enterprise_versioned_docs/version-3.19-2/variables.js +++ b/calico-enterprise_versioned_docs/version-3.19-2/variables.js @@ -9,6 +9,7 @@ const variables = { openSourceVersion: releases[0].calico.minor_version.slice(1), baseUrl: '/calico-enterprise/3.19', filesUrl: 'https://downloads.tigera.io/ee/v3.19.7', + // No rpmsUrl for this release tutorialFilesURL: 'https://docs.tigera.io/files', tmpScriptsURL: 'https://docs.tigera.io/calico-enterprise/3.19', windowsScriptsURL: 'https://raw.githubusercontent.com/kubernetes-sigs/sig-windows-tools/master/hostprocess', diff --git a/calico-enterprise_versioned_docs/version-3.20-2/releases.json b/calico-enterprise_versioned_docs/version-3.20-2/releases.json index e1ec18c60f..4352e1fd28 100644 --- a/calico-enterprise_versioned_docs/version-3.20-2/releases.json +++ b/calico-enterprise_versioned_docs/version-3.20-2/releases.json @@ -71,7 +71,10 @@ "version": "v0.28.1" }, "coreos-config-reloader": { - "version": "v0.76.2" + "version": "v0.76.0" + }, + "coreos-fluentd": { + "version": "1.18.0" }, "coreos-prometheus": { "version": "v2.55.1" @@ -235,9 +238,6 @@ "upstream-dex": { "version": "v2.41.1" }, - "upstream-fluentd": { - "version": "1.18.0" - }, "voltron": { "version": "v3.20.5", "image": "tigera/voltron" diff --git a/calico-enterprise_versioned_docs/version-3.20-2/variables.js b/calico-enterprise_versioned_docs/version-3.20-2/variables.js index 999460ad31..20748e7315 100644 --- a/calico-enterprise_versioned_docs/version-3.20-2/variables.js +++ b/calico-enterprise_versioned_docs/version-3.20-2/variables.js @@ -7,7 +7,7 @@ const variables = { prodnamedash: 'calico-enterprise', version: 'v3.20', openSourceVersion: releases[0].calico.minor_version.slice(1), - baseUrl: '/calico-enterprise/latest', + baseUrl: '/calico-enterprise/3.20', filesUrl: 'https://downloads.tigera.io/ee/v3.20.5', rpmsUrl: 'https://downloads.tigera.io/ee/rpms/v3.20', tutorialFilesURL: 'https://docs.tigera.io/files', diff --git a/calico-enterprise_versioned_docs/version-3.21-2/releases.json b/calico-enterprise_versioned_docs/version-3.21-2/releases.json index a336baae50..091a977960 100644 --- a/calico-enterprise_versioned_docs/version-3.21-2/releases.json +++ b/calico-enterprise_versioned_docs/version-3.21-2/releases.json @@ -1,5 +1,5 @@ [ - { + { "title": "v3.21.2", "tigera-operator": { "version": "v1.38.5", diff --git a/calico-enterprise_versioned_docs/version-3.22-1/releases.json b/calico-enterprise_versioned_docs/version-3.22-1/releases.json index 3d6938bcc7..25130f26e9 100644 --- a/calico-enterprise_versioned_docs/version-3.22-1/releases.json +++ b/calico-enterprise_versioned_docs/version-3.22-1/releases.json @@ -35,6 +35,10 @@ "version": "v3.22.0-1.0", "image": "tigera/cnx-manager" }, + "cnx-manager-proxy": { + "version": "v3.22.0-1.0", + "image": "tigera/cnx-manager-proxy" + }, "cnx-node": { "version": "v3.22.0-1.0", "image": "tigera/cnx-node" @@ -254,6 +258,10 @@ "version": "v3.22.0-1.0", "image": "tigera/voltron" }, + "waf-http-filter": { + "version": "v3.22.0-1.0", + "image": "tigera/waf-http-filter" + }, "webhooks-processor": { "version": "v3.22.0-1.0", "image": "tigera/webhooks-processor" diff --git a/scripts/update-component-versions.sh b/scripts/update-component-versions.sh index e66a735ede..0353cd9bbb 100755 --- a/scripts/update-component-versions.sh +++ b/scripts/update-component-versions.sh @@ -43,11 +43,11 @@ get_product_version_info() { local version=$1 product_branch_ref=$(get_product_branch_ref $version) api_url="https://api.github.com/repos/${product_repo_dict[$PRODUCT]}/contents/calico/_data/versions.yml${product_branch_ref}" - versions_yml=$(curl -H 'Accept: application/vnd.github.v3.raw' -H "Authorization: token ${GITHUB_TOKEN}" "${api_url}") + versions_yml=$(curl -fsSL -H 'Accept: application/vnd.github.v3.raw' -H "Authorization: token ${GITHUB_TOKEN}" "${api_url}") yq " ... comments=\"\" | .[] | - select(.title == \"v${VERSION}\" or .title == \"${VERSION}\") - " <(echo "$versions_yml") + select(.title == \"v${VERSION}\" or .title == \"${VERSION}\") + " <(echo "$versions_yml") | scripts/versions/format-versions } get_docs_folder_path() { @@ -75,10 +75,46 @@ update_calico_enterprise_version() { fi local release_title=v${VERSION} local release_stream=$(echo ${VERSION} | cut -d. -f1,2) + local release_stream_minor=${release_stream#3.} local docs_base_url="/calico-enterprise/${release_stream}" + + latest_count=$(grep -F "/calico-enterprise/latest" calico-enterprise_versioned_docs/version-*/variables.js | wc -l) + + # None of the current versions are set as latest, so we should make sure the user sets one + if [ ${latest_count} -eq 0 ] && [ "${IS_LATEST}" != "true" ]; then + echo >&2 "No versions are set as latest; please run one of the version/autogen targets with IS_LATEST=true" + exit 1 + fi + + # There's more than one 'latest', this is one of them, and we've *not* specified + # this one should be latest, so we're fixing the problem. + if [ ${latest_count} -gt 1 ] && \ + grep -F -q "/calico-enterprise/latest" "${docs_folder_path}/variables.js" && \ + [ "${IS_LATEST}" != "true" ]; then + echo >&2 "[warn] More than one version is set as latest, including this one, but we're unsetting this one" + + # Otherwise, bail out and force the user to fix the invalid one(s) first. + elif [ ${latest_count} -gt 1 ]; then + echo >&2 "Currently ${latest_count} versions are set as latest. Please regenerate any which are incorrect first:" + grep -F --files-with-matches "/calico-enterprise/latest" calico-enterprise_versioned_docs/version-*/variables.js | sed 's/^/ /' + exit 1 + fi + + if [ ${latest_count} -eq 1 ] && grep -F -q "/calico-enterprise/latest" "${docs_folder_path}/variables.js"; then + echo "[info] Release ${release_stream} is set as latest in docs, keeping it as latest for now" + IS_LATEST=true + fi + if [ "${IS_LATEST}" == "true" ]; then docs_base_url="/calico-enterprise/latest" fi + + if [ ${release_stream_minor} -ge 20 ]; then + rpmsUrl="rpmsUrl: 'https://downloads.tigera.io/ee/rpms/v${release_stream}'," + else + rpmsUrl="// No rpmsUrl for this release" + fi + cat <