This is an automated email from the ASF dual-hosted git repository.
lhotari pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar-helm-chart.git
The following commit(s) were added to refs/heads/master by this push:
new d877fc3 Use Pulsar 4.0.0 image, bump chart version to 3.7.0,
kube-prometheus-stack to 65.x (#542)
d877fc3 is described below
commit d877fc3312192cce1bf29d0c35f665ce513b8841
Author: Lari Hotari <[email protected]>
AuthorDate: Wed Oct 30 00:29:27 2024 +0200
Use Pulsar 4.0.0 image, bump chart version to 3.7.0, kube-prometheus-stack
to 65.x (#542)
* Use Pulsar 4.0.0 image, bump chart version to 3.7.0
* Bump kube-prometheus-stack to 65.x.x
* Remove testing with latest and test with previous LTS version
- run kube-prometheus-stack test with previous LTS version since
the older chart version doesn't support Pulsar 4.0.0 image
* Fix passing "--values" to helm command
* Move ci runner config to a script
* Attempt to fix pulsar-manager-cluster-initialize
---
.ci/chart_test.sh | 18 +++++---
.ci/clusters/values-pulsar-latest.yaml | 20 ---------
...-image.yaml => values-pulsar-previous-lts.yaml} | 2 +-
.ci/configure_ci_runner_for_debugging.sh | 41 ++++++++++++++++++
.ci/helm.sh | 24 ++++++++---
.github/workflows/pulsar-helm-chart-ci.yaml | 50 +++-------------------
README.md | 17 +++++++-
charts/pulsar/Chart.yaml | 6 +--
.../pulsar-manager-cluster-initialize.yaml | 1 +
.../upgrade_prometheus_operator_crds.sh | 2 +-
10 files changed, 101 insertions(+), 80 deletions(-)
diff --git a/.ci/chart_test.sh b/.ci/chart_test.sh
index e91f3d1..3196c02 100755
--- a/.ci/chart_test.sh
+++ b/.ci/chart_test.sh
@@ -36,13 +36,21 @@ ci::create_cluster
ci::helm_repo_add
-extra_opts=""
+extra_opts=()
+
+# Add any arguments after $1 to extra_opts
+shift # Remove $1 from the argument list
+while [[ $# -gt 0 ]]; do
+ extra_opts+=("$1")
+ shift
+done
+
if [[ "x${SYMMETRIC}" == "xtrue" ]]; then
- extra_opts="-s"
+ extra_opts+=("-s")
fi
if [[ "x${EXTRA_SUPERUSERS}" != "x" ]]; then
- extra_opts="${extra_opts} --pulsar-superusers
proxy-admin,broker-admin,admin,${EXTRA_SUPERUSERS}"
+ extra_opts+=("--pulsar-superusers"
"proxy-admin,broker-admin,admin,${EXTRA_SUPERUSERS}")
fi
install_type="install"
@@ -50,7 +58,7 @@ test_action="produce-consume"
if [[ "$UPGRADE_FROM_VERSION" != "" ]]; then
# install older version of pulsar chart
PULSAR_CHART_VERSION="$UPGRADE_FROM_VERSION"
- ci::install_pulsar_chart install ${PULSAR_HOME}/.ci/values-common.yaml
${PULSAR_HOME}/${VALUES_FILE} ${extra_opts}
+ ci::install_pulsar_chart install ${PULSAR_HOME}/.ci/values-common.yaml
${PULSAR_HOME}/${VALUES_FILE} "${extra_opts[@]}"
install_type="upgrade"
echo "Wait 10 seconds"
sleep 10
@@ -68,7 +76,7 @@ fi
PULSAR_CHART_VERSION="local"
# install (or upgrade) pulsar chart
-ci::install_pulsar_chart ${install_type} ${PULSAR_HOME}/.ci/values-common.yaml
${PULSAR_HOME}/${VALUES_FILE} ${extra_opts}
+ci::install_pulsar_chart ${install_type} ${PULSAR_HOME}/.ci/values-common.yaml
${PULSAR_HOME}/${VALUES_FILE} "${extra_opts[@]}"
echo "Wait 10 seconds"
sleep 10
diff --git a/.ci/clusters/values-pulsar-latest.yaml
b/.ci/clusters/values-pulsar-latest.yaml
deleted file mode 100644
index 2a3526c..0000000
--- a/.ci/clusters/values-pulsar-latest.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-defaultPulsarImageTag: 3.3.1
\ No newline at end of file
diff --git a/.ci/clusters/values-pulsar-image.yaml
b/.ci/clusters/values-pulsar-previous-lts.yaml
similarity index 96%
rename from .ci/clusters/values-pulsar-image.yaml
rename to .ci/clusters/values-pulsar-previous-lts.yaml
index e332a4f..b87d9b9 100644
--- a/.ci/clusters/values-pulsar-image.yaml
+++ b/.ci/clusters/values-pulsar-previous-lts.yaml
@@ -17,4 +17,4 @@
# under the License.
#
-defaultPulsarImageTag: 3.3.2
\ No newline at end of file
+defaultPulsarImageTag: 3.0.7
\ No newline at end of file
diff --git a/.ci/configure_ci_runner_for_debugging.sh
b/.ci/configure_ci_runner_for_debugging.sh
new file mode 100755
index 0000000..c0ea76e
--- /dev/null
+++ b/.ci/configure_ci_runner_for_debugging.sh
@@ -0,0 +1,41 @@
+#!/bin/bash
+# this script is used to install tools for the GitHub Actions CI runner while
debugging with ssh
+
+if [[ -z "${GITHUB_ACTIONS}" ]]; then
+ echo "Error: This script is intended to run only in GitHub Actions
environment"
+ exit 1
+fi
+
+cat >> $HOME/.bashrc <<'EOF'
+function use_kind_kubeconfig() {
+ export KUBECONFIG=$(ls $HOME/kind/pulsar-ci-*/kubeconfig.yaml)
+}
+
+function kubectl() {
+ # use kind environment's kubeconfig
+ if [ -z "$KUBECONFIG" ]; then
+ use_kind_kubeconfig
+ fi
+ command kubectl "$@"
+}
+
+function k9s() {
+ # use kind environment's kubeconfig
+ if [ -z "$KUBECONFIG" ]; then
+ use_kind_kubeconfig
+ fi
+ # 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.32.5/k9s_Linux_amd64.tar.gz
| sudo tar xz -C /usr/local/bin k9s
+ fi
+ command k9s "$@"
+}
+
+alias k=kubectl
+EOF
+cat >> $HOME/.bash_profile <<'EOF'
+if [ -f ~/.bashrc ]; then
+ source ~/.bashrc
+fi
+EOF
\ No newline at end of file
diff --git a/.ci/helm.sh b/.ci/helm.sh
index 69fabfb..516e82c 100644
--- a/.ci/helm.sh
+++ b/.ci/helm.sh
@@ -112,15 +112,29 @@ function ci::install_pulsar_chart() {
local install_type=$1
local common_value_file=$2
local value_file=$3
- local extra_opts="$4 $5 $6 $7 $8"
+ shift 3
+ local extra_values=()
+ local extra_opts=()
+ local values_next=false
+ for arg in "$@"; do
+ if [[ "$arg" == "--values" ]]; then
+ extra_values+=("$arg")
+ values_next=true
+ elif [[ "$values_next" == true ]]; then
+ extra_values+=("$arg")
+ values_next=false
+ else
+ extra_opts+=("$arg")
+ fi
+ done
local install_args
if [[ "${install_type}" == "install" ]]; then
echo "Installing the pulsar chart"
${KUBECTL} create namespace ${NAMESPACE}
ci::install_cert_manager
- echo ${CHARTS_HOME}/scripts/pulsar/prepare_helm_release.sh -k ${CLUSTER}
-n ${NAMESPACE} ${extra_opts}
- ${CHARTS_HOME}/scripts/pulsar/prepare_helm_release.sh -k ${CLUSTER} -n
${NAMESPACE} ${extra_opts}
+ echo ${CHARTS_HOME}/scripts/pulsar/prepare_helm_release.sh -k ${CLUSTER}
-n ${NAMESPACE} "${extra_opts[@]}"
+ ${CHARTS_HOME}/scripts/pulsar/prepare_helm_release.sh -k ${CLUSTER} -n
${NAMESPACE} "${extra_opts[@]}"
sleep 10
# install metallb for loadbalancer support
@@ -154,8 +168,8 @@ function ci::install_pulsar_chart() {
fi
fi
set -x
- ${HELM} template --values ${common_value_file} --values ${value_file}
${CLUSTER} ${CHART_ARGS}
- ${HELM} ${install_type} --values ${common_value_file} --values
${value_file} --namespace=${NAMESPACE} ${CLUSTER} ${CHART_ARGS} ${install_args}
+ ${HELM} template --values ${common_value_file} --values ${value_file}
"${extra_values[@]}" ${CLUSTER} ${CHART_ARGS}
+ ${HELM} ${install_type} --values ${common_value_file} --values
${value_file} "${extra_values[@]}" --namespace=${NAMESPACE} ${CLUSTER}
${CHART_ARGS} ${install_args}
set +x
if [[ "${install_type}" == "install" ]]; then
diff --git a/.github/workflows/pulsar-helm-chart-ci.yaml
b/.github/workflows/pulsar-helm-chart-ci.yaml
index 1dd79b7..f9fdf1b 100644
--- a/.github/workflows/pulsar-helm-chart-ci.yaml
+++ b/.github/workflows/pulsar-helm-chart-ci.yaml
@@ -178,9 +178,9 @@ jobs:
values_file: .ci/clusters/values-upgrade.yaml
shortname: upgrade
type: upgrade
- - name: Use Pulsar Image
- values_file: .ci/clusters/values-pulsar-image.yaml
- shortname: pulsar-image
+ - name: Use previous LTS Pulsar Image
+ values_file: .ci/clusters/values-pulsar-previous-lts.yaml
+ shortname: pulsar-previous-lts
- name: JWT Asymmetric Keys
values_file: .ci/clusters/values-jwt-asymmetric.yaml
shortname: jwt-asymmetric
@@ -209,13 +209,6 @@ jobs:
values_file: .ci/clusters/values-pulsar-manager.yaml
shortname: pulsar-manager
include:
- - k8sVersion:
- 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.23.17"
kind_image_tag:
v1.23.17@sha256:14d0a9a892b943866d7e6be119a06871291c517d279aedb816a4b4bc0ec0a5b3
@@ -236,8 +229,8 @@ jobs:
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
+ name: "Upgrade kube-prometheus-stack for previous LTS"
+ values_file: .ci/clusters/values-prometheus-grafana.yaml
--values .ci/clusters/values-pulsar-previous-lts.yaml
shortname: prometheus-grafana
type: upgrade
upgradeFromVersion: 3.2.0
@@ -263,38 +256,7 @@ jobs:
- name: Setup debugging tools for ssh access
if: ${{ github.repository != 'apache/pulsar-helm-chart' &&
github.event_name == 'pull_request' }}
- run: |
- cat >> $HOME/.bashrc <<'EOF'
- function use_kind_kubeconfig() {
- export KUBECONFIG=$(ls $HOME/kind/pulsar-ci-*/kubeconfig.yaml)
- }
-
- function kubectl() {
- # use kind environment's kubeconfig
- if [ -z "$KUBECONFIG" ]; then
- use_kind_kubeconfig
- fi
- command kubectl "$@"
- }
-
- function k9s() {
- # use kind environment's kubeconfig
- if [ -z "$KUBECONFIG" ]; then
- use_kind_kubeconfig
- fi
- # 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.32.5/k9s_Linux_amd64.tar.gz
| sudo tar xz -C /usr/local/bin k9s
- fi
- command k9s "$@"
- }
- EOF
- cat >> $HOME/.bash_profile <<'EOF'
- if [ -f ~/.bashrc ]; then
- source ~/.bashrc
- fi
- EOF
+ run: .ci/configure_ci_runner_for_debugging.sh
- name: Setup ssh access to build runner VM
# ssh access is enabled for builds in own forks
diff --git a/README.md b/README.md
index f0910b1..0f655b2 100644
--- a/README.md
+++ b/README.md
@@ -245,6 +245,20 @@ helm upgrade -f pulsar.yaml \
For more detailed information, see our
[Upgrading](http://pulsar.apache.org/docs/helm-upgrade/) guide.
+## Upgrading from Helm Chart version 3.0.0-3.6.0 to 3.7.0 version and above
+
+The kube-prometheus-stack version has been upgraded to 65.x.x in Pulsar Helm
Chart version 3.7.0 .
+Before running "helm upgrade", you should first upgrade the Prometheus
Operator CRDs as [instructed
+in kube-prometheus-stack upgrade
notes](https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack#from-64x-to-65x).
+
+There's a script to run the required commands:
+
+```shell
+./scripts/kube-prometheus-stack/upgrade_prometheus_operator_crds.sh 0.77.1
+```
+
+After, this you can proceed with `helm upgrade`.
+
## Upgrading from Helm Chart version 3.0.0-3.4.x to 3.5.0 version and above
The kube-prometheus-stack version has been upgraded to 59.x.x in Pulsar Helm
Chart version 3.5.0 .
@@ -252,13 +266,13 @@ Before running "helm upgrade", you should first upgrade
the Prometheus Operator
in kube-prometheus-stack upgrade
notes](https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack#from-58x-to-59x).
There's a script to run the required commands:
+
```shell
./scripts/kube-prometheus-stack/upgrade_prometheus_operator_crds.sh 0.74.0
```
After, this you can proceed with `helm upgrade`.
-
## Upgrading from Helm Chart version 3.0.0-3.2.x to 3.3.0 version and above
The kube-prometheus-stack version has been upgraded to 56.x.x in Pulsar Helm
Chart version 3.3.0 .
@@ -266,6 +280,7 @@ Before running "helm upgrade", you should first upgrade the
Prometheus Operator
in kube-prometheus-stack upgrade
notes](https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack#from-55x-to-56x).
There's a script to run the required commands:
+
```shell
./scripts/kube-prometheus-stack/upgrade_prometheus_operator_crds.sh 0.71.0
```
diff --git a/charts/pulsar/Chart.yaml b/charts/pulsar/Chart.yaml
index 1380f1c..82c9078 100644
--- a/charts/pulsar/Chart.yaml
+++ b/charts/pulsar/Chart.yaml
@@ -18,10 +18,10 @@
#
apiVersion: v2
-appVersion: "3.0.7"
+appVersion: "4.0.0"
description: Apache Pulsar Helm chart for Kubernetes
name: pulsar
-version: 3.6.0
+version: 3.7.0
kubeVersion: ">=1.23.0-0"
home: https://pulsar.apache.org
sources:
@@ -33,6 +33,6 @@ maintainers:
email: [email protected]
dependencies:
- name: kube-prometheus-stack
- version: 59.x.x
+ version: 65.x.x
repository: https://prometheus-community.github.io/helm-charts
condition: kube-prometheus-stack.enabled
diff --git a/charts/pulsar/templates/pulsar-manager-cluster-initialize.yaml
b/charts/pulsar/templates/pulsar-manager-cluster-initialize.yaml
index 39a6c18..6fe3423 100755
--- a/charts/pulsar/templates/pulsar-manager-cluster-initialize.yaml
+++ b/charts/pulsar/templates/pulsar-manager-cluster-initialize.yaml
@@ -83,6 +83,7 @@ spec:
command: [ "sh", "-c" ]
args:
- |
+ cd /tmp
ADMIN_URL={{ template "pulsar.fullname" . }}-{{
.Values.pulsar_manager.component }}-admin:{{
.Values.pulsar_manager.adminService.port }}
CSRF_TOKEN=$(curl http://${ADMIN_URL}/pulsar-manager/csrf-token)
UI_URL={{ template "pulsar.fullname" . }}-{{
.Values.pulsar_manager.component }}:{{ .Values.pulsar_manager.service.port }}
diff --git a/scripts/kube-prometheus-stack/upgrade_prometheus_operator_crds.sh
b/scripts/kube-prometheus-stack/upgrade_prometheus_operator_crds.sh
index d762a83..ebf4ae3 100755
--- a/scripts/kube-prometheus-stack/upgrade_prometheus_operator_crds.sh
+++ b/scripts/kube-prometheus-stack/upgrade_prometheus_operator_crds.sh
@@ -21,7 +21,7 @@
# This script is used to upgrade the Prometheus Operator CRDs before running
"helm upgrade"
# source:
https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack#upgrading-an-existing-release-to-a-new-major-version
# "Run these commands to update the CRDs before applying the upgrade."
-PROMETHEUS_OPERATOR_VERSION="${1:-"0.74.0"}"
+PROMETHEUS_OPERATOR_VERSION="${1:-"0.77.1"}"
PREFIX_URL="https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v${PROMETHEUS_OPERATOR_VERSION}/example/prometheus-operator-crd"
for crd in alertmanagerconfigs alertmanagers podmonitors probes
prometheusagents prometheuses prometheusrules scrapeconfigs servicemonitors
thanosrulers; do
# "--force-conflicts" is required to upgrade the CRDs. Following
instructions from
https://github.com/prometheus-community/helm-charts/issues/2489