Skip to content

fix(influxdb3-ent): adjust startup probe defaults #1198

fix(influxdb3-ent): adjust startup probe defaults

fix(influxdb3-ent): adjust startup probe defaults #1198

name: "helm-charts/test"
on: pull_request
permissions:
contents: read
jobs:
lint-test:
runs-on: ubuntu-latest
strategy:
matrix:
node_image_version:
- v1.31.14
- v1.36.1
name: lint-test (k8s ${{ matrix.node_image_version }})
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Fetch history
run: git fetch --prune --unshallow
- name: Set up Helm
uses: azure/setup-helm@v4
with:
version: v3.16.4
- uses: actions/setup-python@v5
with:
python-version: '3.x'
check-latest: true
- name: Install chart-testing tools
id: lint
uses: helm/chart-testing-action@v2
with:
yamale_version: '6.0.0'
- name: Run chart-testing (list-changed)
id: list-changed
run: |
changed=$(ct list-changed --target-branch=master)
if [[ -n "$changed" ]]; then
echo "changed=true" >> "$GITHUB_OUTPUT"
fi
- name: Run chart-testing (lint)
run: ct lint --target-branch=master
- name: Create kind cluster
uses: helm/kind-action@v1
with:
node_image: kindest/node:${{ matrix.node_image_version }}
if: steps.list-changed.outputs.changed == 'true'
# Our Enterprise chart requires some resources created
- name: Create Enterprise Test Resources
run: |
kubectl apply --validate=false -f https://github.com/cert-manager/cert-manager/releases/download/v1.19.3/cert-manager.yaml
kubectl wait --namespace cert-manager --for=condition=Available --timeout=45s deployment --all
kubectl apply -f ./charts/influxdb-enterprise/example-resources.yaml
kubectl create secret generic influxdb-license --from-literal=INFLUXDB_ENTERPRISE_LICENSE_KEY=${INFLUXDB_ENTERPRISE_LICENSE_KEY}
env:
INFLUXDB_ENTERPRISE_LICENSE_KEY: "${{ secrets.INFLUXDB_ENTERPRISE_LICENSE_KEY }}"
if: steps.list-changed.outputs.changed == 'true'
- name: Create Enterprise V3 Test Resources
run: |
kubectl create secret generic influxdb3-license \
--namespace=default \
--from-literal=license-email=${INFLUXDB3_ENTERPRISE_TRIAL_LICENSE_EMAIL}
kubectl create secret generic influxdb3-bootstrap-tokens \
--namespace=default \
--from-file=admin-token.json=./charts/influxdb3-enterprise/ci/admin-token.json \
--from-file=permission-tokens.json=./charts/influxdb3-enterprise/ci/permission-tokens.json
env:
INFLUXDB3_ENTERPRISE_TRIAL_LICENSE_EMAIL: "${{ secrets.INFLUXDB3_ENTERPRISE_TRIAL_LICENSE_EMAIL }}"
if: steps.list-changed.outputs.changed == 'true'
- name: Run chart-testing (install)
id: install
run: |
set -o pipefail
ct install --namespace=default --target-branch=master 2>&1 | tee $RUNNER_TEMP/$GITHUB_RUN_NUMBER.txt
# When https://github.com/helm/chart-testing/issues/212 is fixed, this can be used to set the license key instead of using env from secret
# run: ct install --namespace=default --helm-extra-args="--set license.key=${INFLUXDB_ENTERPRISE_LICENSE_KEY}"
# env:
# INFLUXDB_ENTERPRISE_LICENSE_KEY: "${{ secrets.INFLUXDB_ENTERPRISE_LICENSE_KEY }}"
if: steps.list-changed.outputs.changed == 'true'
- name: Diagnose Enterprise V3 startup on Kubernetes 1.31
if: always() && steps.list-changed.outputs.changed == 'true' && matrix.node_image_version == 'v1.31.14'
run: |
set +e
echo "=== Pods ==="
kubectl get pods -A -o wide
echo "=== Events ==="
kubectl get events -A --sort-by=.lastTimestamp
echo "=== InfluxDB 3 Enterprise pod diagnostics ==="
for pod in $(kubectl get pods -n default -l app.kubernetes.io/name=influxdb3-enterprise -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}'); do
echo "=== Describe pod: ${pod} ==="
kubectl describe pod -n default "${pod}"
echo "=== Current logs: ${pod} ==="
kubectl logs -n default "${pod}" --all-containers=true --tail=-1
echo "=== Previous logs: ${pod} ==="
kubectl logs -n default "${pod}" --all-containers=true --previous --tail=-1
done
echo "=== StatefulSets ==="
kubectl get statefulsets -n default -l app.kubernetes.io/name=influxdb3-enterprise -o yaml
echo "=== Nodes ==="
kubectl describe nodes
echo "=== Kind node container logs ==="
for node in $(docker ps --format '{{.Names}}' | grep chart-testing || true); do
echo "=== docker logs: ${node} ==="
docker logs "${node}" --tail=500
done
- name: Check logs for errors
run: |
set +e
patterns="Error loading config file"
grep -f $GITHUB_WORKSPACE/.github/workflows/patterns.txt $RUNNER_TEMP/$GITHUB_RUN_NUMBER.txt
if [[ $? -eq 0 ]]; then
echo "::error:: Errors found in logs"
exit 1
fi
if: steps.list-changed.outputs.changed == 'true'