diff --git a/.github/actions/chart-testing-action/action.yml b/.github/actions/chart-testing-action/action.yml index d453f1d4..3139cfed 100644 --- a/.github/actions/chart-testing-action/action.yml +++ b/.github/actions/chart-testing-action/action.yml @@ -39,7 +39,7 @@ inputs: version: description: "The chart-testing version to install" required: false - default: v3.10.1 + default: v3.11.0 yamllint_version: description: "The yamllint version to install" required: false diff --git a/.github/actions/chart-testing-action/ct.sh b/.github/actions/chart-testing-action/ct.sh index 04ce06c8..e03eb65a 100755 --- a/.github/actions/chart-testing-action/ct.sh +++ b/.github/actions/chart-testing-action/ct.sh @@ -35,7 +35,7 @@ set -o errexit set -o nounset set -o pipefail -DEFAULT_CHART_TESTING_VERSION=v3.10.1 +DEFAULT_CHART_TESTING_VERSION=v3.11.0 DEFAULT_YAMLLINT_VERSION=1.33.0 DEFAULT_YAMALE_VERSION=4.0.4 diff --git a/.github/workflows/pulsar-helm-chart-ci.yaml b/.github/workflows/pulsar-helm-chart-ci.yaml index 435947b1..75425859 100644 --- a/.github/workflows/pulsar-helm-chart-ci.yaml +++ b/.github/workflows/pulsar-helm-chart-ci.yaml @@ -107,7 +107,7 @@ jobs: if: ${{ steps.check_changes.outputs.docs_only != 'true' }} uses: azure/setup-helm@v3 with: - version: v3.12.3 + version: v3.14.4 - name: Set up Python if: ${{ steps.check_changes.outputs.docs_only != 'true' }} @@ -127,7 +127,7 @@ jobs: --validate-maintainers=false \ --target-branch ${{ github.event.repository.default_branch }} - - name: Run kubeconform check for helm template with every major k8s version 1.21.0-1.29.0 + - name: Run kubeconform check for helm template with every major k8s version 1.23.0-1.30.0 if: ${{ steps.check_changes.outputs.docs_only != 'true' }} run: | PULSAR_CHART_HOME=$(pwd) @@ -145,7 +145,7 @@ jobs: kubeconform -schema-location default -schema-location 'https://raw.githubusercontent.com/datreeio/CRDs-catalog/main/{{.Group}}/{{.ResourceKind}}_{{.ResourceAPIVersion}}.json' -strict -kubernetes-version $kube_version -summary } set -o pipefail - for k8s_version_part in {21..29}; do + for k8s_version_part in {23..30}; do k8s_version="1.${k8s_version_part}.0" echo "Validating helm template with kubeconform for k8s version $k8s_version" validate_helm_template_with_k8s_version $k8s_version @@ -167,12 +167,12 @@ jobs: strategy: fail-fast: false matrix: - # see https://github.com/kubernetes-sigs/kind/releases/tag/v0.20.0 for the list of supported k8s versions for kind 0.20.0 + # see https://github.com/kubernetes-sigs/kind/releases/tag/v0.22.0 for the list of supported k8s versions for kind 0.22.0 k8sVersion: - - version: "1.21.14" - kind_image_tag: v1.21.14@sha256:8a4e9bb3f415d2bb81629ce33ef9c76ba514c14d707f9797a01e3216376ba093 - - version: "1.27.3" - kind_image_tag: v1.27.3@sha256:3966ac761ae0136263ffdb6cfd4db23ef8a83cba8a463690e98317add2c9ba72 + - version: "1.23.17" + kind_image_tag: v1.23.17@sha256:14d0a9a892b943866d7e6be119a06871291c517d279aedb816a4b4bc0ec0a5b3 + - version: "1.29.2" + kind_image_tag: v1.29.2@sha256:51a1434a5397193442f0be2a297b488b6c919ce8a3931be0ce822606ea5ca245 testScenario: - name: Upgrade latest released version values_file: .ci/clusters/values-upgrade.yaml @@ -210,31 +210,31 @@ jobs: shortname: pulsar-manager include: - k8sVersion: - version: "1.21.14" - kind_image_tag: v1.21.14@sha256:8a4e9bb3f415d2bb81629ce33ef9c76ba514c14d707f9797a01e3216376ba093 + version: "1.23.17" + kind_image_tag: v1.23.17@sha256:14d0a9a892b943866d7e6be119a06871291c517d279aedb816a4b4bc0ec0a5b3 testScenario: name: "Pulsar Latest" values_file: .ci/clusters/values-pulsar-latest.yaml shortname: pulsar-latest - k8sVersion: - version: "1.21.14" - kind_image_tag: v1.21.14@sha256:8a4e9bb3f415d2bb81629ce33ef9c76ba514c14d707f9797a01e3216376ba093 + version: "1.23.17" + kind_image_tag: v1.23.17@sha256:14d0a9a892b943866d7e6be119a06871291c517d279aedb816a4b4bc0ec0a5b3 testScenario: name: "Upgrade TLS" values_file: .ci/clusters/values-tls.yaml shortname: tls type: upgrade - k8sVersion: - version: "1.21.14" - kind_image_tag: v1.21.14@sha256:8a4e9bb3f415d2bb81629ce33ef9c76ba514c14d707f9797a01e3216376ba093 + version: "1.23.17" + kind_image_tag: v1.23.17@sha256:14d0a9a892b943866d7e6be119a06871291c517d279aedb816a4b4bc0ec0a5b3 testScenario: name: "Upgrade PSP" values_file: .ci/clusters/values-psp.yaml shortname: psp type: upgrade - k8sVersion: - version: "1.21.14" - kind_image_tag: v1.21.14@sha256:8a4e9bb3f415d2bb81629ce33ef9c76ba514c14d707f9797a01e3216376ba093 + version: "1.23.17" + kind_image_tag: v1.23.17@sha256:14d0a9a892b943866d7e6be119a06871291c517d279aedb816a4b4bc0ec0a5b3 testScenario: name: "Upgrade kube-prometheus-stack" values_file: .ci/clusters/values-prometheus-grafana.yaml @@ -242,18 +242,18 @@ jobs: type: upgrade upgradeFromVersion: 3.2.0 - k8sVersion: - version: "1.21.14" - kind_image_tag: v1.21.14@sha256:8a4e9bb3f415d2bb81629ce33ef9c76ba514c14d707f9797a01e3216376ba093 + version: "1.23.17" + kind_image_tag: v1.23.17@sha256:14d0a9a892b943866d7e6be119a06871291c517d279aedb816a4b4bc0ec0a5b3 testScenario: - name: "TLS with helm 3.10.0" + name: "TLS with helm 3.12.0" values_file: .ci/clusters/values-tls.yaml shortname: tls type: install - helmVersion: 3.10.0 + helmVersion: 3.12.0 env: k8sVersion: ${{ matrix.k8sVersion.kind_image_tag }} KUBECTL_VERSION: ${{ matrix.k8sVersion.version }} - HELM_VERSION: ${{ matrix.helmVersion || '3.12.3' }} + HELM_VERSION: ${{ matrix.helmVersion || '3.14.4' }} steps: - name: checkout uses: actions/checkout@v4 @@ -285,7 +285,7 @@ jobs: # install k9s on the fly if [ ! -x /usr/local/bin/k9s ]; then echo "Installing k9s..." - curl -L -s https://github.com/derailed/k9s/releases/download/v0.29.1/k9s_Linux_amd64.tar.gz | sudo tar xz -C /usr/local/bin k9s + curl -L -s https://github.com/derailed/k9s/releases/download/v0.32.5/k9s_Linux_amd64.tar.gz | sudo tar xz -C /usr/local/bin k9s fi command k9s "$@" } diff --git a/README.md b/README.md index c84e1d03..f0910b19 100644 --- a/README.md +++ b/README.md @@ -97,9 +97,9 @@ It includes support for: In order to use this chart to deploy Apache Pulsar on Kubernetes, the followings are required. -1. kubectl 1.21 or higher, compatible with your cluster ([+/- 1 minor release from your cluster](https://kubernetes.io/docs/tasks/tools/install-kubectl/#before-you-begin)) -2. Helm v3 (3.10.0 or higher) -3. A Kubernetes cluster, version 1.21 or higher. +1. kubectl 1.23 or higher, compatible with your cluster ([+/- 1 minor release from your cluster](https://kubernetes.io/docs/tasks/tools/install-kubectl/#before-you-begin)) +2. Helm v3 (3.12.0 or higher) +3. A Kubernetes cluster, version 1.23 or higher. ## Environment setup @@ -119,7 +119,7 @@ helm repo add apache https://pulsar.apache.org/charts ## Kubernetes cluster preparation -You need a Kubernetes cluster whose version is 1.21 or higher in order to use this chart, due to the usage of certain Kubernetes features. +You need a Kubernetes cluster whose version is 1.23 or higher in order to use this chart, due to the usage of certain Kubernetes features. We provide some instructions to guide you through the preparation: http://pulsar.apache.org/docs/helm-prepare/ diff --git a/RELEASE.md b/RELEASE.md index e5246ee9..b8df57d3 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -23,7 +23,7 @@ This document details the steps for releasing the Apache Pulsar Helm Chart. ## Prerequisites -- Helm version >= 3.10.0 +- Helm version >= 3.12.0 - Helm gpg plugin (one option: https://github.com/technosophos/helm-gpg) ## Build Release Notes diff --git a/charts/pulsar/Chart.yaml b/charts/pulsar/Chart.yaml index 4ce1f78e..cfed782d 100644 --- a/charts/pulsar/Chart.yaml +++ b/charts/pulsar/Chart.yaml @@ -22,7 +22,7 @@ appVersion: "3.0.6" description: Apache Pulsar Helm chart for Kubernetes name: pulsar version: 3.5.0 -kubeVersion: ">=1.21.0-0" +kubeVersion: ">=1.23.0-0" home: https://pulsar.apache.org sources: - https://github.com/apache/pulsar diff --git a/charts/pulsar/templates/check_helm_version.yaml b/charts/pulsar/templates/check_helm_version.yaml index 1904745a..c50e3b07 100644 --- a/charts/pulsar/templates/check_helm_version.yaml +++ b/charts/pulsar/templates/check_helm_version.yaml @@ -17,6 +17,6 @@ # under the License. # -{{- if semverCompare "<3.10.0-0" .Capabilities.HelmVersion.Version -}} -{{- fail "Your Helm version is not supported. Please upgrade to Helm 3.10.0 or later. The recommended version is currently 3.12.3 or newer. You can find more about Helm releases and installation at https://github.com/helm/helm/releases. " -}} +{{- if semverCompare "<3.12.0-0" .Capabilities.HelmVersion.Version -}} +{{- fail "Your Helm version is not supported. Please upgrade to Helm 3.12.0 or later. The recommended version is currently 3.14.4 or newer. You can find more about Helm releases and installation at https://github.com/helm/helm/releases. " -}} {{- end -}} \ No newline at end of file diff --git a/hack/common.sh b/hack/common.sh index f7c8de96..5f6d6e4d 100755 --- a/hack/common.sh +++ b/hack/common.sh @@ -25,16 +25,16 @@ fi OUTPUT=${PULSAR_CHART_HOME}/output OUTPUT_BIN=${OUTPUT}/bin -: "${KUBECTL_VERSION:=1.21.14}" +: "${KUBECTL_VERSION:=1.23.17}" KUBECTL_BIN=$OUTPUT_BIN/kubectl HELM_BIN=$OUTPUT_BIN/helm -: "${HELM_VERSION:=3.12.3}" -: "${KIND_VERSION:=0.20.0}" +: "${HELM_VERSION:=3.14.4}" +: "${KIND_VERSION:=0.22.0}" KIND_BIN=$OUTPUT_BIN/kind CR_BIN=$OUTPUT_BIN/cr : "${CR_VERSION:=1.6.0}" KUBECONFORM_BIN=$OUTPUT_BIN/kubeconform -: "${KUBECONFORM_VERSION:=0.6.4}" +: "${KUBECONFORM_VERSION:=0.6.7}" export PATH="$OUTPUT_BIN:$PATH" test -d "$OUTPUT_BIN" || mkdir -p "$OUTPUT_BIN" diff --git a/hack/kind-cluster-build.sh b/hack/kind-cluster-build.sh index 99109728..e7915e00 100755 --- a/hack/kind-cluster-build.sh +++ b/hack/kind-cluster-build.sh @@ -84,8 +84,8 @@ done clusterName=${clusterName:-pulsar-dev} nodeNum=${nodeNum:-6} # k8sVersion must be compatible with the used kind version -# see https://github.com/kubernetes-sigs/kind/releases/tag/v0.20.0 for the list of supported k8s versions for kind 0.20.0 -k8sVersion=${k8sVersion:-v1.21.14@sha256:8a4e9bb3f415d2bb81629ce33ef9c76ba514c14d707f9797a01e3216376ba093} +# see https://github.com/kubernetes-sigs/kind/releases/tag/v0.22.0 for the list of supported k8s versions for kind 0.22.0 +k8sVersion=${k8sVersion:-v1.23.17@sha256:14d0a9a892b943866d7e6be119a06871291c517d279aedb816a4b4bc0ec0a5b3} volumeNum=${volumeNum:-9} echo "clusterName: ${clusterName}"