diff --git a/.github/actions/chart-testing-action/action.yml b/.github/actions/chart-testing-action/action.yml index 3139cfe..9cda8f4 100644 --- a/.github/actions/chart-testing-action/action.yml +++ b/.github/actions/chart-testing-action/action.yml @@ -39,15 +39,15 @@ inputs: version: description: "The chart-testing version to install" required: false - default: v3.11.0 + default: v3.12.0 yamllint_version: description: "The yamllint version to install" required: false - default: '1.33.0' + default: '1.35.1' yamale_version: description: "The yamale version to install" required: false - default: '4.0.4' + default: '6.0.0' runs: using: composite steps: diff --git a/.github/actions/chart-testing-action/ct.sh b/.github/actions/chart-testing-action/ct.sh index e03eb65..9873ec1 100755 --- a/.github/actions/chart-testing-action/ct.sh +++ b/.github/actions/chart-testing-action/ct.sh @@ -35,9 +35,9 @@ set -o errexit set -o nounset set -o pipefail -DEFAULT_CHART_TESTING_VERSION=v3.11.0 -DEFAULT_YAMLLINT_VERSION=1.33.0 -DEFAULT_YAMALE_VERSION=4.0.4 +DEFAULT_CHART_TESTING_VERSION=v3.12.0 +DEFAULT_YAMLLINT_VERSION=1.35.1 +DEFAULT_YAMALE_VERSION=6.0.0 ARCH=$(uname -m) case $ARCH in @@ -131,18 +131,24 @@ install_chart_testing() { tar -xzf ct.tar.gz -C "$cache_dir" rm -f ct.tar.gz + # if uv (https://docs.astral.sh/uv/) is not installed, install it + if ! command -v uv &> /dev/null; then + echo 'Installing uv...' + curl -LsSf https://astral.sh/uv/install.sh | sh + fi + echo 'Creating virtual Python environment...' - python3 -m venv "$venv_dir" + uv venv "$venv_dir" echo 'Activating virtual environment...' # shellcheck disable=SC1090 source "$venv_dir/bin/activate" echo 'Installing yamllint...' - pip3 install "yamllint==${yamllint_version}" + uv pip install "yamllint==${yamllint_version}" echo 'Installing Yamale...' - pip3 install "yamale==${yamale_version}" + uv pip install "yamale==${yamale_version}" fi # https://github.com/helm/chart-testing-action/issues/62 diff --git a/.github/actions/tune-runner-vm/action.yml b/.github/actions/tune-runner-vm/action.yml index 402b920..ab0f657 100644 --- a/.github/actions/tune-runner-vm/action.yml +++ b/.github/actions/tune-runner-vm/action.yml @@ -53,8 +53,8 @@ runs: # tune filesystem mount options, https://www.kernel.org/doc/Documentation/filesystems/ext4.txt # commit=999999, effectively disables automatic syncing to disk (default is every 5 seconds) # nobarrier/barrier=0, loosen data consistency on system crash (no negative impact to empheral CI nodes) - sudo mount -o remount,nodiscard,commit=999999,barrier=0 / - sudo mount -o remount,nodiscard,commit=999999,barrier=0 /mnt + sudo mount -o remount,nodiscard,commit=999999,barrier=0 / || true + sudo mount -o remount,nodiscard,commit=999999,barrier=0 /mnt || true # disable discard/trim at device level since remount with nodiscard doesn't seem to be effective # https://www.spinics.net/lists/linux-ide/msg52562.html for i in /sys/block/sd*/queue/discard_max_bytes; do @@ -77,12 +77,6 @@ runs: # stop Azure Linux agent to save RAM sudo systemctl stop walinuxagent.service || true - # enable docker experimental mode which is - # required for using "docker build --squash" / "-Ddocker.squash=true" - daemon_json="$(sudo cat /etc/docker/daemon.json | jq '.experimental = true')" - echo "$daemon_json" | sudo tee /etc/docker/daemon.json - # restart docker daemon - sudo systemctl restart docker echo '::endgroup::' # show memory diff --git a/.github/workflows/pulsar-helm-chart-ci.yaml b/.github/workflows/pulsar-helm-chart-ci.yaml index 7bbb2b1..13aade0 100644 --- a/.github/workflows/pulsar-helm-chart-ci.yaml +++ b/.github/workflows/pulsar-helm-chart-ci.yaml @@ -34,7 +34,7 @@ concurrency: jobs: preconditions: name: Preconditions - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 if: (github.event_name != 'schedule') || (github.repository == 'apache/pulsar-helm-chart') outputs: docs_only: ${{ steps.check_changes.outputs.docs_only }} @@ -62,7 +62,7 @@ jobs: license-check: needs: preconditions name: License Check - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 10 if: ${{ needs.preconditions.outputs.docs_only != 'true' }} steps: @@ -83,7 +83,7 @@ jobs: ct-lint: needs: ['preconditions', 'license-check'] name: chart-testing lint - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 45 if: ${{ needs.preconditions.outputs.docs_only != 'true' }} steps: @@ -107,13 +107,17 @@ jobs: if: ${{ steps.check_changes.outputs.docs_only != 'true' }} uses: azure/setup-helm@v4 with: - version: v3.14.4 + version: v3.16.4 - name: Set up Python if: ${{ steps.check_changes.outputs.docs_only != 'true' }} uses: actions/setup-python@v5 with: - python-version: '3.9' + python-version: '3.12' + + - name: Install uv, a fast modern package manager for Python + if: ${{ steps.check_changes.outputs.docs_only != 'true' }} + run: curl -LsSf https://astral.sh/uv/install.sh | sh - name: Set up chart-testing if: ${{ steps.check_changes.outputs.docs_only != 'true' }} @@ -176,19 +180,20 @@ jobs: install-chart-tests: name: ${{ matrix.testScenario.name }} - k8s ${{ matrix.k8sVersion.version }} - ${{ matrix.testScenario.type || 'install' }} - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: ${{ matrix.testScenario.timeout || 45 }} needs: ['preconditions', 'ct-lint'] if: ${{ needs.preconditions.outputs.docs_only != 'true' }} strategy: fail-fast: false matrix: - # see https://github.com/kubernetes-sigs/kind/releases/tag/v0.22.0 for the list of supported k8s versions for kind 0.22.0 + # see https://github.com/kubernetes-sigs/kind/releases/tag/v0.27.0 for the list of supported k8s versions for kind 0.27.0 + # docker images are available at https://hub.docker.com/r/kindest/node/tags k8sVersion: - version: "1.23.17" kind_image_tag: v1.23.17@sha256:14d0a9a892b943866d7e6be119a06871291c517d279aedb816a4b4bc0ec0a5b3 - - version: "1.29.2" - kind_image_tag: v1.29.2@sha256:51a1434a5397193442f0be2a297b488b6c919ce8a3931be0ce822606ea5ca245 + - version: "1.32.2" + kind_image_tag: v1.32.2@sha256:f226345927d7e348497136874b6d207e0b32cc52154ad8323129352923a3142f testScenario: - name: Upgrade latest released version values_file: .ci/clusters/values-upgrade.yaml @@ -333,7 +338,7 @@ jobs: pulsar-helm-chart-ci-checks-completed: name: "CI checks completed" if: ${{ always() && ((github.event_name != 'schedule') || (github.repository == 'apache/pulsar-helm-chart')) }} - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 10 needs: [ 'preconditions', diff --git a/hack/common.sh b/hack/common.sh index 5f6d6e4..d6c0f11 100755 --- a/hack/common.sh +++ b/hack/common.sh @@ -25,14 +25,14 @@ fi OUTPUT=${PULSAR_CHART_HOME}/output OUTPUT_BIN=${OUTPUT}/bin -: "${KUBECTL_VERSION:=1.23.17}" +: "${KUBECTL_VERSION:=1.28.15}" KUBECTL_BIN=$OUTPUT_BIN/kubectl HELM_BIN=$OUTPUT_BIN/helm -: "${HELM_VERSION:=3.14.4}" -: "${KIND_VERSION:=0.22.0}" +: "${HELM_VERSION:=3.16.4}" +: "${KIND_VERSION:=0.27.0}" KIND_BIN=$OUTPUT_BIN/kind CR_BIN=$OUTPUT_BIN/cr -: "${CR_VERSION:=1.6.0}" +: "${CR_VERSION:=1.7.0}" KUBECONFORM_BIN=$OUTPUT_BIN/kubeconform : "${KUBECONFORM_VERSION:=0.6.7}" export PATH="$OUTPUT_BIN:$PATH"