Skip to content

docs: fix broken links and link every guide from a README #362

docs: fix broken links and link every guide from a README

docs: fix broken links and link every guide from a README #362

Workflow file for this run

name: Tests
on:
pull_request:
branches: ["main"]
push:
branches: ["main"]
jobs:
helm-ct-lint:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
helm-version:
- v3.16.4
- v4.2.0
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/setup-helm@v5
with:
version: ${{ matrix.helm-version }}
- name: Set up chart-testing
uses: helm/chart-testing-action@v2.8.0
- name: Run ct lint
run: ct lint --config .github/ct.yaml --all
helm-unittest:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
helm-version:
- v3.16.4
- v4.2.0
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/setup-helm@v5
with:
version: ${{ matrix.helm-version }}
- name: Install helm-unittest plugin
# `helm plugin install --version` does NOT pin to a git tag — it
# clones the default branch. Clone the v1.0.3 tag explicitly and
# install from local path. v1.0.3 is the latest helm-unittest
# release whose plugin.yaml does NOT use the `platformHooks` field;
# v1.1.0+ adds that field, which Helm 3.16.4 rejects during
# plugin.yaml parsing. Pinning to v1.0.3 keeps both matrix variants
# (Helm 3 and Helm 4) compatible.
# Local-path install also sidesteps Helm 4's signature verification.
run: |
git clone --depth 1 --branch v1.0.3 https://github.com/helm-unittest/helm-unittest /tmp/helm-unittest
helm plugin install /tmp/helm-unittest
- name: Run helm unittest
run: helm unittest charts/graylog
# helm-unittest can only assert on rendered text. These two run the shipped
# shell scripts for real: the preStop drain against a stubbed metrics
# endpoint, and the init script against fixture volumes (including the
# upgrade path, where an existing volume must not be clobbered).
- name: preStop drain behaviour tests
run: sh charts/graylog/tests/scripts/prestop-drain-behavior-test.sh
- name: init-script behaviour tests
# always() so a drain failure above does not hide an init failure here.
if: always()
run: sh charts/graylog/tests/scripts/init-graylog-behavior-test.sh
helm-ct-install:
runs-on: ubuntu-latest
needs: [helm-ct-lint, helm-unittest]
strategy:
fail-fast: false
# Asymmetric K8s × Helm matrix: full K8s coverage on Helm 3 (the chart's
# stated minimum per docs/TESTING.md), with Helm 4 added as bonus coverage
# on the most recent K8s version. Expand by adding more `include:` entries.
matrix:
include:
- helm-version: v3.16.4
k8s-version: v1.32.11
- helm-version: v3.16.4
k8s-version: v1.33.7
- helm-version: v3.16.4
k8s-version: v1.34.3
- helm-version: v4.2.0
k8s-version: v1.34.3
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/setup-helm@v5
with:
version: ${{ matrix.helm-version }}
- name: Set up chart-testing
uses: helm/chart-testing-action@v2.8.0
- name: Create kind cluster
uses: helm/kind-action@v1.14.0
with:
node_image: kindest/node:${{ matrix.k8s-version }}
- name: Install MongoDB Kubernetes Operator
run: |
helm upgrade --install mongodb-kubernetes-operator mongodb-kubernetes \
--repo https://mongodb.github.io/helm-charts \
--version "1.6.1" \
--set operator.watchNamespace="*" \
--namespace operators \
--create-namespace \
--wait \
--timeout 5m
- name: Generate ephemeral CI rootPassword and mask in workflow logs
id: ci-root-password
run: |
password=$(openssl rand -hex 16)
echo "::add-mask::${password}"
echo "value=${password}" >> "$GITHUB_OUTPUT"
- name: Run ct install
run: |
ct install --config .github/ct.yaml --all \
--helm-extra-set-args "\
--set graylog.config.rootPassword=${{ steps.ci-root-password.outputs.value }} \
--set graylog.replicas=1 \
--set datanode.replicas=1 \
--set mongodb.replicas=1 \
--set mongodb.arbiters=0 \
--set graylog.resources.requests.cpu=250m \
--set graylog.resources.requests.memory=512Mi \
--set-string graylog.resources.limits.cpu=1 \
--set graylog.resources.limits.memory=1Gi \
--set datanode.resources.requests.cpu=250m \
--set datanode.resources.requests.memory=1Gi \
--set-string datanode.resources.limits.cpu=1 \
--set datanode.resources.limits.memory=2Gi"