diff --git a/.github/chart-releaser.nix b/.github/chart-releaser.nix index 9f3b481187..80af5d2be5 100644 --- a/.github/chart-releaser.nix +++ b/.github/chart-releaser.nix @@ -11,7 +11,7 @@ buildGoModule rec { pname = "chart-releaser"; - version = "1.6.0"; + version = "1.8.1"; # Don't run tests. doCheck = false; @@ -21,10 +21,10 @@ buildGoModule rec { owner = "helm"; repo = pname; rev = "v${version}"; - hash = "sha256-rPNGg4nrDFIa1PAw3efFU/pQub33+QD0vNFu8kiU2/E="; + hash = "sha256-h1czHb/xK+kOEK4TJhMnwnLeVmQm52C8dTUy+fahJ90="; }; - vendorHash = "sha256-zBVAER1RJy449GUndvQkG8R84vOuL+IN4exjETVHp9k="; + vendorHash = "sha256-nUqUtm7SUKNEITzFJ4gozlegqGtyiRNGKDyOqteGYTw="; postPatch = '' substituteInPlace pkg/config/config.go \ diff --git a/.github/ct-operator.yaml b/.github/ct-operator.yaml deleted file mode 100644 index 603aaf1eb8..0000000000 --- a/.github/ct-operator.yaml +++ /dev/null @@ -1,22 +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. -debug: true -remote: origin -target-branch: main -helm-extra-args: --timeout 600s -chart-repos: - - redpanda=https://charts.redpanda.com -charts: - - charts/operator diff --git a/.github/ct-redpanda.yaml b/.github/ct-redpanda.yaml deleted file mode 100644 index 69cf541f87..0000000000 --- a/.github/ct-redpanda.yaml +++ /dev/null @@ -1,22 +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. -debug: true -remote: origin -target-branch: main -helm-extra-args: --timeout 600s -chart-repos: - - redpanda=https://charts.redpanda.com -charts: - - charts/redpanda diff --git a/.github/docker-tag-list.nix b/.github/docker-tag-list.nix deleted file mode 100644 index 4b8937e234..0000000000 --- a/.github/docker-tag-list.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ buildGoModule -, fetchFromGitHub -, lib -}: - -buildGoModule rec { - pname = "docker-tag-list"; - version = "1.0.1"; - - # Don't run tests. - doCheck = false; - doInstallCheck = false; - - src = fetchFromGitHub { - owner = "joejulian"; - repo = pname; - rev = "v${version}"; - hash = "sha256-iT+GIiO3YQWrOHMD1NoSbwtJLEspCYtKFQcTKicRttc="; - }; - - vendorHash = "sha256-YzDIwLdz6ETZi4y1Eqa8/EizLVqxGirGJCLBmjztNg8="; - - meta = with lib; { - description = "print lists of docker image tags"; - homepage = "https://github.com/joejulian/docker-tag-list"; - license = licenses.asl20; - mainProgram = "docker-tag-list"; - }; -} diff --git a/.github/setup-envtest.nix b/.github/setup-envtest.nix deleted file mode 100644 index 96b65caa0c..0000000000 --- a/.github/setup-envtest.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ buildGoModule -, fetchFromGitHub -, lib -}: - -buildGoModule rec { - pname = "setup-envtest"; - version = "0.18.2"; - - # Don't run tests. - doCheck = false; - doInstallCheck = false; - - src = fetchFromGitHub { - owner = "kubernetes-sigs"; - repo = "controller-runtime"; - rev = "v${version}"; - hash = "sha256-fQgWwndxzBIi3zsNMYvFDXjetnaQF0NNK+qW8j4Wn/M="; - }; - - sourceRoot = "source/tools/setup-envtest"; - - vendorHash = "sha256-Xr5b/CRz/DMmoc4bvrEyAZcNufLIZOY5OGQ6yw4/W9k="; - - meta = with lib; { - description = "A small tool that manages binaries for envtest"; - homepage = "https://github.com/kubernetes-sigs/controller-runtime/tree/main/tools/setup-envtest"; - license = licenses.asl20; - mainProgram = "setup-envtest"; - }; -} diff --git a/.github/workflows/nightly.yaml b/.github/workflows/nightly.yaml deleted file mode 100644 index 789f92858f..0000000000 --- a/.github/workflows/nightly.yaml +++ /dev/null @@ -1,166 +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. - -# This is to test only the Redpanda Chart Nightly -name: Nightly - Lint/Test Redpanda-Chart -defaults: - run: - shell: nix develop --impure --command bash {0} -on: - schedule: - - cron: '0 1 * * 1-5' # 01:00 AM UTC Monday - Friday - workflow_dispatch: {} -jobs: - lint: - runs-on: ubuntu-22.04 - steps: - - uses: cachix/install-nix-action@v31 - with: - github_access_token: ${{ secrets.GITHUB_TOKEN }} - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - run: | - git checkout main - git checkout - - - name: Run chart-testing (lint) - run: ct lint --config .github/ct-redpanda.yaml - test: - name: Run ct tests for ci values matching ${{ matrix.testvaluespattern }} for Redpanda version ${{ matrix.version }} - strategy: - matrix: - version: - - "" # Test the default / Most recent version of Redpanda. - - v24.1.16 - - v23.3.20 - testvaluespattern: - - '0[1-3]*' - - '0[4-6]*' - - '0[7-9]*' - - '1[0-1]*' - - '12*' - - '13*' - - '14*' - - '15*' - - '1[6-7]*' - - '18*' - - '9[7-9]*' # some tests depend on a github secret that isn't available for fork PRs. Only run these tests in branch PRs. - fail-fast: false - runs-on: ubuntu-22.04 - permissions: - contents: read - id-token: write - steps: - - uses: aws-actions/configure-aws-credentials@v4 - with: - aws-region: ${{ vars.RP_AWS_CRED_REGION }} - role-to-assume: arn:aws:iam::${{ secrets.RP_AWS_CRED_ACCOUNT_ID }}:role/${{ vars.RP_AWS_CRED_BASE_ROLE_NAME }}${{ github.event.repository.name }} - - uses: aws-actions/aws-secretsmanager-get-secrets@v2 - with: - secret-ids: | - ,sdlc/prod/github/redpanda_sample_license - parse-json-secrets: true - - uses: cachix/install-nix-action@v31 - with: - github_access_token: ${{ secrets.GITHUB_TOKEN }} - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - run: | - git checkout main - git checkout - - - name: Set up for matrix - run: | - echo bash -O extglob -c "rm -v charts/redpanda/ci/!(${{ matrix.testvaluespattern }})" - bash -O extglob -c "rm -v charts/redpanda/ci/!(${{ matrix.testvaluespattern }})" - - name: Create kind cluster - uses: helm/kind-action@a1b0e391336a6ee6713a0583f8c6240d70863de3 # v1.12.0 - with: - config: .github/kind.yaml - - name: Check kind config worked - run: kubectl get nodes - - name: Annotate nodes for rack awareness - run: .github/annotate_kind_nodes.sh chart-testing - # ===== Required Test Files === start - - name: Create tls helm templates - run: .github/create_tls.sh "random-domain" - - name: Create sasl secret templates - run: .github/create-sasl-secret.sh "some-users" - - name: Move files to redpanda template dir - run: | - mv external-tls-secret.yaml charts/redpanda/templates/ - cp .github/external-service.yaml charts/redpanda/templates/ - mv some-users-updated.yaml charts/redpanda/templates - - name: Create redpanda license secret - env: - REDPANDA_LICENSE: ${{ env.REDPANDA_SAMPLE_LICENSE }} - run: | - if [ -z "$REDPANDA_LICENSE" ]; then echo "License is empty" ; exit 1; fi - - kubectl create secret generic redpanda-license \ - --from-literal=license-key="$REDPANDA_LICENSE" \ - --dry-run=client \ - -o yaml \ - > redpanda-license.yaml.tmp - - kubectl annotate -f redpanda-license.yaml.tmp \ - helm.sh/hook-delete-policy="before-hook-creation" \ - helm.sh/hook="pre-install" \ - helm.sh/hook-weight="-100" \ - --local \ - --dry-run=none \ - -o yaml \ - > redpanda-license.yaml - - rm redpanda-license.yaml.tmp - - mv redpanda-license.yaml ./charts/redpanda/templates/ - # ===== Required Test Files === end - - name: Install cert-manager - run: | - helm repo add jetstack https://charts.jetstack.io && - helm install cert-manager --namespace cert-manager \ - --create-namespace --version v1.12.16 jetstack/cert-manager \ - --set installCRDs=true --wait --wait-for-jobs - - name: Install prometheus-operator - run: | - helm repo add prometheus-community https://prometheus-community.github.io/helm-charts && - helm install prometheus prometheus-community/kube-prometheus-stack \ - --namespace prometheus \ - --create-namespace \ - --set prometheus.prometheusSpec.serviceMonitorSelectorNilUsesHelmValues=false \ - --set nodeExporter.enabled=false \ - --set grafana.enabled=false \ - --set kubeStateMetrics.enabled=false \ - --set alertmanager.enabled=false \ - --wait \ - --wait-for-jobs - - name: Install metallb - run: | - helm repo add metallb https://metallb.github.io/metallb && - helm install metallb metallb/metallb -n metallb-system \ - --create-namespace --version 0.13.10 --wait --wait-for-jobs - - name: Apply metallb resources - run: kubectl -n metallb-system apply -f .github/metallb-config.yaml - # we're testing console in the Redpanda chart - - name: Run chart-testing (install and upgrade) - run: | - ct install \ - --github-groups \ - --upgrade \ - --config .github/ct-redpanda.yaml \ - --helm-extra-set-args="--set=image.tag=${{ matrix.version }}" \ - --skip-missing-values diff --git a/.github/workflows/nightly_redpanda_tip.yaml b/.github/workflows/nightly_redpanda_tip.yaml deleted file mode 100644 index 90eceb2a85..0000000000 --- a/.github/workflows/nightly_redpanda_tip.yaml +++ /dev/null @@ -1,96 +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. - -# This is to test only the Redpanda Chart Nightly -name: Nightly - Lint/Test Redpanda-Chart With Latest Unstable (RC) Redpanda -on: - schedule: - - cron: '0 2 * * 1-5' # 01:00 AM UTC Monday - Friday - workflow_dispatch: {} -defaults: - run: - shell: nix develop --impure --command bash {0} -jobs: - test-redpanda-nightly: - name: Run ct tests for ci values matching ${{ matrix.testvaluespattern }} for Redpanda nightly build - strategy: - matrix: - testvaluespattern: - - '0[1-3]*' - - '0[4-6]*' - - '0[7-9]*' - - '1[0-1]*' - - '12*' - - '13*' - - '14*' - - '15*' - - '1[6-7]*' - - '18*' - fail-fast: false - runs-on: ubuntu-22.04 - steps: - - uses: cachix/install-nix-action@v31 - with: - github_access_token: ${{ secrets.GITHUB_TOKEN }} - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - run: | - git checkout main - git checkout - - - name: Set up for matrix - run: | - echo bash -O extglob -c "rm -v charts/redpanda/ci/!(${{ matrix.testvaluespattern }})" - bash -O extglob -c "rm -v charts/redpanda/ci/!(${{ matrix.testvaluespattern }})" - - run: go install github.com/joejulian/docker-tag-list@latest - - name: Get latest nightly tag - id: latestTag - run: | - export TAG=$(curl "https://hub.docker.com/v2/namespaces/redpandadata/repositories/redpanda-unstable/tags?page_size=25" | jq -r '.results | map(select(.images | length >= 2))[0].name') - echo "Latest RC: $TAG" - echo "TAG=$TAG" >> "$GITHUB_OUTPUT" - - name: Create kind cluster - uses: helm/kind-action@a1b0e391336a6ee6713a0583f8c6240d70863de3 # v1.12.0 - with: - config: .github/kind.yaml - - name: Check kind config worked - run: kubectl get nodes - - name: Annotate nodes for rack awareness - run: .github/annotate_kind_nodes.sh chart-testing - # ===== Required Test Files === start - - name: Create tls helm templates - run: .github/create_tls.sh "random-domain" - - name: Create sasl secret templates - run: .github/create-sasl-secret.sh "some-users" - - name: Move files to redpanda template dir - run: | - mv external-tls-secret.yaml charts/redpanda/templates/ - cp .github/external-service.yaml charts/redpanda/templates/ - mv some-users-updated.yaml charts/redpanda/templates - # ===== Required Test Files === end - - name: Install cert-manager - run: task helm:install:cert-manager - - name: Install prometheus-operator - run: task helm:install:kube-prometheus-stack - - name: Install metallb - run: task helm:install:metallb - - name: Run chart-testing install - run: | - ct install \ - --github-groups \ - --config .github/ct-redpanda.yaml \ - --helm-extra-set-args="--set=image.tag=${{ steps.latestTag.outputs.TAG }} --set=image.repository=redpandadata/redpanda-unstable" \ - --skip-missing-values diff --git a/.github/workflows/nightly_version_checks.yaml b/.github/workflows/nightly_version_checks.yaml deleted file mode 100644 index 24a2a0d49b..0000000000 --- a/.github/workflows/nightly_version_checks.yaml +++ /dev/null @@ -1,95 +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. - -name: Nightly version checks -on: - schedule: - - cron: '0 1 * * 1-5' # 01:00 AM UTC Monday - Friday - workflow_dispatch: {} -defaults: - run: - shell: nix develop --impure --command bash {0} -jobs: - redpanda-version: - strategy: - matrix: - chart: - - redpanda - - console - # Operator changed it's versioning scheme, so that version checks wrongly open PRs - # - operator - fail-fast: false - runs-on: ubuntu-22.04 - permissions: - contents: write - id-token: write - steps: - - uses: aws-actions/configure-aws-credentials@v4 - with: - aws-region: ${{ vars.RP_AWS_CRED_REGION }} - role-to-assume: arn:aws:iam::${{ secrets.RP_AWS_CRED_ACCOUNT_ID }}:role/${{ vars.RP_AWS_CRED_BASE_ROLE_NAME }}${{ github.event.repository.name }} - - uses: aws-actions/aws-secretsmanager-get-secrets@v2 - with: - secret-ids: | - ,sdlc/prod/github/actions_bot_token - parse-json-secrets: true - - uses: nixbuild/nix-quick-install-action@v32 - with: - github_access_token: ${{ secrets.GITHUB_TOKEN }} - # Cache the nix store. - - uses: nix-community/cache-nix-action@v6 - with: - primary-key: nix-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/*.nix', '**/flake.lock') }} - restore-prefixes-first-match: nix-${{ runner.os }}-${{ runner.arch }} - # Try to checkout a branch with the same name as provided in the dispatch - - uses: actions/checkout@v4 - id: checkout - with: - ref: main - fetch-depth: 0 - token: ${{ env.ACTIONS_BOT_TOKEN }} - continue-on-error: true - # If we couldn't checkout the provided branch, we will checkout the default branch - # instead. We assume that the branch does not yet exist, but we will create it, - # when we commit the updated dependencies. - - uses: actions/checkout@v4 - if: ${{ steps.checkout.outcome != 'success' }} - with: - token: ${{ env.ACTIONS_BOT_TOKEN }} - fetch-depth: 0 - - run: go install github.com/joejulian/docker-tag-list@latest - - name: Check chart version for ${{ matrix.chart }} - id: chartversion - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: .github/bump_chart_versions.sh ${{ matrix.chart }} - - run: task ci:lint - - name: Debug -- delete me - run: | - echo TITLE - echo steps.chartversion.outputs.TITLE - echo INPUT_BODY - echo "${INPUT_BODY}" - echo CHANGED - echo steps.chartversion.outputs.CHANGED - - name: Create PR - if: steps.chartversion.outputs.CHANGED == 'true' - uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8 - with: - title: ${{ steps.chartversion.outputs.TITLE }} - commit-message: ${{ steps.chartversion.outputs.TITLE }} - body-path: ${{ steps.chartversion.outputs.BODY_FILE }} - branch: bump-appversion/${{ matrix.chart }} diff --git a/.github/workflows/pull_requests.yaml b/.github/workflows/pull_requests.yaml index 33d2c8028f..5bbcc3a351 100644 --- a/.github/workflows/pull_requests.yaml +++ b/.github/workflows/pull_requests.yaml @@ -33,10 +33,7 @@ jobs: outputs: charts-connectors: ${{ steps.chart-changes.outputs.charts-connectors }} charts-connect: ${{ steps.chart-changes.outputs.charts-connect }} - charts-console: ${{ steps.chart-changes.outputs.charts-console }} charts-kminion: ${{ steps.chart-changes.outputs.charts-kminion }} - charts-operator: ${{ steps.chart-changes.outputs.charts-operator }} - charts-redpanda: ${{ steps.chart-changes.outputs.charts-redpanda }} go-code: ${{ steps.chart-changes.outputs.go-code }} steps: - uses: actions/checkout@v4 @@ -49,17 +46,6 @@ jobs: # accidentally # break the other chart workflows right now. Please # ensure that you exercise changes to those files manually. filters: | - charts-redpanda: - - '.github/workflows/test_redpanda.yaml' - - 'charts/redpanda/ci/*' - - 'charts/redpanda/files/*' - - 'charts/redpanda/templates/**' - - 'charts/redpanda/(.helmignore|values.schema.json|Chart.yaml|values.yaml)' - charts-console: - - 'charts/console/ci/*' - - 'charts/console/files/*' - - 'charts/console/templates/**' - - 'charts/console/(.helmignore|values.schema.json|Chart.yaml|values.yaml)' charts-connectors: - '.github/workflows/test_connectors.yaml' - 'charts/connectors/ci/*' @@ -72,12 +58,6 @@ jobs: - 'charts/kminion/files/*' - 'charts/kminion/templates/**' - 'charts/kminion/(.helmignore|values.schema.json|Chart.yaml|values.yaml)' - charts-operator: - - '.github/workflows/test_operator.yaml' - - 'charts/operator/ci/*' - - 'charts/operator/files/*' - - 'charts/operator/templates/**' - - 'charts/operator/(.helmignore|values.schema.json|Chart.yaml|values.yaml)' charts-connect: - 'charts/connect/ci/*' - 'charts/connect/files/*' @@ -117,11 +97,6 @@ jobs: restore-prefixes-first-match: nix-${{ runner.os }}-${{ runner.arch }} - uses: actions/checkout@v4 - run: go test ./... -short - test-charts-redpanda: - needs: [changes, lint] - if: ${{ needs.changes.outputs.charts-redpanda == 'true' }} - uses: ./.github/workflows/test_redpanda.yaml - secrets: inherit test-charts-connectors: needs: [changes, lint] if: ${{ needs.changes.outputs.charts-connectors == 'true' }} @@ -132,11 +107,6 @@ jobs: if: ${{ needs.changes.outputs.charts-kminion == 'true' }} uses: ./.github/workflows/test_kminion.yaml secrets: inherit - test-charts-operator: - needs: [changes, lint] - if: ${{ needs.changes.outputs.charts-operator == 'true' }} - uses: ./.github/workflows/test_operator.yaml - secrets: inherit test-charts-connect: needs: [changes, lint] if: ${{ needs.changes.outputs.charts-connect == 'true' }} @@ -149,13 +119,11 @@ jobs: - test-charts-connectors - test-charts-connect - test-charts-kminion - - test-charts-operator - - test-charts-redpanda - test-go runs-on: ubuntu-22.04 steps: - name: Summarize the results of the test matrix pass/fail uses: re-actors/alls-green@release/v1 with: - allowed-skips: test-go, test-charts-connectors, test-charts-kminion, test-charts-operator, test-charts-redpanda, test-charts-connect + allowed-skips: test-go, test-charts-connectors, test-charts-kminion, test-charts-connect jobs: ${{ toJSON(needs)}} diff --git a/.github/workflows/pull_requests_from_origin.yaml b/.github/workflows/pull_requests_from_origin.yaml deleted file mode 100644 index ce35d6e569..0000000000 --- a/.github/workflows/pull_requests_from_origin.yaml +++ /dev/null @@ -1,148 +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. - -name: Test using secrets -on: - pull_request: - paths: - - '.github/*.sh' - - '.github/ct-redpanda.yaml' - - '.github/kind.yaml' - - '.github/workflows/pull_requests_from_origin.yaml' - - 'charts/**' - - 'charts/console/**' - - 'charts/redpanda/**' - - '!charts/connectors/**' - - '!charts/kminion/**' - - '!charts/operator/**' - - '!**/*.md' -defaults: - run: - shell: nix develop --impure --command bash {0} -jobs: - test: - if: ${{ github.event.pull_request.head.repo.full_name == 'redpanda-data/helm-charts' }} - name: "${{ matrix.version }}/${{ matrix.testvaluespattern }}: Run ct tests" - strategy: - matrix: - version: - # See also: https://redpandadata.atlassian.net/wiki/spaces/CORE/pages/16711857/Releases+Backports - - v23.3.20 - - v24.1.16 - - "" # Test the default / Most recent version of Redpanda. - testvaluespattern: - - '9[6-9]*' # some tests depend on a github secret that isn't available for fork PRs. Only run these tests in branch PRs. - fail-fast: false - runs-on: ubuntu-22.04 - permissions: - contents: read - id-token: write - steps: - - uses: aws-actions/configure-aws-credentials@v4 - with: - aws-region: ${{ vars.RP_AWS_CRED_REGION }} - role-to-assume: arn:aws:iam::${{ secrets.RP_AWS_CRED_ACCOUNT_ID }}:role/${{ vars.RP_AWS_CRED_BASE_ROLE_NAME }}${{ github.event.repository.name }} - - uses: aws-actions/aws-secretsmanager-get-secrets@v2 - with: - secret-ids: | - ,sdlc/prod/github/redpanda_sample_license - parse-json-secrets: true - - uses: cachix/install-nix-action@v31 - with: - github_access_token: ${{ secrets.GITHUB_TOKEN }} - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - run: | - git checkout main - git checkout - - # we're excluding console from testing - # until we have a way to test it with Redpanda - - name: Run chart-testing (list-changed) - id: list-changed - run: | - changed=$(ct list-changed --target-branch ${{ github.event.repository.default_branch }} --config .github/ct-redpanda.yaml) - echo "$changed" - if [[ -n "$changed" ]]; then - echo changed="true" >> "$GITHUB_OUTPUT" - fi - - name: Set up for matrix - if: steps.list-changed.outputs.changed == 'true' - run: | - echo bash -O extglob -c "rm -v charts/redpanda/ci/!(${{ matrix.testvaluespattern }})" - bash -O extglob -c "rm -v charts/redpanda/ci/!(${{ matrix.testvaluespattern }})" - - name: Create kind cluster - uses: helm/kind-action@a1b0e391336a6ee6713a0583f8c6240d70863de3 # v1.12.0 - if: steps.list-changed.outputs.changed == 'true' - with: - config: .github/kind.yaml - - name: Check kind config worked - if: steps.list-changed.outputs.changed == 'true' - run: kubectl get nodes - - name: Annotate nodes for rack awareness - if: steps.list-changed.outputs.changed == 'true' - run: .github/annotate_kind_nodes.sh chart-testing - - name: Create redpanda license secret - if: steps.list-changed.outputs.changed == 'true' - env: - REDPANDA_LICENSE: ${{ env.REDPANDA_SAMPLE_LICENSE }} - run: | - if [ -z "$REDPANDA_LICENSE" ]; then echo "License is empty" ; exit 1; fi - - envsubst \ - < ./charts/redpanda/ci/97-license-key-values.yaml.tpl \ - > ./charts/redpanda/ci/97-license-key-values.yaml - envsubst \ - < ./charts/redpanda/ci/96-audit-logging-values.yaml.tpl \ - > ./charts/redpanda/ci/96-audit-logging-values.yaml - - kubectl create secret generic redpanda-license \ - --from-literal=license-key="$REDPANDA_LICENSE" \ - --dry-run=client \ - -o yaml \ - > redpanda-license.yaml.tmp - - kubectl annotate -f redpanda-license.yaml.tmp \ - helm.sh/hook-delete-policy="before-hook-creation" \ - helm.sh/hook="pre-install" \ - helm.sh/hook-weight="-100" \ - --local \ - --dry-run=none \ - -o yaml \ - > redpanda-license.yaml - - rm redpanda-license.yaml.tmp - - mv redpanda-license.yaml ./charts/redpanda/templates/ - - name: Install cert-manager - if: steps.list-changed.outputs.changed == 'true' - run: task helm:install:cert-manager - - name: Install prometheus-operator - if: steps.list-changed.outputs.changed == 'true' - run: task helm:install:kube-prometheus-stack - - name: Install metallb - if: steps.list-changed.outputs.changed == 'true' - run: task helm:install:metallb - - name: Run chart-testing (install and upgrade) - if: steps.list-changed.outputs.changed == 'true' - run: | - ct install \ - --github-groups \ - --upgrade \ - --config .github/ct-redpanda.yaml \ - --helm-extra-set-args="--set=image.tag=${{ matrix.version }}" \ - --skip-missing-values \ - --target-branch ${{ github.event.repository.default_branch }} diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index e0289aedee..c7f6623137 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -24,7 +24,6 @@ on: push: branches: - main - - 'release/**' defaults: run: shell: nix develop --impure --command bash {0} diff --git a/.github/workflows/release_from_operator.yaml b/.github/workflows/release_from_operator.yaml new file mode 100644 index 0000000000..bd5e3152de --- /dev/null +++ b/.github/workflows/release_from_operator.yaml @@ -0,0 +1,127 @@ +--- +# 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. + +# This workflow piggy backs on chart-releaser to release charts hosted in the +# redpanda-operator repo. It's idempotent, processes the last 30 releases, and +# may be triggered by a workflow in the operator or manually. +name: Sync Operator Repo Releases +on: + # For manually dispatching. + workflow_dispatch: {} + # For remote dispatching from other workflows via https://github.com/peter-evans/repository-dispatch + repository_dispatch: + types: [sync-operator-repo-releases] +defaults: + run: + shell: nix develop --impure --command bash {0} +jobs: + release: + runs-on: ubuntu-latest + permissions: + contents: write + id-token: write + strategy: + max-parallel: 1 # Only permit a single job to run at a time. + matrix: + include: + # Because there's no way to handle both charts/ and operator/ + # tags, we have to run chart-releaser twice for each tag prefix. + - release_prefix: charts + release_name_template: 'charts/{{ .Name }}/v{{.Version}}' + - release_prefix: operator + release_name_template: 'operator/v{{.Version}}' + + steps: + - uses: aws-actions/configure-aws-credentials@v4 + with: + aws-region: ${{ vars.RP_AWS_CRED_REGION }} + role-to-assume: arn:aws:iam::${{ secrets.RP_AWS_CRED_ACCOUNT_ID }}:role/${{ vars.RP_AWS_CRED_BASE_ROLE_NAME }}${{ github.event.repository.name }} + - uses: aws-actions/aws-secretsmanager-get-secrets@v2 + with: + secret-ids: | + ,sdlc/prod/github/actions_bot_token + parse-json-secrets: true + - uses: nixbuild/nix-quick-install-action@v31 + with: + github_access_token: ${{ secrets.GITHUB_TOKEN }} + # Cache the nix store. + - uses: nix-community/cache-nix-action@v6 + with: + primary-key: nix-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/*.nix', '**/flake.lock') }} + restore-prefixes-first-match: nix-${{ runner.os }}-${{ runner.arch }} + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + fetch-tags: true + token: ${{ env.ACTIONS_BOT_TOKEN }} + + # Chart releaser needs a git configuration to push charts. + - name: Configure git + run: | + git config --global user.name 'vbotbuildovich' + git config --global user.email 'vbotbuildovich@users.noreply.github.com' + git config --global --add --bool push.autoSetupRemote true + + - name: Pull and Index Releases + env: + GH_TOKEN: ${{ github.token }} + run: | + set -ex + + mkdir -p ".cr-index" + mkdir -p ".cr-release-packages" + + releases=$(gh release list \ + --repo redpanda-data/redpanda-operator \ + --limit 30 \ + --order desc \ + --json 'tagName' \ + --jq '.[].tagName | select(startswith("${{ matrix.release_prefix }}/"))') + + # For all found releases, download any assets ending in *.tgz. For + # some reason, chart-releaser uses the presence of the archives to + # use then search releases. + # https://github.com/helm/chart-releaser/blob/e9ec4ade041d933be7c204751d1101bf4a7dde96/pkg/releaser/releaser.go#L134-L139 + for tag in $releases; do + # Some releases may not have a .tgz, so this command may fail. + gh release download "$tag" --repo redpanda-data/redpanda-operator --dir ".cr-release-packages" -p '*.tgz' || true + done + + # gh release download tries to be cute with it's terminal output + # which makes debugging a bit difficult. List out any downloaded + # charts for better visibility. + ls -lah .cr-release-packages + + # Instruct chart-releaser to update / rebuild the index file based on + # the releases we pulled. This operation is idempotent and no change + # will be pushed if no new releases are discovered. + cr index \ + --push \ + --owner redpanda-data \ + --git-repo redpanda-operator \ + --release-name-template '${{ matrix.release_name_template }}' + + # Uncomment this block for debugging output. cr index makes changes + # to a worktree which makes it difficult to inspect index.yaml + # without pushing it to a PR commit directly. + # mv .cr-index/index.yaml index.yaml + # git add index.yaml + # git fetch origin + # git diff origin/gh-pages -- index.yaml + + # Clear out any pulled releases. + rm -rf ".cr-index" + rm -rf ".cr-release-packages" diff --git a/.github/workflows/test_operator.yaml b/.github/workflows/test_operator.yaml deleted file mode 100644 index c630a0e6c1..0000000000 --- a/.github/workflows/test_operator.yaml +++ /dev/null @@ -1,74 +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. - -name: Test Operator Chart -on: - workflow_call: - inputs: {} - secrets: {} -defaults: - run: - shell: nix develop --impure --command bash {0} -jobs: - test-operator: - name: Run ct tests for operator chart - strategy: - fail-fast: true - runs-on: ubuntu-22.04 - steps: - - uses: nixbuild/nix-quick-install-action@v32 - with: - github_access_token: ${{ secrets.GITHUB_TOKEN }} - # Cache the nix store. - - uses: nix-community/cache-nix-action@v6 - with: - primary-key: nix-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/*.nix', '**/flake.lock') }} - restore-prefixes-first-match: nix-${{ runner.os }}-${{ runner.arch }} - # Cache helm repositories. - - uses: actions/cache@v4 - with: - key: helm-repositories - path: | - ~/.cache/helm - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Create kind cluster - uses: helm/kind-action@a1b0e391336a6ee6713a0583f8c6240d70863de3 # v1.12.0 - with: - config: .github/kind.yaml - - name: Check kind config worked - run: kubectl get nodes - - name: Annotate nodes for rack awareness - run: .github/annotate_kind_nodes.sh chart-testing - - name: Install cert-manager - run: task helm:install:cert-manager - - name: Install CRDs - run: | - kubectl kustomize https://github.com/redpanda-data/redpanda-operator//src/go/k8s/config/crd?ref="$(yq -r .appVersion charts/operator/Chart.yaml)" | kubectl apply --server-side -f - - # Chart-testing requires there to be a branch on the local repository - # for diffing. This will create such a branch without performing a - # checkout. - - name: Fetch origin/main - run: git fetch origin ${{ github.event.repository.default_branch }}:${{ github.event.repository.default_branch }} - - name: Run chart-testing (install and upgrade) - run: | - ct install \ - --github-groups \ - --upgrade \ - --config .github/ct-operator.yaml \ - --skip-missing-values \ - --target-branch ${{ github.event.repository.default_branch }} diff --git a/.github/workflows/test_redpanda.yaml b/.github/workflows/test_redpanda.yaml deleted file mode 100644 index d65b99b176..0000000000 --- a/.github/workflows/test_redpanda.yaml +++ /dev/null @@ -1,117 +0,0 @@ ---- -name: Test Redpanda Chart -on: - workflow_call: - inputs: {} - secrets: {} -defaults: - run: - shell: nix develop --impure --command bash {0} -jobs: - test-redpanda: - name: "${{ matrix.version }}/${{ matrix.testvaluespattern }}: Run ct tests" - strategy: - matrix: - version: - # See also: https://redpandadata.atlassian.net/wiki/spaces/CORE/pages/16711857/Releases+Backports - - v24.1.16 - - v24.2.21 - - v24.3.9 - - v25.1.1 - - "" # Test the default / Most recent version of Redpanda. - testvaluespattern: - - '0[1-3]*' - - '0[4-6]*' - - '0[7-9]*' - - '1[0-1]*' - - '12*' - - '13*' - - '14*' - - '15*' - - '1[6-7]*' - - '18*' - fail-fast: false - runs-on: ubuntu-22.04 - steps: - - uses: nixbuild/nix-quick-install-action@v32 - with: - github_access_token: ${{ secrets.GITHUB_TOKEN }} - # Cache the nix store. - - uses: nix-community/cache-nix-action@v6 - with: - primary-key: nix-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/*.nix', '**/flake.lock') }} - restore-prefixes-first-match: nix-${{ runner.os }}-${{ runner.arch }} - # Cache helm repositories. - - uses: actions/cache@v4 - with: - key: helm-repositories - path: | - ~/.cache/helm - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - # we're excluding console from testing until we have a way to test it with Redpanda - - name: Run chart-testing (list-changed) - id: list-changed - run: | - changed=$(ct list-changed --target-branch ${{ github.event.repository.default_branch }} --config .github/ct-redpanda.yaml) - echo "$changed" - if [[ -n "$changed" ]]; then - echo changed="true" >> "$GITHUB_OUTPUT" - fi - - name: Set up for matrix - if: steps.list-changed.outputs.changed == 'true' - run: | - echo bash -O extglob -c "rm -v charts/redpanda/ci/!(${{ matrix.testvaluespattern }})" - bash -O extglob -c "rm -v charts/redpanda/ci/!(${{ matrix.testvaluespattern }})" - - name: Create kind cluster - uses: helm/kind-action@a1b0e391336a6ee6713a0583f8c6240d70863de3 # v1.12.0 - if: steps.list-changed.outputs.changed == 'true' - with: - config: .github/kind.yaml - - name: Check kind config worked - if: steps.list-changed.outputs.changed == 'true' - run: kubectl get nodes - - name: Annotate nodes for rack awareness - if: steps.list-changed.outputs.changed == 'true' - run: .github/annotate_kind_nodes.sh chart-testing - # ===== Required Test Files === start - - name: Create tls helm templates - if: steps.list-changed.outputs.changed == 'true' - run: .github/create_tls.sh "random-domain" - - name: Create sasl secret templates - if: steps.list-changed.outputs.changed == 'true' - run: .github/create-sasl-secret.sh "some-users" - - name: Move files to redpanda template dir - if: steps.list-changed.outputs.changed == 'true' - run: | - mv external-tls-secret.yaml charts/redpanda/templates/ - cp .github/external-service.yaml charts/redpanda/templates/ - mv some-users-updated.yaml charts/redpanda/templates/ - # ===== Required Test Files === end - - name: Install cert-manager - if: steps.list-changed.outputs.changed == 'true' - run: task helm:install:cert-manager - - name: Install prometheus-operator - if: steps.list-changed.outputs.changed == 'true' - run: task helm:install:kube-prometheus-stack - - name: Install metallb - if: steps.list-changed.outputs.changed == 'true' - run: task helm:install:metallb - # Chart-testing requires there to be a branch on the local repository - # for diffing. This will create such a branch without performing a - # checkout. - - name: Fetch origin/main - if: steps.list-changed.outputs.changed == 'true' - run: git fetch origin ${{ github.event.repository.default_branch }}:${{ github.event.repository.default_branch }} - - name: Run chart-testing (install and upgrade) - if: steps.list-changed.outputs.changed == 'true' - run: | - ct install \ - --github-groups \ - --upgrade \ - --config .github/ct-redpanda.yaml \ - --helm-extra-set-args="--set=image.tag=${{ matrix.version }}" \ - --skip-missing-values \ - --chart-dirs=charts/redpanda \ - --target-branch ${{ github.event.repository.default_branch }} diff --git a/.kube-linter.yaml b/.kube-linter.yaml deleted file mode 100644 index 70f26bd2d3..0000000000 --- a/.kube-linter.yaml +++ /dev/null @@ -1,10 +0,0 @@ - -# Details on checks can be found on this page and the like: https://docs.kubelinter.io/#/generated/checks -checks: - addAllBuiltIn: true - exclude: - - "unset-cpu-requirements" # Not every pod requires this, for example hooks, we can change opinion later - - "unset-memory-requirements" # Not every pod requires this, for example hooks, we can change opinion later - - "no-read-only-root-fs" # Some volume mounts require writes - - "required-annotation-email" # Not a requirement for out deployments - - "no-node-affinity" # Not every pod requires this diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 3c2069bfcb..0000000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,531 +0,0 @@ -# Change Log - -## Redpanda Chart - -### [Unreleased](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-FILLMEIN) - YYYY-MM-DD -#### Added -#### Changed -#### Fixed -#### Removed - -### [5.9.18](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.18) - 2024-12-20 -#### Added -#### Changed -#### Fixed -* Fixed an issue with the helm chart when SASL and Connectors were enabled that caused a volume to be mounted incorrectly. -#### Removed - -### [5.9.17](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.17) - 2024-12-17 -#### Added -#### Changed -* Default for tiered storage cache to `none` which will defer tiered storage cache path to Redpanda process. -#### Fixed -#### Removed - -### [5.9.16](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.16) - 2024-12-09 -#### Added -#### Changed -* Update sidecar container redpanda-operator container tag -#### Fixed -#### Removed - -### [5.9.15](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.15) - 2024-11-29 -#### Added -#### Changed -#### Fixed -* ability to overwrite annotation and labels in Job metadata -#### Removed -* non-existent post-upgrade-job values of the non-existent resource (removed in 5.9.6) - -### [5.9.14](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.14) - 2024-11-28 -#### Added -#### Changed -* note to indicate Core count decreasing will be possible starting from 24.3 Redpanda version -#### Fixed -* Fixed the description of `-memory` and `--reserve-memory` in docs. -#### Removed - -### [5.9.13](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.13) - 2024-11-27 -#### Added -* overriding any PodSpec fields from `PodTemplate` -#### Changed -* Bump Redpanda operator side car container tag to v2.3.1-24.3.1 -#### Fixed -#### Removed - -### [5.9.12](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.12) - 2024-11-22 -#### Added -#### Changed -* Chart version to update operator side-car container tag -#### Fixed -#### Removed - -### [5.9.11](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.11) - 2024-11-21 -#### Added -* Ability to generate Redpanda with Connector resources from go code -#### Changed -* Include all Connectors chart values in Redpanda chart values -#### Fixed -#### Removed - -### [5.9.10](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.10) - 2024-11-14 -#### Added -#### Changed -#### Fixed -* All occurrence of External Domain execution via tpl function -* Calculating Service typed LoadBalancer annotation based on external addresses (even single one) -* Fix connecting to the schema registry via rpk on nodes for versions of rpk that support a node-level rpk stanza. -#### Removed - -### [5.9.9](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.9) - 2024-10-24 -#### Added -* Strategic merge of Pod volumes and Container volumeMounts -#### Changed -* By default auto mount is disabled in ServiceAccount and Statefulset PodSpec -* Mount volume similar to auto mount functionality for ServiceAccount token when sidecar controllers are enabled -#### Fixed -* Passing console extra volume and volume mount in Redpanda chart -* implements `time.ParseDuration` in gotohelm (with limitations) -* updates the transpilation of `MustParseDuration` to properly re-serialize the provided duration -#### Removed - -### [5.9.8](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.8) - 2024-10-23 -#### Added -#### Changed -* Bump Redpanda app version -#### Fixed -* Increased the memory limits of `bootstrap-yaml-envsubst` to prevent hangs on aarch64 [#1564](https://github.com/redpanda-data/helm-charts/issues/1564). -#### Removed - -### [5.9.7](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.7) - 2024-10-14 -#### Added -#### Changed -* Bump Redpanda app version -#### Fixed -#### Removed - -### [5.9.6](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.6) - 2024-10-09 -#### Added -* Added the ability to override the name of the bootstrap user created when SASL authentication is enabled. [#1547](https://github.com/redpanda-data/helm-charts/pull/1547) -#### Changed -* The minimum Kubernetes version has been bumped to `1.25.0` -#### Fixed -* Chart render failures in tooling compiled with go < 1.19 (e.g. helm 3.10.x) have been fixed. -#### Removed -* `post_upgrade_job.*`, and the post-upgrade job itself, has been removed. All - it's functionality has been consolidated into the `post_install_job`, which - actually runs on both post-install and post-upgrade. - - The consolidated job now runs the redpanda-operator image, which may be - controlled the same way as the additional controllers: - `statefulset.controllers.{image,repository}`. - -### [5.9.5](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.5) - 2024-09-26 -#### Added -#### Changed -* Bump Redpanda container tag/application version [#1543](https://github.com/redpanda-data/helm-charts/pull/1543) -#### Fixed -* Connectors deployment [#1543](https://github.com/redpanda-data/helm-charts/pull/1543) -#### Removed - -### [5.9.4](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.4) - 2024-09-17 -#### Added -#### Changed -* Cluster configurations are no longer include in `redpanda.yaml` or the - Redpanda Statefulset's configuration hash. - - This change makes it possible to update cluster configurations without - initiating a rolling restart of the entire cluster. - - As has always been the case, users should consult `rpk cluster config status` - to determine if a rolling restart needs to be manually performed due to - cluster configuration changes. - - Cases requiring manual rolling restarts may increase as fewer chart - operations will initiate rolling restart of the cluster. -#### Fixed -* Fix initialization of configurations using RestToConfig when the passed in rest.Config contain on-disk value files. -#### Removed -* All zero, empty, or default cluster configurations have been removed from - `values.yaml` in favor of letting redpanda determine what the defaults will - be. - - Documentation of cluster configurations has also been removed in favor of - linking to Redpanda's docs. - -### [5.9.3](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.3) - 2024-09-11 -#### Added -* Add basic bootstrap user support (#1513) -#### Changed -#### Fixed -* When specified, `truststore_file` is no longer propagated to client configurations. -* If provided, `config.cluster.default_topic_replications` is now respected regardless of the value of `statefulset.replicas`. -#### Removed - -### [5.9.1](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.1) - 2024-8-19 -#### Added -#### Changed -#### Fixed -* The `truststores` projected volume no longer duplicates entries when the same - trust store is specified across multiple TLS configurations. -#### Removed - -### [5.9.0](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.0) - 2024-08-09 -#### Added -* `post_install_job.podTemplate` and `post_upgrade_job.podTemplate` have been - added, which allow overriding various aspects of the corresponding - `corev1.PodTemplate`. Notably, this field may be used to set labels and - annotations on the Pod produced by the Job which was not previously possible. -* `statefulset.podTemplate` has benefited from the above additions as well. - `statefulset.podTemplate.spec.securityContext` and - `statefulset.podTemplate.spec.containers[*].securityContext` may be used to - set/override the pod and container security contexts respectively. -* `appProtocol` added to the `listeners.admin` configuration -#### Changed -* The container name of the post-upgrade job is now statically set to - `post-upgrade` to facilitate strategic merge patching. -* The container name of the post-install job is now statically set to - `post-install` to facilitate strategic merge patching. -* `statefulset.securityContext`, `statefulset.podSecurityContext`, - `post_upgrade_job.securityContext`, and `post_install_job.securityContext` - have all been deprecated due to historically incorrect and confusing - behavior. The desire to preserve backwards compatibility and not suddenly - change sensitive fields has left us unable to cleanly correct said issues. - `{statefulset,post_upgrade_job,post_install_job}.podTemplate` may be used to - override either the Pod or Container security context. -#### Fixed -#### Removed - -### [5.8.15](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.8.15) - 2024-08-08 -#### Added -#### Changed -* Bump Redpanda version due to a bug in Redpanda -#### Fixed -* Fix mechanism check in superuser file creation -#### Removed - -### [5.8.14](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.8.14) - 2024-08-07 -#### Added -* unset `status` and `creationTimestamp` before rendering resource -#### Changed -* Convert connectors to go -* Bump redpanda, connectors, operator and console helm chart application version -#### Fixed -* Fix Redpanda node configuration generation, so that rpk can parse it -* Fix volume mounts in mTLS setup -* Correct boolean coalescing -#### Removed - -### [5.8.13](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.8.13) - 2024-07-25 -#### Added -#### Changed -* Updated `appVersion` to `v24.1.11` -#### Fixed -* Fixed a regression where `post_upgrade_job` would fail if TLS on the admin - listener was disabled but had `cert` set to an invalid cert (e.g. `""`) -* Fixed mTLS configurations between Redpanda and Console [#1402](https://github.com/redpanda-data/helm-charts/pull/1402) -* Fixed a typo in `statefulset.securityContext.allowPriviledgeEscalation`. Both the correct - and typoed name will be respected with the correct spelling taking - precedence. [#1413](https://github.com/redpanda-data/helm-charts/issues/1413) -#### Removed -* Validation of `issuerRef` has been removed to permit external Issuers. - [#1432](https://github.com/redpanda-data/helm-charts/issues/1432) - -### [5.8.12](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.8.12) - 2024-07-10 - -#### Added - -#### Changed -* `image.repository` longer needs to be the default value of - `"docker.redpanda.com/redpandadata/redpanda"` to respect version checks of - `image.tag` - ([#1334](https://github.com/redpanda-data/helm-charts/issues/1334)). -* `post_upgrade_job.extraEnv` and `post_upgrade_job.extraEnvFrom` no longer accept string inputs. - - Previously, they accepted either strings or structured fields. As the types - of this chart are reflected in the operator's CRD, we are bound by the - constraints of Kubernetes' CRDs, which do not support fields with multiple - types. We also noticed that the [CRD requires these fields to be structured - types](https://github.com/redpanda-data/redpanda-operator/blob/9fa7a7848a22ece215be36dd17f0e4c2ba0002f7/src/go/k8s/api/redpanda/v1alpha2/redpanda_clusterspec_types.go#L597-L600) - rather than strings. Too minimize the divergences between the two, we've - opted to drop support for string inputs here but preserve them elsewhere. - - Updating these fields, if they are strings, is typically a case of needing - to remove `|-`'s from one's values file. - - Before: - ```yaml - post_upgrade_job: - extraEnv: |- - - name: SPECIAL_LEVEL_KEY - valueFrom: - configMapKeyRef: - name: special-config - key: special.how - ``` - - After: - ```yaml - post_upgrade_job: - extraEnv: - - name: SPECIAL_LEVEL_KEY - valueFrom: - configMapKeyRef: - name: special-config - key: special.how - ``` - - If you were using a templated value and would like to see it added back, - please [file us an - issue](https://github.com/redpanda-data/helm-charts/issues/new/choose) and - tell us about your use case! - -#### Fixed -* Numeric node/broker configurations are now properly transcoded as numerics. - -#### Removed - -## Redpanda Operator Chart -### [Unreleased](https://github.com/redpanda-data/helm-charts/releases/tag/operator-FILLMEIN) - YYYY-MM-DD -#### Added -#### Changed -#### Fixed -#### Removed - -### [0.4.38](https://github.com/redpanda-data/helm-charts/releases/tag/operator-0.4.38) - 2024-12-20 -#### Added -#### Changed -* App version to match latest redpanda-operator release -#### Fixed -#### Removed - -### [0.4.37](https://github.com/redpanda-data/helm-charts/releases/tag/operator-0.4.37) - 2024-12-18 -#### Added -#### Changed -* App version to match latest redpanda-operator release -#### Fixed -#### Removed - -### [0.4.36](https://github.com/redpanda-data/helm-charts/releases/tag/operator-0.4.36) - 2024-12-09 -#### Added -#### Changed -* App version to match latest redpanda-operator release -#### Fixed -#### Removed - -### [0.4.35](https://github.com/redpanda-data/helm-charts/releases/tag/operator-0.4.35) - 2024-12-04 -#### Added -#### Changed -* to always mounting service account token regardless of auto mount property -#### Fixed -#### Removed - -### [0.4.34](https://github.com/redpanda-data/helm-charts/releases/tag/operator-0.4.34) - 2024-11-27 -#### Added -* overriding any PodSpec fields from `PodTemplate` -#### Changed -* Bump Redpanda Operator app version to latest release v2.3.2-24.3.1 -#### Fixed -#### Removed - -### [0.4.33](https://github.com/redpanda-data/helm-charts/releases/tag/operator-0.4.33) - 2024-11-22 -#### Added -* Missing permissions for ClusterRoles, ClusterRoleBindings, Horizontal Pod Autoscaler, cert-manager/Certificate, - cert-manager/Issuer, redpanda/Users, and redpanda/Schemas. -#### Changed -* Application version for newly operator release v2.3.0-24.3.1 -#### Fixed -#### Removed - -### [0.4.32](https://github.com/redpanda-data/helm-charts/releases/tag/operator-0.4.32) - 2024-10-31 -#### Added -* Strategic merge of Pod volumes -* Add new Schema custom resource RBAC rules -#### Changed -* The minimum Kubernetes version has been bumped to `1.25.0` -* Bump operator version [v2.2.5-24.2.7](https://github.com/redpanda-data/redpanda-operator/releases/tag/v2.2.5-24.2.7) -* By default auto mount is disabled in ServiceAccount and Deployment PodSpec -* Mount volume similar to auto mount functionality for ServiceAccount token -#### Fixed -* `--configurator-tag` now correctly falls back to `.appVersion` -#### Removed - -### [0.4.31](https://github.com/redpanda-data/helm-charts/releases/tag/operator-0.4.31) - 2024-10-7 -#### Added -#### Changed -* Bump operator version [v2.2.4-24.2.5](https://github.com/redpanda-data/redpanda-operator/releases/tag/v2.2.4-24.2.5) -#### Fixed -#### Removed - -### [0.4.30](https://github.com/redpanda-data/helm-charts/releases/tag/operator-0.4.30) - 2024-09-17 -#### Added -* Add RBAC rules for the operator chart so it can manage users -#### Changed -#### Fixed -#### Removed - -### [0.4.29](https://github.com/redpanda-data/helm-charts/releases/tag/operator-0.4.29) - 2024-09-11 -#### Added -#### Changed -* Allow to overwrite `appsv1.Deployment.Spec.PodTemplate` -* Bump operator version [v2.2.2-24.2.4](https://github.com/redpanda-data/redpanda-operator/releases/tag/v2.2.2-24.2.4) -* Translate operator helm chart to go. -#### Fixed -#### Removed - -### [0.4.28](https://github.com/redpanda-data/helm-charts/releases/tag/operator-0.4.28) - 2024-08-23 -#### Added -#### Changed -* Bump operator version [v2.2.0-24.2.2](https://github.com/redpanda-data/redpanda-operator/releases/tag/v2.2.0-24.2.2) -#### Fixed -#### Removed - -### [0.4.27](https://github.com/redpanda-data/helm-charts/releases/tag/operator-0.4.27) - 2024-08-08 -#### Added -#### Changed -* Bump operator version [v2.1.29-24.2.2](https://github.com/redpanda-data/redpanda-operator/releases/tag/v2.1.29-24.2.2) -#### Fixed -#### Removed - -### [0.4.26](https://github.com/redpanda-data/helm-charts/releases/tag/operator-0.4.26) - 2024-08-07 -#### Added -#### Changed -* Bump operator version [v2.1.28-24.2.1](https://github.com/redpanda-data/redpanda-operator/releases/tag/v2.1.28-24.2.1) -#### Fixed -* Fix e2e operator tests -#### Removed - -### [0.4.25](https://github.com/redpanda-data/helm-charts/releases/tag/operator-0.4.25) - 2024-07-17 -#### Added -#### Changed -* Updated `appVersion` to `v2.1.26-24.1.9` -#### Fixed -* Added missing permissions for the NodeWatcher controller (`rbac.createAdditionalControllerCRs`) -#### Removed - -## Connectors Chart -### [Unreleased](https://github.com/redpanda-data/helm-charts/releases/tag/connectors-FILLMEIN) - YYYY-MM-DD -#### Added -#### Changed -#### Fixed -#### Removed - -### [0.1.14](https://github.com/redpanda-data/helm-charts/releases/tag/connectors-0.1.14) - 2024-11-20 -#### Added -* Enabled flag that would be only used by Redpanda chart when partial values will be embedded into Redpanda values struct -#### Changed -* The minimum Kubernetes version has been bumped to `1.25.0` -* By default auto mount is disabled in ServiceAccount and Deployment PodSpec -* Use render function to generate all resources -#### Fixed -#### Removed - -### [0.1.13](https://github.com/redpanda-data/helm-charts/releases/tag/connectors-0.1.13) - 2024-09-26 -#### Added -#### Changed -* Test pod name will be stable (without randomization) [#1541](https://github.com/redpanda-data/helm-charts/pull/1541) -* Update connectors container tag/application version [#1541](https://github.com/redpanda-data/helm-charts/pull/1541) -#### Fixed -#### Removed - -### [0.1.12](https://github.com/redpanda-data/helm-charts/releases/tag/connectors-0.1.12) -#### Added -#### Changed -#### Fixed -#### Removed - -## Console Chart - -### [Unreleased](https://github.com/redpanda-data/helm-charts/releases/tag/console-FILLMEIN) - YYYY-MM-DD -#### Added -#### Changed -#### Fixed -#### Removed - -### [0.7.31](https://github.com/redpanda-data/helm-charts/releases/tag/console-0.7.31) - 2024-12-06 -#### Added -#### Changed -* AppVersion for the new Console release -* By default auto mount is disabled in ServiceAccount and Deployment PodSpec -#### Fixed -#### Removed - -### [0.7.30](https://github.com/redpanda-data/helm-charts/releases/tag/console-0.7.30) - 2024-10-14 -#### Added -* Add Enabled flag that is used in Redpanda chart -* Add test example for oidc configuration [#1503](https://github.com/redpanda-data/helm-charts/pull/1503) -#### Changed -* Bump Console app version -* Align Console init container default value -* The minimum Kubernetes version has been bumped to `1.25.0` -#### Fixed -* License json tag to correctly set Console license [#1510](https://github.com/redpanda-data/helm-charts/pull/1510) -#### Removed - -### [0.7.29](https://github.com/redpanda-data/helm-charts/releases/tag/console-0.7.29) - 2024-08-19 -#### Added -#### Changed -#### Fixed -* Fixed empty tag for the console image if tag is not overridden in values [#1476](https://github.com/redpanda-data/helm-charts/issues/1476) -#### Removed - -### [0.7.28](https://github.com/redpanda-data/helm-charts/releases/tag/console-0.7.28) - 2024-08-08 -#### Added -#### Changed -#### Fixed -* Fixed kubeVersion to be able to deploy on AWS EKS clusters. -#### Removed - -### [Unreleased](https://github.com/redpanda-data/helm-charts/releases/tag/console-FILLMEIN) - YYYY-MM-DD -#### Added -#### Changed -* `initContainers.extraInitContainers` is now pre-processed as YAML by the - chart. Invalid YAML will instead be rendered as an error messages instead of - invalid YAML. - -#### Fixed -#### Removed -* Support for Kubernetes versions < 1.21 have been dropped. - -## Kminion Chart -### [Unreleased](https://github.com/redpanda-data/helm-charts/releases/tag/console-FILLMEIN) - YYYY-MM-DD -#### Added -#### Changed -#### Fixed -#### Removed - -### [0.14.1](https://github.com/redpanda-data/helm-charts/releases/tag/kminion-0.14.1) -#### Added -#### Changed -#### Fixed -* Add serviceMonitor targetLabels parameter in Values.yaml -#### Removed - -### [0.14.0](https://github.com/redpanda-data/helm-charts/releases/tag/kminion-0.14.0) -#### Added -#### Changed -#### Fixed -#### Removed - -## Connect Chart - -### [3.0.3](https://github.com/redpanda-data/helm-charts/releases/tag/connect-3.0.3) -#### Changed -* Added complete descriptions for all options in the `values.yaml`. - -### [3.0.2](https://github.com/redpanda-data/helm-charts/releases/tag/connect-3.0.2) -#### Changed -* Bump Connect app version to 4.42.0 -#### Fixed -* Fixed empty lines after labels when .Values.commonLabels is empty -* Fixed opentelemetry tracer configuration example, should be open_telemetry_collector - -### [3.0.1](https://github.com/redpanda-data/helm-charts/releases/tag/connect-3.0.1) -#### Added -* Parameter to configure submitting anonymous telemetry data -#### Changed -* Bump Connect app version to 4.39.0 - -### [3.0.0](https://github.com/redpanda-data/helm-charts/releases/tag/connect-3.0.0) -#### Added -* Refreshed chart and migrated from [the old standalone repo](https://github.com/redpanda-data/redpanda-connect-helm-chart) diff --git a/README.md b/README.md deleted file mode 120000 index 77f47b94f9..0000000000 --- a/README.md +++ /dev/null @@ -1 +0,0 @@ -charts/redpanda/README.md \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000000..a0295a21f0 --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +# Helm Charts + +[![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/redpanda-data)](https://artifacthub.io/packages/search?repo=redpanda-data) + +This repository hosts the helm chart index for all of redpanda-data's helm +charts and source code for _some_ of those charts. + +| Chart | Source Code | +| :---: | :--------: | +| `redpanda` | [repanda-operator:charts/redpanda](https://github.com/redpanda-data/redpanda-operator/tree/main/charts/redpanda) | +| `console` | [repanda-operator:charts/console](https://github.com/redpanda-data/redpanda-operator/tree/main/charts/console) | +| `operator` | [repanda-operator:operator/chart](https://github.com/redpanda-data/redpanda-operator/tree/main/operator/chart) | +| `connect` | [./charts/connect](./charts/connect/) | +| `kminion` | [./charts/kminion](./charts/kminion/) | +| `connectors` | [./charts/connectors](./charts/connectors/) | diff --git a/Taskfile.yaml b/Taskfile.yaml index 500df3207b..32b369dea9 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -59,8 +59,6 @@ tasks: - ct lint --chart-dirs ./charts --check-version-increment=false --github-groups --all - .github/check-ci-files.sh charts/connectors/ci - .github/check-ci-files.sh charts/kminion/ci - - .github/check-ci-files.sh charts/operator/ci - - .github/check-ci-files.sh charts/redpanda/ci generate: desc: "Run all file generation tasks" @@ -159,65 +157,3 @@ tasks: kind-delete: cmds: - kind delete cluster --name {{.KIND_CLUSTERNAME}} - - sync:charts: - cmds: - - task: sync:redpanda:chart - - task: sync:operator:chart - - task: sync:connectors:chart - - task: sync:operator:chart - - sync:redpanda:chart: - - task: sync:chart - vars: - REF: charts/redpanda/v25.1.1-beta3 - LOCAL_DIR: charts/redpanda - REMOTE_DIR: charts/redpanda - - sync:connectors:chart: - - task: sync:chart - vars: - REF: charts/redpanda/v5.9.21 # No recent release of connectors so pinning to this just because. - LOCAL_DIR: charts/connectors - REMOTE_DIR: charts/connectors - - sync:operator:chart: - - task: sync:chart - vars: - REF: operator/v25.1.1-beta3 - LOCAL_DIR: charts/operator - REMOTE_DIR: operator/chart - - sync:console:chart: - - task: sync:chart - vars: - REF: charts/console/v3.1.0 - LOCAL_DIR: charts/console - REMOTE_DIR: charts/console - - sync:chart: - internal: true - vars: - REF: '{{ .REF }}' - LOCAL_DIR: '{{ .LOCAL_DIR }}' - REMOTE_DIR: '{{ .REMOTE_DIR }}' - required: [REF, LOCAL_DIR, REMOTE_DIR] - run: when_changed - label: 'sync:chart:{{ .LOCAL_DIR }}' - cmds: - - rm -rf '{{ .SRC_DIR }}/{{ .LOCAL_DIR }}' - - mkdir -p '{{ .SRC_DIR }}/{{ .LOCAL_DIR }}' - - | - cd {{ .LOCAL_DIR }} && \ - curl -Lo - 'https://github.com/redpanda-data/redpanda-operator/archive/{{ .REF }}.tar.gz' | \ - tar \ - --gunzip \ - --extract \ - --wildcards \ - --exclude '*.go' \ - --exclude 'go.mod' \ - --exclude 'go.sum' \ - --exclude '*.txtar' \ - --exclude '.changes' \ - --strip-components {{ (.REMOTE_DIR | split "/" | len) | add 1 }} \ - '*/{{ .REMOTE_DIR }}' diff --git a/charts/console/.helmignore b/charts/console/.helmignore deleted file mode 100644 index d5bb5e6ba6..0000000000 --- a/charts/console/.helmignore +++ /dev/null @@ -1,28 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -README.md.gotmpl -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*.orig -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ - -*.go -testdata/ -ci/ diff --git a/charts/console/CHANGELOG.md b/charts/console/CHANGELOG.md deleted file mode 100644 index cebb5bffc6..0000000000 --- a/charts/console/CHANGELOG.md +++ /dev/null @@ -1,115 +0,0 @@ -# Changelog -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and is generated by [Changie](https://github.com/miniscruff/changie). - - -## [v3.1.0](https://github.com/redpanda-data/redpanda-operator/releases/tag/charts%2Fconsole%2Fv3.1.0) - 2025-05-05 -### Changed -* Bump AppVersion the new v3.1.0 Console release -### Fixed -* - Correct the secret key reference for authentication JWT signing key. - - Correct the environment variable reference schema registry password. - - Add value for schema registry bearer token secret. - -## v3.0.0 - 2025-04-07 -### Added -* Updated and automated generation of `values.schema.json` -### Changed -* Upgrade to [Console V3](https://docs.redpanda.com/beta/upgrade/migrate/console-v3/) (BREAKING CHANGES) - -- `console` has been removed and `config` has been moved to top level. -- `console.roles` and `console.roleBindings` have been removed. -- `secret.kafka.schemaRegistryPassword` has been moved to `secret.schemaRegistry.password`. -- `secret.kafka.schemaRegistryTlsCa` has been moved to `secret.schemaRegistry.tlsCa`. -- `secret.kafka.schemaRegistryTlsCert` has been moved to `secret.schemaRegistry.tlsCert`. -- `secret.kafka.schemaRegistryTlsKey` has been moved to `secret.schemaRegistry.tlsKey`. -- `secret.kafka.protobufGitBasicAuthPassword` has been moved to `secret.serde.protobufGitBasicAuthPassword`. -- `secret.login` has been removed. -- `secret.login.jwtSecret` has been moved to `secret.authentication.jwtSigningKey`. -- `secret.login.google` has been removed. -- `secret.login.github` has been removed. -- `secret.login.okta` has been removed. -- `secret.login.oidc` has been moved to `secret.authentication.oidc`. -- `secret.enterprise` has been removed. -- `secret.enterprise.license` has been moved to `secret.license`. -- `enterprise` has been removed. -- `enterprise.licenseSecretRef` has been moved to `licenseSecretRef`. -* `values.schema.json` is now "closed" (`additionalProperties: false`) - - Any unexpected values will result in a validation error,previously they would - have been ignored. - -## v3.0.0-beta.1 - 2025-04-03 -### Added -* Updated and automated generation of `values.schema.json` -### Changed -* Upgrade to [Console V3](https://docs.redpanda.com/beta/upgrade/migrate/console-v3/) (BREAKING CHANGES) - -- `console` has been removed and `config` has been moved to top level. -- `console.roles` and `console.roleBindings` have been removed. -- `secret.kafka.schemaRegistryPassword` has been moved to `secret.schemaRegistry.password`. -- `secret.kafka.schemaRegistryTlsCa` has been moved to `secret.schemaRegistry.tlsCa`. -- `secret.kafka.schemaRegistryTlsCert` has been moved to `secret.schemaRegistry.tlsCert`. -- `secret.kafka.schemaRegistryTlsKey` has been moved to `secret.schemaRegistry.tlsKey`. -- `secret.kafka.protobufGitBasicAuthPassword` has been moved to `secret.serde.protobufGitBasicAuthPassword`. -- `secret.login` has been removed. -- `secret.login.jwtSecret` has been moved to `secret.authentication.jwtSigningKey`. -- `secret.login.google` has been removed. -- `secret.login.github` has been removed. -- `secret.login.okta` has been removed. -- `secret.login.oidc` has been moved to `secret.authentication.oidc`. -- `secret.enterprise` has been removed. -- `secret.enterprise.license` has been moved to `secret.license`. -- `enterprise` has been removed. -- `enterprise.licenseSecretRef` has been moved to `licenseSecretRef`. -* `values.schema.json` is now "closed" (`additionalProperties: false`) - - Any unexpected values will result in a validation error,previously they would - have been ignored. - -### [0.7.31](https://github.com/redpanda-data/helm-charts/releases/tag/console-0.7.31) - 2024-12-06 -#### Added -#### Changed -* AppVersion for the new Console release -* By default auto mount is disabled in ServiceAccount and Deployment PodSpec -#### Fixed -#### Removed - -### [0.7.30](https://github.com/redpanda-data/helm-charts/releases/tag/console-0.7.30) - 2024-10-14 -#### Added -* Add Enabled flag that is used in Redpanda chart -* Add test example for oidc configuration [#1503](https://github.com/redpanda-data/helm-charts/pull/1503) -#### Changed -* Bump Console app version -* Align Console init container default value -* The minimum Kubernetes version has been bumped to `1.25.0` -#### Fixed -* License json tag to correctly set Console license [#1510](https://github.com/redpanda-data/helm-charts/pull/1510) -#### Removed - -### [0.7.29](https://github.com/redpanda-data/helm-charts/releases/tag/console-0.7.29) - 2024-08-19 -#### Added -#### Changed -#### Fixed -* Fixed empty tag for the console image if tag is not overridden in values [#1476](https://github.com/redpanda-data/helm-charts/issues/1476) -#### Removed - -### [0.7.28](https://github.com/redpanda-data/helm-charts/releases/tag/console-0.7.28) - 2024-08-08 -#### Added -#### Changed -#### Fixed -* Fixed kubeVersion to be able to deploy on AWS EKS clusters. -#### Removed - -### [Unreleased](https://github.com/redpanda-data/helm-charts/releases/tag/console-FILLMEIN) - YYYY-MM-DD -#### Added -#### Changed -* `initContainers.extraInitContainers` is now pre-processed as YAML by the - chart. Invalid YAML will instead be rendered as an error messages instead of - invalid YAML. - -#### Fixed -#### Removed -* Support for Kubernetes versions < 1.21 have been dropped. diff --git a/charts/console/Chart.yaml b/charts/console/Chart.yaml deleted file mode 100644 index 3cbd811840..0000000000 --- a/charts/console/Chart.yaml +++ /dev/null @@ -1,49 +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. - -apiVersion: v2 -name: console -description: Helm chart to deploy Redpanda Console. - -maintainers: - - name: redpanda-data - url: https://github.com/orgs/redpanda-data/people -type: application - -# This is the chart version. This version number should be incremented each time you make changes -# to the chart and its templates, including the app version. -# Versions are expected to follow Semantic Versioning (https://semver.org/) - -# Chart versions do not track appVersion -version: 3.1.0 - -# The app version is the version of the Chart application -appVersion: v3.1.0 - -kubeVersion: ">= 1.25.0-0" - -icon: https://go.redpanda.com/hubfs/Redpandas/skate-stand-panda.svg -sources: - - https://github.com/redpanda-data/redpanda-operator/tree/main/charts/console -annotations: - artifacthub.io/license: Apache-2.0 - artifacthub.io/links: | - - name: Documentation - url: https://docs.redpanda.com - - name: "Helm (>= 3.6.0)" - url: https://helm.sh/docs/intro/install/ - artifacthub.io/images: | - - name: console - image: docker.redpanda.com/redpandadata/console:v3.1.0 diff --git a/charts/console/README.md b/charts/console/README.md deleted file mode 100644 index 71e31de69c..0000000000 --- a/charts/console/README.md +++ /dev/null @@ -1,339 +0,0 @@ -# Redpanda Console Helm Chart Specification ---- -description: Find the default values and descriptions of settings in the Redpanda Console Helm chart. ---- - -![Version: 3.1.0](https://img.shields.io/badge/Version-3.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v3.1.0](https://img.shields.io/badge/AppVersion-v3.1.0-informational?style=flat-square) - -This page describes the official Redpanda Console Helm Chart. In particular, this page describes the contents of the chart’s [`values.yaml` file](https://github.com/redpanda-data/helm-charts/blob/main/charts/console/values.yaml). -Each of the settings is listed and described on this page, along with any default values. - -The Redpanda Console Helm chart is included as a subchart in the Redpanda Helm chart so that you can deploy and configure Redpanda and Redpanda Console together. -For instructions on how to install and use the chart, refer to the [deployment documentation](https://docs.redpanda.com/docs/deploy/deployment-option/self-hosted/kubernetes/kubernetes-deploy/). -For instructions on how to override and customize the chart’s values, see [Configure Redpanda Console](https://docs.redpanda.com/docs/manage/kubernetes/configure-helm-chart/#configure-redpanda-console). - ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2) - -## Source Code - -* - -## Requirements - -Kubernetes: `>= 1.25.0-0` - -## Settings - -### [affinity](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=affinity) - -**Default:** `{}` - -### [annotations](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=annotations) - -Annotations to add to the deployment. - -**Default:** `{}` - -### [automountServiceAccountToken](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=automountServiceAccountToken) - -Automount API credentials for the Service Account into the pod. Console does not communicate with Kubernetes API. - -**Default:** `false` - -### [autoscaling.enabled](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=autoscaling.enabled) - -**Default:** `false` - -### [autoscaling.maxReplicas](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=autoscaling.maxReplicas) - -**Default:** `100` - -### [autoscaling.minReplicas](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=autoscaling.minReplicas) - -**Default:** `1` - -### [autoscaling.targetCPUUtilizationPercentage](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=autoscaling.targetCPUUtilizationPercentage) - -**Default:** `80` - -### [commonLabels](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=commonLabels) - -**Default:** `{}` - -### [config](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=config) - -Settings for the `Config.yaml` (required). For a reference of configuration settings, see the [Redpanda Console documentation](https://docs.redpanda.com/docs/reference/console/config/). - -**Default:** `{}` - -### [configmap.create](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=configmap.create) - -**Default:** `true` - -### [deployment.create](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=deployment.create) - -**Default:** `true` - -### [extraContainers](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=extraContainers) - -Add additional containers, such as for oauth2-proxy. - -**Default:** `[]` - -### [extraEnv](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=extraEnv) - -Additional environment variables for the Redpanda Console Deployment. - -**Default:** `[]` - -### [extraEnvFrom](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=extraEnvFrom) - -Additional environment variables for Redpanda Console mapped from Secret or ConfigMap. - -**Default:** `[]` - -### [extraVolumeMounts](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=extraVolumeMounts) - -Add additional volume mounts, such as for TLS keys. - -**Default:** `[]` - -### [extraVolumes](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=extraVolumes) - -Add additional volumes, such as for TLS keys. - -**Default:** `[]` - -### [fullnameOverride](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=fullnameOverride) - -Override `console.fullname` template. - -**Default:** `""` - -### [image](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=image) - -Redpanda Console Docker image settings. - -**Default:** - -``` -{"pullPolicy":"IfNotPresent","registry":"docker.redpanda.com","repository":"redpandadata/console","tag":""} -``` - -### [image.pullPolicy](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=image.pullPolicy) - -The imagePullPolicy. - -**Default:** `"IfNotPresent"` - -### [image.repository](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=image.repository) - -Docker repository from which to pull the Redpanda Docker image. - -**Default:** `"redpandadata/console"` - -### [image.tag](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=image.tag) - -The Redpanda Console version. See DockerHub for: [All stable versions](https://hub.docker.com/r/redpandadata/console/tags) and [all unstable versions](https://hub.docker.com/r/redpandadata/console-unstable/tags). - -**Default:** `Chart.appVersion` - -### [imagePullSecrets](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=imagePullSecrets) - -Pull secrets may be used to provide credentials to image repositories See https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ - -**Default:** `[]` - -### [ingress.annotations](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=ingress.annotations) - -**Default:** `{}` - -### [ingress.enabled](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=ingress.enabled) - -**Default:** `false` - -### [ingress.hosts[0].host](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=ingress.hosts[0].host) - -**Default:** `"chart-example.local"` - -### [ingress.hosts[0].paths[0].path](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=ingress.hosts[0].paths[0].path) - -**Default:** `"/"` - -### [ingress.hosts[0].paths[0].pathType](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=ingress.hosts[0].paths[0].pathType) - -**Default:** `"ImplementationSpecific"` - -### [ingress.tls](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=ingress.tls) - -**Default:** `[]` - -### [initContainers](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=initContainers) - -Any initContainers defined should be written here - -**Default:** `{"extraInitContainers":""}` - -### [initContainers.extraInitContainers](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=initContainers.extraInitContainers) - -Additional set of init containers - -**Default:** `""` - -### [livenessProbe](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=livenessProbe) - -Settings for liveness and readiness probes. For details, see the [Kubernetes documentation](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes). - -**Default:** - -``` -{"failureThreshold":3,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1} -``` - -### [nameOverride](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=nameOverride) - -Override `console.name` template. - -**Default:** `""` - -### [nodeSelector](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=nodeSelector) - -**Default:** `{}` - -### [podAnnotations](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=podAnnotations) - -**Default:** `{}` - -### [podLabels](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=podLabels) - -**Default:** `{}` - -### [podSecurityContext.fsGroup](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=podSecurityContext.fsGroup) - -**Default:** `99` - -### [podSecurityContext.fsGroupChangePolicy](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=podSecurityContext.fsGroupChangePolicy) - -**Default:** `"Always"` - -### [podSecurityContext.runAsUser](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=podSecurityContext.runAsUser) - -**Default:** `99` - -### [priorityClassName](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=priorityClassName) - -PriorityClassName given to Pods. For details, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass). - -**Default:** `""` - -### [readinessProbe.failureThreshold](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=readinessProbe.failureThreshold) - -**Default:** `3` - -### [readinessProbe.initialDelaySeconds](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=readinessProbe.initialDelaySeconds) - -Grant time to test connectivity to upstream services such as Kafka and Schema Registry. - -**Default:** `10` - -### [readinessProbe.periodSeconds](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=readinessProbe.periodSeconds) - -**Default:** `10` - -### [readinessProbe.successThreshold](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=readinessProbe.successThreshold) - -**Default:** `1` - -### [readinessProbe.timeoutSeconds](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=readinessProbe.timeoutSeconds) - -**Default:** `1` - -### [replicaCount](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=replicaCount) - -**Default:** `1` - -### [resources](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=resources) - -**Default:** `{}` - -### [secret](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=secret) - -Create a new Kubernetes Secret for all sensitive configuration inputs. Each provided Secret is mounted automatically and made available to the Pod. If you want to use one or more existing Secrets, you can use the `extraEnvFrom` list to mount environment variables from string and secretMounts to mount files such as Certificates from Secrets. - -**Default:** - -``` -{"authentication":{"jwtSigningKey":"","oidc":{}},"create":true,"kafka":{},"license":"","redpanda":{"adminApi":{}},"schemaRegistry":{},"serde":{}} -``` - -### [secret.kafka](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=secret.kafka) - -Kafka Secrets. - -**Default:** `{}` - -### [secretMounts](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=secretMounts) - -SecretMounts is an abstraction to make a Secret available in the container's filesystem. Under the hood it creates a volume and a volume mount for the Redpanda Console container. - -**Default:** `[]` - -### [securityContext.runAsNonRoot](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=securityContext.runAsNonRoot) - -**Default:** `true` - -### [service.annotations](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=service.annotations) - -Override the value in `console.config.server.listenPort` if not `nil` targetPort: - -**Default:** `{}` - -### [service.port](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=service.port) - -**Default:** `8080` - -### [service.type](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=service.type) - -**Default:** `"ClusterIP"` - -### [serviceAccount.annotations](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=serviceAccount.annotations) - -Annotations to add to the service account. - -**Default:** `{}` - -### [serviceAccount.automountServiceAccountToken](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=serviceAccount.automountServiceAccountToken) - -Specifies whether a service account should automount API-Credentials. Console does not communicate with Kubernetes API. The ServiceAccount could be used for workload identity. - -**Default:** `false` - -### [serviceAccount.create](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=serviceAccount.create) - -Specifies whether a service account should be created. - -**Default:** `true` - -### [serviceAccount.name](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=serviceAccount.name) - -The name of the service account to use. If not set and `serviceAccount.create` is `true`, a name is generated using the `console.fullname` template - -**Default:** `""` - -### [strategy](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=strategy) - -**Default:** `{}` - -### [tests.enabled](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=tests.enabled) - -**Default:** `true` - -### [tolerations](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=tolerations) - -**Default:** `[]` - -### [topologySpreadConstraints](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path=topologySpreadConstraints) - -**Default:** `[]` - diff --git a/charts/console/README.md.gotmpl b/charts/console/README.md.gotmpl deleted file mode 100644 index e270d95ef5..0000000000 --- a/charts/console/README.md.gotmpl +++ /dev/null @@ -1,57 +0,0 @@ -{{- define "chart.header" -}} -# Redpanda Console Helm Chart Specification ---- -description: Find the default values and descriptions of settings in the Redpanda Console Helm chart. ---- -{{- end -}} - -{{ define "chart.description" -}} -This page describes the official Redpanda Console Helm Chart. In particular, this page describes the contents of the chart’s [`values.yaml` file](https://github.com/redpanda-data/helm-charts/blob/main/charts/console/values.yaml). -Each of the settings is listed and described on this page, along with any default values. - -The Redpanda Console Helm chart is included as a subchart in the Redpanda Helm chart so that you can deploy and configure Redpanda and Redpanda Console together. -For instructions on how to install and use the chart, refer to the [deployment documentation](https://docs.redpanda.com/docs/deploy/deployment-option/self-hosted/kubernetes/kubernetes-deploy/). -For instructions on how to override and customize the chart’s values, see [Configure Redpanda Console](https://docs.redpanda.com/docs/manage/kubernetes/configure-helm-chart/#configure-redpanda-console). -{{ end -}} - -{{ define "chart.valuesTable" }} - -## Settings - -{{- range .Values }} - -### [{{ .Key }}](https://artifacthub.io/packages/helm/redpanda-data/console?modal=values&path={{ .Key }}) - -{{ if .Description }}{{ .Description }}{{ else }}{{ .AutoDescription }}{{ end }} - -{{ $defaultValue := (default .Default .AutoDefault) }} -{{ if gt (len $defaultValue) 30 -}} -**Default:** - -``` -{{ $defaultValue | replace "`" "" }} -``` -{{- else -}} -**Default:** {{ $defaultValue }} -{{- end }} - -{{- end }} -{{ end }} - -{{- template "chart.header" . -}} - -{{ template "chart.deprecationWarning" . }} - -{{ template "chart.badgesSection" . }} - -{{ template "chart.description" . }} - -{{ template "helm-docs.versionFooter" . }} - -{{ template "chart.homepageLine" . }} - -{{ template "chart.sourcesSection" . }} - -{{ template "chart.requirementsSection" . }} - -{{ template "chart.valuesTable" . }} diff --git a/charts/console/examples/console-enterprise.yaml b/charts/console/examples/console-enterprise.yaml deleted file mode 100644 index dc3f29197d..0000000000 --- a/charts/console/examples/console-enterprise.yaml +++ /dev/null @@ -1,94 +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. - -image: - tag: master-8fcce39 - -resources: - limits: - cpu: 1 - memory: 2Gi - requests: - cpu: 100m - memory: 512Mi - -console: - config: - kafka: - brokers: - - bootstrap.mybrokers.com:9092 - clientId: redpanda-console - sasl: - enabled: true - mechanism: SCRAM-SHA-256 - username: console - # password: set via Helm secret / Env variable - tls: - enabled: false - login: - google: - enabled: true - clientId: redacted.apps.googleusercontent.com - # clientSecret: set via Helm secret / Env variable - directory: - # serviceAccountFilepath: set via Helm secret / Env variable - targetPrincipal: admin@mycompany.com - enterprise: - rbac: - enabled: true - roleBindingsFilepath: /etc/console/configs/role-bindings.yaml - roleBindings: - - roleName: viewer - metadata: - # Metadata properties will be shown in the UI. You can omit it if you want to - name: Developers - subjects: - # You can specify all groups or users from different providers here which shall be bound to the same role - - kind: group - provider: Google - name: engineering@mycompany.com - - kind: user - provider: Google - name: singleuser@mycompany.com - - roleName: admin - metadata: - name: Admin - subjects: - - kind: user - provider: Google - name: adminperson@mycompany.com - -secret: - create: true - kafka: - saslPassword: "redacted" - enterprise: - license: "redacted" - login: - google: - clientSecret: "redacted" - groupsServiceAccount: | - { - "type": "service_account", - "project_id": "redacted", - "private_key_id": "redacted", - "private_key": "-----BEGIN PRIVATE KEY-----\nREDACTED\n-----END PRIVATE KEY-----\n", - "client_email": "redacted@projectid.iam.gserviceaccount.com", - "client_id": "redacted", - "auth_uri": "https://accounts.google.com/o/oauth2/auth", - "token_uri": "https://oauth2.googleapis.com/token", - "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", - "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/redacted.iam.gserviceaccount.com" - } diff --git a/charts/console/templates/NOTES.txt b/charts/console/templates/NOTES.txt deleted file mode 100644 index 7541881fc9..0000000000 --- a/charts/console/templates/NOTES.txt +++ /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. -*/}} -{{- $notes := (get ((include "console.Notes" (dict "a" (list .))) | fromJson) "r") -}} -{{- range $_, $note := $notes }} -{{ $note }} -{{- end }} diff --git a/charts/console/templates/_chart.go.tpl b/charts/console/templates/_chart.go.tpl deleted file mode 100644 index 17844819e0..0000000000 --- a/charts/console/templates/_chart.go.tpl +++ /dev/null @@ -1,13 +0,0 @@ -{{- /* Generated from "chart.go" */ -}} - -{{- define "console.render" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $manifests := (list (get (fromJson (include "console.ServiceAccount" (dict "a" (list $dot)))) "r") (get (fromJson (include "console.Secret" (dict "a" (list $dot)))) "r") (get (fromJson (include "console.ConfigMap" (dict "a" (list $dot)))) "r") (get (fromJson (include "console.Service" (dict "a" (list $dot)))) "r") (get (fromJson (include "console.Ingress" (dict "a" (list $dot)))) "r") (get (fromJson (include "console.Deployment" (dict "a" (list $dot)))) "r") (get (fromJson (include "console.HorizontalPodAutoscaler" (dict "a" (list $dot)))) "r")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $manifests) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/console/templates/_configmap.go.tpl b/charts/console/templates/_configmap.go.tpl deleted file mode 100644 index b0d59ea9df..0000000000 --- a/charts/console/templates/_configmap.go.tpl +++ /dev/null @@ -1,19 +0,0 @@ -{{- /* Generated from "configmap.go" */ -}} - -{{- define "console.ConfigMap" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not $values.configmap.create) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $data := (dict "config.yaml" (printf "# from .Values.config\n%s\n" (tpl (toYaml $values.config) $dot))) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil))) (mustMergeOverwrite (dict) (dict "apiVersion" "v1" "kind" "ConfigMap")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "labels" (get (fromJson (include "console.Labels" (dict "a" (list $dot)))) "r") "name" (get (fromJson (include "console.Fullname" (dict "a" (list $dot)))) "r") "namespace" $dot.Release.Namespace)) "data" $data))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/console/templates/_deployment.go.tpl b/charts/console/templates/_deployment.go.tpl deleted file mode 100644 index 05de54cf95..0000000000 --- a/charts/console/templates/_deployment.go.tpl +++ /dev/null @@ -1,133 +0,0 @@ -{{- /* Generated from "deployment.go" */ -}} - -{{- define "console.ContainerPort" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $listenPort := ((8080 | int) | int) -}} -{{- if (ne (toJson $values.service.targetPort) "null") -}} -{{- $listenPort = $values.service.targetPort -}} -{{- end -}} -{{- $configListenPort := (dig "server" "listenPort" (coalesce nil) $values.config) -}} -{{- $_37_asInt_1_ok_2 := (get (fromJson (include "_shims.asintegral" (dict "a" (list $configListenPort)))) "r") -}} -{{- $asInt_1 := ((index $_37_asInt_1_ok_2 0) | int) -}} -{{- $ok_2 := (index $_37_asInt_1_ok_2 1) -}} -{{- if $ok_2 -}} -{{- $_is_returning = true -}} -{{- (dict "r" ($asInt_1 | int)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $listenPort) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "console.Deployment" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not $values.deployment.create) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $replicas := (coalesce nil) -}} -{{- if (not $values.autoscaling.enabled) -}} -{{- $replicas = ($values.replicaCount | int) -}} -{{- end -}} -{{- $initContainers := (coalesce nil) -}} -{{- if (not (empty $values.initContainers.extraInitContainers)) -}} -{{- $initContainers = (fromYamlArray (tpl $values.initContainers.extraInitContainers $dot)) -}} -{{- end -}} -{{- $volumeMounts := (list (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" "configs" "mountPath" "/etc/console/configs" "readOnly" true))) -}} -{{- if $values.secret.create -}} -{{- $volumeMounts = (concat (default (list) $volumeMounts) (list (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" "secrets" "mountPath" "/etc/console/secrets" "readOnly" true)))) -}} -{{- end -}} -{{- range $_, $mount := $values.secretMounts -}} -{{- $volumeMounts = (concat (default (list) $volumeMounts) (list (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" $mount.name "mountPath" $mount.path "subPath" (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $mount.subPath "")))) "r"))))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $volumeMounts = (concat (default (list) $volumeMounts) (default (list) $values.extraVolumeMounts)) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict "selector" (coalesce nil) "template" (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict "containers" (coalesce nil))) "strategy" (dict)) "status" (dict)) (mustMergeOverwrite (dict) (dict "apiVersion" "apps/v1" "kind" "Deployment")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (get (fromJson (include "console.Fullname" (dict "a" (list $dot)))) "r") "labels" (get (fromJson (include "console.Labels" (dict "a" (list $dot)))) "r") "namespace" $dot.Release.Namespace "annotations" $values.annotations)) "spec" (mustMergeOverwrite (dict "selector" (coalesce nil) "template" (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict "containers" (coalesce nil))) "strategy" (dict)) (dict "replicas" $replicas "selector" (mustMergeOverwrite (dict) (dict "matchLabels" (get (fromJson (include "console.SelectorLabels" (dict "a" (list $dot)))) "r"))) "strategy" $values.strategy "template" (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict "containers" (coalesce nil))) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "annotations" (merge (dict) (dict "checksum/config" (sha256sum (toYaml (get (fromJson (include "console.ConfigMap" (dict "a" (list $dot)))) "r").data))) $values.podAnnotations) "labels" (merge (dict) (get (fromJson (include "console.SelectorLabels" (dict "a" (list $dot)))) "r") $values.podLabels))) "spec" (mustMergeOverwrite (dict "containers" (coalesce nil)) (dict "imagePullSecrets" $values.imagePullSecrets "serviceAccountName" (get (fromJson (include "console.ServiceAccountName" (dict "a" (list $dot)))) "r") "automountServiceAccountToken" $values.automountServiceAccountToken "securityContext" $values.podSecurityContext "nodeSelector" $values.nodeSelector "affinity" $values.affinity "topologySpreadConstraints" $values.topologySpreadConstraints "priorityClassName" $values.priorityClassName "tolerations" $values.tolerations "volumes" (get (fromJson (include "console.consolePodVolumes" (dict "a" (list $dot)))) "r") "initContainers" $initContainers "containers" (concat (default (list) (list (mustMergeOverwrite (dict "name" "" "resources" (dict)) (dict "name" $dot.Chart.Name "command" $values.deployment.command "args" (concat (default (list) (list "--config.filepath=/etc/console/configs/config.yaml")) (default (list) $values.deployment.extraArgs)) "securityContext" $values.securityContext "image" (get (fromJson (include "console.containerImage" (dict "a" (list $dot)))) "r") "imagePullPolicy" $values.image.pullPolicy "ports" (list (mustMergeOverwrite (dict "containerPort" 0) (dict "name" "http" "containerPort" ((get (fromJson (include "console.ContainerPort" (dict "a" (list $dot)))) "r") | int) "protocol" "TCP"))) "volumeMounts" $volumeMounts "livenessProbe" (mustMergeOverwrite (dict) (mustMergeOverwrite (dict) (dict "httpGet" (mustMergeOverwrite (dict "port" 0) (dict "path" "/admin/health" "port" "http")))) (dict "initialDelaySeconds" ($values.livenessProbe.initialDelaySeconds | int) "periodSeconds" ($values.livenessProbe.periodSeconds | int) "timeoutSeconds" ($values.livenessProbe.timeoutSeconds | int) "successThreshold" ($values.livenessProbe.successThreshold | int) "failureThreshold" ($values.livenessProbe.failureThreshold | int))) "readinessProbe" (mustMergeOverwrite (dict) (mustMergeOverwrite (dict) (dict "httpGet" (mustMergeOverwrite (dict "port" 0) (dict "path" "/admin/health" "port" "http")))) (dict "initialDelaySeconds" ($values.readinessProbe.initialDelaySeconds | int) "periodSeconds" ($values.readinessProbe.periodSeconds | int) "timeoutSeconds" ($values.readinessProbe.timeoutSeconds | int) "successThreshold" ($values.readinessProbe.successThreshold | int) "failureThreshold" ($values.readinessProbe.failureThreshold | int))) "resources" $values.resources "env" (get (fromJson (include "console.consoleContainerEnv" (dict "a" (list $dot)))) "r") "envFrom" $values.extraEnvFrom)))) (default (list) $values.extraContainers))))))))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "console.containerImage" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $tag := $dot.Chart.AppVersion -}} -{{- if (not (empty $values.image.tag)) -}} -{{- $tag = $values.image.tag -}} -{{- end -}} -{{- $image := (printf "%s:%s" $values.image.repository $tag) -}} -{{- if (not (empty $values.image.registry)) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (printf "%s/%s" $values.image.registry $image)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $image) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "console.consoleContainerEnv" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not $values.secret.create) -}} -{{- $vars := $values.extraEnv -}} -{{- if (and (ne (toJson $values.licenseSecretRef) "null") (not (empty $values.licenseSecretRef.name))) -}} -{{- $vars = (concat (default (list) $values.extraEnv) (list (mustMergeOverwrite (dict "name" "") (dict "name" "LICENSE" "valueFrom" (mustMergeOverwrite (dict) (dict "secretKeyRef" (mustMergeOverwrite (dict "key" "") (mustMergeOverwrite (dict) (dict "name" $values.licenseSecretRef.name)) (dict "key" (default "enterprise-license" $values.licenseSecretRef.key))))))))) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $vars) | toJson -}} -{{- break -}} -{{- end -}} -{{- $possibleVars := (list (mustMergeOverwrite (dict "Value" (coalesce nil) "EnvVar" (dict "name" "")) (dict "Value" $values.secret.kafka.saslPassword "EnvVar" (mustMergeOverwrite (dict "name" "") (dict "name" "KAFKA_SASL_PASSWORD" "valueFrom" (mustMergeOverwrite (dict) (dict "secretKeyRef" (mustMergeOverwrite (dict "key" "") (mustMergeOverwrite (dict) (dict "name" (get (fromJson (include "console.Fullname" (dict "a" (list $dot)))) "r"))) (dict "key" "kafka-sasl-password")))))))) (mustMergeOverwrite (dict "Value" (coalesce nil) "EnvVar" (dict "name" "")) (dict "Value" $values.secret.serde.protobufGitBasicAuthPassword "EnvVar" (mustMergeOverwrite (dict "name" "") (dict "name" "SERDE_PROTOBUF_GIT_BASICAUTH_PASSWORD" "valueFrom" (mustMergeOverwrite (dict) (dict "secretKeyRef" (mustMergeOverwrite (dict "key" "") (mustMergeOverwrite (dict) (dict "name" (get (fromJson (include "console.Fullname" (dict "a" (list $dot)))) "r"))) (dict "key" "serde-protobuf-git-basicauth-password")))))))) (mustMergeOverwrite (dict "Value" (coalesce nil) "EnvVar" (dict "name" "")) (dict "Value" $values.secret.kafka.awsMskIamSecretKey "EnvVar" (mustMergeOverwrite (dict "name" "") (dict "name" "KAFKA_SASL_AWSMSKIAM_SECRETKEY" "valueFrom" (mustMergeOverwrite (dict) (dict "secretKeyRef" (mustMergeOverwrite (dict "key" "") (mustMergeOverwrite (dict) (dict "name" (get (fromJson (include "console.Fullname" (dict "a" (list $dot)))) "r"))) (dict "key" "kafka-sasl-aws-msk-iam-secret-key")))))))) (mustMergeOverwrite (dict "Value" (coalesce nil) "EnvVar" (dict "name" "")) (dict "Value" $values.secret.kafka.tlsCa "EnvVar" (mustMergeOverwrite (dict "name" "") (dict "name" "KAFKA_TLS_CAFILEPATH" "value" "/etc/console/secrets/kafka-tls-ca")))) (mustMergeOverwrite (dict "Value" (coalesce nil) "EnvVar" (dict "name" "")) (dict "Value" $values.secret.kafka.tlsCert "EnvVar" (mustMergeOverwrite (dict "name" "") (dict "name" "KAFKA_TLS_CERTFILEPATH" "value" "/etc/console/secrets/kafka-tls-cert")))) (mustMergeOverwrite (dict "Value" (coalesce nil) "EnvVar" (dict "name" "")) (dict "Value" $values.secret.kafka.tlsKey "EnvVar" (mustMergeOverwrite (dict "name" "") (dict "name" "KAFKA_TLS_KEYFILEPATH" "value" "/etc/console/secrets/kafka-tls-key")))) (mustMergeOverwrite (dict "Value" (coalesce nil) "EnvVar" (dict "name" "")) (dict "Value" $values.secret.schemaRegistry.tlsCa "EnvVar" (mustMergeOverwrite (dict "name" "") (dict "name" "SCHEMAREGISTRY_TLS_CAFILEPATH" "value" "/etc/console/secrets/schemaregistry-tls-ca")))) (mustMergeOverwrite (dict "Value" (coalesce nil) "EnvVar" (dict "name" "")) (dict "Value" $values.secret.schemaRegistry.tlsCert "EnvVar" (mustMergeOverwrite (dict "name" "") (dict "name" "SCHEMAREGISTRY_TLS_CERTFILEPATH" "value" "/etc/console/secrets/schemaregistry-tls-cert")))) (mustMergeOverwrite (dict "Value" (coalesce nil) "EnvVar" (dict "name" "")) (dict "Value" $values.secret.schemaRegistry.tlsKey "EnvVar" (mustMergeOverwrite (dict "name" "") (dict "name" "SCHEMAREGISTRY_TLS_KEYFILEPATH" "value" "/etc/console/secrets/schemaregistry-tls-key")))) (mustMergeOverwrite (dict "Value" (coalesce nil) "EnvVar" (dict "name" "")) (dict "Value" $values.secret.schemaRegistry.password "EnvVar" (mustMergeOverwrite (dict "name" "") (dict "name" "SCHEMAREGISTRY_AUTHENTICATION_BASIC_PASSWORD" "valueFrom" (mustMergeOverwrite (dict) (dict "secretKeyRef" (mustMergeOverwrite (dict "key" "") (mustMergeOverwrite (dict) (dict "name" (get (fromJson (include "console.Fullname" (dict "a" (list $dot)))) "r"))) (dict "key" "schema-registry-password")))))))) (mustMergeOverwrite (dict "Value" (coalesce nil) "EnvVar" (dict "name" "")) (dict "Value" $values.secret.schemaRegistry.bearerToken "EnvVar" (mustMergeOverwrite (dict "name" "") (dict "name" "SCHEMAREGISTRY_AUTHENTICATION_BEARERTOKEN" "valueFrom" (mustMergeOverwrite (dict) (dict "secretKeyRef" (mustMergeOverwrite (dict "key" "") (mustMergeOverwrite (dict) (dict "name" (get (fromJson (include "console.Fullname" (dict "a" (list $dot)))) "r"))) (dict "key" "schema-registry-bearertoken")))))))) (mustMergeOverwrite (dict "Value" (coalesce nil) "EnvVar" (dict "name" "")) (dict "Value" $values.secret.authentication.jwtSigningKey "EnvVar" (mustMergeOverwrite (dict "name" "") (dict "name" "AUTHENTICATION_JWTSIGNINGKEY" "valueFrom" (mustMergeOverwrite (dict) (dict "secretKeyRef" (mustMergeOverwrite (dict "key" "") (mustMergeOverwrite (dict) (dict "name" (get (fromJson (include "console.Fullname" (dict "a" (list $dot)))) "r"))) (dict "key" "authentication-jwt-signingkey")))))))) (mustMergeOverwrite (dict "Value" (coalesce nil) "EnvVar" (dict "name" "")) (dict "Value" $values.secret.license "EnvVar" (mustMergeOverwrite (dict "name" "") (dict "name" "LICENSE" "valueFrom" (mustMergeOverwrite (dict) (dict "secretKeyRef" (mustMergeOverwrite (dict "key" "") (mustMergeOverwrite (dict) (dict "name" (get (fromJson (include "console.Fullname" (dict "a" (list $dot)))) "r"))) (dict "key" "license")))))))) (mustMergeOverwrite (dict "Value" (coalesce nil) "EnvVar" (dict "name" "")) (dict "Value" $values.secret.redpanda.adminApi.password "EnvVar" (mustMergeOverwrite (dict "name" "") (dict "name" "REDPANDA_ADMINAPI_PASSWORD" "valueFrom" (mustMergeOverwrite (dict) (dict "secretKeyRef" (mustMergeOverwrite (dict "key" "") (mustMergeOverwrite (dict) (dict "name" (get (fromJson (include "console.Fullname" (dict "a" (list $dot)))) "r"))) (dict "key" "redpanda-admin-api-password")))))))) (mustMergeOverwrite (dict "Value" (coalesce nil) "EnvVar" (dict "name" "")) (dict "Value" $values.secret.redpanda.adminApi.tlsCa "EnvVar" (mustMergeOverwrite (dict "name" "") (dict "name" "REDPANDA_ADMINAPI_TLS_CAFILEPATH" "value" "/etc/console/secrets/redpanda-admin-api-tls-ca")))) (mustMergeOverwrite (dict "Value" (coalesce nil) "EnvVar" (dict "name" "")) (dict "Value" $values.secret.redpanda.adminApi.tlsKey "EnvVar" (mustMergeOverwrite (dict "name" "") (dict "name" "REDPANDA_ADMINAPI_TLS_KEYFILEPATH" "value" "/etc/console/secrets/redpanda-admin-api-tls-key")))) (mustMergeOverwrite (dict "Value" (coalesce nil) "EnvVar" (dict "name" "")) (dict "Value" $values.secret.redpanda.adminApi.tlsCert "EnvVar" (mustMergeOverwrite (dict "name" "") (dict "name" "REDPANDA_ADMINAPI_TLS_CERTFILEPATH" "value" "/etc/console/secrets/redpanda-admin-api-tls-cert"))))) -}} -{{- $vars := $values.extraEnv -}} -{{- range $_, $possible := $possibleVars -}} -{{- if (not (empty $possible.Value)) -}} -{{- $vars = (concat (default (list) $vars) (list $possible.EnvVar)) -}} -{{- end -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $vars) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "console.consolePodVolumes" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $volumes := (list (mustMergeOverwrite (dict "name" "") (mustMergeOverwrite (dict) (dict "configMap" (mustMergeOverwrite (dict) (mustMergeOverwrite (dict) (dict "name" (get (fromJson (include "console.Fullname" (dict "a" (list $dot)))) "r"))) (dict)))) (dict "name" "configs"))) -}} -{{- if $values.secret.create -}} -{{- $volumes = (concat (default (list) $volumes) (list (mustMergeOverwrite (dict "name" "") (mustMergeOverwrite (dict) (dict "secret" (mustMergeOverwrite (dict) (dict "secretName" (get (fromJson (include "console.Fullname" (dict "a" (list $dot)))) "r"))))) (dict "name" "secrets")))) -}} -{{- end -}} -{{- range $_, $mount := $values.secretMounts -}} -{{- $volumes = (concat (default (list) $volumes) (list (mustMergeOverwrite (dict "name" "") (mustMergeOverwrite (dict) (dict "secret" (mustMergeOverwrite (dict) (dict "secretName" $mount.secretName "defaultMode" $mount.defaultMode)))) (dict "name" $mount.name)))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (concat (default (list) $volumes) (default (list) $values.extraVolumes))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/console/templates/_helpers.go.tpl b/charts/console/templates/_helpers.go.tpl deleted file mode 100644 index 3dbe0e6e9a..0000000000 --- a/charts/console/templates/_helpers.go.tpl +++ /dev/null @@ -1,82 +0,0 @@ -{{- /* Generated from "helpers.go" */ -}} - -{{- define "console.Name" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $name := (default $dot.Chart.Name $values.nameOverride) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "console.cleanForK8s" (dict "a" (list $name)))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "console.Fullname" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (ne $values.fullnameOverride "") -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "console.cleanForK8s" (dict "a" (list $values.fullnameOverride)))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- $name := (default $dot.Chart.Name $values.nameOverride) -}} -{{- if (contains $name $dot.Release.Name) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "console.cleanForK8s" (dict "a" (list $dot.Release.Name)))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "console.cleanForK8s" (dict "a" (list (printf "%s-%s" $dot.Release.Name $name))))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "console.ChartLabel" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $chart := (printf "%s-%s" $dot.Chart.Name $dot.Chart.Version) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "console.cleanForK8s" (dict "a" (list (replace "+" "_" $chart))))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "console.Labels" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $labels := (dict "helm.sh/chart" (get (fromJson (include "console.ChartLabel" (dict "a" (list $dot)))) "r") "app.kubernetes.io/managed-by" $dot.Release.Service) -}} -{{- if (ne $dot.Chart.AppVersion "") -}} -{{- $_ := (set $labels "app.kubernetes.io/version" $dot.Chart.AppVersion) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (merge (dict) $labels (get (fromJson (include "console.SelectorLabels" (dict "a" (list $dot)))) "r") $values.commonLabels)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "console.SelectorLabels" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (dict "app.kubernetes.io/name" (get (fromJson (include "console.Name" (dict "a" (list $dot)))) "r") "app.kubernetes.io/instance" $dot.Release.Name)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "console.cleanForK8s" -}} -{{- $s := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (trimSuffix "-" (trunc (63 | int) $s))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/console/templates/_helpers.tpl b/charts/console/templates/_helpers.tpl deleted file mode 100644 index ee2ab5d9b8..0000000000 --- a/charts/console/templates/_helpers.tpl +++ /dev/null @@ -1,25 +0,0 @@ -{{/* -Expand the name of the chart. -Used by tests/test-connection.yaml -*/}} -{{- define "console.name" -}} -{{- get ((include "console.Name" (dict "a" (list .))) | fromJson) "r" }} -{{- end }} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -Used by tests/test-connection.yaml -*/}} -{{- define "console.fullname" -}} -{{- get ((include "console.Fullname" (dict "a" (list .))) | fromJson) "r" }} -{{- end }} - -{{/* -Common labels -Used by tests/test-connection.yaml -*/}} -{{- define "console.labels" -}} -{{- (get ((include "console.Labels" (dict "a" (list .))) | fromJson) "r") | toYaml -}} -{{- end }} diff --git a/charts/console/templates/_hpa.go.tpl b/charts/console/templates/_hpa.go.tpl deleted file mode 100644 index 613bdfe81e..0000000000 --- a/charts/console/templates/_hpa.go.tpl +++ /dev/null @@ -1,25 +0,0 @@ -{{- /* Generated from "hpa.go" */ -}} - -{{- define "console.HorizontalPodAutoscaler" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not $values.autoscaling.enabled) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $metrics := (list) -}} -{{- if (ne (toJson $values.autoscaling.targetCPUUtilizationPercentage) "null") -}} -{{- $metrics = (concat (default (list) $metrics) (list (mustMergeOverwrite (dict "type" "") (dict "type" "Resource" "resource" (mustMergeOverwrite (dict "name" "" "target" (dict "type" "")) (dict "name" "cpu" "target" (mustMergeOverwrite (dict "type" "") (dict "type" "Utilization" "averageUtilization" $values.autoscaling.targetCPUUtilizationPercentage)))))))) -}} -{{- end -}} -{{- if (ne (toJson $values.autoscaling.targetMemoryUtilizationPercentage) "null") -}} -{{- $metrics = (concat (default (list) $metrics) (list (mustMergeOverwrite (dict "type" "") (dict "type" "Resource" "resource" (mustMergeOverwrite (dict "name" "" "target" (dict "type" "")) (dict "name" "memory" "target" (mustMergeOverwrite (dict "type" "") (dict "type" "Utilization" "averageUtilization" $values.autoscaling.targetMemoryUtilizationPercentage)))))))) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict "scaleTargetRef" (dict "kind" "" "name" "") "maxReplicas" 0) "status" (dict "desiredReplicas" 0 "currentMetrics" (coalesce nil))) (mustMergeOverwrite (dict) (dict "apiVersion" "autoscaling/v2" "kind" "HorizontalPodAutoscaler")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "labels" (get (fromJson (include "console.Labels" (dict "a" (list $dot)))) "r") "name" (get (fromJson (include "console.Fullname" (dict "a" (list $dot)))) "r") "namespace" $dot.Release.Namespace)) "spec" (mustMergeOverwrite (dict "scaleTargetRef" (dict "kind" "" "name" "") "maxReplicas" 0) (dict "scaleTargetRef" (mustMergeOverwrite (dict "kind" "" "name" "") (dict "apiVersion" "apps/v1" "kind" "Deployment" "name" (get (fromJson (include "console.Fullname" (dict "a" (list $dot)))) "r"))) "minReplicas" ($values.autoscaling.minReplicas | int) "maxReplicas" ($values.autoscaling.maxReplicas | int) "metrics" $metrics))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/console/templates/_ingress.go.tpl b/charts/console/templates/_ingress.go.tpl deleted file mode 100644 index d8636c94b7..0000000000 --- a/charts/console/templates/_ingress.go.tpl +++ /dev/null @@ -1,46 +0,0 @@ -{{- /* Generated from "ingress.go" */ -}} - -{{- define "console.Ingress" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not $values.ingress.enabled) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $tls := (coalesce nil) -}} -{{- range $_, $t := $values.ingress.tls -}} -{{- $hosts := (coalesce nil) -}} -{{- range $_, $host := $t.hosts -}} -{{- $hosts = (concat (default (list) $hosts) (list (tpl $host $dot))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $tls = (concat (default (list) $tls) (list (mustMergeOverwrite (dict) (dict "secretName" $t.secretName "hosts" $hosts)))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $rules := (coalesce nil) -}} -{{- range $_, $host := $values.ingress.hosts -}} -{{- $paths := (coalesce nil) -}} -{{- range $_, $path := $host.paths -}} -{{- $paths = (concat (default (list) $paths) (list (mustMergeOverwrite (dict "pathType" (coalesce nil) "backend" (dict)) (dict "path" $path.path "pathType" $path.pathType "backend" (mustMergeOverwrite (dict) (dict "service" (mustMergeOverwrite (dict "name" "" "port" (dict)) (dict "name" (get (fromJson (include "console.Fullname" (dict "a" (list $dot)))) "r") "port" (mustMergeOverwrite (dict) (dict "number" ($values.service.port | int))))))))))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $rules = (concat (default (list) $rules) (list (mustMergeOverwrite (dict) (mustMergeOverwrite (dict) (dict "http" (mustMergeOverwrite (dict "paths" (coalesce nil)) (dict "paths" $paths)))) (dict "host" (tpl $host.host $dot))))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict) "status" (dict "loadBalancer" (dict))) (mustMergeOverwrite (dict) (dict "kind" "Ingress" "apiVersion" "networking.k8s.io/v1")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (get (fromJson (include "console.Fullname" (dict "a" (list $dot)))) "r") "labels" (get (fromJson (include "console.Labels" (dict "a" (list $dot)))) "r") "namespace" $dot.Release.Namespace "annotations" $values.ingress.annotations)) "spec" (mustMergeOverwrite (dict) (dict "ingressClassName" $values.ingress.className "tls" $tls "rules" $rules))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/console/templates/_notes.go.tpl b/charts/console/templates/_notes.go.tpl deleted file mode 100644 index cf9531b36a..0000000000 --- a/charts/console/templates/_notes.go.tpl +++ /dev/null @@ -1,40 +0,0 @@ -{{- /* Generated from "notes.go" */ -}} - -{{- define "console.Notes" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $commands := (list `1. Get the application URL by running these commands:`) -}} -{{- if $values.ingress.enabled -}} -{{- $scheme := "http" -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $values.ingress.tls)))) "r") | int) (0 | int)) -}} -{{- $scheme = "https" -}} -{{- end -}} -{{- range $_, $host := $values.ingress.hosts -}} -{{- range $_, $path := $host.paths -}} -{{- $commands = (concat (default (list) $commands) (list (printf "%s://%s%s" $scheme $host.host $path.path))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- else -}}{{- if (contains "NodePort" (toString $values.service.type)) -}} -{{- $commands = (concat (default (list) $commands) (list (printf ` export NODE_PORT=$(kubectl get --namespace %s -o jsonpath="{.spec.ports[0].nodePort}" services %s)` $dot.Release.Namespace (get (fromJson (include "console.Fullname" (dict "a" (list $dot)))) "r")) (printf ` export NODE_IP=$(kubectl get nodes --namespace %s -o jsonpath="{.items[0].status.addresses[0].address}")` $dot.Release.Namespace) " echo http://$NODE_IP:$NODE_PORT")) -}} -{{- else -}}{{- if (contains "NodePort" (toString $values.service.type)) -}} -{{- $commands = (concat (default (list) $commands) (list ` NOTE: It may take a few minutes for the LoadBalancer IP to be available.` (printf ` You can watch the status of by running 'kubectl get --namespace %s svc -w %s'` $dot.Release.Namespace (get (fromJson (include "console.Fullname" (dict "a" (list $dot)))) "r")) (printf ` export SERVICE_IP=$(kubectl get svc --namespace %s %s --template "{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}")` $dot.Release.Namespace (get (fromJson (include "console.Fullname" (dict "a" (list $dot)))) "r")) (printf ` echo http://$SERVICE_IP:%d` ($values.service.port | int)))) -}} -{{- else -}}{{- if (contains "ClusterIP" (toString $values.service.type)) -}} -{{- $commands = (concat (default (list) $commands) (list (printf ` export POD_NAME=$(kubectl get pods --namespace %s -l "app.kubernetes.io/name=%s,app.kubernetes.io/instance=%s" -o jsonpath="{.items[0].metadata.name}")` $dot.Release.Namespace (get (fromJson (include "console.Name" (dict "a" (list $dot)))) "r") $dot.Release.Name) (printf ` export CONTAINER_PORT=$(kubectl get pod --namespace %s $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")` $dot.Release.Namespace) ` echo "Visit http://127.0.0.1:8080 to use your application"` (printf ` kubectl --namespace %s port-forward $POD_NAME 8080:$CONTAINER_PORT` $dot.Release.Namespace))) -}} -{{- end -}} -{{- end -}} -{{- end -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $commands) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/console/templates/_secret.go.tpl b/charts/console/templates/_secret.go.tpl deleted file mode 100644 index 66956d2b4a..0000000000 --- a/charts/console/templates/_secret.go.tpl +++ /dev/null @@ -1,22 +0,0 @@ -{{- /* Generated from "secret.go" */ -}} - -{{- define "console.Secret" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not $values.secret.create) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $jwtSigningKey := $values.secret.authentication.jwtSigningKey -}} -{{- if (eq $jwtSigningKey "") -}} -{{- $jwtSigningKey = (randAlphaNum (32 | int)) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil))) (mustMergeOverwrite (dict) (dict "apiVersion" "v1" "kind" "Secret")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (get (fromJson (include "console.Fullname" (dict "a" (list $dot)))) "r") "labels" (get (fromJson (include "console.Labels" (dict "a" (list $dot)))) "r") "namespace" $dot.Release.Namespace)) "type" "Opaque" "stringData" (dict "kafka-sasl-password" (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.secret.kafka.saslPassword "")))) "r") "kafka-sasl-aws-msk-iam-secret-key" (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.secret.kafka.awsMskIamSecretKey "")))) "r") "kafka-tls-ca" (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.secret.kafka.tlsCa "")))) "r") "kafka-tls-cert" (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.secret.kafka.tlsCert "")))) "r") "kafka-tls-key" (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.secret.kafka.tlsKey "")))) "r") "schema-registry-bearertoken" (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.secret.schemaRegistry.bearerToken "")))) "r") "schema-registry-password" (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.secret.schemaRegistry.password "")))) "r") "schemaregistry-tls-ca" (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.secret.schemaRegistry.tlsCa "")))) "r") "schemaregistry-tls-cert" (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.secret.schemaRegistry.tlsCert "")))) "r") "schemaregistry-tls-key" (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.secret.schemaRegistry.tlsKey "")))) "r") "authentication-jwt-signingkey" $jwtSigningKey "authentication-oidc-client-secret" (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.secret.authentication.oidc.clientSecret "")))) "r") "license" $values.secret.license "redpanda-admin-api-password" (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.secret.redpanda.adminApi.password "")))) "r") "redpanda-admin-api-tls-ca" (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.secret.redpanda.adminApi.tlsCa "")))) "r") "redpanda-admin-api-tls-cert" (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.secret.redpanda.adminApi.tlsCert "")))) "r") "redpanda-admin-api-tls-key" (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.secret.redpanda.adminApi.tlsKey "")))) "r") "serde-protobuf-git-basicauth-password" (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.secret.serde.protobufGitBasicAuthPassword "")))) "r"))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/console/templates/_service.go.tpl b/charts/console/templates/_service.go.tpl deleted file mode 100644 index 97742deced..0000000000 --- a/charts/console/templates/_service.go.tpl +++ /dev/null @@ -1,20 +0,0 @@ -{{- /* Generated from "service.go" */ -}} - -{{- define "console.Service" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $port := (mustMergeOverwrite (dict "port" 0 "targetPort" 0) (dict "name" "http" "port" (($values.service.port | int) | int) "protocol" "TCP")) -}} -{{- if (ne (toJson $values.service.targetPort) "null") -}} -{{- $_ := (set $port "targetPort" $values.service.targetPort) -}} -{{- end -}} -{{- if (and (contains "NodePort" (toString $values.service.type)) (ne (toJson $values.service.nodePort) "null")) -}} -{{- $_ := (set $port "nodePort" $values.service.nodePort) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict) "status" (dict "loadBalancer" (dict))) (mustMergeOverwrite (dict) (dict "apiVersion" "v1" "kind" "Service")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (get (fromJson (include "console.Fullname" (dict "a" (list $dot)))) "r") "namespace" $dot.Release.Namespace "labels" (get (fromJson (include "console.Labels" (dict "a" (list $dot)))) "r") "annotations" $values.service.annotations)) "spec" (mustMergeOverwrite (dict) (dict "type" $values.service.type "selector" (get (fromJson (include "console.SelectorLabels" (dict "a" (list $dot)))) "r") "ports" (list $port)))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/console/templates/_serviceaccount.go.tpl b/charts/console/templates/_serviceaccount.go.tpl deleted file mode 100644 index 353c94daf6..0000000000 --- a/charts/console/templates/_serviceaccount.go.tpl +++ /dev/null @@ -1,39 +0,0 @@ -{{- /* Generated from "serviceaccount.go" */ -}} - -{{- define "console.ServiceAccountName" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if $values.serviceAccount.create -}} -{{- if (ne $values.serviceAccount.name "") -}} -{{- $_is_returning = true -}} -{{- (dict "r" $values.serviceAccount.name) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "console.Fullname" (dict "a" (list $dot)))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (default "default" $values.serviceAccount.name)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "console.ServiceAccount" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not $values.serviceAccount.create) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil))) (mustMergeOverwrite (dict) (dict "kind" "ServiceAccount" "apiVersion" "v1")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (get (fromJson (include "console.ServiceAccountName" (dict "a" (list $dot)))) "r") "labels" (get (fromJson (include "console.Labels" (dict "a" (list $dot)))) "r") "namespace" $dot.Release.Namespace "annotations" $values.serviceAccount.annotations)) "automountServiceAccountToken" $values.serviceAccount.automountServiceAccountToken))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/console/templates/_shims.tpl b/charts/console/templates/_shims.tpl deleted file mode 100644 index 8bdb8a104f..0000000000 --- a/charts/console/templates/_shims.tpl +++ /dev/null @@ -1,352 +0,0 @@ -{{- /* Generated from "bootstrap.go" */ -}} - -{{- define "_shims.typetest" -}} -{{- $typ := (index .a 0) -}} -{{- $value := (index .a 1) -}} -{{- $zero := (index .a 2) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (typeIs $typ $value) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $value true)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $zero false)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.typeassertion" -}} -{{- $typ := (index .a 0) -}} -{{- $value := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (not (typeIs $typ $value)) -}} -{{- $_ := (fail (printf "expected type of %q got: %T" $typ $value)) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $value) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.dicttest" -}} -{{- $m := (index .a 0) -}} -{{- $key := (index .a 1) -}} -{{- $zero := (index .a 2) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (hasKey $m $key) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list (index $m $key) true)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $zero false)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.deref" -}} -{{- $ptr := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (eq (toJson $ptr) "null") -}} -{{- $_ := (fail "nil dereference") -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $ptr) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.len" -}} -{{- $m := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (eq (toJson $m) "null") -}} -{{- $_is_returning = true -}} -{{- (dict "r" (0 | int)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (len $m)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.ptr_Deref" -}} -{{- $ptr := (index .a 0) -}} -{{- $def := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (ne (toJson $ptr) "null") -}} -{{- $_is_returning = true -}} -{{- (dict "r" $ptr) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $def) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.ptr_Equal" -}} -{{- $a := (index .a 0) -}} -{{- $b := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (and (eq (toJson $a) "null") (eq (toJson $b) "null")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" true) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (eq $a $b)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.get" -}} -{{- $dict := (index .a 0) -}} -{{- $key := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (not (hasKey $dict $key)) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list (coalesce nil) false)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list (get $dict $key) true)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.lookup" -}} -{{- $apiVersion := (index .a 0) -}} -{{- $kind := (index .a 1) -}} -{{- $namespace := (index .a 2) -}} -{{- $name := (index .a 3) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $result := (lookup $apiVersion $kind $namespace $name) -}} -{{- if (empty $result) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list (coalesce nil) false)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $result true)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.fromYaml" -}} -{{- $in := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $result := (fromYaml $in) -}} -{{- if (and (hasKey $result "Error") (eq (len $result) (1 | int))) -}} -{{- $_ := (fail (printf "fromYaml: unmarshalling failed: %s" (index $result "Error"))) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $result) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.asnumeric" -}} -{{- $value := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (typeIs "float64" $value) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $value true)) | toJson -}} -{{- break -}} -{{- end -}} -{{- if (typeIs "int64" $value) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $value true)) | toJson -}} -{{- break -}} -{{- end -}} -{{- if (typeIs "int" $value) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $value true)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list (0 | int) false)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.asintegral" -}} -{{- $value := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (or (typeIs "int64" $value) (typeIs "int" $value)) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $value true)) | toJson -}} -{{- break -}} -{{- end -}} -{{- if (and (typeIs "float64" $value) (eq (floor $value) $value)) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $value true)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list (0 | int) false)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.parseResource" -}} -{{- $repr := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (typeIs "float64" $repr) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list (float64 $repr) 1.0)) | toJson -}} -{{- break -}} -{{- end -}} -{{- if (not (typeIs "string" $repr)) -}} -{{- $_ := (fail (printf "invalid Quantity expected string or float64 got: %T (%v)" $repr $repr)) -}} -{{- end -}} -{{- if (not (regexMatch `^[0-9]+(\.[0-9]{0,6})?(k|m|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$` $repr)) -}} -{{- $_ := (fail (printf "invalid Quantity: %q" $repr)) -}} -{{- end -}} -{{- $reprStr := (toString $repr) -}} -{{- $unit := (regexFind "(k|m|M|G|T|P|Ki|Mi|Gi|Ti|Pi)$" $repr) -}} -{{- $numeric := (float64 (substr (0 | int) ((sub ((get (fromJson (include "_shims.len" (dict "a" (list $reprStr)))) "r") | int) ((get (fromJson (include "_shims.len" (dict "a" (list $unit)))) "r") | int)) | int) $reprStr)) -}} -{{- $_196_scale_ok := (get (fromJson (include "_shims.dicttest" (dict "a" (list (dict "" 1.0 "m" 0.001 "k" (1000 | int) "M" (1000000 | int) "G" (1000000000 | int) "T" (1000000000000 | int) "P" (1000000000000000 | int) "Ki" (1024 | int) "Mi" (1048576 | int) "Gi" (1073741824 | int) "Ti" (1099511627776 | int) "Pi" (1125899906842624 | int)) $unit (float64 0))))) "r") -}} -{{- $scale := ((index $_196_scale_ok 0) | float64) -}} -{{- $ok := (index $_196_scale_ok 1) -}} -{{- if (not $ok) -}} -{{- $_ := (fail (printf "unknown unit: %q" $unit)) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $numeric $scale)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.resource_MustParse" -}} -{{- $repr := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_219_numeric_scale := (get (fromJson (include "_shims.parseResource" (dict "a" (list $repr)))) "r") -}} -{{- $numeric := ((index $_219_numeric_scale 0) | float64) -}} -{{- $scale := ((index $_219_numeric_scale 1) | float64) -}} -{{- $strs := (list "" "m" "k" "M" "G" "T" "P" "Ki" "Mi" "Gi" "Ti" "Pi") -}} -{{- $scales := (list 1.0 0.001 (1000 | int) (1000000 | int) (1000000000 | int) (1000000000000 | int) (1000000000000000 | int) (1024 | int) (1048576 | int) (1073741824 | int) (1099511627776 | int) (1125899906842624 | int)) -}} -{{- $idx := -1 -}} -{{- range $i, $s := $scales -}} -{{- if (eq ($s | float64) ($scale | float64)) -}} -{{- $idx = $i -}} -{{- break -}} -{{- end -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- if (eq $idx -1) -}} -{{- $_ := (fail (printf "unknown scale: %v" $scale)) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (printf "%s%s" (toString $numeric) (index $strs $idx))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.resource_Value" -}} -{{- $repr := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_246_numeric_scale := (get (fromJson (include "_shims.parseResource" (dict "a" (list $repr)))) "r") -}} -{{- $numeric := ((index $_246_numeric_scale 0) | float64) -}} -{{- $scale := ((index $_246_numeric_scale 1) | float64) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (int64 (ceil ((mulf $numeric $scale) | float64)))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.resource_MilliValue" -}} -{{- $repr := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_251_numeric_scale := (get (fromJson (include "_shims.parseResource" (dict "a" (list $repr)))) "r") -}} -{{- $numeric := ((index $_251_numeric_scale 0) | float64) -}} -{{- $scale := ((index $_251_numeric_scale 1) | float64) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (int64 (ceil ((mulf ((mulf $numeric 1000.0) | float64) $scale) | float64)))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.time_ParseDuration" -}} -{{- $repr := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $unitMap := (dict "s" ((1000000000 | int64) | int64) "m" ((60000000000 | int64) | int64) "h" ((3600000000000 | int64) | int64)) -}} -{{- $original := $repr -}} -{{- $value := ((0 | int64) | int64) -}} -{{- if (eq $repr "") -}} -{{- $_ := (fail (printf "invalid Duration: %q" $original)) -}} -{{- end -}} -{{- if (eq $repr "0") -}} -{{- $_is_returning = true -}} -{{- (dict "r" (0 | int64)) | toJson -}} -{{- break -}} -{{- end -}} -{{- range $_, $_ := (list (0 | int) (0 | int) (0 | int)) -}} -{{- if (eq $repr "") -}} -{{- break -}} -{{- end -}} -{{- $n := (regexFind `^\d+` $repr) -}} -{{- if (eq $n "") -}} -{{- $_ := (fail (printf "invalid Duration: %q" $original)) -}} -{{- end -}} -{{- $repr = (substr ((get (fromJson (include "_shims.len" (dict "a" (list $n)))) "r") | int) -1 $repr) -}} -{{- $unit := (regexFind `^(h|m|s)` $repr) -}} -{{- if (eq $unit "") -}} -{{- $_ := (fail (printf "invalid Duration: %q" $original)) -}} -{{- end -}} -{{- $repr = (substr ((get (fromJson (include "_shims.len" (dict "a" (list $unit)))) "r") | int) -1 $repr) -}} -{{- $value = ((add $value (((mul (int64 $n) (ternary (index $unitMap $unit) 0 (hasKey $unitMap $unit))) | int64))) | int64) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $value) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.time_Duration_String" -}} -{{- $dur := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (duration ((div $dur ((1000000000 | int64) | int64)) | int64))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.render-manifest" -}} -{{- $tpl := (index . 0) -}} -{{- $dot := (index . 1) -}} -{{- $manifests := (get ((include $tpl (dict "a" (list $dot))) | fromJson) "r") -}} -{{- if not (typeIs "[]interface {}" $manifests) -}} -{{- $manifests = (list $manifests) -}} -{{- end -}} -{{- range $_, $manifest := $manifests -}} -{{- if ne (toJson $manifest) "null" }} ---- -{{toYaml (unset (unset $manifest "status") "creationTimestamp")}} -{{- end -}} -{{- end -}} -{{- end -}} diff --git a/charts/console/templates/entry-point.yaml b/charts/console/templates/entry-point.yaml deleted file mode 100644 index 01fb6d68b2..0000000000 --- a/charts/console/templates/entry-point.yaml +++ /dev/null @@ -1,17 +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. -*/}} -{{- include "_shims.render-manifest" (list "console.render" .) -}} diff --git a/charts/console/templates/tests/test-connection.yaml b/charts/console/templates/tests/test-connection.yaml deleted file mode 100644 index 975ec43408..0000000000 --- a/charts/console/templates/tests/test-connection.yaml +++ /dev/null @@ -1,22 +0,0 @@ -{{- if .Values.tests.enabled }} -apiVersion: v1 -kind: Pod -metadata: - name: "{{ include "console.fullname" . }}-test-connection" - namespace: {{ .Release.Namespace | quote }} - labels: - {{- include "console.labels" . | nindent 4 }} - annotations: - "helm.sh/hook": test -spec: -{{- with .Values.imagePullSecrets }} - imagePullSecrets: {{- toYaml . | nindent 4 }} -{{- end }} - containers: - - name: wget - image: busybox - command: ['wget'] - args: ['{{ include "console.fullname" . }}:{{ .Values.service.port }}', '--timeout=15', '-t 20'] - restartPolicy: Never - priorityClassName: {{ .Values.priorityClassName | quote }} -{{- end }} \ No newline at end of file diff --git a/charts/console/values.schema.json b/charts/console/values.schema.json deleted file mode 100644 index 39ab8284ba..0000000000 --- a/charts/console/values.schema.json +++ /dev/null @@ -1,3948 +0,0 @@ -{ - "$id": "https://github.com/redpanda-data/redpanda-operator/charts/console/v3/values", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "additionalProperties": false, - "description": "DO NOT EDIT!. This file was generated by ./cmd/genschema/genschema.go", - "properties": { - "affinity": { - "additionalProperties": false, - "properties": { - "nodeAffinity": { - "additionalProperties": false, - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "preference": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchFields": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "weight": { - "type": "integer" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "additionalProperties": false, - "properties": { - "nodeSelectorTerms": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchFields": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "podAffinity": { - "additionalProperties": false, - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "podAffinityTerm": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "weight": { - "type": "integer" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "podAntiAffinity": { - "additionalProperties": false, - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "podAffinityTerm": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "weight": { - "type": "integer" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "automountServiceAccountToken": { - "type": "boolean" - }, - "autoscaling": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "maxReplicas": { - "type": "integer" - }, - "minReplicas": { - "type": "integer" - }, - "targetCPUUtilizationPercentage": { - "type": "integer" - }, - "targetMemoryUtilizationPercentage": { - "type": "integer" - } - }, - "type": "object" - }, - "commonLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "config": { - "type": "object" - }, - "configmap": { - "additionalProperties": false, - "properties": { - "create": { - "type": "boolean" - } - }, - "type": "object" - }, - "deployment": { - "additionalProperties": false, - "properties": { - "command": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "create": { - "type": "boolean" - }, - "extraArgs": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "extraContainers": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "args": { - "items": { - "type": "string" - }, - "type": "array" - }, - "command": { - "items": { - "type": "string" - }, - "type": "array" - }, - "env": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "valueFrom": { - "additionalProperties": false, - "properties": { - "configMapKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - }, - "secretKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "envFrom": { - "items": { - "additionalProperties": false, - "properties": { - "configMapRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "prefix": { - "type": "string" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "image": { - "type": "string" - }, - "imagePullPolicy": { - "type": "string" - }, - "lifecycle": { - "additionalProperties": false, - "properties": { - "postStart": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "preStop": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "livenessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "ports": { - "items": { - "additionalProperties": false, - "properties": { - "containerPort": { - "type": "integer" - }, - "hostIP": { - "type": "string" - }, - "hostPort": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "protocol": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "readinessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "resizePolicy": { - "items": { - "additionalProperties": false, - "properties": { - "resourceName": { - "type": "string" - }, - "restartPolicy": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "resources": { - "additionalProperties": false, - "properties": { - "claims": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "limits": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "requests": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - } - }, - "type": "object" - }, - "restartPolicy": { - "type": "string" - }, - "securityContext": { - "additionalProperties": false, - "properties": { - "allowPrivilegeEscalation": { - "type": "boolean" - }, - "appArmorProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "capabilities": { - "additionalProperties": false, - "properties": { - "add": { - "items": { - "type": "string" - }, - "type": "array" - }, - "drop": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "privileged": { - "type": "boolean" - }, - "procMount": { - "type": "string" - }, - "readOnlyRootFilesystem": { - "type": "boolean" - }, - "runAsGroup": { - "type": "integer" - }, - "runAsNonRoot": { - "type": "boolean" - }, - "runAsUser": { - "type": "integer" - }, - "seLinuxOptions": { - "additionalProperties": false, - "properties": { - "level": { - "type": "string" - }, - "role": { - "type": "string" - }, - "type": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "seccompProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "windowsOptions": { - "additionalProperties": false, - "properties": { - "gmsaCredentialSpec": { - "type": "string" - }, - "gmsaCredentialSpecName": { - "type": "string" - }, - "hostProcess": { - "type": "boolean" - }, - "runAsUserName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "startupProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "stdin": { - "type": "boolean" - }, - "stdinOnce": { - "type": "boolean" - }, - "terminationMessagePath": { - "type": "string" - }, - "terminationMessagePolicy": { - "type": "string" - }, - "tty": { - "type": "boolean" - }, - "volumeDevices": { - "items": { - "additionalProperties": false, - "properties": { - "devicePath": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "volumeMounts": { - "items": { - "additionalProperties": false, - "properties": { - "mountPath": { - "type": "string" - }, - "mountPropagation": { - "type": "string" - }, - "name": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "recursiveReadOnly": { - "type": "string" - }, - "subPath": { - "type": "string" - }, - "subPathExpr": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "workingDir": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "extraEnv": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "valueFrom": { - "additionalProperties": false, - "properties": { - "configMapKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - }, - "secretKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "extraEnvFrom": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "configMapRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "prefix": { - "type": "string" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "extraVolumeMounts": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "mountPath": { - "type": "string" - }, - "mountPropagation": { - "type": "string" - }, - "name": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "recursiveReadOnly": { - "type": "string" - }, - "subPath": { - "type": "string" - }, - "subPathExpr": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "extraVolumes": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "awsElasticBlockStore": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "partition": { - "type": "integer" - }, - "readOnly": { - "type": "boolean" - }, - "volumeID": { - "type": "string" - } - }, - "type": "object" - }, - "azureDisk": { - "additionalProperties": false, - "properties": { - "cachingMode": { - "type": "string" - }, - "diskName": { - "type": "string" - }, - "diskURI": { - "type": "string" - }, - "fsType": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - } - }, - "type": "object" - }, - "azureFile": { - "additionalProperties": false, - "properties": { - "readOnly": { - "type": "boolean" - }, - "secretName": { - "type": "string" - }, - "shareName": { - "type": "string" - } - }, - "type": "object" - }, - "cephfs": { - "additionalProperties": false, - "properties": { - "monitors": { - "items": { - "type": "string" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretFile": { - "type": "string" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "cinder": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "volumeID": { - "type": "string" - } - }, - "type": "object" - }, - "configMap": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "type": "integer" - }, - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "csi": { - "additionalProperties": false, - "properties": { - "driver": { - "type": "string" - }, - "fsType": { - "type": "string" - }, - "nodePublishSecretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "readOnly": { - "type": "boolean" - }, - "volumeAttributes": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "downwardAPI": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "type": "integer" - }, - "items": { - "items": { - "additionalProperties": false, - "properties": { - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "emptyDir": { - "additionalProperties": false, - "properties": { - "medium": { - "type": "string" - }, - "sizeLimit": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - } - }, - "type": "object" - }, - "ephemeral": { - "additionalProperties": false, - "properties": { - "volumeClaimTemplate": { - "additionalProperties": false, - "properties": { - "metadata": { - "additionalProperties": false, - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "creationTimestamp": { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - "deletionGracePeriodSeconds": { - "type": "integer" - }, - "deletionTimestamp": { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - "finalizers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "generateName": { - "type": "string" - }, - "generation": { - "type": "integer" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "managedFields": { - "items": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldsType": { - "type": "string" - }, - "fieldsV1": { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - "manager": { - "type": "string" - }, - "operation": { - "type": "string" - }, - "subresource": { - "type": "string" - }, - "time": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "namespace": { - "type": "string" - }, - "ownerReferences": { - "items": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "blockOwnerDeletion": { - "type": "boolean" - }, - "controller": { - "type": "boolean" - }, - "kind": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uid": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "resourceVersion": { - "type": "string" - }, - "selfLink": { - "type": "string" - }, - "uid": { - "type": "string" - } - }, - "type": "object" - }, - "spec": { - "additionalProperties": false, - "properties": { - "accessModes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "dataSource": { - "additionalProperties": false, - "properties": { - "apiGroup": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "dataSourceRef": { - "additionalProperties": false, - "properties": { - "apiGroup": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "name": { - "type": "string" - }, - "namespace": { - "type": "string" - } - }, - "type": "object" - }, - "resources": { - "additionalProperties": false, - "properties": { - "limits": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "requests": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - } - }, - "type": "object" - }, - "selector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "storageClassName": { - "type": "string" - }, - "volumeAttributesClassName": { - "type": "string" - }, - "volumeMode": { - "type": "string" - }, - "volumeName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "fc": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "lun": { - "type": "integer" - }, - "readOnly": { - "type": "boolean" - }, - "targetWWNs": { - "items": { - "type": "string" - }, - "type": "array" - }, - "wwids": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "flexVolume": { - "additionalProperties": false, - "properties": { - "driver": { - "type": "string" - }, - "fsType": { - "type": "string" - }, - "options": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "flocker": { - "additionalProperties": false, - "properties": { - "datasetName": { - "type": "string" - }, - "datasetUUID": { - "type": "string" - } - }, - "type": "object" - }, - "gcePersistentDisk": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "partition": { - "type": "integer" - }, - "pdName": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - } - }, - "type": "object" - }, - "gitRepo": { - "additionalProperties": false, - "properties": { - "directory": { - "type": "string" - }, - "repository": { - "type": "string" - }, - "revision": { - "type": "string" - } - }, - "type": "object" - }, - "glusterfs": { - "additionalProperties": false, - "properties": { - "endpoints": { - "type": "string" - }, - "path": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - } - }, - "type": "object" - }, - "hostPath": { - "additionalProperties": false, - "properties": { - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "iscsi": { - "additionalProperties": false, - "properties": { - "chapAuthDiscovery": { - "type": "boolean" - }, - "chapAuthSession": { - "type": "boolean" - }, - "fsType": { - "type": "string" - }, - "initiatorName": { - "type": "string" - }, - "iqn": { - "type": "string" - }, - "iscsiInterface": { - "type": "string" - }, - "lun": { - "type": "integer" - }, - "portals": { - "items": { - "type": "string" - }, - "type": "array" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "targetPortal": { - "type": "string" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "nfs": { - "additionalProperties": false, - "properties": { - "path": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "server": { - "type": "string" - } - }, - "type": "object" - }, - "persistentVolumeClaim": { - "additionalProperties": false, - "properties": { - "claimName": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - } - }, - "type": "object" - }, - "photonPersistentDisk": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "pdID": { - "type": "string" - } - }, - "type": "object" - }, - "portworxVolume": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "volumeID": { - "type": "string" - } - }, - "type": "object" - }, - "projected": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "type": "integer" - }, - "sources": { - "items": { - "additionalProperties": false, - "properties": { - "clusterTrustBundle": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "path": { - "type": "string" - }, - "signerName": { - "type": "string" - } - }, - "type": "object" - }, - "configMap": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "downwardAPI": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "secret": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "serviceAccountToken": { - "additionalProperties": false, - "properties": { - "audience": { - "type": "string" - }, - "expirationSeconds": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "quobyte": { - "additionalProperties": false, - "properties": { - "group": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "registry": { - "type": "string" - }, - "tenant": { - "type": "string" - }, - "user": { - "type": "string" - }, - "volume": { - "type": "string" - } - }, - "type": "object" - }, - "rbd": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "image": { - "type": "string" - }, - "keyring": { - "type": "string" - }, - "monitors": { - "items": { - "type": "string" - }, - "type": "array" - }, - "pool": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "scaleIO": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "gateway": { - "type": "string" - }, - "protectionDomain": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "sslEnabled": { - "type": "boolean" - }, - "storageMode": { - "type": "string" - }, - "storagePool": { - "type": "string" - }, - "system": { - "type": "string" - }, - "volumeName": { - "type": "string" - } - }, - "type": "object" - }, - "secret": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "type": "integer" - }, - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "optional": { - "type": "boolean" - }, - "secretName": { - "type": "string" - } - }, - "type": "object" - }, - "storageos": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "volumeName": { - "type": "string" - }, - "volumeNamespace": { - "type": "string" - } - }, - "type": "object" - }, - "vsphereVolume": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "storagePolicyID": { - "type": "string" - }, - "storagePolicyName": { - "type": "string" - }, - "volumePath": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "fullnameOverride": { - "type": "string" - }, - "global": { - "type": "object" - }, - "image": { - "additionalProperties": false, - "properties": { - "pullPolicy": { - "type": "string" - }, - "registry": { - "type": "string" - }, - "repository": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "type": "object" - }, - "imagePullSecrets": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "ingress": { - "additionalProperties": false, - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "className": { - "type": "string" - }, - "enabled": { - "type": "boolean" - }, - "hosts": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "paths": { - "items": { - "additionalProperties": false, - "properties": { - "path": { - "type": "string" - }, - "pathType": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "tls": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "hosts": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secretName": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "initContainers": { - "additionalProperties": false, - "properties": { - "extraInitContainers": { - "type": "string" - } - }, - "type": "object" - }, - "licenseSecretRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "livenessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "nameOverride": { - "type": "string" - }, - "nodeSelector": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "podAnnotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "podLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "podSecurityContext": { - "additionalProperties": false, - "properties": { - "appArmorProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "fsGroup": { - "type": "integer" - }, - "fsGroupChangePolicy": { - "enum": [ - "OnRootMismatch", - "Always" - ], - "type": "string" - }, - "runAsGroup": { - "type": "integer" - }, - "runAsNonRoot": { - "type": "boolean" - }, - "runAsUser": { - "type": "integer" - }, - "seLinuxOptions": { - "additionalProperties": false, - "properties": { - "level": { - "type": "string" - }, - "role": { - "type": "string" - }, - "type": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "seccompProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "supplementalGroups": { - "oneOf": [ - { - "items": { - "type": "integer" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "sysctls": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "windowsOptions": { - "additionalProperties": false, - "properties": { - "gmsaCredentialSpec": { - "type": "string" - }, - "gmsaCredentialSpecName": { - "type": "string" - }, - "hostProcess": { - "type": "boolean" - }, - "runAsUserName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "priorityClassName": { - "type": "string" - }, - "readinessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "replicaCount": { - "type": "integer" - }, - "resources": { - "additionalProperties": false, - "properties": { - "claims": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "limits": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "requests": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - } - }, - "type": "object" - }, - "secret": { - "additionalProperties": false, - "properties": { - "authentication": { - "additionalProperties": false, - "properties": { - "jwtSigningKey": { - "type": "string" - }, - "oidc": { - "additionalProperties": false, - "properties": { - "clientSecret": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "create": { - "type": "boolean" - }, - "kafka": { - "additionalProperties": false, - "properties": { - "awsMskIamSecretKey": { - "type": "string" - }, - "saslPassword": { - "type": "string" - }, - "tlsCa": { - "type": "string" - }, - "tlsCert": { - "type": "string" - }, - "tlsKey": { - "type": "string" - }, - "tlsPassphrase": { - "type": "string" - } - }, - "type": "object" - }, - "license": { - "type": "string" - }, - "redpanda": { - "additionalProperties": false, - "properties": { - "adminApi": { - "additionalProperties": false, - "properties": { - "password": { - "type": "string" - }, - "tlsCa": { - "type": "string" - }, - "tlsCert": { - "type": "string" - }, - "tlsKey": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "schemaRegistry": { - "additionalProperties": false, - "properties": { - "bearerToken": { - "type": "string" - }, - "password": { - "type": "string" - }, - "tlsCa": { - "type": "string" - }, - "tlsCert": { - "type": "string" - }, - "tlsKey": { - "type": "string" - } - }, - "type": "object" - }, - "serde": { - "additionalProperties": false, - "properties": { - "protobufGitBasicAuthPassword": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "secretMounts": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "secretName": { - "type": "string" - }, - "subPath": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "securityContext": { - "additionalProperties": false, - "properties": { - "allowPrivilegeEscalation": { - "type": "boolean" - }, - "appArmorProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "capabilities": { - "additionalProperties": false, - "properties": { - "add": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "drop": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "privileged": { - "type": "boolean" - }, - "procMount": { - "type": "string" - }, - "readOnlyRootFilesystem": { - "type": "boolean" - }, - "runAsGroup": { - "type": "integer" - }, - "runAsNonRoot": { - "type": "boolean" - }, - "runAsUser": { - "type": "integer" - }, - "seLinuxOptions": { - "additionalProperties": false, - "properties": { - "level": { - "type": "string" - }, - "role": { - "type": "string" - }, - "type": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "seccompProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "windowsOptions": { - "additionalProperties": false, - "properties": { - "gmsaCredentialSpec": { - "type": "string" - }, - "gmsaCredentialSpecName": { - "type": "string" - }, - "hostProcess": { - "type": "boolean" - }, - "runAsUserName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "service": { - "additionalProperties": false, - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "nodePort": { - "type": "integer" - }, - "port": { - "type": "integer" - }, - "targetPort": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "serviceAccount": { - "additionalProperties": false, - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "automountServiceAccountToken": { - "type": "boolean" - }, - "create": { - "type": "boolean" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "strategy": { - "additionalProperties": false, - "properties": { - "rollingUpdate": { - "additionalProperties": false, - "properties": { - "maxSurge": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "maxUnavailable": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "tests": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - } - }, - "type": "object" - }, - "tolerations": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "effect": { - "type": "string" - }, - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "tolerationSeconds": { - "type": "integer" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "topologySpreadConstraints": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "maxSkew": { - "type": "integer" - }, - "minDomains": { - "type": "integer" - }, - "nodeAffinityPolicy": { - "type": "string" - }, - "nodeTaintsPolicy": { - "type": "string" - }, - "topologyKey": { - "type": "string" - }, - "whenUnsatisfiable": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" -} diff --git a/charts/console/values.yaml b/charts/console/values.yaml deleted file mode 100644 index 1ff792f5ac..0000000000 --- a/charts/console/values.yaml +++ /dev/null @@ -1,273 +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. - -# Default values for console. -# This is a YAML-formatted file. -# Declare variables to be passed into your templates. - -replicaCount: 1 - -# -- Redpanda Console Docker image settings. -image: - registry: docker.redpanda.com - # -- Docker repository from which to pull the Redpanda Docker image. - repository: redpandadata/console - # -- The imagePullPolicy. - pullPolicy: IfNotPresent - # -- The Redpanda Console version. - # See DockerHub for: - # [All stable versions](https://hub.docker.com/r/redpandadata/console/tags) - # and [all unstable versions](https://hub.docker.com/r/redpandadata/console-unstable/tags). - # @default -- `Chart.appVersion` - tag: "" - -# -- Pull secrets may be used to provide credentials to image repositories -# See https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ -imagePullSecrets: [] - -# -- Override `console.name` template. -nameOverride: "" -# -- Override `console.fullname` template. -fullnameOverride: "" - -# -- Automount API credentials for the Service Account into the pod. Console does not communicate with -# Kubernetes API. -automountServiceAccountToken: false - -serviceAccount: - # -- Specifies whether a service account should be created. - create: true - # -- Specifies whether a service account should automount API-Credentials. Console does not - # communicate with Kubernetes API. The ServiceAccount could be used for workload identity. - automountServiceAccountToken: false - # -- Annotations to add to the service account. - annotations: {} - # -- The name of the service account to use. - # If not set and `serviceAccount.create` is `true`, - # a name is generated using the `console.fullname` template - name: "" - -# Common labels to add to all the pods -commonLabels: {} - -# -- Annotations to add to the deployment. -annotations: {} - -podAnnotations: {} - -podLabels: {} - -podSecurityContext: - runAsUser: 99 - fsGroup: 99 - fsGroupChangePolicy: 'Always' - -securityContext: - runAsNonRoot: true - # capabilities: - # drop: - # - ALL - # readOnlyRootFilesystem: true - # runAsNonRoot: true - # runAsUser: 1000 - -service: - type: ClusterIP - port: 8080 - # nodePort: 30001 - # -- Override the value in `console.config.server.listenPort` if not `nil` - # targetPort: - annotations: {} - -ingress: - enabled: false - # className: - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - hosts: - - host: chart-example.local - paths: - - path: / - pathType: ImplementationSpecific - tls: [] - # - secretName: chart-example-tls - # hosts: - # - chart-example.local - -resources: {} - # We usually recommend not to specify default resources and to leave this as a conscious - # choice for the user. This also increases chances charts run on environments with little - # resources, such as minikube. If you want to specify resources, uncomment the following - # lines, adjust them as necessary, and remove the curly braces after 'resources:'. - # limits: - # cpu: 100m - # memory: 128Mi - # requests: - # cpu: 100m - # memory: 128Mi - -autoscaling: - enabled: false - minReplicas: 1 - maxReplicas: 100 - targetCPUUtilizationPercentage: 80 - # targetMemoryUtilizationPercentage: 80 - -nodeSelector: {} - -tolerations: [] - -affinity: {} - -topologySpreadConstraints: [] - -# -- PriorityClassName given to Pods. -# For details, -# see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass). -priorityClassName: "" - -# -- Settings for the `Config.yaml` (required). -# For a reference of configuration settings, -# see the [Redpanda Console documentation](https://docs.redpanda.com/docs/reference/console/config/). -config: {} - -# -- Additional environment variables for the Redpanda Console Deployment. -extraEnv: [] - # - name: KAFKA_RACKID - # value: "1" - -# -- Additional environment variables for Redpanda Console mapped from Secret or ConfigMap. -extraEnvFrom: [] -# - secretRef: -# name: console-config-secret - -# -- Add additional volumes, such as for TLS keys. -extraVolumes: [] -# - name: kafka-certs -# secret: -# secretName: kafka-certs -# - name: config -# configMap: -# name: console-config - -# -- Add additional volume mounts, such as for TLS keys. -extraVolumeMounts: [] -# - name: kafka-certs # Must match the volume name -# mountPath: /etc/kafka/certs -# readOnly: true - -# -- Add additional containers, such as for oauth2-proxy. -extraContainers: [] - -# -- Any initContainers defined should be written here -initContainers: - # -- Additional set of init containers - extraInitContainers: |- -# - name: "test-init-container" -# image: "mintel/docker-alpine-bash-curl-jq:latest" -# command: [ "/bin/bash", "-c" ] -# args: -# - | -# set -xe -# echo "Hello World!" - -# -- SecretMounts is an abstraction to make a Secret available in the container's filesystem. -# Under the hood it creates a volume and a volume mount for the Redpanda Console container. -secretMounts: [] -# - name: kafka-certs -# secretName: kafka-certs -# path: /etc/console/certs -# defaultMode: 0755 - -# -- Create a new Kubernetes Secret for all sensitive configuration inputs. -# Each provided Secret is mounted automatically and made available to the -# Pod. -# If you want to use one or more existing Secrets, -# you can use the `extraEnvFrom` list to mount environment variables from string and secretMounts to mount files such as Certificates from Secrets. -secret: - create: true - - # Secret values in case you want the chart to create a Secret. All Certificates are mounted - # as files and the path to those files are configured through environment variables so - # that Console can automatically pick them up. - # -- Kafka Secrets. - kafka: {} - # saslPassword: - # awsMskIamSecretKey: - # tlsCa: - # tlsCert: - # tlsKey: - # tlsPassphrase: - - schemaRegistry: {} - # password: - # tlsCa: - # tlsCert: - # tlsKey: - - # Enterprise version secrets - # - SSO secrets (Enterprise version). - authentication: - # Configurable JWT value - jwtSigningKey: "" - oidc: {} - # clientSecret: - - serde: {} - # protobufGitBasicAuthPassword - - license: "" - - redpanda: - adminApi: {} - # password: - # tlsCa: - # tlsCert: - # tlsKey: - -# -- Settings for license key, as an alternative to secret.enterprise when -# a license secret is available -# licenseSecretRef: -# name: my-secret -# key: key-where-license-is-stored - -# -- Settings for liveness and readiness probes. -# For details, -# see the [Kubernetes documentation](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes). -livenessProbe: - # initialDelaySeconds: 0 - periodSeconds: 10 - timeoutSeconds: 1 - successThreshold: 1 - failureThreshold: 3 - -readinessProbe: - # -- Grant time to test connectivity to upstream services such as Kafka and Schema Registry. - initialDelaySeconds: 10 - periodSeconds: 10 - timeoutSeconds: 1 - successThreshold: 1 - failureThreshold: 3 - -configmap: - create: true -deployment: - create: true - -strategy: {} - -tests: - enabled: true diff --git a/charts/operator/.helmignore b/charts/operator/.helmignore deleted file mode 100644 index d5bb5e6ba6..0000000000 --- a/charts/operator/.helmignore +++ /dev/null @@ -1,28 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -README.md.gotmpl -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*.orig -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ - -*.go -testdata/ -ci/ diff --git a/charts/operator/Chart.yaml b/charts/operator/Chart.yaml deleted file mode 100644 index d80eeab23c..0000000000 --- a/charts/operator/Chart.yaml +++ /dev/null @@ -1,38 +0,0 @@ -apiVersion: v2 -name: operator -description: Redpanda operator helm chart -type: application - -# The operator helm chart is considered part of the operator itself. Therefore -# version == appVersion. -version: v25.1.1-beta3 -appVersion: v25.1.1-beta3 -kubeVersion: ">= 1.25.0-0" - -sources: - - https://github.com/redpanda-data/redpanda-operator/tree/main/operator/chart -icon: https://go.redpanda.com/hubfs/Redpandas/operator-panda.png -maintainers: - - name: redpanda-data - url: https://github.com/orgs/redpanda-data/people - -annotations: - artifacthub.io/license: Apache-2.0 - artifacthub.io/links: | - - name: Documentation - url: https://docs.redpanda.com - - name: "Helm (>= 3.6.0)" - url: https://helm.sh/docs/intro/install/ - artifacthub.io/images: | - - name: redpanda-operator - image: docker.redpanda.com/redpandadata/redpanda-operator:v25.1.1-beta3 - - name: redpanda - image: docker.redpanda.com/redpandadata/redpanda:v25.1.2 - artifacthub.io/crds: | - - kind: Redpanda - version: v1alpha1 - name: redpanda - displayName: Redpanda - description: Define a Redpanda cluster - artifacthub.io/operator: "true" - artifacthub.io/operatorCapabilities: Seamless Upgrades diff --git a/charts/operator/README.md b/charts/operator/README.md deleted file mode 100644 index bda1d8c85c..0000000000 --- a/charts/operator/README.md +++ /dev/null @@ -1,316 +0,0 @@ -# Redpanda Operator Helm Chart Specification ---- -description: Find the default values and descriptions of settings in the Redpanda Operator Helm chart. ---- - -![Version: v25.1.1-beta3](https://img.shields.io/badge/Version-v25.1.1--beta3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v25.1.1-beta3](https://img.shields.io/badge/AppVersion-v25.1.1--beta3-informational?style=flat-square) - -This page describes the official Redpanda Operator Helm Chart. In particular, this page describes the contents of the chart’s [`values.yaml` file](./values.yaml). Each of the settings is listed and described on this page, along with any default values. - -For instructions on how to install and use the chart, including how to override and customize the chart’s values, refer to the [deployment documentation](https://docs.redpanda.com/docs/deploy/deployment-option/self-hosted/kubernetes/kubernetes-deploy/). - ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2) - -## Source Code - -* - -## Requirements - -Kubernetes: `>= 1.25.0-0` - -## Settings - -### [additionalCmdFlags](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=additionalCmdFlags) - -Passes additional flags to the Redpanda Operator at startup. Additional flags include: - `--additional-controllers`: Additional controllers to deploy. Valid values are nodeWatcher or decommission. For more information about the Nodewatcher controller, see [Install the Nodewatcher controller](https://docs.redpanda.com/current/manage/kubernetes/k-scale-redpanda/#node-pvc). For more information about the Decommission controller, see [Use the Decommission controller](https://docs.redpanda.com/current/manage/kubernetes/k-decommission-brokers/#Automated). - -**Default:** `[]` - -### [affinity](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=affinity) - -Sets affinity constraints for scheduling Pods that run the Redpanda Operator. For details, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity). - -**Default:** `{}` - -### [clusterDomain](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=clusterDomain) - -Sets the Kubernetes cluster domain. - -**Default:** `"cluster.local"` - -### [commonLabels](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=commonLabels) - -Additional labels to add to all Kubernetes objects. For example, `my.k8s.service: redpanda-operator`. - -**Default:** `{}` - -### [config](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=config) - -Configuration for the Kubernetes Controller Manager used by Redpanda Operator. The Controller Manager is a component of the Kubernetes control plane that runs controller processes. These controllers are background threads that handle the orchestration and operational logic of Kubernetes, ensuring the desired state of the cluster matches the observed state. - -**Default:** - -``` -{"apiVersion":"controller-runtime.sigs.k8s.io/v1alpha1","health":{"healthProbeBindAddress":":8081"},"kind":"ControllerManagerConfig","leaderElection":{"leaderElect":true,"resourceName":"aa9fc693.vectorized.io"},"metrics":{"bindAddress":"127.0.0.1:8080"},"webhook":{"port":9443}} -``` - -### [config.health](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=config.health) - -Configuration for health checking. - -**Default:** - -``` -{"healthProbeBindAddress":":8081"} -``` - -### [config.health.healthProbeBindAddress](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=config.health.healthProbeBindAddress) - -Sets the address for the health probe server to listen on. - -**Default:** `":8081"` - -### [config.leaderElection](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=config.leaderElection) - -Configuration for leader election, which is a process that ensures only one instance of the controller manager is active at a time. This is critical for high availability and to prevent split-brain scenarios in a distributed system. - -**Default:** - -``` -{"leaderElect":true,"resourceName":"aa9fc693.vectorized.io"} -``` - -### [config.leaderElection.leaderElect](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=config.leaderElection.leaderElect) - -Enables leader election. - -**Default:** `true` - -### [config.leaderElection.resourceName](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=config.leaderElection.resourceName) - -Sets the name of the resource lock for the leader election process. - -**Default:** `"aa9fc693.vectorized.io"` - -### [config.metrics](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=config.metrics) - -Configuration for the metrics endpoint. - -**Default:** - -``` -{"bindAddress":"127.0.0.1:8080"} -``` - -### [config.metrics.bindAddress](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=config.metrics.bindAddress) - -Sets the address for the metrics server to bind to. - -**Default:** `"127.0.0.1:8080"` - -### [config.webhook](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=config.webhook) - -Configuration for webhooks, such as the port they listen on. Webhooks are HTTP callbacks that receive and process data in response to events. - -**Default:** `{"port":9443}` - -### [config.webhook.port](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=config.webhook.port) - -Sets the port for the webhook server to listen on. - -**Default:** `9443` - -### [fullnameOverride](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=fullnameOverride) - -Overrides the `redpanda-operator.fullname` template. - -**Default:** `""` - -### [image](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=image) - -Container image settings. - -**Default:** - -``` -{"pullPolicy":"IfNotPresent","repository":"docker.redpanda.com/redpandadata/redpanda-operator"} -``` - -### [image.pullPolicy](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=image.pullPolicy) - -Sets the `pullPolicy` for the `redpanda-operator` image. - -**Default:** `"IfNotPresent"` - -### [image.repository](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=image.repository) - -Sets the repository from which to pull the `redpanda-operator` image. - -**Default:** - -``` -"docker.redpanda.com/redpandadata/redpanda-operator" -``` - -### [imagePullSecrets](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=imagePullSecrets) - -Pull secrets may be used to provide credentials to image repositories See the [Kubernetes documentation](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/). - -**Default:** `[]` - -### [logLevel](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=logLevel) - -Log level Valid values (from least to most verbose) are: `warn`, `info`, `debug`, and `trace`. - -**Default:** `"info"` - -### [monitoring](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=monitoring) - -Configuration for monitoring. - -**Default:** `{"enabled":false}` - -### [monitoring.enabled](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=monitoring.enabled) - -Creates a ServiceMonitor that can be used by Prometheus-Operator or VictoriaMetrics-Operator to scrape the metrics. - -**Default:** `false` - -### [nameOverride](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=nameOverride) - -Overrides the `redpanda-operator.name` template. - -**Default:** `""` - -### [nodeSelector](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=nodeSelector) - -Node selection constraints for scheduling Pods on specific nodes. For details, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector). - -**Default:** `{}` - -### [podAnnotations](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=podAnnotations) - -**Default:** `{}` - -### [podLabels](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=podLabels) - -**Default:** `{}` - -### [podTemplate](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=podTemplate) - -Sets almost all fields of operator Deployment PodTemplate For details, see the [Kubernetes documentation](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-template-v1/#PodTemplateSpec). - -**Default:** - -``` -{"metadata":{},"spec":{"containers":[{"name":"manager","resources":{}}],"securityContext":{"runAsUser":65532}}} -``` - -### [podTemplate.spec](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=podTemplate.spec) - -A subset of Kubernetes' PodSpec type that will be merged into the final PodSpec. See [Merge Semantics](#merging-semantics) for details. - -**Default:** - -``` -{"containers":[{"name":"manager","resources":{}}],"securityContext":{"runAsUser":65532}} -``` - -### [rbac](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=rbac) - -Role-based Access Control (RBAC) configuration for the Redpanda Operator. - -**Default:** - -``` -{"create":true,"createAdditionalControllerCRs":true,"createRPKBundleCRs":true} -``` - -### [rbac.create](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=rbac.create) - -Enables the creation of additional RBAC roles. - -**Default:** `true` - -### [rbac.createAdditionalControllerCRs](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=rbac.createAdditionalControllerCRs) - -Create RBAC cluster roles needed for the Redpanda Helm chart's 'rbac.enabled' feature. WARNING: Disabling this value may prevent the operator from deploying certain configurations of redpanda. - -**Default:** `true` - -### [rbac.createRPKBundleCRs](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=rbac.createRPKBundleCRs) - -Create ClusterRoles needed for the Redpanda Helm chart's 'rbac.rpkDebugBundle' feature. - -**Default:** `true` - -### [replicaCount](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=replicaCount) - -Sets the number of instances of the Redpanda Operator to deploy. Each instance is deployed as a Pod. All instances are managed by a Deployment resource. - -**Default:** `1` - -### [resources](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=resources) - -Sets resources requests/limits for Redpanda Operator Pods. By default requests and limits are not set to increase the chances that the charts run on environments with few resources, such as Minikube. To specify resources, uncomment the following lines, adjust them as necessary, and remove the curly braces after `resources`. - -**Default:** `{}` - -### [scope](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=scope) - -Sets the scope of the Redpanda Operator. Valid values are `Cluster` or `Namespace`. The Cluster scope is deprecated because it deploys the deprecated version of the Redpanda Operator. Use the default Namespace scope. In the Namespace scope, the Redpanda Operator manages Redpanda resources that are deployed in the same namespace as itself. - -**Default:** `"Namespace"` - -### [serviceAccount](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=serviceAccount) - -Service account management. - -**Default:** - -``` -{"automountServiceAccountToken":false,"create":true} -``` - -### [serviceAccount.automountServiceAccountToken](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=serviceAccount.automountServiceAccountToken) - -Specifies whether a service account should automount API-Credentials. The token is used in sidecars.controllers - -**Default:** `false` - -### [serviceAccount.create](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=serviceAccount.create) - -Specifies whether a service account should be created. - -**Default:** `true` - -### [strategy](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=strategy) - -Sets deployment strategy. For details, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy). - -**Default:** `{"type":"RollingUpdate"}` - -### [tolerations](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=tolerations) - -Taints to be tolerated by Pods. For details, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/). - -**Default:** `[]` - -### [webhook](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=webhook) - -Specifies whether to create Webhook resources both to intercept and potentially modify or reject Kubernetes API requests as well as authenticate requests to the Kubernetes API. Only valid when `scope` is set to Cluster. - -**Default:** `{"enabled":false}` - -### [webhook.enabled](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=webhook.enabled) - -Creates the Webhook resources. - -**Default:** `false` - -### [webhookSecretName](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path=webhookSecretName) - -**Default:** `"webhook-server-cert"` - diff --git a/charts/operator/README.md.gotmpl b/charts/operator/README.md.gotmpl deleted file mode 100644 index 470c2733fe..0000000000 --- a/charts/operator/README.md.gotmpl +++ /dev/null @@ -1,54 +0,0 @@ -{{- define "chart.header" -}} -# Redpanda Operator Helm Chart Specification ---- -description: Find the default values and descriptions of settings in the Redpanda Operator Helm chart. ---- -{{- end -}} - -{{ define "chart.description" -}} -This page describes the official Redpanda Operator Helm Chart. In particular, this page describes the contents of the chart’s [`values.yaml` file](./values.yaml). Each of the settings is listed and described on this page, along with any default values. - -For instructions on how to install and use the chart, including how to override and customize the chart’s values, refer to the [deployment documentation](https://docs.redpanda.com/docs/deploy/deployment-option/self-hosted/kubernetes/kubernetes-deploy/). -{{ end -}} - -{{ define "chart.valuesTable" }} - -## Settings - -{{- range .Values }} - -### [{{ .Key }}](https://artifacthub.io/packages/helm/redpanda-data/operator?modal=values&path={{ .Key }}) - -{{ if .Description }}{{ .Description }}{{ else }}{{ .AutoDescription }}{{ end }} - -{{ $defaultValue := (default .Default .AutoDefault) }} -{{ if gt (len $defaultValue) 30 -}} -**Default:** - -``` -{{ $defaultValue | replace "`" "" }} -``` -{{- else -}} -**Default:** {{ $defaultValue }} -{{- end }} - -{{- end }} -{{ end }} - -{{- template "chart.header" . -}} - -{{ template "chart.deprecationWarning" . }} - -{{ template "chart.badgesSection" . }} - -{{ template "chart.description" . }} - -{{ template "helm-docs.versionFooter" . }} - -{{ template "chart.homepageLine" . }} - -{{ template "chart.sourcesSection" . }} - -{{ template "chart.requirementsSection" . }} - -{{ template "chart.valuesTable" . }} diff --git a/charts/operator/ci/01-namespaced-values.yaml b/charts/operator/ci/01-namespaced-values.yaml deleted file mode 100644 index f99648d1ab..0000000000 --- a/charts/operator/ci/01-namespaced-values.yaml +++ /dev/null @@ -1,16 +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. ---- -# This is left empty to test the default values diff --git a/charts/operator/ci/02-cluster-values.yaml b/charts/operator/ci/02-cluster-values.yaml deleted file mode 100644 index 930bf92157..0000000000 --- a/charts/operator/ci/02-cluster-values.yaml +++ /dev/null @@ -1,19 +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. ---- -scope: Cluster -webhook: - enabled: true -logLevel: debug diff --git a/charts/operator/ci/03-enable-automount-values.yaml b/charts/operator/ci/03-enable-automount-values.yaml deleted file mode 100644 index 13cbf9d3d2..0000000000 --- a/charts/operator/ci/03-enable-automount-values.yaml +++ /dev/null @@ -1,17 +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. ---- -serviceAccount: - automountServiceAccountToken: true diff --git a/charts/operator/files/rbac/decommission.ClusterRole.yaml b/charts/operator/files/rbac/decommission.ClusterRole.yaml deleted file mode 100644 index 9f83f89653..0000000000 --- a/charts/operator/files/rbac/decommission.ClusterRole.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: decommission -rules: - - apiGroups: - - "" - resources: - - persistentvolumes - verbs: - - patch diff --git a/charts/operator/files/rbac/decommission.Role.yaml b/charts/operator/files/rbac/decommission.Role.yaml deleted file mode 100644 index 053fde21fc..0000000000 --- a/charts/operator/files/rbac/decommission.Role.yaml +++ /dev/null @@ -1,40 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: decommission - namespace: default -rules: - - apiGroups: - - "" - resources: - - events - verbs: - - create - - patch - - apiGroups: - - "" - resources: - - persistentvolumeclaims - verbs: - - delete - - get - - list - - watch - - apiGroups: - - "" - resources: - - pods - - secrets - verbs: - - get - - list - - watch - - apiGroups: - - apps - resources: - - statefulsets - verbs: - - get - - list - - watch diff --git a/charts/operator/files/rbac/leader-election.ClusterRole.yaml b/charts/operator/files/rbac/leader-election.ClusterRole.yaml deleted file mode 100644 index 9c41474869..0000000000 --- a/charts/operator/files/rbac/leader-election.ClusterRole.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: leader-election -rules: - - apiGroups: - - authentication.k8s.io - resources: - - tokenreviews - verbs: - - create - - apiGroups: - - authorization.k8s.io - resources: - - subjectaccessreviews - verbs: - - create diff --git a/charts/operator/files/rbac/leader-election.Role.yaml b/charts/operator/files/rbac/leader-election.Role.yaml deleted file mode 100644 index ca88452b9b..0000000000 --- a/charts/operator/files/rbac/leader-election.Role.yaml +++ /dev/null @@ -1,38 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: leader-election - namespace: default -rules: - - apiGroups: - - "" - resources: - - configmaps - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - "" - resources: - - events - verbs: - - create - - patch - - apiGroups: - - coordination.k8s.io - resources: - - leases - verbs: - - create - - delete - - get - - list - - patch - - update - - watch diff --git a/charts/operator/files/rbac/node-watcher.ClusterRole.yaml b/charts/operator/files/rbac/node-watcher.ClusterRole.yaml deleted file mode 100644 index b50e457583..0000000000 --- a/charts/operator/files/rbac/node-watcher.ClusterRole.yaml +++ /dev/null @@ -1,34 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: node-watcher -rules: - - apiGroups: - - "" - resources: - - configmaps - - nodes - - secrets - verbs: - - get - - list - - watch - - apiGroups: - - "" - resources: - - persistentvolumes - verbs: - - delete - - get - - list - - patch - - update - - apiGroups: - - cluster.redpanda.com - resources: - - redpandas - verbs: - - get - - list - - watch diff --git a/charts/operator/files/rbac/node-watcher.Role.yaml b/charts/operator/files/rbac/node-watcher.Role.yaml deleted file mode 100644 index 3a249ddb12..0000000000 --- a/charts/operator/files/rbac/node-watcher.Role.yaml +++ /dev/null @@ -1,17 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: node-watcher - namespace: default -rules: - - apiGroups: - - "" - resources: - - persistentvolumeclaims - verbs: - - delete - - get - - list - - patch - - update diff --git a/charts/operator/files/rbac/old-decommission.ClusterRole.yaml b/charts/operator/files/rbac/old-decommission.ClusterRole.yaml deleted file mode 100644 index 6cf56c5679..0000000000 --- a/charts/operator/files/rbac/old-decommission.ClusterRole.yaml +++ /dev/null @@ -1,33 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: old-decommission -rules: - - apiGroups: - - "" - resources: - - configmaps - - secrets - verbs: - - get - - list - - watch - - apiGroups: - - "" - resources: - - persistentvolumes - verbs: - - get - - list - - patch - - update - - watch - - apiGroups: - - cluster.redpanda.com - resources: - - redpandas - verbs: - - get - - list - - watch diff --git a/charts/operator/files/rbac/old-decommission.Role.yaml b/charts/operator/files/rbac/old-decommission.Role.yaml deleted file mode 100644 index 720c564ce1..0000000000 --- a/charts/operator/files/rbac/old-decommission.Role.yaml +++ /dev/null @@ -1,33 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: old-decommission - namespace: default -rules: - - apiGroups: - - "" - resources: - - persistentvolumeclaims - verbs: - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - "" - resources: - - pods - verbs: - - get - - list - - watch - - apiGroups: - - apps - resources: - - statefulsets/status - verbs: - - patch - - update diff --git a/charts/operator/files/rbac/pvcunbinder.ClusterRole.yaml b/charts/operator/files/rbac/pvcunbinder.ClusterRole.yaml deleted file mode 100644 index 6d831ae37c..0000000000 --- a/charts/operator/files/rbac/pvcunbinder.ClusterRole.yaml +++ /dev/null @@ -1,15 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: pvcunbinder -rules: - - apiGroups: - - "" - resources: - - persistentvolumes - verbs: - - get - - list - - patch - - watch diff --git a/charts/operator/files/rbac/pvcunbinder.Role.yaml b/charts/operator/files/rbac/pvcunbinder.Role.yaml deleted file mode 100644 index c3e0fa90d6..0000000000 --- a/charts/operator/files/rbac/pvcunbinder.Role.yaml +++ /dev/null @@ -1,17 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: pvcunbinder - namespace: default -rules: - - apiGroups: - - "" - resources: - - persistentvolumeclaims - - pods - verbs: - - delete - - get - - list - - watch diff --git a/charts/operator/files/rbac/rack-awareness.ClusterRole.yaml b/charts/operator/files/rbac/rack-awareness.ClusterRole.yaml deleted file mode 100644 index ebf5bed8ba..0000000000 --- a/charts/operator/files/rbac/rack-awareness.ClusterRole.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: rack-awareness -rules: - - apiGroups: - - "" - resources: - - nodes - verbs: - - get diff --git a/charts/operator/files/rbac/rpk-debug-bundle.Role.yaml b/charts/operator/files/rbac/rpk-debug-bundle.Role.yaml deleted file mode 100644 index 540c36e883..0000000000 --- a/charts/operator/files/rbac/rpk-debug-bundle.Role.yaml +++ /dev/null @@ -1,24 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: rpk-debug-bundle - namespace: default -rules: - - apiGroups: - - "" - resources: - - configmaps - - endpoints - - events - - limitranges - - persistentvolumeclaims - - pods - - pods/log - - replicationcontrollers - - resourcequotas - - serviceaccounts - - services - verbs: - - get - - list diff --git a/charts/operator/files/rbac/sidecar.Role.yaml b/charts/operator/files/rbac/sidecar.Role.yaml deleted file mode 100644 index 61f4a4328f..0000000000 --- a/charts/operator/files/rbac/sidecar.Role.yaml +++ /dev/null @@ -1,19 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: sidecar - namespace: default -rules: - - apiGroups: - - coordination.k8s.io - resources: - - leases - verbs: - - create - - delete - - get - - list - - patch - - update - - watch diff --git a/charts/operator/files/rbac/v1-manager.ClusterRole.yaml b/charts/operator/files/rbac/v1-manager.ClusterRole.yaml deleted file mode 100644 index c6f86ad097..0000000000 --- a/charts/operator/files/rbac/v1-manager.ClusterRole.yaml +++ /dev/null @@ -1,169 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: v1-manager -rules: - - apiGroups: - - "" - resources: - - configmaps - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - "" - resources: - - events - - secrets - - serviceaccounts - - services - verbs: - - create - - get - - list - - patch - - update - - watch - - apiGroups: - - "" - resources: - - nodes - verbs: - - get - - list - - watch - - apiGroups: - - "" - resources: - - persistentvolumeclaims - verbs: - - delete - - get - - list - - watch - - apiGroups: - - "" - resources: - - pods - verbs: - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - "" - resources: - - pods/finalizers - - pods/status - verbs: - - patch - - update - - apiGroups: - - apps - resources: - - deployments - - statefulsets - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - cert-manager.io - resources: - - certificates - - clusterissuers - - issuers - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - networking.k8s.io - resources: - - ingresses - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - policy - resources: - - poddisruptionbudgets - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - rbac.authorization.k8s.io - resources: - - clusterrolebindings - - clusterroles - verbs: - - create - - get - - list - - patch - - update - - watch - - apiGroups: - - redpanda.vectorized.io - resources: - - clusters - - consoles - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - redpanda.vectorized.io - resources: - - clusters/finalizers - - consoles/finalizers - verbs: - - patch - - update - - apiGroups: - - redpanda.vectorized.io - resources: - - clusters/status - - consoles/status - verbs: - - get - - patch - - update - - apiGroups: - - scheduling.k8s.io - resources: - - priorityclasses - verbs: - - get - - list - - watch diff --git a/charts/operator/files/rbac/v2-manager.ClusterRole.yaml b/charts/operator/files/rbac/v2-manager.ClusterRole.yaml deleted file mode 100644 index 1370691d33..0000000000 --- a/charts/operator/files/rbac/v2-manager.ClusterRole.yaml +++ /dev/null @@ -1,63 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: v2-manager -rules: - - apiGroups: - - cluster.redpanda.com - resources: - - redpandas - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - cluster.redpanda.com - resources: - - redpandas/finalizers - - schemas/finalizers - - topics/finalizers - - users/finalizers - verbs: - - update - - apiGroups: - - cluster.redpanda.com - resources: - - redpandas/status - - schemas/status - - topics/status - - users/status - verbs: - - get - - patch - - update - - apiGroups: - - cluster.redpanda.com - resources: - - schemas - - topics - - users - verbs: - - get - - list - - patch - - update - - watch - - apiGroups: - - rbac.authorization.k8s.io - resources: - - clusterrolebindings - - clusterroles - verbs: - - create - - delete - - get - - list - - patch - - update - - watch diff --git a/charts/operator/files/rbac/v2-manager.Role.yaml b/charts/operator/files/rbac/v2-manager.Role.yaml deleted file mode 100644 index e189ee1d6c..0000000000 --- a/charts/operator/files/rbac/v2-manager.Role.yaml +++ /dev/null @@ -1,142 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: v2-manager - namespace: default -rules: - - apiGroups: - - "" - resources: - - configmaps - - pods - - secrets - - serviceaccounts - - services - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - "" - resources: - - events - verbs: - - create - - patch - - apiGroups: - - apps - resources: - - deployments - - statefulsets - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - autoscaling - resources: - - horizontalpodautoscalers - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - batch - resources: - - jobs - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - cert-manager.io - resources: - - certificates - - issuers - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - coordination.k8s.io - resources: - - leases - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - monitoring.coreos.com - resources: - - podmonitors - - servicemonitors - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - networking.k8s.io - resources: - - ingresses - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - policy - resources: - - poddisruptionbudgets - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - rbac.authorization.k8s.io - resources: - - rolebindings - - roles - verbs: - - create - - delete - - get - - list - - patch - - update - - watch diff --git a/charts/operator/files/three_node_cluster.yaml b/charts/operator/files/three_node_cluster.yaml deleted file mode 100644 index ae1550e5b2..0000000000 --- a/charts/operator/files/three_node_cluster.yaml +++ /dev/null @@ -1,29 +0,0 @@ ---- -apiVersion: redpanda.vectorized.io/v1alpha1 -kind: Cluster -metadata: - name: cluster-tls -spec: - image: "docker.redpanda.com/redpandadata/redpanda" - version: "v25.1.1" - replicas: 3 - resources: - requests: - cpu: 1 - memory: 1.2Gi - limits: - cpu: 1 - memory: 1.2Gi - configuration: - rpcServer: - port: 33145 - kafkaApi: - - port: 9092 - tls: - enabled: true - requireClientAuth: true - adminApi: - - port: 9644 - pandaproxyApi: - - port: 8082 - developerMode: true diff --git a/charts/operator/files/three_node_redpanda.yaml b/charts/operator/files/three_node_redpanda.yaml deleted file mode 100644 index 6e22297a4d..0000000000 --- a/charts/operator/files/three_node_redpanda.yaml +++ /dev/null @@ -1,77 +0,0 @@ -apiVersion: cluster.redpanda.com/v1alpha2 -kind: Redpanda -metadata: - name: cluster-tls -spec: - clusterSpec: - console: - enabled: false - image: - repository: docker.redpanda.com/redpandadata/redpanda - tag: v25.1.1 - listeners: - admin: - external: {} - port: 9644 - tls: - cert: "" - enabled: false - requireClientAuth: false - http: - authenticationMethod: none - enabled: true - external: {} - port: 8082 - tls: - cert: "" - enabled: false - requireClientAuth: false - kafka: - authenticationMethod: none - external: {} - port: 9092 - tls: - cert: kafka-internal-0 - enabled: true - requireClientAuth: false - rpc: - port: 33145 - logging: - logLevel: trace - usageStats: - enabled: false - resources: - cpu: - cores: 1 - memory: - container: - max: 2Gi - min: 2Gi - statefulset: - replicas: 3 - storage: - persistentVolume: - enabled: true - size: 100Gi - tls: - certs: - kafka-internal-0: - caEnabled: true - enabled: true ---- -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - name: cluster-tls-user-client -spec: - emailAddresses: - - test@domain.dom - duration: 43800h0m0s - issuerRef: - group: cert-manager.io - kind: Issuer - name: cluster-tls-kafka-internal-0-root-issuer - privateKey: - algorithm: ECDSA - size: 256 - secretName: cluster-tls-user-client diff --git a/charts/operator/templates/NOTES.txt b/charts/operator/templates/NOTES.txt deleted file mode 100644 index 7f128eac02..0000000000 --- a/charts/operator/templates/NOTES.txt +++ /dev/null @@ -1,18 +0,0 @@ -{{/* -Copyright 2020 Redpanda Data, Inc. - -Use of this software is governed by the Business Source License -included in the file licenses/BSL.md - -As of the Change Date specified in that file, in accordance with -the Business Source License, use of this software will be governed -by the Apache License, Version 2.0 -*/}} - -Congratulations on installing {{ .Chart.Name }}! - -The pods will rollout in a few seconds. To check the status: - - kubectl -n {{ .Release.Namespace }} rollout status -w deployment/{{ template "redpanda-operator.fullname" . }} - -Now you can install a Redpanda resource! diff --git a/charts/operator/templates/_certificates.go.tpl b/charts/operator/templates/_certificates.go.tpl deleted file mode 100644 index 5b00796331..0000000000 --- a/charts/operator/templates/_certificates.go.tpl +++ /dev/null @@ -1,34 +0,0 @@ -{{- /* Generated from "certificates.go" */ -}} - -{{- define "operator.Certificate" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not $values.webhook.enabled) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict "secretName" "" "issuerRef" (dict "name" "")) "status" (dict)) (mustMergeOverwrite (dict) (dict "apiVersion" "cert-manager.io/v1" "kind" "Certificate")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" "redpanda-serving-cert" "namespace" $dot.Release.Namespace "labels" (get (fromJson (include "operator.Labels" (dict "a" (list $dot)))) "r") "annotations" $values.annotations)) "spec" (mustMergeOverwrite (dict "secretName" "" "issuerRef" (dict "name" "")) (dict "dnsNames" (list (printf "%s-webhook-service.%s.svc" (get (fromJson (include "operator.Name" (dict "a" (list $dot)))) "r") $dot.Release.Namespace) (printf "%s-webhook-service.%s.svc.%s" (get (fromJson (include "operator.Name" (dict "a" (list $dot)))) "r") $dot.Release.Namespace $values.clusterDomain)) "issuerRef" (mustMergeOverwrite (dict "name" "") (dict "kind" "Issuer" "name" (get (fromJson (include "operator.cleanForK8sWithSuffix" (dict "a" (list (get (fromJson (include "operator.Fullname" (dict "a" (list $dot)))) "r") "selfsigned-issuer")))) "r"))) "secretName" $values.webhookSecretName "privateKey" (mustMergeOverwrite (dict) (dict "rotationPolicy" "Never"))))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "operator.Issuer" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not $values.webhook.enabled) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict) "status" (dict)) (mustMergeOverwrite (dict) (dict "apiVersion" "cert-manager.io/v1" "kind" "Issuer")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (get (fromJson (include "operator.cleanForK8sWithSuffix" (dict "a" (list (get (fromJson (include "operator.Fullname" (dict "a" (list $dot)))) "r") "selfsigned-issuer")))) "r") "namespace" $dot.Release.Namespace "labels" (get (fromJson (include "operator.Labels" (dict "a" (list $dot)))) "r") "annotations" $values.annotations)) "spec" (mustMergeOverwrite (dict) (mustMergeOverwrite (dict) (dict "selfSigned" (mustMergeOverwrite (dict) (dict)))) (dict))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/operator/templates/_chart.go.tpl b/charts/operator/templates/_chart.go.tpl deleted file mode 100644 index 5ab51c2b8b..0000000000 --- a/charts/operator/templates/_chart.go.tpl +++ /dev/null @@ -1,37 +0,0 @@ -{{- /* Generated from "chart.go" */ -}} - -{{- define "operator.render" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $manifests := (list (get (fromJson (include "operator.Issuer" (dict "a" (list $dot)))) "r") (get (fromJson (include "operator.Certificate" (dict "a" (list $dot)))) "r") (get (fromJson (include "operator.ConfigMap" (dict "a" (list $dot)))) "r") (get (fromJson (include "operator.MetricsService" (dict "a" (list $dot)))) "r") (get (fromJson (include "operator.WebhookService" (dict "a" (list $dot)))) "r") (get (fromJson (include "operator.MutatingWebhookConfiguration" (dict "a" (list $dot)))) "r") (get (fromJson (include "operator.ValidatingWebhookConfiguration" (dict "a" (list $dot)))) "r") (get (fromJson (include "operator.ServiceAccount" (dict "a" (list $dot)))) "r") (get (fromJson (include "operator.ServiceMonitor" (dict "a" (list $dot)))) "r") (get (fromJson (include "operator.Deployment" (dict "a" (list $dot)))) "r")) -}} -{{- range $_, $role := (get (fromJson (include "operator.Roles" (dict "a" (list $dot)))) "r") -}} -{{- $manifests = (concat (default (list) $manifests) (list $role)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- range $_, $cr := (get (fromJson (include "operator.ClusterRoles" (dict "a" (list $dot)))) "r") -}} -{{- $manifests = (concat (default (list) $manifests) (list $cr)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- range $_, $rb := (get (fromJson (include "operator.RoleBindings" (dict "a" (list $dot)))) "r") -}} -{{- $manifests = (concat (default (list) $manifests) (list $rb)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- range $_, $crb := (get (fromJson (include "operator.ClusterRoleBindings" (dict "a" (list $dot)))) "r") -}} -{{- $manifests = (concat (default (list) $manifests) (list $crb)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $manifests) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/operator/templates/_configmap.go.tpl b/charts/operator/templates/_configmap.go.tpl deleted file mode 100644 index 454b517a8f..0000000000 --- a/charts/operator/templates/_configmap.go.tpl +++ /dev/null @@ -1,13 +0,0 @@ -{{- /* Generated from "configmap.go" */ -}} - -{{- define "operator.ConfigMap" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil))) (mustMergeOverwrite (dict) (dict "apiVersion" "v1" "kind" "ConfigMap")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (get (fromJson (include "operator.cleanForK8sWithSuffix" (dict "a" (list (get (fromJson (include "operator.Fullname" (dict "a" (list $dot)))) "r") "config")))) "r") "namespace" $dot.Release.Namespace "labels" (get (fromJson (include "operator.Labels" (dict "a" (list $dot)))) "r") "annotations" $values.annotations)) "data" (dict "controller_manager_config.yaml" (toYaml $values.config))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/operator/templates/_deployment.go.tpl b/charts/operator/templates/_deployment.go.tpl deleted file mode 100644 index 43f43eca6d..0000000000 --- a/charts/operator/templates/_deployment.go.tpl +++ /dev/null @@ -1,200 +0,0 @@ -{{- /* Generated from "deployment.go" */ -}} - -{{- define "operator.Deployment" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $dep := (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict "selector" (coalesce nil) "template" (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict "containers" (coalesce nil))) "strategy" (dict)) "status" (dict)) (mustMergeOverwrite (dict) (dict "apiVersion" "apps/v1" "kind" "Deployment")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (get (fromJson (include "operator.Fullname" (dict "a" (list $dot)))) "r") "labels" (get (fromJson (include "operator.Labels" (dict "a" (list $dot)))) "r") "namespace" $dot.Release.Namespace "annotations" $values.annotations)) "spec" (mustMergeOverwrite (dict "selector" (coalesce nil) "template" (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict "containers" (coalesce nil))) "strategy" (dict)) (dict "replicas" ($values.replicaCount | int) "selector" (mustMergeOverwrite (dict) (dict "matchLabels" (get (fromJson (include "operator.SelectorLabels" (dict "a" (list $dot)))) "r"))) "strategy" $values.strategy "template" (get (fromJson (include "operator.StrategicMergePatch" (dict "a" (list (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict "containers" (coalesce nil))) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "labels" $values.podTemplate.metadata.labels "annotations" $values.podTemplate.metadata.annotations)) "spec" $values.podTemplate.spec)) (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict "containers" (coalesce nil))) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "annotations" $values.podAnnotations "labels" (merge (dict) (get (fromJson (include "operator.SelectorLabels" (dict "a" (list $dot)))) "r") $values.podLabels))) "spec" (mustMergeOverwrite (dict "containers" (coalesce nil)) (dict "automountServiceAccountToken" false "terminationGracePeriodSeconds" ((10 | int64) | int64) "imagePullSecrets" $values.imagePullSecrets "serviceAccountName" (get (fromJson (include "operator.ServiceAccountName" (dict "a" (list $dot)))) "r") "nodeSelector" $values.nodeSelector "tolerations" $values.tolerations "volumes" (get (fromJson (include "operator.operatorPodVolumes" (dict "a" (list $dot)))) "r") "containers" (get (fromJson (include "operator.operatorContainers" (dict "a" (list $dot (coalesce nil))))) "r"))))))))) "r"))))) -}} -{{- if (not (empty $values.affinity)) -}} -{{- $_ := (set $dep.spec.template.spec "affinity" $values.affinity) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $dep) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "operator.operatorContainers" -}} -{{- $dot := (index .a 0) -}} -{{- $podTerminationGracePeriodSeconds := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list (mustMergeOverwrite (dict "name" "" "resources" (dict)) (dict "name" "manager" "image" (get (fromJson (include "operator.containerImage" (dict "a" (list $dot)))) "r") "imagePullPolicy" $values.image.pullPolicy "command" (list "/manager") "args" (get (fromJson (include "operator.operatorArguments" (dict "a" (list $dot)))) "r") "securityContext" (mustMergeOverwrite (dict) (dict "allowPrivilegeEscalation" false)) "ports" (list (mustMergeOverwrite (dict "containerPort" 0) (dict "name" "webhook-server" "containerPort" (9443 | int) "protocol" "TCP"))) "volumeMounts" (get (fromJson (include "operator.operatorPodVolumesMounts" (dict "a" (list $dot)))) "r") "livenessProbe" (get (fromJson (include "operator.livenessProbe" (dict "a" (list $dot $podTerminationGracePeriodSeconds)))) "r") "readinessProbe" (get (fromJson (include "operator.readinessProbe" (dict "a" (list $dot $podTerminationGracePeriodSeconds)))) "r") "resources" $values.resources)))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "operator.livenessProbe" -}} -{{- $dot := (index .a 0) -}} -{{- $podTerminationGracePeriodSeconds := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (ne (toJson $values.livenessProbe) "null") -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict) (mustMergeOverwrite (dict) (dict "httpGet" (mustMergeOverwrite (dict "port" 0) (dict "path" "/healthz/" "port" (8081 | int))))) (dict "initialDelaySeconds" (default (15 | int) ($values.livenessProbe.initialDelaySeconds | int)) "periodSeconds" (default (20 | int) ($values.livenessProbe.periodSeconds | int)) "timeoutSeconds" ($values.livenessProbe.timeoutSeconds | int) "successThreshold" ($values.livenessProbe.successThreshold | int) "failureThreshold" ($values.livenessProbe.failureThreshold | int) "terminationGracePeriodSeconds" (default $podTerminationGracePeriodSeconds $values.livenessProbe.terminationGracePeriodSeconds)))) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict) (mustMergeOverwrite (dict) (dict "httpGet" (mustMergeOverwrite (dict "port" 0) (dict "path" "/healthz/" "port" (8081 | int))))) (dict "initialDelaySeconds" (15 | int) "periodSeconds" (20 | int)))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "operator.readinessProbe" -}} -{{- $dot := (index .a 0) -}} -{{- $podTerminationGracePeriodSeconds := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (ne (toJson $values.livenessProbe) "null") -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict) (mustMergeOverwrite (dict) (dict "httpGet" (mustMergeOverwrite (dict "port" 0) (dict "path" "/readyz" "port" (8081 | int))))) (dict "initialDelaySeconds" (default (5 | int) ($values.readinessProbe.initialDelaySeconds | int)) "periodSeconds" (default (10 | int) ($values.readinessProbe.periodSeconds | int)) "timeoutSeconds" ($values.readinessProbe.timeoutSeconds | int) "successThreshold" ($values.readinessProbe.successThreshold | int) "failureThreshold" ($values.readinessProbe.failureThreshold | int) "terminationGracePeriodSeconds" (default $podTerminationGracePeriodSeconds $values.readinessProbe.terminationGracePeriodSeconds)))) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict) (mustMergeOverwrite (dict) (dict "httpGet" (mustMergeOverwrite (dict "port" 0) (dict "path" "/readyz" "port" (8081 | int))))) (dict "initialDelaySeconds" (5 | int) "periodSeconds" (10 | int)))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "operator.containerTag" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not (empty $values.image.tag)) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $values.image.tag) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $dot.Chart.AppVersion) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "operator.containerImage" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $tag := (get (fromJson (include "operator.containerTag" (dict "a" (list $dot)))) "r") -}} -{{- $_is_returning = true -}} -{{- (dict "r" (printf "%s:%s" $values.image.repository $tag)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "operator.isWebhookEnabled" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $_is_returning = true -}} -{{- (dict "r" (and $values.webhook.enabled (eq $values.scope "Cluster"))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "operator.operatorPodVolumes" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $vol := (list) -}} -{{- if $values.serviceAccount.create -}} -{{- $vol = (concat (default (list) $vol) (list (get (fromJson (include "operator.kubeTokenAPIVolume" (dict "a" (list "kube-api-access")))) "r"))) -}} -{{- end -}} -{{- if (not (get (fromJson (include "operator.isWebhookEnabled" (dict "a" (list $dot)))) "r")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $vol) | toJson -}} -{{- break -}} -{{- end -}} -{{- $vol = (concat (default (list) $vol) (list (mustMergeOverwrite (dict "name" "") (mustMergeOverwrite (dict) (dict "secret" (mustMergeOverwrite (dict) (dict "defaultMode" ((420 | int) | int) "secretName" $values.webhookSecretName)))) (dict "name" "cert")))) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $vol) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "operator.kubeTokenAPIVolume" -}} -{{- $name := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "name" "") (mustMergeOverwrite (dict) (dict "projected" (mustMergeOverwrite (dict "sources" (coalesce nil)) (dict "defaultMode" (420 | int) "sources" (list (mustMergeOverwrite (dict) (dict "serviceAccountToken" (mustMergeOverwrite (dict "path" "") (dict "path" "token" "expirationSeconds" ((3607 | int) | int64))))) (mustMergeOverwrite (dict) (dict "configMap" (mustMergeOverwrite (dict) (mustMergeOverwrite (dict) (dict "name" "kube-root-ca.crt")) (dict "items" (list (mustMergeOverwrite (dict "key" "" "path" "") (dict "key" "ca.crt" "path" "ca.crt"))))))) (mustMergeOverwrite (dict) (dict "downwardAPI" (mustMergeOverwrite (dict) (dict "items" (list (mustMergeOverwrite (dict "path" "") (dict "path" "namespace" "fieldRef" (mustMergeOverwrite (dict "fieldPath" "") (dict "apiVersion" "v1" "fieldPath" "metadata.namespace")))))))))))))) (dict "name" $name))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "operator.operatorPodVolumesMounts" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $volMount := (list) -}} -{{- if $values.serviceAccount.create -}} -{{- $mountName := "kube-api-access" -}} -{{- range $_, $vol := (get (fromJson (include "operator.operatorPodVolumes" (dict "a" (list $dot)))) "r") -}} -{{- if (hasPrefix $vol.name (printf "%s%s" "kube-api-access" "-")) -}} -{{- $mountName = $vol.name -}} -{{- end -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $volMount = (concat (default (list) $volMount) (list (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" $mountName "readOnly" true "mountPath" "/var/run/secrets/kubernetes.io/serviceaccount")))) -}} -{{- end -}} -{{- if (not (get (fromJson (include "operator.isWebhookEnabled" (dict "a" (list $dot)))) "r")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $volMount) | toJson -}} -{{- break -}} -{{- end -}} -{{- $volMount = (concat (default (list) $volMount) (list (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" "cert" "mountPath" "/tmp/k8s-webhook-server/serving-certs" "readOnly" true)))) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $volMount) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "operator.operatorArguments" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $args := (list "--health-probe-bind-address=:8081" "--metrics-bind-address=:8443" "--leader-elect" (printf "--webhook-enabled=%t" (get (fromJson (include "operator.isWebhookEnabled" (dict "a" (list $dot)))) "r"))) -}} -{{- if (get (fromJson (include "operator.isWebhookEnabled" (dict "a" (list $dot)))) "r") -}} -{{- $args = (concat (default (list) $args) (list "--webhook-enabled=true" (printf "--webhook-cert-path=%s" "/tmp/k8s-webhook-server/serving-certs"))) -}} -{{- end -}} -{{- if (eq $values.scope "Namespace") -}} -{{- $args = (concat (default (list) $args) (list (printf "--namespace=%s" $dot.Release.Namespace) (printf "--log-level=%s" $values.logLevel))) -}} -{{- end -}} -{{- $hasConfiguratorTag := false -}} -{{- $hasConfiguratorImage := false -}} -{{- range $_, $flag := $values.additionalCmdFlags -}} -{{- if (contains "--configurator-tag" $flag) -}} -{{- $hasConfiguratorTag = true -}} -{{- end -}} -{{- if (contains "--configurator-base-image" $flag) -}} -{{- $hasConfiguratorImage = true -}} -{{- end -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- if (not $hasConfiguratorTag) -}} -{{- $args = (concat (default (list) $args) (list (printf "--configurator-tag=%s" (get (fromJson (include "operator.containerTag" (dict "a" (list $dot)))) "r")))) -}} -{{- end -}} -{{- if (not $hasConfiguratorImage) -}} -{{- $args = (concat (default (list) $args) (list (printf "--configurator-base-image=%s" $values.image.repository))) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (concat (default (list) $args) (default (list) $values.additionalCmdFlags))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/operator/templates/_helpers.go.tpl b/charts/operator/templates/_helpers.go.tpl deleted file mode 100644 index 0781329f40..0000000000 --- a/charts/operator/templates/_helpers.go.tpl +++ /dev/null @@ -1,323 +0,0 @@ -{{- /* Generated from "helpers.go" */ -}} - -{{- define "operator.Name" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $name := (default $dot.Chart.Name $values.nameOverride) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "operator.cleanForK8s" (dict "a" (list $name)))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "operator.Fullname" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (ne $values.fullnameOverride "") -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "operator.cleanForK8s" (dict "a" (list $values.fullnameOverride)))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- $name := (default $dot.Chart.Name $values.nameOverride) -}} -{{- if (contains $name $dot.Release.Name) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "operator.cleanForK8s" (dict "a" (list $dot.Release.Name)))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "operator.cleanForK8s" (dict "a" (list (printf "%s-%s" $dot.Release.Name $name))))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "operator.ChartName" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $chart := (printf "%s-%s" $dot.Chart.Name $dot.Chart.Version) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "operator.cleanForK8s" (dict "a" (list (replace "+" "_" $chart))))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "operator.Labels" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $labels := (dict "helm.sh/chart" (get (fromJson (include "operator.ChartName" (dict "a" (list $dot)))) "r") "app.kubernetes.io/managed-by" $dot.Release.Service) -}} -{{- if (ne $dot.Chart.AppVersion "") -}} -{{- $_ := (set $labels "app.kubernetes.io/version" $dot.Chart.AppVersion) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (merge (dict) $labels (get (fromJson (include "operator.SelectorLabels" (dict "a" (list $dot)))) "r") $values.commonLabels)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "operator.SelectorLabels" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (dict "app.kubernetes.io/name" (get (fromJson (include "operator.Name" (dict "a" (list $dot)))) "r") "app.kubernetes.io/instance" $dot.Release.Name)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "operator.cleanForK8s" -}} -{{- $s := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (trimSuffix "-" (trunc (63 | int) $s))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "operator.cleanForK8sWithSuffix" -}} -{{- $s := (index .a 0) -}} -{{- $suffix := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $lengthToTruncate := ((sub (((add ((get (fromJson (include "_shims.len" (dict "a" (list $s)))) "r") | int) ((get (fromJson (include "_shims.len" (dict "a" (list $suffix)))) "r") | int)) | int)) (63 | int)) | int) -}} -{{- if (gt $lengthToTruncate (0 | int)) -}} -{{- $s = (trunc $lengthToTruncate $s) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (printf "%s-%s" $s $suffix)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "operator.StrategicMergePatch" -}} -{{- $overrides := (index .a 0) -}} -{{- $original := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (ne (toJson $overrides.metadata.labels) "null") -}} -{{- $_ := (set $original.metadata "labels" (merge (dict) $overrides.metadata.labels (default (dict) $original.metadata.labels))) -}} -{{- end -}} -{{- if (ne (toJson $overrides.metadata.annotations) "null") -}} -{{- $_ := (set $original.metadata "annotations" (merge (dict) $overrides.metadata.annotations (default (dict) $original.metadata.annotations))) -}} -{{- end -}} -{{- if (ne (toJson $overrides.spec.securityContext) "null") -}} -{{- $_ := (set $original.spec "securityContext" (merge (dict) $overrides.spec.securityContext (default (mustMergeOverwrite (dict) (dict)) $original.spec.securityContext))) -}} -{{- end -}} -{{- if (not (empty $overrides.spec.automountServiceAccountToken)) -}} -{{- $_ := (set $original.spec "automountServiceAccountToken" $overrides.spec.automountServiceAccountToken) -}} -{{- end -}} -{{- if (and (ne (toJson $overrides.spec.imagePullSecrets) "null") (gt ((get (fromJson (include "_shims.len" (dict "a" (list $overrides.spec.imagePullSecrets)))) "r") | int) (0 | int))) -}} -{{- $_ := (set $original.spec "imagePullSecrets" $overrides.spec.imagePullSecrets) -}} -{{- end -}} -{{- if (not (empty $overrides.spec.serviceAccountName)) -}} -{{- $_ := (set $original.spec "serviceAccountName" $overrides.spec.serviceAccountName) -}} -{{- end -}} -{{- if (not (empty $overrides.spec.nodeSelector)) -}} -{{- $_ := (set $original.spec "nodeSelector" (merge (dict) $overrides.spec.nodeSelector (default (dict) $original.spec.nodeSelector))) -}} -{{- end -}} -{{- if (ne (toJson $overrides.spec.affinity) "null") -}} -{{- $_ := (set $original.spec "affinity" (merge (dict) $overrides.spec.affinity (default (mustMergeOverwrite (dict) (dict)) $original.spec.affinity))) -}} -{{- end -}} -{{- if (and (ne (toJson $overrides.spec.topologySpreadConstraints) "null") (gt ((get (fromJson (include "_shims.len" (dict "a" (list $overrides.spec.topologySpreadConstraints)))) "r") | int) (0 | int))) -}} -{{- $_ := (set $original.spec "topologySpreadConstraints" $overrides.spec.topologySpreadConstraints) -}} -{{- end -}} -{{- if (and (ne (toJson $overrides.spec.volumes) "null") (gt ((get (fromJson (include "_shims.len" (dict "a" (list $overrides.spec.volumes)))) "r") | int) (0 | int))) -}} -{{- $newVolumes := (list) -}} -{{- $overrideVolumes := (dict) -}} -{{- range $i, $_ := $overrides.spec.volumes -}} -{{- $vol := (index $overrides.spec.volumes $i) -}} -{{- $_ := (set $overrideVolumes $vol.name $vol) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- range $_, $vol := $original.spec.volumes -}} -{{- $_169_overrideVol_1_ok_2 := (get (fromJson (include "_shims.dicttest" (dict "a" (list $overrideVolumes $vol.name (dict "name" ""))))) "r") -}} -{{- $overrideVol_1 := (index $_169_overrideVol_1_ok_2 0) -}} -{{- $ok_2 := (index $_169_overrideVol_1_ok_2 1) -}} -{{- if $ok_2 -}} -{{- $newVolumes = (concat (default (list) $newVolumes) (list $overrideVol_1)) -}} -{{- $_ := (unset $overrideVolumes $vol.name) -}} -{{- continue -}} -{{- end -}} -{{- $newVolumes = (concat (default (list) $newVolumes) (list $vol)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- range $_, $vol := $overrideVolumes -}} -{{- $newVolumes = (concat (default (list) $newVolumes) (list $vol)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_ := (set $original.spec "volumes" $newVolumes) -}} -{{- end -}} -{{- $overrideContainers := (dict) -}} -{{- range $i, $_ := $overrides.spec.containers -}} -{{- $container := (index $overrides.spec.containers $i) -}} -{{- $_ := (set $overrideContainers (toString $container.name) $container) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- if (not (empty $overrides.spec.restartPolicy)) -}} -{{- $_ := (set $original.spec "restartPolicy" $overrides.spec.restartPolicy) -}} -{{- end -}} -{{- if (ne (toJson $overrides.spec.terminationGracePeriodSeconds) "null") -}} -{{- $_ := (set $original.spec "terminationGracePeriodSeconds" $overrides.spec.terminationGracePeriodSeconds) -}} -{{- end -}} -{{- if (ne (toJson $overrides.spec.activeDeadlineSeconds) "null") -}} -{{- $_ := (set $original.spec "activeDeadlineSeconds" $overrides.spec.activeDeadlineSeconds) -}} -{{- end -}} -{{- if (not (empty $overrides.spec.dnsPolicy)) -}} -{{- $_ := (set $original.spec "dnsPolicy" $overrides.spec.dnsPolicy) -}} -{{- end -}} -{{- if (not (empty $overrides.spec.nodeName)) -}} -{{- $_ := (set $original.spec "nodeName" $overrides.spec.nodeName) -}} -{{- end -}} -{{- if (not (empty $overrides.spec.hostNetwork)) -}} -{{- $_ := (set $original.spec "hostNetwork" $overrides.spec.hostNetwork) -}} -{{- end -}} -{{- if (not (empty $overrides.spec.hostPID)) -}} -{{- $_ := (set $original.spec "hostPID" $overrides.spec.hostPID) -}} -{{- end -}} -{{- if (not (empty $overrides.spec.hostIPC)) -}} -{{- $_ := (set $original.spec "hostIPC" $overrides.spec.hostIPC) -}} -{{- end -}} -{{- if (not (empty $overrides.spec.shareProcessNamespace)) -}} -{{- $_ := (set $original.spec "shareProcessNamespace" $overrides.spec.shareProcessNamespace) -}} -{{- end -}} -{{- if (not (empty $overrides.spec.hostname)) -}} -{{- $_ := (set $original.spec "hostname" $overrides.spec.hostname) -}} -{{- end -}} -{{- if (not (empty $overrides.spec.subdomain)) -}} -{{- $_ := (set $original.spec "subdomain" $overrides.spec.subdomain) -}} -{{- end -}} -{{- if (not (empty $overrides.spec.schedulerName)) -}} -{{- $_ := (set $original.spec "schedulerName" $overrides.spec.schedulerName) -}} -{{- end -}} -{{- if (and (ne (toJson $overrides.spec.tolerations) "null") (gt ((get (fromJson (include "_shims.len" (dict "a" (list $overrides.spec.tolerations)))) "r") | int) (0 | int))) -}} -{{- $_ := (set $original.spec "tolerations" $overrides.spec.tolerations) -}} -{{- end -}} -{{- if (and (ne (toJson $overrides.spec.hostAliases) "null") (gt ((get (fromJson (include "_shims.len" (dict "a" (list $overrides.spec.hostAliases)))) "r") | int) (0 | int))) -}} -{{- $_ := (set $original.spec "hostAliases" $overrides.spec.hostAliases) -}} -{{- end -}} -{{- if (not (empty $overrides.spec.priorityClassName)) -}} -{{- $_ := (set $original.spec "priorityClassName" $overrides.spec.priorityClassName) -}} -{{- end -}} -{{- if (not (empty $overrides.spec.priority)) -}} -{{- $_ := (set $original.spec "priority" $overrides.spec.priority) -}} -{{- end -}} -{{- if (ne (toJson $overrides.spec.dnsConfig) "null") -}} -{{- $_ := (set $original.spec "dnsConfig" (merge (dict) $overrides.spec.dnsConfig (default (mustMergeOverwrite (dict) (dict)) $original.spec.dnsConfig))) -}} -{{- end -}} -{{- if (and (ne (toJson $overrides.spec.readinessGates) "null") (gt ((get (fromJson (include "_shims.len" (dict "a" (list $overrides.spec.readinessGates)))) "r") | int) (0 | int))) -}} -{{- $_ := (set $original.spec "readinessGates" $overrides.spec.readinessGates) -}} -{{- end -}} -{{- if (not (empty $overrides.spec.runtimeClassName)) -}} -{{- $_ := (set $original.spec "runtimeClassName" $overrides.spec.runtimeClassName) -}} -{{- end -}} -{{- if (not (empty $overrides.spec.enableServiceLinks)) -}} -{{- $_ := (set $original.spec "enableServiceLinks" $overrides.spec.enableServiceLinks) -}} -{{- end -}} -{{- if (ne (toJson $overrides.spec.preemptionPolicy) "null") -}} -{{- $_ := (set $original.spec "preemptionPolicy" $overrides.spec.preemptionPolicy) -}} -{{- end -}} -{{- if (ne (toJson $overrides.spec.setHostnameAsFQDN) "null") -}} -{{- $_ := (set $original.spec "setHostnameAsFQDN" $overrides.spec.setHostnameAsFQDN) -}} -{{- end -}} -{{- if (ne (toJson $overrides.spec.hostUsers) "null") -}} -{{- $_ := (set $original.spec "hostUsers" $overrides.spec.hostUsers) -}} -{{- end -}} -{{- if (and (ne (toJson $overrides.spec.schedulingGates) "null") (gt ((get (fromJson (include "_shims.len" (dict "a" (list $overrides.spec.schedulingGates)))) "r") | int) (0 | int))) -}} -{{- $_ := (set $original.spec "schedulingGates" $overrides.spec.schedulingGates) -}} -{{- end -}} -{{- if (and (ne (toJson $overrides.spec.resourceClaims) "null") (gt ((get (fromJson (include "_shims.len" (dict "a" (list $overrides.spec.resourceClaims)))) "r") | int) (0 | int))) -}} -{{- $_ := (set $original.spec "resourceClaims" $overrides.spec.resourceClaims) -}} -{{- end -}} -{{- $merged := (coalesce nil) -}} -{{- range $_, $container := $original.spec.containers -}} -{{- $_308_override_3_ok_4 := (get (fromJson (include "_shims.dicttest" (dict "a" (list $overrideContainers $container.name (coalesce nil))))) "r") -}} -{{- $override_3 := (index $_308_override_3_ok_4 0) -}} -{{- $ok_4 := (index $_308_override_3_ok_4 1) -}} -{{- if $ok_4 -}} -{{- $env := (concat (default (list) $container.env) (default (list) $override_3.env)) -}} -{{- $container = (merge (dict) $override_3 $container) -}} -{{- $_ := (set $container "env" $env) -}} -{{- end -}} -{{- if (eq (toJson $container.env) "null") -}} -{{- $_ := (set $container "env" (list)) -}} -{{- end -}} -{{- $merged = (concat (default (list) $merged) (list $container)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_ := (set $original.spec "containers" $merged) -}} -{{- $overrideContainers = (dict) -}} -{{- range $i, $_ := $overrides.spec.initContainers -}} -{{- $container := (index $overrides.spec.initContainers $i) -}} -{{- $_ := (set $overrideContainers (toString $container.name) $container) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $merged = (list) -}} -{{- range $_, $container := $original.spec.initContainers -}} -{{- $_339_override_5_ok_6 := (get (fromJson (include "_shims.dicttest" (dict "a" (list $overrideContainers $container.name (coalesce nil))))) "r") -}} -{{- $override_5 := (index $_339_override_5_ok_6 0) -}} -{{- $ok_6 := (index $_339_override_5_ok_6 1) -}} -{{- if $ok_6 -}} -{{- $env := (concat (default (list) $container.env) (default (list) $override_5.env)) -}} -{{- $container = (merge (dict) $override_5 $container) -}} -{{- $_ := (set $container "env" $env) -}} -{{- end -}} -{{- if (eq (toJson $container.env) "null") -}} -{{- $_ := (set $container "env" (list)) -}} -{{- end -}} -{{- $merged = (concat (default (list) $merged) (list $container)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_ := (set $original.spec "initContainers" $merged) -}} -{{- $overrideEphemeralContainers := (dict) -}} -{{- range $i, $_ := $overrides.spec.ephemeralContainers -}} -{{- $container := (index $overrides.spec.ephemeralContainers $i) -}} -{{- $_ := (set $overrideEphemeralContainers (toString $container.name) $container) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $mergedEphemeralContainers := (coalesce nil) -}} -{{- range $_, $container := $original.spec.ephemeralContainers -}} -{{- $_370_override_7_ok_8 := (get (fromJson (include "_shims.dicttest" (dict "a" (list $overrideEphemeralContainers $container.name (coalesce nil))))) "r") -}} -{{- $override_7 := (index $_370_override_7_ok_8 0) -}} -{{- $ok_8 := (index $_370_override_7_ok_8 1) -}} -{{- if $ok_8 -}} -{{- $env := (concat (default (list) $container.env) (default (list) $override_7.env)) -}} -{{- $container = (merge (dict) $override_7 $container) -}} -{{- $_ := (set $container "env" $env) -}} -{{- end -}} -{{- if (eq (toJson $container.env) "null") -}} -{{- $_ := (set $container "env" (list)) -}} -{{- end -}} -{{- $mergedEphemeralContainers = (concat (default (list) $mergedEphemeralContainers) (list $container)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_ := (set $original.spec "ephemeralContainers" $mergedEphemeralContainers) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $original) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/operator/templates/_helpers.tpl b/charts/operator/templates/_helpers.tpl deleted file mode 100644 index 45cf02d993..0000000000 --- a/charts/operator/templates/_helpers.tpl +++ /dev/null @@ -1,74 +0,0 @@ -{{/* -Copyright 2020 Redpanda Data, Inc. - -Use of this software is governed by the Business Source License -included in the file licenses/BSL.md - -As of the Change Date specified in that file, in accordance with -the Business Source License, use of this software will be governed -by the Apache License, Version 2.0 -*/}} - -{{/* -Expand the name of the chart. -*/}} -{{- define "redpanda-operator.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} -{{- end }} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "redpanda-operator.fullname" -}} -{{- if .Values.fullnameOverride }} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} -{{- else }} -{{- $name := default .Chart.Name .Values.nameOverride }} -{{- if contains $name .Release.Name }} -{{- .Release.Name | trunc 63 | trimSuffix "-" }} -{{- else }} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} -{{- end }} -{{- end }} -{{- end }} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "redpanda-operator.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} -{{- end }} - -{{- define "redpanda-operator.webhook-cert" -}} -{{- printf .Values.webhookSecretName }} -{{- end }} - -{{/* -Common labels -*/}} -{{- define "redpanda-operator.labels" -}} -app.kubernetes.io/name: {{ include "redpanda-operator.name" . }} -helm.sh/chart: {{ include "redpanda-operator.chart" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- if .Chart.AppVersion }} -app.kubernetes.io/version: {{ include "operator.tag" . | quote }} -{{- end }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{ with .Values.commonLabels }} -{{- toYaml . -}} -{{- end }} -{{- end -}} - -{{/* -Create the name of the service account to use -*/}} -{{- define "redpanda-operator.serviceAccountName" -}} -{{ default (include "redpanda-operator.fullname" .) .Values.serviceAccount.name }} -{{- end -}} - -{{- define "operator.tag" -}} -{{- $tag := default .Chart.AppVersion .Values.image.tag -}} -{{- $tag -}} -{{- end -}} diff --git a/charts/operator/templates/_issuer.go.tpl b/charts/operator/templates/_issuer.go.tpl deleted file mode 100644 index c55d33d28f..0000000000 --- a/charts/operator/templates/_issuer.go.tpl +++ /dev/null @@ -1,13 +0,0 @@ -{{- /* Generated from "issuer.go" */ -}} - -{{- define "operator.Issuer" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil) ) "spec" (dict ) "status" (dict ) ) (mustMergeOverwrite (dict ) (dict "apiVersion" "cert-manager.io/v1" "kind" "Issuer" )) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil) ) (dict "name" (printf "%s-selfsigned-issuer" (trunc ((get (fromJson (include "_shims.len" (dict "a" (list "-selfsigned-issuer") ))) "r") | int) (get (fromJson (include "operator.Fullname" (dict "a" (list $dot) ))) "r"))) "namespace" $dot.Release.Namespace "labels" (get (fromJson (include "operator.Labels" (dict "a" (list $dot) ))) "r") "annotations" $values.annotations )) "spec" (mustMergeOverwrite (dict ) (mustMergeOverwrite (dict ) (dict "selfSigned" (mustMergeOverwrite (dict ) (dict )) )) (dict )) ))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/operator/templates/_rbac.go.tpl b/charts/operator/templates/_rbac.go.tpl deleted file mode 100644 index 9a63ed9386..0000000000 --- a/charts/operator/templates/_rbac.go.tpl +++ /dev/null @@ -1,118 +0,0 @@ -{{- /* Generated from "rbac.go" */ -}} - -{{- define "operator.ClusterRoles" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not $values.rbac.create) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $bundles := (list (mustMergeOverwrite (dict "Enabled" false "RuleFiles" (coalesce nil) "Name" "") (dict "Name" (get (fromJson (include "operator.Fullname" (dict "a" (list $dot)))) "r") "Enabled" (eq $values.scope "Cluster") "RuleFiles" (list "files/rbac/leader-election.ClusterRole.yaml" "files/rbac/pvcunbinder.ClusterRole.yaml" "files/rbac/v1-manager.ClusterRole.yaml"))) (mustMergeOverwrite (dict "Enabled" false "RuleFiles" (coalesce nil) "Name" "") (dict "Name" (get (fromJson (include "operator.Fullname" (dict "a" (list $dot)))) "r") "Enabled" (eq $values.scope "Namespace") "RuleFiles" (list "files/rbac/leader-election.ClusterRole.yaml" "files/rbac/v2-manager.ClusterRole.yaml"))) (mustMergeOverwrite (dict "Enabled" false "RuleFiles" (coalesce nil) "Name" "") (dict "Name" (get (fromJson (include "operator.cleanForK8sWithSuffix" (dict "a" (list (get (fromJson (include "operator.Fullname" (dict "a" (list $dot)))) "r") "additional-controllers")))) "r") "Enabled" (and (eq $values.scope "Namespace") $values.rbac.createAdditionalControllerCRs) "RuleFiles" (list "files/rbac/decommission.ClusterRole.yaml" "files/rbac/node-watcher.ClusterRole.yaml" "files/rbac/old-decommission.ClusterRole.yaml" "files/rbac/pvcunbinder.ClusterRole.yaml")))) -}} -{{- $clusterRoles := (list (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "rules" (coalesce nil)) (mustMergeOverwrite (dict) (dict "apiVersion" "rbac.authorization.k8s.io/v1" "kind" "ClusterRole")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (get (fromJson (include "operator.cleanForK8sWithSuffix" (dict "a" (list (get (fromJson (include "operator.Fullname" (dict "a" (list $dot)))) "r") "metrics-reader")))) "r") "labels" (get (fromJson (include "operator.Labels" (dict "a" (list $dot)))) "r") "annotations" $values.annotations)) "rules" (list (mustMergeOverwrite (dict "verbs" (coalesce nil)) (dict "verbs" (list "get") "nonResourceURLs" (list "/metrics"))))))) -}} -{{- range $_, $bundle := $bundles -}} -{{- if (not $bundle.Enabled) -}} -{{- continue -}} -{{- end -}} -{{- $rules := (coalesce nil) -}} -{{- range $_, $file := $bundle.RuleFiles -}} -{{- $clusterRole := (get (fromJson (include "_shims.fromYaml" (dict "a" (list ($dot.Files.Get $file))))) "r") -}} -{{- $rules = (concat (default (list) $rules) (default (list) $clusterRole.rules)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $clusterRoles = (concat (default (list) $clusterRoles) (list (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "rules" (coalesce nil)) (mustMergeOverwrite (dict) (dict "apiVersion" "rbac.authorization.k8s.io/v1" "kind" "ClusterRole")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" $bundle.Name "labels" (get (fromJson (include "operator.Labels" (dict "a" (list $dot)))) "r") "annotations" $values.annotations)) "rules" $rules)))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $clusterRoles) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "operator.Roles" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not $values.rbac.create) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $bundles := (list (mustMergeOverwrite (dict "Enabled" false "RuleFiles" (coalesce nil) "Name" "") (dict "Name" (get (fromJson (include "operator.cleanForK8sWithSuffix" (dict "a" (list (get (fromJson (include "operator.Fullname" (dict "a" (list $dot)))) "r") "election-role")))) "r") "Enabled" true "RuleFiles" (list "files/rbac/leader-election.Role.yaml"))) (mustMergeOverwrite (dict "Enabled" false "RuleFiles" (coalesce nil) "Name" "") (dict "Name" (get (fromJson (include "operator.Fullname" (dict "a" (list $dot)))) "r") "Enabled" (eq $values.scope "Cluster") "RuleFiles" (list "files/rbac/pvcunbinder.Role.yaml"))) (mustMergeOverwrite (dict "Enabled" false "RuleFiles" (coalesce nil) "Name" "") (dict "Name" (get (fromJson (include "operator.Fullname" (dict "a" (list $dot)))) "r") "Enabled" (eq $values.scope "Namespace") "RuleFiles" (list "files/rbac/rack-awareness.Role.yaml" "files/rbac/sidecar.Role.yaml" "files/rbac/v2-manager.Role.yaml"))) (mustMergeOverwrite (dict "Enabled" false "RuleFiles" (coalesce nil) "Name" "") (dict "Name" (printf "%s%s" (get (fromJson (include "operator.Fullname" (dict "a" (list $dot)))) "r") "-additional-controllers") "Enabled" (and (eq $values.scope "Namespace") $values.rbac.createAdditionalControllerCRs) "RuleFiles" (list "files/rbac/decommission.Role.yaml" "files/rbac/node-watcher.Role.yaml" "files/rbac/old-decommission.Role.yaml" "files/rbac/pvcunbinder.Role.yaml"))) (mustMergeOverwrite (dict "Enabled" false "RuleFiles" (coalesce nil) "Name" "") (dict "Name" (get (fromJson (include "operator.cleanForK8sWithSuffix" (dict "a" (list (get (fromJson (include "operator.Fullname" (dict "a" (list $dot)))) "r") "rpk-bundle")))) "r") "Enabled" $values.rbac.createRPKBundleCRs "RuleFiles" (list "files/rbac/rpk-debug-bundle.Role.yaml")))) -}} -{{- $roles := (coalesce nil) -}} -{{- range $_, $bundle := $bundles -}} -{{- if (not $bundle.Enabled) -}} -{{- continue -}} -{{- end -}} -{{- $rules := (coalesce nil) -}} -{{- range $_, $file := $bundle.RuleFiles -}} -{{- $clusterRole := (get (fromJson (include "_shims.fromYaml" (dict "a" (list ($dot.Files.Get $file))))) "r") -}} -{{- $rules = (concat (default (list) $rules) (default (list) $clusterRole.rules)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $roles = (concat (default (list) $roles) (list (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "rules" (coalesce nil)) (mustMergeOverwrite (dict) (dict "apiVersion" "rbac.authorization.k8s.io/v1" "kind" "Role")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" $bundle.Name "namespace" $dot.Release.Namespace "labels" (get (fromJson (include "operator.Labels" (dict "a" (list $dot)))) "r") "annotations" $values.annotations)) "rules" $rules)))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $roles) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "operator.ClusterRoleBindings" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not $values.rbac.create) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $bindings := (coalesce nil) -}} -{{- range $_, $role := (mustSlice (get (fromJson (include "operator.ClusterRoles" (dict "a" (list $dot)))) "r") (1 | int)) -}} -{{- $bindings = (concat (default (list) $bindings) (list (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "roleRef" (dict "apiGroup" "" "kind" "" "name" "")) (mustMergeOverwrite (dict) (dict "apiVersion" "rbac.authorization.k8s.io/v1" "kind" "ClusterRoleBinding")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" $role.metadata.name "labels" (get (fromJson (include "operator.Labels" (dict "a" (list $dot)))) "r") "annotations" $values.annotations)) "roleRef" (mustMergeOverwrite (dict "apiGroup" "" "kind" "" "name" "") (dict "apiGroup" "rbac.authorization.k8s.io" "kind" "ClusterRole" "name" $role.metadata.name)) "subjects" (list (mustMergeOverwrite (dict "kind" "" "name" "") (dict "kind" "ServiceAccount" "name" (get (fromJson (include "operator.ServiceAccountName" (dict "a" (list $dot)))) "r") "namespace" $dot.Release.Namespace))))))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $bindings) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "operator.RoleBindings" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not $values.rbac.create) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $bindings := (coalesce nil) -}} -{{- range $_, $role := (get (fromJson (include "operator.Roles" (dict "a" (list $dot)))) "r") -}} -{{- $bindings = (concat (default (list) $bindings) (list (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "roleRef" (dict "apiGroup" "" "kind" "" "name" "")) (mustMergeOverwrite (dict) (dict "apiVersion" "rbac.authorization.k8s.io/v1" "kind" "RoleBinding")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" $role.metadata.name "namespace" $dot.Release.Namespace "labels" (get (fromJson (include "operator.Labels" (dict "a" (list $dot)))) "r") "annotations" $values.annotations)) "roleRef" (mustMergeOverwrite (dict "apiGroup" "" "kind" "" "name" "") (dict "apiGroup" "rbac.authorization.k8s.io" "kind" "Role" "name" $role.metadata.name)) "subjects" (list (mustMergeOverwrite (dict "kind" "" "name" "") (dict "kind" "ServiceAccount" "name" (get (fromJson (include "operator.ServiceAccountName" (dict "a" (list $dot)))) "r") "namespace" $dot.Release.Namespace))))))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $bindings) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/operator/templates/_role_binding.go.tpl b/charts/operator/templates/_role_binding.go.tpl deleted file mode 100644 index 84594b1f59..0000000000 --- a/charts/operator/templates/_role_binding.go.tpl +++ /dev/null @@ -1,42 +0,0 @@ -{{- /* Generated from "rbac.go" */ -}} - -{{- define "operator.Roles" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not $values.rbac.create) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $role := (list (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil) ) "rules" (coalesce nil) ) (mustMergeOverwrite (dict ) (dict "apiVersion" "rbac.authorization.k8s.io/v1" "kind" "Role" )) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil) ) (dict "name" (printf "%s-election-role" (trunc ((get (fromJson (include "_shims.len" (dict "a" (list "-election-role") ))) "r") | int) (get (fromJson (include "operator.Fullname" (dict "a" (list $dot) ))) "r"))) "namespace" $dot.Release.Namespace "labels" (get (fromJson (include "operator.Labels" (dict "a" (list $dot) ))) "r") "annotations" $values.annotations )) "rules" (list (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "get" "list" "watch" "create" "update" "patch" "delete") "apiGroups" (list "" "coordination.k8s.io") "resources" (list "leases") ))) ))) -}} -{{- if (eq $values.scope "Namespace") -}} -{{- $role = (concat (default (list ) $role) (list (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil) ) "rules" (coalesce nil) ) (mustMergeOverwrite (dict ) (dict "apiVersion" "rbac.authorization.k8s.io/v1" "kind" "Role" )) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil) ) (dict "name" (printf "%s-election-role" (trunc ((get (fromJson (include "_shims.len" (dict "a" (list "-election-role") ))) "r") | int) (get (fromJson (include "operator.Fullname" (dict "a" (list $dot) ))) "r"))) "namespace" $dot.Release.Namespace "labels" (get (fromJson (include "operator.Labels" (dict "a" (list $dot) ))) "r") "annotations" $values.annotations )) "rules" (list (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "delete" "get" "list" "patch" "update" "watch") "apiGroups" (list "") "resources" (list "persistentvolumeclaims") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "delete" "get" "list" "patch" "update" "watch") "apiGroups" (list "") "resources" (list "pods") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "delete" "get" "list" "patch" "update" "watch") "apiGroups" (list "apps") "resources" (list "deployments") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "delete" "get" "list" "patch" "update" "watch") "apiGroups" (list "apps") "resources" (list "replicasets") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "list" "watch" "create" "delete" "get" "patch" "update") "apiGroups" (list "apps") "resources" (list "statefulsets") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "patch" "update") "apiGroups" (list "apps") "resources" (list "statefulsets/status") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "delete" "get" "list" "patch" "update" "watch") "apiGroups" (list "batch") "resources" (list "jobs") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "delete" "get" "patch" "update") "apiGroups" (list "cert-manager.io") "resources" (list "certificates") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "delete" "get" "patch" "update") "apiGroups" (list "cert-manager.io") "resources" (list "issuers") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "delete" "get" "list" "patch" "update" "watch") "apiGroups" (list "cluster.redpanda.com") "resources" (list "redpandas") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "update") "apiGroups" (list "cluster.redpanda.com") "resources" (list "redpandas/finalizers") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "get" "patch" "update") "apiGroups" (list "cluster.redpanda.com") "resources" (list "redpandas/status") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "delete" "get" "list" "patch" "update" "watch") "apiGroups" (list "coordination.k8s.io") "resources" (list "leases") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "delete" "get" "list" "patch" "update" "watch") "apiGroups" (list "") "resources" (list "configmaps") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "patch") "apiGroups" (list "") "resources" (list "events") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "delete" "get" "list" "patch" "update" "watch") "apiGroups" (list "") "resources" (list "secrets") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "delete" "get" "list" "patch" "update" "watch") "apiGroups" (list "") "resources" (list "serviceaccounts") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "delete" "get" "list" "patch" "update" "watch") "apiGroups" (list "") "resources" (list "pods") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "patch" "update") "apiGroups" (list "") "resources" (list "pods/status") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "delete" "get" "list" "patch" "update" "watch") "apiGroups" (list "") "resources" (list "services") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "delete" "get" "list" "patch" "update" "watch") "apiGroups" (list "helm.toolkit.fluxcd.io") "resources" (list "helmreleases") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "update") "apiGroups" (list "helm.toolkit.fluxcd.io") "resources" (list "helmreleases/finalizers") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "get" "patch" "update") "apiGroups" (list "helm.toolkit.fluxcd.io") "resources" (list "helmreleases/status") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "delete" "get" "list" "patch" "update" "watch") "apiGroups" (list "monitoring.coreos.com") "resources" (list "podmonitors") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "delete" "get" "list" "patch" "update" "watch") "apiGroups" (list "monitoring.coreos.com") "resources" (list "servicemonitors") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "delete" "get" "list" "patch" "update" "watch") "apiGroups" (list "networking.k8s.io") "resources" (list "ingresses") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "delete" "get" "list" "patch" "update" "watch") "apiGroups" (list "policy") "resources" (list "poddisruptionbudgets") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "delete" "get" "list" "patch" "update" "watch") "apiGroups" (list "rbac.authorization.k8s.io") "resources" (list "rolebindings") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "delete" "get" "list" "patch" "update" "watch") "apiGroups" (list "rbac.authorization.k8s.io") "resources" (list "roles") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "get" "list" "patch" "update" "watch") "apiGroups" (list "redpanda.vectorized.io") "resources" (list "clusters") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "get" "list" "patch" "update" "watch") "apiGroups" (list "redpanda.vectorized.io") "resources" (list "consoles") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "delete" "get" "list" "patch" "update" "watch") "apiGroups" (list "source.toolkit.fluxcd.io") "resources" (list "buckets") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "delete" "get" "list" "patch" "update" "watch") "apiGroups" (list "source.toolkit.fluxcd.io") "resources" (list "gitrepositories") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "delete" "get" "list" "patch" "update" "watch") "apiGroups" (list "source.toolkit.fluxcd.io") "resources" (list "gitrepository") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "delete" "get" "patch" "update") "apiGroups" (list "source.toolkit.fluxcd.io") "resources" (list "gitrepository/finalizers") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "get" "patch" "update") "apiGroups" (list "source.toolkit.fluxcd.io") "resources" (list "gitrepository/status") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "delete" "get" "list" "patch" "update" "watch") "apiGroups" (list "source.toolkit.fluxcd.io") "resources" (list "helmcharts") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "delete" "get" "patch" "update") "apiGroups" (list "source.toolkit.fluxcd.io") "resources" (list "helmcharts/finalizers") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "get" "patch" "update") "apiGroups" (list "source.toolkit.fluxcd.io") "resources" (list "helmcharts/status") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "delete" "get" "list" "patch" "update" "watch") "apiGroups" (list "source.toolkit.fluxcd.io") "resources" (list "helmrepositories") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "create" "delete" "get" "patch" "update") "apiGroups" (list "source.toolkit.fluxcd.io") "resources" (list "helmrepositories/finalizers") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "get" "patch" "update") "apiGroups" (list "source.toolkit.fluxcd.io") "resources" (list "helmrepositories/status") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "get" "list" "patch" "update" "watch") "apiGroups" (list "cluster.redpanda.com") "resources" (list "topics") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "update") "apiGroups" (list "cluster.redpanda.com") "resources" (list "topics/finalizers") )) (mustMergeOverwrite (dict "verbs" (coalesce nil) ) (dict "verbs" (list "get" "patch" "update") "apiGroups" (list "cluster.redpanda.com") "resources" (list "topics/status") ))) )))) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $role) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "operator.RoleBindings" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not $values.rbac.create) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $rbac := (list (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil) ) "roleRef" (dict "apiGroup" "" "kind" "" "name" "" ) ) (mustMergeOverwrite (dict ) (dict "apiVersion" "rbac.authorization.k8s.io/v1" "kind" "RoleBinding" )) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil) ) (dict "name" (printf "%s-election-rolebinding" (trunc ((get (fromJson (include "_shims.len" (dict "a" (list "-election-rolebinding") ))) "r") | int) (get (fromJson (include "operator.Fullname" (dict "a" (list $dot) ))) "r"))) "namespace" $dot.Release.Namespace "labels" (get (fromJson (include "operator.Labels" (dict "a" (list $dot) ))) "r") "annotations" $values.annotations )) "subjects" (list (mustMergeOverwrite (dict "kind" "" "name" "" ) (dict "kind" "ServiceAccount" "name" (get (fromJson (include "operator.ServiceAccountName" (dict "a" (list $dot) ))) "r") "namespace" $dot.Release.Namespace ))) "roleRef" (mustMergeOverwrite (dict "apiGroup" "" "kind" "" "name" "" ) (dict "apiGroup" "rbac.authorization.k8s.io" "kind" "Role" "name" (printf "%s-election-role" (get (fromJson (include "operator.Fullname" (dict "a" (list $dot) ))) "r")) )) ))) -}} -{{- if (eq $values.scope "Namespace") -}} -{{- $rbac = (concat (default (list ) $rbac) (list (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil) ) "roleRef" (dict "apiGroup" "" "kind" "" "name" "" ) ) (mustMergeOverwrite (dict ) (dict "apiVersion" "rbac.authorization.k8s.io/v1" "kind" "RoleBinding" )) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil) ) (dict "name" (get (fromJson (include "operator.Fullname" (dict "a" (list $dot) ))) "r") "namespace" $dot.Release.Namespace "labels" (get (fromJson (include "operator.Labels" (dict "a" (list $dot) ))) "r") "annotations" $values.annotations )) "roleRef" (mustMergeOverwrite (dict "apiGroup" "" "kind" "" "name" "" ) (dict "apiGroup" "rbac.authorization.k8s.io" "kind" "Role" "name" (get (fromJson (include "operator.Fullname" (dict "a" (list $dot) ))) "r") )) "subjects" (list (mustMergeOverwrite (dict "kind" "" "name" "" ) (dict "kind" "ServiceAccount" "name" (get (fromJson (include "operator.ServiceAccountName" (dict "a" (list $dot) ))) "r") "namespace" $dot.Release.Namespace ))) )))) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $rbac) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/operator/templates/_service.go.tpl b/charts/operator/templates/_service.go.tpl deleted file mode 100644 index 3d555ae5d0..0000000000 --- a/charts/operator/templates/_service.go.tpl +++ /dev/null @@ -1,61 +0,0 @@ -{{- /* Generated from "service.go" */ -}} - -{{- define "operator.WebhookService" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not ((and $values.webhook.enabled (eq $values.scope "Cluster")))) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict) "status" (dict "loadBalancer" (dict))) (mustMergeOverwrite (dict) (dict "apiVersion" "v1" "kind" "Service")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (printf "%s-webhook-service" (get (fromJson (include "operator.Name" (dict "a" (list $dot)))) "r")) "namespace" $dot.Release.Namespace "labels" (get (fromJson (include "operator.Labels" (dict "a" (list $dot)))) "r") "annotations" $values.annotations)) "spec" (mustMergeOverwrite (dict) (dict "selector" (get (fromJson (include "operator.SelectorLabels" (dict "a" (list $dot)))) "r") "ports" (list (mustMergeOverwrite (dict "port" 0 "targetPort" 0) (dict "port" ((443 | int) | int) "targetPort" (9443 | int))))))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "operator.MetricsService" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict) "status" (dict "loadBalancer" (dict))) (mustMergeOverwrite (dict) (dict "apiVersion" "v1" "kind" "Service")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (get (fromJson (include "operator.cleanForK8sWithSuffix" (dict "a" (list (get (fromJson (include "operator.Fullname" (dict "a" (list $dot)))) "r") "metrics-service")))) "r") "namespace" $dot.Release.Namespace "labels" (get (fromJson (include "operator.Labels" (dict "a" (list $dot)))) "r") "annotations" $values.annotations)) "spec" (mustMergeOverwrite (dict) (dict "selector" (get (fromJson (include "operator.SelectorLabels" (dict "a" (list $dot)))) "r") "ports" (list (mustMergeOverwrite (dict "port" 0 "targetPort" 0) (dict "name" "https" "port" ((8443 | int) | int) "targetPort" "https")))))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "operator.MutatingWebhookConfiguration" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (or (not $values.webhook.enabled) (ne $values.scope "Cluster")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil))) (mustMergeOverwrite (dict) (dict "apiVersion" "admissionregistration.k8s.io/v1" "kind" "MutatingWebhookConfiguration")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (printf "%s-mutating-webhook-configuration" (get (fromJson (include "operator.Fullname" (dict "a" (list $dot)))) "r")) "namespace" $dot.Release.Namespace "annotations" (dict "cert-manager.io/inject-ca-from" (printf "%s/redpanda-serving-cert" $dot.Release.Namespace)))) "webhooks" (list (mustMergeOverwrite (dict "name" "" "clientConfig" (dict) "sideEffects" (coalesce nil) "admissionReviewVersions" (coalesce nil)) (dict "admissionReviewVersions" (list "v1" "v1beta1") "clientConfig" (mustMergeOverwrite (dict) (dict "service" (mustMergeOverwrite (dict "namespace" "" "name" "") (dict "name" (printf "%s-webhook-service" (get (fromJson (include "operator.Name" (dict "a" (list $dot)))) "r")) "namespace" $dot.Release.Namespace "path" "/mutate-redpanda-vectorized-io-v1alpha1-cluster")))) "failurePolicy" "Fail" "name" "mcluster.kb.io" "rules" (list (mustMergeOverwrite (dict) (mustMergeOverwrite (dict) (dict "apiGroups" (list "redpanda.vectorized.io") "apiVersions" (list "v1alpha1") "resources" (list "clusters"))) (dict "operations" (list "CREATE" "UPDATE")))) "sideEffects" "None")))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "operator.ValidatingWebhookConfiguration" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (or (not $values.webhook.enabled) (ne $values.scope "Cluster")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil))) (mustMergeOverwrite (dict) (dict "apiVersion" "admissionregistration.k8s.io/v1" "kind" "ValidatingWebhookConfiguration")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (printf "%s-validating-webhook-configuration" (get (fromJson (include "operator.Fullname" (dict "a" (list $dot)))) "r")) "namespace" $dot.Release.Namespace "annotations" (dict "cert-manager.io/inject-ca-from" (printf "%s/redpanda-serving-cert" $dot.Release.Namespace)))) "webhooks" (list (mustMergeOverwrite (dict "name" "" "clientConfig" (dict) "sideEffects" (coalesce nil) "admissionReviewVersions" (coalesce nil)) (dict "admissionReviewVersions" (list "v1" "v1beta1") "clientConfig" (mustMergeOverwrite (dict) (dict "service" (mustMergeOverwrite (dict "namespace" "" "name" "") (dict "name" (printf "%s-webhook-service" (get (fromJson (include "operator.Name" (dict "a" (list $dot)))) "r")) "namespace" $dot.Release.Namespace "path" "/validate-redpanda-vectorized-io-v1alpha1-cluster")))) "failurePolicy" "Fail" "name" "mcluster.kb.io" "rules" (list (mustMergeOverwrite (dict) (mustMergeOverwrite (dict) (dict "apiGroups" (list "redpanda.vectorized.io") "apiVersions" (list "v1alpha1") "resources" (list "clusters"))) (dict "operations" (list "CREATE" "UPDATE")))) "sideEffects" "None")))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/operator/templates/_serviceaccount.go.tpl b/charts/operator/templates/_serviceaccount.go.tpl deleted file mode 100644 index 82de9e441b..0000000000 --- a/charts/operator/templates/_serviceaccount.go.tpl +++ /dev/null @@ -1,39 +0,0 @@ -{{- /* Generated from "serviceaccount.go" */ -}} - -{{- define "operator.ServiceAccountName" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if $values.serviceAccount.create -}} -{{- if (ne (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.serviceAccount.name "")))) "r") "") -}} -{{- $_is_returning = true -}} -{{- (dict "r" $values.serviceAccount.name) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "operator.Fullname" (dict "a" (list $dot)))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (default (get (fromJson (include "operator.Fullname" (dict "a" (list $dot)))) "r") $values.serviceAccount.name)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "operator.ServiceAccount" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not $values.serviceAccount.create) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil))) (mustMergeOverwrite (dict) (dict "kind" "ServiceAccount" "apiVersion" "v1")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (get (fromJson (include "operator.ServiceAccountName" (dict "a" (list $dot)))) "r") "labels" (get (fromJson (include "operator.Labels" (dict "a" (list $dot)))) "r") "namespace" $dot.Release.Namespace "annotations" $values.serviceAccount.annotations)) "automountServiceAccountToken" $values.serviceAccount.automountServiceAccountToken))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/operator/templates/_servicemonitor.go.tpl b/charts/operator/templates/_servicemonitor.go.tpl deleted file mode 100644 index 13ebb6d970..0000000000 --- a/charts/operator/templates/_servicemonitor.go.tpl +++ /dev/null @@ -1,18 +0,0 @@ -{{- /* Generated from "servicemonitor.go" */ -}} - -{{- define "operator.ServiceMonitor" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not $values.monitoring.enabled) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict "endpoints" (coalesce nil) "selector" (dict) "namespaceSelector" (dict))) (mustMergeOverwrite (dict) (dict "kind" "ServiceMonitor" "apiVersion" "monitoring.coreos.com/v1")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (get (fromJson (include "operator.cleanForK8sWithSuffix" (dict "a" (list (get (fromJson (include "operator.Fullname" (dict "a" (list $dot)))) "r") "metrics-monitor")))) "r") "labels" (get (fromJson (include "operator.Labels" (dict "a" (list $dot)))) "r") "namespace" $dot.Release.Namespace "annotations" $values.annotations)) "spec" (mustMergeOverwrite (dict "endpoints" (coalesce nil) "selector" (dict) "namespaceSelector" (dict)) (dict "endpoints" (list (mustMergeOverwrite (dict) (dict "port" "https" "path" "/metrics" "scheme" "https" "tlsConfig" (mustMergeOverwrite (dict "ca" (dict) "cert" (dict)) (mustMergeOverwrite (dict "ca" (dict) "cert" (dict)) (dict "insecureSkipVerify" true)) (dict)) "bearerTokenFile" "/var/run/secrets/kubernetes.io/serviceaccount/token"))) "namespaceSelector" (mustMergeOverwrite (dict) (dict "matchNames" (list $dot.Release.Namespace))) "selector" (mustMergeOverwrite (dict) (dict "matchLabels" (get (fromJson (include "operator.Labels" (dict "a" (list $dot)))) "r")))))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/operator/templates/_shims.tpl b/charts/operator/templates/_shims.tpl deleted file mode 100644 index 8bdb8a104f..0000000000 --- a/charts/operator/templates/_shims.tpl +++ /dev/null @@ -1,352 +0,0 @@ -{{- /* Generated from "bootstrap.go" */ -}} - -{{- define "_shims.typetest" -}} -{{- $typ := (index .a 0) -}} -{{- $value := (index .a 1) -}} -{{- $zero := (index .a 2) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (typeIs $typ $value) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $value true)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $zero false)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.typeassertion" -}} -{{- $typ := (index .a 0) -}} -{{- $value := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (not (typeIs $typ $value)) -}} -{{- $_ := (fail (printf "expected type of %q got: %T" $typ $value)) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $value) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.dicttest" -}} -{{- $m := (index .a 0) -}} -{{- $key := (index .a 1) -}} -{{- $zero := (index .a 2) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (hasKey $m $key) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list (index $m $key) true)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $zero false)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.deref" -}} -{{- $ptr := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (eq (toJson $ptr) "null") -}} -{{- $_ := (fail "nil dereference") -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $ptr) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.len" -}} -{{- $m := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (eq (toJson $m) "null") -}} -{{- $_is_returning = true -}} -{{- (dict "r" (0 | int)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (len $m)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.ptr_Deref" -}} -{{- $ptr := (index .a 0) -}} -{{- $def := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (ne (toJson $ptr) "null") -}} -{{- $_is_returning = true -}} -{{- (dict "r" $ptr) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $def) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.ptr_Equal" -}} -{{- $a := (index .a 0) -}} -{{- $b := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (and (eq (toJson $a) "null") (eq (toJson $b) "null")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" true) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (eq $a $b)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.get" -}} -{{- $dict := (index .a 0) -}} -{{- $key := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (not (hasKey $dict $key)) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list (coalesce nil) false)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list (get $dict $key) true)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.lookup" -}} -{{- $apiVersion := (index .a 0) -}} -{{- $kind := (index .a 1) -}} -{{- $namespace := (index .a 2) -}} -{{- $name := (index .a 3) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $result := (lookup $apiVersion $kind $namespace $name) -}} -{{- if (empty $result) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list (coalesce nil) false)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $result true)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.fromYaml" -}} -{{- $in := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $result := (fromYaml $in) -}} -{{- if (and (hasKey $result "Error") (eq (len $result) (1 | int))) -}} -{{- $_ := (fail (printf "fromYaml: unmarshalling failed: %s" (index $result "Error"))) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $result) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.asnumeric" -}} -{{- $value := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (typeIs "float64" $value) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $value true)) | toJson -}} -{{- break -}} -{{- end -}} -{{- if (typeIs "int64" $value) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $value true)) | toJson -}} -{{- break -}} -{{- end -}} -{{- if (typeIs "int" $value) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $value true)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list (0 | int) false)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.asintegral" -}} -{{- $value := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (or (typeIs "int64" $value) (typeIs "int" $value)) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $value true)) | toJson -}} -{{- break -}} -{{- end -}} -{{- if (and (typeIs "float64" $value) (eq (floor $value) $value)) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $value true)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list (0 | int) false)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.parseResource" -}} -{{- $repr := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (typeIs "float64" $repr) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list (float64 $repr) 1.0)) | toJson -}} -{{- break -}} -{{- end -}} -{{- if (not (typeIs "string" $repr)) -}} -{{- $_ := (fail (printf "invalid Quantity expected string or float64 got: %T (%v)" $repr $repr)) -}} -{{- end -}} -{{- if (not (regexMatch `^[0-9]+(\.[0-9]{0,6})?(k|m|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$` $repr)) -}} -{{- $_ := (fail (printf "invalid Quantity: %q" $repr)) -}} -{{- end -}} -{{- $reprStr := (toString $repr) -}} -{{- $unit := (regexFind "(k|m|M|G|T|P|Ki|Mi|Gi|Ti|Pi)$" $repr) -}} -{{- $numeric := (float64 (substr (0 | int) ((sub ((get (fromJson (include "_shims.len" (dict "a" (list $reprStr)))) "r") | int) ((get (fromJson (include "_shims.len" (dict "a" (list $unit)))) "r") | int)) | int) $reprStr)) -}} -{{- $_196_scale_ok := (get (fromJson (include "_shims.dicttest" (dict "a" (list (dict "" 1.0 "m" 0.001 "k" (1000 | int) "M" (1000000 | int) "G" (1000000000 | int) "T" (1000000000000 | int) "P" (1000000000000000 | int) "Ki" (1024 | int) "Mi" (1048576 | int) "Gi" (1073741824 | int) "Ti" (1099511627776 | int) "Pi" (1125899906842624 | int)) $unit (float64 0))))) "r") -}} -{{- $scale := ((index $_196_scale_ok 0) | float64) -}} -{{- $ok := (index $_196_scale_ok 1) -}} -{{- if (not $ok) -}} -{{- $_ := (fail (printf "unknown unit: %q" $unit)) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $numeric $scale)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.resource_MustParse" -}} -{{- $repr := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_219_numeric_scale := (get (fromJson (include "_shims.parseResource" (dict "a" (list $repr)))) "r") -}} -{{- $numeric := ((index $_219_numeric_scale 0) | float64) -}} -{{- $scale := ((index $_219_numeric_scale 1) | float64) -}} -{{- $strs := (list "" "m" "k" "M" "G" "T" "P" "Ki" "Mi" "Gi" "Ti" "Pi") -}} -{{- $scales := (list 1.0 0.001 (1000 | int) (1000000 | int) (1000000000 | int) (1000000000000 | int) (1000000000000000 | int) (1024 | int) (1048576 | int) (1073741824 | int) (1099511627776 | int) (1125899906842624 | int)) -}} -{{- $idx := -1 -}} -{{- range $i, $s := $scales -}} -{{- if (eq ($s | float64) ($scale | float64)) -}} -{{- $idx = $i -}} -{{- break -}} -{{- end -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- if (eq $idx -1) -}} -{{- $_ := (fail (printf "unknown scale: %v" $scale)) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (printf "%s%s" (toString $numeric) (index $strs $idx))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.resource_Value" -}} -{{- $repr := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_246_numeric_scale := (get (fromJson (include "_shims.parseResource" (dict "a" (list $repr)))) "r") -}} -{{- $numeric := ((index $_246_numeric_scale 0) | float64) -}} -{{- $scale := ((index $_246_numeric_scale 1) | float64) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (int64 (ceil ((mulf $numeric $scale) | float64)))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.resource_MilliValue" -}} -{{- $repr := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_251_numeric_scale := (get (fromJson (include "_shims.parseResource" (dict "a" (list $repr)))) "r") -}} -{{- $numeric := ((index $_251_numeric_scale 0) | float64) -}} -{{- $scale := ((index $_251_numeric_scale 1) | float64) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (int64 (ceil ((mulf ((mulf $numeric 1000.0) | float64) $scale) | float64)))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.time_ParseDuration" -}} -{{- $repr := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $unitMap := (dict "s" ((1000000000 | int64) | int64) "m" ((60000000000 | int64) | int64) "h" ((3600000000000 | int64) | int64)) -}} -{{- $original := $repr -}} -{{- $value := ((0 | int64) | int64) -}} -{{- if (eq $repr "") -}} -{{- $_ := (fail (printf "invalid Duration: %q" $original)) -}} -{{- end -}} -{{- if (eq $repr "0") -}} -{{- $_is_returning = true -}} -{{- (dict "r" (0 | int64)) | toJson -}} -{{- break -}} -{{- end -}} -{{- range $_, $_ := (list (0 | int) (0 | int) (0 | int)) -}} -{{- if (eq $repr "") -}} -{{- break -}} -{{- end -}} -{{- $n := (regexFind `^\d+` $repr) -}} -{{- if (eq $n "") -}} -{{- $_ := (fail (printf "invalid Duration: %q" $original)) -}} -{{- end -}} -{{- $repr = (substr ((get (fromJson (include "_shims.len" (dict "a" (list $n)))) "r") | int) -1 $repr) -}} -{{- $unit := (regexFind `^(h|m|s)` $repr) -}} -{{- if (eq $unit "") -}} -{{- $_ := (fail (printf "invalid Duration: %q" $original)) -}} -{{- end -}} -{{- $repr = (substr ((get (fromJson (include "_shims.len" (dict "a" (list $unit)))) "r") | int) -1 $repr) -}} -{{- $value = ((add $value (((mul (int64 $n) (ternary (index $unitMap $unit) 0 (hasKey $unitMap $unit))) | int64))) | int64) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $value) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.time_Duration_String" -}} -{{- $dur := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (duration ((div $dur ((1000000000 | int64) | int64)) | int64))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.render-manifest" -}} -{{- $tpl := (index . 0) -}} -{{- $dot := (index . 1) -}} -{{- $manifests := (get ((include $tpl (dict "a" (list $dot))) | fromJson) "r") -}} -{{- if not (typeIs "[]interface {}" $manifests) -}} -{{- $manifests = (list $manifests) -}} -{{- end -}} -{{- range $_, $manifest := $manifests -}} -{{- if ne (toJson $manifest) "null" }} ---- -{{toYaml (unset (unset $manifest "status") "creationTimestamp")}} -{{- end -}} -{{- end -}} -{{- end -}} diff --git a/charts/operator/templates/_values.go.tpl b/charts/operator/templates/_values.go.tpl deleted file mode 100644 index a4e5752a45..0000000000 --- a/charts/operator/templates/_values.go.tpl +++ /dev/null @@ -1,2 +0,0 @@ -{{- /* Generated from "values.go" */ -}} - diff --git a/charts/operator/templates/entry-point.yaml b/charts/operator/templates/entry-point.yaml deleted file mode 100644 index e4ad374509..0000000000 --- a/charts/operator/templates/entry-point.yaml +++ /dev/null @@ -1,17 +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. -*/}} -{{- include "_shims.render-manifest" (list "operator.render" .) -}} diff --git a/charts/operator/values.schema.json b/charts/operator/values.schema.json deleted file mode 100644 index f27e489619..0000000000 --- a/charts/operator/values.schema.json +++ /dev/null @@ -1,6164 +0,0 @@ -{ - "$id": "https://github.com/redpanda-data/redpanda-operator/operator/chart/values", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "additionalProperties": false, - "description": "DO NOT EDIT!. This file was generated by ./cmd/genschema/genschema.go", - "properties": { - "additionalCmdFlags": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "affinity": { - "additionalProperties": false, - "properties": { - "nodeAffinity": { - "additionalProperties": false, - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "preference": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchFields": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "weight": { - "type": "integer" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "additionalProperties": false, - "properties": { - "nodeSelectorTerms": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchFields": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "podAffinity": { - "additionalProperties": false, - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "podAffinityTerm": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "weight": { - "type": "integer" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "podAntiAffinity": { - "additionalProperties": false, - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "podAffinityTerm": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "weight": { - "type": "integer" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "clusterDomain": { - "type": "string" - }, - "commonLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "config": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "health": { - "additionalProperties": false, - "properties": { - "healthProbeBindAddress": { - "type": "string" - } - }, - "type": "object" - }, - "kind": { - "type": "string" - }, - "leaderElection": { - "additionalProperties": false, - "properties": { - "leaderElect": { - "type": "boolean" - }, - "resourceName": { - "type": "string" - } - }, - "type": "object" - }, - "metrics": { - "additionalProperties": false, - "properties": { - "bindAddress": { - "type": "string" - } - }, - "type": "object" - }, - "webhook": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "fullnameOverride": { - "type": "string" - }, - "global": { - "type": "object" - }, - "image": { - "additionalProperties": false, - "properties": { - "pullPolicy": { - "description": "The Kubernetes Pod image pull policy.", - "pattern": "^(Always|Never|IfNotPresent)$", - "type": "string" - }, - "repository": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "required": [ - "pullPolicy" - ], - "type": "object" - }, - "imagePullSecrets": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "livenessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "logLevel": { - "type": "string" - }, - "monitoring": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - } - }, - "type": "object" - }, - "nameOverride": { - "type": "string" - }, - "nodeSelector": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "podAnnotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "podLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "podTemplate": { - "additionalProperties": false, - "properties": { - "metadata": { - "additionalProperties": false, - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "spec": { - "additionalProperties": false, - "properties": { - "activeDeadlineSeconds": { - "type": "integer" - }, - "affinity": { - "additionalProperties": false, - "properties": { - "nodeAffinity": { - "additionalProperties": false, - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "preference": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchFields": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "weight": { - "type": "integer" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "additionalProperties": false, - "properties": { - "nodeSelectorTerms": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchFields": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "podAffinity": { - "additionalProperties": false, - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "podAffinityTerm": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "weight": { - "type": "integer" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "podAntiAffinity": { - "additionalProperties": false, - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "podAffinityTerm": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "weight": { - "type": "integer" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "automountServiceAccountToken": { - "type": "boolean" - }, - "containers": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "args": { - "items": { - "type": "string" - }, - "type": "array" - }, - "command": { - "items": { - "type": "string" - }, - "type": "array" - }, - "env": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "valueFrom": { - "additionalProperties": false, - "properties": { - "configMapKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - }, - "secretKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "envFrom": { - "items": { - "additionalProperties": false, - "properties": { - "configMapRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "prefix": { - "type": "string" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "image": { - "type": "string" - }, - "imagePullPolicy": { - "type": "string" - }, - "lifecycle": { - "additionalProperties": false, - "properties": { - "postStart": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "preStop": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "livenessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "ports": { - "items": { - "additionalProperties": false, - "properties": { - "containerPort": { - "type": "integer" - }, - "hostIP": { - "type": "string" - }, - "hostPort": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "protocol": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "readinessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "resizePolicy": { - "items": { - "additionalProperties": false, - "properties": { - "resourceName": { - "type": "string" - }, - "restartPolicy": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "resources": { - "additionalProperties": false, - "properties": { - "claims": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "limits": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "requests": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - } - }, - "type": "object" - }, - "restartPolicy": { - "type": "string" - }, - "securityContext": { - "additionalProperties": false, - "properties": { - "allowPrivilegeEscalation": { - "type": "boolean" - }, - "appArmorProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "capabilities": { - "additionalProperties": false, - "properties": { - "add": { - "items": { - "type": "string" - }, - "type": "array" - }, - "drop": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "privileged": { - "type": "boolean" - }, - "procMount": { - "type": "string" - }, - "readOnlyRootFilesystem": { - "type": "boolean" - }, - "runAsGroup": { - "type": "integer" - }, - "runAsNonRoot": { - "type": "boolean" - }, - "runAsUser": { - "type": "integer" - }, - "seLinuxOptions": { - "additionalProperties": false, - "properties": { - "level": { - "type": "string" - }, - "role": { - "type": "string" - }, - "type": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "seccompProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "windowsOptions": { - "additionalProperties": false, - "properties": { - "gmsaCredentialSpec": { - "type": "string" - }, - "gmsaCredentialSpecName": { - "type": "string" - }, - "hostProcess": { - "type": "boolean" - }, - "runAsUserName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "startupProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "stdin": { - "type": "boolean" - }, - "stdinOnce": { - "type": "boolean" - }, - "terminationMessagePath": { - "type": "string" - }, - "terminationMessagePolicy": { - "type": "string" - }, - "tty": { - "type": "boolean" - }, - "volumeDevices": { - "items": { - "additionalProperties": false, - "properties": { - "devicePath": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "volumeMounts": { - "items": { - "additionalProperties": false, - "properties": { - "mountPath": { - "type": "string" - }, - "mountPropagation": { - "type": "string" - }, - "name": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "recursiveReadOnly": { - "type": "string" - }, - "subPath": { - "type": "string" - }, - "subPathExpr": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "workingDir": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "dnsConfig": { - "additionalProperties": false, - "properties": { - "nameservers": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "options": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "searches": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "dnsPolicy": { - "type": "string" - }, - "enableServiceLinks": { - "type": "boolean" - }, - "ephemeralContainers": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "args": { - "items": { - "type": "string" - }, - "type": "array" - }, - "command": { - "items": { - "type": "string" - }, - "type": "array" - }, - "env": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "valueFrom": { - "additionalProperties": false, - "properties": { - "configMapKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - }, - "secretKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "envFrom": { - "items": { - "additionalProperties": false, - "properties": { - "configMapRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "prefix": { - "type": "string" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "image": { - "type": "string" - }, - "imagePullPolicy": { - "type": "string" - }, - "lifecycle": { - "additionalProperties": false, - "properties": { - "postStart": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "preStop": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "livenessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "ports": { - "items": { - "additionalProperties": false, - "properties": { - "containerPort": { - "type": "integer" - }, - "hostIP": { - "type": "string" - }, - "hostPort": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "protocol": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "readinessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "resizePolicy": { - "items": { - "additionalProperties": false, - "properties": { - "resourceName": { - "type": "string" - }, - "restartPolicy": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "resources": { - "additionalProperties": false, - "properties": { - "claims": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "limits": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "requests": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - } - }, - "type": "object" - }, - "restartPolicy": { - "type": "string" - }, - "securityContext": { - "additionalProperties": false, - "properties": { - "allowPrivilegeEscalation": { - "type": "boolean" - }, - "appArmorProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "capabilities": { - "additionalProperties": false, - "properties": { - "add": { - "items": { - "type": "string" - }, - "type": "array" - }, - "drop": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "privileged": { - "type": "boolean" - }, - "procMount": { - "type": "string" - }, - "readOnlyRootFilesystem": { - "type": "boolean" - }, - "runAsGroup": { - "type": "integer" - }, - "runAsNonRoot": { - "type": "boolean" - }, - "runAsUser": { - "type": "integer" - }, - "seLinuxOptions": { - "additionalProperties": false, - "properties": { - "level": { - "type": "string" - }, - "role": { - "type": "string" - }, - "type": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "seccompProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "windowsOptions": { - "additionalProperties": false, - "properties": { - "gmsaCredentialSpec": { - "type": "string" - }, - "gmsaCredentialSpecName": { - "type": "string" - }, - "hostProcess": { - "type": "boolean" - }, - "runAsUserName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "startupProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "stdin": { - "type": "boolean" - }, - "stdinOnce": { - "type": "boolean" - }, - "targetContainerName": { - "type": "string" - }, - "terminationMessagePath": { - "type": "string" - }, - "terminationMessagePolicy": { - "type": "string" - }, - "tty": { - "type": "boolean" - }, - "volumeDevices": { - "items": { - "additionalProperties": false, - "properties": { - "devicePath": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "volumeMounts": { - "items": { - "additionalProperties": false, - "properties": { - "mountPath": { - "type": "string" - }, - "mountPropagation": { - "type": "string" - }, - "name": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "recursiveReadOnly": { - "type": "string" - }, - "subPath": { - "type": "string" - }, - "subPathExpr": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "workingDir": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "hostAliases": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "hostnames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ip": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "hostIPC": { - "type": "boolean" - }, - "hostNetwork": { - "type": "boolean" - }, - "hostPID": { - "type": "boolean" - }, - "hostUsers": { - "type": "boolean" - }, - "hostname": { - "type": "string" - }, - "imagePullSecrets": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "initContainers": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "args": { - "items": { - "type": "string" - }, - "type": "array" - }, - "command": { - "items": { - "type": "string" - }, - "type": "array" - }, - "env": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "valueFrom": { - "additionalProperties": false, - "properties": { - "configMapKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - }, - "secretKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "envFrom": { - "items": { - "additionalProperties": false, - "properties": { - "configMapRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "prefix": { - "type": "string" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "image": { - "type": "string" - }, - "imagePullPolicy": { - "type": "string" - }, - "lifecycle": { - "additionalProperties": false, - "properties": { - "postStart": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "preStop": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "livenessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "ports": { - "items": { - "additionalProperties": false, - "properties": { - "containerPort": { - "type": "integer" - }, - "hostIP": { - "type": "string" - }, - "hostPort": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "protocol": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "readinessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "resizePolicy": { - "items": { - "additionalProperties": false, - "properties": { - "resourceName": { - "type": "string" - }, - "restartPolicy": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "resources": { - "additionalProperties": false, - "properties": { - "claims": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "limits": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "requests": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - } - }, - "type": "object" - }, - "restartPolicy": { - "type": "string" - }, - "securityContext": { - "additionalProperties": false, - "properties": { - "allowPrivilegeEscalation": { - "type": "boolean" - }, - "appArmorProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "capabilities": { - "additionalProperties": false, - "properties": { - "add": { - "items": { - "type": "string" - }, - "type": "array" - }, - "drop": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "privileged": { - "type": "boolean" - }, - "procMount": { - "type": "string" - }, - "readOnlyRootFilesystem": { - "type": "boolean" - }, - "runAsGroup": { - "type": "integer" - }, - "runAsNonRoot": { - "type": "boolean" - }, - "runAsUser": { - "type": "integer" - }, - "seLinuxOptions": { - "additionalProperties": false, - "properties": { - "level": { - "type": "string" - }, - "role": { - "type": "string" - }, - "type": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "seccompProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "windowsOptions": { - "additionalProperties": false, - "properties": { - "gmsaCredentialSpec": { - "type": "string" - }, - "gmsaCredentialSpecName": { - "type": "string" - }, - "hostProcess": { - "type": "boolean" - }, - "runAsUserName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "startupProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "stdin": { - "type": "boolean" - }, - "stdinOnce": { - "type": "boolean" - }, - "terminationMessagePath": { - "type": "string" - }, - "terminationMessagePolicy": { - "type": "string" - }, - "tty": { - "type": "boolean" - }, - "volumeDevices": { - "items": { - "additionalProperties": false, - "properties": { - "devicePath": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "volumeMounts": { - "items": { - "additionalProperties": false, - "properties": { - "mountPath": { - "type": "string" - }, - "mountPropagation": { - "type": "string" - }, - "name": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "recursiveReadOnly": { - "type": "string" - }, - "subPath": { - "type": "string" - }, - "subPathExpr": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "workingDir": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "nodeName": { - "type": "string" - }, - "nodeSelector": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "os": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "overhead": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "preemptionPolicy": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "priorityClassName": { - "type": "string" - }, - "readinessGates": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "conditionType": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "resourceClaims": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "source": { - "additionalProperties": false, - "properties": { - "resourceClaimName": { - "type": "string" - }, - "resourceClaimTemplateName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "restartPolicy": { - "type": "string" - }, - "runtimeClassName": { - "type": "string" - }, - "schedulerName": { - "type": "string" - }, - "schedulingGates": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "securityContext": { - "additionalProperties": false, - "properties": { - "appArmorProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "fsGroup": { - "type": "integer" - }, - "fsGroupChangePolicy": { - "enum": [ - "OnRootMismatch", - "Always" - ], - "type": "string" - }, - "runAsGroup": { - "type": "integer" - }, - "runAsNonRoot": { - "type": "boolean" - }, - "runAsUser": { - "type": "integer" - }, - "seLinuxOptions": { - "additionalProperties": false, - "properties": { - "level": { - "type": "string" - }, - "role": { - "type": "string" - }, - "type": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "seccompProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "supplementalGroups": { - "oneOf": [ - { - "items": { - "type": "integer" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "sysctls": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "windowsOptions": { - "additionalProperties": false, - "properties": { - "gmsaCredentialSpec": { - "type": "string" - }, - "gmsaCredentialSpecName": { - "type": "string" - }, - "hostProcess": { - "type": "boolean" - }, - "runAsUserName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "serviceAccount": { - "type": "string" - }, - "serviceAccountName": { - "type": "string" - }, - "setHostnameAsFQDN": { - "type": "boolean" - }, - "shareProcessNamespace": { - "type": "boolean" - }, - "subdomain": { - "type": "string" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "tolerations": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "effect": { - "type": "string" - }, - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "tolerationSeconds": { - "type": "integer" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "topologySpreadConstraints": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "maxSkew": { - "type": "integer" - }, - "minDomains": { - "type": "integer" - }, - "nodeAffinityPolicy": { - "type": "string" - }, - "nodeTaintsPolicy": { - "type": "string" - }, - "topologyKey": { - "type": "string" - }, - "whenUnsatisfiable": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "volumes": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "awsElasticBlockStore": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "partition": { - "type": "integer" - }, - "readOnly": { - "type": "boolean" - }, - "volumeID": { - "type": "string" - } - }, - "type": "object" - }, - "azureDisk": { - "additionalProperties": false, - "properties": { - "cachingMode": { - "type": "string" - }, - "diskName": { - "type": "string" - }, - "diskURI": { - "type": "string" - }, - "fsType": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - } - }, - "type": "object" - }, - "azureFile": { - "additionalProperties": false, - "properties": { - "readOnly": { - "type": "boolean" - }, - "secretName": { - "type": "string" - }, - "shareName": { - "type": "string" - } - }, - "type": "object" - }, - "cephfs": { - "additionalProperties": false, - "properties": { - "monitors": { - "items": { - "type": "string" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretFile": { - "type": "string" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "cinder": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "volumeID": { - "type": "string" - } - }, - "type": "object" - }, - "configMap": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "type": "integer" - }, - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "csi": { - "additionalProperties": false, - "properties": { - "driver": { - "type": "string" - }, - "fsType": { - "type": "string" - }, - "nodePublishSecretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "readOnly": { - "type": "boolean" - }, - "volumeAttributes": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "downwardAPI": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "type": "integer" - }, - "items": { - "items": { - "additionalProperties": false, - "properties": { - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "emptyDir": { - "additionalProperties": false, - "properties": { - "medium": { - "type": "string" - }, - "sizeLimit": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - } - }, - "type": "object" - }, - "ephemeral": { - "additionalProperties": false, - "properties": { - "volumeClaimTemplate": { - "additionalProperties": false, - "properties": { - "metadata": { - "additionalProperties": false, - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "creationTimestamp": { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - "deletionGracePeriodSeconds": { - "type": "integer" - }, - "deletionTimestamp": { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - "finalizers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "generateName": { - "type": "string" - }, - "generation": { - "type": "integer" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "managedFields": { - "items": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldsType": { - "type": "string" - }, - "fieldsV1": { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - "manager": { - "type": "string" - }, - "operation": { - "type": "string" - }, - "subresource": { - "type": "string" - }, - "time": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "namespace": { - "type": "string" - }, - "ownerReferences": { - "items": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "blockOwnerDeletion": { - "type": "boolean" - }, - "controller": { - "type": "boolean" - }, - "kind": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uid": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "resourceVersion": { - "type": "string" - }, - "selfLink": { - "type": "string" - }, - "uid": { - "type": "string" - } - }, - "type": "object" - }, - "spec": { - "additionalProperties": false, - "properties": { - "accessModes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "dataSource": { - "additionalProperties": false, - "properties": { - "apiGroup": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "dataSourceRef": { - "additionalProperties": false, - "properties": { - "apiGroup": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "name": { - "type": "string" - }, - "namespace": { - "type": "string" - } - }, - "type": "object" - }, - "resources": { - "additionalProperties": false, - "properties": { - "limits": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "requests": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - } - }, - "type": "object" - }, - "selector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "storageClassName": { - "type": "string" - }, - "volumeAttributesClassName": { - "type": "string" - }, - "volumeMode": { - "type": "string" - }, - "volumeName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "fc": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "lun": { - "type": "integer" - }, - "readOnly": { - "type": "boolean" - }, - "targetWWNs": { - "items": { - "type": "string" - }, - "type": "array" - }, - "wwids": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "flexVolume": { - "additionalProperties": false, - "properties": { - "driver": { - "type": "string" - }, - "fsType": { - "type": "string" - }, - "options": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "flocker": { - "additionalProperties": false, - "properties": { - "datasetName": { - "type": "string" - }, - "datasetUUID": { - "type": "string" - } - }, - "type": "object" - }, - "gcePersistentDisk": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "partition": { - "type": "integer" - }, - "pdName": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - } - }, - "type": "object" - }, - "gitRepo": { - "additionalProperties": false, - "properties": { - "directory": { - "type": "string" - }, - "repository": { - "type": "string" - }, - "revision": { - "type": "string" - } - }, - "type": "object" - }, - "glusterfs": { - "additionalProperties": false, - "properties": { - "endpoints": { - "type": "string" - }, - "path": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - } - }, - "type": "object" - }, - "hostPath": { - "additionalProperties": false, - "properties": { - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "iscsi": { - "additionalProperties": false, - "properties": { - "chapAuthDiscovery": { - "type": "boolean" - }, - "chapAuthSession": { - "type": "boolean" - }, - "fsType": { - "type": "string" - }, - "initiatorName": { - "type": "string" - }, - "iqn": { - "type": "string" - }, - "iscsiInterface": { - "type": "string" - }, - "lun": { - "type": "integer" - }, - "portals": { - "items": { - "type": "string" - }, - "type": "array" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "targetPortal": { - "type": "string" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "nfs": { - "additionalProperties": false, - "properties": { - "path": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "server": { - "type": "string" - } - }, - "type": "object" - }, - "persistentVolumeClaim": { - "additionalProperties": false, - "properties": { - "claimName": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - } - }, - "type": "object" - }, - "photonPersistentDisk": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "pdID": { - "type": "string" - } - }, - "type": "object" - }, - "portworxVolume": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "volumeID": { - "type": "string" - } - }, - "type": "object" - }, - "projected": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "type": "integer" - }, - "sources": { - "items": { - "additionalProperties": false, - "properties": { - "clusterTrustBundle": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "path": { - "type": "string" - }, - "signerName": { - "type": "string" - } - }, - "type": "object" - }, - "configMap": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "downwardAPI": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "secret": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "serviceAccountToken": { - "additionalProperties": false, - "properties": { - "audience": { - "type": "string" - }, - "expirationSeconds": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "quobyte": { - "additionalProperties": false, - "properties": { - "group": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "registry": { - "type": "string" - }, - "tenant": { - "type": "string" - }, - "user": { - "type": "string" - }, - "volume": { - "type": "string" - } - }, - "type": "object" - }, - "rbd": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "image": { - "type": "string" - }, - "keyring": { - "type": "string" - }, - "monitors": { - "items": { - "type": "string" - }, - "type": "array" - }, - "pool": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "scaleIO": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "gateway": { - "type": "string" - }, - "protectionDomain": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "sslEnabled": { - "type": "boolean" - }, - "storageMode": { - "type": "string" - }, - "storagePool": { - "type": "string" - }, - "system": { - "type": "string" - }, - "volumeName": { - "type": "string" - } - }, - "type": "object" - }, - "secret": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "type": "integer" - }, - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "optional": { - "type": "boolean" - }, - "secretName": { - "type": "string" - } - }, - "type": "object" - }, - "storageos": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "volumeName": { - "type": "string" - }, - "volumeNamespace": { - "type": "string" - } - }, - "type": "object" - }, - "vsphereVolume": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "storagePolicyID": { - "type": "string" - }, - "storagePolicyName": { - "type": "string" - }, - "volumePath": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "required": [ - "spec" - ], - "type": "object" - }, - "rbac": { - "additionalProperties": false, - "properties": { - "create": { - "type": "boolean" - }, - "createAdditionalControllerCRs": { - "type": "boolean" - }, - "createRPKBundleCRs": { - "type": "boolean" - } - }, - "type": "object" - }, - "readinessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "replicaCount": { - "type": "integer" - }, - "resources": { - "additionalProperties": false, - "properties": { - "claims": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "limits": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "requests": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - } - }, - "type": "object" - }, - "scope": { - "description": "Sets the scope of the Redpanda Operator.", - "pattern": "^(Namespace|Cluster)$", - "type": "string" - }, - "serviceAccount": { - "additionalProperties": false, - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "automountServiceAccountToken": { - "type": "boolean" - }, - "create": { - "type": "boolean" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "strategy": { - "additionalProperties": false, - "properties": { - "rollingUpdate": { - "additionalProperties": false, - "properties": { - "maxSurge": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "maxUnavailable": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "tolerations": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "effect": { - "type": "string" - }, - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "tolerationSeconds": { - "type": "integer" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "webhook": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - } - }, - "type": "object" - }, - "webhookSecretName": { - "type": "string" - } - }, - "required": [ - "scope" - ], - "type": "object" -} diff --git a/charts/operator/values.yaml b/charts/operator/values.yaml deleted file mode 100644 index 2027cc91f3..0000000000 --- a/charts/operator/values.yaml +++ /dev/null @@ -1,179 +0,0 @@ -# Default values for the Redpanda Operator Helm chart. -# Declare variables to be passed into your templates. - -# -- Overrides the `redpanda-operator.name` template. -nameOverride: "" - -# -- Overrides the `redpanda-operator.fullname` template. -fullnameOverride: "" - -# -- Sets the number of instances of the Redpanda Operator to deploy. -# Each instance is deployed as a Pod. All instances are managed by a Deployment resource. -replicaCount: 1 - -# -- Sets the Kubernetes cluster domain. -clusterDomain: cluster.local - -# -- Container image settings. -image: - # -- Sets the repository from which to pull the `redpanda-operator` image. - repository: docker.redpanda.com/redpandadata/redpanda-operator - # -- Sets the image version. - # See DockerHub for [all stable versions](https://hub.docker.com/r/redpandadata/redpanda-operator/tags). - # @default -- `Chart.appVersion`. - # tag: - # -- Sets the `pullPolicy` for the `redpanda-operator` image. - pullPolicy: IfNotPresent - -# -- Configuration for the Kubernetes Controller Manager used by Redpanda Operator. -# The Controller Manager is a component of the Kubernetes control plane that runs controller processes. These controllers are background threads that handle the orchestration and operational logic of Kubernetes, ensuring the desired state of the cluster matches the observed state. -config: - apiVersion: controller-runtime.sigs.k8s.io/v1alpha1 - kind: ControllerManagerConfig - # -- Configuration for health checking. - health: - # -- Sets the address for the health probe server to listen on. - healthProbeBindAddress: :8081 - # -- Configuration for the metrics endpoint. - metrics: - # -- Sets the address for the metrics server to bind to. - bindAddress: 127.0.0.1:8080 - # -- Configuration for webhooks, such as the port they listen on. Webhooks are HTTP callbacks that receive and process data in response to events. - webhook: - # -- Sets the port for the webhook server to listen on. - port: 9443 - # -- Configuration for leader election, which is a process that ensures only one instance of the controller manager is active at a time. This is critical for high availability and to prevent split-brain scenarios in a distributed system. - leaderElection: - # -- Enables leader election. - leaderElect: true - # -- Sets the name of the resource lock for the leader election process. - resourceName: aa9fc693.vectorized.io - -# -- Pull secrets may be used to provide credentials to image repositories -# See the [Kubernetes documentation](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/). -imagePullSecrets: [] - -# -- Log level -# Valid values (from least to most verbose) are: `warn`, `info`, `debug`, and `trace`. -logLevel: "info" - -# -- Role-based Access Control (RBAC) configuration for the Redpanda Operator. -rbac: - # -- Enables the creation of additional RBAC roles. - create: true - # -- Create RBAC cluster roles needed for the Redpanda Helm chart's 'rbac.enabled' feature. - # WARNING: Disabling this value may prevent the operator from deploying certain configurations of redpanda. - createAdditionalControllerCRs: true - # -- Create ClusterRoles needed for the Redpanda Helm chart's 'rbac.rpkDebugBundle' feature. - createRPKBundleCRs: true - -# -- Specifies whether to create Webhook resources both to intercept and potentially modify or reject Kubernetes API requests as well as authenticate requests to the Kubernetes API. Only valid when `scope` is set to Cluster. -webhook: - # -- Creates the Webhook resources. - enabled: false - -# -- Service account management. -serviceAccount: - # -- Specifies whether a service account should be created. - create: true - # -- Specifies whether a service account should automount API-Credentials. The token is used in sidecars.controllers - automountServiceAccountToken: false - # -- The name of the service account to use. - # If not set and `serviceAccount.create` is `true`, - # a name is generated using the `redpanda-operator.fullname` template. - # name: - -# -- Sets resources requests/limits for Redpanda Operator Pods. -# By default requests and limits are not set to increase the chances that the charts run on environments with few -# resources, such as Minikube. To specify resources, uncomment the following -# lines, adjust them as necessary, and remove the curly braces after `resources`. -resources: {} -# limits: -# cpu: 100m -# memory: 30Mi -# requests: -# cpu: 100m -# memory: 20Mi - -# -- Node selection constraints for scheduling Pods on specific nodes. -# For details, -# see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector). -nodeSelector: {} -# -- Taints to be tolerated by Pods. -# For details, -# see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/). -tolerations: [] -# -- Sets affinity constraints for scheduling Pods that run the Redpanda Operator. -# For details, -# see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity). -affinity: {} - -# -- Sets deployment strategy. -# For details, -# see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy). -strategy: - type: "RollingUpdate" - -# Sets additional annotations for Pods. -podAnnotations: {} -# Adds additional labels to Pods. -podLabels: {} - -# -- Passes additional flags to the Redpanda Operator at startup. -# Additional flags include: -# -# - `--additional-controllers`: Additional controllers to deploy. Valid values are nodeWatcher or decommission. For more information about the Nodewatcher controller, see [Install the Nodewatcher controller](https://docs.redpanda.com/current/manage/kubernetes/k-scale-redpanda/#node-pvc). For more information about the Decommission controller, see [Use the Decommission controller](https://docs.redpanda.com/current/manage/kubernetes/k-decommission-brokers/#Automated). -additionalCmdFlags: [] -# - --additional-controllers=" `podTemplate.spec.nodeSelector` - - `affinity` -> `podTemplate.spec.affinity` - - `tolerations` -> `podTemplate.spec.tolerations` - - `imagePullSecrets` -> `podTemplate.spec.imagePullSecrets` - - `statefulset.annotations` -> `statefulset.podTemplate.annotations` - - `statefulset.startupProbe` -> `statefulset.podTemplate.spec.containers[0].startupProbe` - - `statefulset.livenessProbe` -> `statefulset.podTemplate.spec.containers[0].livenessProbe` - - `statefulset.readinessProbe` -> `statefulset.podTemplate.spec.containers[1].readinessProbe` - - `statefulset.podAffinity` -> `statefulset.podTemplate.spec.affinity.podAffinity` - - `statefulset.nodeSelector` -> `statefulset.podTemplate.spec.nodeSelector` - - `statefulset.priorityClassName` -> `statefulset.podTemplate.spec.priorityClassName` - - `statefulset.tolerations` -> `statefulset.podTemplate.spec.tolerations` - - `statefulset.topologySpreadConstraints` -> `statefulset.podTemplate.spec.topologySpreadConstraints` - - `statefulset.terminationGracePeriodSeconds` -> `statefulset.podTemplate.spec.terminationGracePeriodSeconds` - - `statefulset.extraVolumes` -> `statefulset.podTemplate.spec.volumes` - - `statefulset.extraVolumesMounts` -> `statefulset.podTemplate.spec.containers[*].volumeMounts` - - `statefulset.initContainers.*.extraVolumesMounts` -> `statefulset.podTemplate.spec.initContainers[*].volumeMounts` - - `statefulset.initContainers.*.resources` -> `statefulset.podTemplate.spec.initContainers[*].resources` - - `statefulset.initContainers.extraInitContainers` -> `statefulset.podTemplate.spec.initContainers` - - `statefulset.sidecars.configWatcher.extraVolumeMounts` -> `statefulset.podTemplate.spec.containers[*].volumeMounts` - - `statefulset.sidecars.configWatcher.resources` -> `statefulset.podTemplate.spec.containers[*].resources` - - `statefulset.sidecars.configWatcher.securityContext` -> `statefulset.podTemplate.spec.containers[*].securityContext` - - `statefulset.sidecars.controllers.resources` -> `statefulset.podTemplate.spec.containers[*].resources` - - `statefulset.sidecars.controllers.securityContext` -> `statefulset.podTemplate.spec.containers[*].securityContext` - - `statefulset.sidecars.extraVolumeMounts` -> `statefulset.podTemplate.spec.containers[*].volumeMounts` - - `statefulset.sidecars.resources` -> `statefulset.podTemplate.spec.containers[*].resources` - - `statefulset.sidecars.securityContext` -> `statefulset.podTemplate.spec.containers[*].securityContext` -* Removed regex validation of all image tags. -* The unrespected`kafkaEndpoint` listener parameter has been removed from `values.yaml` -### Fixed -* Reverse order of applying resources to first create ClusterRole and then ClusterRoleBinding. - When Redpanda custom resource has enabled RBAC the reconciliation was blocked due - ClusterRoleBinding referencing not yet created ClusterRole. - -* Fixed an issue where not explicitly specifying a SASL auth mechanism when SASL is enabled caused Console to fail to start up. -* Prevent broker nodes from restarting when solely the cluster replica amount changes -* `authentication_method` is no longer set on `http_api` as redpanda itself does not support authentication on the http API. -* Fixed rack awareness by mounting a service account token to the initcontainer when rack awareness is enabled. -* Broken `Issuer`s and `Certificate`s are no longer needlessly generated when `tls..issuerRef` is provided. -* Fixed the security contexts' of `set-datadir-ownership` and `set-tiered-storage-cache-dir-ownership`. -* The `schema_registry_client` and `pandaproxy_client` stanzas of `redpanda.yaml` - now respect `listeners.kafka.tls.trustStore`, when provided. - See also [helm-chart 1573 issue](https://github.com/redpanda-data/helm-charts/issues/1573). - - -## [v25.1.1-beta3](https://github.com/redpanda-data/redpanda-operator/releases/tag/charts%2Fredpanda%2Fv25.1.1-beta3) - 2025-05-06 -### Added -* Added a chart wide `podTemplate` field which may be used to control Pod attributes chart wide. - - This field has a lower precedence than `statefulset.podTemplate` and - `post_install_job.podTemplate` but will still be merged with them. -* `podTemplate`, `statefulset.podTemplate`, and `post_install_job.podTemplate` may now contain template expressions **with in string fields** - - To compensate for some of the functionality that was lost with the removal of - fields like `extraVolumes`, we've upgraded `podTemplate` fields to support - templating. Rather than allowing full control over a structured value, we've - reduced the scope to only string fields. This is significantly more - maintainable and less error prone. - - As an example, the below snippet will apply the release name as an annotation - to all Pods created by the chart. - - ```yaml - podTemplate: - annotations: - "keys-cannot-be-templated": '{{ .Release.Name }}' # But values can! - ``` - - See `values.yaml` for additional examples. -### Changed -* Promoted the config-watcher sidecar into a real go binary that handles user management and simplifies cluster health checks so they no longer fail when the sole issue is that other nodes in the cluster are unavailable. Additionally the new sidecar subsumes the behavior of the `statefulset.sideCars.controllers` stanza which should now be specified via their own `enabled` flags. -* `clusterDomain` now defaults to `cluster.local.` (A trialing `.` has been added) and the chart no longer adds trailing `.`'s to internal domains. - - For users not experiencing issues with trailing `.`'s this change has no - effect. For users that have had issues with trailing `.`'s, it's now possible - to opt-out of this behavior by explicitly setting `clusterDomain` to `cluster.local`. - - For users that override `clusterDomain`, copied a previous releases - values.yaml, or use the `--reuse-values` flag, trailing `.`'s will be tripped - from domains upon updating. This behavior may be opted into by appending a - `.` to `clusterDomain` prior to upgrading. -* Bump AppVersion to v24.3.6 Redpanda release -* Bump Redpanda operator side car container tag to `v2.3.7-24.3.6`. -* `values.schema.json` is now "closed" (`additionalProperties: false`) - - Any unexpected values will result in a validation error,previously they would - have been ignored. -* Update Console depedency to latest version with breaking change. Please visit Console change-log. -* The name of the container running redpanda is now always set to `redpanda`. -* bumped `appVersion` to [v25.1.1](https://github.com/redpanda-data/redpanda/releases/tag/v25.1.1). -* `serviceAccount.create` now defaults to `true`. - - The previous behavior resulted in using the `default` service account and - extending it with all bindings generated from the chart. Such behavior is - unlikely to be desired. -* `rpk debug bundle --namespace $NAMESPACE` now works by default. - - The chart now creates a set of `Roles` and `RoleBindings` that satisfy the - requirements of running `rpk debug bundle` from any redpanda Pod. These - permissions may be disabled by specifying `rbac.rpkDebugBundle=false`. - - Additionally, the redpanda container now always has a Kubernetes - ServiceAccount token mounted to it to ensure `rpk debug bundle` can be - executed successfully. -* Update Console depedency to latest version `v3.1.0`. Please visit Console change-log. -### Deprecated -* `.statefulset.sidecars.controllers.image` is now deprecated. It may be specified but will not be respected. Use `.statefulset.sidecars.image` instead. -### Removed -* Connectors sub-chart integration. - - The connectors chart may still be deployed separately, though it is not - officially support. If possible, it is recommended to migrate to redpanda - connect. -* Removed the deprecated fields `license_key` and `license_secret_ref` in favor -of `enterprise.license` and `enterprise.licenseSecretRef`, respectively. -* `statefulset.securityContext`, `statefulset.sideCars.configWatcher.securityContext` have been removed. - - These fields previously served as both PodSecurityContext and SecurityContext - across the entire chart which led to confusing semantics that couldn't be - fixed without breaking backwards compatiblity. - - The top level `podTemplate` field may be used to control - PodSecurityContexts and SecurityContexts across the chart. -* Fields that would be better served through `podTemplate` have been removed in favor of using `podTemplate`. - - Removed fields: - - `nodeSelector` -> `podTemplate.spec.nodeSelector` - - `affinity` -> `podTemplate.spec.affinity` - - `tolerations` -> `podTemplate.spec.tolerations` - - `imagePullSecrets` -> `podTemplate.spec.imagePullSecrets` - - `statefulset.annotations` -> `statefulset.podTemplate.annotations` - - `statefulset.startupProbe` -> `statefulset.podTemplate.spec.containers[0].startupProbe` - - `statefulset.livenessProbe` -> `statefulset.podTemplate.spec.containers[0].livenessProbe` - - `statefulset.readinessProbe` -> `statefulset.podTemplate.spec.containers[1].readinessProbe` - - `statefulset.podAffinity` -> `statefulset.podTemplate.spec.affinity.podAffinity` - - `statefulset.nodeSelector` -> `statefulset.podTemplate.spec.nodeSelector` - - `statefulset.priorityClassName` -> `statefulset.podTemplate.spec.priorityClassName` - - `statefulset.tolerations` -> `statefulset.podTemplate.spec.tolerations` - - `statefulset.topologySpreadConstraints` -> `statefulset.podTemplate.spec.topologySpreadConstraints` - - `statefulset.terminationGracePeriodSeconds` -> `statefulset.podTemplate.spec.terminationGracePeriodSeconds` - - `statefulset.extraVolumes` -> `statefulset.podTemplate.spec.volumes` - - `statefulset.extraVolumesMounts` -> `statefulset.podTemplate.spec.containers[*].volumeMounts` - - `statefulset.initContainers.*.extraVolumesMounts` -> `statefulset.podTemplate.spec.initContainers[*].volumeMounts` - - `statefulset.initContainers.*.resources` -> `statefulset.podTemplate.spec.initContainers[*].resources` - - `statefulset.initContainers.extraInitContainers` -> `statefulset.podTemplate.spec.initContainers` - - `statefulset.sidecars.configWatcher.extraVolumeMounts` -> `statefulset.podTemplate.spec.containers[*].volumeMounts` - - `statefulset.sidecars.configWatcher.resources` -> `statefulset.podTemplate.spec.containers[*].resources` - - `statefulset.sidecars.configWatcher.securityContext` -> `statefulset.podTemplate.spec.containers[*].securityContext` - - `statefulset.sidecars.controllers.resources` -> `statefulset.podTemplate.spec.containers[*].resources` - - `statefulset.sidecars.controllers.securityContext` -> `statefulset.podTemplate.spec.containers[*].securityContext` - - `statefulset.sidecars.extraVolumeMounts` -> `statefulset.podTemplate.spec.containers[*].volumeMounts` - - `statefulset.sidecars.resources` -> `statefulset.podTemplate.spec.containers[*].resources` - - `statefulset.sidecars.securityContext` -> `statefulset.podTemplate.spec.containers[*].securityContext` -* Removed regex validation of all image tags. -### Fixed -* Reverse order of applying resources to first create ClusterRole and then ClusterRoleBinding. - When Redpanda custom resource has enabled RBAC the reconciliation was blocked due - ClusterRoleBinding referencing not yet created ClusterRole. - -* Fixed an issue where not explicitly specifying a SASL auth mechanism when SASL is enabled caused Console to fail to start up. -* Prevent broker nodes from restarting when solely the cluster replica amount changes -* Fixed rack awareness by mounting a service account token to the initcontainer when rack awareness is enabled. -* Broken `Issuer`s and `Certificate`s are no longer needlessly generated when `tls..issuerRef` is provided. -* Fixed the security contexts' of `set-datadir-ownership` and `set-tiered-storage-cache-dir-ownership`. -* The `schema_registry_client` and `pandaproxy_client` stanzas of `redpanda.yaml` - now respect `listeners.kafka.tls.trustStore`, when provided. - See also [helm-chart 1573 issue](https://github.com/redpanda-data/helm-charts/issues/1573). - - -## [v25.1.1-beta2](https://github.com/redpanda-data/redpanda-operator/releases/tag/charts%2Fredpanda%2Fv25.1.1-beta2) - 2025-05-02 -### Added -* Added a chart wide `podTemplate` field which may be used to control Pod attributes chart wide. - - This field has a lower precedence than `statefulset.podTemplate` and - `post_install_job.podTemplate` but will still be merged with them. -* `podTemplate`, `statefulset.podTemplate`, and `post_install_job.podTemplate` may now contain template expressions **with in string fields** - - To compensate for some of the functionality that was lost with the removal of - fields like `extraVolumes`, we've upgraded `podTemplate` fields to support - templating. Rather than allowing full control over a structured value, we've - reduced the scope to only string fields. This is significantly more - maintainable and less error prone. - - As an example, the below snippet will apply the release name as an annotation - to all Pods created by the chart. - - ```yaml - podTemplate: - annotations: - "keys-cannot-be-templated": '{{ .Release.Name }}' # But values can! - ``` - - See `values.yaml` for additional examples. -### Changed -* Promoted the config-watcher sidecar into a real go binary that handles user management and simplifies cluster health checks so they no longer fail when the sole issue is that other nodes in the cluster are unavailable. Additionally the new sidecar subsumes the behavior of the `statefulset.sideCars.controllers` stanza which should now be specified via their own `enabled` flags. -* `clusterDomain` now defaults to `cluster.local.` (A trialing `.` has been added) and the chart no longer adds trailing `.`'s to internal domains. - - For users not experiencing issues with trailing `.`'s this change has no - effect. For users that have had issues with trailing `.`'s, it's now possible - to opt-out of this behavior by explicitly setting `clusterDomain` to `cluster.local`. - - For users that override `clusterDomain`, copied a previous releases - values.yaml, or use the `--reuse-values` flag, trailing `.`'s will be tripped - from domains upon updating. This behavior may be opted into by appending a - `.` to `clusterDomain` prior to upgrading. -* Bump AppVersion to v24.3.6 Redpanda release -* Bump Redpanda operator side car container tag to `v2.3.7-24.3.6`. -* `values.schema.json` is now "closed" (`additionalProperties: false`) - - Any unexpected values will result in a validation error,previously they would - have been ignored. -* Update Console depedency to latest version with breaking change. Please visit Console change-log. -* The name of the container running redpanda is now always set to `redpanda`. -* bumped `appVersion` to [v25.1.1](https://github.com/redpanda-data/redpanda/releases/tag/v25.1.1). -* `serviceAccount.create` now defaults to `true`. - - The previous behavior resulted in using the `default` service account and - extending it with all bindings generated from the chart. Such behavior is - unlikely to be desired. -* `rpk debug bundle --namespace $NAMESPACE` now works by default. - - The chart now creates a set of `Roles` and `RoleBindings` that satisfy the - requirements of running `rpk debug bundle` from any redpanda Pod. These - permissions may be disabled by specifying `rbac.rpkDebugBundle=false`. - - Additionally, the redpanda container now always has a Kubernetes - ServiceAccount token mounted to it to ensure `rpk debug bundle` can be - executed successfully. -### Deprecated -* `.statefulset.sidecars.controllers.image` is now deprecated. It may be specified but will not be respected. Use `.statefulset.sidecars.image` instead. -### Removed -* Connectors sub-chart integration. - - The connectors chart may still be deployed separately, though it is not - officially support. If possible, it is recommended to migrate to redpanda - connect. -* Removed the deprecated fields `license_key` and `license_secret_ref` in favor -of `enterprise.license` and `enterprise.licenseSecretRef`, respectively. -* `statefulset.securityContext`, `statefulset.sideCars.configWatcher.securityContext` have been removed. - - These fields previously served as both PodSecurityContext and SecurityContext - across the entire chart which led to confusing semantics that couldn't be - fixed without breaking backwards compatiblity. - - The top level `podTemplate` field may be used to control - PodSecurityContexts and SecurityContexts across the chart. -* Fields that would be better served through `podTemplate` have been removed in favor of using `podTemplate`. - - Removed fields: - - `nodeSelector` -> `podTemplate.spec.nodeSelector` - - `affinity` -> `podTemplate.spec.affinity` - - `tolerations` -> `podTemplate.spec.tolerations` - - `imagePullSecrets` -> `podTemplate.spec.imagePullSecrets` - - `statefulset.annotations` -> `statefulset.podTemplate.annotations` - - `statefulset.startupProbe` -> `statefulset.podTemplate.spec.containers[0].startupProbe` - - `statefulset.livenessProbe` -> `statefulset.podTemplate.spec.containers[0].livenessProbe` - - `statefulset.readinessProbe` -> `statefulset.podTemplate.spec.containers[1].readinessProbe` - - `statefulset.podAffinity` -> `statefulset.podTemplate.spec.affinity.podAffinity` - - `statefulset.nodeSelector` -> `statefulset.podTemplate.spec.nodeSelector` - - `statefulset.priorityClassName` -> `statefulset.podTemplate.spec.priorityClassName` - - `statefulset.tolerations` -> `statefulset.podTemplate.spec.tolerations` - - `statefulset.topologySpreadConstraints` -> `statefulset.podTemplate.spec.topologySpreadConstraints` - - `statefulset.terminationGracePeriodSeconds` -> `statefulset.podTemplate.spec.terminationGracePeriodSeconds` - - `statefulset.extraVolumes` -> `statefulset.podTemplate.spec.volumes` - - `statefulset.extraVolumesMounts` -> `statefulset.podTemplate.spec.containers[*].volumeMounts` - - `statefulset.initContainers.*.extraVolumesMounts` -> `statefulset.podTemplate.spec.initContainers[*].volumeMounts` - - `statefulset.initContainers.*.resources` -> `statefulset.podTemplate.spec.initContainers[*].resources` - - `statefulset.initContainers.extraInitContainers` -> `statefulset.podTemplate.spec.initContainers` - - `statefulset.sidecars.configWatcher.extraVolumeMounts` -> `statefulset.podTemplate.spec.containers[*].volumeMounts` - - `statefulset.sidecars.configWatcher.resources` -> `statefulset.podTemplate.spec.containers[*].resources` - - `statefulset.sidecars.configWatcher.securityContext` -> `statefulset.podTemplate.spec.containers[*].securityContext` - - `statefulset.sidecars.controllers.resources` -> `statefulset.podTemplate.spec.containers[*].resources` - - `statefulset.sidecars.controllers.securityContext` -> `statefulset.podTemplate.spec.containers[*].securityContext` - - `statefulset.sidecars.extraVolumeMounts` -> `statefulset.podTemplate.spec.containers[*].volumeMounts` - - `statefulset.sidecars.resources` -> `statefulset.podTemplate.spec.containers[*].resources` - - `statefulset.sidecars.securityContext` -> `statefulset.podTemplate.spec.containers[*].securityContext` -* Removed regex validation of all image tags. -### Fixed -* Reverse order of applying resources to first create ClusterRole and then ClusterRoleBinding. - When Redpanda custom resource has enabled RBAC the reconciliation was blocked due - ClusterRoleBinding referencing not yet created ClusterRole. - -* Fixed an issue where not explicitly specifying a SASL auth mechanism when SASL is enabled caused Console to fail to start up. -* Prevent broker nodes from restarting when solely the cluster replica amount changes -* Fixed rack awareness by mounting a service account token to the initcontainer when rack awareness is enabled. -* Broken `Issuer`s and `Certificate`s are no longer needlessly generated when `tls..issuerRef` is provided. -* Fixed the security contexts' of `set-datadir-ownership` and `set-tiered-storage-cache-dir-ownership`. -* The `schema_registry_client` and `pandaproxy_client` stanzas of `redpanda.yaml` - now respect `listeners.kafka.tls.trustStore`, when provided. - See also [helm-chart 1573 issue](https://github.com/redpanda-data/helm-charts/issues/1573). - - -## v25.1.1-beta1 - 2025-04-08 -### Added -* Added a chart wide `podTemplate` field which may be used to control Pod attributes chart wide. - - This field has a lower precedence than `statefulset.podTemplate` and - `post_install_job.podTemplate` but will still be merged with them. -* `podTemplate`, `statefulset.podTemplate`, and `post_install_job.podTemplate` may now contain template expressions **with in string fields** - - To compensate for some of the functionality that was lost with the removal of - fields like `extraVolumes`, we've upgraded `podTemplate` fields to support - templating. Rather than allowing full control over a structured value, we've - reduced the scope to only string fields. This is significantly more - maintainable and less error prone. - - As an example, the below snippet will apply the release name as an annotation - to all Pods created by the chart. - - ```yaml - podTemplate: - annotations: - "keys-cannot-be-templated": '{{ .Release.Name }}' # But values can! - ``` - - See `values.yaml` for additional examples. -### Changed -* Promoted the config-watcher sidecar into a real go binary that handles user management and simplifies cluster health checks so they no longer fail when the sole issue is that other nodes in the cluster are unavailable. Additionally the new sidecar subsumes the behavior of the `statefulset.sideCars.controllers` stanza which should now be specified via their own `enabled` flags. -* `clusterDomain` now defaults to `cluster.local.` (A trialing `.` has been added) and the chart no longer adds trailing `.`'s to internal domains. - - For users not experiencing issues with trailing `.`'s this change has no - effect. For users that have had issues with trailing `.`'s, it's now possible - to opt-out of this behavior by explicitly setting `clusterDomain` to `cluster.local`. - - For users that override `clusterDomain`, copied a previous releases - values.yaml, or use the `--reuse-values` flag, trailing `.`'s will be tripped - from domains upon updating. This behavior may be opted into by appending a - `.` to `clusterDomain` prior to upgrading. -* Bump AppVersion to v24.3.6 Redpanda release -* Bump Redpanda operator side car container tag to `v2.3.7-24.3.6`. -* `values.schema.json` is now "closed" (`additionalProperties: false`) - - Any unexpected values will result in a validation error,previously they would - have been ignored. -* Update Console depedency to latest version with breaking change. Please visit Console change-log. -* The name of the container running redpanda is now always set to `redpanda`. -* bumped `appVersion` to [v25.1.1](https://github.com/redpanda-data/redpanda/releases/tag/v25.1.1). -### Removed -* Connectors sub-chart integration. - - The connectors chart may still be deployed separately, though it is not - officially support. If possible, it is recommended to migrate to redpanda - connect. -* Removed the deprecated fields `license_key` and `license_secret_ref` in favor -of `enterprise.license` and `enterprise.licenseSecretRef`, respectively. -* `statefulset.securityContext`, `statefulset.sideCars.configWatcher.securityContext` have been removed. - - These fields previously served as both PodSecurityContext and SecurityContext - across the entire chart which led to confusing semantics that couldn't be - fixed without breaking backwards compatiblity. - - The top level `podTemplate` field may be used to control - PodSecurityContexts and SecurityContexts across the chart. -* Fields that would be better served through `podTemplate` have been removed in favor of using `podTemplate`. - - Removed fields: - - `nodeSelector` -> `podTemplate.spec.nodeSelector` - - `affinity` -> `podTemplate.spec.affinity` - - `tolerations` -> `podTemplate.spec.tolerations` - - `imagePullSecrets` -> `podTemplate.spec.imagePullSecrets` - - `statefulset.annotations` -> `statefulset.podTemplate.annotations` - - `statefulset.startupProbe` -> `statefulset.podTemplate.spec.containers[0].startupProbe` - - `statefulset.livenessProbe` -> `statefulset.podTemplate.spec.containers[0].livenessProbe` - - `statefulset.readinessProbe` -> `statefulset.podTemplate.spec.containers[1].readinessProbe` - - `statefulset.podAffinity` -> `statefulset.podTemplate.spec.affinity.podAffinity` - - `statefulset.nodeSelector` -> `statefulset.podTemplate.spec.nodeSelector` - - `statefulset.priorityClassName` -> `statefulset.podTemplate.spec.priorityClassName` - - `statefulset.tolerations` -> `statefulset.podTemplate.spec.tolerations` - - `statefulset.topologySpreadConstraints` -> `statefulset.podTemplate.spec.topologySpreadConstraints` - - `statefulset.terminationGracePeriodSeconds` -> `statefulset.podTemplate.spec.terminationGracePeriodSeconds` - - `statefulset.extraVolumes` -> `statefulset.podTemplate.spec.volumes` - - `statefulset.extraVolumesMounts` -> `statefulset.podTemplate.spec.containers[*].volumeMounts` - - `statefulset.initContainers.*.extraVolumesMounts` -> `statefulset.podTemplate.spec.initContainers[*].volumeMounts` - - `statefulset.initContainers.*.resources` -> `statefulset.podTemplate.spec.initContainers[*].resources` - - `statefulset.initContainers.extraInitContainers` -> `statefulset.podTemplate.spec.initContainers` - - `statefulset.sidecars.configWatcher.extraVolumeMounts` -> `statefulset.podTemplate.spec.containers[*].volumeMounts` - - `statefulset.sidecars.configWatcher.resources` -> `statefulset.podTemplate.spec.containers[*].resources` - - `statefulset.sidecars.configWatcher.securityContext` -> `statefulset.podTemplate.spec.containers[*].securityContext` - - `statefulset.sidecars.controllers.resources` -> `statefulset.podTemplate.spec.containers[*].resources` - - `statefulset.sidecars.controllers.securityContext` -> `statefulset.podTemplate.spec.containers[*].securityContext` - - `statefulset.sidecars.extraVolumeMounts` -> `statefulset.podTemplate.spec.containers[*].volumeMounts` - - `statefulset.sidecars.resources` -> `statefulset.podTemplate.spec.containers[*].resources` - - `statefulset.sidecars.securityContext` -> `statefulset.podTemplate.spec.containers[*].securityContext` -### Fixed -* Reverse order of applying resources to first create ClusterRole and then ClusterRoleBinding. - When Redpanda custom resource has enabled RBAC the reconciliation was blocked due - ClusterRoleBinding referencing not yet created ClusterRole. - -* Fixed an issue where not explicitly specifying a SASL auth mechanism when SASL is enabled caused Console to fail to start up. -* Prevent broker nodes from restarting when solely the cluster replica amount changes - -## v5.9.20 - 2025-02-06 -### Changed -* Attempted lookups of the bootstrap user's existing password are no longer gated by `.Release.IsUpgrade`. - - This is unlikely to affect existing workflows as `Lookup` is likely stubbed - out in situations where `.Release.IsUpgrade` is incorrectly set. i.e. `helm - template`. - - See also [#1596](https://github.com/redpanda-data/helm-charts/issues/1596). - -## v5.9.19 - 2025-01-14 -### Added -* Added `resources.limits` and `resources.requests` as an alternative method of managing the redpanda container's resources. - - When both `resources.limits` and `resources.requests` are specified, the - redpanda container's `resources` will be set to the provided values and all - other keys of `resources` will be ignored. Instead, all other values will be - inferred from the limits and requests. - - This allows fine grain control of resources. i.e. It is now possible to set - CPU requests without setting limits: - - ```yaml - resources: - limits: {} # Specified but no cpu or memory values provided - requests: - cpu: 5 # Only CPU requests - ``` - - For more details see [redpanda's values.yaml](./charts/redpanda/values.yaml). -### Changed -* `statefulset.podTemplate` no longer specifies a `"redpanda"` container. This - was unintentionally generating empty containers when `nameOverride` was used. -* Bump Redpanda operator side car container tag to `v2.3.6-24.3.3` -### Fixes -* out of range slice error when Redpanda custom resource has set `useFlux` to - `false` and `Fullname` function would return string that has less - than 49 characters. It could be caused with usage of `nameOverwrite` input - value. - -### [5.9.18](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.18) - 2024-12-20 -#### Added -#### Changed -#### Fixed -* Fixed an issue with the helm chart when SASL and Connectors were enabled that caused a volume to be mounted incorrectly. -#### Removed - -### [5.9.17](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.17) - 2024-12-17 -#### Added -#### Changed -* Default for tiered storage cache to `none` which will defer tiered storage cache path to Redpanda process. -#### Fixed -#### Removed - -### [5.9.16](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.16) - 2024-12-09 -#### Added -#### Changed -* Update sidecar container redpanda-operator container tag -#### Fixed -#### Removed - -### [5.9.15](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.15) - 2024-11-29 -#### Added -#### Changed -#### Fixed -* ability to overwrite annotation and labels in Job metadata -#### Removed -* non-existent post-upgrade-job values of the non-existent resource (removed in 5.9.6) - -### [5.9.14](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.14) - 2024-11-28 -#### Added -#### Changed -* note to indicate Core count decreasing will be possible starting from 24.3 Redpanda version -#### Fixed -* Fixed the description of `-memory` and `--reserve-memory` in docs. -#### Removed - -### [5.9.13](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.13) - 2024-11-27 -#### Added -* overriding any PodSpec fields from `PodTemplate` -#### Changed -* Bump Redpanda operator side car container tag to v2.3.1-24.3.1 -#### Fixed -#### Removed - -### [5.9.12](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.12) - 2024-11-22 -#### Added -#### Changed -* Chart version to update operator side-car container tag -#### Fixed -#### Removed - -### [5.9.11](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.11) - 2024-11-21 -#### Added -* Ability to generate Redpanda with Connector resources from go code -#### Changed -* Include all Connectors chart values in Redpanda chart values -#### Fixed -#### Removed - -### [5.9.10](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.10) - 2024-11-14 -#### Added -#### Changed -#### Fixed -* All occurrence of External Domain execution via tpl function -* Calculating Service typed LoadBalancer annotation based on external addresses (even single one) -* Fix connecting to the schema registry via rpk on nodes for versions of rpk that support a node-level rpk stanza. -#### Removed - -### [5.9.9](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.9) - 2024-10-24 -#### Added -* Strategic merge of Pod volumes and Container volumeMounts -#### Changed -* By default auto mount is disabled in ServiceAccount and Statefulset PodSpec -* Mount volume similar to auto mount functionality for ServiceAccount token when sidecar controllers are enabled -#### Fixed -* Passing console extra volume and volume mount in Redpanda chart -* implements `time.ParseDuration` in gotohelm (with limitations) -* updates the transpilation of `MustParseDuration` to properly re-serialize the provided duration -#### Removed - -### [5.9.8](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.8) - 2024-10-23 -#### Added -#### Changed -* Bump Redpanda app version -#### Fixed -* Increased the memory limits of `bootstrap-yaml-envsubst` to prevent hangs on aarch64 [#1564](https://github.com/redpanda-data/helm-charts/issues/1564). -#### Removed - -### [5.9.7](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.7) - 2024-10-14 -#### Added -#### Changed -* Bump Redpanda app version -#### Fixed -#### Removed - -### [5.9.6](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.6) - 2024-10-09 -#### Added -* Added the ability to override the name of the bootstrap user created when SASL authentication is enabled. [#1547](https://github.com/redpanda-data/helm-charts/pull/1547) -#### Changed -* The minimum Kubernetes version has been bumped to `1.25.0` -#### Fixed -* Chart render failures in tooling compiled with go < 1.19 (e.g. helm 3.10.x) have been fixed. -#### Removed -* `post_upgrade_job.*`, and the post-upgrade job itself, has been removed. All - it's functionality has been consolidated into the `post_install_job`, which - actually runs on both post-install and post-upgrade. - - The consolidated job now runs the redpanda-operator image, which may be - controlled the same way as the additional controllers: - `statefulset.controllers.{image,repository}`. - -### [5.9.5](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.5) - 2024-09-26 -#### Added -#### Changed -* Bump Redpanda container tag/application version [#1543](https://github.com/redpanda-data/helm-charts/pull/1543) -#### Fixed -* Connectors deployment [#1543](https://github.com/redpanda-data/helm-charts/pull/1543) -#### Removed - -### [5.9.4](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.4) - 2024-09-17 -#### Added -#### Changed -* Cluster configurations are no longer include in `redpanda.yaml` or the - Redpanda Statefulset's configuration hash. - - This change makes it possible to update cluster configurations without - initiating a rolling restart of the entire cluster. - - As has always been the case, users should consult `rpk cluster config status` - to determine if a rolling restart needs to be manually performed due to - cluster configuration changes. - - Cases requiring manual rolling restarts may increase as fewer chart - operations will initiate rolling restart of the cluster. -#### Fixed -* Fix initialization of configurations using RestToConfig when the passed in rest.Config contain on-disk value files. -#### Removed -* All zero, empty, or default cluster configurations have been removed from - `values.yaml` in favor of letting redpanda determine what the defaults will - be. - - Documentation of cluster configurations has also been removed in favor of - linking to Redpanda's docs. - -### [5.9.3](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.3) - 2024-09-11 -#### Added -* Add basic bootstrap user support (#1513) -#### Changed -#### Fixed -* When specified, `truststore_file` is no longer propagated to client configurations. -* If provided, `config.cluster.default_topic_replications` is now respected regardless of the value of `statefulset.replicas`. -#### Removed - -### [5.9.1](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.1) - 2024-8-19 -#### Added -#### Changed -#### Fixed -* The `truststores` projected volume no longer duplicates entries when the same - trust store is specified across multiple TLS configurations. -#### Removed - -### [5.9.0](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.9.0) - 2024-08-09 -#### Added -* `post_install_job.podTemplate` and `post_upgrade_job.podTemplate` have been - added, which allow overriding various aspects of the corresponding - `corev1.PodTemplate`. Notably, this field may be used to set labels and - annotations on the Pod produced by the Job which was not previously possible. -* `statefulset.podTemplate` has benefited from the above additions as well. - `statefulset.podTemplate.spec.securityContext` and - `statefulset.podTemplate.spec.containers[*].securityContext` may be used to - set/override the pod and container security contexts respectively. -* `appProtocol` added to the `listeners.admin` configuration -#### Changed -* The container name of the post-upgrade job is now statically set to - `post-upgrade` to facilitate strategic merge patching. -* The container name of the post-install job is now statically set to - `post-install` to facilitate strategic merge patching. -* `statefulset.securityContext`, `statefulset.podSecurityContext`, - `post_upgrade_job.securityContext`, and `post_install_job.securityContext` - have all been deprecated due to historically incorrect and confusing - behavior. The desire to preserve backwards compatibility and not suddenly - change sensitive fields has left us unable to cleanly correct said issues. - `{statefulset,post_upgrade_job,post_install_job}.podTemplate` may be used to - override either the Pod or Container security context. -#### Fixed -#### Removed - -### [5.8.15](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.8.15) - 2024-08-08 -#### Added -#### Changed -* Bump Redpanda version due to a bug in Redpanda -#### Fixed -* Fix mechanism check in superuser file creation -#### Removed - -### [5.8.14](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.8.14) - 2024-08-07 -#### Added -* unset `status` and `creationTimestamp` before rendering resource -#### Changed -* Convert connectors to go -* Bump redpanda, connectors, operator and console helm chart application version -#### Fixed -* Fix Redpanda node configuration generation, so that rpk can parse it -* Fix volume mounts in mTLS setup -* Correct boolean coalescing -#### Removed - -### [5.8.13](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.8.13) - 2024-07-25 -#### Added -#### Changed -* Updated `appVersion` to `v24.1.11` -#### Fixed -* Fixed a regression where `post_upgrade_job` would fail if TLS on the admin - listener was disabled but had `cert` set to an invalid cert (e.g. `""`) -* Fixed mTLS configurations between Redpanda and Console [#1402](https://github.com/redpanda-data/helm-charts/pull/1402) -* Fixed a typo in `statefulset.securityContext.allowPriviledgeEscalation`. Both the correct - and typoed name will be respected with the correct spelling taking - precedence. [#1413](https://github.com/redpanda-data/helm-charts/issues/1413) -#### Removed -* Validation of `issuerRef` has been removed to permit external Issuers. - [#1432](https://github.com/redpanda-data/helm-charts/issues/1432) - -### [5.8.12](https://github.com/redpanda-data/helm-charts/releases/tag/redpanda-5.8.12) - 2024-07-10 - -#### Added - -#### Changed -* `image.repository` longer needs to be the default value of - `"docker.redpanda.com/redpandadata/redpanda"` to respect version checks of - `image.tag` - ([#1334](https://github.com/redpanda-data/helm-charts/issues/1334)). -* `post_upgrade_job.extraEnv` and `post_upgrade_job.extraEnvFrom` no longer accept string inputs. - - Previously, they accepted either strings or structured fields. As the types - of this chart are reflected in the operator's CRD, we are bound by the - constraints of Kubernetes' CRDs, which do not support fields with multiple - types. We also noticed that the [CRD requires these fields to be structured - types](https://github.com/redpanda-data/redpanda-operator/blob/9fa7a7848a22ece215be36dd17f0e4c2ba0002f7/src/go/k8s/api/redpanda/v1alpha2/redpanda_clusterspec_types.go#L597-L600) - rather than strings. Too minimize the divergences between the two, we've - opted to drop support for string inputs here but preserve them elsewhere. - - Updating these fields, if they are strings, is typically a case of needing - to remove `|-`'s from one's values file. - - Before: - ```yaml - post_upgrade_job: - extraEnv: |- - - name: SPECIAL_LEVEL_KEY - valueFrom: - configMapKeyRef: - name: special-config - key: special.how - ``` - - After: - ```yaml - post_upgrade_job: - extraEnv: - - name: SPECIAL_LEVEL_KEY - valueFrom: - configMapKeyRef: - name: special-config - key: special.how - ``` - - If you were using a templated value and would like to see it added back, - please [file us an - issue](https://github.com/redpanda-data/helm-charts/issues/new/choose) and - tell us about your use case! - -#### Fixed -* Numeric node/broker configurations are now properly transcoded as numerics. - -#### Removed diff --git a/charts/redpanda/Chart.yaml b/charts/redpanda/Chart.yaml deleted file mode 100644 index 8e60990bb3..0000000000 --- a/charts/redpanda/Chart.yaml +++ /dev/null @@ -1,58 +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. - -apiVersion: v2 -name: redpanda -description: Redpanda is the real-time engine for modern apps. -maintainers: - - name: redpanda-data - url: https://github.com/orgs/redpanda-data/people -type: application -# The chart version and the app version are not the same and will not track -# together. The chart version is a semver representation of changes to this -# chart. -version: 25.1.1-beta3 - -# The app version is the default version of Redpanda to install. -# ** NOTE for maintainers: please ensure the artifacthub image annotation is updated before merging -appVersion: v25.1.2 - -# kubeVersion must be suffixed with "-0" to be able to match cloud providers -# kubernetes versions like "v1.23.8-gke.1900". Their suffix is interpreted as a -# pre-release. Our "-0" allows pre-releases to be matched. -kubeVersion: ">= 1.25.0-0" - -dependencies: - - name: console - condition: console.enabled - version: ">=3.1.0-0" - repository: https://charts.redpanda.com - alias: console - -icon: https://go.redpanda.com/hubfs/Redpandas/skate-stand-panda.svg -sources: - - https://github.com/redpanda-data/redpanda-operator/tree/main/charts/redpanda -annotations: - artifacthub.io/license: Apache-2.0 - artifacthub.io/links: | - - name: Documentation - url: https://docs.redpanda.com - - name: "Helm (>= 3.10.0)" - url: https://helm.sh/docs/intro/install/ - artifacthub.io/images: | - - name: redpanda - image: docker.redpanda.com/redpandadata/redpanda:v25.1.1 - - name: busybox - image: busybox:latest diff --git a/charts/redpanda/LICENSE b/charts/redpanda/LICENSE deleted file mode 100644 index 261eeb9e9f..0000000000 --- a/charts/redpanda/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. diff --git a/charts/redpanda/README.md b/charts/redpanda/README.md deleted file mode 100644 index 3497700a98..0000000000 --- a/charts/redpanda/README.md +++ /dev/null @@ -1,1078 +0,0 @@ -# Redpanda Helm Chart Specification ---- -description: Find the default values and descriptions of settings in the Redpanda Helm chart. ---- - -![Version: 25.1.1-beta3](https://img.shields.io/badge/Version-25.1.1--beta3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v25.1.2](https://img.shields.io/badge/AppVersion-v25.1.2-informational?style=flat-square) - -This page describes the official Redpanda Helm Chart. In particular, this page describes the contents of the chart’s [`values.yaml` file](https://github.com/redpanda-data/helm-charts/blob/main/charts/redpanda/values.yaml). Each of the settings is listed and described on this page, along with any default values. - -For instructions on how to install and use the chart, including how to override and customize the chart’s values, refer to the [deployment documentation](https://docs.redpanda.com/docs/deploy/deployment-option/self-hosted/kubernetes/kubernetes-deploy/). - ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2) - -## Source Code - -* - -## Requirements - -Kubernetes: `>= 1.25.0-0` - -| Repository | Name | Version | -|------------|------|---------| -| https://charts.redpanda.com | console(console) | >=3.1.0-0 | - -## Settings - -### [auditLogging](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=auditLogging) - -Audit logging for a redpanda cluster, must have enabled sasl and have one kafka listener supporting sasl authentication for audit logging to work. Note this feature is only available for redpanda versions >= v23.3.0. - -**Default:** - -``` -{"clientMaxBufferSize":16777216,"enabled":false,"enabledEventTypes":null,"excludedPrincipals":null,"excludedTopics":null,"listener":"internal","partitions":12,"queueDrainIntervalMs":500,"queueMaxBufferSizePerShard":1048576,"replicationFactor":null} -``` - -### [auditLogging.clientMaxBufferSize](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=auditLogging.clientMaxBufferSize) - -Defines the number of bytes (in bytes) allocated by the internal audit client for audit messages. - -**Default:** `16777216` - -### [auditLogging.enabled](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=auditLogging.enabled) - -Enable or disable audit logging, for production clusters we suggest you enable, however, this will only work if you also enable sasl and a listener with sasl enabled. - -**Default:** `false` - -### [auditLogging.enabledEventTypes](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=auditLogging.enabledEventTypes) - -Event types that should be captured by audit logs, default is [`admin`, `authenticate`, `management`]. - -**Default:** `nil` - -### [auditLogging.excludedPrincipals](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=auditLogging.excludedPrincipals) - -List of principals to exclude from auditing, default is null. - -**Default:** `nil` - -### [auditLogging.excludedTopics](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=auditLogging.excludedTopics) - -List of topics to exclude from auditing, default is null. - -**Default:** `nil` - -### [auditLogging.listener](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=auditLogging.listener) - -Kafka listener name, note that it must have `authenticationMethod` set to `sasl`. For external listeners, use the external listener name, such as `default`. - -**Default:** `"internal"` - -### [auditLogging.partitions](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=auditLogging.partitions) - -Integer value defining the number of partitions used by a newly created audit topic. - -**Default:** `12` - -### [auditLogging.queueDrainIntervalMs](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=auditLogging.queueDrainIntervalMs) - -In ms, frequency in which per shard audit logs are batched to client for write to audit log. - -**Default:** `500` - -### [auditLogging.queueMaxBufferSizePerShard](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=auditLogging.queueMaxBufferSizePerShard) - -Defines the maximum amount of memory used (in bytes) by the audit buffer in each shard. - -**Default:** `1048576` - -### [auditLogging.replicationFactor](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=auditLogging.replicationFactor) - -Defines the replication factor for a newly created audit log topic. This configuration applies only to the audit log topic and may be different from the cluster or other topic configurations. This cannot be altered for existing audit log topics. Setting this value is optional. If a value is not provided, Redpanda will use the `internal_topic_replication_factor cluster` config value. Default is `null` - -**Default:** `nil` - -### [auth](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=auth) - -Authentication settings. For details, see the [SASL documentation](https://docs.redpanda.com/docs/manage/kubernetes/security/sasl-kubernetes/). - -**Default:** - -``` -{"sasl":{"bootstrapUser":{"mechanism":"SCRAM-SHA-256"},"enabled":false,"mechanism":"SCRAM-SHA-512","secretRef":"redpanda-users","users":[]}} -``` - -### [auth.sasl.bootstrapUser](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=auth.sasl.bootstrapUser) - -Details about how to create the bootstrap user for the cluster. The secretKeyRef is optionally specified. If it is specified, the chart will use a password written to that secret when creating the "kubernetes-controller" bootstrap user. If it is unspecified, then the secret will be generated and stored in the secret "releasename"-bootstrap-user, with the key "password". - -**Default:** - -``` -{"mechanism":"SCRAM-SHA-256"} -``` - -### [auth.sasl.bootstrapUser.mechanism](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=auth.sasl.bootstrapUser.mechanism) - -The authentication mechanism to use for the bootstrap user. Options are `SCRAM-SHA-256` and `SCRAM-SHA-512`. - -**Default:** `"SCRAM-SHA-256"` - -### [auth.sasl.enabled](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=auth.sasl.enabled) - -Enable SASL authentication. If you enable SASL authentication, you must provide a Secret in `auth.sasl.secretRef`. - -**Default:** `false` - -### [auth.sasl.mechanism](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=auth.sasl.mechanism) - -The authentication mechanism to use for the superuser. Options are `SCRAM-SHA-256` and `SCRAM-SHA-512`. - -**Default:** `"SCRAM-SHA-512"` - -### [auth.sasl.secretRef](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=auth.sasl.secretRef) - -A Secret that contains your superuser credentials. For details, see the [SASL documentation](https://docs.redpanda.com/docs/manage/kubernetes/security/sasl-kubernetes/#use-secrets). - -**Default:** `"redpanda-users"` - -### [auth.sasl.users](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=auth.sasl.users) - -Optional list of superusers. These superusers will be created in the Secret whose name is defined in `auth.sasl.secretRef`. If this list is empty, the Secret in `auth.sasl.secretRef` must already exist in the cluster before you deploy the chart. Uncomment the sample list if you wish to try adding sample sasl users or override to use your own. - -**Default:** `[]` - -### [clusterDomain](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=clusterDomain) - -Default Kubernetes cluster domain. - -**Default:** `"cluster.local."` - -### [commonLabels](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=commonLabels) - -Additional labels to add to all Kubernetes objects. For example, `my.k8s.service: redpanda`. - -**Default:** `{}` - -### [config](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=config) - -This section contains various settings supported by Redpanda that may not work correctly in a Kubernetes cluster. Changing these settings comes with some risk. Use these settings to customize various Redpanda configurations that are not covered in other sections. These values have no impact on the configuration or behavior of the Kubernetes objects deployed by Helm, and therefore should not be modified for the purpose of configuring those objects. Instead, these settings get passed directly to the Redpanda binary at startup. For descriptions of these properties, see the [configuration documentation](https://docs.redpanda.com/docs/cluster-administration/configuration/). - -**Default:** - -``` -{"cluster":{},"node":{"crash_loop_limit":5},"pandaproxy_client":{},"rpk":{},"schema_registry_client":{},"tunable":{"compacted_log_segment_size":67108864,"kafka_connection_rate_limit":1000,"log_segment_size_max":268435456,"log_segment_size_min":16777216,"max_compacted_log_segment_size":536870912}} -``` - -### [config.cluster](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=config.cluster) - -[Cluster Configuration Properties](https://docs.redpanda.com/current/reference/properties/cluster-properties/) - -**Default:** `{}` - -### [config.node](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=config.node) - -[Broker (node) Configuration Properties](https://docs.redpanda.com/docs/reference/broker-properties/). - -**Default:** `{"crash_loop_limit":5}` - -### [config.node.crash_loop_limit](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=config.node.crash_loop_limit) - -Crash loop limit A limit on the number of consecutive times a broker can crash within one hour before its crash-tracking logic is reset. This limit prevents a broker from getting stuck in an infinite cycle of crashes. User can disable this crash loop limit check by the following action: * One hour elapses since the last crash * The node configuration file, redpanda.yaml, is updated via config.cluster or config.node or config.tunable objects * The startup_log file in the node’s data_directory is manually deleted Default to 5 REF: https://docs.redpanda.com/current/reference/broker-properties/#crash_loop_limit - -**Default:** `5` - -### [config.tunable](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=config.tunable) - -Tunable cluster properties. Deprecated: all settings here may be specified via `config.cluster`. - -**Default:** - -``` -{"compacted_log_segment_size":67108864,"kafka_connection_rate_limit":1000,"log_segment_size_max":268435456,"log_segment_size_min":16777216,"max_compacted_log_segment_size":536870912} -``` - -### [config.tunable.compacted_log_segment_size](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=config.tunable.compacted_log_segment_size) - -See the [property reference documentation](https://docs.redpanda.com/docs/reference/cluster-properties/#compacted_log_segment_size). - -**Default:** `67108864` - -### [config.tunable.kafka_connection_rate_limit](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=config.tunable.kafka_connection_rate_limit) - -See the [property reference documentation](https://docs.redpanda.com/docs/reference/cluster-properties/#kafka_connection_rate_limit). - -**Default:** `1000` - -### [config.tunable.log_segment_size_max](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=config.tunable.log_segment_size_max) - -See the [property reference documentation](https://docs.redpanda.com/docs/reference/cluster-properties/#log_segment_size_max). - -**Default:** `268435456` - -### [config.tunable.log_segment_size_min](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=config.tunable.log_segment_size_min) - -See the [property reference documentation](https://docs.redpanda.com/docs/reference/cluster-properties/#log_segment_size_min). - -**Default:** `16777216` - -### [config.tunable.max_compacted_log_segment_size](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=config.tunable.max_compacted_log_segment_size) - -See the [property reference documentation](https://docs.redpanda.com/docs/reference/cluster-properties/#max_compacted_log_segment_size). - -**Default:** `536870912` - -### [console](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=console) - -Redpanda Console settings. For a reference of configuration settings, see the [Redpanda Console documentation](https://docs.redpanda.com/docs/reference/console/config/). - -**Default:** - -``` -{"config":{},"configmap":{"create":false},"deployment":{"create":false},"enabled":true,"secret":{"create":false}} -``` - -### [enterprise](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=enterprise) - -Enterprise (optional) For details, see the [License documentation](https://docs.redpanda.com/docs/get-started/licenses/?platform=kubernetes#redpanda-enterprise-edition). - -**Default:** - -``` -{"license":"","licenseSecretRef":null} -``` - -### [enterprise.license](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=enterprise.license) - -license (optional). - -**Default:** `""` - -### [enterprise.licenseSecretRef](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=enterprise.licenseSecretRef) - -Secret name and key where the license key is stored. - -**Default:** `nil` - -### [external](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=external) - -External access settings. For details, see the [Networking and Connectivity documentation](https://docs.redpanda.com/docs/manage/kubernetes/networking/networking-and-connectivity/). - -**Default:** - -``` -{"enabled":true,"service":{"enabled":true},"type":"NodePort"} -``` - -### [external.enabled](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=external.enabled) - -Enable external access for each Service. You can toggle external access for each listener in `listeners..external..enabled`. - -**Default:** `true` - -### [external.service](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=external.service) - -Service allows you to manage the creation of an external kubernetes service object - -**Default:** `{"enabled":true}` - -### [external.service.enabled](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=external.service.enabled) - -Enabled if set to false will not create the external service type You can still set your cluster with external access but not create the supporting service (NodePort/LoadBalander). Set this to false if you rather manage your own service. - -**Default:** `true` - -### [external.type](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=external.type) - -External access type. Only `NodePort` and `LoadBalancer` are supported. If undefined, then advertised listeners will be configured in Redpanda, but the helm chart will not create a Service. You must create a Service manually. Warning: If you use LoadBalancers, you will likely experience higher latency and increased packet loss. NodePort is recommended in cases where latency is a priority. - -**Default:** `"NodePort"` - -### [fullnameOverride](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=fullnameOverride) - -Override `redpanda.fullname` template. - -**Default:** `""` - -### [image](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=image) - -Redpanda Docker image settings. - -**Default:** - -``` -{"repository":"docker.redpanda.com/redpandadata/redpanda","tag":""} -``` - -### [image.repository](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=image.repository) - -Docker repository from which to pull the Redpanda Docker image. - -**Default:** - -``` -"docker.redpanda.com/redpandadata/redpanda" -``` - -### [image.tag](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=image.tag) - -The Redpanda version. See DockerHub for: [All stable versions](https://hub.docker.com/r/redpandadata/redpanda/tags) and [all unstable versions](https://hub.docker.com/r/redpandadata/redpanda-unstable/tags). - -**Default:** `Chart.appVersion`. - -### [listeners](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=listeners) - -Listener settings. Override global settings configured above for individual listeners. For details, see the [listeners documentation](https://docs.redpanda.com/docs/manage/kubernetes/networking/configure-listeners/). - -**Default:** - -``` -{"admin":{"external":{"default":{"advertisedPorts":[31644],"port":9645,"tls":{"cert":"external"}}},"port":9644,"tls":{"cert":"default","requireClientAuth":false}},"http":{"authenticationMethod":null,"enabled":true,"external":{"default":{"advertisedPorts":[30082],"authenticationMethod":null,"port":8083,"tls":{"cert":"external","requireClientAuth":false}}},"port":8082,"tls":{"cert":"default","requireClientAuth":false}},"kafka":{"authenticationMethod":null,"external":{"default":{"advertisedPorts":[31092],"authenticationMethod":null,"port":9094,"tls":{"cert":"external"}}},"port":9093,"tls":{"cert":"default","requireClientAuth":false}},"rpc":{"port":33145,"tls":{"cert":"default","requireClientAuth":false}},"schemaRegistry":{"authenticationMethod":null,"enabled":true,"external":{"default":{"advertisedPorts":[30081],"authenticationMethod":null,"port":8084,"tls":{"cert":"external","requireClientAuth":false}}},"port":8081,"tls":{"cert":"default","requireClientAuth":false}}} -``` - -### [listeners.admin](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=listeners.admin) - -Admin API listener (only one). - -**Default:** - -``` -{"external":{"default":{"advertisedPorts":[31644],"port":9645,"tls":{"cert":"external"}}},"port":9644,"tls":{"cert":"default","requireClientAuth":false}} -``` - -### [listeners.admin.external](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=listeners.admin.external) - -Optional external access settings. - -**Default:** - -``` -{"default":{"advertisedPorts":[31644],"port":9645,"tls":{"cert":"external"}}} -``` - -### [listeners.admin.external.default](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=listeners.admin.external.default) - -Name of the external listener. - -**Default:** - -``` -{"advertisedPorts":[31644],"port":9645,"tls":{"cert":"external"}} -``` - -### [listeners.admin.external.default.tls](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=listeners.admin.external.default.tls) - -The port advertised to this listener's external clients. List one port if you want to use the same port for each broker (would be the case when using NodePort service). Otherwise, list the port you want to use for each broker in order of StatefulSet replicas. If undefined, `listeners.admin.port` is used. - -**Default:** `{"cert":"external"}` - -### [listeners.admin.port](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=listeners.admin.port) - -The port for both internal and external connections to the Admin API. - -**Default:** `9644` - -### [listeners.admin.tls](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=listeners.admin.tls) - -Optional TLS section (required if global TLS is enabled) - -**Default:** - -``` -{"cert":"default","requireClientAuth":false} -``` - -### [listeners.admin.tls.cert](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=listeners.admin.tls.cert) - -Name of the Certificate used for TLS (must match a Certificate name that is registered in tls.certs). - -**Default:** `"default"` - -### [listeners.admin.tls.requireClientAuth](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=listeners.admin.tls.requireClientAuth) - -If true, the truststore file for this listener is included in the ConfigMap. - -**Default:** `false` - -### [listeners.http](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=listeners.http) - -HTTP API listeners (aka PandaProxy). - -**Default:** - -``` -{"authenticationMethod":null,"enabled":true,"external":{"default":{"advertisedPorts":[30082],"authenticationMethod":null,"port":8083,"tls":{"cert":"external","requireClientAuth":false}}},"port":8082,"tls":{"cert":"default","requireClientAuth":false}} -``` - -### [listeners.kafka](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=listeners.kafka) - -Kafka API listeners. - -**Default:** - -``` -{"authenticationMethod":null,"external":{"default":{"advertisedPorts":[31092],"authenticationMethod":null,"port":9094,"tls":{"cert":"external"}}},"port":9093,"tls":{"cert":"default","requireClientAuth":false}} -``` - -### [listeners.kafka.external.default.advertisedPorts](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=listeners.kafka.external.default.advertisedPorts) - -If undefined, `listeners.kafka.external.default.port` is used. - -**Default:** `[31092]` - -### [listeners.kafka.external.default.port](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=listeners.kafka.external.default.port) - -The port used for external client connections. - -**Default:** `9094` - -### [listeners.kafka.port](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=listeners.kafka.port) - -The port for internal client connections. - -**Default:** `9093` - -### [listeners.rpc](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=listeners.rpc) - -RPC listener (this is never externally accessible). - -**Default:** - -``` -{"port":33145,"tls":{"cert":"default","requireClientAuth":false}} -``` - -### [listeners.schemaRegistry](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=listeners.schemaRegistry) - -Schema registry listeners. - -**Default:** - -``` -{"authenticationMethod":null,"enabled":true,"external":{"default":{"advertisedPorts":[30081],"authenticationMethod":null,"port":8084,"tls":{"cert":"external","requireClientAuth":false}}},"port":8081,"tls":{"cert":"default","requireClientAuth":false}} -``` - -### [logging](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=logging) - -Log-level settings. - -**Default:** - -``` -{"logLevel":"info","usageStats":{"enabled":true}} -``` - -### [logging.logLevel](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=logging.logLevel) - -Log level Valid values (from least to most verbose) are: `warn`, `info`, `debug`, and `trace`. - -**Default:** `"info"` - -### [logging.usageStats](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=logging.usageStats) - -Send usage statistics back to Redpanda Data. For details, see the [stats reporting documentation](https://docs.redpanda.com/docs/cluster-administration/monitoring/#stats-reporting). - -**Default:** `{"enabled":true}` - -### [monitoring](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=monitoring) - -Monitoring. This will create a ServiceMonitor that can be used by Prometheus-Operator or VictoriaMetrics-Operator to scrape the metrics. - -**Default:** - -``` -{"enabled":false,"labels":{},"scrapeInterval":"30s"} -``` - -### [nameOverride](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=nameOverride) - -Override `redpanda.name` template. - -**Default:** `""` - -### [podTemplate.annotations](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=podTemplate.annotations) - -Annotations to apply (or overwrite the default) to all Pods of this Chart. - -**Default:** `{}` - -### [podTemplate.labels](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=podTemplate.labels) - -Labels to apply (or overwrite the default) to all Pods of this Chart. - -**Default:** `{}` - -### [podTemplate.spec](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=podTemplate.spec) - -A subset of Kubernetes' PodSpec type that will be merged into the PodSpec of all Pods for this Chart. See [Merge Semantics](#merging-semantics) for details. - -**Default:** - -``` -{"imagePullSecrets":[],"securityContext":{"fsGroup":101,"fsGroupChangePolicy":"OnRootMismatch","runAsUser":101}} -``` - -### [podTemplate.spec.imagePullSecrets](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=podTemplate.spec.imagePullSecrets) - -Pull secrets may be used to provide credentials to image repositories See the [Kubernetes documentation](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/). - -**Default:** `[]` - -### [post_install_job.enabled](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=post_install_job.enabled) - -**Default:** `true` - -### [post_install_job.podTemplate.annotations](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=post_install_job.podTemplate.annotations) - -Annotations to apply (or overwrite the default) to the Pods of this Job. - -**Default:** `{}` - -### [post_install_job.podTemplate.labels](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=post_install_job.podTemplate.labels) - -Labels to apply (or overwrite the default) to the Pods of this Job. - -**Default:** `{}` - -### [post_install_job.podTemplate.spec](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=post_install_job.podTemplate.spec) - -A subset of Kubernetes' PodSpec type that will be merged into the final PodSpec. See [Merge Semantics](#merging-semantics) for details. - -**Default:** - -``` -{"containers":[{"env":[],"name":"post-install","securityContext":{}}],"securityContext":{}} -``` - -### [rackAwareness](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=rackAwareness) - -Rack Awareness settings. For details, see the [Rack Awareness documentation](https://docs.redpanda.com/docs/manage/kubernetes/kubernetes-rack-awareness/). - -**Default:** - -``` -{"enabled":false,"nodeAnnotation":"topology.kubernetes.io/zone"} -``` - -### [rackAwareness.enabled](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=rackAwareness.enabled) - -When running in multiple racks or availability zones, use a Kubernetes Node annotation value as the Redpanda rack value. Enabling this requires running with a service account with "get" Node permissions. To have the Helm chart configure these permissions, set `serviceAccount.create=true` and `rbac.enabled=true`. - -**Default:** `false` - -### [rackAwareness.nodeAnnotation](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=rackAwareness.nodeAnnotation) - -The common well-known annotation to use as the rack ID. Override this only if you use a custom Node annotation. - -**Default:** - -``` -"topology.kubernetes.io/zone" -``` - -### [rbac](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=rbac) - -Role Based Access Control. - -**Default:** - -``` -{"annotations":{},"enabled":true,"rpkDebugBundle":true} -``` - -### [rbac.annotations](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=rbac.annotations) - -Annotations to add to the `rbac` resources. - -**Default:** `{}` - -### [rbac.enabled](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=rbac.enabled) - -Controls whether or not Roles, ClusterRoles, and bindings thereof will be generated. Disabling this very likely result in a non-functional deployment. If you use the Redpanda Operator, you must deploy it with the `--set rbac.createRPKBundleCRs=true` flag to give it the required ClusterRoles. - -**Default:** `true` - -### [rbac.rpkDebugBundle](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=rbac.rpkDebugBundle) - -Controls whether or not a Role and RoleBinding will be generated for the permissions required by `rpk debug bundle`. Disabling will not affect the redpanda deployment itself but a bundle is required to engage with our support. - -**Default:** `true` - -### [resources](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=resources) - -Pod resource management. -This section simplifies resource allocation for the redpanda container by -providing a single location where resources are defined. - -Resources may be specified by either setting `resources.cpu` and -`resources.memory` (the default) or by setting `resources.requests` and -`resources.limits`. - -For details on `resources.cpu` and `resources.memory`, see their respective -documentation below. - -When `resources.limits` and `resources.requests` are set, the redpanda -container's resources will be set to exactly the provided values. This allows -users to granularly control limits and requests to best suit their use case. -For example: `resources.requests.cpu` may be set without setting -`resources.limits.cpu` to avoid the potential of CPU throttling. - -Redpanda's resource related CLI flags will then be calculated as follows: -* `--smp max(1, floor(coalesce(resources.requests.cpu, resources.limits.cpu)))` -* `--memory coalesce(resources.requests.memory, resources.limits.memory) * 90%` -* `--reserve-memory 0` -* `--overprovisioned coalesce(resources.requests.cpu, resources.limits.cpu) < 1000m` - -If neither a request nor a limit is provided for cpu or memory, the -corresponding flag will be omitted. As a result, setting `resources.limits` -and `resources.requests` to `{}` will result in redpanda being run without -`--smp` or `--memory`. (This is not recommended). - -If the computed CLI flags are undesirable, they may be overridden by -specifying the desired value through `statefulset.additionalRedpandaCmdFlags`. - -The default values are for a development environment. -Production-level values and other considerations are documented, -where those values are different from the default. -For details, -see the [Pod resources documentation](https://docs.redpanda.com/docs/manage/kubernetes/manage-resources/). - -**Default:** - -``` -{"cpu":{"cores":1},"memory":{"container":{"max":"2.5Gi"}}} -``` - -### [resources.cpu](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=resources.cpu) - -CPU resources. For details, see the [Pod resources documentation](https://docs.redpanda.com/docs/manage/kubernetes/manage-resources/#configure-cpu-resources). - -**Default:** `{"cores":1}` - -### [resources.cpu.cores](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=resources.cpu.cores) - -Redpanda makes use of a thread per core model. For details, see this [blog](https://redpanda.com/blog/tpc-buffers). For this reason, Redpanda should only be given full cores. Note: You can increase cores, but decreasing cores is supported only from 24.3 Redpanda version. This setting is equivalent to `--smp`, `resources.requests.cpu`, and `resources.limits.cpu`. For production, use `4` or greater. To maximize efficiency, use the `static` CPU manager policy by specifying an even integer for CPU resource requests and limits. This policy gives the Pods running Redpanda brokers access to exclusive CPUs on the node. See https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/#static-policy. - -**Default:** `1` - -### [resources.memory](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=resources.memory) - -Memory resources For details, see the [Pod resources documentation](https://docs.redpanda.com/docs/manage/kubernetes/manage-resources/#configure-memory-resources). - -**Default:** - -``` -{"container":{"max":"2.5Gi"}} -``` - -### [resources.memory.container](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=resources.memory.container) - -Enables memory locking. For production, set to `true`. enable_memory_locking: false It is recommended to have at least 2Gi of memory per core for the Redpanda binary. This memory is taken from the total memory given to each container. The Helm chart allocates 80% of the container's memory to Redpanda, leaving the rest for other container processes. So at least 2.5Gi per core is recommended in order to ensure Redpanda has a full 2Gi. These values affect `--memory` and `--reserve-memory` flags passed to Redpanda and the memory requests/limits in the StatefulSet. Valid suffixes: k, M, G, T, P, Ki, Mi, Gi, Ti, Pi To create `Guaranteed` Pod QoS for Redpanda brokers, provide both container max and min values for the container. For details, see https://kubernetes.io/docs/tasks/configure-pod-container/quality-service-pod/#create-a-pod-that-gets-assigned-a-qos-class-of-guaranteed * Every container in the Pod must have a memory limit and a memory request. * For every container in the Pod, the memory limit must equal the memory request. - -**Default:** `{"max":"2.5Gi"}` - -### [resources.memory.container.max](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=resources.memory.container.max) - -Maximum memory count for each Redpanda broker. Equivalent to `resources.limits.memory`. For production, use `10Gi` or greater. - -**Default:** `"2.5Gi"` - -### [serviceAccount](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=serviceAccount) - -Service account management. - -**Default:** - -``` -{"annotations":{},"create":true,"name":""} -``` - -### [serviceAccount.annotations](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=serviceAccount.annotations) - -Annotations to add to the service account. - -**Default:** `{}` - -### [serviceAccount.create](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=serviceAccount.create) - -Specifies whether a service account should be created. - -**Default:** `true` - -### [serviceAccount.name](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=serviceAccount.name) - -The name of the service account to use. If not set and `serviceAccount.create` is `true`, a name is generated using the `redpanda.fullname` template. - -**Default:** `""` - -### [statefulset.additionalRedpandaCmdFlags](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.additionalRedpandaCmdFlags) - -Additional flags to pass to redpanda, - -**Default:** `[]` - -### [statefulset.additionalSelectorLabels](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.additionalSelectorLabels) - -Additional labels to be added to statefulset label selector. For example, `my.k8s.service: redpanda`. - -**Default:** `{}` - -### [statefulset.budget.maxUnavailable](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.budget.maxUnavailable) - -**Default:** `1` - -### [statefulset.initContainerImage.repository](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.initContainerImage.repository) - -**Default:** `"busybox"` - -### [statefulset.initContainerImage.tag](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.initContainerImage.tag) - -**Default:** `"latest"` - -### [statefulset.initContainers.fsValidator.enabled](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.initContainers.fsValidator.enabled) - -**Default:** `false` - -### [statefulset.initContainers.fsValidator.expectedFS](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.initContainers.fsValidator.expectedFS) - -**Default:** `"xfs"` - -### [statefulset.initContainers.setDataDirOwnership.enabled](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.initContainers.setDataDirOwnership.enabled) - -In environments where root is not allowed, you cannot change the ownership of files and directories. Enable `setDataDirOwnership` when using default minikube cluster configuration. - -**Default:** `false` - -### [statefulset.podAntiAffinity.custom](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.podAntiAffinity.custom) - -Change `podAntiAffinity.type` to `custom` and provide your own podAntiAffinity rules here. - -**Default:** `{}` - -### [statefulset.podAntiAffinity.topologyKey](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.podAntiAffinity.topologyKey) - -The topologyKey to be used. Can be used to spread across different nodes, AZs, regions etc. - -**Default:** `"kubernetes.io/hostname"` - -### [statefulset.podAntiAffinity.type](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.podAntiAffinity.type) - -Valid anti-affinity types are `soft`, `hard`, or `custom`. Use `custom` if you want to supply your own anti-affinity rules in the `podAntiAffinity.custom` object. - -**Default:** `"hard"` - -### [statefulset.podAntiAffinity.weight](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.podAntiAffinity.weight) - -Weight for `soft` anti-affinity rules. Does not apply to other anti-affinity types. - -**Default:** `100` - -### [statefulset.podTemplate.annotations](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.podTemplate.annotations) - -Additional annotations to apply to the Pods of the StatefulSet. - -**Default:** `{}` - -### [statefulset.podTemplate.labels](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.podTemplate.labels) - -Additional labels to apply to the Pods of the StatefulSet. - -**Default:** `{}` - -### [statefulset.podTemplate.spec](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.podTemplate.spec) - -A subset of Kubernetes' PodSpec type that will be merged into the final PodSpec. See [Merge Semantics](#merging-semantics) for details. - -**Default:** - -``` -{"affinity":{"podAntiAffinity":{"requiredDuringSchedulingIgnoredDuringExecution":[{"labelSelector":{"matchLabels":{"app.kubernetes.io/component":"{{ include \"redpanda.name\" . }}-statefulset","app.kubernetes.io/instance":"{{ .Release.Name }}","app.kubernetes.io/name":"{{ include \"redpanda.name\" . }}"}},"topologyKey":"kubernetes.io/hostname"}]}},"nodeSelector":{},"priorityClassName":"","securityContext":{},"terminationGracePeriodSeconds":90,"tolerations":[],"topologySpreadConstraints":[{"labelSelector":{"matchLabels":{"app.kubernetes.io/component":"{{ include \"redpanda.name\" . }}-statefulset","app.kubernetes.io/instance":"{{ .Release.Name }}","app.kubernetes.io/name":"{{ include \"redpanda.name\" . }}"}},"maxSkew":1,"topologyKey":"topology.kubernetes.io/zone","whenUnsatisfiable":"ScheduleAnyway"}]} -``` - -### [statefulset.podTemplate.spec.nodeSelector](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.podTemplate.spec.nodeSelector) - -Node selection constraints for scheduling Pods of this StatefulSet. These constraints override the global `nodeSelector` value. For details, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector). - -**Default:** `{}` - -### [statefulset.podTemplate.spec.priorityClassName](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.podTemplate.spec.priorityClassName) - -PriorityClassName given to Pods of this StatefulSet. For details, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass). - -**Default:** `""` - -### [statefulset.podTemplate.spec.terminationGracePeriodSeconds](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.podTemplate.spec.terminationGracePeriodSeconds) - -Termination grace period in seconds is time required to execute preStop hook which puts particular Redpanda Pod (process/container) into maintenance mode. Before settle down on particular value please put Redpanda under load and perform rolling upgrade or rolling restart. That value needs to accommodate two processes: * preStop hook needs to put Redpanda into maintenance mode * after preStop hook Redpanda needs to handle gracefully SIGTERM signal Both processes are executed sequentially where preStop hook has hard deadline in the middle of terminationGracePeriodSeconds. REF: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#hook-handler-execution https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination - -**Default:** `90` - -### [statefulset.podTemplate.spec.tolerations](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.podTemplate.spec.tolerations) - -Taints to be tolerated by Pods of this StatefulSet. These tolerations override the global tolerations value. For details, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/). - -**Default:** `[]` - -### [statefulset.replicas](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.replicas) - -Number of Redpanda brokers (Redpanda Data recommends setting this to the number of worker nodes in the cluster) - -**Default:** `3` - -### [statefulset.sideCars.brokerDecommissioner.decommissionAfter](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.sideCars.brokerDecommissioner.decommissionAfter) - -**Default:** `"60s"` - -### [statefulset.sideCars.brokerDecommissioner.decommissionRequeueTimeout](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.sideCars.brokerDecommissioner.decommissionRequeueTimeout) - -**Default:** `"10s"` - -### [statefulset.sideCars.brokerDecommissioner.enabled](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.sideCars.brokerDecommissioner.enabled) - -**Default:** `false` - -### [statefulset.sideCars.configWatcher.enabled](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.sideCars.configWatcher.enabled) - -**Default:** `true` - -### [statefulset.sideCars.controllers.createRBAC](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.sideCars.controllers.createRBAC) - -**Default:** `true` - -### [statefulset.sideCars.controllers.enabled](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.sideCars.controllers.enabled) - -**Default:** `false` - -### [statefulset.sideCars.controllers.healthProbeAddress](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.sideCars.controllers.healthProbeAddress) - -**Default:** `":8085"` - -### [statefulset.sideCars.controllers.metricsAddress](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.sideCars.controllers.metricsAddress) - -**Default:** `":9082"` - -### [statefulset.sideCars.controllers.pprofAddress](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.sideCars.controllers.pprofAddress) - -**Default:** `":9083"` - -### [statefulset.sideCars.controllers.run[0]](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.sideCars.controllers.run[0]) - -**Default:** `"all"` - -### [statefulset.sideCars.image.repository](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.sideCars.image.repository) - -**Default:** - -``` -"docker.redpanda.com/redpandadata/redpanda-operator" -``` - -### [statefulset.sideCars.image.tag](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.sideCars.image.tag) - -**Default:** `"v25.1.1-beta2"` - -### [statefulset.sideCars.pvcUnbinder.enabled](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.sideCars.pvcUnbinder.enabled) - -**Default:** `false` - -### [statefulset.sideCars.pvcUnbinder.unbindAfter](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.sideCars.pvcUnbinder.unbindAfter) - -**Default:** `"60s"` - -### [statefulset.updateStrategy.type](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=statefulset.updateStrategy.type) - -**Default:** `"RollingUpdate"` - -### [storage](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=storage) - -Persistence settings. For details, see the [storage documentation](https://docs.redpanda.com/docs/manage/kubernetes/configure-storage/). - -**Default:** - -``` -{"hostPath":"","persistentVolume":{"annotations":{},"enabled":true,"labels":{},"nameOverwrite":"","size":"20Gi","storageClass":""},"tiered":{"config":{"cloud_storage_cache_size":5368709120,"cloud_storage_enable_remote_read":true,"cloud_storage_enable_remote_write":true,"cloud_storage_enabled":false},"credentialsSecretRef":{"accessKey":{"configurationKey":"cloud_storage_access_key"},"secretKey":{"configurationKey":"cloud_storage_secret_key"}},"hostPath":"","mountType":"none","persistentVolume":{"annotations":{},"labels":{},"storageClass":""}}} -``` - -### [storage.hostPath](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=storage.hostPath) - -Absolute path on the host to store Redpanda's data. If unspecified, then an `emptyDir` volume is used. If specified but `persistentVolume.enabled` is true, `storage.hostPath` has no effect. - -**Default:** `""` - -### [storage.persistentVolume](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=storage.persistentVolume) - -If `persistentVolume.enabled` is true, a PersistentVolumeClaim is created and used to store Redpanda's data. Otherwise, `storage.hostPath` is used. - -**Default:** - -``` -{"annotations":{},"enabled":true,"labels":{},"nameOverwrite":"","size":"20Gi","storageClass":""} -``` - -### [storage.persistentVolume.annotations](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=storage.persistentVolume.annotations) - -Additional annotations to apply to the created PersistentVolumeClaims. - -**Default:** `{}` - -### [storage.persistentVolume.labels](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=storage.persistentVolume.labels) - -Additional labels to apply to the created PersistentVolumeClaims. - -**Default:** `{}` - -### [storage.persistentVolume.nameOverwrite](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=storage.persistentVolume.nameOverwrite) - -Option to change volume claim template name for tiered storage persistent volume if tiered.mountType is set to `persistentVolume` - -**Default:** `""` - -### [storage.persistentVolume.storageClass](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=storage.persistentVolume.storageClass) - -To disable dynamic provisioning, set to `-`. If undefined or empty (default), then no storageClassName spec is set, and the default dynamic provisioner is chosen (gp2 on AWS, standard on GKE, AWS & OpenStack). - -**Default:** `""` - -### [storage.tiered.config](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=storage.tiered.config) - -Tiered Storage settings Requires `enterprise.licenseKey` or `enterprised.licenseSecretRef` For details, see the [Tiered Storage documentation](https://docs.redpanda.com/docs/manage/kubernetes/tiered-storage/). For a list of properties, see [Object Storage Properties](https://docs.redpanda.com/current/reference/properties/object-storage-properties/). - -**Default:** - -``` -{"cloud_storage_cache_size":5368709120,"cloud_storage_enable_remote_read":true,"cloud_storage_enable_remote_write":true,"cloud_storage_enabled":false} -``` - -### [storage.tiered.config.cloud_storage_cache_size](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=storage.tiered.config.cloud_storage_cache_size) - -Maximum size of the disk cache used by Tiered Storage. Default is 20 GiB. See the [property reference documentation](https://docs.redpanda.com/docs/reference/object-storage-properties/#cloud_storage_cache_size). - -**Default:** `5368709120` - -### [storage.tiered.config.cloud_storage_enable_remote_read](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=storage.tiered.config.cloud_storage_enable_remote_read) - -Cluster level default remote read configuration for new topics. See the [property reference documentation](https://docs.redpanda.com/docs/reference/object-storage-properties/#cloud_storage_enable_remote_read). - -**Default:** `true` - -### [storage.tiered.config.cloud_storage_enable_remote_write](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=storage.tiered.config.cloud_storage_enable_remote_write) - -Cluster level default remote write configuration for new topics. See the [property reference documentation](https://docs.redpanda.com/docs/reference/object-storage-properties/#cloud_storage_enable_remote_write). - -**Default:** `true` - -### [storage.tiered.config.cloud_storage_enabled](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=storage.tiered.config.cloud_storage_enabled) - -Global flag that enables Tiered Storage if a license key is provided. See the [property reference documentation](https://docs.redpanda.com/docs/reference/object-storage-properties/#cloud_storage_enabled). - -**Default:** `false` - -### [storage.tiered.hostPath](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=storage.tiered.hostPath) - -Absolute path on the host to store Redpanda's Tiered Storage cache. - -**Default:** `""` - -### [storage.tiered.persistentVolume.annotations](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=storage.tiered.persistentVolume.annotations) - -Additional annotations to apply to the created PersistentVolumeClaims. - -**Default:** `{}` - -### [storage.tiered.persistentVolume.labels](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=storage.tiered.persistentVolume.labels) - -Additional labels to apply to the created PersistentVolumeClaims. - -**Default:** `{}` - -### [storage.tiered.persistentVolume.storageClass](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=storage.tiered.persistentVolume.storageClass) - -To disable dynamic provisioning, set to "-". If undefined or empty (default), then no storageClassName spec is set, and the default dynamic provisioner is chosen (gp2 on AWS, standard on GKE, AWS & OpenStack). - -**Default:** `""` - -### [tests.enabled](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=tests.enabled) - -**Default:** `true` - -### [tls](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=tls) - -TLS settings. For details, see the [TLS documentation](https://docs.redpanda.com/docs/manage/kubernetes/security/kubernetes-tls/). - -**Default:** - -``` -{"certs":{"default":{"caEnabled":true},"external":{"caEnabled":true}},"enabled":true} -``` - -### [tls.certs](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=tls.certs) - -List all Certificates here, then you can reference a specific Certificate's name in each listener's `listeners..tls.cert` setting. - -**Default:** - -``` -{"default":{"caEnabled":true},"external":{"caEnabled":true}} -``` - -### [tls.certs.default](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=tls.certs.default) - -This key is the Certificate name. To apply the Certificate to a specific listener, reference the Certificate's name in `listeners..tls.cert`. - -**Default:** `{"caEnabled":true}` - -### [tls.certs.default.caEnabled](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=tls.certs.default.caEnabled) - -Indicates whether or not the Secret holding this certificate includes a `ca.crt` key. When `true`, chart managed clients, such as rpk, will use `ca.crt` for certificate verification and listeners with `require_client_auth` and no explicit `truststore` will use `ca.crt` as their `truststore_file` for verification of client certificates. When `false`, chart managed clients will use `tls.crt` for certificate verification and listeners with `require_client_auth` and no explicit `truststore` will use the container's CA certificates. - -**Default:** `true` - -### [tls.certs.external](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=tls.certs.external) - -Example external tls configuration uncomment and set the right key to the listeners that require them also enable the tls setting for those listeners. - -**Default:** `{"caEnabled":true}` - -### [tls.certs.external.caEnabled](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=tls.certs.external.caEnabled) - -Indicates whether or not the Secret holding this certificate includes a `ca.crt` key. When `true`, chart managed clients, such as rpk, will use `ca.crt` for certificate verification and listeners with `require_client_auth` and no explicit `truststore` will use `ca.crt` as their `truststore_file` for verification of client certificates. When `false`, chart managed clients will use `tls.crt` for certificate verification and listeners with `require_client_auth` and no explicit `truststore` will use the container's CA certificates. - -**Default:** `true` - -### [tls.enabled](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=tls.enabled) - -Enable TLS globally for all listeners. Each listener must include a Certificate name in its `.tls` object. To allow you to enable TLS for individual listeners, Certificates in `auth.tls.certs` are always loaded, even if `tls.enabled` is `false`. See `listeners..tls.enabled`. - -**Default:** `true` - -### [tuning](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=tuning) - -Redpanda tuning settings. Each is set to their default values in Redpanda. - -**Default:** `{"tune_aio_events":true}` - -### [tuning.tune_aio_events](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path=tuning.tune_aio_events) - -Increase the maximum number of outstanding asynchronous IO operations if the current value is below a certain threshold. This allows Redpanda to make as many simultaneous IO requests as possible, increasing throughput. When this option is enabled, Helm creates a privileged container. If your security profile does not allow this, you can disable this container by setting `tune_aio_events` to `false`. For more details, see the [tuning documentation](https://docs.redpanda.com/docs/deploy/deployment-option/self-hosted/kubernetes/kubernetes-tune-workers/). - -**Default:** `true` - -## Merging Semantics - -The redpanda chart implements a form of object merging that's roughly a -middleground of [JSON Merge Patch][k8s.jsonmp] and [Kubernetes' Strategic Merge -Patch][k8s.smp]. This is done to aid end users in setting or overriding fields -that are not directly exposed via the chart. - -- Directives are not supported. -- List fields that are merged by a unique key in Kubernetes' SMP (e.g. - `containers`, `env`) will be merged in a similar awy. -- Only fields explicitly allowed by the chart's JSON schema will be merged. -- Additional containers that are not present in the original value will NOT be added. - -[k8s.smp]: https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/#use-a-strategic-merge-patch-to-update-a-deployment -[k8s.jsonmp]: https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/#use-a-json-merge-patch-to-update-a-deployment diff --git a/charts/redpanda/README.md.gotmpl b/charts/redpanda/README.md.gotmpl deleted file mode 100644 index 23b21fafc0..0000000000 --- a/charts/redpanda/README.md.gotmpl +++ /dev/null @@ -1,70 +0,0 @@ -{{- define "chart.header" -}} -# Redpanda Helm Chart Specification ---- -description: Find the default values and descriptions of settings in the Redpanda Helm chart. ---- -{{- end -}} - -{{ define "chart.description" -}} -This page describes the official Redpanda Helm Chart. In particular, this page describes the contents of the chart’s [`values.yaml` file](https://github.com/redpanda-data/helm-charts/blob/main/charts/redpanda/values.yaml). Each of the settings is listed and described on this page, along with any default values. - -For instructions on how to install and use the chart, including how to override and customize the chart’s values, refer to the [deployment documentation](https://docs.redpanda.com/docs/deploy/deployment-option/self-hosted/kubernetes/kubernetes-deploy/). -{{ end -}} - -{{ define "chart.valuesTable" }} - -## Settings - -{{- range .Values }} - -### [{{ .Key }}](https://artifacthub.io/packages/helm/redpanda-data/redpanda?modal=values&path={{ .Key }}) - -{{ if .Description }}{{ .Description }}{{ else }}{{ .AutoDescription }}{{ end }} - -{{ $defaultValue := (default .Default .AutoDefault) }} -{{ if gt (len $defaultValue) 30 -}} -**Default:** - -``` -{{ $defaultValue | replace "`" "" }} -``` -{{- else -}} -**Default:** {{ $defaultValue }} -{{- end }} - -{{- end }} -{{ end }} - -{{- template "chart.header" . -}} - -{{ template "chart.deprecationWarning" . }} - -{{ template "chart.badgesSection" . }} - -{{ template "chart.description" . }} - -{{ template "helm-docs.versionFooter" . }} - -{{ template "chart.homepageLine" . }} - -{{ template "chart.sourcesSection" . }} - -{{ template "chart.requirementsSection" . }} - -{{ template "chart.valuesTable" . }} - -## Merging Semantics - -The redpanda chart implements a form of object merging that's roughly a -middleground of [JSON Merge Patch][k8s.jsonmp] and [Kubernetes' Strategic Merge -Patch][k8s.smp]. This is done to aid end users in setting or overriding fields -that are not directly exposed via the chart. - -- Directives are not supported. -- List fields that are merged by a unique key in Kubernetes' SMP (e.g. - `containers`, `env`) will be merged in a similar awy. -- Only fields explicitly allowed by the chart's JSON schema will be merged. -- Additional containers that are not present in the original value will NOT be added. - -[k8s.smp]: https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/#use-a-strategic-merge-patch-to-update-a-deployment -[k8s.jsonmp]: https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/#use-a-json-merge-patch-to-update-a-deployment diff --git a/charts/redpanda/ci/01-default-values.yaml b/charts/redpanda/ci/01-default-values.yaml deleted file mode 100644 index f99648d1ab..0000000000 --- a/charts/redpanda/ci/01-default-values.yaml +++ /dev/null @@ -1,16 +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. ---- -# This is left empty to test the default values diff --git a/charts/redpanda/ci/02-one-node-cluster-no-tls-no-sasl-values.yaml b/charts/redpanda/ci/02-one-node-cluster-no-tls-no-sasl-values.yaml deleted file mode 100644 index 14c1b70012..0000000000 --- a/charts/redpanda/ci/02-one-node-cluster-no-tls-no-sasl-values.yaml +++ /dev/null @@ -1,33 +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. ---- -commonLabels: - testlabel: "exercise_common_labels_template" -statefulset: - replicas: 1 -tls: - enabled: false -auth: - sasl: - enabled: false -storage: - persistentVolume: - size: 3Gi - -# tests to ensure this large int isn't converted to scientific notation for the rpk commands -# in post-upgrade job. -config: - cluster: - retention_local_target_ms_default: 21600000 diff --git a/charts/redpanda/ci/03-one-node-cluster-tls-no-sasl-values.yaml b/charts/redpanda/ci/03-one-node-cluster-tls-no-sasl-values.yaml deleted file mode 100644 index 2f5bd3f36e..0000000000 --- a/charts/redpanda/ci/03-one-node-cluster-tls-no-sasl-values.yaml +++ /dev/null @@ -1,25 +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. ---- -statefulset: - replicas: 1 -tls: - enabled: true -auth: - sasl: - enabled: false -storage: - persistentVolume: - size: 3Gi diff --git a/charts/redpanda/ci/04-one-node-cluster-no-tls-sasl-values.yaml b/charts/redpanda/ci/04-one-node-cluster-no-tls-sasl-values.yaml deleted file mode 100644 index c842ef66db..0000000000 --- a/charts/redpanda/ci/04-one-node-cluster-no-tls-sasl-values.yaml +++ /dev/null @@ -1,31 +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. ---- -statefulset: - replicas: 1 -tls: - enabled: false -auth: - sasl: - enabled: true - secretRef: "redpanda-users" - users: - - name: admin - password: hunter2 - mechanism: SCRAM-SHA-256 - -storage: - persistentVolume: - size: 3Gi diff --git a/charts/redpanda/ci/05-one-node-cluster-tls-sasl-values.yaml b/charts/redpanda/ci/05-one-node-cluster-tls-sasl-values.yaml deleted file mode 100644 index 04cdffa2b4..0000000000 --- a/charts/redpanda/ci/05-one-node-cluster-tls-sasl-values.yaml +++ /dev/null @@ -1,37 +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. ---- -statefulset: - replicas: 1 - -tls: - enabled: true - -auth: - sasl: - enabled: true - secretRef: "redpanda-users" - users: - - name: admins - password: change-me - mechanism: SCRAM-SHA-256 - -config: - cluster: - kafka_nodelete_topics: ['audit', 'consumer_offsets', '_schemas', 'my_sample_topic'] - -storage: - persistentVolume: - size: 3Gi diff --git a/charts/redpanda/ci/06-rack-awareness-values.yaml b/charts/redpanda/ci/06-rack-awareness-values.yaml deleted file mode 100644 index 07abfb5ace..0000000000 --- a/charts/redpanda/ci/06-rack-awareness-values.yaml +++ /dev/null @@ -1,21 +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. ---- -rackAwareness: - enabled: true -rbac: - enabled: true -serviceAccount: - create: true diff --git a/charts/redpanda/ci/07-multiple-listeners-values.yaml b/charts/redpanda/ci/07-multiple-listeners-values.yaml deleted file mode 100644 index 0608b6a5e9..0000000000 --- a/charts/redpanda/ci/07-multiple-listeners-values.yaml +++ /dev/null @@ -1,74 +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. ---- -tls: - certs: - cert2: - caEnabled: false -listeners: - kafka: - tls: - enabled: false - external: - ext2: - port: 19094 - advertisedPorts: - - 31292 - tls: - enabled: true - ext3: - port: 29094 - advertisedPorts: - - 31392 - tls: - enabled: true - cert: cert2 - requireClientAuth: true - schemaRegistry: - tls: - enabled: false - external: - ext2: - port: 18081 - advertisedPorts: - - 30181 - tls: - enabled: true - ext3: - port: 28081 - advertisedPorts: - - 30281 - tls: - enabled: true - cert: cert2 - requireClientAuth: true - http: - tls: - enabled: false - external: - ext2: - port: 18083 - advertisedPorts: - - 30183 - tls: - enabled: true - ext3: - port: 28083 - advertisedPorts: - - 30283 - tls: - enabled: true - cert: cert2 - requireClientAuth: true diff --git a/charts/redpanda/ci/08-custom-podantiaffinity-values.yaml b/charts/redpanda/ci/08-custom-podantiaffinity-values.yaml deleted file mode 100644 index 4b76c14862..0000000000 --- a/charts/redpanda/ci/08-custom-podantiaffinity-values.yaml +++ /dev/null @@ -1,26 +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. ---- -statefulset: - replicas: 3 - podAntiAffinity: - type: custom - custom: - requiredDuringSchedulingIgnoredDuringExecution: - - topologyKey: kubernetes.io/hostname - labelSelector: - matchLabels: - app.kubernetes.io/name: redpanda - app.kubernetes.io/instance: "redpanda" diff --git a/charts/redpanda/ci/10-external-addresses-values.yaml b/charts/redpanda/ci/10-external-addresses-values.yaml deleted file mode 100644 index 77302a9daf..0000000000 --- a/charts/redpanda/ci/10-external-addresses-values.yaml +++ /dev/null @@ -1,28 +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. ---- -# the number of replicas should match the length of the addresses -statefulset: - replicas: 3 - -external: - enabled: true - # was LoadBalancer, here we are concerned with external addresses working so this is ok - type: NodePort - domain: my-domain - addresses: - - redpanda-1 - - 127.0.0.1 - - 192.168.0.1 diff --git a/charts/redpanda/ci/11-update-sasl-users-values.yaml b/charts/redpanda/ci/11-update-sasl-users-values.yaml deleted file mode 100644 index ba51829977..0000000000 --- a/charts/redpanda/ci/11-update-sasl-users-values.yaml +++ /dev/null @@ -1,33 +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. ---- -# This relies on .github/create-sasl-secret.sh and moving those files into the redpanda template directory -auth: - sasl: - enabled: true - secretRef: "some-users" - users: - - name: admin - password: badpassword - mechanism: SCRAM-SHA-256 - - name: user1 - password: pass1word - mechanism: SCRAM-SHA-512 - - name: someuser - password: ABC123r - mechanism: SCRAM-SHA-512 - - name: anotherme - password: blah2784a - mechanism: SCRAM-SHA-512 diff --git a/charts/redpanda/ci/12-external-cert-secrets-values.yaml b/charts/redpanda/ci/12-external-cert-secrets-values.yaml deleted file mode 100644 index f409924745..0000000000 --- a/charts/redpanda/ci/12-external-cert-secrets-values.yaml +++ /dev/null @@ -1,90 +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. ---- -tls: - enabled: true - certs: - # in the future we want to also add the - default: - caEnabled: true - external: - secretRef: - name: external-tls-secret - caEnabled: true - -external: - enabled: true - type: NodePort - domain: random-domain - -listeners: - # NOT including admin-api listeners because it only has one and it is using internal - # tls certs by default. - # -- Kafka API listeners. - kafka: - # -- The port for internal client connections. - port: 9093 - tls: - # Optional flag to override the global TLS enabled flag. - # enabled: true - cert: default - requireClientAuth: false - external: - default: - # enabled: true - # -- The port used for external client connections. - port: 9094 - # -- If undefined, `listeners.kafka.external.default.port` is used. - advertisedPorts: - - 30090 - tls: - # enabled: true - cert: external - # -- Schema registry listeners. - schemaRegistry: - enabled: true - port: 8081 - tls: - # Optional flag to override the global TLS enabled flag. - # enabled: true - cert: default - requireClientAuth: false - external: - default: - # enabled: true - port: 8084 - advertisedPorts: - - 30080 - tls: - # enabled: true - cert: external - # -- HTTP API listeners (aka PandaProxy). - http: - enabled: true - port: 8082 - tls: - # Optional flag to override the global TLS enabled flag. - # enabled: true - cert: default - requireClientAuth: false - external: - default: - # enabled: true - port: 8083 - advertisedPorts: - - 30070 - tls: - # enabled: true - cert: external diff --git a/charts/redpanda/ci/13-loadbalancer-tls-values.yaml b/charts/redpanda/ci/13-loadbalancer-tls-values.yaml deleted file mode 100644 index 255976b1ef..0000000000 --- a/charts/redpanda/ci/13-loadbalancer-tls-values.yaml +++ /dev/null @@ -1,30 +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. ---- -external: - enabled: true - type: LoadBalancer - # If specified, then it will be appended to the `external.addresses` values as each broker's advertised address - domain: random-domain - -tls: - enabled: true - certs: - default: - caEnabled: true - external: - secretRef: - name: external-tls-secret - caEnabled: true diff --git a/charts/redpanda/ci/14-prometheus-no-tls-values.yaml b/charts/redpanda/ci/14-prometheus-no-tls-values.yaml deleted file mode 100644 index 0af3ef8e1c..0000000000 --- a/charts/redpanda/ci/14-prometheus-no-tls-values.yaml +++ /dev/null @@ -1,22 +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. ---- -tls: - enabled: false - -monitoring: - enabled: true - labels: - release: prometheus diff --git a/charts/redpanda/ci/15-prometheus-tls-values.yaml b/charts/redpanda/ci/15-prometheus-tls-values.yaml deleted file mode 100644 index 9c1f9aa1ac..0000000000 --- a/charts/redpanda/ci/15-prometheus-tls-values.yaml +++ /dev/null @@ -1,22 +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. ---- -tls: - enabled: true - -monitoring: - enabled: true - labels: - release: prometheus diff --git a/charts/redpanda/ci/16-controller-sidecar-values.yaml b/charts/redpanda/ci/16-controller-sidecar-values.yaml deleted file mode 100644 index ab157923bd..0000000000 --- a/charts/redpanda/ci/16-controller-sidecar-values.yaml +++ /dev/null @@ -1,22 +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. ---- -rbac: - enabled: true - -statefulset: - sideCars: - controllers: - enabled: true diff --git a/charts/redpanda/ci/17-resources-without-unit-values.yaml b/charts/redpanda/ci/17-resources-without-unit-values.yaml deleted file mode 100644 index 04e29c36cc..0000000000 --- a/charts/redpanda/ci/17-resources-without-unit-values.yaml +++ /dev/null @@ -1,25 +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. ---- -resources: - cpu: - cores: "1" - memory: - container: - max: 2500Mi - min: 2500Mi - redpanda: - memory: "2097152000" - reserveMemory: "0" diff --git a/charts/redpanda/ci/18-single-external-address-values.yaml b/charts/redpanda/ci/18-single-external-address-values.yaml deleted file mode 100644 index b710777bb7..0000000000 --- a/charts/redpanda/ci/18-single-external-address-values.yaml +++ /dev/null @@ -1,26 +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. ---- -# the number of replicas should match the length of the addresses -statefulset: - replicas: 3 - -external: - enabled: true - domain: my-domain - addresses: - - $PREFIX_TEMPLATE - prefixTemplate: $POD_ORDINAL-XYZ-$(echo -n $HOST_IP_ADDRESS | sha256sum - | head -c 7) diff --git a/charts/redpanda/ci/21-eks-tiered-storage-with-creds-values.yaml.tpl b/charts/redpanda/ci/21-eks-tiered-storage-with-creds-values.yaml.tpl deleted file mode 100644 index dc7e8e5536..0000000000 --- a/charts/redpanda/ci/21-eks-tiered-storage-with-creds-values.yaml.tpl +++ /dev/null @@ -1,35 +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. ---- -storage: - tiered: - config: - cloud_storage_enabled: true - cloud_storage_credentials_source: config_file - cloud_storage_access_key: "${AWS_ACCESS_KEY_ID}" - cloud_storage_secret_key: "${AWS_SECRET_ACCESS_KEY}" - cloud_storage_region: "${AWS_REGION}" - cloud_storage_bucket: "${TEST_BUCKET}" - cloud_storage_segment_max_upload_interval_sec: 1 -enterprise: - license: "${REDPANDA_SAMPLE_LICENSE}" - -console: - # Until https://github.com/redpanda-data/console-enterprise/pull/256 is released the console - # test named `test-license-with-console.yaml` needs to work with unreleased Redpanda Console version. - image: - registry: redpandadata - repository: console-unstable - tag: master-8a51854 diff --git a/charts/redpanda/ci/22-gke-tiered-storage-with-creds-values.yaml.tpl b/charts/redpanda/ci/22-gke-tiered-storage-with-creds-values.yaml.tpl deleted file mode 100644 index 2b9aa4aeac..0000000000 --- a/charts/redpanda/ci/22-gke-tiered-storage-with-creds-values.yaml.tpl +++ /dev/null @@ -1,47 +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. ---- -storage: - tiered: - config: - cloud_storage_enabled: true - cloud_storage_api_endpoint: storage.googleapis.com - cloud_storage_credentials_source: config_file - cloud_storage_region: "US-WEST1" - cloud_storage_bucket: "${TEST_BUCKET}" - cloud_storage_segment_max_upload_interval_sec: 1 - cloud_storage_access_key: "${GCP_ACCESS_KEY_ID}" - cloud_storage_secret_key: "${GCP_SECRET_ACCESS_KEY}" -enterprise: - license: "${REDPANDA_SAMPLE_LICENSE}" - - -resources: - cpu: - cores: 400m - memory: - container: - max: 2.0Gi - redpanda: - memory: 1Gi - reserveMemory: 100Mi - -console: - # Until https://github.com/redpanda-data/console-enterprise/pull/256 is released the console - # test named `test-license-with-console.yaml` needs to work with unreleased Redpanda Console version. - image: - registry: redpandadata - repository: console-unstable - tag: master-8a51854 diff --git a/charts/redpanda/ci/23-aks-tiered-storage-with-creds-values.yaml.tpl b/charts/redpanda/ci/23-aks-tiered-storage-with-creds-values.yaml.tpl deleted file mode 100644 index 241ffb7537..0000000000 --- a/charts/redpanda/ci/23-aks-tiered-storage-with-creds-values.yaml.tpl +++ /dev/null @@ -1,48 +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. ---- -storage: - persistentVolume: - storageClass: managed-csi - tiered: - persistentVolume: - storageClass: managed-csi - config: - cloud_storage_enabled: true - cloud_storage_credentials_source: config_file - cloud_storage_segment_max_upload_interval_sec: 1 - cloud_storage_azure_storage_account: ${TEST_STORAGE_ACCOUNT} - cloud_storage_azure_container: ${TEST_STORAGE_CONTAINER} - cloud_storage_azure_shared_key: ${TEST_AZURE_SHARED_KEY} -enterprise: - license: "${REDPANDA_SAMPLE_LICENSE}" - -resources: - cpu: - cores: 400m - memory: - container: - max: 2.0Gi - redpanda: - memory: 1Gi - reserveMemory: 100Mi - -console: - # Until https://github.com/redpanda-data/console-enterprise/pull/256 is released the console - # test named `test-license-with-console.yaml` needs to work with unreleased Redpanda Console version. - image: - registry: redpandadata - repository: console-unstable - tag: master-8a51854 diff --git a/charts/redpanda/ci/23-aks-tiered-storage-without-creds-novalues.yaml.tpl b/charts/redpanda/ci/23-aks-tiered-storage-without-creds-novalues.yaml.tpl deleted file mode 100644 index a254339092..0000000000 --- a/charts/redpanda/ci/23-aks-tiered-storage-without-creds-novalues.yaml.tpl +++ /dev/null @@ -1,46 +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. ---- -storage: - persistentVolume: - storageClass: managed-csi - tiered: - persistentVolume: - storageClass: managed-csi - config: - cloud_storage_enabled: true - cloud_storage_credentials_source: config_file - cloud_storage_segment_max_upload_interval_sec: 1 - cloud_storage_azure_storage_account: TestForStringThatShouldNotBeWrappedWithQuotes - cloud_storage_azure_container: ${TEST_STORAGE_CONTAINER} - cloud_storage_azure_shared_key: ${TEST_AZURE_SHARED_KEY} - -resources: - cpu: - cores: 400m - memory: - container: - max: 2.0Gi - redpanda: - memory: 1Gi - reserveMemory: 100Mi - -console: - # Until https://github.com/redpanda-data/console-enterprise/pull/256 is released the console - # test named `test-license-with-console.yaml` needs to work with unreleased Redpanda Console version. - image: - registry: redpandadata - repository: console-unstable - tag: master-8a51854 diff --git a/charts/redpanda/ci/24-eks-tiered-storage-persistent-with-creds-values.yaml.tpl b/charts/redpanda/ci/24-eks-tiered-storage-persistent-with-creds-values.yaml.tpl deleted file mode 100644 index 1e11a83333..0000000000 --- a/charts/redpanda/ci/24-eks-tiered-storage-persistent-with-creds-values.yaml.tpl +++ /dev/null @@ -1,36 +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. ---- -storage: - tiered: - mountType: persistentVolume - config: - cloud_storage_enabled: true - cloud_storage_credentials_source: config_file - cloud_storage_access_key: "${AWS_ACCESS_KEY_ID}" - cloud_storage_secret_key: "${AWS_SECRET_ACCESS_KEY}" - cloud_storage_region: "${AWS_REGION}" - cloud_storage_bucket: "${TEST_BUCKET}" - cloud_storage_segment_max_upload_interval_sec: 1 -enterprise: - license: "${REDPANDA_SAMPLE_LICENSE}" - -console: - # Until https://github.com/redpanda-data/console-enterprise/pull/256 is released the console - # test named `test-license-with-console.yaml` needs to work with unreleased Redpanda Console version. - image: - registry: redpandadata - repository: console-unstable - tag: master-8a51854 diff --git a/charts/redpanda/ci/25-gke-tiered-storage-persistent-with-creds-values.yaml.tpl b/charts/redpanda/ci/25-gke-tiered-storage-persistent-with-creds-values.yaml.tpl deleted file mode 100644 index 60f6eed3eb..0000000000 --- a/charts/redpanda/ci/25-gke-tiered-storage-persistent-with-creds-values.yaml.tpl +++ /dev/null @@ -1,48 +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. ---- -storage: - tiered: - mountType: persistentVolume - config: - cloud_storage_enabled: true - cloud_storage_api_endpoint: storage.googleapis.com - cloud_storage_credentials_source: config_file - cloud_storage_region: "US-WEST1" - cloud_storage_bucket: "${TEST_BUCKET}" - cloud_storage_segment_max_upload_interval_sec: 1 - cloud_storage_access_key: "${GCP_ACCESS_KEY_ID}" - cloud_storage_secret_key: "${GCP_SECRET_ACCESS_KEY}" -enterprise: - license: "${REDPANDA_SAMPLE_LICENSE}" - - -resources: - cpu: - cores: 400m - memory: - container: - max: 2.0Gi - redpanda: - memory: 1Gi - reserveMemory: 100Mi - -console: - # Until https://github.com/redpanda-data/console-enterprise/pull/256 is released the console - # test named `test-license-with-console.yaml` needs to work with unreleased Redpanda Console version. - image: - registry: redpandadata - repository: console-unstable - tag: master-8a51854 diff --git a/charts/redpanda/ci/26-aks-tiered-storage-persistent-with-creds-values.yaml.tpl b/charts/redpanda/ci/26-aks-tiered-storage-persistent-with-creds-values.yaml.tpl deleted file mode 100644 index b82f9b85df..0000000000 --- a/charts/redpanda/ci/26-aks-tiered-storage-persistent-with-creds-values.yaml.tpl +++ /dev/null @@ -1,49 +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. ---- -storage: - persistentVolume: - storageClass: managed-csi - tiered: - mountType: persistentVolume - persistentVolume: - storageClass: managed-csi - config: - cloud_storage_enabled: true - cloud_storage_credentials_source: config_file - cloud_storage_segment_max_upload_interval_sec: 1 - cloud_storage_azure_storage_account: ${TEST_STORAGE_ACCOUNT} - cloud_storage_azure_container: ${TEST_STORAGE_CONTAINER} - cloud_storage_azure_shared_key: ${TEST_AZURE_SHARED_KEY} -enterprise: - license: "${REDPANDA_SAMPLE_LICENSE}" - -resources: - cpu: - cores: 400m - memory: - container: - max: 2.0Gi - redpanda: - memory: 1Gi - reserveMemory: 100Mi - -console: - # Until https://github.com/redpanda-data/console-enterprise/pull/256 is released the console - # test named `test-license-with-console.yaml` needs to work with unreleased Redpanda Console version. - image: - registry: redpandadata - repository: console-unstable - tag: master-8a51854 diff --git a/charts/redpanda/ci/26-aks-tiered-storage-persistent-without-creds-novalues.yaml.tpl b/charts/redpanda/ci/26-aks-tiered-storage-persistent-without-creds-novalues.yaml.tpl deleted file mode 100644 index eb53c0d355..0000000000 --- a/charts/redpanda/ci/26-aks-tiered-storage-persistent-without-creds-novalues.yaml.tpl +++ /dev/null @@ -1,47 +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. ---- -storage: - persistentVolume: - storageClass: managed-csi - tiered: - mountType: persistentVolume - persistentVolume: - storageClass: managed-csi - config: - cloud_storage_enabled: true - cloud_storage_credentials_source: config_file - cloud_storage_segment_max_upload_interval_sec: 1 - cloud_storage_azure_storage_account: ${TEST_STORAGE_ACCOUNT} - cloud_storage_azure_container: ${TEST_STORAGE_CONTAINER} - cloud_storage_azure_shared_key: ${TEST_AZURE_SHARED_KEY} - -resources: - cpu: - cores: 400m - memory: - container: - max: 2.0Gi - redpanda: - memory: 1Gi - reserveMemory: 100Mi - -console: - # Until https://github.com/redpanda-data/console-enterprise/pull/256 is released the console - # test named `test-license-with-console.yaml` needs to work with unreleased Redpanda Console version. - image: - registry: redpandadata - repository: console-unstable - tag: master-8a51854 diff --git a/charts/redpanda/ci/27-eks-tiered-storage-persistent-nameoverwrite-with-creds-values.yaml.tpl b/charts/redpanda/ci/27-eks-tiered-storage-persistent-nameoverwrite-with-creds-values.yaml.tpl deleted file mode 100644 index f92ec7a9ca..0000000000 --- a/charts/redpanda/ci/27-eks-tiered-storage-persistent-nameoverwrite-with-creds-values.yaml.tpl +++ /dev/null @@ -1,38 +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. ---- -storage: - persistentVolume: - nameOverwrite: shadow-index-cache - tiered: - mountType: persistentVolume - config: - cloud_storage_enabled: true - cloud_storage_credentials_source: config_file - cloud_storage_access_key: "${AWS_ACCESS_KEY_ID}" - cloud_storage_secret_key: "${AWS_SECRET_ACCESS_KEY}" - cloud_storage_region: "${AWS_REGION}" - cloud_storage_bucket: "${TEST_BUCKET}" - cloud_storage_segment_max_upload_interval_sec: 1 -enterprise: - license: "${REDPANDA_SAMPLE_LICENSE}" - -console: - # Until https://github.com/redpanda-data/console-enterprise/pull/256 is released the console - # test named `test-license-with-console.yaml` needs to work with unreleased Redpanda Console version. - image: - registry: redpandadata - repository: console-unstable - tag: master-8a51854 diff --git a/charts/redpanda/ci/28-gke-tiered-storage-persistent-nameoverwrite-with-creds-values.yaml.tpl b/charts/redpanda/ci/28-gke-tiered-storage-persistent-nameoverwrite-with-creds-values.yaml.tpl deleted file mode 100644 index ebc096f912..0000000000 --- a/charts/redpanda/ci/28-gke-tiered-storage-persistent-nameoverwrite-with-creds-values.yaml.tpl +++ /dev/null @@ -1,50 +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. ---- -storage: - persistentVolume: - nameOverwrite: shadow-index-cache - tiered: - mountType: persistentVolume - config: - cloud_storage_enabled: true - cloud_storage_api_endpoint: storage.googleapis.com - cloud_storage_credentials_source: config_file - cloud_storage_region: "US-WEST1" - cloud_storage_bucket: "${TEST_BUCKET}" - cloud_storage_segment_max_upload_interval_sec: 1 - cloud_storage_access_key: "${GCP_ACCESS_KEY_ID}" - cloud_storage_secret_key: "${GCP_SECRET_ACCESS_KEY}" -enterprise: - license: "${REDPANDA_SAMPLE_LICENSE}" - - -resources: - cpu: - cores: 400m - memory: - container: - max: 2.0Gi - redpanda: - memory: 1Gi - reserveMemory: 100Mi - -console: - # Until https://github.com/redpanda-data/console-enterprise/pull/256 is released the console - # test named `test-license-with-console.yaml` needs to work with unreleased Redpanda Console version. - image: - registry: redpandadata - repository: console-unstable - tag: master-8a51854 diff --git a/charts/redpanda/ci/29-aks-tiered-storage-persistent-nameoverwrite-with-creds-values.yaml.tpl b/charts/redpanda/ci/29-aks-tiered-storage-persistent-nameoverwrite-with-creds-values.yaml.tpl deleted file mode 100644 index bf5a1eafe0..0000000000 --- a/charts/redpanda/ci/29-aks-tiered-storage-persistent-nameoverwrite-with-creds-values.yaml.tpl +++ /dev/null @@ -1,50 +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. ---- -storage: - persistentVolume: - storageClass: managed-csi - nameOverwrite: shadow-index-cache - tiered: - mountType: persistentVolume - persistentVolume: - storageClass: managed-csi - config: - cloud_storage_enabled: true - cloud_storage_credentials_source: config_file - cloud_storage_segment_max_upload_interval_sec: 1 - cloud_storage_azure_storage_account: ${TEST_STORAGE_ACCOUNT} - cloud_storage_azure_container: ${TEST_STORAGE_CONTAINER} - cloud_storage_azure_shared_key: ${TEST_AZURE_SHARED_KEY} -enterprise: - license: "${REDPANDA_SAMPLE_LICENSE}" - -resources: - cpu: - cores: 400m - memory: - container: - max: 2.0Gi - redpanda: - memory: 1Gi - reserveMemory: 100Mi - -console: - # Until https://github.com/redpanda-data/console-enterprise/pull/256 is released the console - # test named `test-license-with-console.yaml` needs to work with unreleased Redpanda Console version. - image: - registry: redpandadata - repository: console-unstable - tag: master-8a51854 diff --git a/charts/redpanda/ci/29-aks-tiered-storage-persistent-nameoverwrite-without-creds-novalues.yaml.tpl b/charts/redpanda/ci/29-aks-tiered-storage-persistent-nameoverwrite-without-creds-novalues.yaml.tpl deleted file mode 100644 index 439e3937bc..0000000000 --- a/charts/redpanda/ci/29-aks-tiered-storage-persistent-nameoverwrite-without-creds-novalues.yaml.tpl +++ /dev/null @@ -1,48 +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. ---- -storage: - persistentVolume: - storageClass: managed-csi - nameOverwrite: shadow-index-cache - tiered: - mountType: persistentVolume - persistentVolume: - storageClass: managed-csi - config: - cloud_storage_enabled: true - cloud_storage_credentials_source: config_file - cloud_storage_segment_max_upload_interval_sec: 1 - cloud_storage_azure_storage_account: ${TEST_STORAGE_ACCOUNT} - cloud_storage_azure_container: ${TEST_STORAGE_CONTAINER} - cloud_storage_azure_shared_key: ${TEST_AZURE_SHARED_KEY} - -resources: - cpu: - cores: 400m - memory: - container: - max: 2.0Gi - redpanda: - memory: 1Gi - reserveMemory: 100Mi - -console: - # Until https://github.com/redpanda-data/console-enterprise/pull/256 is released the console - # test named `test-license-with-console.yaml` needs to work with unreleased Redpanda Console version. - image: - registry: redpandadata - repository: console-unstable - tag: master-8a51854 diff --git a/charts/redpanda/ci/30-additional-flags-override-novalues.yaml b/charts/redpanda/ci/30-additional-flags-override-novalues.yaml deleted file mode 100644 index 9a0ef1f49a..0000000000 --- a/charts/redpanda/ci/30-additional-flags-override-novalues.yaml +++ /dev/null @@ -1,4 +0,0 @@ -statefulset: - additionalRedpandaCmdFlags: - - "--smp=99" - - "--reserve-memory=9999" diff --git a/charts/redpanda/ci/31-overwrite-statefulset-pod-labels-values.yaml b/charts/redpanda/ci/31-overwrite-statefulset-pod-labels-values.yaml deleted file mode 100644 index 7dbb3ea1b9..0000000000 --- a/charts/redpanda/ci/31-overwrite-statefulset-pod-labels-values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -statefulset: - podTemplate: - labels: - azure.workload.identity/use: "true" diff --git a/charts/redpanda/ci/32-statefulset-podspec-novalues.yaml b/charts/redpanda/ci/32-statefulset-podspec-novalues.yaml deleted file mode 100644 index 7dd5aba453..0000000000 --- a/charts/redpanda/ci/32-statefulset-podspec-novalues.yaml +++ /dev/null @@ -1,10 +0,0 @@ -statefulset: - podTemplate: - spec: - containers: - - name: redpanda - env: - - name: EXTRA_ENV_VAR - value: THIS_IS_AN_EXAMPLE - - name: POD_IP - value: This is an override and will break the deployment diff --git a/charts/redpanda/ci/33-advertised-ports-values.yaml b/charts/redpanda/ci/33-advertised-ports-values.yaml deleted file mode 100644 index 21e19b6e9a..0000000000 --- a/charts/redpanda/ci/33-advertised-ports-values.yaml +++ /dev/null @@ -1,58 +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. ---- -statefulset: - replicas: 4 -listeners: - kafka: - tls: - enabled: false - external: - ext2: - port: 22229 - prefixTemplate: "ext2-$POD_ORDINAL" - advertisedPorts: - - 22220 - - 22221 - - 22222 - - 22223 - ext3: - port: 33339 - prefixTemplate: "ext3-$POD_ORDINAL" - advertisedPorts: - - 33330 - - 33331 - - 33332 - - 33333 - http: - tls: - enabled: false - external: - ext4: - port: 44449 - prefixTemplate: "ext4-$POD_ORDINAL" - advertisedPorts: - - 44440 - - 44441 - - 44442 - - 44443 - ext5: - port: 55559 - prefixTemplate: "ext5-$POD_ORDINAL" - advertisedPorts: - - 55550 - - 55551 - - 55552 - - 55553 diff --git a/charts/redpanda/ci/33-pod-selector-lables-novalues.yaml b/charts/redpanda/ci/33-pod-selector-lables-novalues.yaml deleted file mode 100644 index 16f99dd801..0000000000 --- a/charts/redpanda/ci/33-pod-selector-lables-novalues.yaml +++ /dev/null @@ -1,7 +0,0 @@ - - -statefulset: - additionalSelectorLabels: - "redpanda.com/testing": "true" - "redpanda.com/testing-samples": "sample" - "redpanda.com/testing-samples-two": "two" \ No newline at end of file diff --git a/charts/redpanda/ci/34-statefulset-sidecars-novalues.yaml b/charts/redpanda/ci/34-statefulset-sidecars-novalues.yaml deleted file mode 100644 index c7e4f80039..0000000000 --- a/charts/redpanda/ci/34-statefulset-sidecars-novalues.yaml +++ /dev/null @@ -1,9 +0,0 @@ -statefulset: - initContainers: - fsValidator: - enabled: true - setDataDirOwnership: - enabled: true - sideCars: - controllers: - enabled: true diff --git a/charts/redpanda/ci/36-single-external-address-with-template-domain-novalues.yaml b/charts/redpanda/ci/36-single-external-address-with-template-domain-novalues.yaml deleted file mode 100644 index 79336bbfb5..0000000000 --- a/charts/redpanda/ci/36-single-external-address-with-template-domain-novalues.yaml +++ /dev/null @@ -1,22 +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. ---- -# the number of replicas should match the length of the addresses -statefulset: - replicas: 3 - -external: - enabled: true - domain: "{{ (get (fromJson (include \"redpanda.Name\" (dict \"a\" (list $) ))) \"r\") | upper | repeat 3 }}-testing" diff --git a/charts/redpanda/ci/37-internal-service-changed-name-and-annotations-novalues.yaml b/charts/redpanda/ci/37-internal-service-changed-name-and-annotations-novalues.yaml deleted file mode 100644 index c2e7e1526f..0000000000 --- a/charts/redpanda/ci/37-internal-service-changed-name-and-annotations-novalues.yaml +++ /dev/null @@ -1,29 +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. ---- -statefulset: - additionalSelectorLabels: - test: test - -service: - name: change-name - - internal: - annotations: - test: test - -monitoring: - enabled: true - scrapeInterval: "2m" \ No newline at end of file diff --git a/charts/redpanda/ci/38-post-install-upgrade-merges-novalues.yaml b/charts/redpanda/ci/38-post-install-upgrade-merges-novalues.yaml deleted file mode 100644 index bac93e3170..0000000000 --- a/charts/redpanda/ci/38-post-install-upgrade-merges-novalues.yaml +++ /dev/null @@ -1,70 +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. ---- - -podTemplate: - spec: - tolerations: - - key: "example-key" - operator: "Exists" - effect: "NoSchedule" - - key: "example-key-2" - operator: "Exists" - effect: "NoExecute" - - affinity: - # This is *ignored* because the PostInstallJob specifies an alternative - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: topology.kubernetes.io/zone - operator: In - values: - - antarctica-east1 - - antarctica-west1 - -statefulset: - podTemplate: - spec: - securityContext: - runAsUser: 1000 - runAsGroup: 1000 - -post_install_job: - podTemplate: - spec: - securityContext: - # This should override the default above - runAsUser: 2000 - affinity: - # This completely replaces the global default - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: topology.kubernetes.io/zone - operator: In - values: - - arctic-east1 - - arctic-west1 - containers: - - name: post-install - resources: - limits: - cpu: 200m - requests: - cpu: 2 - diff --git a/charts/redpanda/ci/39-default-image-pull-secrets-novalues.yaml b/charts/redpanda/ci/39-default-image-pull-secrets-novalues.yaml deleted file mode 100644 index ba06c9c41e..0000000000 --- a/charts/redpanda/ci/39-default-image-pull-secrets-novalues.yaml +++ /dev/null @@ -1,21 +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. ---- -# Confirm the correct passthrough of imagePullSecrets -podTemplate: - spec: - imagePullSecrets: - - name: secret-1 - - name: secret-2 diff --git a/charts/redpanda/ci/40-empty-string-tls-novalues.yaml b/charts/redpanda/ci/40-empty-string-tls-novalues.yaml deleted file mode 100644 index 42df20295e..0000000000 --- a/charts/redpanda/ci/40-empty-string-tls-novalues.yaml +++ /dev/null @@ -1,56 +0,0 @@ -# Copied from charts/operator/files/three_node_redpanda.yaml. The inclusion of -# tls.enabled: false and tls.cert: "" triggered failures. -console: - enabled: false -image: - repository: docker.redpanda.com/redpandadata/redpanda - tag: v23.2.2 -listeners: - admin: - external: {} - port: 9644 - tls: - cert: "" - enabled: false - requireClientAuth: false - http: - authenticationMethod: none - enabled: true - external: {} - port: 8082 - tls: - cert: "" - enabled: false - requireClientAuth: false - kafka: - authenticationMethod: none - external: {} - port: 9092 - tls: - cert: kafka-internal-0 - enabled: true - requireClientAuth: true - rpc: - port: 33145 -logging: - logLevel: trace - usageStats: - enabled: false -resources: - cpu: - cores: 1 - memory: - container: - max: 2Gi - min: 2Gi -statefulset: - replicas: 3 -storage: - persistentVolume: - enabled: true - size: 100Gi -tls: - certs: - kafka-internal-0: - caEnabled: true - enabled: true diff --git a/charts/redpanda/ci/41-external-issuers-novalues.yaml b/charts/redpanda/ci/41-external-issuers-novalues.yaml deleted file mode 100644 index 98b2a5845b..0000000000 --- a/charts/redpanda/ci/41-external-issuers-novalues.yaml +++ /dev/null @@ -1,29 +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. ---- -# See also https://github.com/redpanda-data/helm-charts/issues/1432 -tls: - certs: - default: - issuerRef: - group: cas-issuer.jetstack.io - kind: GoogleCASClusterIssuer - name: my-cas-issuer - - external: - issuerRef: - group: cas-issuer.jetstack.io - kind: GoogleCASClusterIssuer - name: my-cas-issuer diff --git a/charts/redpanda/ci/96-audit-logging-values.yaml.tpl b/charts/redpanda/ci/96-audit-logging-values.yaml.tpl deleted file mode 100644 index f2e51a0c38..0000000000 --- a/charts/redpanda/ci/96-audit-logging-values.yaml.tpl +++ /dev/null @@ -1,32 +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. ---- -enterprise: - license: "${REDPANDA_LICENSE}" - -auth: - sasl: - enabled: true - users: - - name: admin - password: change-me - mechanism: SCRAM-SHA-512 - -auditLogging: - enabled: true - -logging: - usageStats: - clusterId: cluster-id-test diff --git a/charts/redpanda/ci/97-license-key-values.yaml.tpl b/charts/redpanda/ci/97-license-key-values.yaml.tpl deleted file mode 100644 index 3eb6cf4aaf..0000000000 --- a/charts/redpanda/ci/97-license-key-values.yaml.tpl +++ /dev/null @@ -1,17 +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. ---- -enterprise: - license: "${REDPANDA_LICENSE}" diff --git a/charts/redpanda/ci/98-license-secret-values.yaml b/charts/redpanda/ci/98-license-secret-values.yaml deleted file mode 100644 index 8643f347d3..0000000000 --- a/charts/redpanda/ci/98-license-secret-values.yaml +++ /dev/null @@ -1,19 +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. ---- -enterprise: - licenseSecretRef: - name: redpanda-license - key: license-key diff --git a/charts/redpanda/files/decommission.ClusterRole.yaml b/charts/redpanda/files/decommission.ClusterRole.yaml deleted file mode 100644 index 9f83f89653..0000000000 --- a/charts/redpanda/files/decommission.ClusterRole.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: decommission -rules: - - apiGroups: - - "" - resources: - - persistentvolumes - verbs: - - patch diff --git a/charts/redpanda/files/decommission.Role.yaml b/charts/redpanda/files/decommission.Role.yaml deleted file mode 100644 index 053fde21fc..0000000000 --- a/charts/redpanda/files/decommission.Role.yaml +++ /dev/null @@ -1,40 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: decommission - namespace: default -rules: - - apiGroups: - - "" - resources: - - events - verbs: - - create - - patch - - apiGroups: - - "" - resources: - - persistentvolumeclaims - verbs: - - delete - - get - - list - - watch - - apiGroups: - - "" - resources: - - pods - - secrets - verbs: - - get - - list - - watch - - apiGroups: - - apps - resources: - - statefulsets - verbs: - - get - - list - - watch diff --git a/charts/redpanda/files/pvcunbinder.ClusterRole.yaml b/charts/redpanda/files/pvcunbinder.ClusterRole.yaml deleted file mode 100644 index 6d831ae37c..0000000000 --- a/charts/redpanda/files/pvcunbinder.ClusterRole.yaml +++ /dev/null @@ -1,15 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: pvcunbinder -rules: - - apiGroups: - - "" - resources: - - persistentvolumes - verbs: - - get - - list - - patch - - watch diff --git a/charts/redpanda/files/pvcunbinder.Role.yaml b/charts/redpanda/files/pvcunbinder.Role.yaml deleted file mode 100644 index c3e0fa90d6..0000000000 --- a/charts/redpanda/files/pvcunbinder.Role.yaml +++ /dev/null @@ -1,17 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: pvcunbinder - namespace: default -rules: - - apiGroups: - - "" - resources: - - persistentvolumeclaims - - pods - verbs: - - delete - - get - - list - - watch diff --git a/charts/redpanda/files/rack-awareness.ClusterRole.yaml b/charts/redpanda/files/rack-awareness.ClusterRole.yaml deleted file mode 100644 index ebf5bed8ba..0000000000 --- a/charts/redpanda/files/rack-awareness.ClusterRole.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: rack-awareness -rules: - - apiGroups: - - "" - resources: - - nodes - verbs: - - get diff --git a/charts/redpanda/files/rpk-debug-bundle.Role.yaml b/charts/redpanda/files/rpk-debug-bundle.Role.yaml deleted file mode 100644 index 540c36e883..0000000000 --- a/charts/redpanda/files/rpk-debug-bundle.Role.yaml +++ /dev/null @@ -1,24 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: rpk-debug-bundle - namespace: default -rules: - - apiGroups: - - "" - resources: - - configmaps - - endpoints - - events - - limitranges - - persistentvolumeclaims - - pods - - pods/log - - replicationcontrollers - - resourcequotas - - serviceaccounts - - services - verbs: - - get - - list diff --git a/charts/redpanda/files/sidecar.Role.yaml b/charts/redpanda/files/sidecar.Role.yaml deleted file mode 100644 index 61f4a4328f..0000000000 --- a/charts/redpanda/files/sidecar.Role.yaml +++ /dev/null @@ -1,19 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: sidecar - namespace: default -rules: - - apiGroups: - - coordination.k8s.io - resources: - - leases - verbs: - - create - - delete - - get - - list - - patch - - update - - watch diff --git a/charts/redpanda/templates/NOTES.txt b/charts/redpanda/templates/NOTES.txt deleted file mode 100644 index 6992f8e36d..0000000000 --- a/charts/redpanda/templates/NOTES.txt +++ /dev/null @@ -1,26 +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. -*/}} - -{{- $warnings := (get ((include "redpanda.Warnings" (dict "a" (list .))) | fromJson) "r") }} -{{- range $_, $warning := $warnings }} -{{ $warning }} -{{- end }} - -{{- $notes := (get ((include "redpanda.Notes" (dict "a" (list .))) | fromJson) "r") }} -{{- range $_, $note := $notes }} -{{ $note }} -{{- end }} diff --git a/charts/redpanda/templates/_cert-issuers.go.tpl b/charts/redpanda/templates/_cert-issuers.go.tpl deleted file mode 100644 index 15ea88ee41..0000000000 --- a/charts/redpanda/templates/_cert-issuers.go.tpl +++ /dev/null @@ -1,57 +0,0 @@ -{{- /* Generated from "cert_issuers.go" */ -}} - -{{- define "redpanda.CertIssuers" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_25_issuers__ := (get (fromJson (include "redpanda.certIssuersAndCAs" (dict "a" (list $dot)))) "r") -}} -{{- $issuers := (index $_25_issuers__ 0) -}} -{{- $_ := (index $_25_issuers__ 1) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $issuers) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RootCAs" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_30___cas := (get (fromJson (include "redpanda.certIssuersAndCAs" (dict "a" (list $dot)))) "r") -}} -{{- $_ := (index $_30___cas 0) -}} -{{- $cas := (index $_30___cas 1) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $cas) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.certIssuersAndCAs" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $issuers := (coalesce nil) -}} -{{- $certs := (coalesce nil) -}} -{{- if (not (get (fromJson (include "redpanda.TLSEnabled" (dict "a" (list $dot)))) "r")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $issuers $certs)) | toJson -}} -{{- break -}} -{{- end -}} -{{- range $name, $data := $values.tls.certs -}} -{{- if (or (or (not (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $data.enabled true)))) "r")) (ne (toJson $data.secretRef) "null")) (ne (toJson $data.issuerRef) "null")) -}} -{{- continue -}} -{{- end -}} -{{- $issuers = (concat (default (list) $issuers) (list (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict) "status" (dict)) (mustMergeOverwrite (dict) (dict "apiVersion" "cert-manager.io/v1" "kind" "Issuer")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (printf `%s-%s-selfsigned-issuer` (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r") $name) "namespace" $dot.Release.Namespace "labels" (get (fromJson (include "redpanda.FullLabels" (dict "a" (list $dot)))) "r"))) "spec" (mustMergeOverwrite (dict) (mustMergeOverwrite (dict) (dict "selfSigned" (mustMergeOverwrite (dict) (dict)))) (dict)))))) -}} -{{- $certs = (concat (default (list) $certs) (list (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict "secretName" "" "issuerRef" (dict "name" "")) "status" (dict)) (mustMergeOverwrite (dict) (dict "apiVersion" "cert-manager.io/v1" "kind" "Certificate")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (printf `%s-%s-root-certificate` (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r") $name) "namespace" $dot.Release.Namespace "labels" (get (fromJson (include "redpanda.FullLabels" (dict "a" (list $dot)))) "r"))) "spec" (mustMergeOverwrite (dict "secretName" "" "issuerRef" (dict "name" "")) (dict "duration" (get (fromJson (include "_shims.time_Duration_String" (dict "a" (list (get (fromJson (include "_shims.time_ParseDuration" (dict "a" (list (default "43800h" $data.duration))))) "r"))))) "r") "isCA" true "commonName" (printf `%s-%s-root-certificate` (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r") $name) "secretName" (printf `%s-%s-root-certificate` (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r") $name) "privateKey" (mustMergeOverwrite (dict) (dict "algorithm" "ECDSA" "size" (256 | int))) "issuerRef" (mustMergeOverwrite (dict "name" "") (dict "name" (printf `%s-%s-selfsigned-issuer` (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r") $name) "kind" "Issuer" "group" "cert-manager.io")))))))) -}} -{{- $issuers = (concat (default (list) $issuers) (list (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict) "status" (dict)) (mustMergeOverwrite (dict) (dict "apiVersion" "cert-manager.io/v1" "kind" "Issuer")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (printf `%s-%s-root-issuer` (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r") $name) "namespace" $dot.Release.Namespace "labels" (get (fromJson (include "redpanda.FullLabels" (dict "a" (list $dot)))) "r"))) "spec" (mustMergeOverwrite (dict) (mustMergeOverwrite (dict) (dict "ca" (mustMergeOverwrite (dict "secretName" "") (dict "secretName" (printf `%s-%s-root-certificate` (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r") $name))))) (dict)))))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $issuers $certs)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/redpanda/templates/_certs.go.tpl b/charts/redpanda/templates/_certs.go.tpl deleted file mode 100644 index f436f80b28..0000000000 --- a/charts/redpanda/templates/_certs.go.tpl +++ /dev/null @@ -1,71 +0,0 @@ -{{- /* Generated from "certs.go" */ -}} - -{{- define "redpanda.ClientCerts" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (not (get (fromJson (include "redpanda.TLSEnabled" (dict "a" (list $dot)))) "r")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $values := $dot.Values.AsMap -}} -{{- $fullname := (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r") -}} -{{- $service := (get (fromJson (include "redpanda.ServiceName" (dict "a" (list $dot)))) "r") -}} -{{- $ns := $dot.Release.Namespace -}} -{{- $domain := (trimSuffix "." $values.clusterDomain) -}} -{{- $certs := (coalesce nil) -}} -{{- range $name, $data := $values.tls.certs -}} -{{- if (or (not (empty $data.secretRef)) (not (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $data.enabled true)))) "r"))) -}} -{{- continue -}} -{{- end -}} -{{- $names := (coalesce nil) -}} -{{- if (or (eq (toJson $data.issuerRef) "null") (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $data.applyInternalDNSNames false)))) "r")) -}} -{{- $names = (concat (default (list) $names) (list (printf "%s-cluster.%s.%s.svc.%s" $fullname $service $ns $domain))) -}} -{{- $names = (concat (default (list) $names) (list (printf "%s-cluster.%s.%s.svc" $fullname $service $ns))) -}} -{{- $names = (concat (default (list) $names) (list (printf "%s-cluster.%s.%s" $fullname $service $ns))) -}} -{{- $names = (concat (default (list) $names) (list (printf "*.%s-cluster.%s.%s.svc.%s" $fullname $service $ns $domain))) -}} -{{- $names = (concat (default (list) $names) (list (printf "*.%s-cluster.%s.%s.svc" $fullname $service $ns))) -}} -{{- $names = (concat (default (list) $names) (list (printf "*.%s-cluster.%s.%s" $fullname $service $ns))) -}} -{{- $names = (concat (default (list) $names) (list (printf "%s.%s.svc.%s" $service $ns $domain))) -}} -{{- $names = (concat (default (list) $names) (list (printf "%s.%s.svc" $service $ns))) -}} -{{- $names = (concat (default (list) $names) (list (printf "%s.%s" $service $ns))) -}} -{{- $names = (concat (default (list) $names) (list (printf "*.%s.%s.svc.%s" $service $ns $domain))) -}} -{{- $names = (concat (default (list) $names) (list (printf "*.%s.%s.svc" $service $ns))) -}} -{{- $names = (concat (default (list) $names) (list (printf "*.%s.%s" $service $ns))) -}} -{{- end -}} -{{- if (ne (toJson $values.external.domain) "null") -}} -{{- $names = (concat (default (list) $names) (list (tpl $values.external.domain $dot))) -}} -{{- $names = (concat (default (list) $names) (list (printf "*.%s" (tpl $values.external.domain $dot)))) -}} -{{- end -}} -{{- $duration := (default "43800h" $data.duration) -}} -{{- $issuerRef := (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $data.issuerRef (mustMergeOverwrite (dict "name" "") (dict "kind" "Issuer" "group" "cert-manager.io" "name" (printf "%s-%s-root-issuer" $fullname $name))))))) "r") -}} -{{- $certs = (concat (default (list) $certs) (list (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict "secretName" "" "issuerRef" (dict "name" "")) "status" (dict)) (mustMergeOverwrite (dict) (dict "apiVersion" "cert-manager.io/v1" "kind" "Certificate")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (printf "%s-%s-cert" $fullname $name) "labels" (get (fromJson (include "redpanda.FullLabels" (dict "a" (list $dot)))) "r") "namespace" $dot.Release.Namespace)) "spec" (mustMergeOverwrite (dict "secretName" "" "issuerRef" (dict "name" "")) (dict "dnsNames" $names "duration" (get (fromJson (include "_shims.time_Duration_String" (dict "a" (list (get (fromJson (include "_shims.time_ParseDuration" (dict "a" (list $duration)))) "r"))))) "r") "isCA" false "issuerRef" $issuerRef "secretName" (printf "%s-%s-cert" $fullname $name) "privateKey" (mustMergeOverwrite (dict) (dict "algorithm" "ECDSA" "size" (256 | int))))))))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $name := $values.listeners.kafka.tls.cert -}} -{{- $_99_data_ok := (get (fromJson (include "_shims.dicttest" (dict "a" (list $values.tls.certs $name (dict "enabled" (coalesce nil) "caEnabled" false "applyInternalDNSNames" (coalesce nil) "duration" "" "issuerRef" (coalesce nil) "secretRef" (coalesce nil) "clientSecretRef" (coalesce nil)))))) "r") -}} -{{- $data := (index $_99_data_ok 0) -}} -{{- $ok := (index $_99_data_ok 1) -}} -{{- if (not $ok) -}} -{{- $_ := (fail (printf "Certificate %q referenced but not defined" $name)) -}} -{{- end -}} -{{- if (or (not (empty $data.secretRef)) (not (get (fromJson (include "redpanda.ClientAuthRequired" (dict "a" (list $dot)))) "r"))) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $certs) | toJson -}} -{{- break -}} -{{- end -}} -{{- $issuerRef := (mustMergeOverwrite (dict "name" "") (dict "group" "cert-manager.io" "kind" "Issuer" "name" (printf "%s-%s-root-issuer" $fullname $name))) -}} -{{- if (ne (toJson $data.issuerRef) "null") -}} -{{- $issuerRef = $data.issuerRef -}} -{{- $_ := (set $issuerRef "group" "cert-manager.io") -}} -{{- end -}} -{{- $duration := (default "43800h" $data.duration) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (concat (default (list) $certs) (list (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict "secretName" "" "issuerRef" (dict "name" "")) "status" (dict)) (mustMergeOverwrite (dict) (dict "apiVersion" "cert-manager.io/v1" "kind" "Certificate")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (printf "%s-client" $fullname) "labels" (get (fromJson (include "redpanda.FullLabels" (dict "a" (list $dot)))) "r"))) "spec" (mustMergeOverwrite (dict "secretName" "" "issuerRef" (dict "name" "")) (dict "commonName" (printf "%s-client" $fullname) "duration" (get (fromJson (include "_shims.time_Duration_String" (dict "a" (list (get (fromJson (include "_shims.time_ParseDuration" (dict "a" (list $duration)))) "r"))))) "r") "isCA" false "secretName" (printf "%s-client" $fullname) "privateKey" (mustMergeOverwrite (dict) (dict "algorithm" "ECDSA" "size" (256 | int))) "issuerRef" $issuerRef))))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/redpanda/templates/_chart.go.tpl b/charts/redpanda/templates/_chart.go.tpl deleted file mode 100644 index a57b6f1cab..0000000000 --- a/charts/redpanda/templates/_chart.go.tpl +++ /dev/null @@ -1,74 +0,0 @@ -{{- /* Generated from "chart.go" */ -}} - -{{- define "redpanda.render" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $manifests := (list (get (fromJson (include "redpanda.NodePortService" (dict "a" (list $dot)))) "r") (get (fromJson (include "redpanda.PodDisruptionBudget" (dict "a" (list $dot)))) "r") (get (fromJson (include "redpanda.ServiceAccount" (dict "a" (list $dot)))) "r") (get (fromJson (include "redpanda.ServiceInternal" (dict "a" (list $dot)))) "r") (get (fromJson (include "redpanda.ServiceMonitor" (dict "a" (list $dot)))) "r") (get (fromJson (include "redpanda.StatefulSet" (dict "a" (list $dot)))) "r") (get (fromJson (include "redpanda.PostInstallUpgradeJob" (dict "a" (list $dot)))) "r")) -}} -{{- range $_, $obj := (get (fromJson (include "redpanda.ConfigMaps" (dict "a" (list $dot)))) "r") -}} -{{- $manifests = (concat (default (list) $manifests) (list $obj)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- range $_, $obj := (get (fromJson (include "redpanda.CertIssuers" (dict "a" (list $dot)))) "r") -}} -{{- $manifests = (concat (default (list) $manifests) (list $obj)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- range $_, $obj := (get (fromJson (include "redpanda.RootCAs" (dict "a" (list $dot)))) "r") -}} -{{- $manifests = (concat (default (list) $manifests) (list $obj)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- range $_, $obj := (get (fromJson (include "redpanda.ClientCerts" (dict "a" (list $dot)))) "r") -}} -{{- $manifests = (concat (default (list) $manifests) (list $obj)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- range $_, $obj := (get (fromJson (include "redpanda.Roles" (dict "a" (list $dot)))) "r") -}} -{{- $manifests = (concat (default (list) $manifests) (list $obj)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- range $_, $obj := (get (fromJson (include "redpanda.ClusterRoles" (dict "a" (list $dot)))) "r") -}} -{{- $manifests = (concat (default (list) $manifests) (list $obj)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- range $_, $obj := (get (fromJson (include "redpanda.RoleBindings" (dict "a" (list $dot)))) "r") -}} -{{- $manifests = (concat (default (list) $manifests) (list $obj)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- range $_, $obj := (get (fromJson (include "redpanda.ClusterRoleBindings" (dict "a" (list $dot)))) "r") -}} -{{- $manifests = (concat (default (list) $manifests) (list $obj)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- range $_, $obj := (get (fromJson (include "redpanda.LoadBalancerServices" (dict "a" (list $dot)))) "r") -}} -{{- $manifests = (concat (default (list) $manifests) (list $obj)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- range $_, $obj := (get (fromJson (include "redpanda.Secrets" (dict "a" (list $dot)))) "r") -}} -{{- $manifests = (concat (default (list) $manifests) (list $obj)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $manifests = (concat (default (list) $manifests) (default (list) (get (fromJson (include "redpanda.consoleChartIntegration" (dict "a" (list $dot)))) "r"))) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $manifests) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/redpanda/templates/_configmap.go.tpl b/charts/redpanda/templates/_configmap.go.tpl deleted file mode 100644 index c5b0a83634..0000000000 --- a/charts/redpanda/templates/_configmap.go.tpl +++ /dev/null @@ -1,600 +0,0 @@ -{{- /* Generated from "configmap.tpl.go" */ -}} - -{{- define "redpanda.ConfigMaps" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $cms := (list (get (fromJson (include "redpanda.RedpandaConfigMap" (dict "a" (list $dot)))) "r") (get (fromJson (include "redpanda.RPKProfile" (dict "a" (list $dot)))) "r")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $cms) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RedpandaConfigMap" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil))) (mustMergeOverwrite (dict) (dict "kind" "ConfigMap" "apiVersion" "v1")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r") "namespace" $dot.Release.Namespace "labels" (get (fromJson (include "redpanda.FullLabels" (dict "a" (list $dot)))) "r"))) "data" (dict "bootstrap.yaml" (get (fromJson (include "redpanda.BootstrapFile" (dict "a" (list $dot)))) "r") "redpanda.yaml" (get (fromJson (include "redpanda.RedpandaConfigFile" (dict "a" (list $dot true)))) "r"))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.BootstrapFile" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $bootstrap := (dict "kafka_enable_authorization" (get (fromJson (include "redpanda.Auth.IsSASLEnabled" (dict "a" (list $values.auth)))) "r") "enable_sasl" (get (fromJson (include "redpanda.Auth.IsSASLEnabled" (dict "a" (list $values.auth)))) "r") "enable_rack_awareness" $values.rackAwareness.enabled "storage_min_free_bytes" ((get (fromJson (include "redpanda.Storage.StorageMinFreeBytes" (dict "a" (list $values.storage)))) "r") | int64)) -}} -{{- $bootstrap = (merge (dict) $bootstrap (get (fromJson (include "redpanda.AuditLogging.Translate" (dict "a" (list $values.auditLogging $dot (get (fromJson (include "redpanda.Auth.IsSASLEnabled" (dict "a" (list $values.auth)))) "r"))))) "r")) -}} -{{- $bootstrap = (merge (dict) $bootstrap (get (fromJson (include "redpanda.Logging.Translate" (dict "a" (list $values.logging)))) "r")) -}} -{{- $bootstrap = (merge (dict) $bootstrap (get (fromJson (include "redpanda.TunableConfig.Translate" (dict "a" (list $values.config.tunable)))) "r")) -}} -{{- $bootstrap = (merge (dict) $bootstrap (get (fromJson (include "redpanda.ClusterConfig.Translate" (dict "a" (list $values.config.cluster)))) "r")) -}} -{{- $bootstrap = (merge (dict) $bootstrap (get (fromJson (include "redpanda.Auth.Translate" (dict "a" (list $values.auth (get (fromJson (include "redpanda.Auth.IsSASLEnabled" (dict "a" (list $values.auth)))) "r"))))) "r")) -}} -{{- $bootstrap = (merge (dict) $bootstrap (get (fromJson (include "redpanda.TieredStorageConfig.Translate" (dict "a" (list (deepCopy (get (fromJson (include "redpanda.Storage.GetTieredStorageConfig" (dict "a" (list $values.storage)))) "r")) $values.storage.tiered.credentialsSecretRef)))) "r")) -}} -{{- $_80___ok_1 := (get (fromJson (include "_shims.dicttest" (dict "a" (list $values.config.cluster "default_topic_replications" (coalesce nil))))) "r") -}} -{{- $_ := (index $_80___ok_1 0) -}} -{{- $ok_1 := (index $_80___ok_1 1) -}} -{{- if (and (not $ok_1) (ge ($values.statefulset.replicas | int) (3 | int))) -}} -{{- $_ := (set $bootstrap "default_topic_replications" (3 | int)) -}} -{{- end -}} -{{- $_85___ok_2 := (get (fromJson (include "_shims.dicttest" (dict "a" (list $values.config.cluster "storage_min_free_bytes" (coalesce nil))))) "r") -}} -{{- $_ := (index $_85___ok_2 0) -}} -{{- $ok_2 := (index $_85___ok_2 1) -}} -{{- if (not $ok_2) -}} -{{- $_ := (set $bootstrap "storage_min_free_bytes" ((get (fromJson (include "redpanda.Storage.StorageMinFreeBytes" (dict "a" (list $values.storage)))) "r") | int64)) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (toYaml $bootstrap)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RedpandaConfigFile" -}} -{{- $dot := (index .a 0) -}} -{{- $includeNonHashableItems := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $redpanda := (dict "empty_seed_starts_cluster" false) -}} -{{- if $includeNonHashableItems -}} -{{- $_ := (set $redpanda "seed_servers" (get (fromJson (include "redpanda.Listeners.CreateSeedServers" (dict "a" (list $values.listeners ($values.statefulset.replicas | int) (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r") (get (fromJson (include "redpanda.InternalDomain" (dict "a" (list $dot)))) "r"))))) "r")) -}} -{{- end -}} -{{- $redpanda = (merge (dict) $redpanda (get (fromJson (include "redpanda.NodeConfig.Translate" (dict "a" (list $values.config.node)))) "r")) -}} -{{- $_ := (get (fromJson (include "redpanda.configureListeners" (dict "a" (list $redpanda $dot)))) "r") -}} -{{- $redpandaYaml := (dict "redpanda" $redpanda "schema_registry" (get (fromJson (include "redpanda.schemaRegistry" (dict "a" (list $dot)))) "r") "pandaproxy" (get (fromJson (include "redpanda.pandaProxyListener" (dict "a" (list $dot)))) "r") "config_file" "/etc/redpanda/redpanda.yaml") -}} -{{- if $includeNonHashableItems -}} -{{- $_ := (set $redpandaYaml "rpk" (get (fromJson (include "redpanda.rpkNodeConfig" (dict "a" (list $dot)))) "r")) -}} -{{- $_ := (set $redpandaYaml "pandaproxy_client" (get (fromJson (include "redpanda.kafkaClient" (dict "a" (list $dot)))) "r")) -}} -{{- $_ := (set $redpandaYaml "schema_registry_client" (get (fromJson (include "redpanda.kafkaClient" (dict "a" (list $dot)))) "r")) -}} -{{- if (and (and (get (fromJson (include "redpanda.RedpandaAtLeast_23_3_0" (dict "a" (list $dot)))) "r") $values.auditLogging.enabled) (get (fromJson (include "redpanda.Auth.IsSASLEnabled" (dict "a" (list $values.auth)))) "r")) -}} -{{- $_ := (set $redpandaYaml "audit_log_client" (get (fromJson (include "redpanda.kafkaClient" (dict "a" (list $dot)))) "r")) -}} -{{- end -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (toYaml $redpandaYaml)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RPKProfile" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not $values.external.enabled) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil))) (mustMergeOverwrite (dict) (dict "kind" "ConfigMap" "apiVersion" "v1")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (printf "%s-rpk" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r")) "namespace" $dot.Release.Namespace "labels" (get (fromJson (include "redpanda.FullLabels" (dict "a" (list $dot)))) "r"))) "data" (dict "profile" (toYaml (get (fromJson (include "redpanda.rpkProfile" (dict "a" (list $dot)))) "r")))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.rpkProfile" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $brokerList := (list) -}} -{{- range $_, $i := untilStep (((0 | int) | int)|int) (($values.statefulset.replicas | int)|int) (1|int) -}} -{{- $brokerList = (concat (default (list) $brokerList) (list (printf "%s:%d" (get (fromJson (include "redpanda.advertisedHost" (dict "a" (list $dot $i)))) "r") (((get (fromJson (include "redpanda.advertisedKafkaPort" (dict "a" (list $dot $i)))) "r") | int) | int)))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $adminAdvertisedList := (list) -}} -{{- range $_, $i := untilStep (((0 | int) | int)|int) (($values.statefulset.replicas | int)|int) (1|int) -}} -{{- $adminAdvertisedList = (concat (default (list) $adminAdvertisedList) (list (printf "%s:%d" (get (fromJson (include "redpanda.advertisedHost" (dict "a" (list $dot $i)))) "r") (((get (fromJson (include "redpanda.advertisedAdminPort" (dict "a" (list $dot $i)))) "r") | int) | int)))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $schemaAdvertisedList := (list) -}} -{{- range $_, $i := untilStep (((0 | int) | int)|int) (($values.statefulset.replicas | int)|int) (1|int) -}} -{{- $schemaAdvertisedList = (concat (default (list) $schemaAdvertisedList) (list (printf "%s:%d" (get (fromJson (include "redpanda.advertisedHost" (dict "a" (list $dot $i)))) "r") (((get (fromJson (include "redpanda.advertisedSchemaPort" (dict "a" (list $dot $i)))) "r") | int) | int)))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $kafkaTLS := (get (fromJson (include "redpanda.rpkKafkaClientTLSConfiguration" (dict "a" (list $dot)))) "r") -}} -{{- $_175___ok_3 := (get (fromJson (include "_shims.dicttest" (dict "a" (list $kafkaTLS "ca_file" (coalesce nil))))) "r") -}} -{{- $_ := (index $_175___ok_3 0) -}} -{{- $ok_3 := (index $_175___ok_3 1) -}} -{{- if $ok_3 -}} -{{- $_ := (set $kafkaTLS "ca_file" "ca.crt") -}} -{{- end -}} -{{- $adminTLS := (get (fromJson (include "redpanda.rpkAdminAPIClientTLSConfiguration" (dict "a" (list $dot)))) "r") -}} -{{- $_181___ok_4 := (get (fromJson (include "_shims.dicttest" (dict "a" (list $adminTLS "ca_file" (coalesce nil))))) "r") -}} -{{- $_ := (index $_181___ok_4 0) -}} -{{- $ok_4 := (index $_181___ok_4 1) -}} -{{- if $ok_4 -}} -{{- $_ := (set $adminTLS "ca_file" "ca.crt") -}} -{{- end -}} -{{- $schemaTLS := (get (fromJson (include "redpanda.rpkSchemaRegistryClientTLSConfiguration" (dict "a" (list $dot)))) "r") -}} -{{- $_187___ok_5 := (get (fromJson (include "_shims.dicttest" (dict "a" (list $schemaTLS "ca_file" (coalesce nil))))) "r") -}} -{{- $_ := (index $_187___ok_5 0) -}} -{{- $ok_5 := (index $_187___ok_5 1) -}} -{{- if $ok_5 -}} -{{- $_ := (set $schemaTLS "ca_file" "ca.crt") -}} -{{- end -}} -{{- $ka := (dict "brokers" $brokerList "tls" (coalesce nil)) -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $kafkaTLS)))) "r") | int) (0 | int)) -}} -{{- $_ := (set $ka "tls" $kafkaTLS) -}} -{{- end -}} -{{- $aa := (dict "addresses" $adminAdvertisedList "tls" (coalesce nil)) -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $adminTLS)))) "r") | int) (0 | int)) -}} -{{- $_ := (set $aa "tls" $adminTLS) -}} -{{- end -}} -{{- $sa := (dict "addresses" $schemaAdvertisedList "tls" (coalesce nil)) -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $schemaTLS)))) "r") | int) (0 | int)) -}} -{{- $_ := (set $sa "tls" $schemaTLS) -}} -{{- end -}} -{{- $result := (dict "name" (get (fromJson (include "redpanda.getFirstExternalKafkaListener" (dict "a" (list $dot)))) "r") "kafka_api" $ka "admin_api" $aa "schema_registry" $sa) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $result) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.advertisedKafkaPort" -}} -{{- $dot := (index .a 0) -}} -{{- $i := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $externalKafkaListenerName := (get (fromJson (include "redpanda.getFirstExternalKafkaListener" (dict "a" (list $dot)))) "r") -}} -{{- $listener := (ternary (index $values.listeners.kafka.external $externalKafkaListenerName) (dict "enabled" (coalesce nil) "advertisedPorts" (coalesce nil) "port" 0 "nodePort" (coalesce nil) "tls" (coalesce nil)) (hasKey $values.listeners.kafka.external $externalKafkaListenerName)) -}} -{{- $port := (($values.listeners.kafka.port | int) | int) -}} -{{- if (gt (($listener.port | int) | int) ((1 | int) | int)) -}} -{{- $port = (($listener.port | int) | int) -}} -{{- end -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $listener.advertisedPorts)))) "r") | int) (1 | int)) -}} -{{- $port = ((index $listener.advertisedPorts $i) | int) -}} -{{- else -}}{{- if (eq ((get (fromJson (include "_shims.len" (dict "a" (list $listener.advertisedPorts)))) "r") | int) (1 | int)) -}} -{{- $port = ((index $listener.advertisedPorts (0 | int)) | int) -}} -{{- end -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $port) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.advertisedAdminPort" -}} -{{- $dot := (index .a 0) -}} -{{- $i := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $keys := (keys $values.listeners.admin.external) -}} -{{- $_ := (sortAlpha $keys) -}} -{{- $externalAdminListenerName := (first $keys) -}} -{{- $listener := (ternary (index $values.listeners.admin.external (get (fromJson (include "_shims.typeassertion" (dict "a" (list "string" $externalAdminListenerName)))) "r")) (dict "enabled" (coalesce nil) "advertisedPorts" (coalesce nil) "port" 0 "nodePort" (coalesce nil) "tls" (coalesce nil)) (hasKey $values.listeners.admin.external (get (fromJson (include "_shims.typeassertion" (dict "a" (list "string" $externalAdminListenerName)))) "r"))) -}} -{{- $port := (($values.listeners.admin.port | int) | int) -}} -{{- if (gt (($listener.port | int) | int) (1 | int)) -}} -{{- $port = (($listener.port | int) | int) -}} -{{- end -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $listener.advertisedPorts)))) "r") | int) (1 | int)) -}} -{{- $port = ((index $listener.advertisedPorts $i) | int) -}} -{{- else -}}{{- if (eq ((get (fromJson (include "_shims.len" (dict "a" (list $listener.advertisedPorts)))) "r") | int) (1 | int)) -}} -{{- $port = ((index $listener.advertisedPorts (0 | int)) | int) -}} -{{- end -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $port) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.advertisedSchemaPort" -}} -{{- $dot := (index .a 0) -}} -{{- $i := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $keys := (keys $values.listeners.schemaRegistry.external) -}} -{{- $_ := (sortAlpha $keys) -}} -{{- $externalSchemaListenerName := (first $keys) -}} -{{- $listener := (ternary (index $values.listeners.schemaRegistry.external (get (fromJson (include "_shims.typeassertion" (dict "a" (list "string" $externalSchemaListenerName)))) "r")) (dict "enabled" (coalesce nil) "advertisedPorts" (coalesce nil) "port" 0 "nodePort" (coalesce nil) "tls" (coalesce nil)) (hasKey $values.listeners.schemaRegistry.external (get (fromJson (include "_shims.typeassertion" (dict "a" (list "string" $externalSchemaListenerName)))) "r"))) -}} -{{- $port := (($values.listeners.schemaRegistry.port | int) | int) -}} -{{- if (gt (($listener.port | int) | int) (1 | int)) -}} -{{- $port = (($listener.port | int) | int) -}} -{{- end -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $listener.advertisedPorts)))) "r") | int) (1 | int)) -}} -{{- $port = ((index $listener.advertisedPorts $i) | int) -}} -{{- else -}}{{- if (eq ((get (fromJson (include "_shims.len" (dict "a" (list $listener.advertisedPorts)))) "r") | int) (1 | int)) -}} -{{- $port = ((index $listener.advertisedPorts (0 | int)) | int) -}} -{{- end -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $port) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.advertisedHost" -}} -{{- $dot := (index .a 0) -}} -{{- $i := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $address := (printf "%s-%d" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r") ($i | int)) -}} -{{- if (ne (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.external.domain "")))) "r") "") -}} -{{- $address = (printf "%s.%s" $address (tpl $values.external.domain $dot)) -}} -{{- end -}} -{{- if (le ((get (fromJson (include "_shims.len" (dict "a" (list $values.external.addresses)))) "r") | int) (0 | int)) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $address) | toJson -}} -{{- break -}} -{{- end -}} -{{- if (eq ((get (fromJson (include "_shims.len" (dict "a" (list $values.external.addresses)))) "r") | int) (1 | int)) -}} -{{- $address = (index $values.external.addresses (0 | int)) -}} -{{- else -}} -{{- $address = (index $values.external.addresses $i) -}} -{{- end -}} -{{- if (ne (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.external.domain "")))) "r") "") -}} -{{- $address = (printf "%s.%s" $address (tpl $values.external.domain $dot)) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $address) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.getFirstExternalKafkaListener" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $keys := (keys $values.listeners.kafka.external) -}} -{{- $_ := (sortAlpha $keys) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "_shims.typeassertion" (dict "a" (list "string" (first $keys))))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.BrokerList" -}} -{{- $dot := (index .a 0) -}} -{{- $replicas := (index .a 1) -}} -{{- $port := (index .a 2) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $bl := (coalesce nil) -}} -{{- range $_, $i := untilStep (((0 | int) | int)|int) ($replicas|int) (1|int) -}} -{{- $bl = (concat (default (list) $bl) (list (printf "%s-%d.%s:%d" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r") $i (get (fromJson (include "redpanda.InternalDomain" (dict "a" (list $dot)))) "r") $port))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $bl) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.rpkNodeConfig" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $brokerList := (get (fromJson (include "redpanda.BrokerList" (dict "a" (list $dot ($values.statefulset.replicas | int) ($values.listeners.kafka.port | int))))) "r") -}} -{{- $adminTLS := (coalesce nil) -}} -{{- $tls_6 := (get (fromJson (include "redpanda.rpkAdminAPIClientTLSConfiguration" (dict "a" (list $dot)))) "r") -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $tls_6)))) "r") | int) (0 | int)) -}} -{{- $adminTLS = $tls_6 -}} -{{- end -}} -{{- $brokerTLS := (coalesce nil) -}} -{{- $tls_7 := (get (fromJson (include "redpanda.rpkKafkaClientTLSConfiguration" (dict "a" (list $dot)))) "r") -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $tls_7)))) "r") | int) (0 | int)) -}} -{{- $brokerTLS = $tls_7 -}} -{{- end -}} -{{- $schemaRegistryTLS := (coalesce nil) -}} -{{- $tls_8 := (get (fromJson (include "redpanda.rpkSchemaRegistryClientTLSConfiguration" (dict "a" (list $dot)))) "r") -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $tls_8)))) "r") | int) (0 | int)) -}} -{{- $schemaRegistryTLS = $tls_8 -}} -{{- end -}} -{{- $_372_lockMemory_overprovisioned_flags := (get (fromJson (include "redpanda.RedpandaAdditionalStartFlags" (dict "a" (list $values)))) "r") -}} -{{- $lockMemory := (index $_372_lockMemory_overprovisioned_flags 0) -}} -{{- $overprovisioned := (index $_372_lockMemory_overprovisioned_flags 1) -}} -{{- $flags := (index $_372_lockMemory_overprovisioned_flags 2) -}} -{{- $result := (dict "additional_start_flags" $flags "enable_memory_locking" $lockMemory "overprovisioned" $overprovisioned "kafka_api" (dict "brokers" $brokerList "tls" $brokerTLS) "admin_api" (dict "addresses" (get (fromJson (include "redpanda.Listeners.AdminList" (dict "a" (list $values.listeners ($values.statefulset.replicas | int) (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r") (get (fromJson (include "redpanda.InternalDomain" (dict "a" (list $dot)))) "r"))))) "r") "tls" $adminTLS) "schema_registry" (dict "addresses" (get (fromJson (include "redpanda.Listeners.SchemaRegistryList" (dict "a" (list $values.listeners ($values.statefulset.replicas | int) (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r") (get (fromJson (include "redpanda.InternalDomain" (dict "a" (list $dot)))) "r"))))) "r") "tls" $schemaRegistryTLS)) -}} -{{- $result = (merge (dict) $result (get (fromJson (include "redpanda.Tuning.Translate" (dict "a" (list $values.tuning)))) "r")) -}} -{{- $result = (merge (dict) $result (get (fromJson (include "redpanda.Config.CreateRPKConfiguration" (dict "a" (list $values.config)))) "r")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $result) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.rpkKafkaClientTLSConfiguration" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $tls := $values.listeners.kafka.tls -}} -{{- if (not (get (fromJson (include "redpanda.InternalTLS.IsEnabled" (dict "a" (list $tls $values.tls)))) "r")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (dict)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $result := (dict "ca_file" (get (fromJson (include "redpanda.InternalTLS.ServerCAPath" (dict "a" (list $tls $values.tls)))) "r")) -}} -{{- if $tls.requireClientAuth -}} -{{- $_ := (set $result "cert_file" (printf "%s/%s-client/tls.crt" "/etc/tls/certs" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r"))) -}} -{{- $_ := (set $result "key_file" (printf "%s/%s-client/tls.key" "/etc/tls/certs" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r"))) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $result) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.rpkAdminAPIClientTLSConfiguration" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $tls := $values.listeners.admin.tls -}} -{{- if (not (get (fromJson (include "redpanda.InternalTLS.IsEnabled" (dict "a" (list $tls $values.tls)))) "r")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (dict)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $result := (dict "ca_file" (get (fromJson (include "redpanda.InternalTLS.ServerCAPath" (dict "a" (list $tls $values.tls)))) "r")) -}} -{{- if $tls.requireClientAuth -}} -{{- $_ := (set $result "cert_file" (printf "%s/%s-client/tls.crt" "/etc/tls/certs" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r"))) -}} -{{- $_ := (set $result "key_file" (printf "%s/%s-client/tls.key" "/etc/tls/certs" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r"))) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $result) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.rpkSchemaRegistryClientTLSConfiguration" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $tls := $values.listeners.schemaRegistry.tls -}} -{{- if (not (get (fromJson (include "redpanda.InternalTLS.IsEnabled" (dict "a" (list $tls $values.tls)))) "r")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (dict)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $result := (dict "ca_file" (get (fromJson (include "redpanda.InternalTLS.ServerCAPath" (dict "a" (list $tls $values.tls)))) "r")) -}} -{{- if $tls.requireClientAuth -}} -{{- $_ := (set $result "cert_file" (printf "%s/%s-client/tls.crt" "/etc/tls/certs" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r"))) -}} -{{- $_ := (set $result "key_file" (printf "%s/%s-client/tls.key" "/etc/tls/certs" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r"))) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $result) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.kafkaClient" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $brokerList := (list) -}} -{{- range $_, $i := untilStep (((0 | int) | int)|int) (($values.statefulset.replicas | int)|int) (1|int) -}} -{{- $brokerList = (concat (default (list) $brokerList) (list (dict "address" (printf "%s-%d.%s" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r") $i (get (fromJson (include "redpanda.InternalDomain" (dict "a" (list $dot)))) "r")) "port" ($values.listeners.kafka.port | int)))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $kafkaTLS := $values.listeners.kafka.tls -}} -{{- $brokerTLS := (coalesce nil) -}} -{{- if (get (fromJson (include "redpanda.InternalTLS.IsEnabled" (dict "a" (list $values.listeners.kafka.tls $values.tls)))) "r") -}} -{{- $brokerTLS = (dict "enabled" true "require_client_auth" $kafkaTLS.requireClientAuth "truststore_file" (get (fromJson (include "redpanda.InternalTLS.ServerCAPath" (dict "a" (list $kafkaTLS $values.tls)))) "r")) -}} -{{- if $kafkaTLS.requireClientAuth -}} -{{- $_ := (set $brokerTLS "cert_file" (printf "%s/%s-client/tls.crt" "/etc/tls/certs" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r"))) -}} -{{- $_ := (set $brokerTLS "key_file" (printf "%s/%s-client/tls.key" "/etc/tls/certs" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r"))) -}} -{{- end -}} -{{- end -}} -{{- $cfg := (dict "brokers" $brokerList) -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $brokerTLS)))) "r") | int) (0 | int)) -}} -{{- $_ := (set $cfg "broker_tls" $brokerTLS) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $cfg) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.configureListeners" -}} -{{- $redpanda := (index .a 0) -}} -{{- $dot := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $defaultKafkaAuth := (coalesce nil) -}} -{{- if $values.auth.sasl.enabled -}} -{{- $defaultKafkaAuth = "sasl" -}} -{{- end -}} -{{- $_ := (set $redpanda "admin" (get (fromJson (include "redpanda.ListenerConfig.Listeners" (dict "a" (list $values.listeners.admin (coalesce nil))))) "r")) -}} -{{- $_ := (set $redpanda "kafka_api" (get (fromJson (include "redpanda.ListenerConfig.Listeners" (dict "a" (list $values.listeners.kafka $defaultKafkaAuth)))) "r")) -}} -{{- $_ := (set $redpanda "rpc_server" (get (fromJson (include "redpanda.rpcListeners" (dict "a" (list $dot)))) "r")) -}} -{{- $_ := (set $redpanda "admin_api_tls" (coalesce nil)) -}} -{{- $tls_9 := (get (fromJson (include "redpanda.ListenerConfig.ListenersTLS" (dict "a" (list $values.listeners.admin $values.tls)))) "r") -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $tls_9)))) "r") | int) (0 | int)) -}} -{{- $_ := (set $redpanda "admin_api_tls" $tls_9) -}} -{{- end -}} -{{- $_ := (set $redpanda "kafka_api_tls" (coalesce nil)) -}} -{{- $tls_10 := (get (fromJson (include "redpanda.ListenerConfig.ListenersTLS" (dict "a" (list $values.listeners.kafka $values.tls)))) "r") -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $tls_10)))) "r") | int) (0 | int)) -}} -{{- $_ := (set $redpanda "kafka_api_tls" $tls_10) -}} -{{- end -}} -{{- $tls_11 := (get (fromJson (include "redpanda.rpcListenersTLS" (dict "a" (list $dot)))) "r") -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $tls_11)))) "r") | int) (0 | int)) -}} -{{- $_ := (set $redpanda "rpc_server_tls" $tls_11) -}} -{{- end -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.pandaProxyListener" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $pandaProxy := (dict) -}} -{{- $pandaProxyAuth := (coalesce nil) -}} -{{- if (get (fromJson (include "redpanda.Auth.IsSASLEnabled" (dict "a" (list $values.auth)))) "r") -}} -{{- $pandaProxyAuth = "http_basic" -}} -{{- end -}} -{{- $_ := (set $pandaProxy "pandaproxy_api" (get (fromJson (include "redpanda.ListenerConfig.Listeners" (dict "a" (list $values.listeners.http $pandaProxyAuth)))) "r")) -}} -{{- $_ := (set $pandaProxy "pandaproxy_api_tls" (coalesce nil)) -}} -{{- $tls_12 := (get (fromJson (include "redpanda.ListenerConfig.ListenersTLS" (dict "a" (list $values.listeners.http $values.tls)))) "r") -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $tls_12)))) "r") | int) (0 | int)) -}} -{{- $_ := (set $pandaProxy "pandaproxy_api_tls" $tls_12) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $pandaProxy) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.schemaRegistry" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $schemaReg := (dict) -}} -{{- $_ := (set $schemaReg "schema_registry_api" (get (fromJson (include "redpanda.ListenerConfig.Listeners" (dict "a" (list $values.listeners.schemaRegistry (coalesce nil))))) "r")) -}} -{{- $_ := (set $schemaReg "schema_registry_api_tls" (coalesce nil)) -}} -{{- $tls_13 := (get (fromJson (include "redpanda.ListenerConfig.ListenersTLS" (dict "a" (list $values.listeners.schemaRegistry $values.tls)))) "r") -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $tls_13)))) "r") | int) (0 | int)) -}} -{{- $_ := (set $schemaReg "schema_registry_api_tls" $tls_13) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $schemaReg) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.rpcListenersTLS" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $r := $values.listeners.rpc -}} -{{- if (and (not ((or (or (get (fromJson (include "redpanda.RedpandaAtLeast_22_2_atleast_22_2_10" (dict "a" (list $dot)))) "r") (get (fromJson (include "redpanda.RedpandaAtLeast_22_3_atleast_22_3_13" (dict "a" (list $dot)))) "r")) (get (fromJson (include "redpanda.RedpandaAtLeast_23_1_2" (dict "a" (list $dot)))) "r")))) ((or (and (eq (toJson $r.tls.enabled) "null") $values.tls.enabled) (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $r.tls.enabled false)))) "r")))) -}} -{{- $_ := (fail (printf "Redpanda version v%s does not support TLS on the RPC port. Please upgrade. See technical service bulletin 2023-01." (trimPrefix "v" (get (fromJson (include "redpanda.Tag" (dict "a" (list $dot)))) "r")))) -}} -{{- end -}} -{{- if (not (get (fromJson (include "redpanda.InternalTLS.IsEnabled" (dict "a" (list $r.tls $values.tls)))) "r")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (dict)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $certName := $r.tls.cert -}} -{{- $_is_returning = true -}} -{{- (dict "r" (dict "enabled" true "cert_file" (printf "%s/%s/tls.crt" "/etc/tls/certs" $certName) "key_file" (printf "%s/%s/tls.key" "/etc/tls/certs" $certName) "require_client_auth" $r.tls.requireClientAuth "truststore_file" (get (fromJson (include "redpanda.InternalTLS.TrustStoreFilePath" (dict "a" (list $r.tls $values.tls)))) "r"))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.rpcListeners" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $_is_returning = true -}} -{{- (dict "r" (dict "address" "0.0.0.0" "port" ($values.listeners.rpc.port | int))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.createInternalListenerTLSCfg" -}} -{{- $tls := (index .a 0) -}} -{{- $internal := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (not (get (fromJson (include "redpanda.InternalTLS.IsEnabled" (dict "a" (list $internal $tls)))) "r")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (dict)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (dict "name" "internal" "enabled" true "cert_file" (printf "%s/%s/tls.crt" "/etc/tls/certs" $internal.cert) "key_file" (printf "%s/%s/tls.key" "/etc/tls/certs" $internal.cert) "require_client_auth" $internal.requireClientAuth "truststore_file" (get (fromJson (include "redpanda.InternalTLS.TrustStoreFilePath" (dict "a" (list $internal $tls)))) "r"))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RedpandaAdditionalStartFlags" -}} -{{- $values := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $flags := (get (fromJson (include "redpanda.RedpandaResources.GetRedpandaFlags" (dict "a" (list $values.resources)))) "r") -}} -{{- $_ := (set $flags "--default-log-level" $values.logging.logLevel) -}} -{{- if (eq (index $values.config.node "developer_mode") true) -}} -{{- $_ := (unset $flags "--reserve-memory") -}} -{{- end -}} -{{- range $key, $value := (get (fromJson (include "redpanda.ParseCLIArgs" (dict "a" (list $values.statefulset.additionalRedpandaCmdFlags)))) "r") -}} -{{- $_ := (set $flags $key $value) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $enabledOptions := (dict "true" true "1" true "" true) -}} -{{- $lockMemory := false -}} -{{- $_658_value_14_ok_15 := (get (fromJson (include "_shims.dicttest" (dict "a" (list $flags "--lock-memory" "")))) "r") -}} -{{- $value_14 := (index $_658_value_14_ok_15 0) -}} -{{- $ok_15 := (index $_658_value_14_ok_15 1) -}} -{{- if $ok_15 -}} -{{- $lockMemory = (ternary (index $enabledOptions $value_14) false (hasKey $enabledOptions $value_14)) -}} -{{- $_ := (unset $flags "--lock-memory") -}} -{{- end -}} -{{- $overprovisioned := false -}} -{{- $_665_value_16_ok_17 := (get (fromJson (include "_shims.dicttest" (dict "a" (list $flags "--overprovisioned" "")))) "r") -}} -{{- $value_16 := (index $_665_value_16_ok_17 0) -}} -{{- $ok_17 := (index $_665_value_16_ok_17 1) -}} -{{- if $ok_17 -}} -{{- $overprovisioned = (ternary (index $enabledOptions $value_16) false (hasKey $enabledOptions $value_16)) -}} -{{- $_ := (unset $flags "--overprovisioned") -}} -{{- end -}} -{{- $keys := (keys $flags) -}} -{{- $keys = (sortAlpha $keys) -}} -{{- $rendered := (coalesce nil) -}} -{{- range $_, $key := $keys -}} -{{- $value := (ternary (index $flags $key) "" (hasKey $flags $key)) -}} -{{- if (eq $value "") -}} -{{- $rendered = (concat (default (list) $rendered) (list $key)) -}} -{{- else -}} -{{- $rendered = (concat (default (list) $rendered) (list (printf "%s=%s" $key $value))) -}} -{{- end -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $lockMemory $overprovisioned $rendered)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/redpanda/templates/_console.go.tpl b/charts/redpanda/templates/_console.go.tpl deleted file mode 100644 index 2fd60bd628..0000000000 --- a/charts/redpanda/templates/_console.go.tpl +++ /dev/null @@ -1,151 +0,0 @@ -{{- /* Generated from "console.tpl.go" */ -}} - -{{- define "redpanda.consoleChartIntegration" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values -}} -{{- if (not (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.console.enabled true)))) "r")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $consoleDot := (index $dot.Subcharts "console") -}} -{{- $loadedValues := $consoleDot.Values -}} -{{- $consoleValue := $consoleDot.Values -}} -{{- $license_1 := $values.enterprise.license -}} -{{- if (and (ne $license_1 "") (not (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.console.secret.create false)))) "r"))) -}} -{{- $_ := (set $consoleValue.secret "create" true) -}} -{{- $_ := (set $consoleValue.secret "license" $license_1) -}} -{{- end -}} -{{- if (not (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.console.configmap.create false)))) "r")) -}} -{{- $_ := (set $consoleValue.configmap "create" true) -}} -{{- $_ := (set $consoleValue "config" (get (fromJson (include "redpanda.ConsoleConfig" (dict "a" (list $dot)))) "r")) -}} -{{- end -}} -{{- if (not (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.console.deployment.create false)))) "r")) -}} -{{- $_ := (set $consoleValue.deployment "create" true) -}} -{{- if (get (fromJson (include "redpanda.Auth.IsSASLEnabled" (dict "a" (list $values.auth)))) "r") -}} -{{- $command := (list "sh" "-c" (printf "%s%s" (printf "%s%s" (printf "%s%s" (printf "%s%s" (printf "%s%s" (printf "%s%s" (printf "%s%s" "set -e; IFS=':' read -r KAFKA_SASL_USERNAME KAFKA_SASL_PASSWORD KAFKA_SASL_MECHANISM < <(grep \"\" $(find /mnt/users/* -print));" (printf " KAFKA_SASL_MECHANISM=${KAFKA_SASL_MECHANISM:-%s};" (get (fromJson (include "redpanda.GetSASLMechanism" (dict "a" (list $dot)))) "r"))) " export KAFKA_SASL_USERNAME KAFKA_SASL_PASSWORD KAFKA_SASL_MECHANISM;") " export KAFKA_SCHEMAREGISTRY_USERNAME=$KAFKA_SASL_USERNAME;") " export KAFKA_SCHEMAREGISTRY_PASSWORD=$KAFKA_SASL_PASSWORD;") " export REDPANDA_ADMINAPI_USERNAME=$KAFKA_SASL_USERNAME;") " export REDPANDA_ADMINAPI_PASSWORD=$KAFKA_SASL_PASSWORD;") " /app/console $@") " --") -}} -{{- $_ := (set $consoleValue.deployment "command" $command) -}} -{{- end -}} -{{- $secret_2 := $values.enterprise.licenseSecretRef -}} -{{- if (ne (toJson $secret_2) "null") -}} -{{- $_ := (set $consoleValue "licenseSecretRef" $secret_2) -}} -{{- end -}} -{{- $_ := (set $consoleValue "extraVolumes" (get (fromJson (include "redpanda.consoleTLSVolumes" (dict "a" (list $dot)))) "r")) -}} -{{- $_ := (set $consoleValue "extraVolumeMounts" (get (fromJson (include "redpanda.consoleTLSVolumesMounts" (dict "a" (list $dot)))) "r")) -}} -{{- $_ := (set $consoleDot "Values" $consoleValue) -}} -{{- $cfg := (get (fromJson (include "console.ConfigMap" (dict "a" (list $consoleDot)))) "r") -}} -{{- if (eq (toJson $consoleValue.podAnnotations) "null") -}} -{{- $_ := (set $consoleValue "podAnnotations" (dict)) -}} -{{- end -}} -{{- $_ := (set $consoleValue.podAnnotations "checksum-redpanda-chart/config" (sha256sum (toYaml $cfg))) -}} -{{- end -}} -{{- $_ := (set $consoleDot "Values" $consoleValue) -}} -{{- $manifests := (list (get (fromJson (include "console.Secret" (dict "a" (list $consoleDot)))) "r") (get (fromJson (include "console.ConfigMap" (dict "a" (list $consoleDot)))) "r") (get (fromJson (include "console.Deployment" (dict "a" (list $consoleDot)))) "r")) -}} -{{- $_ := (set $consoleDot "Values" $loadedValues) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $manifests) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.consoleTLSVolumesMounts" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $mounts := (list) -}} -{{- $sasl_3 := $values.auth.sasl -}} -{{- if (and $sasl_3.enabled (ne $sasl_3.secretRef "")) -}} -{{- $mounts = (concat (default (list) $mounts) (list (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" (printf "%s-users" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r")) "mountPath" "/mnt/users" "readOnly" true)))) -}} -{{- end -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list (get (fromJson (include "redpanda.Listeners.TrustStores" (dict "a" (list $values.listeners $values.tls)))) "r"))))) "r") | int) (0 | int)) -}} -{{- $mounts = (concat (default (list) $mounts) (list (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" "truststores" "mountPath" "/etc/truststores" "readOnly" true)))) -}} -{{- end -}} -{{- $visitedCert := (dict) -}} -{{- range $_, $tlsCfg := (list $values.listeners.kafka.tls $values.listeners.schemaRegistry.tls $values.listeners.admin.tls) -}} -{{- $_131___visited := (get (fromJson (include "_shims.dicttest" (dict "a" (list $visitedCert $tlsCfg.cert false)))) "r") -}} -{{- $_ := (index $_131___visited 0) -}} -{{- $visited := (index $_131___visited 1) -}} -{{- if (or (not (get (fromJson (include "redpanda.InternalTLS.IsEnabled" (dict "a" (list $tlsCfg $values.tls)))) "r")) $visited) -}} -{{- continue -}} -{{- end -}} -{{- $_ := (set $visitedCert $tlsCfg.cert true) -}} -{{- $mounts = (concat (default (list) $mounts) (list (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" (printf "redpanda-%s-cert" $tlsCfg.cert) "mountPath" (printf "%s/%s" "/etc/tls/certs" $tlsCfg.cert))))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (concat (default (list) $mounts) (default (list) $values.console.extraVolumeMounts))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.consoleTLSVolumes" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $volumes := (list) -}} -{{- $sasl_4 := $values.auth.sasl -}} -{{- if (and $sasl_4.enabled (ne $sasl_4.secretRef "")) -}} -{{- $volumes = (concat (default (list) $volumes) (list (mustMergeOverwrite (dict "name" "") (mustMergeOverwrite (dict) (dict "secret" (mustMergeOverwrite (dict) (dict "secretName" $values.auth.sasl.secretRef)))) (dict "name" (printf "%s-users" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r")))))) -}} -{{- end -}} -{{- $vol_5 := (get (fromJson (include "redpanda.Listeners.TrustStoreVolume" (dict "a" (list $values.listeners $values.tls)))) "r") -}} -{{- if (ne (toJson $vol_5) "null") -}} -{{- $volumes = (concat (default (list) $volumes) (list $vol_5)) -}} -{{- end -}} -{{- $visitedCert := (dict) -}} -{{- range $_, $tlsCfg := (list $values.listeners.kafka.tls $values.listeners.schemaRegistry.tls $values.listeners.admin.tls) -}} -{{- $_172___visited := (get (fromJson (include "_shims.dicttest" (dict "a" (list $visitedCert $tlsCfg.cert false)))) "r") -}} -{{- $_ := (index $_172___visited 0) -}} -{{- $visited := (index $_172___visited 1) -}} -{{- if (or (not (get (fromJson (include "redpanda.InternalTLS.IsEnabled" (dict "a" (list $tlsCfg $values.tls)))) "r")) $visited) -}} -{{- continue -}} -{{- end -}} -{{- $_ := (set $visitedCert $tlsCfg.cert true) -}} -{{- $volumes = (concat (default (list) $volumes) (list (mustMergeOverwrite (dict "name" "") (mustMergeOverwrite (dict) (dict "secret" (mustMergeOverwrite (dict) (dict "defaultMode" (0o420 | int) "secretName" (get (fromJson (include "redpanda.CertSecretName" (dict "a" (list $dot $tlsCfg.cert (get (fromJson (include "redpanda.TLSCertMap.MustGet" (dict "a" (list (deepCopy $values.tls.certs) $tlsCfg.cert)))) "r"))))) "r"))))) (dict "name" (printf "redpanda-%s-cert" $tlsCfg.cert))))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (concat (default (list) $volumes) (default (list) $values.console.extraVolumes))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.ConsoleConfig" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $schemaURLs := (coalesce nil) -}} -{{- if $values.listeners.schemaRegistry.enabled -}} -{{- $schema := "http" -}} -{{- if (get (fromJson (include "redpanda.InternalTLS.IsEnabled" (dict "a" (list $values.listeners.schemaRegistry.tls $values.tls)))) "r") -}} -{{- $schema = "https" -}} -{{- end -}} -{{- range $_, $i := untilStep (((0 | int) | int)|int) (($values.statefulset.replicas | int)|int) (1|int) -}} -{{- $schemaURLs = (concat (default (list) $schemaURLs) (list (printf "%s://%s-%d.%s:%d" $schema (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r") $i (get (fromJson (include "redpanda.InternalDomain" (dict "a" (list $dot)))) "r") ($values.listeners.schemaRegistry.port | int)))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- end -}} -{{- $schema := "http" -}} -{{- if (get (fromJson (include "redpanda.InternalTLS.IsEnabled" (dict "a" (list $values.listeners.admin.tls $values.tls)))) "r") -}} -{{- $schema = "https" -}} -{{- end -}} -{{- $c := (dict "kafka" (dict "brokers" (get (fromJson (include "redpanda.BrokerList" (dict "a" (list $dot ($values.statefulset.replicas | int) ($values.listeners.kafka.port | int))))) "r") "sasl" (dict "enabled" (get (fromJson (include "redpanda.Auth.IsSASLEnabled" (dict "a" (list $values.auth)))) "r")) "tls" (get (fromJson (include "redpanda.ListenerConfig.ConsoleTLS" (dict "a" (list $values.listeners.kafka $values.tls)))) "r")) "redpanda" (dict "adminApi" (dict "enabled" true "urls" (list (printf "%s://%s:%d" $schema (get (fromJson (include "redpanda.InternalDomain" (dict "a" (list $dot)))) "r") ($values.listeners.admin.port | int))) "tls" (get (fromJson (include "redpanda.ListenerConfig.ConsoleTLS" (dict "a" (list $values.listeners.admin $values.tls)))) "r"))) "schemaRegistry" (dict "enabled" $values.listeners.schemaRegistry.enabled "urls" $schemaURLs "tls" (get (fromJson (include "redpanda.ListenerConfig.ConsoleTLS" (dict "a" (list $values.listeners.schemaRegistry $values.tls)))) "r"))) -}} -{{- if (eq (toJson $values.console.config) "null") -}} -{{- $_ := (set $values.console "config" (dict)) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (merge (dict) $values.console.config $c)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/redpanda/templates/_example-commands.tpl b/charts/redpanda/templates/_example-commands.tpl deleted file mode 100644 index 9a5c695e32..0000000000 --- a/charts/redpanda/templates/_example-commands.tpl +++ /dev/null @@ -1,58 +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. -*/}} - - -{{/* -Any rpk command that's given to the user in NOTES.txt must be defined in this template file -and tested in a test. -*/}} - -{{/* tested in tests/test-kafka-sasl-status.yaml */}} -{{- define "rpk-acl-user-create" -}} -{{- $cmd := (get ((include "redpanda.RpkACLUserCreate" (dict "a" (list .))) | fromJson) "r") }} -{{- $cmd }} -{{- end -}} - -{{/* tested in tests/test-kafka-sasl-status.yaml */}} -{{- define "rpk-acl-create" -}} -{{- $cmd := (get ((include "redpanda.RpkACLCreate" (dict "a" (list .))) | fromJson) "r") }} -{{- $cmd }} -{{- end -}} - -{{/* tested in tests/test-kafka-sasl-status.yaml */}} -{{- define "rpk-cluster-info" -}} -{{- $cmd := (get ((include "redpanda.RpkClusterInfo" (dict "a" (list .))) | fromJson) "r") }} -{{- $cmd }} -{{- end -}} - -{{/* tested in tests/test-kafka-sasl-status.yaml */}} -{{- define "rpk-topic-create" -}} -{{- $cmd := (get ((include "redpanda.RpkTopicCreate" (dict "a" (list .))) | fromJson) "r") }} -{{- $cmd }} -{{- end -}} - -{{/* tested in tests/test-kafka-sasl-status.yaml */}} -{{- define "rpk-topic-describe" -}} -{{- $cmd := (get ((include "redpanda.RpkTopicDescribe" (dict "a" (list .))) | fromJson) "r") }} -{{- $cmd }} -{{- end -}} - -{{/* tested in tests/test-kafka-sasl-status.yaml */}} -{{- define "rpk-topic-delete" -}} -{{- $cmd := (get ((include "redpanda.RpkTopicDelete" (dict "a" (list .))) | fromJson) "r") }} -{{- $cmd }} -{{- end -}} \ No newline at end of file diff --git a/charts/redpanda/templates/_helpers.go.tpl b/charts/redpanda/templates/_helpers.go.tpl deleted file mode 100644 index a3a07f6538..0000000000 --- a/charts/redpanda/templates/_helpers.go.tpl +++ /dev/null @@ -1,636 +0,0 @@ -{{- /* Generated from "helpers.go" */ -}} - -{{- define "redpanda.ChartLabel" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "redpanda.cleanForK8s" (dict "a" (list (replace "+" "_" (printf "%s-%s" $dot.Chart.Name $dot.Chart.Version)))))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.Name" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_51_override_1_ok_2 := (get (fromJson (include "_shims.typetest" (dict "a" (list "string" (index $dot.Values "nameOverride") "")))) "r") -}} -{{- $override_1 := (index $_51_override_1_ok_2 0) -}} -{{- $ok_2 := (index $_51_override_1_ok_2 1) -}} -{{- if (and $ok_2 (ne $override_1 "")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "redpanda.cleanForK8s" (dict "a" (list $override_1)))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "redpanda.cleanForK8s" (dict "a" (list $dot.Chart.Name)))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.Fullname" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_61_override_3_ok_4 := (get (fromJson (include "_shims.typetest" (dict "a" (list "string" (index $dot.Values "fullnameOverride") "")))) "r") -}} -{{- $override_3 := (index $_61_override_3_ok_4 0) -}} -{{- $ok_4 := (index $_61_override_3_ok_4 1) -}} -{{- if (and $ok_4 (ne $override_3 "")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "redpanda.cleanForK8s" (dict "a" (list $override_3)))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "redpanda.cleanForK8s" (dict "a" (list $dot.Release.Name)))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.FullLabels" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $labels := (dict) -}} -{{- if (ne (toJson $values.commonLabels) "null") -}} -{{- $labels = $values.commonLabels -}} -{{- end -}} -{{- $defaults := (dict "helm.sh/chart" (get (fromJson (include "redpanda.ChartLabel" (dict "a" (list $dot)))) "r") "app.kubernetes.io/name" (get (fromJson (include "redpanda.Name" (dict "a" (list $dot)))) "r") "app.kubernetes.io/instance" $dot.Release.Name "app.kubernetes.io/managed-by" $dot.Release.Service "app.kubernetes.io/component" (get (fromJson (include "redpanda.Name" (dict "a" (list $dot)))) "r")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (merge (dict) $labels $defaults)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.Tag" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $tag := (toString $values.image.tag) -}} -{{- if (eq $tag "") -}} -{{- $tag = $dot.Chart.AppVersion -}} -{{- end -}} -{{- $pattern := "^v(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$" -}} -{{- if (not (regexMatch $pattern $tag)) -}} -{{- $_ := (fail "image.tag must start with a 'v' and be a valid semver") -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $tag) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.ServiceName" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (and (ne (toJson $values.service) "null") (ne (toJson $values.service.name) "null")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "redpanda.cleanForK8s" (dict "a" (list $values.service.name)))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.InternalDomain" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $service := (get (fromJson (include "redpanda.ServiceName" (dict "a" (list $dot)))) "r") -}} -{{- $ns := $dot.Release.Namespace -}} -{{- $_is_returning = true -}} -{{- (dict "r" (printf "%s.%s.svc.%s" $service $ns $values.clusterDomain)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.TLSEnabled" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if $values.tls.enabled -}} -{{- $_is_returning = true -}} -{{- (dict "r" true) | toJson -}} -{{- break -}} -{{- end -}} -{{- $listeners := (list "kafka" "admin" "schemaRegistry" "rpc" "http") -}} -{{- range $_, $listener := $listeners -}} -{{- $tlsCert := (dig "listeners" $listener "tls" "cert" false $dot.Values.AsMap) -}} -{{- $tlsEnabled := (dig "listeners" $listener "tls" "enabled" false $dot.Values.AsMap) -}} -{{- if (and (not (empty $tlsEnabled)) (not (empty $tlsCert))) -}} -{{- $_is_returning = true -}} -{{- (dict "r" true) | toJson -}} -{{- break -}} -{{- end -}} -{{- $external := (dig "listeners" $listener "external" false $dot.Values.AsMap) -}} -{{- if (empty $external) -}} -{{- continue -}} -{{- end -}} -{{- $keys := (keys (get (fromJson (include "_shims.typeassertion" (dict "a" (list (printf "map[%s]%s" "string" "interface {}") $external)))) "r")) -}} -{{- range $_, $key := $keys -}} -{{- $enabled := (dig "listeners" $listener "external" $key "enabled" false $dot.Values.AsMap) -}} -{{- $tlsCert := (dig "listeners" $listener "external" $key "tls" "cert" false $dot.Values.AsMap) -}} -{{- $tlsEnabled := (dig "listeners" $listener "external" $key "tls" "enabled" false $dot.Values.AsMap) -}} -{{- if (and (and (not (empty $enabled)) (not (empty $tlsCert))) (not (empty $tlsEnabled))) -}} -{{- $_is_returning = true -}} -{{- (dict "r" true) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" false) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.ClientAuthRequired" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $listeners := (list "kafka" "admin" "schemaRegistry" "rpc" "http") -}} -{{- range $_, $listener := $listeners -}} -{{- $required := (dig "listeners" $listener "tls" "requireClientAuth" false $dot.Values.AsMap) -}} -{{- if (not (empty $required)) -}} -{{- $_is_returning = true -}} -{{- (dict "r" true) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" false) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.DefaultMounts" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (concat (default (list) (list (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" "base-config" "mountPath" "/etc/redpanda")))) (default (list) (get (fromJson (include "redpanda.CommonMounts" (dict "a" (list $dot)))) "r")))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.CommonMounts" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $mounts := (list) -}} -{{- $sasl_5 := $values.auth.sasl -}} -{{- if (and $sasl_5.enabled (ne $sasl_5.secretRef "")) -}} -{{- $mounts = (concat (default (list) $mounts) (list (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" "users" "mountPath" "/etc/secrets/users" "readOnly" true)))) -}} -{{- end -}} -{{- if (get (fromJson (include "redpanda.TLSEnabled" (dict "a" (list $dot)))) "r") -}} -{{- $certNames := (keys $values.tls.certs) -}} -{{- $_ := (sortAlpha $certNames) -}} -{{- range $_, $name := $certNames -}} -{{- $cert := (ternary (index $values.tls.certs $name) (dict "enabled" (coalesce nil) "caEnabled" false "applyInternalDNSNames" (coalesce nil) "duration" "" "issuerRef" (coalesce nil) "secretRef" (coalesce nil) "clientSecretRef" (coalesce nil)) (hasKey $values.tls.certs $name)) -}} -{{- if (not (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $cert.enabled true)))) "r")) -}} -{{- continue -}} -{{- end -}} -{{- $mounts = (concat (default (list) $mounts) (list (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" (printf "redpanda-%s-cert" $name) "mountPath" (printf "%s/%s" "/etc/tls/certs" $name))))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $adminTLS := $values.listeners.admin.tls -}} -{{- if $adminTLS.requireClientAuth -}} -{{- $mounts = (concat (default (list) $mounts) (list (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" "mtls-client" "mountPath" (printf "%s/%s-client" "/etc/tls/certs" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r")))))) -}} -{{- end -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $mounts) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.DefaultVolumes" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (concat (default (list) (list (mustMergeOverwrite (dict "name" "") (mustMergeOverwrite (dict) (dict "configMap" (mustMergeOverwrite (dict) (mustMergeOverwrite (dict) (dict "name" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r"))) (dict)))) (dict "name" "base-config")))) (default (list) (get (fromJson (include "redpanda.CommonVolumes" (dict "a" (list $dot)))) "r")))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.CommonVolumes" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $volumes := (list) -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (get (fromJson (include "redpanda.TLSEnabled" (dict "a" (list $dot)))) "r") -}} -{{- $certNames := (keys $values.tls.certs) -}} -{{- $_ := (sortAlpha $certNames) -}} -{{- range $_, $name := $certNames -}} -{{- $cert := (ternary (index $values.tls.certs $name) (dict "enabled" (coalesce nil) "caEnabled" false "applyInternalDNSNames" (coalesce nil) "duration" "" "issuerRef" (coalesce nil) "secretRef" (coalesce nil) "clientSecretRef" (coalesce nil)) (hasKey $values.tls.certs $name)) -}} -{{- if (not (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $cert.enabled true)))) "r")) -}} -{{- continue -}} -{{- end -}} -{{- $volumes = (concat (default (list) $volumes) (list (mustMergeOverwrite (dict "name" "") (mustMergeOverwrite (dict) (dict "secret" (mustMergeOverwrite (dict) (dict "secretName" (get (fromJson (include "redpanda.CertSecretName" (dict "a" (list $dot $name $cert)))) "r") "defaultMode" (0o440 | int))))) (dict "name" (printf "redpanda-%s-cert" $name))))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $adminTLS := $values.listeners.admin.tls -}} -{{- $cert := (ternary (index $values.tls.certs $adminTLS.cert) (dict "enabled" (coalesce nil) "caEnabled" false "applyInternalDNSNames" (coalesce nil) "duration" "" "issuerRef" (coalesce nil) "secretRef" (coalesce nil) "clientSecretRef" (coalesce nil)) (hasKey $values.tls.certs $adminTLS.cert)) -}} -{{- if $adminTLS.requireClientAuth -}} -{{- $secretName := (printf "%s-client" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r")) -}} -{{- if (ne (toJson $cert.clientSecretRef) "null") -}} -{{- $secretName = $cert.clientSecretRef.name -}} -{{- end -}} -{{- $volumes = (concat (default (list) $volumes) (list (mustMergeOverwrite (dict "name" "") (mustMergeOverwrite (dict) (dict "secret" (mustMergeOverwrite (dict) (dict "secretName" $secretName "defaultMode" (0o440 | int))))) (dict "name" "mtls-client")))) -}} -{{- end -}} -{{- end -}} -{{- $sasl_6 := $values.auth.sasl -}} -{{- if (and $sasl_6.enabled (ne $sasl_6.secretRef "")) -}} -{{- $volumes = (concat (default (list) $volumes) (list (mustMergeOverwrite (dict "name" "") (mustMergeOverwrite (dict) (dict "secret" (mustMergeOverwrite (dict) (dict "secretName" $sasl_6.secretRef)))) (dict "name" "users")))) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $volumes) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.CertSecretName" -}} -{{- $dot := (index .a 0) -}} -{{- $certName := (index .a 1) -}} -{{- $cert := (index .a 2) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (ne (toJson $cert.secretRef) "null") -}} -{{- $_is_returning = true -}} -{{- (dict "r" $cert.secretRef.name) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (printf "%s-%s-cert" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r") $certName)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RedpandaAtLeast_22_2_0" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "redpanda.redpandaAtLeast" (dict "a" (list $dot ">=22.2.0-0 || <0.0.1-0")))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RedpandaAtLeast_22_3_0" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "redpanda.redpandaAtLeast" (dict "a" (list $dot ">=22.3.0-0 || <0.0.1-0")))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RedpandaAtLeast_23_1_1" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "redpanda.redpandaAtLeast" (dict "a" (list $dot ">=23.1.1-0 || <0.0.1-0")))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RedpandaAtLeast_23_1_2" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "redpanda.redpandaAtLeast" (dict "a" (list $dot ">=23.1.2-0 || <0.0.1-0")))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RedpandaAtLeast_22_3_atleast_22_3_13" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "redpanda.redpandaAtLeast" (dict "a" (list $dot ">=22.3.13-0,<22.4")))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RedpandaAtLeast_22_2_atleast_22_2_10" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "redpanda.redpandaAtLeast" (dict "a" (list $dot ">=22.2.10-0,<22.3")))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RedpandaAtLeast_23_2_1" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "redpanda.redpandaAtLeast" (dict "a" (list $dot ">=23.2.1-0 || <0.0.1-0")))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RedpandaAtLeast_23_3_0" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "redpanda.redpandaAtLeast" (dict "a" (list $dot ">=23.3.0-0 || <0.0.1-0")))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.redpandaAtLeast" -}} -{{- $dot := (index .a 0) -}} -{{- $constraint := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $version := (trimPrefix "v" (get (fromJson (include "redpanda.Tag" (dict "a" (list $dot)))) "r")) -}} -{{- $_356_result_err := (list (semverCompare $constraint $version) nil) -}} -{{- $result := (index $_356_result_err 0) -}} -{{- $err := (index $_356_result_err 1) -}} -{{- if (ne (toJson $err) "null") -}} -{{- $_ := (fail $err) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $result) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.cleanForK8s" -}} -{{- $in := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (trimSuffix "-" (trunc (63 | int) $in))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.StructuredTpl" -}} -{{- $dot := (index .a 0) -}} -{{- $in := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $untyped := $in -}} -{{- $expanded := (get (fromJson (include "redpanda.recursiveTpl" (dict "a" (list $dot $untyped)))) "r") -}} -{{- $_is_returning = true -}} -{{- (dict "r" (merge (dict) $expanded)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.recursiveTpl" -}} -{{- $dot := (index .a 0) -}} -{{- $data := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $kind := (kindOf $data) -}} -{{- if (eq $kind "map") -}} -{{- $m := (get (fromJson (include "_shims.typeassertion" (dict "a" (list (printf "map[%s]%s" "string" "interface {}") $data)))) "r") -}} -{{- range $key, $value := $m -}} -{{- $_ := (set $m $key (get (fromJson (include "redpanda.recursiveTpl" (dict "a" (list $dot $value)))) "r")) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $m) | toJson -}} -{{- break -}} -{{- else -}}{{- if (eq $kind "slice") -}} -{{- $s := (get (fromJson (include "_shims.typeassertion" (dict "a" (list (printf "[]%s" "interface {}") $data)))) "r") -}} -{{- $out := (coalesce nil) -}} -{{- range $i, $_ := $s -}} -{{- $out = (concat (default (list) $out) (list (get (fromJson (include "redpanda.recursiveTpl" (dict "a" (list $dot (index $s $i))))) "r"))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $out) | toJson -}} -{{- break -}} -{{- else -}}{{- if (and (eq $kind "string") (contains "{{" (get (fromJson (include "_shims.typeassertion" (dict "a" (list "string" $data)))) "r"))) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (tpl (get (fromJson (include "_shims.typeassertion" (dict "a" (list "string" $data)))) "r") $dot)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $data) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.StrategicMergePatch" -}} -{{- $overrides := (index .a 0) -}} -{{- $original := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $overridesClone := (fromJson (toJson $overrides)) -}} -{{- $overrides = (merge (dict) $overridesClone) -}} -{{- $overrideSpec := $overrides.spec -}} -{{- if (eq (toJson $overrideSpec) "null") -}} -{{- $overrideSpec = (mustMergeOverwrite (dict) (dict)) -}} -{{- end -}} -{{- $merged := (merge (dict) (mustMergeOverwrite (dict) (dict "metadata" (mustMergeOverwrite (dict) (dict "labels" $overrides.labels "annotations" $overrides.annotations)) "spec" $overrideSpec)) $original) -}} -{{- $_ := (set $merged.spec "initContainers" (get (fromJson (include "redpanda.mergeSliceBy" (dict "a" (list $original.spec.initContainers $overrideSpec.initContainers "name" "redpanda.mergeContainer")))) "r")) -}} -{{- $_ := (set $merged.spec "containers" (get (fromJson (include "redpanda.mergeSliceBy" (dict "a" (list $original.spec.containers $overrideSpec.containers "name" "redpanda.mergeContainer")))) "r")) -}} -{{- $_ := (set $merged.spec "volumes" (get (fromJson (include "redpanda.mergeSliceBy" (dict "a" (list $original.spec.volumes $overrideSpec.volumes "name" "redpanda.mergeVolume")))) "r")) -}} -{{- if (eq (toJson $merged.metadata.labels) "null") -}} -{{- $_ := (set $merged.metadata "labels" (dict)) -}} -{{- end -}} -{{- if (eq (toJson $merged.metadata.annotations) "null") -}} -{{- $_ := (set $merged.metadata "annotations" (dict)) -}} -{{- end -}} -{{- if (eq (toJson $merged.spec.nodeSelector) "null") -}} -{{- $_ := (set $merged.spec "nodeSelector" (dict)) -}} -{{- end -}} -{{- if (eq (toJson $merged.spec.tolerations) "null") -}} -{{- $_ := (set $merged.spec "tolerations" (list)) -}} -{{- end -}} -{{- if (eq (toJson $merged.spec.imagePullSecrets) "null") -}} -{{- $_ := (set $merged.spec "imagePullSecrets" (list)) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $merged) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.mergeSliceBy" -}} -{{- $original := (index .a 0) -}} -{{- $override := (index .a 1) -}} -{{- $mergeKey := (index .a 2) -}} -{{- $mergeFunc := (index .a 3) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $originalKeys := (dict) -}} -{{- $overrideByKey := (dict) -}} -{{- range $_, $el := $override -}} -{{- $_493_key_ok := (get (fromJson (include "_shims.get" (dict "a" (list $el $mergeKey)))) "r") -}} -{{- $key := (index $_493_key_ok 0) -}} -{{- $ok := (index $_493_key_ok 1) -}} -{{- if (not $ok) -}} -{{- continue -}} -{{- end -}} -{{- $_ := (set $overrideByKey $key $el) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $merged := (coalesce nil) -}} -{{- range $_, $el := $original -}} -{{- $_505_key__ := (get (fromJson (include "_shims.get" (dict "a" (list $el $mergeKey)))) "r") -}} -{{- $key := (index $_505_key__ 0) -}} -{{- $_ := (index $_505_key__ 1) -}} -{{- $_ := (set $originalKeys $key true) -}} -{{- $_507_elOverride_7_ok_8 := (get (fromJson (include "_shims.dicttest" (dict "a" (list $overrideByKey $key (coalesce nil))))) "r") -}} -{{- $elOverride_7 := (index $_507_elOverride_7_ok_8 0) -}} -{{- $ok_8 := (index $_507_elOverride_7_ok_8 1) -}} -{{- if $ok_8 -}} -{{- $merged = (concat (default (list) $merged) (list (get (fromJson (include $mergeFunc (dict "a" (list $el $elOverride_7)))) "r"))) -}} -{{- else -}} -{{- $merged = (concat (default (list) $merged) (list $el)) -}} -{{- end -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- range $_, $el := $override -}} -{{- $_517_key_ok := (get (fromJson (include "_shims.get" (dict "a" (list $el $mergeKey)))) "r") -}} -{{- $key := (index $_517_key_ok 0) -}} -{{- $ok := (index $_517_key_ok 1) -}} -{{- if (not $ok) -}} -{{- continue -}} -{{- end -}} -{{- $_522___ok_9 := (get (fromJson (include "_shims.dicttest" (dict "a" (list $originalKeys $key false)))) "r") -}} -{{- $_ := (index $_522___ok_9 0) -}} -{{- $ok_9 := (index $_522___ok_9 1) -}} -{{- if $ok_9 -}} -{{- continue -}} -{{- end -}} -{{- $merged = (concat (default (list) $merged) (list (merge (dict) $el))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $merged) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.mergeEnvVar" -}} -{{- $original := (index .a 0) -}} -{{- $overrides := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (merge (dict) $overrides)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.mergeVolume" -}} -{{- $original := (index .a 0) -}} -{{- $override := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (merge (dict) $override $original)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.mergeVolumeMount" -}} -{{- $original := (index .a 0) -}} -{{- $override := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (merge (dict) $override $original)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.mergeContainer" -}} -{{- $original := (index .a 0) -}} -{{- $override := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $merged := (merge (dict) $override $original) -}} -{{- $_ := (set $merged "env" (get (fromJson (include "redpanda.mergeSliceBy" (dict "a" (list $original.env $override.env "name" "redpanda.mergeEnvVar")))) "r")) -}} -{{- $_ := (set $merged "volumeMounts" (get (fromJson (include "redpanda.mergeSliceBy" (dict "a" (list $original.volumeMounts $override.volumeMounts "name" "redpanda.mergeVolumeMount")))) "r")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $merged) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.ParseCLIArgs" -}} -{{- $args := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $parsed := (dict) -}} -{{- $i := -1 -}} -{{- range $_, $_ := $args -}} -{{- $i = ((add $i (1 | int)) | int) -}} -{{- if (ge $i ((get (fromJson (include "_shims.len" (dict "a" (list $args)))) "r") | int)) -}} -{{- break -}} -{{- end -}} -{{- if (not (hasPrefix "-" (index $args $i))) -}} -{{- continue -}} -{{- end -}} -{{- $flag := (index $args $i) -}} -{{- $spl := (mustRegexSplit " |=" $flag (2 | int)) -}} -{{- if (eq ((get (fromJson (include "_shims.len" (dict "a" (list $spl)))) "r") | int) (2 | int)) -}} -{{- $_ := (set $parsed (index $spl (0 | int)) (index $spl (1 | int))) -}} -{{- continue -}} -{{- end -}} -{{- if (and (lt ((add $i (1 | int)) | int) ((get (fromJson (include "_shims.len" (dict "a" (list $args)))) "r") | int)) (not (hasPrefix "-" (index $args ((add $i (1 | int)) | int))))) -}} -{{- $_ := (set $parsed $flag (index $args ((add $i (1 | int)) | int))) -}} -{{- $i = ((add $i (1 | int)) | int) -}} -{{- continue -}} -{{- end -}} -{{- $_ := (set $parsed $flag "") -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $parsed) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/redpanda/templates/_helpers.tpl b/charts/redpanda/templates/_helpers.tpl deleted file mode 100644 index b187a4c677..0000000000 --- a/charts/redpanda/templates/_helpers.tpl +++ /dev/null @@ -1,340 +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. -*/}} -{{/* -Expand the name of the chart. -*/}} -{{- define "redpanda.name" -}} -{{- get ((include "redpanda.Name" (dict "a" (list .))) | fromJson) "r" }} -{{- end -}} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -*/}} -{{- define "redpanda.fullname" -}} -{{- get ((include "redpanda.Fullname" (dict "a" (list .))) | fromJson) "r" }} -{{- end -}} - -{{/* -Create a default service name -*/}} -{{- define "redpanda.servicename" -}} -{{- get ((include "redpanda.ServiceName" (dict "a" (list .))) | fromJson) "r" }} -{{- end -}} - -{{/* -full helm labels + common labels -*/}} -{{- define "full.labels" -}} -{{- (get ((include "redpanda.FullLabels" (dict "a" (list .))) | fromJson) "r") | toYaml }} -{{- end -}} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "redpanda.chart" -}} -{{- get ((include "redpanda.Chart" (dict "a" (list .))) | fromJson) "r" }} -{{- end }} - -{{/* -Create the name of the service account to use -*/}} -{{- define "redpanda.serviceAccountName" -}} -{{- get ((include "redpanda.ServiceAccountName" (dict "a" (list .))) | fromJson) "r" }} -{{- end }} - -{{/* -Use AppVersion if image.tag is not set -*/}} -{{- define "redpanda.tag" -}} -{{- get ((include "redpanda.Tag" (dict "a" (list .))) | fromJson) "r" }} -{{- end -}} - -{{/* Generate internal fqdn */}} -{{- define "redpanda.internal.domain" -}} -{{- get ((include "redpanda.InternalDomain" (dict "a" (list .))) | fromJson) "r" }} -{{- end -}} - -{{/* ConfigMap variables */}} -{{- define "admin-internal-tls-enabled" -}} -{{- toJson (dict "bool" (get ((include "redpanda.InternalTLS.IsEnabled" (dict "a" (list .Values.listeners.admin.tls .Values.tls))) | fromJson) "r")) -}} -{{- end -}} - -{{- define "kafka-internal-tls-enabled" -}} -{{- $listener := .Values.listeners.kafka -}} -{{- toJson (dict "bool" (and (dig "tls" "enabled" .Values.tls.enabled $listener) (not (empty (dig "tls" "cert" "" $listener))))) -}} -{{- end -}} - -{{- define "kafka-external-tls-cert" -}} -{{- dig "tls" "cert" .Values.listeners.kafka.tls.cert .listener -}} -{{- end -}} - -{{- define "http-internal-tls-enabled" -}} -{{- $listener := .Values.listeners.http -}} -{{- toJson (dict "bool" (and (dig "tls" "enabled" .Values.tls.enabled $listener) (not (empty (dig "tls" "cert" "" $listener))))) -}} -{{- end -}} - -{{- define "schemaRegistry-internal-tls-enabled" -}} -{{- $listener := .Values.listeners.schemaRegistry -}} -{{- toJson (dict "bool" (and (dig "tls" "enabled" .Values.tls.enabled $listener) (not (empty (dig "tls" "cert" "" $listener))))) -}} -{{- end -}} - -{{- define "tls-enabled" -}} -{{- $tlsenabled := get ((include "redpanda.TLSEnabled" (dict "a" (list .))) | fromJson) "r" }} -{{- toJson (dict "bool" $tlsenabled) -}} -{{- end -}} - -{{- define "sasl-enabled" -}} -{{- toJson (dict "bool" (dig "enabled" false .Values.auth.sasl)) -}} -{{- end -}} - -{{- define "admin-api-urls" -}} -{{ printf "${SERVICE_NAME}.%s" (include "redpanda.internal.domain" .) }}:{{.Values.listeners.admin.port }} -{{- end -}} - -{{- define "admin-api-service-url" -}} -{{ include "redpanda.internal.domain" .}}:{{.Values.listeners.admin.port }} -{{- end -}} - -{{- define "sasl-mechanism" -}} -{{- dig "sasl" "mechanism" "SCRAM-SHA-512" .Values.auth -}} -{{- end -}} - -{{- define "fail-on-insecure-sasl-logging" -}} -{{- if (include "sasl-enabled" .|fromJson).bool -}} - {{- $check := list - (include "redpanda-atleast-23-1-1" .|fromJson).bool - (include "redpanda-22-3-atleast-22-3-13" .|fromJson).bool - (include "redpanda-22-2-atleast-22-2-10" .|fromJson).bool - -}} - {{- if not (mustHas true $check) -}} - {{- fail "SASL is enabled and the redpanda version specified leaks secrets to the logs. Please choose a newer version of redpanda." -}} - {{- end -}} -{{- end -}} -{{- end -}} - -{{- define "fail-on-unsupported-helm-version" -}} - {{- $helmVer := (fromYaml (toYaml .Capabilities.HelmVersion)).version -}} - {{- if semverCompare "<3.8.0-0" $helmVer -}} - {{- fail (printf "helm version %s is not supported. Please use helm version v3.8.0 or newer." $helmVer) -}} - {{- end -}} -{{- end -}} - -{{- define "redpanda-atleast-22-2-0" -}} -{{- toJson (dict "bool" (get ((include "redpanda.RedpandaAtLeast_22_2_0" (dict "a" (list .))) | fromJson) "r")) }} -{{- end -}} -{{- define "redpanda-atleast-22-3-0" -}} -{{- toJson (dict "bool" (get ((include "redpanda.RedpandaAtLeast_22_3_0" (dict "a" (list .))) | fromJson) "r")) }} -{{- end -}} -{{- define "redpanda-atleast-23-1-1" -}} -{{- toJson (dict "bool" (get ((include "redpanda.RedpandaAtLeast_23_1_1" (dict "a" (list .))) | fromJson) "r")) }} -{{- end -}} -{{- define "redpanda-atleast-23-1-2" -}} -{{- toJson (dict "bool" (get ((include "redpanda.RedpandaAtLeast_23_1_2" (dict "a" (list .))) | fromJson) "r")) }} -{{- end -}} -{{- define "redpanda-22-3-atleast-22-3-13" -}} -{{- toJson (dict "bool" (get ((include "redpanda.RedpandaAtLeast_22_3_atleast_22_3_13" (dict "a" (list .))) | fromJson) "r")) }} -{{- end -}} -{{- define "redpanda-22-2-atleast-22-2-10" -}} -{{- toJson (dict "bool" (get ((include "redpanda.RedpandaAtLeast_22_2_atleast_22_2_10" (dict "a" (list .))) | fromJson) "r")) }} -{{- end -}} -{{- define "redpanda-atleast-23-2-1" -}} -{{- toJson (dict "bool" (get ((include "redpanda.RedpandaAtLeast_23_2_1" (dict "a" (list .))) | fromJson) "r")) }} -{{- end -}} -{{- define "redpanda-atleast-23-3-0" -}} -{{- toJson (dict "bool" (get ((include "redpanda.RedpandaAtLeast_23_3_0" (dict "a" (list .))) | fromJson) "r")) }} -{{- end -}} - -{{- define "redpanda-22-2-x-without-sasl" -}} -{{- $result := (include "redpanda-atleast-22-3-0" . | fromJson).bool -}} -{{- if or (include "sasl-enabled" . | fromJson).bool .Values.listeners.kafka.authenticationMethod -}} -{{- $result := false -}} -{{- end -}} -{{- toJson (dict "bool" $result) -}} -{{- end -}} - -{{- define "admin-tls-curl-flags" -}} - {{- $result := "" -}} - {{- if (include "admin-internal-tls-enabled" . | fromJson).bool -}} - {{- $path := (printf "/etc/tls/certs/%s" .Values.listeners.admin.tls.cert) -}} - {{- $result = (printf "--cacert %s/tls.crt" $path) -}} - {{- if .Values.listeners.admin.tls.requireClientAuth -}} - {{- $result = (printf "--cacert %s/ca.crt --cert %s/tls.crt --key %s/tls.key" $path $path $path) -}} - {{- end -}} - {{- end -}} - {{- $result -}} -{{- end -}} - -{{- define "admin-http-protocol" -}} - {{- $result := "http" -}} - {{- if (include "admin-internal-tls-enabled" . | fromJson).bool -}} - {{- $result = "https" -}} - {{- end -}} - {{- $result -}} -{{- end -}} - -{{- /* -advertised-port returns either the only advertised port if only one is specified, -or the port specified for this pod ordinal when there is a full list provided. - -This will return a string int or panic if there is more than one port provided, -but not enough ports for the number of replicas requested. -*/ -}} -{{- define "advertised-port" -}} - {{- $port := dig "port" .listenerVals.port .externalVals -}} - {{- if .externalVals.advertisedPorts -}} - {{- if eq (len .externalVals.advertisedPorts) 1 -}} - {{- $port = mustFirst .externalVals.advertisedPorts -}} - {{- else -}} - {{- $port = index .externalVals.advertisedPorts .replicaIndex -}} - {{- end -}} - {{- end -}} - {{ $port }} -{{- end -}} - -{{- /* -advertised-host returns a json string with the data needed for configuring the advertised listener -*/ -}} -{{- define "advertised-host" -}} - {{- $host := dict "name" .externalName "address" .externalAdvertiseAddress "port" .port -}} - {{- if .values.external.addresses -}} - {{- $address := "" -}} - {{- if gt (len .values.external.addresses) 1 -}} - {{- $address = (index .values.external.addresses .replicaIndex) -}} - {{- else -}} - {{- $address = (index .values.external.addresses 0) -}} - {{- end -}} - {{- if ( .values.external.domain | default "" ) }} - {{- $host = dict "name" .externalName "address" (printf "%s.%s" $address .values.external.domain) "port" .port -}} - {{- else -}} - {{- $host = dict "name" .externalName "address" $address "port" .port -}} - {{- end -}} - {{- end -}} - {{- toJson $host -}} -{{- end -}} - -{{- define "is-licensed" -}} -{{- toJson (dict "bool" (or (not (empty (include "enterprise-license" . ))) (not (empty (include "enterprise-secret" . ))))) -}} -{{- end -}} - -{{- define "seed-server-list" -}} - {{- $brokers := list -}} - {{- range $ordinal := until (.Values.statefulset.replicas | int) -}} - {{- $brokers = append $brokers (printf "%s-%d.%s" - (include "redpanda.fullname" $) - $ordinal - (include "redpanda.internal.domain" $)) - -}} - {{- end -}} - {{- toJson $brokers -}} -{{- end -}} - -{{- define "enterprise-license" -}} -{{- if dig "license" dict .Values.enterprise -}} - {{- .Values.enterprise.license -}} -{{- end -}} -{{- end -}} - -{{- define "enterprise-secret" -}} -{{- if ( dig "licenseSecretRef" dict .Values.enterprise ) -}} - {{- .Values.enterprise.licenseSecretRef -}} -{{- end -}} -{{- end -}} - -{{- define "enterprise-secret-name" -}} -{{- if ( dig "licenseSecretRef" dict .Values.enterprise ) -}} - {{- dig "name" "" .Values.enterprise.licenseSecretRef -}} -{{- end -}} -{{- end -}} - -{{- define "enterprise-secret-key" -}} -{{- if ( dig "licenseSecretRef" dict .Values.enterprise ) -}} - {{- dig "key" "" .Values.enterprise.licenseSecretRef -}} -{{- end -}} -{{- end -}} - -{{/* mounts that are common to all containers */}} -{{- define "common-mounts" -}} -{{- $mounts := get ((include "redpanda.CommonMounts" (dict "a" (list .))) | fromJson) "r" }} -{{- if $mounts -}} -{{- toYaml $mounts -}} -{{- end -}} -{{- end -}} - -{{/* mounts that are common to most containers */}} -{{- define "default-mounts" -}} -{{- $mounts := get ((include "redpanda.DefaultMounts" (dict "a" (list .))) | fromJson) "r" }} -{{- if $mounts -}} -{{- toYaml $mounts -}} -{{- end -}} -{{- end -}} - -{{/* volumes that are common to all pods */}} -{{- define "common-volumes" -}} -{{- $volumes := get ((include "redpanda.CommonVolumes" (dict "a" (list .))) | fromJson) "r" }} -{{- if $volumes -}} -{{- toYaml $volumes -}} -{{- end -}} -{{- end -}} - -{{/* the default set of volumes for most pods, except the sts pod */}} -{{- define "default-volumes" -}} -{{- $volumes := get ((include "redpanda.DefaultVolumes" (dict "a" (list .))) | fromJson) "r" }} -{{- if $volumes -}} -{{- toYaml $volumes -}} -{{- end -}} -{{- end -}} - -{{/* support legacy storage.tieredConfig */}} -{{- define "storage-tiered-config" -}} -{{- $cfg := get ((include "redpanda.StorageTieredConfig" (dict "a" (list .))) | fromJson) "r" }} -{{- if $cfg -}} -{{- toYaml $cfg -}} -{{- end -}} -{{- end -}} - -{{/* - rpk sasl environment variables - - this will return a string with the correct environment variables to use for SASL based on the - version of the redpada container being used -*/}} -{{- define "rpk-sasl-environment-variables" -}} -{{- if (include "redpanda-atleast-23-2-1" . | fromJson).bool -}} -RPK_USER RPK_PASS RPK_SASL_MECHANISM -{{- else -}} -REDPANDA_SASL_USERNAME REDPANDA_SASL_PASSWORD REDPANDA_SASL_MECHANISM -{{- end -}} -{{- end -}} - -{{- define "curl-options" -}} -{{- print " -svm3 --fail --retry \"120\" --retry-max-time \"120\" --retry-all-errors -o - -w \"\\nstatus=%{http_code} %{redirect_url} size=%{size_download} time=%{time_total} content-type=\\\"%{content_type}\\\"\\n\" "}} -{{- end -}} - -{{- define "advertised-address-template" -}} - {{- $prefixTemplate := dig "prefixTemplate" "" .externalListener -}} - {{- if empty $prefixTemplate -}} - {{- $prefixTemplate = dig "prefixTemplate" "" .externalVals -}} - {{- end -}} - {{ quote $prefixTemplate }} -{{- end -}} - -{{/* check if client auth is enabled for any of the listeners */}} -{{- define "client-auth-required" -}} -{{- $requireClientAuth := get ((include "redpanda.ClientAuthRequired" (dict "a" (list .))) | fromJson) "r" }} -{{- toJson (dict "bool" $requireClientAuth) -}} -{{- end -}} diff --git a/charts/redpanda/templates/_notes.go.tpl b/charts/redpanda/templates/_notes.go.tpl deleted file mode 100644 index 82cdb423ce..0000000000 --- a/charts/redpanda/templates/_notes.go.tpl +++ /dev/null @@ -1,167 +0,0 @@ -{{- /* Generated from "notes.go" */ -}} - -{{- define "redpanda.Warnings" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $warnings := (coalesce nil) -}} -{{- $w_1 := (get (fromJson (include "redpanda.cpuWarning" (dict "a" (list $dot)))) "r") -}} -{{- if (ne $w_1 "") -}} -{{- $warnings = (concat (default (list) $warnings) (list (printf `**Warning**: %s` $w_1))) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $warnings) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.cpuWarning" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $coresInMillis := ((get (fromJson (include "_shims.resource_MilliValue" (dict "a" (list $values.resources.cpu.cores)))) "r") | int64) -}} -{{- if (lt $coresInMillis (1000 | int64)) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (printf "%dm is below the minimum recommended CPU value for Redpanda" $coresInMillis)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" "") | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.Notes" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $anySASL := (get (fromJson (include "redpanda.Auth.IsSASLEnabled" (dict "a" (list $values.auth)))) "r") -}} -{{- $notes := (coalesce nil) -}} -{{- $notes = (concat (default (list) $notes) (list `` `` `` `` (printf `Congratulations on installing %s!` $dot.Chart.Name) `` `The pods will rollout in a few seconds. To check the status:` `` (printf ` kubectl -n %s rollout status statefulset %s --watch` $dot.Release.Namespace (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r")))) -}} -{{- if (and $values.external.enabled (eq $values.external.type "LoadBalancer")) -}} -{{- $notes = (concat (default (list) $notes) (list `` `If you are using the load balancer service with a cloud provider, the services will likely have automatically-generated addresses. In this scenario the advertised listeners must be updated in order for external access to work. Run the following command once Redpanda is deployed:` `` (printf ` helm upgrade %s redpanda/redpanda --reuse-values -n %s --set $(kubectl get svc -n %s -o jsonpath='{"external.addresses={"}{ range .items[*]}{.status.loadBalancer.ingress[0].ip }{.status.loadBalancer.ingress[0].hostname}{","}{ end }{"}\n"}')` (get (fromJson (include "redpanda.Name" (dict "a" (list $dot)))) "r") $dot.Release.Namespace $dot.Release.Namespace))) -}} -{{- end -}} -{{- $profiles := (keys $values.listeners.kafka.external) -}} -{{- $_ := (sortAlpha $profiles) -}} -{{- $profileName := (index $profiles (0 | int)) -}} -{{- $notes = (concat (default (list) $notes) (list `` `Set up rpk for access to your external listeners:`)) -}} -{{- $profile := (ternary (index $values.listeners.kafka.external $profileName) (dict "enabled" (coalesce nil) "advertisedPorts" (coalesce nil) "port" 0 "nodePort" (coalesce nil) "tls" (coalesce nil)) (hasKey $values.listeners.kafka.external $profileName)) -}} -{{- if (get (fromJson (include "redpanda.TLSEnabled" (dict "a" (list $dot)))) "r") -}} -{{- $external := "" -}} -{{- if (and (ne (toJson $profile.tls) "null") (ne (toJson $profile.tls.cert) "null")) -}} -{{- $external = $profile.tls.cert -}} -{{- else -}} -{{- $external = $values.listeners.kafka.tls.cert -}} -{{- end -}} -{{- $notes = (concat (default (list) $notes) (list (printf ` kubectl get secret -n %s %s-%s-cert -o go-template='{{ index .data "ca.crt" | base64decode }}' > ca.crt` $dot.Release.Namespace (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r") $external))) -}} -{{- if (or $values.listeners.kafka.tls.requireClientAuth $values.listeners.admin.tls.requireClientAuth) -}} -{{- $notes = (concat (default (list) $notes) (list (printf ` kubectl get secret -n %s %s-client -o go-template='{{ index .data "tls.crt" | base64decode }}' > tls.crt` $dot.Release.Namespace (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r")) (printf ` kubectl get secret -n %s %s-client -o go-template='{{ index .data "tls.key" | base64decode }}' > tls.key` $dot.Release.Namespace (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r")))) -}} -{{- end -}} -{{- end -}} -{{- $notes = (concat (default (list) $notes) (list (printf ` rpk profile create --from-profile <(kubectl get configmap -n %s %s-rpk -o go-template='{{ .data.profile }}') %s` $dot.Release.Namespace (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r") $profileName) `` `Set up dns to look up the pods on their Kubernetes Nodes. You can use this query to get the list of short-names to IP addresses. Add your external domain to the hostnames and you could test by adding these to your /etc/hosts:` `` (printf ` kubectl get pod -n %s -o custom-columns=node:.status.hostIP,name:.metadata.name --no-headers -l app.kubernetes.io/name=redpanda,app.kubernetes.io/component=redpanda-statefulset` $dot.Release.Namespace))) -}} -{{- if $anySASL -}} -{{- $notes = (concat (default (list) $notes) (list `` `Set the credentials in the environment:` `` (printf ` kubectl -n %s get secret %s -o go-template="{{ range .data }}{{ . | base64decode }}{{ end }}" | IFS=: read -r %s` $dot.Release.Namespace $values.auth.sasl.secretRef (get (fromJson (include "redpanda.RpkSASLEnvironmentVariables" (dict "a" (list $dot)))) "r")) (printf ` export %s` (get (fromJson (include "redpanda.RpkSASLEnvironmentVariables" (dict "a" (list $dot)))) "r")))) -}} -{{- end -}} -{{- $notes = (concat (default (list) $notes) (list `` `Try some sample commands:`)) -}} -{{- if $anySASL -}} -{{- $notes = (concat (default (list) $notes) (list `Create a user:` `` (printf ` %s` (get (fromJson (include "redpanda.RpkACLUserCreate" (dict "a" (list $dot)))) "r")) `` `Give the user permissions:` `` (printf ` %s` (get (fromJson (include "redpanda.RpkACLCreate" (dict "a" (list $dot)))) "r")))) -}} -{{- end -}} -{{- $notes = (concat (default (list) $notes) (list `` `Get the api status:` `` (printf ` %s` (get (fromJson (include "redpanda.RpkClusterInfo" (dict "a" (list $dot)))) "r")) `` `Create a topic` `` (printf ` %s` (get (fromJson (include "redpanda.RpkTopicCreate" (dict "a" (list $dot)))) "r")) `` `Describe the topic:` `` (printf ` %s` (get (fromJson (include "redpanda.RpkTopicDescribe" (dict "a" (list $dot)))) "r")) `` `Delete the topic:` `` (printf ` %s` (get (fromJson (include "redpanda.RpkTopicDelete" (dict "a" (list $dot)))) "r")))) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $notes) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RpkACLUserCreate" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (printf `rpk acl user create myuser --new-password changeme --mechanism %s` (get (fromJson (include "redpanda.GetSASLMechanism" (dict "a" (list $dot)))) "r"))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.GetSASLMechanism" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (ne (toJson $values.auth.sasl) "null") -}} -{{- $_is_returning = true -}} -{{- (dict "r" $values.auth.sasl.mechanism) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" "SCRAM-SHA-512") | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RpkACLCreate" -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" `rpk acl create --allow-principal 'myuser' --allow-host '*' --operation all --topic 'test-topic'`) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RpkClusterInfo" -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" `rpk cluster info`) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RpkTopicCreate" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $_is_returning = true -}} -{{- (dict "r" (printf `rpk topic create test-topic -p 3 -r %d` (min (3 | int64) (($values.statefulset.replicas | int) | int64)))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RpkTopicDescribe" -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" `rpk topic describe test-topic`) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RpkTopicDelete" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" `rpk topic delete test-topic`) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RpkSASLEnvironmentVariables" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (get (fromJson (include "redpanda.RedpandaAtLeast_23_2_1" (dict "a" (list $dot)))) "r") -}} -{{- $_is_returning = true -}} -{{- (dict "r" `RPK_USER RPK_PASS RPK_SASL_MECHANISM`) | toJson -}} -{{- break -}} -{{- else -}} -{{- $_is_returning = true -}} -{{- (dict "r" `REDPANDA_SASL_USERNAME REDPANDA_SASL_PASSWORD REDPANDA_SASL_MECHANISM`) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} -{{- end -}} - diff --git a/charts/redpanda/templates/_poddisruptionbudget.go.tpl b/charts/redpanda/templates/_poddisruptionbudget.go.tpl deleted file mode 100644 index a33e1c3ed8..0000000000 --- a/charts/redpanda/templates/_poddisruptionbudget.go.tpl +++ /dev/null @@ -1,21 +0,0 @@ -{{- /* Generated from "poddisruptionbudget.go" */ -}} - -{{- define "redpanda.PodDisruptionBudget" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $budget := ($values.statefulset.budget.maxUnavailable | int) -}} -{{- $minReplicas := ((div ($values.statefulset.replicas | int) (2 | int)) | int) -}} -{{- if (and (gt $budget (1 | int)) (gt $budget $minReplicas)) -}} -{{- $_ := (fail (printf "statefulset.budget.maxUnavailable is set too high to maintain quorum: %d > %d" $budget $minReplicas)) -}} -{{- end -}} -{{- $maxUnavailable := ($budget | int) -}} -{{- $matchLabels := (get (fromJson (include "redpanda.StatefulSetPodLabelsSelector" (dict "a" (list $dot)))) "r") -}} -{{- $_ := (set $matchLabels "redpanda.com/poddisruptionbudget" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict) "status" (dict "disruptionsAllowed" 0 "currentHealthy" 0 "desiredHealthy" 0 "expectedPods" 0)) (mustMergeOverwrite (dict) (dict "apiVersion" "policy/v1" "kind" "PodDisruptionBudget")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r") "namespace" $dot.Release.Namespace "labels" (get (fromJson (include "redpanda.FullLabels" (dict "a" (list $dot)))) "r"))) "spec" (mustMergeOverwrite (dict) (dict "selector" (mustMergeOverwrite (dict) (dict "matchLabels" $matchLabels)) "maxUnavailable" $maxUnavailable))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/redpanda/templates/_post-install-upgrade-job.go.tpl b/charts/redpanda/templates/_post-install-upgrade-job.go.tpl deleted file mode 100644 index 778db6dcb9..0000000000 --- a/charts/redpanda/templates/_post-install-upgrade-job.go.tpl +++ /dev/null @@ -1,53 +0,0 @@ -{{- /* Generated from "post_install_upgrade_job.go" */ -}} - -{{- define "redpanda.bootstrapYamlTemplater" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $env := (get (fromJson (include "redpanda.TieredStorageCredentials.AsEnvVars" (dict "a" (list $values.storage.tiered.credentialsSecretRef (get (fromJson (include "redpanda.Storage.GetTieredStorageConfig" (dict "a" (list $values.storage)))) "r"))))) "r") -}} -{{- $image := (printf `%s:%s` $values.statefulset.sideCars.image.repository $values.statefulset.sideCars.image.tag) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "name" "" "resources" (dict)) (dict "name" "bootstrap-yaml-envsubst" "image" $image "command" (list "/redpanda-operator" "envsubst" "/tmp/base-config/bootstrap.yaml" "--output" "/tmp/config/.bootstrap.yaml") "env" $env "resources" (mustMergeOverwrite (dict) (dict "limits" (dict "cpu" (get (fromJson (include "_shims.resource_MustParse" (dict "a" (list "100m")))) "r") "memory" (get (fromJson (include "_shims.resource_MustParse" (dict "a" (list "125Mi")))) "r")) "requests" (dict "cpu" (get (fromJson (include "_shims.resource_MustParse" (dict "a" (list "100m")))) "r") "memory" (get (fromJson (include "_shims.resource_MustParse" (dict "a" (list "125Mi")))) "r")))) "securityContext" (mustMergeOverwrite (dict) (dict "allowPrivilegeEscalation" false "readOnlyRootFilesystem" true "runAsNonRoot" true)) "volumeMounts" (list (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" "config" "mountPath" "/tmp/config/")) (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" "base-config" "mountPath" "/tmp/base-config/")))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.PostInstallUpgradeJob" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not $values.post_install_job.enabled) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $image := (printf `%s:%s` $values.statefulset.sideCars.image.repository $values.statefulset.sideCars.image.tag) -}} -{{- $job := (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict "template" (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict "containers" (coalesce nil)))) "status" (dict)) (mustMergeOverwrite (dict) (dict "apiVersion" "batch/v1" "kind" "Job")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (printf "%s-configuration" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r")) "namespace" $dot.Release.Namespace "labels" (merge (dict) (default (dict) $values.post_install_job.labels) (get (fromJson (include "redpanda.FullLabels" (dict "a" (list $dot)))) "r")) "annotations" (merge (dict) (default (dict) $values.post_install_job.annotations) (dict "helm.sh/hook" "post-install,post-upgrade" "helm.sh/hook-delete-policy" "before-hook-creation" "helm.sh/hook-weight" "-5")))) "spec" (mustMergeOverwrite (dict "template" (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict "containers" (coalesce nil)))) (dict "template" (get (fromJson (include "redpanda.StrategicMergePatch" (dict "a" (list (get (fromJson (include "redpanda.StructuredTpl" (dict "a" (list $dot $values.post_install_job.podTemplate)))) "r") (get (fromJson (include "redpanda.StrategicMergePatch" (dict "a" (list (get (fromJson (include "redpanda.StructuredTpl" (dict "a" (list $dot $values.podTemplate)))) "r") (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict "containers" (coalesce nil))) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "generateName" (printf "%s-post-" $dot.Release.Name) "labels" (merge (dict) (dict "app.kubernetes.io/name" (get (fromJson (include "redpanda.Name" (dict "a" (list $dot)))) "r") "app.kubernetes.io/instance" $dot.Release.Name "app.kubernetes.io/component" (printf "%.50s-post-install" (get (fromJson (include "redpanda.Name" (dict "a" (list $dot)))) "r"))) (default (dict) $values.commonLabels)))) "spec" (mustMergeOverwrite (dict "containers" (coalesce nil)) (dict "restartPolicy" "Never" "initContainers" (list (get (fromJson (include "redpanda.bootstrapYamlTemplater" (dict "a" (list $dot)))) "r")) "automountServiceAccountToken" false "containers" (list (mustMergeOverwrite (dict "name" "" "resources" (dict)) (dict "name" "post-install" "image" $image "env" (get (fromJson (include "redpanda.PostInstallUpgradeEnvironmentVariables" (dict "a" (list $dot)))) "r") "command" (list "/redpanda-operator" "sync-cluster-config" "--users-directory" "/etc/secrets/users" "--redpanda-yaml" "/tmp/base-config/redpanda.yaml" "--bootstrap-yaml" "/tmp/config/.bootstrap.yaml") "volumeMounts" (concat (default (list) (get (fromJson (include "redpanda.CommonMounts" (dict "a" (list $dot)))) "r")) (list (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" "config" "mountPath" "/tmp/config")) (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" "base-config" "mountPath" "/tmp/base-config"))))))) "volumes" (concat (default (list) (get (fromJson (include "redpanda.CommonVolumes" (dict "a" (list $dot)))) "r")) (list (mustMergeOverwrite (dict "name" "") (mustMergeOverwrite (dict) (dict "configMap" (mustMergeOverwrite (dict) (mustMergeOverwrite (dict) (dict "name" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r"))) (dict)))) (dict "name" "base-config")) (mustMergeOverwrite (dict "name" "") (mustMergeOverwrite (dict) (dict "emptyDir" (mustMergeOverwrite (dict) (dict)))) (dict "name" "config")))) "serviceAccountName" (get (fromJson (include "redpanda.ServiceAccountName" (dict "a" (list $dot)))) "r"))))))))) "r"))))) "r"))))) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $job) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.PostInstallUpgradeEnvironmentVariables" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $envars := (list) -}} -{{- $values := $dot.Values.AsMap -}} -{{- $license_1 := $values.enterprise.license -}} -{{- $secretReference_2 := $values.enterprise.licenseSecretRef -}} -{{- if (ne $license_1 "") -}} -{{- $envars = (concat (default (list) $envars) (list (mustMergeOverwrite (dict "name" "") (dict "name" "REDPANDA_LICENSE" "value" $license_1)))) -}} -{{- else -}}{{- if (ne (toJson $secretReference_2) "null") -}} -{{- $envars = (concat (default (list) $envars) (list (mustMergeOverwrite (dict "name" "") (dict "name" "REDPANDA_LICENSE" "valueFrom" (mustMergeOverwrite (dict) (dict "secretKeyRef" $secretReference_2)))))) -}} -{{- end -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "redpanda.bootstrapEnvVars" (dict "a" (list $dot $envars)))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/redpanda/templates/_post_upgrade_job.go.tpl b/charts/redpanda/templates/_post_upgrade_job.go.tpl deleted file mode 100644 index 6a95bb94e6..0000000000 --- a/charts/redpanda/templates/_post_upgrade_job.go.tpl +++ /dev/null @@ -1,87 +0,0 @@ -{{- /* Generated from "post_upgrade_job.go" */ -}} - -{{- define "redpanda.PostUpgrade" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not $values.post_upgrade_job.enabled) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $labels := (default (dict ) $values.post_upgrade_job.labels) -}} -{{- $annotations := (default (dict ) $values.post_upgrade_job.annotations) -}} -{{- $annotations = (merge (dict ) (dict "helm.sh/hook" "post-upgrade" "helm.sh/hook-delete-policy" "before-hook-creation" "helm.sh/hook-weight" "-10" ) $annotations) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil) ) "spec" (dict "template" (dict "metadata" (dict "creationTimestamp" (coalesce nil) ) "spec" (dict "containers" (coalesce nil) ) ) ) "status" (dict ) ) (mustMergeOverwrite (dict ) (dict "apiVersion" "batch/v1" "kind" "Job" )) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil) ) (dict "name" (printf "%s-post-upgrade" (get (fromJson (include "redpanda.Name" (dict "a" (list $dot) ))) "r")) "namespace" $dot.Release.Namespace "labels" (merge (dict ) (get (fromJson (include "redpanda.FullLabels" (dict "a" (list $dot) ))) "r") $labels) "annotations" $annotations )) "spec" (mustMergeOverwrite (dict "template" (dict "metadata" (dict "creationTimestamp" (coalesce nil) ) "spec" (dict "containers" (coalesce nil) ) ) ) (dict "backoffLimit" $values.post_upgrade_job.backoffLimit "template" (get (fromJson (include "redpanda.StrategicMergePatch" (dict "a" (list $values.post_upgrade_job.podTemplate (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil) ) "spec" (dict "containers" (coalesce nil) ) ) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil) ) (dict "name" $dot.Release.Name "labels" (merge (dict ) (dict "app.kubernetes.io/name" (get (fromJson (include "redpanda.Name" (dict "a" (list $dot) ))) "r") "app.kubernetes.io/instance" $dot.Release.Name "app.kubernetes.io/component" (printf "%s-post-upgrade" (trunc (50 | int) (get (fromJson (include "redpanda.Name" (dict "a" (list $dot) ))) "r"))) ) $values.commonLabels) )) "spec" (mustMergeOverwrite (dict "containers" (coalesce nil) ) (dict "nodeSelector" $values.nodeSelector "affinity" (merge (dict ) $values.post_upgrade_job.affinity $values.affinity) "tolerations" $values.tolerations "restartPolicy" "Never" "securityContext" (get (fromJson (include "redpanda.PodSecurityContext" (dict "a" (list $dot) ))) "r") "serviceAccountName" (get (fromJson (include "redpanda.ServiceAccountName" (dict "a" (list $dot) ))) "r") "imagePullSecrets" (default (coalesce nil) $values.imagePullSecrets) "containers" (list (mustMergeOverwrite (dict "name" "" "resources" (dict ) ) (dict "name" "post-upgrade" "image" (printf "%s:%s" $values.image.repository (get (fromJson (include "redpanda.Tag" (dict "a" (list $dot) ))) "r")) "command" (list "/bin/bash" "-c") "args" (list (get (fromJson (include "redpanda.PostUpgradeJobScript" (dict "a" (list $dot) ))) "r")) "env" (get (fromJson (include "redpanda.rpkEnvVars" (dict "a" (list $dot $values.post_upgrade_job.extraEnv) ))) "r") "envFrom" $values.post_upgrade_job.extraEnvFrom "securityContext" (merge (dict ) (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.post_upgrade_job.securityContext (mustMergeOverwrite (dict ) (dict ))) ))) "r") (get (fromJson (include "redpanda.ContainerSecurityContext" (dict "a" (list $dot) ))) "r")) "resources" $values.post_upgrade_job.resources "volumeMounts" (get (fromJson (include "redpanda.DefaultMounts" (dict "a" (list $dot) ))) "r") ))) "volumes" (get (fromJson (include "redpanda.DefaultVolumes" (dict "a" (list $dot) ))) "r") )) ))) ))) "r") )) ))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.PostUpgradeJobScript" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $script := (list `set -e` ``) -}} -{{- range $key, $value := $values.config.cluster -}} -{{- $tmp_tuple_1 := (get (fromJson (include "_shims.compact" (dict "a" (list (get (fromJson (include "_shims.asintegral" (dict "a" (list $value) ))) "r")) ))) "r") -}} -{{- $isInt64 := $tmp_tuple_1.T2 -}} -{{- $asInt64 := ($tmp_tuple_1.T1 | int64) -}} -{{- $tmp_tuple_2 := (get (fromJson (include "_shims.compact" (dict "a" (list (get (fromJson (include "_shims.typetest" (dict "a" (list "bool" $value false) ))) "r")) ))) "r") -}} -{{- $ok_2 := $tmp_tuple_2.T2 -}} -{{- $asBool_1 := $tmp_tuple_2.T1 -}} -{{- $tmp_tuple_3 := (get (fromJson (include "_shims.compact" (dict "a" (list (get (fromJson (include "_shims.typetest" (dict "a" (list "string" $value "") ))) "r")) ))) "r") -}} -{{- $ok_4 := $tmp_tuple_3.T2 -}} -{{- $asStr_3 := $tmp_tuple_3.T1 -}} -{{- $tmp_tuple_4 := (get (fromJson (include "_shims.compact" (dict "a" (list (get (fromJson (include "_shims.typetest" (dict "a" (list (printf "[]%s" "interface {}") $value (coalesce nil)) ))) "r")) ))) "r") -}} -{{- $ok_6 := $tmp_tuple_4.T2 -}} -{{- $asSlice_5 := $tmp_tuple_4.T1 -}} -{{- if (and $ok_2 $asBool_1) -}} -{{- $script = (concat (default (list ) $script) (list (printf "rpk cluster config set %s %t" $key $asBool_1))) -}} -{{- else -}}{{- if (and $ok_4 (ne $asStr_3 "")) -}} -{{- $script = (concat (default (list ) $script) (list (printf "rpk cluster config set %s %s" $key $asStr_3))) -}} -{{- else -}}{{- if (and $isInt64 (gt $asInt64 (0 | int64))) -}} -{{- $script = (concat (default (list ) $script) (list (printf "rpk cluster config set %s %d" $key $asInt64))) -}} -{{- else -}}{{- if (and $ok_6 (gt ((get (fromJson (include "_shims.len" (dict "a" (list $asSlice_5) ))) "r") | int) (0 | int))) -}} -{{- $script = (concat (default (list ) $script) (list (printf `rpk cluster config set %s "[ %s ]"` $key (join "," $asSlice_5)))) -}} -{{- else -}}{{- if (not (empty $value)) -}} -{{- $script = (concat (default (list ) $script) (list (printf "rpk cluster config set %s %v" $key $value))) -}} -{{- end -}} -{{- end -}} -{{- end -}} -{{- end -}} -{{- end -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $tmp_tuple_5 := (get (fromJson (include "_shims.compact" (dict "a" (list (get (fromJson (include "_shims.dicttest" (dict "a" (list $values.config.cluster "default_topic_replications" (coalesce nil)) ))) "r")) ))) "r") -}} -{{- $ok_7 := $tmp_tuple_5.T2 -}} -{{- if (and (not $ok_7) (ge ($values.statefulset.replicas | int) (3 | int))) -}} -{{- $script = (concat (default (list ) $script) (list "rpk cluster config set default_topic_replications 3")) -}} -{{- end -}} -{{- $tmp_tuple_6 := (get (fromJson (include "_shims.compact" (dict "a" (list (get (fromJson (include "_shims.dicttest" (dict "a" (list $values.config.cluster "storage_min_free_bytes" (coalesce nil)) ))) "r")) ))) "r") -}} -{{- $ok_8 := $tmp_tuple_6.T2 -}} -{{- if (not $ok_8) -}} -{{- $script = (concat (default (list ) $script) (list (printf "rpk cluster config set storage_min_free_bytes %d" ((get (fromJson (include "redpanda.Storage.StorageMinFreeBytes" (dict "a" (list $values.storage) ))) "r") | int64)))) -}} -{{- end -}} -{{- if (get (fromJson (include "redpanda.RedpandaAtLeast_23_2_1" (dict "a" (list $dot) ))) "r") -}} -{{- $service := $values.listeners.admin -}} -{{- $caCert := "" -}} -{{- $scheme := "http" -}} -{{- if (get (fromJson (include "redpanda.InternalTLS.IsEnabled" (dict "a" (list $service.tls $values.tls) ))) "r") -}} -{{- $scheme = "https" -}} -{{- $caCert = (printf "--cacert %q" (get (fromJson (include "redpanda.InternalTLS.ServerCAPath" (dict "a" (list $service.tls $values.tls) ))) "r")) -}} -{{- end -}} -{{- $url := (printf "%s://%s:%d/v1/debug/restart_service?service=schema-registry" $scheme (get (fromJson (include "redpanda.InternalDomain" (dict "a" (list $dot) ))) "r") (($service.port | int) | int64)) -}} -{{- $script = (concat (default (list ) $script) (list `if [ -d "/etc/secrets/users/" ]; then` ` IFS=":" read -r USER_NAME PASSWORD MECHANISM < <(grep "" $(find /etc/secrets/users/* -print))` ` curl -svm3 --fail --retry "120" --retry-max-time "120" --retry-all-errors --ssl-reqd \` (printf ` %s \` $caCert) ` -X PUT -u ${USER_NAME}:${PASSWORD} \` (printf ` %s || true` $url) `fi`)) -}} -{{- end -}} -{{- $script = (concat (default (list ) $script) (list "")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (join "\n" $script)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/redpanda/templates/_rbac.go.tpl b/charts/redpanda/templates/_rbac.go.tpl deleted file mode 100644 index 92294b7967..0000000000 --- a/charts/redpanda/templates/_rbac.go.tpl +++ /dev/null @@ -1,91 +0,0 @@ -{{- /* Generated from "rbac.go" */ -}} - -{{- define "redpanda.Roles" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $mapping := (dict "files/sidecar.Role.yaml" (and $values.rbac.enabled $values.statefulset.sideCars.controllers.createRBAC) "files/pvcunbinder.Role.yaml" (and $values.rbac.enabled $values.statefulset.sideCars.controllers.createRBAC) "files/decommission.Role.yaml" (and $values.rbac.enabled $values.statefulset.sideCars.controllers.createRBAC) "files/rpk-debug-bundle.Role.yaml" (and $values.rbac.enabled $values.rbac.rpkDebugBundle)) -}} -{{- $roles := (coalesce nil) -}} -{{- range $file, $enabled := $mapping -}} -{{- if (not $enabled) -}} -{{- continue -}} -{{- end -}} -{{- $role := (get (fromJson (include "_shims.fromYaml" (dict "a" (list ($dot.Files.Get $file))))) "r") -}} -{{- $_ := (set $role.metadata "name" (printf "%s-%s" (get (fromJson (include "redpanda.Name" (dict "a" (list $dot)))) "r") $role.metadata.name)) -}} -{{- $_ := (set $role.metadata "namespace" $dot.Release.Namespace) -}} -{{- $_ := (set $role.metadata "labels" (get (fromJson (include "redpanda.FullLabels" (dict "a" (list $dot)))) "r")) -}} -{{- $_ := (set $role.metadata "annotations" (merge (dict) (dict) $values.serviceAccount.annotations $values.rbac.annotations)) -}} -{{- $roles = (concat (default (list) $roles) (list $role)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $roles) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.ClusterRoles" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $mapping := (dict "files/pvcunbinder.ClusterRole.yaml" (and $values.rbac.enabled $values.statefulset.sideCars.controllers.createRBAC) "files/decommission.ClusterRole.yaml" (and $values.rbac.enabled $values.statefulset.sideCars.controllers.createRBAC) "files/rack-awareness.ClusterRole.yaml" (and $values.rbac.enabled $values.rackAwareness.enabled)) -}} -{{- $clusterRoles := (coalesce nil) -}} -{{- range $file, $enabled := $mapping -}} -{{- if (not $enabled) -}} -{{- continue -}} -{{- end -}} -{{- $role := (get (fromJson (include "_shims.fromYaml" (dict "a" (list ($dot.Files.Get $file))))) "r") -}} -{{- $_ := (set $role.metadata "name" (printf "%s-%s" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r") $role.metadata.name)) -}} -{{- $_ := (set $role.metadata "labels" (get (fromJson (include "redpanda.FullLabels" (dict "a" (list $dot)))) "r")) -}} -{{- $_ := (set $role.metadata "annotations" (merge (dict) (dict) $values.serviceAccount.annotations $values.rbac.annotations)) -}} -{{- $clusterRoles = (concat (default (list) $clusterRoles) (list $role)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $clusterRoles) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RoleBindings" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $roleBindings := (coalesce nil) -}} -{{- range $_, $role := (get (fromJson (include "redpanda.Roles" (dict "a" (list $dot)))) "r") -}} -{{- $roleBindings = (concat (default (list) $roleBindings) (list (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "roleRef" (dict "apiGroup" "" "kind" "" "name" "")) (mustMergeOverwrite (dict) (dict "apiVersion" "rbac.authorization.k8s.io/v1" "kind" "RoleBinding")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" $role.metadata.name "labels" (get (fromJson (include "redpanda.FullLabels" (dict "a" (list $dot)))) "r") "namespace" $dot.Release.Namespace "annotations" (merge (dict) (dict) $values.serviceAccount.annotations $values.rbac.annotations))) "roleRef" (mustMergeOverwrite (dict "apiGroup" "" "kind" "" "name" "") (dict "apiGroup" "rbac.authorization.k8s.io" "kind" "Role" "name" $role.metadata.name)) "subjects" (list (mustMergeOverwrite (dict "kind" "" "name" "") (dict "kind" "ServiceAccount" "name" (get (fromJson (include "redpanda.ServiceAccountName" (dict "a" (list $dot)))) "r") "namespace" $dot.Release.Namespace))))))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $roleBindings) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.ClusterRoleBindings" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $crbs := (coalesce nil) -}} -{{- range $_, $clusterRole := (get (fromJson (include "redpanda.ClusterRoles" (dict "a" (list $dot)))) "r") -}} -{{- $crbs = (concat (default (list) $crbs) (list (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "roleRef" (dict "apiGroup" "" "kind" "" "name" "")) (mustMergeOverwrite (dict) (dict "apiVersion" "rbac.authorization.k8s.io/v1" "kind" "ClusterRoleBinding")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" $clusterRole.metadata.name "labels" (get (fromJson (include "redpanda.FullLabels" (dict "a" (list $dot)))) "r") "namespace" $dot.Release.Namespace "annotations" (merge (dict) (dict) $values.serviceAccount.annotations $values.rbac.annotations))) "roleRef" (mustMergeOverwrite (dict "apiGroup" "" "kind" "" "name" "") (dict "apiGroup" "rbac.authorization.k8s.io" "kind" "ClusterRole" "name" $clusterRole.metadata.name)) "subjects" (list (mustMergeOverwrite (dict "kind" "" "name" "") (dict "kind" "ServiceAccount" "name" (get (fromJson (include "redpanda.ServiceAccountName" (dict "a" (list $dot)))) "r") "namespace" $dot.Release.Namespace))))))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $crbs) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/redpanda/templates/_secrets.go.tpl b/charts/redpanda/templates/_secrets.go.tpl deleted file mode 100644 index 13c8f29876..0000000000 --- a/charts/redpanda/templates/_secrets.go.tpl +++ /dev/null @@ -1,387 +0,0 @@ -{{- /* Generated from "secrets.go" */ -}} - -{{- define "redpanda.Secrets" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $secrets := (coalesce nil) -}} -{{- $secrets = (concat (default (list) $secrets) (list (get (fromJson (include "redpanda.SecretSTSLifecycle" (dict "a" (list $dot)))) "r"))) -}} -{{- $saslUsers_1 := (get (fromJson (include "redpanda.SecretSASLUsers" (dict "a" (list $dot)))) "r") -}} -{{- if (ne (toJson $saslUsers_1) "null") -}} -{{- $secrets = (concat (default (list) $secrets) (list $saslUsers_1)) -}} -{{- end -}} -{{- $secrets = (concat (default (list) $secrets) (list (get (fromJson (include "redpanda.SecretConfigurator" (dict "a" (list $dot)))) "r"))) -}} -{{- $fsValidator_2 := (get (fromJson (include "redpanda.SecretFSValidator" (dict "a" (list $dot)))) "r") -}} -{{- if (ne (toJson $fsValidator_2) "null") -}} -{{- $secrets = (concat (default (list) $secrets) (list $fsValidator_2)) -}} -{{- end -}} -{{- $bootstrapUser_3 := (get (fromJson (include "redpanda.SecretBootstrapUser" (dict "a" (list $dot)))) "r") -}} -{{- if (ne (toJson $bootstrapUser_3) "null") -}} -{{- $secrets = (concat (default (list) $secrets) (list $bootstrapUser_3)) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $secrets) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.SecretSTSLifecycle" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $secret := (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil))) (mustMergeOverwrite (dict) (dict "apiVersion" "v1" "kind" "Secret")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (printf "%s-sts-lifecycle" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r")) "namespace" $dot.Release.Namespace "labels" (get (fromJson (include "redpanda.FullLabels" (dict "a" (list $dot)))) "r"))) "type" "Opaque" "stringData" (dict))) -}} -{{- $adminCurlFlags := (get (fromJson (include "redpanda.adminTLSCurlFlags" (dict "a" (list $dot)))) "r") -}} -{{- $_ := (set $secret.stringData "common.sh" (join "\n" (list `#!/usr/bin/env bash` `` `# the SERVICE_NAME comes from the metadata.name of the pod, essentially the POD_NAME` (printf `CURL_URL="%s"` (get (fromJson (include "redpanda.adminInternalURL" (dict "a" (list $dot)))) "r")) `` `# commands used throughout` (printf `CURL_NODE_ID_CMD="curl --silent --fail %s ${CURL_URL}/v1/node_config"` $adminCurlFlags) `` `CURL_MAINTENANCE_DELETE_CMD_PREFIX='curl -X DELETE --silent -o /dev/null -w "%{http_code}"'` `CURL_MAINTENANCE_PUT_CMD_PREFIX='curl -X PUT --silent -o /dev/null -w "%{http_code}"'` (printf `CURL_MAINTENANCE_GET_CMD="curl -X GET --silent %s ${CURL_URL}/v1/maintenance"` $adminCurlFlags)))) -}} -{{- $postStartSh := (list `#!/usr/bin/env bash` `# This code should be similar if not exactly the same as that found in the panda-operator, see` `# https://github.com/redpanda-data/redpanda/blob/e51d5b7f2ef76d5160ca01b8c7a8cf07593d29b6/src/go/k8s/pkg/resources/secret.go` `` `# path below should match the path defined on the statefulset` `source /var/lifecycle/common.sh` `` `postStartHook () {` ` set -x` `` ` touch /tmp/postStartHookStarted` `` ` until NODE_ID=$(${CURL_NODE_ID_CMD} | grep -o '\"node_id\":[^,}]*' | grep -o '[^: ]*$'); do` ` sleep 0.5` ` done` `` ` echo "Clearing maintenance mode on node ${NODE_ID}"` (printf ` CURL_MAINTENANCE_DELETE_CMD="${CURL_MAINTENANCE_DELETE_CMD_PREFIX} %s ${CURL_URL}/v1/brokers/${NODE_ID}/maintenance"` $adminCurlFlags) ` # a 400 here would mean not in maintenance mode` ` until [ "${status:-}" = '"200"' ] || [ "${status:-}" = '"400"' ]; do` ` status=$(${CURL_MAINTENANCE_DELETE_CMD})` ` sleep 0.5` ` done` `` ` touch /tmp/postStartHookFinished` `}` `` `postStartHook` `true`) -}} -{{- $_ := (set $secret.stringData "postStart.sh" (join "\n" $postStartSh)) -}} -{{- $preStopSh := (list `#!/usr/bin/env bash` `# This code should be similar if not exactly the same as that found in the panda-operator, see` `# https://github.com/redpanda-data/redpanda/blob/e51d5b7f2ef76d5160ca01b8c7a8cf07593d29b6/src/go/k8s/pkg/resources/secret.go` `` `touch /tmp/preStopHookStarted` `` `# path below should match the path defined on the statefulset` `source /var/lifecycle/common.sh` `` `set -x` `` `preStopHook () {` ` until NODE_ID=$(${CURL_NODE_ID_CMD} | grep -o '\"node_id\":[^,}]*' | grep -o '[^: ]*$'); do` ` sleep 0.5` ` done` `` ` echo "Setting maintenance mode on node ${NODE_ID}"` (printf ` CURL_MAINTENANCE_PUT_CMD="${CURL_MAINTENANCE_PUT_CMD_PREFIX} %s ${CURL_URL}/v1/brokers/${NODE_ID}/maintenance"` $adminCurlFlags) ` until [ "${status:-}" = '"200"' ]; do` ` status=$(${CURL_MAINTENANCE_PUT_CMD})` ` sleep 0.5` ` done` `` ` until [ "${finished:-}" = "true" ] || [ "${draining:-}" = "false" ]; do` ` res=$(${CURL_MAINTENANCE_GET_CMD})` ` finished=$(echo $res | grep -o '\"finished\":[^,}]*' | grep -o '[^: ]*$')` ` draining=$(echo $res | grep -o '\"draining\":[^,}]*' | grep -o '[^: ]*$')` ` sleep 0.5` ` done` `` ` touch /tmp/preStopHookFinished` `}`) -}} -{{- if (and (gt ($values.statefulset.replicas | int) (2 | int)) (not (get (fromJson (include "_shims.typeassertion" (dict "a" (list "bool" (dig "recovery_mode_enabled" false $values.config.node))))) "r"))) -}} -{{- $preStopSh = (concat (default (list) $preStopSh) (list `preStopHook`)) -}} -{{- else -}} -{{- $preStopSh = (concat (default (list) $preStopSh) (list `touch /tmp/preStopHookFinished` `echo "Not enough replicas or in recovery mode, cannot put a broker into maintenance mode."`)) -}} -{{- end -}} -{{- $preStopSh = (concat (default (list) $preStopSh) (list `true`)) -}} -{{- $_ := (set $secret.stringData "preStop.sh" (join "\n" $preStopSh)) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $secret) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.SecretSASLUsers" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (and (and (ne $values.auth.sasl.secretRef "") $values.auth.sasl.enabled) (gt ((get (fromJson (include "_shims.len" (dict "a" (list $values.auth.sasl.users)))) "r") | int) (0 | int))) -}} -{{- $secret := (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil))) (mustMergeOverwrite (dict) (dict "apiVersion" "v1" "kind" "Secret")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" $values.auth.sasl.secretRef "namespace" $dot.Release.Namespace "labels" (get (fromJson (include "redpanda.FullLabels" (dict "a" (list $dot)))) "r"))) "type" "Opaque" "stringData" (dict))) -}} -{{- $usersTxt := (list) -}} -{{- $defaultMechanism := "SCRAM-SHA-512" -}} -{{- if (ne $values.auth.sasl.mechanism "") -}} -{{- $defaultMechanism = $values.auth.sasl.mechanism -}} -{{- end -}} -{{- range $_, $user := $values.auth.sasl.users -}} -{{- $mechanism := (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $user.mechanism $defaultMechanism)))) "r") -}} -{{- $usersTxt = (concat (default (list) $usersTxt) (list (printf "%s:%s:%s" $user.name $user.password $mechanism))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_ := (set $secret.stringData "users.txt" (join "\n" $usersTxt)) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $secret) | toJson -}} -{{- break -}} -{{- else -}}{{- if (and $values.auth.sasl.enabled (eq $values.auth.sasl.secretRef "")) -}} -{{- $_ := (fail "auth.sasl.secretRef cannot be empty when auth.sasl.enabled=true") -}} -{{- else -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.SecretBootstrapUser" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (or (not $values.auth.sasl.enabled) (ne (toJson $values.auth.sasl.bootstrapUser.secretKeyRef) "null")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $secretName := (printf "%s-bootstrap-user" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r")) -}} -{{- $_206_existing_4_ok_5 := (get (fromJson (include "_shims.lookup" (dict "a" (list "v1" "Secret" $dot.Release.Namespace $secretName)))) "r") -}} -{{- $existing_4 := (index $_206_existing_4_ok_5 0) -}} -{{- $ok_5 := (index $_206_existing_4_ok_5 1) -}} -{{- if $ok_5 -}} -{{- $_is_returning = true -}} -{{- (dict "r" $existing_4) | toJson -}} -{{- break -}} -{{- end -}} -{{- $password := (randAlphaNum (32 | int)) -}} -{{- $userPassword := $values.auth.sasl.bootstrapUser.password -}} -{{- if (ne (toJson $userPassword) "null") -}} -{{- $password = $userPassword -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil))) (mustMergeOverwrite (dict) (dict "apiVersion" "v1" "kind" "Secret")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" $secretName "namespace" $dot.Release.Namespace "labels" (get (fromJson (include "redpanda.FullLabels" (dict "a" (list $dot)))) "r"))) "type" "Opaque" "stringData" (dict "password" $password)))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.SecretFSValidator" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not $values.statefulset.initContainers.fsValidator.enabled) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $secret := (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil))) (mustMergeOverwrite (dict) (dict "apiVersion" "v1" "kind" "Secret")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (printf "%.49s-fs-validator" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r")) "namespace" $dot.Release.Namespace "labels" (get (fromJson (include "redpanda.FullLabels" (dict "a" (list $dot)))) "r"))) "type" "Opaque" "stringData" (dict))) -}} -{{- $_ := (set $secret.stringData "fsValidator.sh" `set -e -EXPECTED_FS_TYPE=$1 - -DATA_DIR="/var/lib/redpanda/data" -TEST_FILE="testfile" - -echo "checking data directory exist..." -if [ ! -d "${DATA_DIR}" ]; then - echo "data directory does not exists, exiting" - exit 1 -fi - -echo "checking filesystem type..." -FS_TYPE=$(df -T $DATA_DIR | tail -n +2 | awk '{print $2}') - -if [ "${FS_TYPE}" != "${EXPECTED_FS_TYPE}" ]; then - echo "file system found to be ${FS_TYPE} when expected ${EXPECTED_FS_TYPE}" - exit 1 -fi - -echo "checking if able to create a test file..." - -touch ${DATA_DIR}/${TEST_FILE} -result=$(touch ${DATA_DIR}/${TEST_FILE} 2> /dev/null; echo $?) -if [ "${result}" != "0" ]; then - echo "could not write testfile, may not have write permission" - exit 1 -fi - -echo "checking if able to delete a test file..." - -result=$(rm ${DATA_DIR}/${TEST_FILE} 2> /dev/null; echo $?) -if [ "${result}" != "0" ]; then - echo "could not delete testfile" - exit 1 -fi - -echo "passed"`) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $secret) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.SecretConfigurator" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $secret := (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil))) (mustMergeOverwrite (dict) (dict "apiVersion" "v1" "kind" "Secret")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (printf "%.51s-configurator" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r")) "namespace" $dot.Release.Namespace "labels" (get (fromJson (include "redpanda.FullLabels" (dict "a" (list $dot)))) "r"))) "type" "Opaque" "stringData" (dict))) -}} -{{- $configuratorSh := (list) -}} -{{- $configuratorSh = (concat (default (list) $configuratorSh) (list `set -xe` `SERVICE_NAME=$1` `KUBERNETES_NODE_NAME=$2` `POD_ORDINAL=${SERVICE_NAME##*-}` "BROKER_INDEX=`expr $POD_ORDINAL + 1`" `` `CONFIG=/etc/redpanda/redpanda.yaml` `` `# Setup config files` `cp /tmp/base-config/redpanda.yaml "${CONFIG}"`)) -}} -{{- if (not (get (fromJson (include "redpanda.RedpandaAtLeast_22_3_0" (dict "a" (list $dot)))) "r")) -}} -{{- $configuratorSh = (concat (default (list) $configuratorSh) (list `` `# Configure bootstrap` `## Not used for Redpanda v22.3.0+` `rpk --config "${CONFIG}" redpanda config set redpanda.node_id "${POD_ORDINAL}"` `if [ "${POD_ORDINAL}" = "0" ]; then` ` rpk --config "${CONFIG}" redpanda config set redpanda.seed_servers '[]' --format yaml` `fi`)) -}} -{{- end -}} -{{- $kafkaSnippet := (get (fromJson (include "redpanda.secretConfiguratorKafkaConfig" (dict "a" (list $dot)))) "r") -}} -{{- $configuratorSh = (concat (default (list) $configuratorSh) (default (list) $kafkaSnippet)) -}} -{{- $httpSnippet := (get (fromJson (include "redpanda.secretConfiguratorHTTPConfig" (dict "a" (list $dot)))) "r") -}} -{{- $configuratorSh = (concat (default (list) $configuratorSh) (default (list) $httpSnippet)) -}} -{{- if (and (get (fromJson (include "redpanda.RedpandaAtLeast_22_3_0" (dict "a" (list $dot)))) "r") $values.rackAwareness.enabled) -}} -{{- $configuratorSh = (concat (default (list) $configuratorSh) (list `` `# Configure Rack Awareness` `set +x` (printf `RACK=$(curl --silent --cacert /run/secrets/kubernetes.io/serviceaccount/ca.crt --fail -H 'Authorization: Bearer '$(cat /run/secrets/kubernetes.io/serviceaccount/token) "https://${KUBERNETES_SERVICE_HOST}:${KUBERNETES_SERVICE_PORT_HTTPS}/api/v1/nodes/${KUBERNETES_NODE_NAME}?pretty=true" | grep %s | grep -v '\"key\":' | sed 's/.*": "\([^"]\+\).*/\1/')` (squote (quote $values.rackAwareness.nodeAnnotation))) `set -x` `rpk --config "$CONFIG" redpanda config set redpanda.rack "${RACK}"`)) -}} -{{- end -}} -{{- $_ := (set $secret.stringData "configurator.sh" (join "\n" $configuratorSh)) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $secret) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.secretConfiguratorKafkaConfig" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $internalAdvertiseAddress := (printf "%s.%s" "${SERVICE_NAME}" (get (fromJson (include "redpanda.InternalDomain" (dict "a" (list $dot)))) "r")) -}} -{{- $snippet := (coalesce nil) -}} -{{- $listenerName := "kafka" -}} -{{- $listenerAdvertisedName := $listenerName -}} -{{- $redpandaConfigPart := "redpanda" -}} -{{- $snippet = (concat (default (list) $snippet) (list `` (printf `LISTENER=%s` (quote (toJson (dict "name" "internal" "address" $internalAdvertiseAddress "port" ($values.listeners.kafka.port | int))))) (printf `rpk redpanda config --config "$CONFIG" set %s.advertised_%s_api[0] "$LISTENER"` $redpandaConfigPart $listenerAdvertisedName))) -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $values.listeners.kafka.external)))) "r") | int) (0 | int)) -}} -{{- $externalCounter := (0 | int) -}} -{{- range $externalName, $externalVals := $values.listeners.kafka.external -}} -{{- $externalCounter = ((add $externalCounter (1 | int)) | int) -}} -{{- $snippet = (concat (default (list) $snippet) (list `` (printf `ADVERTISED_%s_ADDRESSES=()` (upper $listenerName)))) -}} -{{- range $_, $replicaIndex := (until (($values.statefulset.replicas | int) | int)) -}} -{{- $port := ($externalVals.port | int) -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $externalVals.advertisedPorts)))) "r") | int) (0 | int)) -}} -{{- if (eq ((get (fromJson (include "_shims.len" (dict "a" (list $externalVals.advertisedPorts)))) "r") | int) (1 | int)) -}} -{{- $port = (index $externalVals.advertisedPorts (0 | int)) -}} -{{- else -}} -{{- $port = (index $externalVals.advertisedPorts $replicaIndex) -}} -{{- end -}} -{{- end -}} -{{- $host := (get (fromJson (include "redpanda.advertisedHostJSON" (dict "a" (list $dot $externalName $port $replicaIndex)))) "r") -}} -{{- $address := (toJson $host) -}} -{{- $prefixTemplate := (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $externalVals.prefixTemplate "")))) "r") -}} -{{- if (eq $prefixTemplate "") -}} -{{- $prefixTemplate = (default "" $values.external.prefixTemplate) -}} -{{- end -}} -{{- $snippet = (concat (default (list) $snippet) (list `` (printf `PREFIX_TEMPLATE=%s` (quote $prefixTemplate)) (printf `ADVERTISED_%s_ADDRESSES+=(%s)` (upper $listenerName) (quote $address)))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $snippet = (concat (default (list) $snippet) (list `` (printf `rpk redpanda config --config "$CONFIG" set %s.advertised_%s_api[%d] "${ADVERTISED_%s_ADDRESSES[$POD_ORDINAL]}"` $redpandaConfigPart $listenerAdvertisedName $externalCounter (upper $listenerName)))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $snippet) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.secretConfiguratorHTTPConfig" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $internalAdvertiseAddress := (printf "%s.%s" "${SERVICE_NAME}" (get (fromJson (include "redpanda.InternalDomain" (dict "a" (list $dot)))) "r")) -}} -{{- $snippet := (coalesce nil) -}} -{{- $listenerName := "http" -}} -{{- $listenerAdvertisedName := "pandaproxy" -}} -{{- $redpandaConfigPart := "pandaproxy" -}} -{{- $snippet = (concat (default (list) $snippet) (list `` (printf `LISTENER=%s` (quote (toJson (dict "name" "internal" "address" $internalAdvertiseAddress "port" ($values.listeners.http.port | int))))) (printf `rpk redpanda config --config "$CONFIG" set %s.advertised_%s_api[0] "$LISTENER"` $redpandaConfigPart $listenerAdvertisedName))) -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $values.listeners.http.external)))) "r") | int) (0 | int)) -}} -{{- $externalCounter := (0 | int) -}} -{{- range $externalName, $externalVals := $values.listeners.http.external -}} -{{- $externalCounter = ((add $externalCounter (1 | int)) | int) -}} -{{- $snippet = (concat (default (list) $snippet) (list `` (printf `ADVERTISED_%s_ADDRESSES=()` (upper $listenerName)))) -}} -{{- range $_, $replicaIndex := (until (($values.statefulset.replicas | int) | int)) -}} -{{- $port := ($externalVals.port | int) -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $externalVals.advertisedPorts)))) "r") | int) (0 | int)) -}} -{{- if (eq ((get (fromJson (include "_shims.len" (dict "a" (list $externalVals.advertisedPorts)))) "r") | int) (1 | int)) -}} -{{- $port = (index $externalVals.advertisedPorts (0 | int)) -}} -{{- else -}} -{{- $port = (index $externalVals.advertisedPorts $replicaIndex) -}} -{{- end -}} -{{- end -}} -{{- $host := (get (fromJson (include "redpanda.advertisedHostJSON" (dict "a" (list $dot $externalName $port $replicaIndex)))) "r") -}} -{{- $address := (toJson $host) -}} -{{- $prefixTemplate := (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $externalVals.prefixTemplate "")))) "r") -}} -{{- if (eq $prefixTemplate "") -}} -{{- $prefixTemplate = (default "" $values.external.prefixTemplate) -}} -{{- end -}} -{{- $snippet = (concat (default (list) $snippet) (list `` (printf `PREFIX_TEMPLATE=%s` (quote $prefixTemplate)) (printf `ADVERTISED_%s_ADDRESSES+=(%s)` (upper $listenerName) (quote $address)))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $snippet = (concat (default (list) $snippet) (list `` (printf `rpk redpanda config --config "$CONFIG" set %s.advertised_%s_api[%d] "${ADVERTISED_%s_ADDRESSES[$POD_ORDINAL]}"` $redpandaConfigPart $listenerAdvertisedName $externalCounter (upper $listenerName)))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $snippet) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.adminTLSCurlFlags" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not (get (fromJson (include "redpanda.InternalTLS.IsEnabled" (dict "a" (list $values.listeners.admin.tls $values.tls)))) "r")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" "") | toJson -}} -{{- break -}} -{{- end -}} -{{- if $values.listeners.admin.tls.requireClientAuth -}} -{{- $path := (printf "%s/%s-client" "/etc/tls/certs" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (printf "--cacert %s/ca.crt --cert %s/tls.crt --key %s/tls.key" $path $path $path)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $path := (get (fromJson (include "redpanda.InternalTLS.ServerCAPath" (dict "a" (list $values.listeners.admin.tls $values.tls)))) "r") -}} -{{- $_is_returning = true -}} -{{- (dict "r" (printf "--cacert %s" $path)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.externalAdvertiseAddress" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $eaa := "${SERVICE_NAME}" -}} -{{- $externalDomainTemplate := (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.external.domain "")))) "r") -}} -{{- $expanded := (tpl $externalDomainTemplate $dot) -}} -{{- if (not (empty $expanded)) -}} -{{- $eaa = (printf "%s.%s" "${SERVICE_NAME}" $expanded) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $eaa) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.advertisedHostJSON" -}} -{{- $dot := (index .a 0) -}} -{{- $externalName := (index .a 1) -}} -{{- $port := (index .a 2) -}} -{{- $replicaIndex := (index .a 3) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $host := (dict "name" $externalName "address" (get (fromJson (include "redpanda.externalAdvertiseAddress" (dict "a" (list $dot)))) "r") "port" $port) -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $values.external.addresses)))) "r") | int) (0 | int)) -}} -{{- $address := "" -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $values.external.addresses)))) "r") | int) (1 | int)) -}} -{{- $address = (index $values.external.addresses $replicaIndex) -}} -{{- else -}} -{{- $address = (index $values.external.addresses (0 | int)) -}} -{{- end -}} -{{- $domain_6 := (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.external.domain "")))) "r") -}} -{{- if (ne $domain_6 "") -}} -{{- $host = (dict "name" $externalName "address" (printf "%s.%s" $address (tpl $domain_6 $dot)) "port" $port) -}} -{{- else -}} -{{- $host = (dict "name" $externalName "address" $address "port" $port) -}} -{{- end -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $host) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.adminInternalHTTPProtocol" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (get (fromJson (include "redpanda.InternalTLS.IsEnabled" (dict "a" (list $values.listeners.admin.tls $values.tls)))) "r") -}} -{{- $_is_returning = true -}} -{{- (dict "r" "https") | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" "http") | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.adminInternalURL" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $_is_returning = true -}} -{{- (dict "r" (printf "%s://%s.%s:%d" (get (fromJson (include "redpanda.adminInternalHTTPProtocol" (dict "a" (list $dot)))) "r") `${SERVICE_NAME}` (trimSuffix "." (get (fromJson (include "redpanda.InternalDomain" (dict "a" (list $dot)))) "r")) ($values.listeners.admin.port | int))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/redpanda/templates/_service.internal.go.tpl b/charts/redpanda/templates/_service.internal.go.tpl deleted file mode 100644 index e74552d7ac..0000000000 --- a/charts/redpanda/templates/_service.internal.go.tpl +++ /dev/null @@ -1,38 +0,0 @@ -{{- /* Generated from "service_internal.go" */ -}} - -{{- define "redpanda.MonitoringEnabledLabel" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $_is_returning = true -}} -{{- (dict "r" (dict "monitoring.redpanda.com/enabled" (printf "%t" $values.monitoring.enabled))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.ServiceInternal" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $ports := (list) -}} -{{- $ports = (concat (default (list) $ports) (list (mustMergeOverwrite (dict "port" 0 "targetPort" 0) (dict "name" "admin" "protocol" "TCP" "appProtocol" $values.listeners.admin.appProtocol "port" ($values.listeners.admin.port | int) "targetPort" ($values.listeners.admin.port | int))))) -}} -{{- if $values.listeners.http.enabled -}} -{{- $ports = (concat (default (list) $ports) (list (mustMergeOverwrite (dict "port" 0 "targetPort" 0) (dict "name" "http" "protocol" "TCP" "port" ($values.listeners.http.port | int) "targetPort" ($values.listeners.http.port | int))))) -}} -{{- end -}} -{{- $ports = (concat (default (list) $ports) (list (mustMergeOverwrite (dict "port" 0 "targetPort" 0) (dict "name" "kafka" "protocol" "TCP" "port" ($values.listeners.kafka.port | int) "targetPort" ($values.listeners.kafka.port | int))))) -}} -{{- $ports = (concat (default (list) $ports) (list (mustMergeOverwrite (dict "port" 0 "targetPort" 0) (dict "name" "rpc" "protocol" "TCP" "port" ($values.listeners.rpc.port | int) "targetPort" ($values.listeners.rpc.port | int))))) -}} -{{- if $values.listeners.schemaRegistry.enabled -}} -{{- $ports = (concat (default (list) $ports) (list (mustMergeOverwrite (dict "port" 0 "targetPort" 0) (dict "name" "schemaregistry" "protocol" "TCP" "port" ($values.listeners.schemaRegistry.port | int) "targetPort" ($values.listeners.schemaRegistry.port | int))))) -}} -{{- end -}} -{{- $annotations := (dict) -}} -{{- if (ne (toJson $values.service) "null") -}} -{{- $annotations = $values.service.internal.annotations -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict) "status" (dict "loadBalancer" (dict))) (mustMergeOverwrite (dict) (dict "apiVersion" "v1" "kind" "Service")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (get (fromJson (include "redpanda.ServiceName" (dict "a" (list $dot)))) "r") "namespace" $dot.Release.Namespace "labels" (merge (dict) (get (fromJson (include "redpanda.FullLabels" (dict "a" (list $dot)))) "r") (get (fromJson (include "redpanda.MonitoringEnabledLabel" (dict "a" (list $dot)))) "r")) "annotations" $annotations)) "spec" (mustMergeOverwrite (dict) (dict "type" "ClusterIP" "publishNotReadyAddresses" true "clusterIP" "None" "selector" (get (fromJson (include "redpanda.StatefulSetPodLabelsSelector" (dict "a" (list $dot)))) "r") "ports" $ports))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/redpanda/templates/_service.loadbalancer.go.tpl b/charts/redpanda/templates/_service.loadbalancer.go.tpl deleted file mode 100644 index 5fa0f2e0a3..0000000000 --- a/charts/redpanda/templates/_service.loadbalancer.go.tpl +++ /dev/null @@ -1,69 +0,0 @@ -{{- /* Generated from "service.loadbalancer.go" */ -}} - -{{- define "redpanda.LoadBalancerServices" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (or (not $values.external.enabled) (not $values.external.service.enabled)) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- if (ne $values.external.type "LoadBalancer") -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $externalDNS := (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.external.externalDns (mustMergeOverwrite (dict "enabled" false) (dict)))))) "r") -}} -{{- $labels := (get (fromJson (include "redpanda.FullLabels" (dict "a" (list $dot)))) "r") -}} -{{- $_ := (set $labels "repdanda.com/type" "loadbalancer") -}} -{{- $selector := (get (fromJson (include "redpanda.StatefulSetPodLabelsSelector" (dict "a" (list $dot)))) "r") -}} -{{- $services := (coalesce nil) -}} -{{- $replicas := ($values.statefulset.replicas | int) -}} -{{- range $_, $i := untilStep (((0 | int) | int)|int) (($values.statefulset.replicas | int)|int) (1|int) -}} -{{- $podname := (printf "%s-%d" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r") $i) -}} -{{- $annotations := (dict) -}} -{{- range $k, $v := $values.external.annotations -}} -{{- $_ := (set $annotations $k $v) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- if $externalDNS.enabled -}} -{{- $prefix := $podname -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $values.external.addresses)))) "r") | int) (0 | int)) -}} -{{- if (eq ((get (fromJson (include "_shims.len" (dict "a" (list $values.external.addresses)))) "r") | int) (1 | int)) -}} -{{- $prefix = (index $values.external.addresses (0 | int)) -}} -{{- else -}} -{{- $prefix = (index $values.external.addresses $i) -}} -{{- end -}} -{{- end -}} -{{- $address := (printf "%s.%s" $prefix (tpl $values.external.domain $dot)) -}} -{{- $_ := (set $annotations "external-dns.alpha.kubernetes.io/hostname" $address) -}} -{{- end -}} -{{- $podSelector := (dict) -}} -{{- range $k, $v := $selector -}} -{{- $_ := (set $podSelector $k $v) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_ := (set $podSelector "statefulset.kubernetes.io/pod-name" $podname) -}} -{{- $ports := (coalesce nil) -}} -{{- $ports = (concat (default (list) $ports) (default (list) (get (fromJson (include "redpanda.ListenerConfig.ServicePorts" (dict "a" (list $values.listeners.admin "admin" $values.external)))) "r"))) -}} -{{- $ports = (concat (default (list) $ports) (default (list) (get (fromJson (include "redpanda.ListenerConfig.ServicePorts" (dict "a" (list $values.listeners.kafka "kafka" $values.external)))) "r"))) -}} -{{- $ports = (concat (default (list) $ports) (default (list) (get (fromJson (include "redpanda.ListenerConfig.ServicePorts" (dict "a" (list $values.listeners.http "http" $values.external)))) "r"))) -}} -{{- $ports = (concat (default (list) $ports) (default (list) (get (fromJson (include "redpanda.ListenerConfig.ServicePorts" (dict "a" (list $values.listeners.schemaRegistry "schema" $values.external)))) "r"))) -}} -{{- $svc := (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict) "status" (dict "loadBalancer" (dict))) (mustMergeOverwrite (dict) (dict "apiVersion" "v1" "kind" "Service")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (printf "lb-%s" $podname) "namespace" $dot.Release.Namespace "labels" $labels "annotations" $annotations)) "spec" (mustMergeOverwrite (dict) (dict "externalTrafficPolicy" "Local" "loadBalancerSourceRanges" $values.external.sourceRanges "ports" $ports "publishNotReadyAddresses" true "selector" $podSelector "sessionAffinity" "None" "type" "LoadBalancer")))) -}} -{{- $services = (concat (default (list) $services) (list $svc)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $services) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/redpanda/templates/_service.nodeport.go.tpl b/charts/redpanda/templates/_service.nodeport.go.tpl deleted file mode 100644 index 9d33de9218..0000000000 --- a/charts/redpanda/templates/_service.nodeport.go.tpl +++ /dev/null @@ -1,80 +0,0 @@ -{{- /* Generated from "service.nodeport.go" */ -}} - -{{- define "redpanda.NodePortService" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (or (not $values.external.enabled) (not $values.external.service.enabled)) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- if (ne $values.external.type "NodePort") -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $ports := (coalesce nil) -}} -{{- range $name, $listener := $values.listeners.admin.external -}} -{{- if (not (get (fromJson (include "redpanda.ExternalListener.IsEnabled" (dict "a" (list $listener)))) "r")) -}} -{{- continue -}} -{{- end -}} -{{- $nodePort := ($listener.port | int) -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $listener.advertisedPorts)))) "r") | int) (0 | int)) -}} -{{- $nodePort = (index $listener.advertisedPorts (0 | int)) -}} -{{- end -}} -{{- $ports = (concat (default (list) $ports) (list (mustMergeOverwrite (dict "port" 0 "targetPort" 0) (dict "name" (printf "admin-%s" $name) "protocol" "TCP" "port" ($listener.port | int) "nodePort" $nodePort)))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- range $name, $listener := $values.listeners.kafka.external -}} -{{- if (not (get (fromJson (include "redpanda.ExternalListener.IsEnabled" (dict "a" (list $listener)))) "r")) -}} -{{- continue -}} -{{- end -}} -{{- $nodePort := ($listener.port | int) -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $listener.advertisedPorts)))) "r") | int) (0 | int)) -}} -{{- $nodePort = (index $listener.advertisedPorts (0 | int)) -}} -{{- end -}} -{{- $ports = (concat (default (list) $ports) (list (mustMergeOverwrite (dict "port" 0 "targetPort" 0) (dict "name" (printf "kafka-%s" $name) "protocol" "TCP" "port" ($listener.port | int) "nodePort" $nodePort)))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- range $name, $listener := $values.listeners.http.external -}} -{{- if (not (get (fromJson (include "redpanda.ExternalListener.IsEnabled" (dict "a" (list $listener)))) "r")) -}} -{{- continue -}} -{{- end -}} -{{- $nodePort := ($listener.port | int) -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $listener.advertisedPorts)))) "r") | int) (0 | int)) -}} -{{- $nodePort = (index $listener.advertisedPorts (0 | int)) -}} -{{- end -}} -{{- $ports = (concat (default (list) $ports) (list (mustMergeOverwrite (dict "port" 0 "targetPort" 0) (dict "name" (printf "http-%s" $name) "protocol" "TCP" "port" ($listener.port | int) "nodePort" $nodePort)))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- range $name, $listener := $values.listeners.schemaRegistry.external -}} -{{- if (not (get (fromJson (include "redpanda.ExternalListener.IsEnabled" (dict "a" (list $listener)))) "r")) -}} -{{- continue -}} -{{- end -}} -{{- $nodePort := ($listener.port | int) -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $listener.advertisedPorts)))) "r") | int) (0 | int)) -}} -{{- $nodePort = (index $listener.advertisedPorts (0 | int)) -}} -{{- end -}} -{{- $ports = (concat (default (list) $ports) (list (mustMergeOverwrite (dict "port" 0 "targetPort" 0) (dict "name" (printf "schema-%s" $name) "protocol" "TCP" "port" ($listener.port | int) "nodePort" $nodePort)))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $annotations := $values.external.annotations -}} -{{- if (eq (toJson $annotations) "null") -}} -{{- $annotations = (dict) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict) "status" (dict "loadBalancer" (dict))) (mustMergeOverwrite (dict) (dict "apiVersion" "v1" "kind" "Service")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (printf "%s-external" (get (fromJson (include "redpanda.ServiceName" (dict "a" (list $dot)))) "r")) "namespace" $dot.Release.Namespace "labels" (get (fromJson (include "redpanda.FullLabels" (dict "a" (list $dot)))) "r") "annotations" $annotations)) "spec" (mustMergeOverwrite (dict) (dict "externalTrafficPolicy" "Local" "ports" $ports "publishNotReadyAddresses" true "selector" (get (fromJson (include "redpanda.StatefulSetPodLabelsSelector" (dict "a" (list $dot)))) "r") "sessionAffinity" "None" "type" "NodePort"))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/redpanda/templates/_serviceaccount.go.tpl b/charts/redpanda/templates/_serviceaccount.go.tpl deleted file mode 100644 index 1cd51e008f..0000000000 --- a/charts/redpanda/templates/_serviceaccount.go.tpl +++ /dev/null @@ -1,45 +0,0 @@ -{{- /* Generated from "serviceaccount.go" */ -}} - -{{- define "redpanda.ServiceAccountName" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $serviceAccount := $values.serviceAccount -}} -{{- if (and $serviceAccount.create (ne $serviceAccount.name "")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $serviceAccount.name) | toJson -}} -{{- break -}} -{{- else -}}{{- if $serviceAccount.create -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r")) | toJson -}} -{{- break -}} -{{- else -}}{{- if (ne $serviceAccount.name "") -}} -{{- $_is_returning = true -}} -{{- (dict "r" $serviceAccount.name) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" "default") | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.ServiceAccount" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not $values.serviceAccount.create) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil))) (mustMergeOverwrite (dict) (dict "apiVersion" "v1" "kind" "ServiceAccount")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (get (fromJson (include "redpanda.ServiceAccountName" (dict "a" (list $dot)))) "r") "namespace" $dot.Release.Namespace "labels" (get (fromJson (include "redpanda.FullLabels" (dict "a" (list $dot)))) "r") "annotations" $values.serviceAccount.annotations)) "automountServiceAccountToken" false))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/redpanda/templates/_servicemonitor.go.tpl b/charts/redpanda/templates/_servicemonitor.go.tpl deleted file mode 100644 index cd2c11342d..0000000000 --- a/charts/redpanda/templates/_servicemonitor.go.tpl +++ /dev/null @@ -1,26 +0,0 @@ -{{- /* Generated from "servicemonitor.go" */ -}} - -{{- define "redpanda.ServiceMonitor" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not $values.monitoring.enabled) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $endpoint := (mustMergeOverwrite (dict) (dict "interval" $values.monitoring.scrapeInterval "path" "/public_metrics" "port" "admin" "enableHttp2" $values.monitoring.enableHttp2 "scheme" "http")) -}} -{{- if (or (get (fromJson (include "redpanda.InternalTLS.IsEnabled" (dict "a" (list $values.listeners.admin.tls $values.tls)))) "r") (ne (toJson $values.monitoring.tlsConfig) "null")) -}} -{{- $_ := (set $endpoint "scheme" "https") -}} -{{- $_ := (set $endpoint "tlsConfig" $values.monitoring.tlsConfig) -}} -{{- if (eq (toJson $endpoint.tlsConfig) "null") -}} -{{- $_ := (set $endpoint "tlsConfig" (mustMergeOverwrite (dict "ca" (dict) "cert" (dict)) (mustMergeOverwrite (dict "ca" (dict) "cert" (dict)) (dict "insecureSkipVerify" true)) (dict))) -}} -{{- end -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict "endpoints" (coalesce nil) "selector" (dict) "namespaceSelector" (dict))) (mustMergeOverwrite (dict) (dict "apiVersion" "monitoring.coreos.com/v1" "kind" "ServiceMonitor")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r") "namespace" $dot.Release.Namespace "labels" (merge (dict) (get (fromJson (include "redpanda.FullLabels" (dict "a" (list $dot)))) "r") $values.monitoring.labels))) "spec" (mustMergeOverwrite (dict "endpoints" (coalesce nil) "selector" (dict) "namespaceSelector" (dict)) (dict "endpoints" (list $endpoint) "selector" (mustMergeOverwrite (dict) (dict "matchLabels" (dict "monitoring.redpanda.com/enabled" "true" "app.kubernetes.io/name" (get (fromJson (include "redpanda.Name" (dict "a" (list $dot)))) "r") "app.kubernetes.io/instance" $dot.Release.Name)))))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/redpanda/templates/_shims.tpl b/charts/redpanda/templates/_shims.tpl deleted file mode 100644 index 8bdb8a104f..0000000000 --- a/charts/redpanda/templates/_shims.tpl +++ /dev/null @@ -1,352 +0,0 @@ -{{- /* Generated from "bootstrap.go" */ -}} - -{{- define "_shims.typetest" -}} -{{- $typ := (index .a 0) -}} -{{- $value := (index .a 1) -}} -{{- $zero := (index .a 2) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (typeIs $typ $value) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $value true)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $zero false)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.typeassertion" -}} -{{- $typ := (index .a 0) -}} -{{- $value := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (not (typeIs $typ $value)) -}} -{{- $_ := (fail (printf "expected type of %q got: %T" $typ $value)) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $value) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.dicttest" -}} -{{- $m := (index .a 0) -}} -{{- $key := (index .a 1) -}} -{{- $zero := (index .a 2) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (hasKey $m $key) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list (index $m $key) true)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $zero false)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.deref" -}} -{{- $ptr := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (eq (toJson $ptr) "null") -}} -{{- $_ := (fail "nil dereference") -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $ptr) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.len" -}} -{{- $m := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (eq (toJson $m) "null") -}} -{{- $_is_returning = true -}} -{{- (dict "r" (0 | int)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (len $m)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.ptr_Deref" -}} -{{- $ptr := (index .a 0) -}} -{{- $def := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (ne (toJson $ptr) "null") -}} -{{- $_is_returning = true -}} -{{- (dict "r" $ptr) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $def) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.ptr_Equal" -}} -{{- $a := (index .a 0) -}} -{{- $b := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (and (eq (toJson $a) "null") (eq (toJson $b) "null")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" true) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (eq $a $b)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.get" -}} -{{- $dict := (index .a 0) -}} -{{- $key := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (not (hasKey $dict $key)) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list (coalesce nil) false)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list (get $dict $key) true)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.lookup" -}} -{{- $apiVersion := (index .a 0) -}} -{{- $kind := (index .a 1) -}} -{{- $namespace := (index .a 2) -}} -{{- $name := (index .a 3) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $result := (lookup $apiVersion $kind $namespace $name) -}} -{{- if (empty $result) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list (coalesce nil) false)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $result true)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.fromYaml" -}} -{{- $in := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $result := (fromYaml $in) -}} -{{- if (and (hasKey $result "Error") (eq (len $result) (1 | int))) -}} -{{- $_ := (fail (printf "fromYaml: unmarshalling failed: %s" (index $result "Error"))) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $result) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.asnumeric" -}} -{{- $value := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (typeIs "float64" $value) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $value true)) | toJson -}} -{{- break -}} -{{- end -}} -{{- if (typeIs "int64" $value) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $value true)) | toJson -}} -{{- break -}} -{{- end -}} -{{- if (typeIs "int" $value) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $value true)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list (0 | int) false)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.asintegral" -}} -{{- $value := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (or (typeIs "int64" $value) (typeIs "int" $value)) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $value true)) | toJson -}} -{{- break -}} -{{- end -}} -{{- if (and (typeIs "float64" $value) (eq (floor $value) $value)) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $value true)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list (0 | int) false)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.parseResource" -}} -{{- $repr := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (typeIs "float64" $repr) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list (float64 $repr) 1.0)) | toJson -}} -{{- break -}} -{{- end -}} -{{- if (not (typeIs "string" $repr)) -}} -{{- $_ := (fail (printf "invalid Quantity expected string or float64 got: %T (%v)" $repr $repr)) -}} -{{- end -}} -{{- if (not (regexMatch `^[0-9]+(\.[0-9]{0,6})?(k|m|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$` $repr)) -}} -{{- $_ := (fail (printf "invalid Quantity: %q" $repr)) -}} -{{- end -}} -{{- $reprStr := (toString $repr) -}} -{{- $unit := (regexFind "(k|m|M|G|T|P|Ki|Mi|Gi|Ti|Pi)$" $repr) -}} -{{- $numeric := (float64 (substr (0 | int) ((sub ((get (fromJson (include "_shims.len" (dict "a" (list $reprStr)))) "r") | int) ((get (fromJson (include "_shims.len" (dict "a" (list $unit)))) "r") | int)) | int) $reprStr)) -}} -{{- $_196_scale_ok := (get (fromJson (include "_shims.dicttest" (dict "a" (list (dict "" 1.0 "m" 0.001 "k" (1000 | int) "M" (1000000 | int) "G" (1000000000 | int) "T" (1000000000000 | int) "P" (1000000000000000 | int) "Ki" (1024 | int) "Mi" (1048576 | int) "Gi" (1073741824 | int) "Ti" (1099511627776 | int) "Pi" (1125899906842624 | int)) $unit (float64 0))))) "r") -}} -{{- $scale := ((index $_196_scale_ok 0) | float64) -}} -{{- $ok := (index $_196_scale_ok 1) -}} -{{- if (not $ok) -}} -{{- $_ := (fail (printf "unknown unit: %q" $unit)) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $numeric $scale)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.resource_MustParse" -}} -{{- $repr := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_219_numeric_scale := (get (fromJson (include "_shims.parseResource" (dict "a" (list $repr)))) "r") -}} -{{- $numeric := ((index $_219_numeric_scale 0) | float64) -}} -{{- $scale := ((index $_219_numeric_scale 1) | float64) -}} -{{- $strs := (list "" "m" "k" "M" "G" "T" "P" "Ki" "Mi" "Gi" "Ti" "Pi") -}} -{{- $scales := (list 1.0 0.001 (1000 | int) (1000000 | int) (1000000000 | int) (1000000000000 | int) (1000000000000000 | int) (1024 | int) (1048576 | int) (1073741824 | int) (1099511627776 | int) (1125899906842624 | int)) -}} -{{- $idx := -1 -}} -{{- range $i, $s := $scales -}} -{{- if (eq ($s | float64) ($scale | float64)) -}} -{{- $idx = $i -}} -{{- break -}} -{{- end -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- if (eq $idx -1) -}} -{{- $_ := (fail (printf "unknown scale: %v" $scale)) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (printf "%s%s" (toString $numeric) (index $strs $idx))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.resource_Value" -}} -{{- $repr := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_246_numeric_scale := (get (fromJson (include "_shims.parseResource" (dict "a" (list $repr)))) "r") -}} -{{- $numeric := ((index $_246_numeric_scale 0) | float64) -}} -{{- $scale := ((index $_246_numeric_scale 1) | float64) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (int64 (ceil ((mulf $numeric $scale) | float64)))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.resource_MilliValue" -}} -{{- $repr := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_251_numeric_scale := (get (fromJson (include "_shims.parseResource" (dict "a" (list $repr)))) "r") -}} -{{- $numeric := ((index $_251_numeric_scale 0) | float64) -}} -{{- $scale := ((index $_251_numeric_scale 1) | float64) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (int64 (ceil ((mulf ((mulf $numeric 1000.0) | float64) $scale) | float64)))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.time_ParseDuration" -}} -{{- $repr := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $unitMap := (dict "s" ((1000000000 | int64) | int64) "m" ((60000000000 | int64) | int64) "h" ((3600000000000 | int64) | int64)) -}} -{{- $original := $repr -}} -{{- $value := ((0 | int64) | int64) -}} -{{- if (eq $repr "") -}} -{{- $_ := (fail (printf "invalid Duration: %q" $original)) -}} -{{- end -}} -{{- if (eq $repr "0") -}} -{{- $_is_returning = true -}} -{{- (dict "r" (0 | int64)) | toJson -}} -{{- break -}} -{{- end -}} -{{- range $_, $_ := (list (0 | int) (0 | int) (0 | int)) -}} -{{- if (eq $repr "") -}} -{{- break -}} -{{- end -}} -{{- $n := (regexFind `^\d+` $repr) -}} -{{- if (eq $n "") -}} -{{- $_ := (fail (printf "invalid Duration: %q" $original)) -}} -{{- end -}} -{{- $repr = (substr ((get (fromJson (include "_shims.len" (dict "a" (list $n)))) "r") | int) -1 $repr) -}} -{{- $unit := (regexFind `^(h|m|s)` $repr) -}} -{{- if (eq $unit "") -}} -{{- $_ := (fail (printf "invalid Duration: %q" $original)) -}} -{{- end -}} -{{- $repr = (substr ((get (fromJson (include "_shims.len" (dict "a" (list $unit)))) "r") | int) -1 $repr) -}} -{{- $value = ((add $value (((mul (int64 $n) (ternary (index $unitMap $unit) 0 (hasKey $unitMap $unit))) | int64))) | int64) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $value) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.time_Duration_String" -}} -{{- $dur := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (duration ((div $dur ((1000000000 | int64) | int64)) | int64))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "_shims.render-manifest" -}} -{{- $tpl := (index . 0) -}} -{{- $dot := (index . 1) -}} -{{- $manifests := (get ((include $tpl (dict "a" (list $dot))) | fromJson) "r") -}} -{{- if not (typeIs "[]interface {}" $manifests) -}} -{{- $manifests = (list $manifests) -}} -{{- end -}} -{{- range $_, $manifest := $manifests -}} -{{- if ne (toJson $manifest) "null" }} ---- -{{toYaml (unset (unset $manifest "status") "creationTimestamp")}} -{{- end -}} -{{- end -}} -{{- end -}} diff --git a/charts/redpanda/templates/_statefulset.go.tpl b/charts/redpanda/templates/_statefulset.go.tpl deleted file mode 100644 index 5c658f74ba..0000000000 --- a/charts/redpanda/templates/_statefulset.go.tpl +++ /dev/null @@ -1,630 +0,0 @@ -{{- /* Generated from "statefulset.go" */ -}} - -{{- define "redpanda.statefulSetRedpandaEnv" -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list (mustMergeOverwrite (dict "name" "") (dict "name" "SERVICE_NAME" "valueFrom" (mustMergeOverwrite (dict) (dict "fieldRef" (mustMergeOverwrite (dict "fieldPath" "") (dict "fieldPath" "metadata.name")))))) (mustMergeOverwrite (dict "name" "") (dict "name" "POD_IP" "valueFrom" (mustMergeOverwrite (dict) (dict "fieldRef" (mustMergeOverwrite (dict "fieldPath" "") (dict "fieldPath" "status.podIP")))))) (mustMergeOverwrite (dict "name" "") (dict "name" "HOST_IP" "valueFrom" (mustMergeOverwrite (dict) (dict "fieldRef" (mustMergeOverwrite (dict "fieldPath" "") (dict "fieldPath" "status.hostIP")))))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.StatefulSetPodLabelsSelector" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if $dot.Release.IsUpgrade -}} -{{- $_87_existing_1_ok_2 := (get (fromJson (include "_shims.lookup" (dict "a" (list "apps/v1" "StatefulSet" $dot.Release.Namespace (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r"))))) "r") -}} -{{- $existing_1 := (index $_87_existing_1_ok_2 0) -}} -{{- $ok_2 := (index $_87_existing_1_ok_2 1) -}} -{{- if (and $ok_2 (gt ((get (fromJson (include "_shims.len" (dict "a" (list $existing_1.spec.selector.matchLabels)))) "r") | int) (0 | int))) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $existing_1.spec.selector.matchLabels) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} -{{- $values := $dot.Values.AsMap -}} -{{- $additionalSelectorLabels := (dict) -}} -{{- if (ne (toJson $values.statefulset.additionalSelectorLabels) "null") -}} -{{- $additionalSelectorLabels = $values.statefulset.additionalSelectorLabels -}} -{{- end -}} -{{- $component := (printf "%s-statefulset" (trimSuffix "-" (trunc (51 | int) (get (fromJson (include "redpanda.Name" (dict "a" (list $dot)))) "r")))) -}} -{{- $defaults := (dict "app.kubernetes.io/component" $component "app.kubernetes.io/instance" $dot.Release.Name "app.kubernetes.io/name" (get (fromJson (include "redpanda.Name" (dict "a" (list $dot)))) "r")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (merge (dict) $additionalSelectorLabels $defaults)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.StatefulSetPodLabels" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if $dot.Release.IsUpgrade -}} -{{- $_118_existing_3_ok_4 := (get (fromJson (include "_shims.lookup" (dict "a" (list "apps/v1" "StatefulSet" $dot.Release.Namespace (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r"))))) "r") -}} -{{- $existing_3 := (index $_118_existing_3_ok_4 0) -}} -{{- $ok_4 := (index $_118_existing_3_ok_4 1) -}} -{{- if (and $ok_4 (gt ((get (fromJson (include "_shims.len" (dict "a" (list $existing_3.spec.template.metadata.labels)))) "r") | int) (0 | int))) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $existing_3.spec.template.metadata.labels) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} -{{- $values := $dot.Values.AsMap -}} -{{- $statefulSetLabels := (dict) -}} -{{- if (ne (toJson $values.statefulset.podTemplate.labels) "null") -}} -{{- $statefulSetLabels = $values.statefulset.podTemplate.labels -}} -{{- end -}} -{{- $defaults := (dict "redpanda.com/poddisruptionbudget" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (merge (dict) $statefulSetLabels (get (fromJson (include "redpanda.StatefulSetPodLabelsSelector" (dict "a" (list $dot)))) "r") $defaults (get (fromJson (include "redpanda.FullLabels" (dict "a" (list $dot)))) "r"))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.StatefulSetVolumes" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $fullname := (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r") -}} -{{- $volumes := (get (fromJson (include "redpanda.CommonVolumes" (dict "a" (list $dot)))) "r") -}} -{{- $values := $dot.Values.AsMap -}} -{{- $volumes = (concat (default (list) $volumes) (default (list) (list (mustMergeOverwrite (dict "name" "") (mustMergeOverwrite (dict) (dict "secret" (mustMergeOverwrite (dict) (dict "secretName" (printf "%.50s-sts-lifecycle" $fullname) "defaultMode" (0o775 | int))))) (dict "name" "lifecycle-scripts")) (mustMergeOverwrite (dict "name" "") (mustMergeOverwrite (dict) (dict "configMap" (mustMergeOverwrite (dict) (mustMergeOverwrite (dict) (dict "name" $fullname)) (dict)))) (dict "name" "base-config")) (mustMergeOverwrite (dict "name" "") (mustMergeOverwrite (dict) (dict "emptyDir" (mustMergeOverwrite (dict) (dict)))) (dict "name" "config")) (mustMergeOverwrite (dict "name" "") (mustMergeOverwrite (dict) (dict "secret" (mustMergeOverwrite (dict) (dict "secretName" (printf "%.51s-configurator" $fullname) "defaultMode" (0o775 | int))))) (dict "name" (printf "%.51s-configurator" $fullname)))))) -}} -{{- if $values.statefulset.initContainers.fsValidator.enabled -}} -{{- $volumes = (concat (default (list) $volumes) (list (mustMergeOverwrite (dict "name" "") (mustMergeOverwrite (dict) (dict "secret" (mustMergeOverwrite (dict) (dict "secretName" (printf "%.49s-fs-validator" $fullname) "defaultMode" (0o775 | int))))) (dict "name" (printf "%.49s-fs-validator" $fullname))))) -}} -{{- end -}} -{{- $vol_5 := (get (fromJson (include "redpanda.Listeners.TrustStoreVolume" (dict "a" (list $values.listeners $values.tls)))) "r") -}} -{{- if (ne (toJson $vol_5) "null") -}} -{{- $volumes = (concat (default (list) $volumes) (list $vol_5)) -}} -{{- end -}} -{{- $volumes = (concat (default (list) $volumes) (list (get (fromJson (include "redpanda.statefulSetVolumeDataDir" (dict "a" (list $dot)))) "r"))) -}} -{{- $v_6 := (get (fromJson (include "redpanda.statefulSetVolumeTieredStorageDir" (dict "a" (list $dot)))) "r") -}} -{{- if (ne (toJson $v_6) "null") -}} -{{- $volumes = (concat (default (list) $volumes) (list $v_6)) -}} -{{- end -}} -{{- $volumes = (concat (default (list) $volumes) (list (get (fromJson (include "redpanda.kubeTokenAPIVolume" (dict "a" (list "kube-api-access")))) "r"))) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $volumes) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.kubeTokenAPIVolume" -}} -{{- $name := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "name" "") (mustMergeOverwrite (dict) (dict "projected" (mustMergeOverwrite (dict "sources" (coalesce nil)) (dict "defaultMode" (420 | int) "sources" (list (mustMergeOverwrite (dict) (dict "serviceAccountToken" (mustMergeOverwrite (dict "path" "") (dict "path" "token" "expirationSeconds" ((3607 | int) | int64))))) (mustMergeOverwrite (dict) (dict "configMap" (mustMergeOverwrite (dict) (mustMergeOverwrite (dict) (dict "name" "kube-root-ca.crt")) (dict "items" (list (mustMergeOverwrite (dict "key" "" "path" "") (dict "key" "ca.crt" "path" "ca.crt"))))))) (mustMergeOverwrite (dict) (dict "downwardAPI" (mustMergeOverwrite (dict) (dict "items" (list (mustMergeOverwrite (dict "path" "") (dict "path" "namespace" "fieldRef" (mustMergeOverwrite (dict "fieldPath" "") (dict "apiVersion" "v1" "fieldPath" "metadata.namespace")))))))))))))) (dict "name" $name))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.statefulSetVolumeDataDir" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $datadirSource := (mustMergeOverwrite (dict) (dict "emptyDir" (mustMergeOverwrite (dict) (dict)))) -}} -{{- if $values.storage.persistentVolume.enabled -}} -{{- $datadirSource = (mustMergeOverwrite (dict) (dict "persistentVolumeClaim" (mustMergeOverwrite (dict "claimName" "") (dict "claimName" "datadir")))) -}} -{{- else -}}{{- if (ne $values.storage.hostPath "") -}} -{{- $datadirSource = (mustMergeOverwrite (dict) (dict "hostPath" (mustMergeOverwrite (dict "path" "") (dict "path" $values.storage.hostPath)))) -}} -{{- end -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "name" "") $datadirSource (dict "name" "datadir"))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.statefulSetVolumeTieredStorageDir" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not (get (fromJson (include "redpanda.Storage.IsTieredStorageEnabled" (dict "a" (list $values.storage)))) "r")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $tieredType := (get (fromJson (include "redpanda.Storage.TieredMountType" (dict "a" (list $values.storage)))) "r") -}} -{{- if (or (eq $tieredType "none") (eq $tieredType "persistentVolume")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- if (eq $tieredType "hostPath") -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "name" "") (mustMergeOverwrite (dict) (dict "hostPath" (mustMergeOverwrite (dict "path" "") (dict "path" (get (fromJson (include "redpanda.Storage.GetTieredStorageHostPath" (dict "a" (list $values.storage)))) "r"))))) (dict "name" "tiered-storage-dir"))) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "name" "") (mustMergeOverwrite (dict) (dict "emptyDir" (mustMergeOverwrite (dict) (dict "sizeLimit" (get (fromJson (include "redpanda.TieredStorageConfig.CloudStorageCacheSize" (dict "a" (list (deepCopy (get (fromJson (include "redpanda.Storage.GetTieredStorageConfig" (dict "a" (list $values.storage)))) "r")))))) "r"))))) (dict "name" "tiered-storage-dir"))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.StatefulSetVolumeMounts" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $mounts := (get (fromJson (include "redpanda.CommonMounts" (dict "a" (list $dot)))) "r") -}} -{{- $values := $dot.Values.AsMap -}} -{{- $mounts = (concat (default (list) $mounts) (default (list) (list (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" "config" "mountPath" "/etc/redpanda")) (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" "base-config" "mountPath" "/tmp/base-config")) (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" "lifecycle-scripts" "mountPath" "/var/lifecycle")) (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" "datadir" "mountPath" "/var/lib/redpanda/data")) (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" "kube-api-access" "mountPath" "/var/run/secrets/kubernetes.io/serviceaccount" "readOnly" true))))) -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list (get (fromJson (include "redpanda.Listeners.TrustStores" (dict "a" (list $values.listeners $values.tls)))) "r"))))) "r") | int) (0 | int)) -}} -{{- $mounts = (concat (default (list) $mounts) (list (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" "truststores" "mountPath" "/etc/truststores" "readOnly" true)))) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $mounts) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.StatefulSetInitContainers" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $containers := (coalesce nil) -}} -{{- $c_7 := (get (fromJson (include "redpanda.statefulSetInitContainerTuning" (dict "a" (list $dot)))) "r") -}} -{{- if (ne (toJson $c_7) "null") -}} -{{- $containers = (concat (default (list) $containers) (list $c_7)) -}} -{{- end -}} -{{- $c_8 := (get (fromJson (include "redpanda.statefulSetInitContainerSetDataDirOwnership" (dict "a" (list $dot)))) "r") -}} -{{- if (ne (toJson $c_8) "null") -}} -{{- $containers = (concat (default (list) $containers) (list $c_8)) -}} -{{- end -}} -{{- $c_9 := (get (fromJson (include "redpanda.statefulSetInitContainerFSValidator" (dict "a" (list $dot)))) "r") -}} -{{- if (ne (toJson $c_9) "null") -}} -{{- $containers = (concat (default (list) $containers) (list $c_9)) -}} -{{- end -}} -{{- $c_10 := (get (fromJson (include "redpanda.statefulSetInitContainerSetTieredStorageCacheDirOwnership" (dict "a" (list $dot)))) "r") -}} -{{- if (ne (toJson $c_10) "null") -}} -{{- $containers = (concat (default (list) $containers) (list $c_10)) -}} -{{- end -}} -{{- $containers = (concat (default (list) $containers) (list (get (fromJson (include "redpanda.statefulSetInitContainerConfigurator" (dict "a" (list $dot)))) "r"))) -}} -{{- $containers = (concat (default (list) $containers) (list (get (fromJson (include "redpanda.bootstrapYamlTemplater" (dict "a" (list $dot)))) "r"))) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $containers) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.statefulSetInitContainerTuning" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not $values.tuning.tune_aio_events) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "name" "" "resources" (dict)) (dict "name" "tuning" "image" (printf "%s:%s" $values.image.repository (get (fromJson (include "redpanda.Tag" (dict "a" (list $dot)))) "r")) "command" (list `/bin/bash` `-c` `rpk redpanda tune all`) "securityContext" (mustMergeOverwrite (dict) (dict "capabilities" (mustMergeOverwrite (dict) (dict "add" (list `SYS_RESOURCE`))) "privileged" true "runAsUser" ((0 | int64) | int64) "runAsGroup" ((0 | int64) | int64))) "volumeMounts" (concat (default (list) (get (fromJson (include "redpanda.CommonMounts" (dict "a" (list $dot)))) "r")) (list (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" "base-config" "mountPath" "/etc/redpanda"))))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.statefulSetInitContainerSetDataDirOwnership" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not $values.statefulset.initContainers.setDataDirOwnership.enabled) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_403_uid_gid := (get (fromJson (include "redpanda.securityContextUidGid" (dict "a" (list $dot "set-datadir-ownership")))) "r") -}} -{{- $uid := ((index $_403_uid_gid 0) | int64) -}} -{{- $gid := ((index $_403_uid_gid 1) | int64) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "name" "" "resources" (dict)) (dict "name" "set-datadir-ownership" "image" (printf "%s:%s" $values.statefulset.initContainerImage.repository $values.statefulset.initContainerImage.tag) "command" (list `/bin/sh` `-c` (printf `chown %d:%d -R /var/lib/redpanda/data` $uid $gid)) "securityContext" (mustMergeOverwrite (dict) (dict "runAsUser" (0 | int64) "runAsGroup" (0 | int64))) "volumeMounts" (concat (default (list) (get (fromJson (include "redpanda.CommonMounts" (dict "a" (list $dot)))) "r")) (list (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" `datadir` "mountPath" `/var/lib/redpanda/data`))))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.securityContextUidGid" -}} -{{- $dot := (index .a 0) -}} -{{- $containerName := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $_431_gid_uid := (get (fromJson (include "redpanda.giduidFromPodTemplate" (dict "a" (list $values.podTemplate "redpanda")))) "r") -}} -{{- $gid := (index $_431_gid_uid 0) -}} -{{- $uid := (index $_431_gid_uid 1) -}} -{{- $_432_sgid_suid := (get (fromJson (include "redpanda.giduidFromPodTemplate" (dict "a" (list $values.statefulset.podTemplate "redpanda")))) "r") -}} -{{- $sgid := (index $_432_sgid_suid 0) -}} -{{- $suid := (index $_432_sgid_suid 1) -}} -{{- if (ne (toJson $sgid) "null") -}} -{{- $gid = $sgid -}} -{{- end -}} -{{- if (ne (toJson $suid) "null") -}} -{{- $uid = $suid -}} -{{- end -}} -{{- if (eq (toJson $gid) "null") -}} -{{- $_ := (fail (printf `%s container requires runAsUser to be specified` $containerName)) -}} -{{- end -}} -{{- if (eq (toJson $uid) "null") -}} -{{- $_ := (fail (printf `%s container requires fsGroup to be specified` $containerName)) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $uid $gid)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.giduidFromPodTemplate" -}} -{{- $tpl := (index .a 0) -}} -{{- $containerName := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $gid := (coalesce nil) -}} -{{- $uid := (coalesce nil) -}} -{{- if (eq (toJson $tpl.spec) "null") -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list (coalesce nil) (coalesce nil))) | toJson -}} -{{- break -}} -{{- end -}} -{{- if (ne (toJson $tpl.spec.securityContext) "null") -}} -{{- $gid = $tpl.spec.securityContext.fsGroup -}} -{{- $uid = $tpl.spec.securityContext.runAsUser -}} -{{- end -}} -{{- range $_, $container := $tpl.spec.containers -}} -{{- if (and (eq (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $container.name "")))) "r") $containerName) (ne (toJson $container.securityContext) "null")) -}} -{{- if (ne (toJson $container.securityContext.runAsUser) "null") -}} -{{- $uid = $container.securityContext.runAsUser -}} -{{- end -}} -{{- end -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list $gid $uid)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.statefulSetInitContainerFSValidator" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not $values.statefulset.initContainers.fsValidator.enabled) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "name" "" "resources" (dict)) (dict "name" "fs-validator" "image" (printf "%s:%s" $values.image.repository (get (fromJson (include "redpanda.Tag" (dict "a" (list $dot)))) "r")) "command" (list `/bin/sh`) "args" (list `-c` (printf `trap "exit 0" TERM; exec /etc/secrets/fs-validator/scripts/fsValidator.sh %s & wait $!` $values.statefulset.initContainers.fsValidator.expectedFS)) "volumeMounts" (concat (default (list) (get (fromJson (include "redpanda.CommonMounts" (dict "a" (list $dot)))) "r")) (list (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" (printf `%.49s-fs-validator` (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r")) "mountPath" `/etc/secrets/fs-validator/scripts/`)) (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" `datadir` "mountPath" `/var/lib/redpanda/data`))))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.statefulSetInitContainerSetTieredStorageCacheDirOwnership" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not (get (fromJson (include "redpanda.Storage.IsTieredStorageEnabled" (dict "a" (list $values.storage)))) "r")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_515_uid_gid := (get (fromJson (include "redpanda.securityContextUidGid" (dict "a" (list $dot "set-tiered-storage-cache-dir-ownership")))) "r") -}} -{{- $uid := ((index $_515_uid_gid 0) | int64) -}} -{{- $gid := ((index $_515_uid_gid 1) | int64) -}} -{{- $cacheDir := (get (fromJson (include "redpanda.Storage.TieredCacheDirectory" (dict "a" (list $values.storage $dot)))) "r") -}} -{{- $mounts := (get (fromJson (include "redpanda.CommonMounts" (dict "a" (list $dot)))) "r") -}} -{{- $mounts = (concat (default (list) $mounts) (list (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" "datadir" "mountPath" "/var/lib/redpanda/data")))) -}} -{{- if (ne (get (fromJson (include "redpanda.Storage.TieredMountType" (dict "a" (list $values.storage)))) "r") "none") -}} -{{- $name := "tiered-storage-dir" -}} -{{- if (and (ne (toJson $values.storage.persistentVolume) "null") (ne $values.storage.persistentVolume.nameOverwrite "")) -}} -{{- $name = $values.storage.persistentVolume.nameOverwrite -}} -{{- end -}} -{{- $mounts = (concat (default (list) $mounts) (list (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" $name "mountPath" $cacheDir)))) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "name" "" "resources" (dict)) (dict "name" `set-tiered-storage-cache-dir-ownership` "image" (printf `%s:%s` $values.statefulset.initContainerImage.repository $values.statefulset.initContainerImage.tag) "command" (list `/bin/sh` `-c` (printf `mkdir -p %s; chown %d:%d -R %s` $cacheDir $uid $gid $cacheDir)) "securityContext" (mustMergeOverwrite (dict) (dict "runAsUser" (0 | int64) "runAsGroup" (0 | int64))) "volumeMounts" $mounts))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.statefulSetInitContainerConfigurator" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $volMounts := (get (fromJson (include "redpanda.CommonMounts" (dict "a" (list $dot)))) "r") -}} -{{- $volMounts = (concat (default (list) $volMounts) (list (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" "config" "mountPath" "/etc/redpanda")) (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" "base-config" "mountPath" "/tmp/base-config")) (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" (printf `%.51s-configurator` (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r")) "mountPath" "/etc/secrets/configurator/scripts/")))) -}} -{{- if $values.rackAwareness.enabled -}} -{{- $volMounts = (concat (default (list) $volMounts) (list (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" "kube-api-access" "mountPath" "/var/run/secrets/kubernetes.io/serviceaccount" "readOnly" true)))) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "name" "" "resources" (dict)) (dict "name" "redpanda-configurator" "image" (printf `%s:%s` $values.image.repository (get (fromJson (include "redpanda.Tag" (dict "a" (list $dot)))) "r")) "command" (list `/bin/bash` `-c` `trap "exit 0" TERM; exec $CONFIGURATOR_SCRIPT "${SERVICE_NAME}" "${KUBERNETES_NODE_NAME}" & wait $!`) "env" (get (fromJson (include "redpanda.rpkEnvVars" (dict "a" (list $dot (list (mustMergeOverwrite (dict "name" "") (dict "name" "CONFIGURATOR_SCRIPT" "value" "/etc/secrets/configurator/scripts/configurator.sh")) (mustMergeOverwrite (dict "name" "") (dict "name" "SERVICE_NAME" "valueFrom" (mustMergeOverwrite (dict) (dict "fieldRef" (mustMergeOverwrite (dict "fieldPath" "") (dict "fieldPath" "metadata.name")) "resourceFieldRef" (coalesce nil) "configMapKeyRef" (coalesce nil) "secretKeyRef" (coalesce nil))))) (mustMergeOverwrite (dict "name" "") (dict "name" "KUBERNETES_NODE_NAME" "valueFrom" (mustMergeOverwrite (dict) (dict "fieldRef" (mustMergeOverwrite (dict "fieldPath" "") (dict "fieldPath" "spec.nodeName")))))) (mustMergeOverwrite (dict "name" "") (dict "name" "HOST_IP_ADDRESS" "valueFrom" (mustMergeOverwrite (dict) (dict "fieldRef" (mustMergeOverwrite (dict "fieldPath" "") (dict "apiVersion" "v1" "fieldPath" "status.hostIP"))))))))))) "r") "volumeMounts" $volMounts))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.StatefulSetContainers" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $containers := (coalesce nil) -}} -{{- $containers = (concat (default (list) $containers) (list (get (fromJson (include "redpanda.statefulSetContainerRedpanda" (dict "a" (list $dot)))) "r"))) -}} -{{- $c_11 := (get (fromJson (include "redpanda.statefulSetContainerSidecar" (dict "a" (list $dot)))) "r") -}} -{{- if (ne (toJson $c_11) "null") -}} -{{- $containers = (concat (default (list) $containers) (list $c_11)) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $containers) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.wrapLifecycleHook" -}} -{{- $hook := (index .a 0) -}} -{{- $timeoutSeconds := (index .a 1) -}} -{{- $cmd := (index .a 2) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $wrapped := (join " " $cmd) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list "bash" "-c" (printf "timeout -v %d %s 2>&1 | sed \"s/^/lifecycle-hook %s $(date): /\" | tee /proc/1/fd/1; true" $timeoutSeconds $wrapped $hook))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.statefulSetContainerRedpanda" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $internalAdvertiseAddress := (printf "%s.%s" "$(SERVICE_NAME)" (get (fromJson (include "redpanda.InternalDomain" (dict "a" (list $dot)))) "r")) -}} -{{- $container := (mustMergeOverwrite (dict "name" "" "resources" (dict)) (dict "name" "redpanda" "image" (printf `%s:%s` $values.image.repository (get (fromJson (include "redpanda.Tag" (dict "a" (list $dot)))) "r")) "env" (get (fromJson (include "redpanda.bootstrapEnvVars" (dict "a" (list $dot (get (fromJson (include "redpanda.statefulSetRedpandaEnv" (dict "a" (list)))) "r"))))) "r") "lifecycle" (mustMergeOverwrite (dict) (dict "postStart" (mustMergeOverwrite (dict) (dict "exec" (mustMergeOverwrite (dict) (dict "command" (get (fromJson (include "redpanda.wrapLifecycleHook" (dict "a" (list "post-start" ((div $values.statefulset.podTemplate.spec.terminationGracePeriodSeconds (2 | int64)) | int64) (list "bash" "-x" "/var/lifecycle/postStart.sh"))))) "r"))))) "preStop" (mustMergeOverwrite (dict) (dict "exec" (mustMergeOverwrite (dict) (dict "command" (get (fromJson (include "redpanda.wrapLifecycleHook" (dict "a" (list "pre-stop" ((div $values.statefulset.podTemplate.spec.terminationGracePeriodSeconds (2 | int64)) | int64) (list "bash" "-x" "/var/lifecycle/preStop.sh"))))) "r"))))))) "startupProbe" (mustMergeOverwrite (dict) (mustMergeOverwrite (dict) (dict "exec" (mustMergeOverwrite (dict) (dict "command" (list `/bin/sh` `-c` (join "\n" (list `set -e` (printf `RESULT=$(curl --silent --fail -k -m 5 %s "%s://%s/v1/status/ready")` (get (fromJson (include "redpanda.adminTLSCurlFlags" (dict "a" (list $dot)))) "r") (get (fromJson (include "redpanda.adminInternalHTTPProtocol" (dict "a" (list $dot)))) "r") (get (fromJson (include "redpanda.adminApiURLs" (dict "a" (list $dot)))) "r")) `echo $RESULT` `echo $RESULT | grep ready` ``))))))) (dict "failureThreshold" (120 | int) "initialDelaySeconds" (1 | int) "periodSeconds" (10 | int))) "livenessProbe" (mustMergeOverwrite (dict) (mustMergeOverwrite (dict) (dict "exec" (mustMergeOverwrite (dict) (dict "command" (list `/bin/sh` `-c` (printf `curl --silent --fail -k -m 5 %s "%s://%s/v1/status/ready"` (get (fromJson (include "redpanda.adminTLSCurlFlags" (dict "a" (list $dot)))) "r") (get (fromJson (include "redpanda.adminInternalHTTPProtocol" (dict "a" (list $dot)))) "r") (get (fromJson (include "redpanda.adminApiURLs" (dict "a" (list $dot)))) "r"))))))) (dict "failureThreshold" (3 | int) "initialDelaySeconds" (10 | int) "periodSeconds" (10 | int))) "command" (list `rpk` `redpanda` `start` (printf `--advertise-rpc-addr=%s:%d` $internalAdvertiseAddress ($values.listeners.rpc.port | int))) "volumeMounts" (get (fromJson (include "redpanda.StatefulSetVolumeMounts" (dict "a" (list $dot)))) "r") "resources" (get (fromJson (include "redpanda.RedpandaResources.GetResourceRequirements" (dict "a" (list $values.resources)))) "r"))) -}} -{{- $_ := (set $container "ports" (concat (default (list) $container.ports) (list (mustMergeOverwrite (dict "containerPort" 0) (dict "name" "admin" "containerPort" ($values.listeners.admin.port | int)))))) -}} -{{- range $externalName, $external := $values.listeners.admin.external -}} -{{- if (get (fromJson (include "redpanda.ExternalListener.IsEnabled" (dict "a" (list $external)))) "r") -}} -{{- $_ := (set $container "ports" (concat (default (list) $container.ports) (list (mustMergeOverwrite (dict "containerPort" 0) (dict "name" (printf "admin-%.8s" (lower $externalName)) "containerPort" ($external.port | int)))))) -}} -{{- end -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_ := (set $container "ports" (concat (default (list) $container.ports) (list (mustMergeOverwrite (dict "containerPort" 0) (dict "name" "http" "containerPort" ($values.listeners.http.port | int)))))) -}} -{{- range $externalName, $external := $values.listeners.http.external -}} -{{- if (get (fromJson (include "redpanda.ExternalListener.IsEnabled" (dict "a" (list $external)))) "r") -}} -{{- $_ := (set $container "ports" (concat (default (list) $container.ports) (list (mustMergeOverwrite (dict "containerPort" 0) (dict "name" (printf "http-%.8s" (lower $externalName)) "containerPort" ($external.port | int)))))) -}} -{{- end -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_ := (set $container "ports" (concat (default (list) $container.ports) (list (mustMergeOverwrite (dict "containerPort" 0) (dict "name" "kafka" "containerPort" ($values.listeners.kafka.port | int)))))) -}} -{{- range $externalName, $external := $values.listeners.kafka.external -}} -{{- if (get (fromJson (include "redpanda.ExternalListener.IsEnabled" (dict "a" (list $external)))) "r") -}} -{{- $_ := (set $container "ports" (concat (default (list) $container.ports) (list (mustMergeOverwrite (dict "containerPort" 0) (dict "name" (printf "kafka-%.8s" (lower $externalName)) "containerPort" ($external.port | int)))))) -}} -{{- end -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_ := (set $container "ports" (concat (default (list) $container.ports) (list (mustMergeOverwrite (dict "containerPort" 0) (dict "name" "rpc" "containerPort" ($values.listeners.rpc.port | int)))))) -}} -{{- $_ := (set $container "ports" (concat (default (list) $container.ports) (list (mustMergeOverwrite (dict "containerPort" 0) (dict "name" "schemaregistry" "containerPort" ($values.listeners.schemaRegistry.port | int)))))) -}} -{{- range $externalName, $external := $values.listeners.schemaRegistry.external -}} -{{- if (get (fromJson (include "redpanda.ExternalListener.IsEnabled" (dict "a" (list $external)))) "r") -}} -{{- $_ := (set $container "ports" (concat (default (list) $container.ports) (list (mustMergeOverwrite (dict "containerPort" 0) (dict "name" (printf "schema-%.8s" (lower $externalName)) "containerPort" ($external.port | int)))))) -}} -{{- end -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- if (and (get (fromJson (include "redpanda.Storage.IsTieredStorageEnabled" (dict "a" (list $values.storage)))) "r") (ne (get (fromJson (include "redpanda.Storage.TieredMountType" (dict "a" (list $values.storage)))) "r") "none")) -}} -{{- $name := "tiered-storage-dir" -}} -{{- if (and (ne (toJson $values.storage.persistentVolume) "null") (ne $values.storage.persistentVolume.nameOverwrite "")) -}} -{{- $name = $values.storage.persistentVolume.nameOverwrite -}} -{{- end -}} -{{- $_ := (set $container "volumeMounts" (concat (default (list) $container.volumeMounts) (list (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" $name "mountPath" (get (fromJson (include "redpanda.Storage.TieredCacheDirectory" (dict "a" (list $values.storage $dot)))) "r")))))) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $container) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.adminApiURLs" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $_is_returning = true -}} -{{- (dict "r" (printf `${SERVICE_NAME}.%s:%d` (get (fromJson (include "redpanda.InternalDomain" (dict "a" (list $dot)))) "r") ($values.listeners.admin.port | int))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.adminURLsCLI" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $_is_returning = true -}} -{{- (dict "r" (printf `$(SERVICE_NAME).%s:%d` (get (fromJson (include "redpanda.InternalDomain" (dict "a" (list $dot)))) "r") ($values.listeners.admin.port | int))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.statefulSetContainerSidecar" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $args := (list `sidecar` `--redpanda-yaml` `/etc/redpanda/redpanda.yaml` `--redpanda-cluster-namespace` $dot.Release.Namespace `--redpanda-cluster-name` (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r") `--run-broker-probe` `--broker-probe-broker-url` (get (fromJson (include "redpanda.adminURLsCLI" (dict "a" (list $dot)))) "r")) -}} -{{- if $values.statefulset.sideCars.brokerDecommissioner.enabled -}} -{{- $args = (concat (default (list) $args) (default (list) (list `--run-decommissioner` (printf "--decommission-vote-interval=%s" $values.statefulset.sideCars.brokerDecommissioner.decommissionAfter) (printf "--decommission-requeue-timeout=%s" $values.statefulset.sideCars.brokerDecommissioner.decommissionRequeueTimeout) `--decommission-vote-count=2`))) -}} -{{- end -}} -{{- $sasl_12 := $values.auth.sasl -}} -{{- if (and (and $sasl_12.enabled (ne $sasl_12.secretRef "")) $values.statefulset.sideCars.configWatcher.enabled) -}} -{{- $args = (concat (default (list) $args) (default (list) (list `--watch-users` `--users-directory=/etc/secrets/users/`))) -}} -{{- end -}} -{{- if $values.statefulset.sideCars.pvcUnbinder.enabled -}} -{{- $args = (concat (default (list) $args) (default (list) (list `--run-pvc-unbinder` (printf "--pvc-unbinder-timeout=%s" $values.statefulset.sideCars.pvcUnbinder.unbindAfter)))) -}} -{{- end -}} -{{- $volumeMounts := (concat (default (list) (get (fromJson (include "redpanda.CommonMounts" (dict "a" (list $dot)))) "r")) (list (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" "config" "mountPath" "/etc/redpanda")) (mustMergeOverwrite (dict "name" "" "mountPath" "") (dict "name" "kube-api-access" "mountPath" "/var/run/secrets/kubernetes.io/serviceaccount" "readOnly" true)))) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "name" "" "resources" (dict)) (dict "name" "sidecar" "image" (printf `%s:%s` $values.statefulset.sideCars.image.repository $values.statefulset.sideCars.image.tag) "command" (list `/redpanda-operator`) "args" $args "env" (concat (default (list) (get (fromJson (include "redpanda.rpkEnvVars" (dict "a" (list $dot (coalesce nil))))) "r")) (default (list) (get (fromJson (include "redpanda.statefulSetRedpandaEnv" (dict "a" (list)))) "r"))) "volumeMounts" $volumeMounts "readinessProbe" (mustMergeOverwrite (dict) (mustMergeOverwrite (dict) (dict "httpGet" (mustMergeOverwrite (dict "port" 0) (dict "path" "/healthz" "port" (8093 | int))))) (dict "failureThreshold" (3 | int) "initialDelaySeconds" (1 | int) "periodSeconds" (10 | int) "successThreshold" (1 | int) "timeoutSeconds" (0 | int)))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.rpkEnvVars" -}} -{{- $dot := (index .a 0) -}} -{{- $envVars := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (and (ne (toJson $values.auth.sasl) "null") $values.auth.sasl.enabled) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (concat (default (list) $envVars) (default (list) (get (fromJson (include "redpanda.BootstrapUser.RpkEnvironment" (dict "a" (list $values.auth.sasl.bootstrapUser (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r"))))) "r")))) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $envVars) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.bootstrapEnvVars" -}} -{{- $dot := (index .a 0) -}} -{{- $envVars := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (and (ne (toJson $values.auth.sasl) "null") $values.auth.sasl.enabled) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (concat (default (list) $envVars) (default (list) (get (fromJson (include "redpanda.BootstrapUser.BootstrapEnvironment" (dict "a" (list $values.auth.sasl.bootstrapUser (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r"))))) "r")))) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $envVars) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.StatefulSet" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (and (not (get (fromJson (include "redpanda.RedpandaAtLeast_22_2_0" (dict "a" (list $dot)))) "r")) (not $values.force)) -}} -{{- $sv := (get (fromJson (include "redpanda.semver" (dict "a" (list $dot)))) "r") -}} -{{- $_ := (fail (printf "Error: The Redpanda version (%s) is no longer supported \nTo accept this risk, run the upgrade again adding `--force=true`\n" $sv)) -}} -{{- end -}} -{{- $ss := (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict "selector" (coalesce nil) "template" (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict "containers" (coalesce nil))) "serviceName" "" "updateStrategy" (dict)) "status" (dict "replicas" 0 "availableReplicas" 0)) (mustMergeOverwrite (dict) (dict "apiVersion" "apps/v1" "kind" "StatefulSet")) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (get (fromJson (include "redpanda.Fullname" (dict "a" (list $dot)))) "r") "namespace" $dot.Release.Namespace "labels" (get (fromJson (include "redpanda.FullLabels" (dict "a" (list $dot)))) "r"))) "spec" (mustMergeOverwrite (dict "selector" (coalesce nil) "template" (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict "containers" (coalesce nil))) "serviceName" "" "updateStrategy" (dict)) (dict "selector" (mustMergeOverwrite (dict) (dict "matchLabels" (get (fromJson (include "redpanda.StatefulSetPodLabelsSelector" (dict "a" (list $dot)))) "r"))) "serviceName" (get (fromJson (include "redpanda.ServiceName" (dict "a" (list $dot)))) "r") "replicas" ($values.statefulset.replicas | int) "updateStrategy" $values.statefulset.updateStrategy "podManagementPolicy" "Parallel" "template" (get (fromJson (include "redpanda.StrategicMergePatch" (dict "a" (list (get (fromJson (include "redpanda.StructuredTpl" (dict "a" (list $dot $values.statefulset.podTemplate)))) "r") (get (fromJson (include "redpanda.StrategicMergePatch" (dict "a" (list (get (fromJson (include "redpanda.StructuredTpl" (dict "a" (list $dot $values.podTemplate)))) "r") (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict "containers" (coalesce nil))) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "labels" (get (fromJson (include "redpanda.StatefulSetPodLabels" (dict "a" (list $dot)))) "r") "annotations" (dict "config.redpanda.com/checksum" (get (fromJson (include "redpanda.statefulSetChecksumAnnotation" (dict "a" (list $dot)))) "r")))) "spec" (mustMergeOverwrite (dict "containers" (coalesce nil)) (dict "automountServiceAccountToken" false "serviceAccountName" (get (fromJson (include "redpanda.ServiceAccountName" (dict "a" (list $dot)))) "r") "initContainers" (get (fromJson (include "redpanda.StatefulSetInitContainers" (dict "a" (list $dot)))) "r") "containers" (get (fromJson (include "redpanda.StatefulSetContainers" (dict "a" (list $dot)))) "r") "volumes" (get (fromJson (include "redpanda.StatefulSetVolumes" (dict "a" (list $dot)))) "r"))))))))) "r"))))) "r") "volumeClaimTemplates" (coalesce nil))))) -}} -{{- if (or $values.storage.persistentVolume.enabled ((and (get (fromJson (include "redpanda.Storage.IsTieredStorageEnabled" (dict "a" (list $values.storage)))) "r") (eq (get (fromJson (include "redpanda.Storage.TieredMountType" (dict "a" (list $values.storage)))) "r") "persistentVolume")))) -}} -{{- $t_13 := (get (fromJson (include "redpanda.volumeClaimTemplateDatadir" (dict "a" (list $dot)))) "r") -}} -{{- if (ne (toJson $t_13) "null") -}} -{{- $_ := (set $ss.spec "volumeClaimTemplates" (concat (default (list) $ss.spec.volumeClaimTemplates) (list $t_13))) -}} -{{- end -}} -{{- $t_14 := (get (fromJson (include "redpanda.volumeClaimTemplateTieredStorageDir" (dict "a" (list $dot)))) "r") -}} -{{- if (ne (toJson $t_14) "null") -}} -{{- $_ := (set $ss.spec "volumeClaimTemplates" (concat (default (list) $ss.spec.volumeClaimTemplates) (list $t_14))) -}} -{{- end -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $ss) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.semver" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (trimPrefix "v" (get (fromJson (include "redpanda.Tag" (dict "a" (list $dot)))) "r"))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.statefulSetChecksumAnnotation" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $dependencies := (coalesce nil) -}} -{{- $dependencies = (concat (default (list) $dependencies) (list (get (fromJson (include "redpanda.RedpandaConfigFile" (dict "a" (list $dot false)))) "r"))) -}} -{{- if $values.external.enabled -}} -{{- $dependencies = (concat (default (list) $dependencies) (list (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $values.external.domain "")))) "r"))) -}} -{{- if (empty $values.external.addresses) -}} -{{- $dependencies = (concat (default (list) $dependencies) (list "")) -}} -{{- else -}} -{{- $dependencies = (concat (default (list) $dependencies) (list $values.external.addresses)) -}} -{{- end -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (sha256sum (toJson $dependencies))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.volumeClaimTemplateDatadir" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (not $values.storage.persistentVolume.enabled) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $pvc := (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict "resources" (dict)) "status" (dict)) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" "datadir" "labels" (merge (dict) (dict `app.kubernetes.io/name` (get (fromJson (include "redpanda.Name" (dict "a" (list $dot)))) "r") `app.kubernetes.io/instance` $dot.Release.Name `app.kubernetes.io/component` (get (fromJson (include "redpanda.Name" (dict "a" (list $dot)))) "r")) $values.storage.persistentVolume.labels $values.commonLabels) "annotations" (default (coalesce nil) $values.storage.persistentVolume.annotations))) "spec" (mustMergeOverwrite (dict "resources" (dict)) (dict "accessModes" (list "ReadWriteOnce") "resources" (mustMergeOverwrite (dict) (dict "requests" (dict "storage" $values.storage.persistentVolume.size))))))) -}} -{{- if (not (empty $values.storage.persistentVolume.storageClass)) -}} -{{- if (eq $values.storage.persistentVolume.storageClass "-") -}} -{{- $_ := (set $pvc.spec "storageClassName" "") -}} -{{- else -}} -{{- $_ := (set $pvc.spec "storageClassName" $values.storage.persistentVolume.storageClass) -}} -{{- end -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $pvc) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.volumeClaimTemplateTieredStorageDir" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- if (or (not (get (fromJson (include "redpanda.Storage.IsTieredStorageEnabled" (dict "a" (list $values.storage)))) "r")) (ne (get (fromJson (include "redpanda.Storage.TieredMountType" (dict "a" (list $values.storage)))) "r") "persistentVolume")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $pvc := (mustMergeOverwrite (dict "metadata" (dict "creationTimestamp" (coalesce nil)) "spec" (dict "resources" (dict)) "status" (dict)) (dict "metadata" (mustMergeOverwrite (dict "creationTimestamp" (coalesce nil)) (dict "name" (default "tiered-storage-dir" $values.storage.persistentVolume.nameOverwrite) "labels" (merge (dict) (dict `app.kubernetes.io/name` (get (fromJson (include "redpanda.Name" (dict "a" (list $dot)))) "r") `app.kubernetes.io/instance` $dot.Release.Name `app.kubernetes.io/component` (get (fromJson (include "redpanda.Name" (dict "a" (list $dot)))) "r")) (get (fromJson (include "redpanda.Storage.TieredPersistentVolumeLabels" (dict "a" (list $values.storage)))) "r") $values.commonLabels) "annotations" (default (coalesce nil) (get (fromJson (include "redpanda.Storage.TieredPersistentVolumeAnnotations" (dict "a" (list $values.storage)))) "r")))) "spec" (mustMergeOverwrite (dict "resources" (dict)) (dict "accessModes" (list "ReadWriteOnce") "resources" (mustMergeOverwrite (dict) (dict "requests" (dict "storage" (index (get (fromJson (include "redpanda.Storage.GetTieredStorageConfig" (dict "a" (list $values.storage)))) "r") `cloud_storage_cache_size`)))))))) -}} -{{- $sc_15 := (get (fromJson (include "redpanda.Storage.TieredPersistentVolumeStorageClass" (dict "a" (list $values.storage)))) "r") -}} -{{- if (eq $sc_15 "-") -}} -{{- $_ := (set $pvc.spec "storageClassName" "") -}} -{{- else -}}{{- if (not (empty $sc_15)) -}} -{{- $_ := (set $pvc.spec "storageClassName" $sc_15) -}} -{{- end -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $pvc) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.StorageTieredConfig" -}} -{{- $dot := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "redpanda.Storage.GetTieredStorageConfig" (dict "a" (list $values.storage)))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/redpanda/templates/_values.go.tpl b/charts/redpanda/templates/_values.go.tpl deleted file mode 100644 index 53bff1309a..0000000000 --- a/charts/redpanda/templates/_values.go.tpl +++ /dev/null @@ -1,1246 +0,0 @@ -{{- /* Generated from "values.go" */ -}} - -{{- define "redpanda.AuditLogging.Translate" -}} -{{- $a := (index .a 0) -}} -{{- $dot := (index .a 1) -}} -{{- $isSASLEnabled := (index .a 2) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $result := (dict) -}} -{{- if (not (get (fromJson (include "redpanda.RedpandaAtLeast_23_3_0" (dict "a" (list $dot)))) "r")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $result) | toJson -}} -{{- break -}} -{{- end -}} -{{- $enabled := (and $a.enabled $isSASLEnabled) -}} -{{- $_ := (set $result "audit_enabled" $enabled) -}} -{{- if (not $enabled) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $result) | toJson -}} -{{- break -}} -{{- end -}} -{{- if (ne (($a.clientMaxBufferSize | int) | int) (16777216 | int)) -}} -{{- $_ := (set $result "audit_client_max_buffer_size" ($a.clientMaxBufferSize | int)) -}} -{{- end -}} -{{- if (ne (($a.queueDrainIntervalMs | int) | int) (500 | int)) -}} -{{- $_ := (set $result "audit_queue_drain_interval_ms" ($a.queueDrainIntervalMs | int)) -}} -{{- end -}} -{{- if (ne (($a.queueMaxBufferSizePerShard | int) | int) (1048576 | int)) -}} -{{- $_ := (set $result "audit_queue_max_buffer_size_per_shard" ($a.queueMaxBufferSizePerShard | int)) -}} -{{- end -}} -{{- if (ne (($a.partitions | int) | int) (12 | int)) -}} -{{- $_ := (set $result "audit_log_num_partitions" ($a.partitions | int)) -}} -{{- end -}} -{{- if (ne ($a.replicationFactor | int) (0 | int)) -}} -{{- $_ := (set $result "audit_log_replication_factor" ($a.replicationFactor | int)) -}} -{{- end -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $a.enabledEventTypes)))) "r") | int) (0 | int)) -}} -{{- $_ := (set $result "audit_enabled_event_types" $a.enabledEventTypes) -}} -{{- end -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $a.excludedTopics)))) "r") | int) (0 | int)) -}} -{{- $_ := (set $result "audit_excluded_topics" $a.excludedTopics) -}} -{{- end -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $a.excludedPrincipals)))) "r") | int) (0 | int)) -}} -{{- $_ := (set $result "audit_excluded_principals" $a.excludedPrincipals) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $result) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.Auth.IsSASLEnabled" -}} -{{- $a := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (eq (toJson $a.sasl) "null") -}} -{{- $_is_returning = true -}} -{{- (dict "r" false) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $a.sasl.enabled) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.Auth.Translate" -}} -{{- $a := (index .a 0) -}} -{{- $isSASLEnabled := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (not $isSASLEnabled) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $users := (list (get (fromJson (include "redpanda.BootstrapUser.Username" (dict "a" (list $a.sasl.bootstrapUser)))) "r")) -}} -{{- range $_, $u := $a.sasl.users -}} -{{- $users = (concat (default (list) $users) (list $u.name)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (dict "superusers" $users)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.Logging.Translate" -}} -{{- $l := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $result := (dict) -}} -{{- $clusterID_1 := (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $l.usageStats.clusterId "")))) "r") -}} -{{- if (ne $clusterID_1 "") -}} -{{- $_ := (set $result "cluster_id" $clusterID_1) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $result) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RedpandaResources.GetResourceRequirements" -}} -{{- $rr := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (and (ne (toJson $rr.limits) "null") (ne (toJson $rr.requests) "null")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict) (dict "limits" $rr.limits "requests" $rr.requests))) | toJson -}} -{{- break -}} -{{- end -}} -{{- $reqs := (mustMergeOverwrite (dict) (dict "limits" (dict "cpu" $rr.cpu.cores "memory" $rr.memory.container.max))) -}} -{{- if (ne (toJson $rr.memory.container.min) "null") -}} -{{- $_ := (set $reqs "requests" (dict "cpu" $rr.cpu.cores "memory" $rr.memory.container.min)) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $reqs) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RedpandaResources.GetRedpandaFlags" -}} -{{- $rr := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $flags := (dict "--reserve-memory" (printf "%dM" ((get (fromJson (include "redpanda.RedpandaResources.reserveMemory" (dict "a" (list $rr)))) "r") | int64))) -}} -{{- $smp_2 := (get (fromJson (include "redpanda.RedpandaResources.smp" (dict "a" (list $rr)))) "r") -}} -{{- if (ne (toJson $smp_2) "null") -}} -{{- $_ := (set $flags "--smp" (printf "%d" ($smp_2 | int64))) -}} -{{- end -}} -{{- $memory_3 := (get (fromJson (include "redpanda.RedpandaResources.memory" (dict "a" (list $rr)))) "r") -}} -{{- if (ne (toJson $memory_3) "null") -}} -{{- $_ := (set $flags "--memory" (printf "%dM" ($memory_3 | int64))) -}} -{{- end -}} -{{- if (and (eq (toJson $rr.limits) "null") (eq (toJson $rr.requests) "null")) -}} -{{- $_ := (set $flags "--lock-memory" (printf "%v" (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $rr.memory.enable_memory_locking false)))) "r"))) -}} -{{- end -}} -{{- if (get (fromJson (include "redpanda.RedpandaResources.GetOverProvisionValue" (dict "a" (list $rr)))) "r") -}} -{{- $_ := (set $flags "--overprovisioned" "") -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $flags) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RedpandaResources.GetOverProvisionValue" -}} -{{- $rr := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (and (ne (toJson $rr.limits) "null") (ne (toJson $rr.requests) "null")) -}} -{{- $_422_cpuReq_ok := (get (fromJson (include "_shims.dicttest" (dict "a" (list ($rr.requests) "cpu" "0")))) "r") -}} -{{- $cpuReq := (index $_422_cpuReq_ok 0) -}} -{{- $ok := (index $_422_cpuReq_ok 1) -}} -{{- if (not $ok) -}} -{{- $_424_cpuReq_ok := (get (fromJson (include "_shims.dicttest" (dict "a" (list ($rr.limits) "cpu" "0")))) "r") -}} -{{- $cpuReq = (index $_424_cpuReq_ok 0) -}} -{{- $ok = (index $_424_cpuReq_ok 1) -}} -{{- end -}} -{{- if (and $ok (lt ((get (fromJson (include "_shims.resource_MilliValue" (dict "a" (list $cpuReq)))) "r") | int64) (1000 | int64))) -}} -{{- $_is_returning = true -}} -{{- (dict "r" true) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" false) | toJson -}} -{{- break -}} -{{- end -}} -{{- if (lt ((get (fromJson (include "_shims.resource_MilliValue" (dict "a" (list $rr.cpu.cores)))) "r") | int64) (1000 | int64)) -}} -{{- $_is_returning = true -}} -{{- (dict "r" true) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $rr.cpu.overprovisioned false)))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RedpandaResources.smp" -}} -{{- $rr := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (and (ne (toJson $rr.limits) "null") (ne (toJson $rr.requests) "null")) -}} -{{- $_448_cpuReq_ok := (get (fromJson (include "_shims.dicttest" (dict "a" (list ($rr.requests) "cpu" "0")))) "r") -}} -{{- $cpuReq := (index $_448_cpuReq_ok 0) -}} -{{- $ok := (index $_448_cpuReq_ok 1) -}} -{{- if (not $ok) -}} -{{- $_450_cpuReq_ok := (get (fromJson (include "_shims.dicttest" (dict "a" (list ($rr.limits) "cpu" "0")))) "r") -}} -{{- $cpuReq = (index $_450_cpuReq_ok 0) -}} -{{- $ok = (index $_450_cpuReq_ok 1) -}} -{{- end -}} -{{- if (not $ok) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $smp := ((div ((get (fromJson (include "_shims.resource_MilliValue" (dict "a" (list $cpuReq)))) "r") | int64) (1000 | int64)) | int64) -}} -{{- if (lt $smp (1 | int64)) -}} -{{- $smp = (1 | int64) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $smp) | toJson -}} -{{- break -}} -{{- end -}} -{{- $coresInMillies_4 := ((get (fromJson (include "_shims.resource_MilliValue" (dict "a" (list $rr.cpu.cores)))) "r") | int64) -}} -{{- if (lt $coresInMillies_4 (1000 | int64)) -}} -{{- $_is_returning = true -}} -{{- (dict "r" ((1 | int64) | int64)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (((get (fromJson (include "_shims.resource_Value" (dict "a" (list $rr.cpu.cores)))) "r") | int64) | int64)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RedpandaResources.memory" -}} -{{- $rr := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (and (ne (toJson $rr.limits) "null") (ne (toJson $rr.requests) "null")) -}} -{{- $_507_memReq_ok := (get (fromJson (include "_shims.dicttest" (dict "a" (list ($rr.requests) "memory" "0")))) "r") -}} -{{- $memReq := (index $_507_memReq_ok 0) -}} -{{- $ok := (index $_507_memReq_ok 1) -}} -{{- if (not $ok) -}} -{{- $_509_memReq_ok := (get (fromJson (include "_shims.dicttest" (dict "a" (list ($rr.limits) "memory" "0")))) "r") -}} -{{- $memReq = (index $_509_memReq_ok 0) -}} -{{- $ok = (index $_509_memReq_ok 1) -}} -{{- end -}} -{{- if (not $ok) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $memory := (((mulf (((get (fromJson (include "_shims.resource_Value" (dict "a" (list $memReq)))) "r") | int64) | float64) 0.90) | float64) | int64) -}} -{{- $_is_returning = true -}} -{{- (dict "r" ((div $memory ((mul (1024 | int) (1024 | int)))) | int64)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $memory := ((0 | int64) | int64) -}} -{{- $containerMemory := ((get (fromJson (include "redpanda.RedpandaResources.containerMemory" (dict "a" (list $rr)))) "r") | int64) -}} -{{- $rpMem_5 := $rr.memory.redpanda -}} -{{- if (and (ne (toJson $rpMem_5) "null") (ne (toJson $rpMem_5.memory) "null")) -}} -{{- $memory = ((div ((get (fromJson (include "_shims.resource_Value" (dict "a" (list $rpMem_5.memory)))) "r") | int64) ((mul (1024 | int) (1024 | int)))) | int64) -}} -{{- else -}} -{{- $memory = (((mulf ($containerMemory | float64) 0.8) | float64) | int64) -}} -{{- end -}} -{{- if (eq $memory (0 | int64)) -}} -{{- $_ := (fail "unable to get memory value redpanda-memory") -}} -{{- end -}} -{{- if (lt $memory (256 | int64)) -}} -{{- $_ := (fail (printf "%d is below the minimum value for Redpanda" $memory)) -}} -{{- end -}} -{{- if (gt ((add $memory (((get (fromJson (include "redpanda.RedpandaResources.reserveMemory" (dict "a" (list $rr)))) "r") | int64) | int64)) | int64) $containerMemory) -}} -{{- $_ := (fail (printf "Not enough container memory for Redpanda memory values where Redpanda: %d, reserve: %d, container: %d" $memory ((get (fromJson (include "redpanda.RedpandaResources.reserveMemory" (dict "a" (list $rr)))) "r") | int64) $containerMemory)) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $memory) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RedpandaResources.reserveMemory" -}} -{{- $rr := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (and (ne (toJson $rr.limits) "null") (ne (toJson $rr.requests) "null")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (0 | int64)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $rpMem_6 := $rr.memory.redpanda -}} -{{- if (and (ne (toJson $rpMem_6) "null") (ne (toJson $rpMem_6.reserveMemory) "null")) -}} -{{- $_is_returning = true -}} -{{- (dict "r" ((div ((get (fromJson (include "_shims.resource_Value" (dict "a" (list $rpMem_6.reserveMemory)))) "r") | int64) ((mul (1024 | int) (1024 | int)))) | int64)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" ((add (((mulf (((get (fromJson (include "redpanda.RedpandaResources.containerMemory" (dict "a" (list $rr)))) "r") | int64) | float64) 0.002) | float64) | int64) (200 | int64)) | int64)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.RedpandaResources.containerMemory" -}} -{{- $rr := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (ne (toJson $rr.memory.container.min) "null") -}} -{{- $_is_returning = true -}} -{{- (dict "r" ((div ((get (fromJson (include "_shims.resource_Value" (dict "a" (list $rr.memory.container.min)))) "r") | int64) ((mul (1024 | int) (1024 | int)))) | int64)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" ((div ((get (fromJson (include "_shims.resource_Value" (dict "a" (list $rr.memory.container.max)))) "r") | int64) ((mul (1024 | int) (1024 | int)))) | int64)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.Storage.IsTieredStorageEnabled" -}} -{{- $s := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $conf := (get (fromJson (include "redpanda.Storage.GetTieredStorageConfig" (dict "a" (list $s)))) "r") -}} -{{- $_627_b_ok := (get (fromJson (include "_shims.dicttest" (dict "a" (list $conf "cloud_storage_enabled" (coalesce nil))))) "r") -}} -{{- $b := (index $_627_b_ok 0) -}} -{{- $ok := (index $_627_b_ok 1) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (and $ok (get (fromJson (include "_shims.typeassertion" (dict "a" (list "bool" $b)))) "r"))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.Storage.GetTieredStorageConfig" -}} -{{- $s := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $s.tieredConfig)))) "r") | int) (0 | int)) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $s.tieredConfig) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $s.tiered.config) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.Storage.GetTieredStorageHostPath" -}} -{{- $s := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $hp := $s.tieredStorageHostPath -}} -{{- if (empty $hp) -}} -{{- $hp = $s.tiered.hostPath -}} -{{- end -}} -{{- if (empty $hp) -}} -{{- $_ := (fail (printf `storage.tiered.mountType is "%s" but storage.tiered.hostPath is empty` $s.tiered.mountType)) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $hp) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.Storage.TieredCacheDirectory" -}} -{{- $s := (index .a 0) -}} -{{- $dot := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $values := $dot.Values.AsMap -}} -{{- $_656_dir_7_ok_8 := (get (fromJson (include "_shims.typetest" (dict "a" (list "string" (index $values.config.node "cloud_storage_cache_directory") "")))) "r") -}} -{{- $dir_7 := (index $_656_dir_7_ok_8 0) -}} -{{- $ok_8 := (index $_656_dir_7_ok_8 1) -}} -{{- if $ok_8 -}} -{{- $_is_returning = true -}} -{{- (dict "r" $dir_7) | toJson -}} -{{- break -}} -{{- end -}} -{{- $tieredConfig := (get (fromJson (include "redpanda.Storage.GetTieredStorageConfig" (dict "a" (list $values.storage)))) "r") -}} -{{- $_665_dir_9_ok_10 := (get (fromJson (include "_shims.typetest" (dict "a" (list "string" (index $tieredConfig "cloud_storage_cache_directory") "")))) "r") -}} -{{- $dir_9 := (index $_665_dir_9_ok_10 0) -}} -{{- $ok_10 := (index $_665_dir_9_ok_10 1) -}} -{{- if $ok_10 -}} -{{- $_is_returning = true -}} -{{- (dict "r" $dir_9) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" "/var/lib/redpanda/data/cloud_storage_cache") | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.Storage.TieredMountType" -}} -{{- $s := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (and (ne (toJson $s.tieredStoragePersistentVolume) "null") $s.tieredStoragePersistentVolume.enabled) -}} -{{- $_is_returning = true -}} -{{- (dict "r" "persistentVolume") | toJson -}} -{{- break -}} -{{- end -}} -{{- if (not (empty $s.tieredStorageHostPath)) -}} -{{- $_is_returning = true -}} -{{- (dict "r" "hostPath") | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $s.tiered.mountType) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.Storage.TieredPersistentVolumeLabels" -}} -{{- $s := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (ne (toJson $s.tieredStoragePersistentVolume) "null") -}} -{{- $_is_returning = true -}} -{{- (dict "r" $s.tieredStoragePersistentVolume.labels) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $s.tiered.persistentVolume.labels) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.Storage.TieredPersistentVolumeAnnotations" -}} -{{- $s := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (ne (toJson $s.tieredStoragePersistentVolume) "null") -}} -{{- $_is_returning = true -}} -{{- (dict "r" $s.tieredStoragePersistentVolume.annotations) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $s.tiered.persistentVolume.annotations) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.Storage.TieredPersistentVolumeStorageClass" -}} -{{- $s := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (ne (toJson $s.tieredStoragePersistentVolume) "null") -}} -{{- $_is_returning = true -}} -{{- (dict "r" $s.tieredStoragePersistentVolume.storageClass) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $s.tiered.persistentVolume.storageClass) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.Storage.StorageMinFreeBytes" -}} -{{- $s := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (and (ne (toJson $s.persistentVolume) "null") (not $s.persistentVolume.enabled)) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (5368709120 | int)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $minimumFreeBytes := ((mulf (((get (fromJson (include "_shims.resource_Value" (dict "a" (list $s.persistentVolume.size)))) "r") | int64) | float64) 0.05) | float64) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (min (5368709120 | int) ($minimumFreeBytes | int64))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.Tuning.Translate" -}} -{{- $t := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $result := (dict) -}} -{{- $s := (toJson $t) -}} -{{- $tune := (fromJson $s) -}} -{{- $_808_m_ok := (get (fromJson (include "_shims.typetest" (dict "a" (list (printf "map[%s]%s" "string" "interface {}") $tune (coalesce nil))))) "r") -}} -{{- $m := (index $_808_m_ok 0) -}} -{{- $ok := (index $_808_m_ok 1) -}} -{{- if (not $ok) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (dict)) | toJson -}} -{{- break -}} -{{- end -}} -{{- range $k, $v := $m -}} -{{- $_ := (set $result $k $v) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $result) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.Sidecars.ShouldCreateRBAC" -}} -{{- $s := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (or ((and $s.controllers.enabled $s.controllers.createRBAC)) (get (fromJson (include "redpanda.Sidecars.AdditionalSidecarControllersEnabled" (dict "a" (list $s)))) "r"))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.Sidecars.AdditionalSidecarControllersEnabled" -}} -{{- $s := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (or $s.pvcUnbinder.enabled $s.brokerDecommissioner.enabled)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.Listeners.CreateSeedServers" -}} -{{- $l := (index .a 0) -}} -{{- $replicas := (index .a 1) -}} -{{- $fullname := (index .a 2) -}} -{{- $internalDomain := (index .a 3) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $result := (coalesce nil) -}} -{{- range $_, $i := untilStep (((0 | int) | int)|int) ($replicas|int) (1|int) -}} -{{- $result = (concat (default (list) $result) (list (dict "host" (dict "address" (printf "%s-%d.%s" $fullname $i $internalDomain) "port" ($l.rpc.port | int))))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $result) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.Listeners.AdminList" -}} -{{- $l := (index .a 0) -}} -{{- $replicas := (index .a 1) -}} -{{- $fullname := (index .a 2) -}} -{{- $internalDomain := (index .a 3) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "redpanda.ServerList" (dict "a" (list $replicas "" $fullname $internalDomain ($l.admin.port | int))))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.Listeners.SchemaRegistryList" -}} -{{- $l := (index .a 0) -}} -{{- $replicas := (index .a 1) -}} -{{- $fullname := (index .a 2) -}} -{{- $internalDomain := (index .a 3) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "redpanda.ServerList" (dict "a" (list $replicas "" $fullname $internalDomain ($l.schemaRegistry.port | int))))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.ServerList" -}} -{{- $replicas := (index .a 0) -}} -{{- $prefix := (index .a 1) -}} -{{- $fullname := (index .a 2) -}} -{{- $internalDomain := (index .a 3) -}} -{{- $port := (index .a 4) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $result := (coalesce nil) -}} -{{- range $_, $i := untilStep (((0 | int) | int)|int) ($replicas|int) (1|int) -}} -{{- $result = (concat (default (list) $result) (list (printf "%s%s-%d.%s:%d" $prefix $fullname $i $internalDomain ($port | int)))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $result) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.Listeners.TrustStoreVolume" -}} -{{- $l := (index .a 0) -}} -{{- $tls := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $cmSources := (dict) -}} -{{- $secretSources := (dict) -}} -{{- range $_, $ts := (get (fromJson (include "redpanda.Listeners.TrustStores" (dict "a" (list $l $tls)))) "r") -}} -{{- $projection := (get (fromJson (include "redpanda.TrustStore.VolumeProjection" (dict "a" (list $ts)))) "r") -}} -{{- if (ne (toJson $projection.secret) "null") -}} -{{- $_ := (set $secretSources $projection.secret.name (concat (default (list) (index $secretSources $projection.secret.name)) (default (list) $projection.secret.items))) -}} -{{- else -}} -{{- $_ := (set $cmSources $projection.configMap.name (concat (default (list) (index $cmSources $projection.configMap.name)) (default (list) $projection.configMap.items))) -}} -{{- end -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $sources := (coalesce nil) -}} -{{- range $_, $name := (sortAlpha (keys $cmSources)) -}} -{{- $keys := (index $cmSources $name) -}} -{{- $sources = (concat (default (list) $sources) (list (mustMergeOverwrite (dict) (dict "configMap" (mustMergeOverwrite (dict) (mustMergeOverwrite (dict) (dict "name" $name)) (dict "items" (get (fromJson (include "redpanda.dedupKeyToPaths" (dict "a" (list $keys)))) "r"))))))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- range $_, $name := (sortAlpha (keys $secretSources)) -}} -{{- $keys := (index $secretSources $name) -}} -{{- $sources = (concat (default (list) $sources) (list (mustMergeOverwrite (dict) (dict "secret" (mustMergeOverwrite (dict) (mustMergeOverwrite (dict) (dict "name" $name)) (dict "items" (get (fromJson (include "redpanda.dedupKeyToPaths" (dict "a" (list $keys)))) "r"))))))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- if (lt ((get (fromJson (include "_shims.len" (dict "a" (list $sources)))) "r") | int) (1 | int)) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "name" "") (mustMergeOverwrite (dict) (dict "projected" (mustMergeOverwrite (dict "sources" (coalesce nil)) (dict "sources" $sources)))) (dict "name" "truststores"))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.dedupKeyToPaths" -}} -{{- $items := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $seen := (dict) -}} -{{- $deduped := (coalesce nil) -}} -{{- range $_, $item := $items -}} -{{- $_958___ok_11 := (get (fromJson (include "_shims.dicttest" (dict "a" (list $seen $item.key false)))) "r") -}} -{{- $_ := (index $_958___ok_11 0) -}} -{{- $ok_11 := (index $_958___ok_11 1) -}} -{{- if $ok_11 -}} -{{- continue -}} -{{- end -}} -{{- $deduped = (concat (default (list) $deduped) (list $item)) -}} -{{- $_ := (set $seen $item.key true) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $deduped) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.Listeners.TrustStores" -}} -{{- $l := (index .a 0) -}} -{{- $tls := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $tss := (get (fromJson (include "redpanda.ListenerConfig.TrustStores" (dict "a" (list $l.kafka $tls)))) "r") -}} -{{- $tss = (concat (default (list) $tss) (default (list) (get (fromJson (include "redpanda.ListenerConfig.TrustStores" (dict "a" (list $l.admin $tls)))) "r"))) -}} -{{- $tss = (concat (default (list) $tss) (default (list) (get (fromJson (include "redpanda.ListenerConfig.TrustStores" (dict "a" (list $l.http $tls)))) "r"))) -}} -{{- $tss = (concat (default (list) $tss) (default (list) (get (fromJson (include "redpanda.ListenerConfig.TrustStores" (dict "a" (list $l.schemaRegistry $tls)))) "r"))) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $tss) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.Config.CreateRPKConfiguration" -}} -{{- $c := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $result := (dict) -}} -{{- range $k, $v := $c.rpk -}} -{{- $_ := (set $result $k $v) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $result) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.TLSCertMap.MustGet" -}} -{{- $m := (index .a 0) -}} -{{- $name := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_1049_cert_ok := (get (fromJson (include "_shims.dicttest" (dict "a" (list $m $name (dict "enabled" (coalesce nil) "caEnabled" false "applyInternalDNSNames" (coalesce nil) "duration" "" "issuerRef" (coalesce nil) "secretRef" (coalesce nil) "clientSecretRef" (coalesce nil)))))) "r") -}} -{{- $cert := (index $_1049_cert_ok 0) -}} -{{- $ok := (index $_1049_cert_ok 1) -}} -{{- if (not $ok) -}} -{{- $_ := (fail (printf "Certificate %q referenced, but not found in the tls.certs map" $name)) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $cert) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.BootstrapUser.BootstrapEnvironment" -}} -{{- $b := (index .a 0) -}} -{{- $fullname := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (concat (default (list) (get (fromJson (include "redpanda.BootstrapUser.RpkEnvironment" (dict "a" (list $b $fullname)))) "r")) (list (mustMergeOverwrite (dict "name" "") (dict "name" "RP_BOOTSTRAP_USER" "value" "$(RPK_USER):$(RPK_PASS):$(RPK_SASL_MECHANISM)"))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.BootstrapUser.Username" -}} -{{- $b := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (ne (toJson $b.name) "null") -}} -{{- $_is_returning = true -}} -{{- (dict "r" $b.name) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" "kubernetes-controller") | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.BootstrapUser.RpkEnvironment" -}} -{{- $b := (index .a 0) -}} -{{- $fullname := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (list (mustMergeOverwrite (dict "name" "") (dict "name" "RPK_PASS" "valueFrom" (mustMergeOverwrite (dict) (dict "secretKeyRef" (get (fromJson (include "redpanda.BootstrapUser.SecretKeySelector" (dict "a" (list $b $fullname)))) "r"))))) (mustMergeOverwrite (dict "name" "") (dict "name" "RPK_USER" "value" (get (fromJson (include "redpanda.BootstrapUser.Username" (dict "a" (list $b)))) "r"))) (mustMergeOverwrite (dict "name" "") (dict "name" "RPK_SASL_MECHANISM" "value" (get (fromJson (include "redpanda.BootstrapUser.GetMechanism" (dict "a" (list $b)))) "r"))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.BootstrapUser.GetMechanism" -}} -{{- $b := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (eq $b.mechanism "") -}} -{{- $_is_returning = true -}} -{{- (dict "r" "SCRAM-SHA-256") | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (toString $b.mechanism)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.BootstrapUser.SecretKeySelector" -}} -{{- $b := (index .a 0) -}} -{{- $fullname := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (ne (toJson $b.secretKeyRef) "null") -}} -{{- $_is_returning = true -}} -{{- (dict "r" $b.secretKeyRef) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict "key" "") (mustMergeOverwrite (dict) (dict "name" (printf "%s-bootstrap-user" $fullname))) (dict "key" "password"))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.TrustStore.TrustStoreFilePath" -}} -{{- $t := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (printf "%s/%s" "/etc/truststores" (get (fromJson (include "redpanda.TrustStore.RelativePath" (dict "a" (list $t)))) "r"))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.TrustStore.RelativePath" -}} -{{- $t := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (ne (toJson $t.configMapKeyRef) "null") -}} -{{- $_is_returning = true -}} -{{- (dict "r" (printf "configmaps/%s-%s" $t.configMapKeyRef.name $t.configMapKeyRef.key)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (printf "secrets/%s-%s" $t.secretKeyRef.name $t.secretKeyRef.key)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.TrustStore.VolumeProjection" -}} -{{- $t := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (ne (toJson $t.configMapKeyRef) "null") -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict) (dict "configMap" (mustMergeOverwrite (dict) (mustMergeOverwrite (dict) (dict "name" $t.configMapKeyRef.name)) (dict "items" (list (mustMergeOverwrite (dict "key" "" "path" "") (dict "key" $t.configMapKeyRef.key "path" (get (fromJson (include "redpanda.TrustStore.RelativePath" (dict "a" (list $t)))) "r"))))))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict) (dict "secret" (mustMergeOverwrite (dict) (mustMergeOverwrite (dict) (dict "name" $t.secretKeyRef.name)) (dict "items" (list (mustMergeOverwrite (dict "key" "" "path" "") (dict "key" $t.secretKeyRef.key "path" (get (fromJson (include "redpanda.TrustStore.RelativePath" (dict "a" (list $t)))) "r"))))))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.InternalTLS.IsEnabled" -}} -{{- $t := (index .a 0) -}} -{{- $tls := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (and (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $t.enabled $tls.enabled)))) "r") (ne $t.cert ""))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.InternalTLS.TrustStoreFilePath" -}} -{{- $t := (index .a 0) -}} -{{- $tls := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (ne (toJson $t.trustStore) "null") -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "redpanda.TrustStore.TrustStoreFilePath" (dict "a" (list $t.trustStore)))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- if (get (fromJson (include "redpanda.TLSCertMap.MustGet" (dict "a" (list (deepCopy $tls.certs) $t.cert)))) "r").caEnabled -}} -{{- $_is_returning = true -}} -{{- (dict "r" (printf "%s/%s/ca.crt" "/etc/tls/certs" $t.cert)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" "/etc/ssl/certs/ca-certificates.crt") | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.InternalTLS.ServerCAPath" -}} -{{- $t := (index .a 0) -}} -{{- $tls := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (ne (toJson $t.trustStore) "null") -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "redpanda.TrustStore.TrustStoreFilePath" (dict "a" (list $t.trustStore)))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- if (get (fromJson (include "redpanda.TLSCertMap.MustGet" (dict "a" (list (deepCopy $tls.certs) $t.cert)))) "r").caEnabled -}} -{{- $_is_returning = true -}} -{{- (dict "r" (printf "%s/%s/ca.crt" "/etc/tls/certs" $t.cert)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (printf "%s/%s/tls.crt" "/etc/tls/certs" $t.cert)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.ExternalTLS.GetCert" -}} -{{- $t := (index .a 0) -}} -{{- $i := (index .a 1) -}} -{{- $tls := (index .a 2) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "redpanda.TLSCertMap.MustGet" (dict "a" (list (deepCopy $tls.certs) (get (fromJson (include "redpanda.ExternalTLS.GetCertName" (dict "a" (list $t $i)))) "r"))))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.ExternalTLS.GetCertName" -}} -{{- $t := (index .a 0) -}} -{{- $i := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $t.cert $i.cert)))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.ExternalTLS.TrustStoreFilePath" -}} -{{- $t := (index .a 0) -}} -{{- $i := (index .a 1) -}} -{{- $tls := (index .a 2) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (ne (toJson $t.trustStore) "null") -}} -{{- $_is_returning = true -}} -{{- (dict "r" (get (fromJson (include "redpanda.TrustStore.TrustStoreFilePath" (dict "a" (list $t.trustStore)))) "r")) | toJson -}} -{{- break -}} -{{- end -}} -{{- if (get (fromJson (include "redpanda.ExternalTLS.GetCert" (dict "a" (list $t $i $tls)))) "r").caEnabled -}} -{{- $_is_returning = true -}} -{{- (dict "r" (printf "%s/%s/ca.crt" "/etc/tls/certs" (get (fromJson (include "redpanda.ExternalTLS.GetCertName" (dict "a" (list $t $i)))) "r"))) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" "/etc/ssl/certs/ca-certificates.crt") | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.ExternalTLS.IsEnabled" -}} -{{- $t := (index .a 0) -}} -{{- $i := (index .a 1) -}} -{{- $tls := (index .a 2) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (eq (toJson $t) "null") -}} -{{- $_is_returning = true -}} -{{- (dict "r" false) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" (and (ne (get (fromJson (include "redpanda.ExternalTLS.GetCertName" (dict "a" (list $t $i)))) "r") "") (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $t.enabled (get (fromJson (include "redpanda.InternalTLS.IsEnabled" (dict "a" (list $i $tls)))) "r"))))) "r"))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.ListenerConfig.ServicePorts" -}} -{{- $l := (index .a 0) -}} -{{- $namePrefix := (index .a 1) -}} -{{- $external := (index .a 2) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $ports := (coalesce nil) -}} -{{- range $name, $listener := $l.external -}} -{{- if (not (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $listener.enabled $external.enabled)))) "r")) -}} -{{- continue -}} -{{- end -}} -{{- $fallbackPorts := (concat (default (list) $listener.advertisedPorts) (list ($l.port | int))) -}} -{{- $ports = (concat (default (list) $ports) (list (mustMergeOverwrite (dict "port" 0 "targetPort" 0) (dict "name" (printf "%s-%s" $namePrefix $name) "protocol" "TCP" "appProtocol" $l.appProtocol "targetPort" ($listener.port | int) "port" ((get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $listener.nodePort (index $fallbackPorts (0 | int)))))) "r") | int))))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $ports) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.ListenerConfig.TrustStores" -}} -{{- $l := (index .a 0) -}} -{{- $tls := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $tss := (list) -}} -{{- if (and (get (fromJson (include "redpanda.InternalTLS.IsEnabled" (dict "a" (list $l.tls $tls)))) "r") (ne (toJson $l.tls.trustStore) "null")) -}} -{{- $tss = (concat (default (list) $tss) (list $l.tls.trustStore)) -}} -{{- end -}} -{{- range $_, $key := (sortAlpha (keys $l.external)) -}} -{{- $lis := (ternary (index $l.external $key) (dict "enabled" (coalesce nil) "advertisedPorts" (coalesce nil) "port" 0 "nodePort" (coalesce nil) "tls" (coalesce nil)) (hasKey $l.external $key)) -}} -{{- if (or (or (not (get (fromJson (include "redpanda.ExternalListener.IsEnabled" (dict "a" (list $lis)))) "r")) (not (get (fromJson (include "redpanda.ExternalTLS.IsEnabled" (dict "a" (list $lis.tls $l.tls $tls)))) "r"))) (eq (toJson $lis.tls.trustStore) "null")) -}} -{{- continue -}} -{{- end -}} -{{- $tss = (concat (default (list) $tss) (list $lis.tls.trustStore)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $tss) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.ListenerConfig.Listeners" -}} -{{- $l := (index .a 0) -}} -{{- $auth := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $internal := (dict "name" "internal" "address" "0.0.0.0" "port" ($l.port | int)) -}} -{{- $defaultAuth := (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $auth "")))) "r") -}} -{{- $am_12 := (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $l.authenticationMethod $defaultAuth)))) "r") -}} -{{- if (ne $am_12 "") -}} -{{- $_ := (set $internal "authentication_method" $am_12) -}} -{{- end -}} -{{- $listeners := (list $internal) -}} -{{- range $k, $l := $l.external -}} -{{- if (not (get (fromJson (include "redpanda.ExternalListener.IsEnabled" (dict "a" (list $l)))) "r")) -}} -{{- continue -}} -{{- end -}} -{{- $listener := (dict "name" $k "port" ($l.port | int) "address" "0.0.0.0") -}} -{{- $am_13 := (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $l.authenticationMethod $defaultAuth)))) "r") -}} -{{- if (ne $am_13 "") -}} -{{- $_ := (set $listener "authentication_method" $am_13) -}} -{{- end -}} -{{- $listeners = (concat (default (list) $listeners) (list $listener)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $listeners) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.ListenerConfig.ListenersTLS" -}} -{{- $l := (index .a 0) -}} -{{- $tls := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $pp := (list) -}} -{{- $internal := (get (fromJson (include "redpanda.createInternalListenerTLSCfg" (dict "a" (list $tls $l.tls)))) "r") -}} -{{- if (gt ((get (fromJson (include "_shims.len" (dict "a" (list $internal)))) "r") | int) (0 | int)) -}} -{{- $pp = (concat (default (list) $pp) (list $internal)) -}} -{{- end -}} -{{- range $k, $lis := $l.external -}} -{{- if (or (not (get (fromJson (include "redpanda.ExternalListener.IsEnabled" (dict "a" (list $lis)))) "r")) (not (get (fromJson (include "redpanda.ExternalTLS.IsEnabled" (dict "a" (list $lis.tls $l.tls $tls)))) "r"))) -}} -{{- continue -}} -{{- end -}} -{{- $certName := (get (fromJson (include "redpanda.ExternalTLS.GetCertName" (dict "a" (list $lis.tls $l.tls)))) "r") -}} -{{- $pp = (concat (default (list) $pp) (list (dict "name" $k "enabled" true "cert_file" (printf "%s/%s/tls.crt" "/etc/tls/certs" $certName) "key_file" (printf "%s/%s/tls.key" "/etc/tls/certs" $certName) "require_client_auth" (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $lis.tls.requireClientAuth false)))) "r") "truststore_file" (get (fromJson (include "redpanda.ExternalTLS.TrustStoreFilePath" (dict "a" (list $lis.tls $l.tls $tls)))) "r")))) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $pp) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.ListenerConfig.ConsoleTLS" -}} -{{- $l := (index .a 0) -}} -{{- $tls := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $t := (mustMergeOverwrite (dict "enabled" false "caFilepath" "" "certFilepath" "" "keyFilepath" "" "insecureSkipTlsVerify" false) (dict "enabled" (get (fromJson (include "redpanda.InternalTLS.IsEnabled" (dict "a" (list $l.tls $tls)))) "r"))) -}} -{{- if (not $t.enabled) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $t) | toJson -}} -{{- break -}} -{{- end -}} -{{- $adminAPIPrefix := (printf "%s/%s" "/etc/tls/certs" $l.tls.cert) -}} -{{- if (get (fromJson (include "redpanda.TLSCertMap.MustGet" (dict "a" (list (deepCopy $tls.certs) $l.tls.cert)))) "r").caEnabled -}} -{{- $_ := (set $t "caFilepath" (printf "%s/ca.crt" $adminAPIPrefix)) -}} -{{- else -}} -{{- $_ := (set $t "caFilepath" (printf "%s/tls.crt" $adminAPIPrefix)) -}} -{{- end -}} -{{- if (not $l.tls.requireClientAuth) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $t) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_ := (set $t "certFilepath" (printf "%s/tls.crt" $adminAPIPrefix)) -}} -{{- $_ := (set $t "keyFilepath" (printf "%s/tls.key" $adminAPIPrefix)) -}} -{{- $_is_returning = true -}} -{{- (dict "r" $t) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.ExternalListener.IsEnabled" -}} -{{- $l := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (and (get (fromJson (include "_shims.ptr_Deref" (dict "a" (list $l.enabled true)))) "r") (gt ($l.port | int) (0 | int)))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.TunableConfig.Translate" -}} -{{- $c := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- if (eq (toJson $c) "null") -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $result := (dict) -}} -{{- range $k, $v := $c -}} -{{- if (not (empty $v)) -}} -{{- $_ := (set $result $k $v) -}} -{{- end -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $result) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.NodeConfig.Translate" -}} -{{- $c := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $result := (dict) -}} -{{- range $k, $v := $c -}} -{{- if (not (empty $v)) -}} -{{- $_1498___ok_14 := (get (fromJson (include "_shims.asnumeric" (dict "a" (list $v)))) "r") -}} -{{- $_ := ((index $_1498___ok_14 0) | float64) -}} -{{- $ok_14 := (index $_1498___ok_14 1) -}} -{{- if $ok_14 -}} -{{- $_ := (set $result $k $v) -}} -{{- else -}}{{- if (kindIs "bool" $v) -}} -{{- $_ := (set $result $k $v) -}} -{{- else -}} -{{- $_ := (set $result $k (toYaml $v)) -}} -{{- end -}} -{{- end -}} -{{- end -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $result) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.ClusterConfig.Translate" -}} -{{- $c := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $result := (dict) -}} -{{- range $k, $v := $c -}} -{{- $_1518_b_15_ok_16 := (get (fromJson (include "_shims.typetest" (dict "a" (list "bool" $v false)))) "r") -}} -{{- $b_15 := (index $_1518_b_15_ok_16 0) -}} -{{- $ok_16 := (index $_1518_b_15_ok_16 1) -}} -{{- if $ok_16 -}} -{{- $_ := (set $result $k $b_15) -}} -{{- continue -}} -{{- end -}} -{{- if (not (empty $v)) -}} -{{- $_ := (set $result $k $v) -}} -{{- end -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $result) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.SecretRef.AsSource" -}} -{{- $sr := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (mustMergeOverwrite (dict) (dict "secretKeyRef" (mustMergeOverwrite (dict "key" "") (mustMergeOverwrite (dict) (dict "name" $sr.name)) (dict "key" $sr.key))))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.SecretRef.IsValid" -}} -{{- $sr := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_is_returning = true -}} -{{- (dict "r" (and (and (ne (toJson $sr) "null") (not (empty $sr.key))) (not (empty $sr.name)))) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.TieredStorageCredentials.AsEnvVars" -}} -{{- $tsc := (index .a 0) -}} -{{- $config := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_1563___hasAccessKey := (get (fromJson (include "_shims.dicttest" (dict "a" (list $config "cloud_storage_access_key" (coalesce nil))))) "r") -}} -{{- $_ := (index $_1563___hasAccessKey 0) -}} -{{- $hasAccessKey := (index $_1563___hasAccessKey 1) -}} -{{- $_1564___hasSecretKey := (get (fromJson (include "_shims.dicttest" (dict "a" (list $config "cloud_storage_secret_key" (coalesce nil))))) "r") -}} -{{- $_ := (index $_1564___hasSecretKey 0) -}} -{{- $hasSecretKey := (index $_1564___hasSecretKey 1) -}} -{{- $_1565___hasSharedKey := (get (fromJson (include "_shims.dicttest" (dict "a" (list $config "cloud_storage_azure_shared_key" (coalesce nil))))) "r") -}} -{{- $_ := (index $_1565___hasSharedKey 0) -}} -{{- $hasSharedKey := (index $_1565___hasSharedKey 1) -}} -{{- $envvars := (coalesce nil) -}} -{{- if (and (not $hasAccessKey) (get (fromJson (include "redpanda.SecretRef.IsValid" (dict "a" (list $tsc.accessKey)))) "r")) -}} -{{- $envvars = (concat (default (list) $envvars) (list (mustMergeOverwrite (dict "name" "") (dict "name" "REDPANDA_CLOUD_STORAGE_ACCESS_KEY" "valueFrom" (get (fromJson (include "redpanda.SecretRef.AsSource" (dict "a" (list $tsc.accessKey)))) "r"))))) -}} -{{- end -}} -{{- if (get (fromJson (include "redpanda.SecretRef.IsValid" (dict "a" (list $tsc.secretKey)))) "r") -}} -{{- if (and (not $hasSecretKey) (not (get (fromJson (include "redpanda.TieredStorageConfig.HasAzureCanaries" (dict "a" (list (deepCopy $config))))) "r"))) -}} -{{- $envvars = (concat (default (list) $envvars) (list (mustMergeOverwrite (dict "name" "") (dict "name" "REDPANDA_CLOUD_STORAGE_SECRET_KEY" "valueFrom" (get (fromJson (include "redpanda.SecretRef.AsSource" (dict "a" (list $tsc.secretKey)))) "r"))))) -}} -{{- else -}}{{- if (and (not $hasSharedKey) (get (fromJson (include "redpanda.TieredStorageConfig.HasAzureCanaries" (dict "a" (list (deepCopy $config))))) "r")) -}} -{{- $envvars = (concat (default (list) $envvars) (list (mustMergeOverwrite (dict "name" "") (dict "name" "REDPANDA_CLOUD_STORAGE_AZURE_SHARED_KEY" "valueFrom" (get (fromJson (include "redpanda.SecretRef.AsSource" (dict "a" (list $tsc.secretKey)))) "r"))))) -}} -{{- end -}} -{{- end -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $envvars) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.TieredStorageConfig.HasAzureCanaries" -}} -{{- $c := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_1601___containerExists := (get (fromJson (include "_shims.dicttest" (dict "a" (list $c "cloud_storage_azure_container" (coalesce nil))))) "r") -}} -{{- $_ := (index $_1601___containerExists 0) -}} -{{- $containerExists := (index $_1601___containerExists 1) -}} -{{- $_1602___accountExists := (get (fromJson (include "_shims.dicttest" (dict "a" (list $c "cloud_storage_azure_storage_account" (coalesce nil))))) "r") -}} -{{- $_ := (index $_1602___accountExists 0) -}} -{{- $accountExists := (index $_1602___accountExists 1) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (and $containerExists $accountExists)) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.TieredStorageConfig.CloudStorageCacheSize" -}} -{{- $c := (index .a 0) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $_1607_value_ok := (get (fromJson (include "_shims.dicttest" (dict "a" (list $c `cloud_storage_cache_size` (coalesce nil))))) "r") -}} -{{- $value := (index $_1607_value_ok 0) -}} -{{- $ok := (index $_1607_value_ok 1) -}} -{{- if (not $ok) -}} -{{- $_is_returning = true -}} -{{- (dict "r" (coalesce nil)) | toJson -}} -{{- break -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $value) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - -{{- define "redpanda.TieredStorageConfig.Translate" -}} -{{- $c := (index .a 0) -}} -{{- $creds := (index .a 1) -}} -{{- range $_ := (list 1) -}} -{{- $_is_returning := false -}} -{{- $config := (merge (dict) (dict) $c) -}} -{{- range $_, $envvar := (get (fromJson (include "redpanda.TieredStorageCredentials.AsEnvVars" (dict "a" (list $creds $c)))) "r") -}} -{{- $key := (lower (substr ((get (fromJson (include "_shims.len" (dict "a" (list "REDPANDA_")))) "r") | int) -1 $envvar.name)) -}} -{{- $_ := (set $config $key (printf "$%s" $envvar.name)) -}} -{{- end -}} -{{- if $_is_returning -}} -{{- break -}} -{{- end -}} -{{- $size_17 := (get (fromJson (include "redpanda.TieredStorageConfig.CloudStorageCacheSize" (dict "a" (list (deepCopy $c))))) "r") -}} -{{- if (ne (toJson $size_17) "null") -}} -{{- $_ := (set $config "cloud_storage_cache_size" ((get (fromJson (include "_shims.resource_Value" (dict "a" (list $size_17)))) "r") | int64)) -}} -{{- end -}} -{{- $_is_returning = true -}} -{{- (dict "r" $config) | toJson -}} -{{- break -}} -{{- end -}} -{{- end -}} - diff --git a/charts/redpanda/templates/entry-point.yaml b/charts/redpanda/templates/entry-point.yaml deleted file mode 100644 index 6cdf646ad6..0000000000 --- a/charts/redpanda/templates/entry-point.yaml +++ /dev/null @@ -1,17 +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. -*/}} -{{- include "_shims.render-manifest" (list "redpanda.render" .) -}} diff --git a/charts/redpanda/values.schema.json b/charts/redpanda/values.schema.json deleted file mode 100644 index 90f3e9407d..0000000000 --- a/charts/redpanda/values.schema.json +++ /dev/null @@ -1,21221 +0,0 @@ -{ - "$id": "https://github.com/redpanda-data/redpanda-operator/charts/redpanda/v25/values", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "additionalProperties": false, - "description": "DO NOT EDIT!. This file was generated by ./cmd/genschema/genschema.go", - "properties": { - "auditLogging": { - "additionalProperties": false, - "properties": { - "clientMaxBufferSize": { - "type": "integer" - }, - "enabled": { - "type": "boolean" - }, - "enabledEventTypes": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "excludedPrincipals": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "excludedTopics": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "listener": { - "type": "string" - }, - "partitions": { - "type": "integer" - }, - "queueDrainIntervalMs": { - "type": "integer" - }, - "queueMaxBufferSizePerShard": { - "type": "integer" - }, - "replicationFactor": { - "oneOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "auth": { - "additionalProperties": false, - "properties": { - "sasl": { - "additionalProperties": false, - "properties": { - "bootstrapUser": { - "additionalProperties": false, - "properties": { - "mechanism": { - "enum": [ - "SCRAM-SHA-256", - "SCRAM-SHA-512" - ], - "type": "string" - }, - "name": { - "type": "string" - }, - "password": { - "type": "string" - }, - "secretKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "mechanism": { - "enum": [ - "SCRAM-SHA-256", - "SCRAM-SHA-512" - ], - "type": "string" - }, - "secretRef": { - "type": "string" - }, - "users": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "mechanism": { - "enum": [ - "SCRAM-SHA-256", - "SCRAM-SHA-512" - ], - "type": "string" - }, - "name": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "enabled" - ], - "type": "object" - } - }, - "required": [ - "sasl" - ], - "type": "object" - }, - "clusterDomain": { - "type": "string" - }, - "commonLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "config": { - "additionalProperties": false, - "properties": { - "cluster": { - "type": "object" - }, - "node": { - "type": "object" - }, - "pandaproxy_client": { - "additionalProperties": false, - "properties": { - "consumer_heartbeat_interval_ms": { - "type": "integer" - }, - "consumer_rebalance_timeout_ms": { - "type": "integer" - }, - "consumer_request_max_bytes": { - "type": "integer" - }, - "consumer_request_timeout_ms": { - "type": "integer" - }, - "consumer_session_timeout_ms": { - "type": "integer" - }, - "produce_batch_delay_ms": { - "type": "integer" - }, - "produce_batch_record_count": { - "type": "integer" - }, - "produce_batch_size_bytes": { - "type": "integer" - }, - "retries": { - "type": "integer" - }, - "retry_base_backoff_ms": { - "type": "integer" - } - }, - "type": "object" - }, - "rpk": { - "type": "object" - }, - "schema_registry_client": { - "additionalProperties": false, - "properties": { - "consumer_heartbeat_interval_ms": { - "type": "integer" - }, - "consumer_rebalance_timeout_ms": { - "type": "integer" - }, - "consumer_request_max_bytes": { - "type": "integer" - }, - "consumer_request_timeout_ms": { - "type": "integer" - }, - "consumer_session_timeout_ms": { - "type": "integer" - }, - "produce_batch_delay_ms": { - "type": "integer" - }, - "produce_batch_record_count": { - "type": "integer" - }, - "produce_batch_size_bytes": { - "type": "integer" - }, - "retries": { - "type": "integer" - }, - "retry_base_backoff_ms": { - "type": "integer" - } - }, - "type": "object" - }, - "tunable": { - "additionalProperties": true, - "properties": { - "group_initial_rebalance_delay": { - "type": "integer" - }, - "log_retention_ms": { - "type": "integer" - } - }, - "type": "object" - } - }, - "required": [ - "cluster", - "node", - "tunable" - ], - "type": "object" - }, - "console": { - "additionalProperties": false, - "properties": { - "affinity": { - "additionalProperties": false, - "properties": { - "nodeAffinity": { - "additionalProperties": false, - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "preference": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchFields": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "weight": { - "type": "integer" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "additionalProperties": false, - "properties": { - "nodeSelectorTerms": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchFields": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "podAffinity": { - "additionalProperties": false, - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "podAffinityTerm": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "weight": { - "type": "integer" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "podAntiAffinity": { - "additionalProperties": false, - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "podAffinityTerm": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "weight": { - "type": "integer" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "automountServiceAccountToken": { - "type": "boolean" - }, - "autoscaling": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "maxReplicas": { - "type": "integer" - }, - "minReplicas": { - "type": "integer" - }, - "targetCPUUtilizationPercentage": { - "type": "integer" - }, - "targetMemoryUtilizationPercentage": { - "type": "integer" - } - }, - "type": "object" - }, - "commonLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "config": { - "type": "object" - }, - "configmap": { - "additionalProperties": false, - "properties": { - "create": { - "type": "boolean" - } - }, - "type": "object" - }, - "deployment": { - "additionalProperties": false, - "properties": { - "command": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "create": { - "type": "boolean" - }, - "extraArgs": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "extraContainers": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "args": { - "items": { - "type": "string" - }, - "type": "array" - }, - "command": { - "items": { - "type": "string" - }, - "type": "array" - }, - "env": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "valueFrom": { - "additionalProperties": false, - "properties": { - "configMapKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - }, - "secretKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "envFrom": { - "items": { - "additionalProperties": false, - "properties": { - "configMapRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "prefix": { - "type": "string" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "image": { - "type": "string" - }, - "imagePullPolicy": { - "type": "string" - }, - "lifecycle": { - "additionalProperties": false, - "properties": { - "postStart": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "preStop": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "livenessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "ports": { - "items": { - "additionalProperties": false, - "properties": { - "containerPort": { - "type": "integer" - }, - "hostIP": { - "type": "string" - }, - "hostPort": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "protocol": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "readinessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "resizePolicy": { - "items": { - "additionalProperties": false, - "properties": { - "resourceName": { - "type": "string" - }, - "restartPolicy": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "resources": { - "additionalProperties": false, - "properties": { - "claims": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "limits": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "requests": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - } - }, - "type": "object" - }, - "restartPolicy": { - "type": "string" - }, - "securityContext": { - "additionalProperties": false, - "properties": { - "allowPrivilegeEscalation": { - "type": "boolean" - }, - "appArmorProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "capabilities": { - "additionalProperties": false, - "properties": { - "add": { - "items": { - "type": "string" - }, - "type": "array" - }, - "drop": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "privileged": { - "type": "boolean" - }, - "procMount": { - "type": "string" - }, - "readOnlyRootFilesystem": { - "type": "boolean" - }, - "runAsGroup": { - "type": "integer" - }, - "runAsNonRoot": { - "type": "boolean" - }, - "runAsUser": { - "type": "integer" - }, - "seLinuxOptions": { - "additionalProperties": false, - "properties": { - "level": { - "type": "string" - }, - "role": { - "type": "string" - }, - "type": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "seccompProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "windowsOptions": { - "additionalProperties": false, - "properties": { - "gmsaCredentialSpec": { - "type": "string" - }, - "gmsaCredentialSpecName": { - "type": "string" - }, - "hostProcess": { - "type": "boolean" - }, - "runAsUserName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "startupProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "stdin": { - "type": "boolean" - }, - "stdinOnce": { - "type": "boolean" - }, - "terminationMessagePath": { - "type": "string" - }, - "terminationMessagePolicy": { - "type": "string" - }, - "tty": { - "type": "boolean" - }, - "volumeDevices": { - "items": { - "additionalProperties": false, - "properties": { - "devicePath": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "volumeMounts": { - "items": { - "additionalProperties": false, - "properties": { - "mountPath": { - "type": "string" - }, - "mountPropagation": { - "type": "string" - }, - "name": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "recursiveReadOnly": { - "type": "string" - }, - "subPath": { - "type": "string" - }, - "subPathExpr": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "workingDir": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "extraEnv": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "valueFrom": { - "additionalProperties": false, - "properties": { - "configMapKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - }, - "secretKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "extraEnvFrom": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "configMapRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "prefix": { - "type": "string" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "extraVolumeMounts": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "mountPath": { - "type": "string" - }, - "mountPropagation": { - "type": "string" - }, - "name": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "recursiveReadOnly": { - "type": "string" - }, - "subPath": { - "type": "string" - }, - "subPathExpr": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "extraVolumes": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "awsElasticBlockStore": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "partition": { - "type": "integer" - }, - "readOnly": { - "type": "boolean" - }, - "volumeID": { - "type": "string" - } - }, - "type": "object" - }, - "azureDisk": { - "additionalProperties": false, - "properties": { - "cachingMode": { - "type": "string" - }, - "diskName": { - "type": "string" - }, - "diskURI": { - "type": "string" - }, - "fsType": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - } - }, - "type": "object" - }, - "azureFile": { - "additionalProperties": false, - "properties": { - "readOnly": { - "type": "boolean" - }, - "secretName": { - "type": "string" - }, - "shareName": { - "type": "string" - } - }, - "type": "object" - }, - "cephfs": { - "additionalProperties": false, - "properties": { - "monitors": { - "items": { - "type": "string" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretFile": { - "type": "string" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "cinder": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "volumeID": { - "type": "string" - } - }, - "type": "object" - }, - "configMap": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "type": "integer" - }, - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "csi": { - "additionalProperties": false, - "properties": { - "driver": { - "type": "string" - }, - "fsType": { - "type": "string" - }, - "nodePublishSecretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "readOnly": { - "type": "boolean" - }, - "volumeAttributes": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "downwardAPI": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "type": "integer" - }, - "items": { - "items": { - "additionalProperties": false, - "properties": { - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "emptyDir": { - "additionalProperties": false, - "properties": { - "medium": { - "type": "string" - }, - "sizeLimit": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - } - }, - "type": "object" - }, - "ephemeral": { - "additionalProperties": false, - "properties": { - "volumeClaimTemplate": { - "additionalProperties": false, - "properties": { - "metadata": { - "additionalProperties": false, - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "creationTimestamp": { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - "deletionGracePeriodSeconds": { - "type": "integer" - }, - "deletionTimestamp": { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - "finalizers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "generateName": { - "type": "string" - }, - "generation": { - "type": "integer" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "managedFields": { - "items": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldsType": { - "type": "string" - }, - "fieldsV1": { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - "manager": { - "type": "string" - }, - "operation": { - "type": "string" - }, - "subresource": { - "type": "string" - }, - "time": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "namespace": { - "type": "string" - }, - "ownerReferences": { - "items": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "blockOwnerDeletion": { - "type": "boolean" - }, - "controller": { - "type": "boolean" - }, - "kind": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uid": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "resourceVersion": { - "type": "string" - }, - "selfLink": { - "type": "string" - }, - "uid": { - "type": "string" - } - }, - "type": "object" - }, - "spec": { - "additionalProperties": false, - "properties": { - "accessModes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "dataSource": { - "additionalProperties": false, - "properties": { - "apiGroup": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "dataSourceRef": { - "additionalProperties": false, - "properties": { - "apiGroup": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "name": { - "type": "string" - }, - "namespace": { - "type": "string" - } - }, - "type": "object" - }, - "resources": { - "additionalProperties": false, - "properties": { - "limits": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "requests": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - } - }, - "type": "object" - }, - "selector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "storageClassName": { - "type": "string" - }, - "volumeAttributesClassName": { - "type": "string" - }, - "volumeMode": { - "type": "string" - }, - "volumeName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "fc": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "lun": { - "type": "integer" - }, - "readOnly": { - "type": "boolean" - }, - "targetWWNs": { - "items": { - "type": "string" - }, - "type": "array" - }, - "wwids": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "flexVolume": { - "additionalProperties": false, - "properties": { - "driver": { - "type": "string" - }, - "fsType": { - "type": "string" - }, - "options": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "flocker": { - "additionalProperties": false, - "properties": { - "datasetName": { - "type": "string" - }, - "datasetUUID": { - "type": "string" - } - }, - "type": "object" - }, - "gcePersistentDisk": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "partition": { - "type": "integer" - }, - "pdName": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - } - }, - "type": "object" - }, - "gitRepo": { - "additionalProperties": false, - "properties": { - "directory": { - "type": "string" - }, - "repository": { - "type": "string" - }, - "revision": { - "type": "string" - } - }, - "type": "object" - }, - "glusterfs": { - "additionalProperties": false, - "properties": { - "endpoints": { - "type": "string" - }, - "path": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - } - }, - "type": "object" - }, - "hostPath": { - "additionalProperties": false, - "properties": { - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "iscsi": { - "additionalProperties": false, - "properties": { - "chapAuthDiscovery": { - "type": "boolean" - }, - "chapAuthSession": { - "type": "boolean" - }, - "fsType": { - "type": "string" - }, - "initiatorName": { - "type": "string" - }, - "iqn": { - "type": "string" - }, - "iscsiInterface": { - "type": "string" - }, - "lun": { - "type": "integer" - }, - "portals": { - "items": { - "type": "string" - }, - "type": "array" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "targetPortal": { - "type": "string" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "nfs": { - "additionalProperties": false, - "properties": { - "path": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "server": { - "type": "string" - } - }, - "type": "object" - }, - "persistentVolumeClaim": { - "additionalProperties": false, - "properties": { - "claimName": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - } - }, - "type": "object" - }, - "photonPersistentDisk": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "pdID": { - "type": "string" - } - }, - "type": "object" - }, - "portworxVolume": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "volumeID": { - "type": "string" - } - }, - "type": "object" - }, - "projected": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "type": "integer" - }, - "sources": { - "items": { - "additionalProperties": false, - "properties": { - "clusterTrustBundle": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "path": { - "type": "string" - }, - "signerName": { - "type": "string" - } - }, - "type": "object" - }, - "configMap": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "downwardAPI": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "secret": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "serviceAccountToken": { - "additionalProperties": false, - "properties": { - "audience": { - "type": "string" - }, - "expirationSeconds": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "quobyte": { - "additionalProperties": false, - "properties": { - "group": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "registry": { - "type": "string" - }, - "tenant": { - "type": "string" - }, - "user": { - "type": "string" - }, - "volume": { - "type": "string" - } - }, - "type": "object" - }, - "rbd": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "image": { - "type": "string" - }, - "keyring": { - "type": "string" - }, - "monitors": { - "items": { - "type": "string" - }, - "type": "array" - }, - "pool": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "scaleIO": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "gateway": { - "type": "string" - }, - "protectionDomain": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "sslEnabled": { - "type": "boolean" - }, - "storageMode": { - "type": "string" - }, - "storagePool": { - "type": "string" - }, - "system": { - "type": "string" - }, - "volumeName": { - "type": "string" - } - }, - "type": "object" - }, - "secret": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "type": "integer" - }, - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "optional": { - "type": "boolean" - }, - "secretName": { - "type": "string" - } - }, - "type": "object" - }, - "storageos": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "volumeName": { - "type": "string" - }, - "volumeNamespace": { - "type": "string" - } - }, - "type": "object" - }, - "vsphereVolume": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "storagePolicyID": { - "type": "string" - }, - "storagePolicyName": { - "type": "string" - }, - "volumePath": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "fullnameOverride": { - "type": "string" - }, - "global": { - "type": "object" - }, - "image": { - "additionalProperties": false, - "properties": { - "pullPolicy": { - "type": "string" - }, - "registry": { - "type": "string" - }, - "repository": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "type": "object" - }, - "imagePullSecrets": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "ingress": { - "additionalProperties": false, - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "className": { - "type": "string" - }, - "enabled": { - "type": "boolean" - }, - "hosts": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "paths": { - "items": { - "additionalProperties": false, - "properties": { - "path": { - "type": "string" - }, - "pathType": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "tls": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "hosts": { - "items": { - "type": "string" - }, - "type": "array" - }, - "secretName": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "initContainers": { - "additionalProperties": false, - "properties": { - "extraInitContainers": { - "type": "string" - } - }, - "type": "object" - }, - "licenseSecretRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "livenessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "nameOverride": { - "type": "string" - }, - "nodeSelector": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "podAnnotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "podLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "podSecurityContext": { - "additionalProperties": false, - "properties": { - "appArmorProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "fsGroup": { - "type": "integer" - }, - "fsGroupChangePolicy": { - "enum": [ - "OnRootMismatch", - "Always" - ], - "type": "string" - }, - "runAsGroup": { - "type": "integer" - }, - "runAsNonRoot": { - "type": "boolean" - }, - "runAsUser": { - "type": "integer" - }, - "seLinuxOptions": { - "additionalProperties": false, - "properties": { - "level": { - "type": "string" - }, - "role": { - "type": "string" - }, - "type": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "seccompProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "supplementalGroups": { - "oneOf": [ - { - "items": { - "type": "integer" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "sysctls": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "windowsOptions": { - "additionalProperties": false, - "properties": { - "gmsaCredentialSpec": { - "type": "string" - }, - "gmsaCredentialSpecName": { - "type": "string" - }, - "hostProcess": { - "type": "boolean" - }, - "runAsUserName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "priorityClassName": { - "type": "string" - }, - "readinessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "replicaCount": { - "type": "integer" - }, - "resources": { - "additionalProperties": false, - "properties": { - "claims": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "limits": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "requests": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - } - }, - "type": "object" - }, - "secret": { - "additionalProperties": false, - "properties": { - "authentication": { - "additionalProperties": false, - "properties": { - "jwtSigningKey": { - "type": "string" - }, - "oidc": { - "additionalProperties": false, - "properties": { - "clientSecret": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "create": { - "type": "boolean" - }, - "kafka": { - "additionalProperties": false, - "properties": { - "awsMskIamSecretKey": { - "type": "string" - }, - "saslPassword": { - "type": "string" - }, - "tlsCa": { - "type": "string" - }, - "tlsCert": { - "type": "string" - }, - "tlsKey": { - "type": "string" - }, - "tlsPassphrase": { - "type": "string" - } - }, - "type": "object" - }, - "license": { - "type": "string" - }, - "redpanda": { - "additionalProperties": false, - "properties": { - "adminApi": { - "additionalProperties": false, - "properties": { - "password": { - "type": "string" - }, - "tlsCa": { - "type": "string" - }, - "tlsCert": { - "type": "string" - }, - "tlsKey": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "schemaRegistry": { - "additionalProperties": false, - "properties": { - "bearerToken": { - "type": "string" - }, - "password": { - "type": "string" - }, - "tlsCa": { - "type": "string" - }, - "tlsCert": { - "type": "string" - }, - "tlsKey": { - "type": "string" - } - }, - "type": "object" - }, - "serde": { - "additionalProperties": false, - "properties": { - "protobufGitBasicAuthPassword": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "secretMounts": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "secretName": { - "type": "string" - }, - "subPath": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "securityContext": { - "additionalProperties": false, - "properties": { - "allowPrivilegeEscalation": { - "type": "boolean" - }, - "appArmorProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "capabilities": { - "additionalProperties": false, - "properties": { - "add": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "drop": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "privileged": { - "type": "boolean" - }, - "procMount": { - "type": "string" - }, - "readOnlyRootFilesystem": { - "type": "boolean" - }, - "runAsGroup": { - "type": "integer" - }, - "runAsNonRoot": { - "type": "boolean" - }, - "runAsUser": { - "type": "integer" - }, - "seLinuxOptions": { - "additionalProperties": false, - "properties": { - "level": { - "type": "string" - }, - "role": { - "type": "string" - }, - "type": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "seccompProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "windowsOptions": { - "additionalProperties": false, - "properties": { - "gmsaCredentialSpec": { - "type": "string" - }, - "gmsaCredentialSpecName": { - "type": "string" - }, - "hostProcess": { - "type": "boolean" - }, - "runAsUserName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "service": { - "additionalProperties": false, - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "nodePort": { - "type": "integer" - }, - "port": { - "type": "integer" - }, - "targetPort": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "serviceAccount": { - "additionalProperties": false, - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "automountServiceAccountToken": { - "type": "boolean" - }, - "create": { - "type": "boolean" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "strategy": { - "additionalProperties": false, - "properties": { - "rollingUpdate": { - "additionalProperties": false, - "properties": { - "maxSurge": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "maxUnavailable": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "tests": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - } - }, - "type": "object" - }, - "tolerations": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "effect": { - "type": "string" - }, - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "tolerationSeconds": { - "type": "integer" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "topologySpreadConstraints": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "maxSkew": { - "type": "integer" - }, - "minDomains": { - "type": "integer" - }, - "nodeAffinityPolicy": { - "type": "string" - }, - "nodeTaintsPolicy": { - "type": "string" - }, - "topologyKey": { - "type": "string" - }, - "whenUnsatisfiable": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "enterprise": { - "additionalProperties": false, - "properties": { - "license": { - "type": "string" - }, - "licenseSecretRef": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "external": { - "additionalProperties": false, - "properties": { - "addresses": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "domain": { - "type": "string" - }, - "enabled": { - "type": "boolean" - }, - "externalDns": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "type": "object" - }, - "prefixTemplate": { - "type": "string" - }, - "service": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "type": "object" - }, - "sourceRanges": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "type": { - "pattern": "^(LoadBalancer|NodePort)$", - "type": "string" - } - }, - "required": [ - "enabled" - ], - "type": "object" - }, - "force": { - "type": "boolean" - }, - "fullnameOverride": { - "type": "string" - }, - "global": { - "type": "object" - }, - "image": { - "additionalProperties": false, - "description": "Values used to define the container image to be used for Redpanda", - "properties": { - "repository": { - "description": "container image repository", - "type": "string" - }, - "tag": { - "description": "The container image tag. Use the Redpanda release version. Must be a valid semver prefixed with a 'v'.", - "type": "string" - } - }, - "required": [ - "repository", - "tag" - ], - "type": "object" - }, - "license_key": { - "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?\\.(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$|^$", - "type": "string" - }, - "listeners": { - "additionalProperties": false, - "properties": { - "admin": { - "additionalProperties": false, - "properties": { - "appProtocol": { - "type": "string" - }, - "authenticationMethod": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "enabled": { - "type": "boolean" - }, - "external": { - "minProperties": 1, - "patternProperties": { - "^[A-Za-z_][A-Za-z0-9_]*$": { - "additionalProperties": false, - "properties": { - "advertisedPorts": { - "items": { - "type": "integer" - }, - "minItems": 1, - "type": "array" - }, - "authenticationMethod": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "enabled": { - "type": "boolean" - }, - "nodePort": { - "type": "integer" - }, - "port": { - "type": "integer" - }, - "prefixTemplate": { - "type": "string" - }, - "tls": { - "additionalProperties": false, - "properties": { - "cert": { - "type": "string" - }, - "enabled": { - "type": "boolean" - }, - "requireClientAuth": { - "type": "boolean" - }, - "trustStore": { - "additionalProperties": false, - "maxProperties": 1, - "minProperties": 1, - "properties": { - "configMapKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "secretKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "required": [ - "port" - ], - "type": "object" - } - }, - "type": "object" - }, - "port": { - "type": "integer" - }, - "tls": { - "additionalProperties": false, - "properties": { - "cert": { - "type": "string" - }, - "enabled": { - "type": "boolean" - }, - "requireClientAuth": { - "type": "boolean" - }, - "trustStore": { - "additionalProperties": false, - "maxProperties": 1, - "minProperties": 1, - "properties": { - "configMapKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "secretKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "required": [ - "cert", - "requireClientAuth" - ], - "type": "object" - } - }, - "required": [ - "port", - "tls" - ], - "type": "object" - }, - "http": { - "additionalProperties": false, - "properties": { - "appProtocol": { - "type": "string" - }, - "authenticationMethod": { - "oneOf": [ - { - "enum": [ - "none", - "http_basic" - ], - "type": "string" - }, - { - "type": "null" - } - ] - }, - "enabled": { - "type": "boolean" - }, - "external": { - "minProperties": 1, - "patternProperties": { - "^[A-Za-z_][A-Za-z0-9_]*$": { - "additionalProperties": false, - "properties": { - "advertisedPorts": { - "items": { - "type": "integer" - }, - "minItems": 1, - "type": "array" - }, - "authenticationMethod": { - "oneOf": [ - { - "enum": [ - "none", - "http_basic" - ], - "type": "string" - }, - { - "type": "null" - } - ] - }, - "enabled": { - "type": "boolean" - }, - "nodePort": { - "type": "integer" - }, - "port": { - "type": "integer" - }, - "prefixTemplate": { - "type": "string" - }, - "tls": { - "additionalProperties": false, - "properties": { - "cert": { - "type": "string" - }, - "enabled": { - "type": "boolean" - }, - "requireClientAuth": { - "type": "boolean" - }, - "trustStore": { - "additionalProperties": false, - "maxProperties": 1, - "minProperties": 1, - "properties": { - "configMapKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "secretKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "required": [ - "port" - ], - "type": "object" - } - }, - "type": "object" - }, - "port": { - "type": "integer" - }, - "tls": { - "additionalProperties": false, - "properties": { - "cert": { - "type": "string" - }, - "enabled": { - "type": "boolean" - }, - "requireClientAuth": { - "type": "boolean" - }, - "trustStore": { - "additionalProperties": false, - "maxProperties": 1, - "minProperties": 1, - "properties": { - "configMapKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "secretKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "required": [ - "cert", - "requireClientAuth" - ], - "type": "object" - } - }, - "required": [ - "port", - "tls" - ], - "type": "object" - }, - "kafka": { - "additionalProperties": false, - "properties": { - "appProtocol": { - "type": "string" - }, - "authenticationMethod": { - "oneOf": [ - { - "enum": [ - "sasl", - "mtls_identity", - "none" - ], - "type": "string" - }, - { - "type": "null" - } - ] - }, - "enabled": { - "type": "boolean" - }, - "external": { - "minProperties": 1, - "patternProperties": { - "^[A-Za-z_][A-Za-z0-9_]*$": { - "additionalProperties": false, - "properties": { - "advertisedPorts": { - "items": { - "type": "integer" - }, - "minItems": 1, - "type": "array" - }, - "authenticationMethod": { - "oneOf": [ - { - "enum": [ - "sasl", - "mtls_identity", - "none" - ], - "type": "string" - }, - { - "type": "null" - } - ] - }, - "enabled": { - "type": "boolean" - }, - "nodePort": { - "type": "integer" - }, - "port": { - "type": "integer" - }, - "prefixTemplate": { - "type": "string" - }, - "tls": { - "additionalProperties": false, - "properties": { - "cert": { - "type": "string" - }, - "enabled": { - "type": "boolean" - }, - "requireClientAuth": { - "type": "boolean" - }, - "trustStore": { - "additionalProperties": false, - "maxProperties": 1, - "minProperties": 1, - "properties": { - "configMapKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "secretKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "required": [ - "port" - ], - "type": "object" - } - }, - "type": "object" - }, - "port": { - "type": "integer" - }, - "tls": { - "additionalProperties": false, - "properties": { - "cert": { - "type": "string" - }, - "enabled": { - "type": "boolean" - }, - "requireClientAuth": { - "type": "boolean" - }, - "trustStore": { - "additionalProperties": false, - "maxProperties": 1, - "minProperties": 1, - "properties": { - "configMapKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "secretKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "required": [ - "cert", - "requireClientAuth" - ], - "type": "object" - } - }, - "required": [ - "port", - "tls" - ], - "type": "object" - }, - "rpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "tls": { - "additionalProperties": false, - "properties": { - "cert": { - "type": "string" - }, - "enabled": { - "type": "boolean" - }, - "requireClientAuth": { - "type": "boolean" - }, - "trustStore": { - "additionalProperties": false, - "maxProperties": 1, - "minProperties": 1, - "properties": { - "configMapKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "secretKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "required": [ - "cert", - "requireClientAuth" - ], - "type": "object" - } - }, - "required": [ - "port", - "tls" - ], - "type": "object" - }, - "schemaRegistry": { - "additionalProperties": false, - "properties": { - "appProtocol": { - "type": "string" - }, - "authenticationMethod": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "enabled": { - "type": "boolean" - }, - "external": { - "minProperties": 1, - "patternProperties": { - "^[A-Za-z_][A-Za-z0-9_]*$": { - "additionalProperties": false, - "properties": { - "advertisedPorts": { - "items": { - "type": "integer" - }, - "minItems": 1, - "type": "array" - }, - "authenticationMethod": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "enabled": { - "type": "boolean" - }, - "nodePort": { - "type": "integer" - }, - "port": { - "type": "integer" - }, - "prefixTemplate": { - "type": "string" - }, - "tls": { - "additionalProperties": false, - "properties": { - "cert": { - "type": "string" - }, - "enabled": { - "type": "boolean" - }, - "requireClientAuth": { - "type": "boolean" - }, - "trustStore": { - "additionalProperties": false, - "maxProperties": 1, - "minProperties": 1, - "properties": { - "configMapKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "secretKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "required": [ - "port" - ], - "type": "object" - } - }, - "type": "object" - }, - "port": { - "type": "integer" - }, - "tls": { - "additionalProperties": false, - "properties": { - "cert": { - "type": "string" - }, - "enabled": { - "type": "boolean" - }, - "requireClientAuth": { - "type": "boolean" - }, - "trustStore": { - "additionalProperties": false, - "maxProperties": 1, - "minProperties": 1, - "properties": { - "configMapKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "secretKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "required": [ - "cert", - "requireClientAuth" - ], - "type": "object" - } - }, - "required": [ - "port", - "tls" - ], - "type": "object" - } - }, - "required": [ - "admin", - "http", - "kafka", - "schemaRegistry", - "rpc" - ], - "type": "object" - }, - "logging": { - "additionalProperties": false, - "properties": { - "logLevel": { - "pattern": "^(error|warn|info|debug|trace)$", - "type": "string" - }, - "usageStats": { - "additionalProperties": false, - "properties": { - "clusterId": { - "type": "string" - }, - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "type": "object" - } - }, - "required": [ - "logLevel", - "usageStats" - ], - "type": "object" - }, - "monitoring": { - "additionalProperties": false, - "properties": { - "enableHttp2": { - "type": "boolean" - }, - "enabled": { - "type": "boolean" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "scrapeInterval": { - "type": "string" - }, - "tlsConfig": { - "additionalProperties": false, - "properties": { - "ca": { - "additionalProperties": false, - "properties": { - "configMap": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "secret": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "caFile": { - "type": "string" - }, - "cert": { - "additionalProperties": false, - "properties": { - "configMap": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "secret": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "certFile": { - "type": "string" - }, - "insecureSkipVerify": { - "type": "boolean" - }, - "keyFile": { - "type": "string" - }, - "keySecret": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "maxVersion": { - "type": "string" - }, - "minVersion": { - "type": "string" - }, - "serverName": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "enabled", - "scrapeInterval" - ], - "type": "object" - }, - "nameOverride": { - "type": "string" - }, - "podTemplate": { - "additionalProperties": false, - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "spec": { - "additionalProperties": false, - "properties": { - "activeDeadlineSeconds": { - "type": "integer" - }, - "affinity": { - "additionalProperties": false, - "properties": { - "nodeAffinity": { - "additionalProperties": false, - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "preference": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchFields": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "weight": { - "type": "integer" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "additionalProperties": false, - "properties": { - "nodeSelectorTerms": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchFields": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "podAffinity": { - "additionalProperties": false, - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "podAffinityTerm": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "weight": { - "type": "integer" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "podAntiAffinity": { - "additionalProperties": false, - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "podAffinityTerm": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "weight": { - "type": "integer" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "automountServiceAccountToken": { - "type": "boolean" - }, - "containers": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "args": { - "items": { - "type": "string" - }, - "type": "array" - }, - "command": { - "items": { - "type": "string" - }, - "type": "array" - }, - "env": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "valueFrom": { - "additionalProperties": false, - "properties": { - "configMapKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - }, - "secretKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "envFrom": { - "items": { - "additionalProperties": false, - "properties": { - "configMapRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "prefix": { - "type": "string" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "image": { - "type": "string" - }, - "imagePullPolicy": { - "type": "string" - }, - "lifecycle": { - "additionalProperties": false, - "properties": { - "postStart": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "preStop": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "livenessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "ports": { - "items": { - "additionalProperties": false, - "properties": { - "containerPort": { - "type": "integer" - }, - "hostIP": { - "type": "string" - }, - "hostPort": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "protocol": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "readinessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "resizePolicy": { - "items": { - "additionalProperties": false, - "properties": { - "resourceName": { - "type": "string" - }, - "restartPolicy": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "resources": { - "additionalProperties": false, - "properties": { - "claims": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "limits": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "requests": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - } - }, - "type": "object" - }, - "restartPolicy": { - "type": "string" - }, - "securityContext": { - "additionalProperties": false, - "properties": { - "allowPrivilegeEscalation": { - "type": "boolean" - }, - "appArmorProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "capabilities": { - "additionalProperties": false, - "properties": { - "add": { - "items": { - "type": "string" - }, - "type": "array" - }, - "drop": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "privileged": { - "type": "boolean" - }, - "procMount": { - "type": "string" - }, - "readOnlyRootFilesystem": { - "type": "boolean" - }, - "runAsGroup": { - "type": "integer" - }, - "runAsNonRoot": { - "type": "boolean" - }, - "runAsUser": { - "type": "integer" - }, - "seLinuxOptions": { - "additionalProperties": false, - "properties": { - "level": { - "type": "string" - }, - "role": { - "type": "string" - }, - "type": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "seccompProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "windowsOptions": { - "additionalProperties": false, - "properties": { - "gmsaCredentialSpec": { - "type": "string" - }, - "gmsaCredentialSpecName": { - "type": "string" - }, - "hostProcess": { - "type": "boolean" - }, - "runAsUserName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "startupProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "stdin": { - "type": "boolean" - }, - "stdinOnce": { - "type": "boolean" - }, - "terminationMessagePath": { - "type": "string" - }, - "terminationMessagePolicy": { - "type": "string" - }, - "tty": { - "type": "boolean" - }, - "volumeDevices": { - "items": { - "additionalProperties": false, - "properties": { - "devicePath": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "volumeMounts": { - "items": { - "additionalProperties": false, - "properties": { - "mountPath": { - "type": "string" - }, - "mountPropagation": { - "type": "string" - }, - "name": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "recursiveReadOnly": { - "type": "string" - }, - "subPath": { - "type": "string" - }, - "subPathExpr": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "workingDir": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "dnsConfig": { - "additionalProperties": false, - "properties": { - "nameservers": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "options": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "searches": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "dnsPolicy": { - "type": "string" - }, - "enableServiceLinks": { - "type": "boolean" - }, - "ephemeralContainers": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "args": { - "items": { - "type": "string" - }, - "type": "array" - }, - "command": { - "items": { - "type": "string" - }, - "type": "array" - }, - "env": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "valueFrom": { - "additionalProperties": false, - "properties": { - "configMapKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - }, - "secretKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "envFrom": { - "items": { - "additionalProperties": false, - "properties": { - "configMapRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "prefix": { - "type": "string" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "image": { - "type": "string" - }, - "imagePullPolicy": { - "type": "string" - }, - "lifecycle": { - "additionalProperties": false, - "properties": { - "postStart": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "preStop": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "livenessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "ports": { - "items": { - "additionalProperties": false, - "properties": { - "containerPort": { - "type": "integer" - }, - "hostIP": { - "type": "string" - }, - "hostPort": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "protocol": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "readinessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "resizePolicy": { - "items": { - "additionalProperties": false, - "properties": { - "resourceName": { - "type": "string" - }, - "restartPolicy": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "resources": { - "additionalProperties": false, - "properties": { - "claims": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "limits": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "requests": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - } - }, - "type": "object" - }, - "restartPolicy": { - "type": "string" - }, - "securityContext": { - "additionalProperties": false, - "properties": { - "allowPrivilegeEscalation": { - "type": "boolean" - }, - "appArmorProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "capabilities": { - "additionalProperties": false, - "properties": { - "add": { - "items": { - "type": "string" - }, - "type": "array" - }, - "drop": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "privileged": { - "type": "boolean" - }, - "procMount": { - "type": "string" - }, - "readOnlyRootFilesystem": { - "type": "boolean" - }, - "runAsGroup": { - "type": "integer" - }, - "runAsNonRoot": { - "type": "boolean" - }, - "runAsUser": { - "type": "integer" - }, - "seLinuxOptions": { - "additionalProperties": false, - "properties": { - "level": { - "type": "string" - }, - "role": { - "type": "string" - }, - "type": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "seccompProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "windowsOptions": { - "additionalProperties": false, - "properties": { - "gmsaCredentialSpec": { - "type": "string" - }, - "gmsaCredentialSpecName": { - "type": "string" - }, - "hostProcess": { - "type": "boolean" - }, - "runAsUserName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "startupProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "stdin": { - "type": "boolean" - }, - "stdinOnce": { - "type": "boolean" - }, - "targetContainerName": { - "type": "string" - }, - "terminationMessagePath": { - "type": "string" - }, - "terminationMessagePolicy": { - "type": "string" - }, - "tty": { - "type": "boolean" - }, - "volumeDevices": { - "items": { - "additionalProperties": false, - "properties": { - "devicePath": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "volumeMounts": { - "items": { - "additionalProperties": false, - "properties": { - "mountPath": { - "type": "string" - }, - "mountPropagation": { - "type": "string" - }, - "name": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "recursiveReadOnly": { - "type": "string" - }, - "subPath": { - "type": "string" - }, - "subPathExpr": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "workingDir": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "hostAliases": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "hostnames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ip": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "hostIPC": { - "type": "boolean" - }, - "hostNetwork": { - "type": "boolean" - }, - "hostPID": { - "type": "boolean" - }, - "hostUsers": { - "type": "boolean" - }, - "hostname": { - "type": "string" - }, - "imagePullSecrets": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "initContainers": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "args": { - "items": { - "type": "string" - }, - "type": "array" - }, - "command": { - "items": { - "type": "string" - }, - "type": "array" - }, - "env": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "valueFrom": { - "additionalProperties": false, - "properties": { - "configMapKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - }, - "secretKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "envFrom": { - "items": { - "additionalProperties": false, - "properties": { - "configMapRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "prefix": { - "type": "string" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "image": { - "type": "string" - }, - "imagePullPolicy": { - "type": "string" - }, - "lifecycle": { - "additionalProperties": false, - "properties": { - "postStart": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "preStop": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "livenessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "ports": { - "items": { - "additionalProperties": false, - "properties": { - "containerPort": { - "type": "integer" - }, - "hostIP": { - "type": "string" - }, - "hostPort": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "protocol": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "readinessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "resizePolicy": { - "items": { - "additionalProperties": false, - "properties": { - "resourceName": { - "type": "string" - }, - "restartPolicy": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "resources": { - "additionalProperties": false, - "properties": { - "claims": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "limits": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "requests": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - } - }, - "type": "object" - }, - "restartPolicy": { - "type": "string" - }, - "securityContext": { - "additionalProperties": false, - "properties": { - "allowPrivilegeEscalation": { - "type": "boolean" - }, - "appArmorProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "capabilities": { - "additionalProperties": false, - "properties": { - "add": { - "items": { - "type": "string" - }, - "type": "array" - }, - "drop": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "privileged": { - "type": "boolean" - }, - "procMount": { - "type": "string" - }, - "readOnlyRootFilesystem": { - "type": "boolean" - }, - "runAsGroup": { - "type": "integer" - }, - "runAsNonRoot": { - "type": "boolean" - }, - "runAsUser": { - "type": "integer" - }, - "seLinuxOptions": { - "additionalProperties": false, - "properties": { - "level": { - "type": "string" - }, - "role": { - "type": "string" - }, - "type": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "seccompProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "windowsOptions": { - "additionalProperties": false, - "properties": { - "gmsaCredentialSpec": { - "type": "string" - }, - "gmsaCredentialSpecName": { - "type": "string" - }, - "hostProcess": { - "type": "boolean" - }, - "runAsUserName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "startupProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "stdin": { - "type": "boolean" - }, - "stdinOnce": { - "type": "boolean" - }, - "terminationMessagePath": { - "type": "string" - }, - "terminationMessagePolicy": { - "type": "string" - }, - "tty": { - "type": "boolean" - }, - "volumeDevices": { - "items": { - "additionalProperties": false, - "properties": { - "devicePath": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "volumeMounts": { - "items": { - "additionalProperties": false, - "properties": { - "mountPath": { - "type": "string" - }, - "mountPropagation": { - "type": "string" - }, - "name": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "recursiveReadOnly": { - "type": "string" - }, - "subPath": { - "type": "string" - }, - "subPathExpr": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "workingDir": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "nodeName": { - "type": "string" - }, - "nodeSelector": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "os": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "overhead": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "preemptionPolicy": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "priorityClassName": { - "type": "string" - }, - "readinessGates": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "conditionType": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "resourceClaims": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "source": { - "additionalProperties": false, - "properties": { - "resourceClaimName": { - "type": "string" - }, - "resourceClaimTemplateName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "restartPolicy": { - "type": "string" - }, - "runtimeClassName": { - "type": "string" - }, - "schedulerName": { - "type": "string" - }, - "schedulingGates": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "securityContext": { - "additionalProperties": false, - "properties": { - "appArmorProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "fsGroup": { - "type": "integer" - }, - "fsGroupChangePolicy": { - "enum": [ - "OnRootMismatch", - "Always" - ], - "type": "string" - }, - "runAsGroup": { - "type": "integer" - }, - "runAsNonRoot": { - "type": "boolean" - }, - "runAsUser": { - "type": "integer" - }, - "seLinuxOptions": { - "additionalProperties": false, - "properties": { - "level": { - "type": "string" - }, - "role": { - "type": "string" - }, - "type": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "seccompProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "supplementalGroups": { - "oneOf": [ - { - "items": { - "type": "integer" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "sysctls": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "windowsOptions": { - "additionalProperties": false, - "properties": { - "gmsaCredentialSpec": { - "type": "string" - }, - "gmsaCredentialSpecName": { - "type": "string" - }, - "hostProcess": { - "type": "boolean" - }, - "runAsUserName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "serviceAccount": { - "type": "string" - }, - "serviceAccountName": { - "type": "string" - }, - "setHostnameAsFQDN": { - "type": "boolean" - }, - "shareProcessNamespace": { - "type": "boolean" - }, - "subdomain": { - "type": "string" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "tolerations": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "effect": { - "type": "string" - }, - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "tolerationSeconds": { - "type": "integer" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "topologySpreadConstraints": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "maxSkew": { - "type": "integer" - }, - "minDomains": { - "type": "integer" - }, - "nodeAffinityPolicy": { - "type": "string" - }, - "nodeTaintsPolicy": { - "type": "string" - }, - "topologyKey": { - "type": "string" - }, - "whenUnsatisfiable": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "volumes": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "awsElasticBlockStore": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "partition": { - "type": "integer" - }, - "readOnly": { - "type": "boolean" - }, - "volumeID": { - "type": "string" - } - }, - "type": "object" - }, - "azureDisk": { - "additionalProperties": false, - "properties": { - "cachingMode": { - "type": "string" - }, - "diskName": { - "type": "string" - }, - "diskURI": { - "type": "string" - }, - "fsType": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - } - }, - "type": "object" - }, - "azureFile": { - "additionalProperties": false, - "properties": { - "readOnly": { - "type": "boolean" - }, - "secretName": { - "type": "string" - }, - "shareName": { - "type": "string" - } - }, - "type": "object" - }, - "cephfs": { - "additionalProperties": false, - "properties": { - "monitors": { - "items": { - "type": "string" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretFile": { - "type": "string" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "cinder": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "volumeID": { - "type": "string" - } - }, - "type": "object" - }, - "configMap": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "type": "integer" - }, - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "csi": { - "additionalProperties": false, - "properties": { - "driver": { - "type": "string" - }, - "fsType": { - "type": "string" - }, - "nodePublishSecretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "readOnly": { - "type": "boolean" - }, - "volumeAttributes": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "downwardAPI": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "type": "integer" - }, - "items": { - "items": { - "additionalProperties": false, - "properties": { - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "emptyDir": { - "additionalProperties": false, - "properties": { - "medium": { - "type": "string" - }, - "sizeLimit": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - } - }, - "type": "object" - }, - "ephemeral": { - "additionalProperties": false, - "properties": { - "volumeClaimTemplate": { - "additionalProperties": false, - "properties": { - "metadata": { - "additionalProperties": false, - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "creationTimestamp": { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - "deletionGracePeriodSeconds": { - "type": "integer" - }, - "deletionTimestamp": { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - "finalizers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "generateName": { - "type": "string" - }, - "generation": { - "type": "integer" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "namespace": { - "type": "string" - }, - "ownerReferences": { - "items": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "blockOwnerDeletion": { - "type": "boolean" - }, - "controller": { - "type": "boolean" - }, - "kind": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uid": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "resourceVersion": { - "type": "string" - }, - "uid": { - "type": "string" - } - }, - "type": "object" - }, - "spec": { - "additionalProperties": false, - "properties": { - "accessModes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "dataSource": { - "additionalProperties": false, - "properties": { - "apiGroup": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "dataSourceRef": { - "additionalProperties": false, - "properties": { - "apiGroup": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "name": { - "type": "string" - }, - "namespace": { - "type": "string" - } - }, - "type": "object" - }, - "resources": { - "additionalProperties": false, - "properties": { - "limits": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "requests": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - } - }, - "type": "object" - }, - "selector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "storageClassName": { - "type": "string" - }, - "volumeAttributesClassName": { - "type": "string" - }, - "volumeMode": { - "type": "string" - }, - "volumeName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "fc": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "lun": { - "type": "integer" - }, - "readOnly": { - "type": "boolean" - }, - "targetWWNs": { - "items": { - "type": "string" - }, - "type": "array" - }, - "wwids": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "flexVolume": { - "additionalProperties": false, - "properties": { - "driver": { - "type": "string" - }, - "fsType": { - "type": "string" - }, - "options": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "flocker": { - "additionalProperties": false, - "properties": { - "datasetName": { - "type": "string" - }, - "datasetUUID": { - "type": "string" - } - }, - "type": "object" - }, - "gcePersistentDisk": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "partition": { - "type": "integer" - }, - "pdName": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - } - }, - "type": "object" - }, - "gitRepo": { - "additionalProperties": false, - "properties": { - "directory": { - "type": "string" - }, - "repository": { - "type": "string" - }, - "revision": { - "type": "string" - } - }, - "type": "object" - }, - "glusterfs": { - "additionalProperties": false, - "properties": { - "endpoints": { - "type": "string" - }, - "path": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - } - }, - "type": "object" - }, - "hostPath": { - "additionalProperties": false, - "properties": { - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "iscsi": { - "additionalProperties": false, - "properties": { - "chapAuthDiscovery": { - "type": "boolean" - }, - "chapAuthSession": { - "type": "boolean" - }, - "fsType": { - "type": "string" - }, - "initiatorName": { - "type": "string" - }, - "iqn": { - "type": "string" - }, - "iscsiInterface": { - "type": "string" - }, - "lun": { - "type": "integer" - }, - "portals": { - "items": { - "type": "string" - }, - "type": "array" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "targetPortal": { - "type": "string" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "nfs": { - "additionalProperties": false, - "properties": { - "path": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "server": { - "type": "string" - } - }, - "type": "object" - }, - "persistentVolumeClaim": { - "additionalProperties": false, - "properties": { - "claimName": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - } - }, - "type": "object" - }, - "photonPersistentDisk": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "pdID": { - "type": "string" - } - }, - "type": "object" - }, - "portworxVolume": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "volumeID": { - "type": "string" - } - }, - "type": "object" - }, - "projected": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "type": "integer" - }, - "sources": { - "items": { - "additionalProperties": false, - "properties": { - "clusterTrustBundle": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "path": { - "type": "string" - }, - "signerName": { - "type": "string" - } - }, - "type": "object" - }, - "configMap": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "downwardAPI": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "secret": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "serviceAccountToken": { - "additionalProperties": false, - "properties": { - "audience": { - "type": "string" - }, - "expirationSeconds": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "quobyte": { - "additionalProperties": false, - "properties": { - "group": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "registry": { - "type": "string" - }, - "tenant": { - "type": "string" - }, - "user": { - "type": "string" - }, - "volume": { - "type": "string" - } - }, - "type": "object" - }, - "rbd": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "image": { - "type": "string" - }, - "keyring": { - "type": "string" - }, - "monitors": { - "items": { - "type": "string" - }, - "type": "array" - }, - "pool": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "scaleIO": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "gateway": { - "type": "string" - }, - "protectionDomain": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "sslEnabled": { - "type": "boolean" - }, - "storageMode": { - "type": "string" - }, - "storagePool": { - "type": "string" - }, - "system": { - "type": "string" - }, - "volumeName": { - "type": "string" - } - }, - "type": "object" - }, - "secret": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "type": "integer" - }, - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "optional": { - "type": "boolean" - }, - "secretName": { - "type": "string" - } - }, - "type": "object" - }, - "storageos": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "volumeName": { - "type": "string" - }, - "volumeNamespace": { - "type": "string" - } - }, - "type": "object" - }, - "vsphereVolume": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "storagePolicyID": { - "type": "string" - }, - "storagePolicyName": { - "type": "string" - }, - "volumePath": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "required": [ - "labels", - "annotations" - ], - "type": "object" - }, - "post_install_job": { - "additionalProperties": false, - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "podTemplate": { - "additionalProperties": false, - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "spec": { - "additionalProperties": false, - "properties": { - "activeDeadlineSeconds": { - "type": "integer" - }, - "affinity": { - "additionalProperties": false, - "properties": { - "nodeAffinity": { - "additionalProperties": false, - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "preference": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchFields": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "weight": { - "type": "integer" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "additionalProperties": false, - "properties": { - "nodeSelectorTerms": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchFields": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "podAffinity": { - "additionalProperties": false, - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "podAffinityTerm": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "weight": { - "type": "integer" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "podAntiAffinity": { - "additionalProperties": false, - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "podAffinityTerm": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "weight": { - "type": "integer" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "automountServiceAccountToken": { - "type": "boolean" - }, - "containers": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "args": { - "items": { - "type": "string" - }, - "type": "array" - }, - "command": { - "items": { - "type": "string" - }, - "type": "array" - }, - "env": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "valueFrom": { - "additionalProperties": false, - "properties": { - "configMapKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - }, - "secretKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "envFrom": { - "items": { - "additionalProperties": false, - "properties": { - "configMapRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "prefix": { - "type": "string" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "image": { - "type": "string" - }, - "imagePullPolicy": { - "type": "string" - }, - "lifecycle": { - "additionalProperties": false, - "properties": { - "postStart": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "preStop": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "livenessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "ports": { - "items": { - "additionalProperties": false, - "properties": { - "containerPort": { - "type": "integer" - }, - "hostIP": { - "type": "string" - }, - "hostPort": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "protocol": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "readinessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "resizePolicy": { - "items": { - "additionalProperties": false, - "properties": { - "resourceName": { - "type": "string" - }, - "restartPolicy": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "resources": { - "additionalProperties": false, - "properties": { - "claims": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "limits": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "requests": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - } - }, - "type": "object" - }, - "restartPolicy": { - "type": "string" - }, - "securityContext": { - "additionalProperties": false, - "properties": { - "allowPrivilegeEscalation": { - "type": "boolean" - }, - "appArmorProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "capabilities": { - "additionalProperties": false, - "properties": { - "add": { - "items": { - "type": "string" - }, - "type": "array" - }, - "drop": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "privileged": { - "type": "boolean" - }, - "procMount": { - "type": "string" - }, - "readOnlyRootFilesystem": { - "type": "boolean" - }, - "runAsGroup": { - "type": "integer" - }, - "runAsNonRoot": { - "type": "boolean" - }, - "runAsUser": { - "type": "integer" - }, - "seLinuxOptions": { - "additionalProperties": false, - "properties": { - "level": { - "type": "string" - }, - "role": { - "type": "string" - }, - "type": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "seccompProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "windowsOptions": { - "additionalProperties": false, - "properties": { - "gmsaCredentialSpec": { - "type": "string" - }, - "gmsaCredentialSpecName": { - "type": "string" - }, - "hostProcess": { - "type": "boolean" - }, - "runAsUserName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "startupProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "stdin": { - "type": "boolean" - }, - "stdinOnce": { - "type": "boolean" - }, - "terminationMessagePath": { - "type": "string" - }, - "terminationMessagePolicy": { - "type": "string" - }, - "tty": { - "type": "boolean" - }, - "volumeDevices": { - "items": { - "additionalProperties": false, - "properties": { - "devicePath": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "volumeMounts": { - "items": { - "additionalProperties": false, - "properties": { - "mountPath": { - "type": "string" - }, - "mountPropagation": { - "type": "string" - }, - "name": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "recursiveReadOnly": { - "type": "string" - }, - "subPath": { - "type": "string" - }, - "subPathExpr": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "workingDir": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "dnsConfig": { - "additionalProperties": false, - "properties": { - "nameservers": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "options": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "searches": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "dnsPolicy": { - "type": "string" - }, - "enableServiceLinks": { - "type": "boolean" - }, - "ephemeralContainers": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "args": { - "items": { - "type": "string" - }, - "type": "array" - }, - "command": { - "items": { - "type": "string" - }, - "type": "array" - }, - "env": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "valueFrom": { - "additionalProperties": false, - "properties": { - "configMapKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - }, - "secretKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "envFrom": { - "items": { - "additionalProperties": false, - "properties": { - "configMapRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "prefix": { - "type": "string" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "image": { - "type": "string" - }, - "imagePullPolicy": { - "type": "string" - }, - "lifecycle": { - "additionalProperties": false, - "properties": { - "postStart": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "preStop": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "livenessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "ports": { - "items": { - "additionalProperties": false, - "properties": { - "containerPort": { - "type": "integer" - }, - "hostIP": { - "type": "string" - }, - "hostPort": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "protocol": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "readinessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "resizePolicy": { - "items": { - "additionalProperties": false, - "properties": { - "resourceName": { - "type": "string" - }, - "restartPolicy": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "resources": { - "additionalProperties": false, - "properties": { - "claims": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "limits": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "requests": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - } - }, - "type": "object" - }, - "restartPolicy": { - "type": "string" - }, - "securityContext": { - "additionalProperties": false, - "properties": { - "allowPrivilegeEscalation": { - "type": "boolean" - }, - "appArmorProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "capabilities": { - "additionalProperties": false, - "properties": { - "add": { - "items": { - "type": "string" - }, - "type": "array" - }, - "drop": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "privileged": { - "type": "boolean" - }, - "procMount": { - "type": "string" - }, - "readOnlyRootFilesystem": { - "type": "boolean" - }, - "runAsGroup": { - "type": "integer" - }, - "runAsNonRoot": { - "type": "boolean" - }, - "runAsUser": { - "type": "integer" - }, - "seLinuxOptions": { - "additionalProperties": false, - "properties": { - "level": { - "type": "string" - }, - "role": { - "type": "string" - }, - "type": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "seccompProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "windowsOptions": { - "additionalProperties": false, - "properties": { - "gmsaCredentialSpec": { - "type": "string" - }, - "gmsaCredentialSpecName": { - "type": "string" - }, - "hostProcess": { - "type": "boolean" - }, - "runAsUserName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "startupProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "stdin": { - "type": "boolean" - }, - "stdinOnce": { - "type": "boolean" - }, - "targetContainerName": { - "type": "string" - }, - "terminationMessagePath": { - "type": "string" - }, - "terminationMessagePolicy": { - "type": "string" - }, - "tty": { - "type": "boolean" - }, - "volumeDevices": { - "items": { - "additionalProperties": false, - "properties": { - "devicePath": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "volumeMounts": { - "items": { - "additionalProperties": false, - "properties": { - "mountPath": { - "type": "string" - }, - "mountPropagation": { - "type": "string" - }, - "name": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "recursiveReadOnly": { - "type": "string" - }, - "subPath": { - "type": "string" - }, - "subPathExpr": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "workingDir": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "hostAliases": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "hostnames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ip": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "hostIPC": { - "type": "boolean" - }, - "hostNetwork": { - "type": "boolean" - }, - "hostPID": { - "type": "boolean" - }, - "hostUsers": { - "type": "boolean" - }, - "hostname": { - "type": "string" - }, - "imagePullSecrets": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "initContainers": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "args": { - "items": { - "type": "string" - }, - "type": "array" - }, - "command": { - "items": { - "type": "string" - }, - "type": "array" - }, - "env": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "valueFrom": { - "additionalProperties": false, - "properties": { - "configMapKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - }, - "secretKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "envFrom": { - "items": { - "additionalProperties": false, - "properties": { - "configMapRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "prefix": { - "type": "string" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "image": { - "type": "string" - }, - "imagePullPolicy": { - "type": "string" - }, - "lifecycle": { - "additionalProperties": false, - "properties": { - "postStart": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "preStop": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "livenessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "ports": { - "items": { - "additionalProperties": false, - "properties": { - "containerPort": { - "type": "integer" - }, - "hostIP": { - "type": "string" - }, - "hostPort": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "protocol": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "readinessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "resizePolicy": { - "items": { - "additionalProperties": false, - "properties": { - "resourceName": { - "type": "string" - }, - "restartPolicy": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "resources": { - "additionalProperties": false, - "properties": { - "claims": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "limits": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "requests": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - } - }, - "type": "object" - }, - "restartPolicy": { - "type": "string" - }, - "securityContext": { - "additionalProperties": false, - "properties": { - "allowPrivilegeEscalation": { - "type": "boolean" - }, - "appArmorProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "capabilities": { - "additionalProperties": false, - "properties": { - "add": { - "items": { - "type": "string" - }, - "type": "array" - }, - "drop": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "privileged": { - "type": "boolean" - }, - "procMount": { - "type": "string" - }, - "readOnlyRootFilesystem": { - "type": "boolean" - }, - "runAsGroup": { - "type": "integer" - }, - "runAsNonRoot": { - "type": "boolean" - }, - "runAsUser": { - "type": "integer" - }, - "seLinuxOptions": { - "additionalProperties": false, - "properties": { - "level": { - "type": "string" - }, - "role": { - "type": "string" - }, - "type": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "seccompProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "windowsOptions": { - "additionalProperties": false, - "properties": { - "gmsaCredentialSpec": { - "type": "string" - }, - "gmsaCredentialSpecName": { - "type": "string" - }, - "hostProcess": { - "type": "boolean" - }, - "runAsUserName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "startupProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "stdin": { - "type": "boolean" - }, - "stdinOnce": { - "type": "boolean" - }, - "terminationMessagePath": { - "type": "string" - }, - "terminationMessagePolicy": { - "type": "string" - }, - "tty": { - "type": "boolean" - }, - "volumeDevices": { - "items": { - "additionalProperties": false, - "properties": { - "devicePath": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "volumeMounts": { - "items": { - "additionalProperties": false, - "properties": { - "mountPath": { - "type": "string" - }, - "mountPropagation": { - "type": "string" - }, - "name": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "recursiveReadOnly": { - "type": "string" - }, - "subPath": { - "type": "string" - }, - "subPathExpr": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "workingDir": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "nodeName": { - "type": "string" - }, - "nodeSelector": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "os": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "overhead": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "preemptionPolicy": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "priorityClassName": { - "type": "string" - }, - "readinessGates": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "conditionType": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "resourceClaims": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "source": { - "additionalProperties": false, - "properties": { - "resourceClaimName": { - "type": "string" - }, - "resourceClaimTemplateName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "restartPolicy": { - "type": "string" - }, - "runtimeClassName": { - "type": "string" - }, - "schedulerName": { - "type": "string" - }, - "schedulingGates": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "securityContext": { - "additionalProperties": false, - "properties": { - "appArmorProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "fsGroup": { - "type": "integer" - }, - "fsGroupChangePolicy": { - "enum": [ - "OnRootMismatch", - "Always" - ], - "type": "string" - }, - "runAsGroup": { - "type": "integer" - }, - "runAsNonRoot": { - "type": "boolean" - }, - "runAsUser": { - "type": "integer" - }, - "seLinuxOptions": { - "additionalProperties": false, - "properties": { - "level": { - "type": "string" - }, - "role": { - "type": "string" - }, - "type": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "seccompProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "supplementalGroups": { - "oneOf": [ - { - "items": { - "type": "integer" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "sysctls": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "windowsOptions": { - "additionalProperties": false, - "properties": { - "gmsaCredentialSpec": { - "type": "string" - }, - "gmsaCredentialSpecName": { - "type": "string" - }, - "hostProcess": { - "type": "boolean" - }, - "runAsUserName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "serviceAccount": { - "type": "string" - }, - "serviceAccountName": { - "type": "string" - }, - "setHostnameAsFQDN": { - "type": "boolean" - }, - "shareProcessNamespace": { - "type": "boolean" - }, - "subdomain": { - "type": "string" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "tolerations": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "effect": { - "type": "string" - }, - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "tolerationSeconds": { - "type": "integer" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "topologySpreadConstraints": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "maxSkew": { - "type": "integer" - }, - "minDomains": { - "type": "integer" - }, - "nodeAffinityPolicy": { - "type": "string" - }, - "nodeTaintsPolicy": { - "type": "string" - }, - "topologyKey": { - "type": "string" - }, - "whenUnsatisfiable": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "volumes": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "awsElasticBlockStore": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "partition": { - "type": "integer" - }, - "readOnly": { - "type": "boolean" - }, - "volumeID": { - "type": "string" - } - }, - "type": "object" - }, - "azureDisk": { - "additionalProperties": false, - "properties": { - "cachingMode": { - "type": "string" - }, - "diskName": { - "type": "string" - }, - "diskURI": { - "type": "string" - }, - "fsType": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - } - }, - "type": "object" - }, - "azureFile": { - "additionalProperties": false, - "properties": { - "readOnly": { - "type": "boolean" - }, - "secretName": { - "type": "string" - }, - "shareName": { - "type": "string" - } - }, - "type": "object" - }, - "cephfs": { - "additionalProperties": false, - "properties": { - "monitors": { - "items": { - "type": "string" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretFile": { - "type": "string" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "cinder": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "volumeID": { - "type": "string" - } - }, - "type": "object" - }, - "configMap": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "type": "integer" - }, - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "csi": { - "additionalProperties": false, - "properties": { - "driver": { - "type": "string" - }, - "fsType": { - "type": "string" - }, - "nodePublishSecretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "readOnly": { - "type": "boolean" - }, - "volumeAttributes": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "downwardAPI": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "type": "integer" - }, - "items": { - "items": { - "additionalProperties": false, - "properties": { - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "emptyDir": { - "additionalProperties": false, - "properties": { - "medium": { - "type": "string" - }, - "sizeLimit": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - } - }, - "type": "object" - }, - "ephemeral": { - "additionalProperties": false, - "properties": { - "volumeClaimTemplate": { - "additionalProperties": false, - "properties": { - "metadata": { - "additionalProperties": false, - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "creationTimestamp": { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - "deletionGracePeriodSeconds": { - "type": "integer" - }, - "deletionTimestamp": { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - "finalizers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "generateName": { - "type": "string" - }, - "generation": { - "type": "integer" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "namespace": { - "type": "string" - }, - "ownerReferences": { - "items": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "blockOwnerDeletion": { - "type": "boolean" - }, - "controller": { - "type": "boolean" - }, - "kind": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uid": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "resourceVersion": { - "type": "string" - }, - "uid": { - "type": "string" - } - }, - "type": "object" - }, - "spec": { - "additionalProperties": false, - "properties": { - "accessModes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "dataSource": { - "additionalProperties": false, - "properties": { - "apiGroup": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "dataSourceRef": { - "additionalProperties": false, - "properties": { - "apiGroup": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "name": { - "type": "string" - }, - "namespace": { - "type": "string" - } - }, - "type": "object" - }, - "resources": { - "additionalProperties": false, - "properties": { - "limits": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "requests": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - } - }, - "type": "object" - }, - "selector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "storageClassName": { - "type": "string" - }, - "volumeAttributesClassName": { - "type": "string" - }, - "volumeMode": { - "type": "string" - }, - "volumeName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "fc": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "lun": { - "type": "integer" - }, - "readOnly": { - "type": "boolean" - }, - "targetWWNs": { - "items": { - "type": "string" - }, - "type": "array" - }, - "wwids": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "flexVolume": { - "additionalProperties": false, - "properties": { - "driver": { - "type": "string" - }, - "fsType": { - "type": "string" - }, - "options": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "flocker": { - "additionalProperties": false, - "properties": { - "datasetName": { - "type": "string" - }, - "datasetUUID": { - "type": "string" - } - }, - "type": "object" - }, - "gcePersistentDisk": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "partition": { - "type": "integer" - }, - "pdName": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - } - }, - "type": "object" - }, - "gitRepo": { - "additionalProperties": false, - "properties": { - "directory": { - "type": "string" - }, - "repository": { - "type": "string" - }, - "revision": { - "type": "string" - } - }, - "type": "object" - }, - "glusterfs": { - "additionalProperties": false, - "properties": { - "endpoints": { - "type": "string" - }, - "path": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - } - }, - "type": "object" - }, - "hostPath": { - "additionalProperties": false, - "properties": { - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "iscsi": { - "additionalProperties": false, - "properties": { - "chapAuthDiscovery": { - "type": "boolean" - }, - "chapAuthSession": { - "type": "boolean" - }, - "fsType": { - "type": "string" - }, - "initiatorName": { - "type": "string" - }, - "iqn": { - "type": "string" - }, - "iscsiInterface": { - "type": "string" - }, - "lun": { - "type": "integer" - }, - "portals": { - "items": { - "type": "string" - }, - "type": "array" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "targetPortal": { - "type": "string" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "nfs": { - "additionalProperties": false, - "properties": { - "path": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "server": { - "type": "string" - } - }, - "type": "object" - }, - "persistentVolumeClaim": { - "additionalProperties": false, - "properties": { - "claimName": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - } - }, - "type": "object" - }, - "photonPersistentDisk": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "pdID": { - "type": "string" - } - }, - "type": "object" - }, - "portworxVolume": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "volumeID": { - "type": "string" - } - }, - "type": "object" - }, - "projected": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "type": "integer" - }, - "sources": { - "items": { - "additionalProperties": false, - "properties": { - "clusterTrustBundle": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "path": { - "type": "string" - }, - "signerName": { - "type": "string" - } - }, - "type": "object" - }, - "configMap": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "downwardAPI": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "secret": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "serviceAccountToken": { - "additionalProperties": false, - "properties": { - "audience": { - "type": "string" - }, - "expirationSeconds": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "quobyte": { - "additionalProperties": false, - "properties": { - "group": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "registry": { - "type": "string" - }, - "tenant": { - "type": "string" - }, - "user": { - "type": "string" - }, - "volume": { - "type": "string" - } - }, - "type": "object" - }, - "rbd": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "image": { - "type": "string" - }, - "keyring": { - "type": "string" - }, - "monitors": { - "items": { - "type": "string" - }, - "type": "array" - }, - "pool": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "scaleIO": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "gateway": { - "type": "string" - }, - "protectionDomain": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "sslEnabled": { - "type": "boolean" - }, - "storageMode": { - "type": "string" - }, - "storagePool": { - "type": "string" - }, - "system": { - "type": "string" - }, - "volumeName": { - "type": "string" - } - }, - "type": "object" - }, - "secret": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "type": "integer" - }, - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "optional": { - "type": "boolean" - }, - "secretName": { - "type": "string" - } - }, - "type": "object" - }, - "storageos": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "volumeName": { - "type": "string" - }, - "volumeNamespace": { - "type": "string" - } - }, - "type": "object" - }, - "vsphereVolume": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "storagePolicyID": { - "type": "string" - }, - "storagePolicyName": { - "type": "string" - }, - "volumePath": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "required": [ - "labels", - "annotations" - ], - "type": "object" - } - }, - "type": "object" - }, - "rackAwareness": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "nodeAnnotation": { - "type": "string" - } - }, - "required": [ - "enabled", - "nodeAnnotation" - ], - "type": "object" - }, - "rbac": { - "additionalProperties": false, - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "rpkDebugBundle": { - "type": "boolean" - } - }, - "required": [ - "enabled", - "rpkDebugBundle", - "annotations" - ], - "type": "object" - }, - "resources": { - "additionalProperties": false, - "properties": { - "cpu": { - "additionalProperties": false, - "properties": { - "cores": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "overprovisioned": { - "type": "boolean" - } - }, - "required": [ - "cores" - ], - "type": "object" - }, - "limits": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "memory": { - "additionalProperties": false, - "properties": { - "container": { - "additionalProperties": false, - "properties": { - "max": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "min": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - } - }, - "required": [ - "max" - ], - "type": "object" - }, - "enable_memory_locking": { - "type": "boolean" - }, - "redpanda": { - "additionalProperties": false, - "properties": { - "memory": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "reserveMemory": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "required": [ - "container" - ], - "type": "object" - }, - "requests": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - } - }, - "required": [ - "cpu", - "memory" - ], - "type": "object" - }, - "service": { - "additionalProperties": false, - "properties": { - "internal": { - "additionalProperties": false, - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "serviceAccount": { - "additionalProperties": false, - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "automountServiceAccountToken": { - "type": "boolean" - }, - "create": { - "type": "boolean" - }, - "name": { - "type": "string" - } - }, - "required": [ - "annotations", - "create", - "name" - ], - "type": "object" - }, - "statefulset": { - "additionalProperties": false, - "properties": { - "additionalRedpandaCmdFlags": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "additionalSelectorLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "budget": { - "additionalProperties": false, - "properties": { - "maxUnavailable": { - "type": "integer" - } - }, - "required": [ - "maxUnavailable" - ], - "type": "object" - }, - "initContainerImage": { - "additionalProperties": false, - "properties": { - "repository": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "type": "object" - }, - "initContainers": { - "additionalProperties": false, - "properties": { - "fsValidator": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "expectedFS": { - "type": "string" - } - }, - "type": "object" - }, - "setDataDirOwnership": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "podAntiAffinity": { - "additionalProperties": false, - "properties": { - "custom": { - "type": "object" - }, - "topologyKey": { - "type": "string" - }, - "type": { - "pattern": "^(hard|soft|custom)$", - "type": "string" - }, - "weight": { - "type": "integer" - } - }, - "required": [ - "topologyKey", - "type", - "weight" - ], - "type": "object" - }, - "podTemplate": { - "additionalProperties": false, - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "spec": { - "additionalProperties": false, - "properties": { - "activeDeadlineSeconds": { - "type": "integer" - }, - "affinity": { - "additionalProperties": false, - "properties": { - "nodeAffinity": { - "additionalProperties": false, - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "preference": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchFields": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "weight": { - "type": "integer" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "additionalProperties": false, - "properties": { - "nodeSelectorTerms": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchFields": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "podAffinity": { - "additionalProperties": false, - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "podAffinityTerm": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "weight": { - "type": "integer" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "podAntiAffinity": { - "additionalProperties": false, - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "podAffinityTerm": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "weight": { - "type": "integer" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mismatchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "namespaceSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "type": "array" - }, - "topologyKey": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "automountServiceAccountToken": { - "type": "boolean" - }, - "containers": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "args": { - "items": { - "type": "string" - }, - "type": "array" - }, - "command": { - "items": { - "type": "string" - }, - "type": "array" - }, - "env": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "valueFrom": { - "additionalProperties": false, - "properties": { - "configMapKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - }, - "secretKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "envFrom": { - "items": { - "additionalProperties": false, - "properties": { - "configMapRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "prefix": { - "type": "string" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "image": { - "type": "string" - }, - "imagePullPolicy": { - "type": "string" - }, - "lifecycle": { - "additionalProperties": false, - "properties": { - "postStart": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "preStop": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "livenessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "ports": { - "items": { - "additionalProperties": false, - "properties": { - "containerPort": { - "type": "integer" - }, - "hostIP": { - "type": "string" - }, - "hostPort": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "protocol": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "readinessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "resizePolicy": { - "items": { - "additionalProperties": false, - "properties": { - "resourceName": { - "type": "string" - }, - "restartPolicy": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "resources": { - "additionalProperties": false, - "properties": { - "claims": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "limits": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "requests": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - } - }, - "type": "object" - }, - "restartPolicy": { - "type": "string" - }, - "securityContext": { - "additionalProperties": false, - "properties": { - "allowPrivilegeEscalation": { - "type": "boolean" - }, - "appArmorProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "capabilities": { - "additionalProperties": false, - "properties": { - "add": { - "items": { - "type": "string" - }, - "type": "array" - }, - "drop": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "privileged": { - "type": "boolean" - }, - "procMount": { - "type": "string" - }, - "readOnlyRootFilesystem": { - "type": "boolean" - }, - "runAsGroup": { - "type": "integer" - }, - "runAsNonRoot": { - "type": "boolean" - }, - "runAsUser": { - "type": "integer" - }, - "seLinuxOptions": { - "additionalProperties": false, - "properties": { - "level": { - "type": "string" - }, - "role": { - "type": "string" - }, - "type": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "seccompProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "windowsOptions": { - "additionalProperties": false, - "properties": { - "gmsaCredentialSpec": { - "type": "string" - }, - "gmsaCredentialSpecName": { - "type": "string" - }, - "hostProcess": { - "type": "boolean" - }, - "runAsUserName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "startupProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "stdin": { - "type": "boolean" - }, - "stdinOnce": { - "type": "boolean" - }, - "terminationMessagePath": { - "type": "string" - }, - "terminationMessagePolicy": { - "type": "string" - }, - "tty": { - "type": "boolean" - }, - "volumeDevices": { - "items": { - "additionalProperties": false, - "properties": { - "devicePath": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "volumeMounts": { - "items": { - "additionalProperties": false, - "properties": { - "mountPath": { - "type": "string" - }, - "mountPropagation": { - "type": "string" - }, - "name": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "recursiveReadOnly": { - "type": "string" - }, - "subPath": { - "type": "string" - }, - "subPathExpr": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "workingDir": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "dnsConfig": { - "additionalProperties": false, - "properties": { - "nameservers": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "options": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "searches": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "dnsPolicy": { - "type": "string" - }, - "enableServiceLinks": { - "type": "boolean" - }, - "ephemeralContainers": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "args": { - "items": { - "type": "string" - }, - "type": "array" - }, - "command": { - "items": { - "type": "string" - }, - "type": "array" - }, - "env": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "valueFrom": { - "additionalProperties": false, - "properties": { - "configMapKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - }, - "secretKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "envFrom": { - "items": { - "additionalProperties": false, - "properties": { - "configMapRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "prefix": { - "type": "string" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "image": { - "type": "string" - }, - "imagePullPolicy": { - "type": "string" - }, - "lifecycle": { - "additionalProperties": false, - "properties": { - "postStart": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "preStop": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "livenessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "ports": { - "items": { - "additionalProperties": false, - "properties": { - "containerPort": { - "type": "integer" - }, - "hostIP": { - "type": "string" - }, - "hostPort": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "protocol": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "readinessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "resizePolicy": { - "items": { - "additionalProperties": false, - "properties": { - "resourceName": { - "type": "string" - }, - "restartPolicy": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "resources": { - "additionalProperties": false, - "properties": { - "claims": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "limits": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "requests": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - } - }, - "type": "object" - }, - "restartPolicy": { - "type": "string" - }, - "securityContext": { - "additionalProperties": false, - "properties": { - "allowPrivilegeEscalation": { - "type": "boolean" - }, - "appArmorProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "capabilities": { - "additionalProperties": false, - "properties": { - "add": { - "items": { - "type": "string" - }, - "type": "array" - }, - "drop": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "privileged": { - "type": "boolean" - }, - "procMount": { - "type": "string" - }, - "readOnlyRootFilesystem": { - "type": "boolean" - }, - "runAsGroup": { - "type": "integer" - }, - "runAsNonRoot": { - "type": "boolean" - }, - "runAsUser": { - "type": "integer" - }, - "seLinuxOptions": { - "additionalProperties": false, - "properties": { - "level": { - "type": "string" - }, - "role": { - "type": "string" - }, - "type": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "seccompProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "windowsOptions": { - "additionalProperties": false, - "properties": { - "gmsaCredentialSpec": { - "type": "string" - }, - "gmsaCredentialSpecName": { - "type": "string" - }, - "hostProcess": { - "type": "boolean" - }, - "runAsUserName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "startupProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "stdin": { - "type": "boolean" - }, - "stdinOnce": { - "type": "boolean" - }, - "targetContainerName": { - "type": "string" - }, - "terminationMessagePath": { - "type": "string" - }, - "terminationMessagePolicy": { - "type": "string" - }, - "tty": { - "type": "boolean" - }, - "volumeDevices": { - "items": { - "additionalProperties": false, - "properties": { - "devicePath": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "volumeMounts": { - "items": { - "additionalProperties": false, - "properties": { - "mountPath": { - "type": "string" - }, - "mountPropagation": { - "type": "string" - }, - "name": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "recursiveReadOnly": { - "type": "string" - }, - "subPath": { - "type": "string" - }, - "subPathExpr": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "workingDir": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "hostAliases": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "hostnames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ip": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "hostIPC": { - "type": "boolean" - }, - "hostNetwork": { - "type": "boolean" - }, - "hostPID": { - "type": "boolean" - }, - "hostUsers": { - "type": "boolean" - }, - "hostname": { - "type": "string" - }, - "imagePullSecrets": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "initContainers": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "args": { - "items": { - "type": "string" - }, - "type": "array" - }, - "command": { - "items": { - "type": "string" - }, - "type": "array" - }, - "env": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "valueFrom": { - "additionalProperties": false, - "properties": { - "configMapKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - }, - "secretKeyRef": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "envFrom": { - "items": { - "additionalProperties": false, - "properties": { - "configMapRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "prefix": { - "type": "string" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "image": { - "type": "string" - }, - "imagePullPolicy": { - "type": "string" - }, - "lifecycle": { - "additionalProperties": false, - "properties": { - "postStart": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "preStop": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "sleep": { - "additionalProperties": false, - "properties": { - "seconds": { - "type": "integer" - } - }, - "type": "object" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "livenessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "ports": { - "items": { - "additionalProperties": false, - "properties": { - "containerPort": { - "type": "integer" - }, - "hostIP": { - "type": "string" - }, - "hostPort": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "protocol": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "readinessProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "resizePolicy": { - "items": { - "additionalProperties": false, - "properties": { - "resourceName": { - "type": "string" - }, - "restartPolicy": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "resources": { - "additionalProperties": false, - "properties": { - "claims": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "limits": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "requests": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - } - }, - "type": "object" - }, - "restartPolicy": { - "type": "string" - }, - "securityContext": { - "additionalProperties": false, - "properties": { - "allowPrivilegeEscalation": { - "type": "boolean" - }, - "appArmorProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "capabilities": { - "additionalProperties": false, - "properties": { - "add": { - "items": { - "type": "string" - }, - "type": "array" - }, - "drop": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "privileged": { - "type": "boolean" - }, - "procMount": { - "type": "string" - }, - "readOnlyRootFilesystem": { - "type": "boolean" - }, - "runAsGroup": { - "type": "integer" - }, - "runAsNonRoot": { - "type": "boolean" - }, - "runAsUser": { - "type": "integer" - }, - "seLinuxOptions": { - "additionalProperties": false, - "properties": { - "level": { - "type": "string" - }, - "role": { - "type": "string" - }, - "type": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "seccompProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "windowsOptions": { - "additionalProperties": false, - "properties": { - "gmsaCredentialSpec": { - "type": "string" - }, - "gmsaCredentialSpecName": { - "type": "string" - }, - "hostProcess": { - "type": "boolean" - }, - "runAsUserName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "startupProbe": { - "additionalProperties": false, - "properties": { - "exec": { - "additionalProperties": false, - "properties": { - "command": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "failureThreshold": { - "type": "integer" - }, - "grpc": { - "additionalProperties": false, - "properties": { - "port": { - "type": "integer" - }, - "service": { - "type": "string" - } - }, - "type": "object" - }, - "httpGet": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "httpHeaders": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "scheme": { - "type": "string" - } - }, - "type": "object" - }, - "initialDelaySeconds": { - "type": "integer" - }, - "periodSeconds": { - "type": "integer" - }, - "successThreshold": { - "type": "integer" - }, - "tcpSocket": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "type": "object" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "timeoutSeconds": { - "type": "integer" - } - }, - "type": "object" - }, - "stdin": { - "type": "boolean" - }, - "stdinOnce": { - "type": "boolean" - }, - "terminationMessagePath": { - "type": "string" - }, - "terminationMessagePolicy": { - "type": "string" - }, - "tty": { - "type": "boolean" - }, - "volumeDevices": { - "items": { - "additionalProperties": false, - "properties": { - "devicePath": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "volumeMounts": { - "items": { - "additionalProperties": false, - "properties": { - "mountPath": { - "type": "string" - }, - "mountPropagation": { - "type": "string" - }, - "name": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "recursiveReadOnly": { - "type": "string" - }, - "subPath": { - "type": "string" - }, - "subPathExpr": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "workingDir": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "nodeName": { - "type": "string" - }, - "nodeSelector": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "os": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "overhead": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "preemptionPolicy": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "priorityClassName": { - "type": "string" - }, - "readinessGates": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "conditionType": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "resourceClaims": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "source": { - "additionalProperties": false, - "properties": { - "resourceClaimName": { - "type": "string" - }, - "resourceClaimTemplateName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "restartPolicy": { - "type": "string" - }, - "runtimeClassName": { - "type": "string" - }, - "schedulerName": { - "type": "string" - }, - "schedulingGates": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "securityContext": { - "additionalProperties": false, - "properties": { - "appArmorProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "fsGroup": { - "type": "integer" - }, - "fsGroupChangePolicy": { - "enum": [ - "OnRootMismatch", - "Always" - ], - "type": "string" - }, - "runAsGroup": { - "type": "integer" - }, - "runAsNonRoot": { - "type": "boolean" - }, - "runAsUser": { - "type": "integer" - }, - "seLinuxOptions": { - "additionalProperties": false, - "properties": { - "level": { - "type": "string" - }, - "role": { - "type": "string" - }, - "type": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "seccompProfile": { - "additionalProperties": false, - "properties": { - "localhostProfile": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "supplementalGroups": { - "oneOf": [ - { - "items": { - "type": "integer" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "sysctls": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "windowsOptions": { - "additionalProperties": false, - "properties": { - "gmsaCredentialSpec": { - "type": "string" - }, - "gmsaCredentialSpecName": { - "type": "string" - }, - "hostProcess": { - "type": "boolean" - }, - "runAsUserName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "serviceAccount": { - "type": "string" - }, - "serviceAccountName": { - "type": "string" - }, - "setHostnameAsFQDN": { - "type": "boolean" - }, - "shareProcessNamespace": { - "type": "boolean" - }, - "subdomain": { - "type": "string" - }, - "terminationGracePeriodSeconds": { - "type": "integer" - }, - "tolerations": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "effect": { - "type": "string" - }, - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "tolerationSeconds": { - "type": "integer" - }, - "value": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "topologySpreadConstraints": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "matchLabelKeys": { - "items": { - "type": "string" - }, - "type": "array" - }, - "maxSkew": { - "type": "integer" - }, - "minDomains": { - "type": "integer" - }, - "nodeAffinityPolicy": { - "type": "string" - }, - "nodeTaintsPolicy": { - "type": "string" - }, - "topologyKey": { - "type": "string" - }, - "whenUnsatisfiable": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "volumes": { - "oneOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "awsElasticBlockStore": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "partition": { - "type": "integer" - }, - "readOnly": { - "type": "boolean" - }, - "volumeID": { - "type": "string" - } - }, - "type": "object" - }, - "azureDisk": { - "additionalProperties": false, - "properties": { - "cachingMode": { - "type": "string" - }, - "diskName": { - "type": "string" - }, - "diskURI": { - "type": "string" - }, - "fsType": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - } - }, - "type": "object" - }, - "azureFile": { - "additionalProperties": false, - "properties": { - "readOnly": { - "type": "boolean" - }, - "secretName": { - "type": "string" - }, - "shareName": { - "type": "string" - } - }, - "type": "object" - }, - "cephfs": { - "additionalProperties": false, - "properties": { - "monitors": { - "items": { - "type": "string" - }, - "type": "array" - }, - "path": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretFile": { - "type": "string" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "cinder": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "volumeID": { - "type": "string" - } - }, - "type": "object" - }, - "configMap": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "type": "integer" - }, - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "csi": { - "additionalProperties": false, - "properties": { - "driver": { - "type": "string" - }, - "fsType": { - "type": "string" - }, - "nodePublishSecretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "readOnly": { - "type": "boolean" - }, - "volumeAttributes": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "downwardAPI": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "type": "integer" - }, - "items": { - "items": { - "additionalProperties": false, - "properties": { - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "emptyDir": { - "additionalProperties": false, - "properties": { - "medium": { - "type": "string" - }, - "sizeLimit": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - } - }, - "type": "object" - }, - "ephemeral": { - "additionalProperties": false, - "properties": { - "volumeClaimTemplate": { - "additionalProperties": false, - "properties": { - "metadata": { - "additionalProperties": false, - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "creationTimestamp": { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - "deletionGracePeriodSeconds": { - "type": "integer" - }, - "deletionTimestamp": { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - "finalizers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "generateName": { - "type": "string" - }, - "generation": { - "type": "integer" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "namespace": { - "type": "string" - }, - "ownerReferences": { - "items": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "blockOwnerDeletion": { - "type": "boolean" - }, - "controller": { - "type": "boolean" - }, - "kind": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uid": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "resourceVersion": { - "type": "string" - }, - "uid": { - "type": "string" - } - }, - "type": "object" - }, - "spec": { - "additionalProperties": false, - "properties": { - "accessModes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "dataSource": { - "additionalProperties": false, - "properties": { - "apiGroup": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "dataSourceRef": { - "additionalProperties": false, - "properties": { - "apiGroup": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "name": { - "type": "string" - }, - "namespace": { - "type": "string" - } - }, - "type": "object" - }, - "resources": { - "additionalProperties": false, - "properties": { - "limits": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - }, - "requests": { - "additionalProperties": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "type": "object" - } - }, - "type": "object" - }, - "selector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "storageClassName": { - "type": "string" - }, - "volumeAttributesClassName": { - "type": "string" - }, - "volumeMode": { - "type": "string" - }, - "volumeName": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "fc": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "lun": { - "type": "integer" - }, - "readOnly": { - "type": "boolean" - }, - "targetWWNs": { - "items": { - "type": "string" - }, - "type": "array" - }, - "wwids": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "flexVolume": { - "additionalProperties": false, - "properties": { - "driver": { - "type": "string" - }, - "fsType": { - "type": "string" - }, - "options": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "flocker": { - "additionalProperties": false, - "properties": { - "datasetName": { - "type": "string" - }, - "datasetUUID": { - "type": "string" - } - }, - "type": "object" - }, - "gcePersistentDisk": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "partition": { - "type": "integer" - }, - "pdName": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - } - }, - "type": "object" - }, - "gitRepo": { - "additionalProperties": false, - "properties": { - "directory": { - "type": "string" - }, - "repository": { - "type": "string" - }, - "revision": { - "type": "string" - } - }, - "type": "object" - }, - "glusterfs": { - "additionalProperties": false, - "properties": { - "endpoints": { - "type": "string" - }, - "path": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - } - }, - "type": "object" - }, - "hostPath": { - "additionalProperties": false, - "properties": { - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "iscsi": { - "additionalProperties": false, - "properties": { - "chapAuthDiscovery": { - "type": "boolean" - }, - "chapAuthSession": { - "type": "boolean" - }, - "fsType": { - "type": "string" - }, - "initiatorName": { - "type": "string" - }, - "iqn": { - "type": "string" - }, - "iscsiInterface": { - "type": "string" - }, - "lun": { - "type": "integer" - }, - "portals": { - "items": { - "type": "string" - }, - "type": "array" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "targetPortal": { - "type": "string" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "nfs": { - "additionalProperties": false, - "properties": { - "path": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "server": { - "type": "string" - } - }, - "type": "object" - }, - "persistentVolumeClaim": { - "additionalProperties": false, - "properties": { - "claimName": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - } - }, - "type": "object" - }, - "photonPersistentDisk": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "pdID": { - "type": "string" - } - }, - "type": "object" - }, - "portworxVolume": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "volumeID": { - "type": "string" - } - }, - "type": "object" - }, - "projected": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "type": "integer" - }, - "sources": { - "items": { - "additionalProperties": false, - "properties": { - "clusterTrustBundle": { - "additionalProperties": false, - "properties": { - "labelSelector": { - "additionalProperties": false, - "properties": { - "matchExpressions": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "matchLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "path": { - "type": "string" - }, - "signerName": { - "type": "string" - } - }, - "type": "object" - }, - "configMap": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "downwardAPI": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "fieldRef": { - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string" - }, - "fieldPath": { - "type": "string" - } - }, - "type": "object" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - }, - "resourceFieldRef": { - "additionalProperties": false, - "properties": { - "containerName": { - "type": "string" - }, - "divisor": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "resource": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "secret": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - } - }, - "type": "object" - }, - "serviceAccountToken": { - "additionalProperties": false, - "properties": { - "audience": { - "type": "string" - }, - "expirationSeconds": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "quobyte": { - "additionalProperties": false, - "properties": { - "group": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "registry": { - "type": "string" - }, - "tenant": { - "type": "string" - }, - "user": { - "type": "string" - }, - "volume": { - "type": "string" - } - }, - "type": "object" - }, - "rbd": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "image": { - "type": "string" - }, - "keyring": { - "type": "string" - }, - "monitors": { - "items": { - "type": "string" - }, - "type": "array" - }, - "pool": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "user": { - "type": "string" - } - }, - "type": "object" - }, - "scaleIO": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "gateway": { - "type": "string" - }, - "protectionDomain": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "sslEnabled": { - "type": "boolean" - }, - "storageMode": { - "type": "string" - }, - "storagePool": { - "type": "string" - }, - "system": { - "type": "string" - }, - "volumeName": { - "type": "string" - } - }, - "type": "object" - }, - "secret": { - "additionalProperties": false, - "properties": { - "defaultMode": { - "type": "integer" - }, - "items": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "mode": { - "type": "integer" - }, - "path": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "optional": { - "type": "boolean" - }, - "secretName": { - "type": "string" - } - }, - "type": "object" - }, - "storageos": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "readOnly": { - "type": "boolean" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "volumeName": { - "type": "string" - }, - "volumeNamespace": { - "type": "string" - } - }, - "type": "object" - }, - "vsphereVolume": { - "additionalProperties": false, - "properties": { - "fsType": { - "type": "string" - }, - "storagePolicyID": { - "type": "string" - }, - "storagePolicyName": { - "type": "string" - }, - "volumePath": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "required": [ - "labels", - "annotations" - ], - "type": "object" - }, - "replicas": { - "type": "integer" - }, - "sideCars": { - "additionalProperties": false, - "properties": { - "brokerDecommissioner": { - "additionalProperties": false, - "properties": { - "decommissionAfter": { - "type": "string" - }, - "decommissionRequeueTimeout": { - "type": "string" - }, - "enabled": { - "type": "boolean" - } - }, - "type": "object" - }, - "configWatcher": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - } - }, - "type": "object" - }, - "controllers": { - "additionalProperties": false, - "properties": { - "createRBAC": { - "type": "boolean" - }, - "enabled": { - "type": "boolean" - }, - "healthProbeAddress": { - "type": "string" - }, - "image": { - "additionalProperties": false, - "properties": { - "repository": { - "description": "container image repository", - "type": "string" - }, - "tag": { - "description": "The container image tag. Use the Redpanda release version. Must be a valid semver prefixed with a 'v'.", - "type": "string" - } - }, - "required": [ - "repository", - "tag" - ], - "type": "object" - }, - "metricsAddress": { - "type": "string" - }, - "pprofAddress": { - "type": "string" - }, - "run": { - "oneOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "image": { - "additionalProperties": false, - "properties": { - "repository": { - "description": "container image repository", - "type": "string" - }, - "tag": { - "description": "The container image tag. Use the Redpanda release version. Must be a valid semver prefixed with a 'v'.", - "type": "string" - } - }, - "required": [ - "repository", - "tag" - ], - "type": "object" - }, - "pvcUnbinder": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "unbindAfter": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "updateStrategy": { - "additionalProperties": false, - "properties": { - "rollingUpdate": { - "additionalProperties": false, - "properties": { - "maxUnavailable": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "partition": { - "type": "integer" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "additionalSelectorLabels", - "replicas", - "updateStrategy", - "podTemplate", - "budget", - "podAntiAffinity", - "sideCars" - ], - "type": "object" - }, - "storage": { - "additionalProperties": false, - "properties": { - "hostPath": { - "type": "string" - }, - "persistentVolume": { - "additionalProperties": false, - "deprecated": true, - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "nameOverwrite": { - "type": "string" - }, - "size": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "storageClass": { - "type": "string" - } - }, - "required": [ - "annotations", - "enabled", - "labels", - "size", - "storageClass" - ], - "type": "object" - }, - "tiered": { - "additionalProperties": false, - "properties": { - "config": { - "properties": { - "cloud_storage_access_key": { - "type": "string" - }, - "cloud_storage_api_endpoint": { - "type": "string" - }, - "cloud_storage_api_endpoint_port": { - "type": "integer" - }, - "cloud_storage_azure_adls_endpoint": { - "type": "string" - }, - "cloud_storage_azure_adls_port": { - "type": "integer" - }, - "cloud_storage_bucket": { - "type": "string" - }, - "cloud_storage_cache_check_interval": { - "type": "integer" - }, - "cloud_storage_cache_directory": { - "type": "string" - }, - "cloud_storage_cache_size": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "cloud_storage_credentials_source": { - "pattern": "^(config_file|aws_instance_metadata|sts|gcp_instance_metadata)$", - "type": "string" - }, - "cloud_storage_disable_tls": { - "type": "boolean" - }, - "cloud_storage_enable_remote_read": { - "type": "boolean" - }, - "cloud_storage_enable_remote_write": { - "type": "boolean" - }, - "cloud_storage_enabled": { - "type": "boolean" - }, - "cloud_storage_initial_backoff_ms": { - "type": "integer" - }, - "cloud_storage_manifest_upload_timeout_ms": { - "type": "integer" - }, - "cloud_storage_max_connection_idle_time_ms": { - "type": "integer" - }, - "cloud_storage_max_connections": { - "type": "integer" - }, - "cloud_storage_reconciliation_interval_ms": { - "type": "integer" - }, - "cloud_storage_region": { - "type": "string" - }, - "cloud_storage_secret_key": { - "type": "string" - }, - "cloud_storage_segment_max_upload_interval_sec": { - "type": "integer" - }, - "cloud_storage_segment_upload_timeout_ms": { - "type": "integer" - }, - "cloud_storage_trust_file": { - "type": "string" - }, - "cloud_storage_upload_ctrl_d_coeff": { - "type": "integer" - }, - "cloud_storage_upload_ctrl_max_shares": { - "type": "integer" - }, - "cloud_storage_upload_ctrl_min_shares": { - "type": "integer" - }, - "cloud_storage_upload_ctrl_p_coeff": { - "type": "integer" - }, - "cloud_storage_upload_ctrl_update_interval_ms": { - "type": "integer" - } - }, - "required": [ - "cloud_storage_enabled" - ], - "type": "object" - }, - "credentialsSecretRef": { - "additionalProperties": false, - "properties": { - "accessKey": { - "additionalProperties": false, - "properties": { - "configurationKey": { - "type": "string" - }, - "key": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "secretKey": { - "additionalProperties": false, - "properties": { - "configurationKey": { - "type": "string" - }, - "key": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "hostPath": { - "type": "string" - }, - "mountType": { - "pattern": "^(none|hostPath|emptyDir|persistentVolume)$", - "type": "string" - }, - "persistentVolume": { - "additionalProperties": false, - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "nameOverwrite": { - "type": "string" - }, - "size": { - "type": "string" - }, - "storageClass": { - "type": "string" - } - }, - "required": [ - "annotations", - "labels", - "storageClass" - ], - "type": "object" - } - }, - "required": [ - "mountType" - ], - "type": "object" - }, - "tieredConfig": { - "deprecated": true, - "properties": { - "cloud_storage_access_key": { - "type": "string" - }, - "cloud_storage_api_endpoint": { - "type": "string" - }, - "cloud_storage_api_endpoint_port": { - "type": "integer" - }, - "cloud_storage_azure_adls_endpoint": { - "type": "string" - }, - "cloud_storage_azure_adls_port": { - "type": "integer" - }, - "cloud_storage_bucket": { - "type": "string" - }, - "cloud_storage_cache_check_interval": { - "type": "integer" - }, - "cloud_storage_cache_directory": { - "type": "string" - }, - "cloud_storage_cache_size": { - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^[0-9]+(\\.[0-9]){0,1}(m|k|M|G|T|P|Ki|Mi|Gi|Ti|Pi)?$", - "type": "string" - } - ] - }, - "cloud_storage_credentials_source": { - "pattern": "^(config_file|aws_instance_metadata|sts|gcp_instance_metadata)$", - "type": "string" - }, - "cloud_storage_disable_tls": { - "type": "boolean" - }, - "cloud_storage_enable_remote_read": { - "type": "boolean" - }, - "cloud_storage_enable_remote_write": { - "type": "boolean" - }, - "cloud_storage_enabled": { - "type": "boolean" - }, - "cloud_storage_initial_backoff_ms": { - "type": "integer" - }, - "cloud_storage_manifest_upload_timeout_ms": { - "type": "integer" - }, - "cloud_storage_max_connection_idle_time_ms": { - "type": "integer" - }, - "cloud_storage_max_connections": { - "type": "integer" - }, - "cloud_storage_reconciliation_interval_ms": { - "type": "integer" - }, - "cloud_storage_region": { - "type": "string" - }, - "cloud_storage_secret_key": { - "type": "string" - }, - "cloud_storage_segment_max_upload_interval_sec": { - "type": "integer" - }, - "cloud_storage_segment_upload_timeout_ms": { - "type": "integer" - }, - "cloud_storage_trust_file": { - "type": "string" - }, - "cloud_storage_upload_ctrl_d_coeff": { - "type": "integer" - }, - "cloud_storage_upload_ctrl_max_shares": { - "type": "integer" - }, - "cloud_storage_upload_ctrl_min_shares": { - "type": "integer" - }, - "cloud_storage_upload_ctrl_p_coeff": { - "type": "integer" - }, - "cloud_storage_upload_ctrl_update_interval_ms": { - "type": "integer" - } - }, - "type": "object" - }, - "tieredStorageHostPath": { - "deprecated": true, - "type": "string" - }, - "tieredStoragePersistentVolume": { - "additionalProperties": false, - "deprecated": true, - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "storageClass": { - "type": "string" - } - }, - "required": [ - "annotations", - "enabled", - "labels", - "storageClass" - ], - "type": "object" - } - }, - "required": [ - "hostPath", - "tiered", - "persistentVolume" - ], - "type": "object" - }, - "tests": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - } - }, - "type": "object" - }, - "tls": { - "additionalProperties": false, - "properties": { - "certs": { - "minProperties": 1, - "patternProperties": { - "^[A-Za-z_][A-Za-z0-9_]*$": { - "additionalProperties": false, - "properties": { - "applyInternalDNSNames": { - "type": "boolean" - }, - "caEnabled": { - "type": "boolean" - }, - "clientSecretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "duration": { - "pattern": ".*[smh]$", - "type": "string" - }, - "enabled": { - "type": "boolean" - }, - "issuerRef": { - "additionalProperties": false, - "properties": { - "group": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "secretRef": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "caEnabled" - ], - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled", - "certs" - ], - "type": "object" - }, - "tuning": { - "additionalProperties": false, - "properties": { - "ballast_file_path": { - "type": "string" - }, - "ballast_file_size": { - "type": "string" - }, - "tune_aio_events": { - "type": "boolean" - }, - "tune_ballast_file": { - "type": "boolean" - }, - "tune_clocksource": { - "type": "boolean" - }, - "well_known_io": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "image" - ], - "type": "object" -} diff --git a/charts/redpanda/values.yaml b/charts/redpanda/values.yaml deleted file mode 100644 index 8191fe3c22..0000000000 --- a/charts/redpanda/values.yaml +++ /dev/null @@ -1,1054 +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. - -# This file contains values for variables referenced from yaml files in the templates directory. -# -# For further information on Helm templating see the documentation at: -# https://helm.sh/docs/chart_template_guide/values_files/ - -# -# >>> This chart requires Helm version 3.6.0 or greater <<< -# - -# Common settings -# -# -- Override `redpanda.name` template. -nameOverride: "" -# -- Override `redpanda.fullname` template. -fullnameOverride: "" -# -- Default Kubernetes cluster domain. -clusterDomain: cluster.local. -# -- Additional labels to add to all Kubernetes objects. -# For example, `my.k8s.service: redpanda`. -commonLabels: {} - -# -- Redpanda Docker image settings. -image: - # -- Docker repository from which to pull the Redpanda Docker image. - repository: docker.redpanda.com/redpandadata/redpanda - - # -- The Redpanda version. - # See DockerHub for: - # [All stable versions](https://hub.docker.com/r/redpandadata/redpanda/tags) - # and [all unstable versions](https://hub.docker.com/r/redpandadata/redpanda-unstable/tags). - # @default -- `Chart.appVersion`. - tag: "" - -podTemplate: - # -- Labels to apply (or overwrite the default) to all Pods of this Chart. - labels: {} - # -- Annotations to apply (or overwrite the default) to all Pods of this Chart. - annotations: {} - # -- A subset of Kubernetes' PodSpec type that will be merged into the - # PodSpec of all Pods for this Chart. See [Merge Semantics](#merging-semantics) for details. - spec: - # -- Pull secrets may be used to provide credentials to image repositories - # See the [Kubernetes documentation](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/). - imagePullSecrets: [] - - securityContext: - fsGroup: 101 - runAsUser: 101 - fsGroupChangePolicy: OnRootMismatch - -# -- Redpanda Service settings. -# service: -# -- set service.name to override the default service name -# name: redpanda -# -- internal Service -# internal: -# -- add annotations to the internal Service -# annotations: {} -# -# -- eg. for a bare metal install using external-dns -# annotations: -# "external-dns.alpha.kubernetes.io/hostname": redpanda.domain.dom -# "external-dns.alpha.kubernetes.io/endpoints-type": HostIP - - -# -- Audit logging for a redpanda cluster, must have enabled sasl and have one kafka listener supporting sasl authentication -# for audit logging to work. Note this feature is only available for redpanda versions >= v23.3.0. -auditLogging: - # -- Enable or disable audit logging, for production clusters we suggest you enable, - # however, this will only work if you also enable sasl and a listener with sasl enabled. - enabled: false - # -- Kafka listener name, note that it must have `authenticationMethod` set to `sasl`. - # For external listeners, use the external listener name, such as `default`. - listener: internal - # -- Integer value defining the number of partitions used by a newly created audit topic. - partitions: 12 - # -- Event types that should be captured by audit logs, default is [`admin`, `authenticate`, `management`]. - enabledEventTypes: - # -- List of topics to exclude from auditing, default is null. - excludedTopics: - # -- List of principals to exclude from auditing, default is null. - excludedPrincipals: - # -- Defines the number of bytes (in bytes) allocated by the internal audit client for audit messages. - clientMaxBufferSize: 16777216 - # -- In ms, frequency in which per shard audit logs are batched to client for write to audit log. - queueDrainIntervalMs: 500 - # -- Defines the maximum amount of memory used (in bytes) by the audit buffer in each shard. - queueMaxBufferSizePerShard: 1048576 - # -- Defines the replication factor for a newly created audit log topic. This configuration applies - # only to the audit log topic and may be different from the cluster or other topic configurations. - # This cannot be altered for existing audit log topics. Setting this value is optional. If a value is not provided, - # Redpanda will use the `internal_topic_replication_factor cluster` config value. Default is `null` - replicationFactor: - -# -- Enterprise (optional) -# For details, -# see the [License documentation](https://docs.redpanda.com/docs/get-started/licenses/?platform=kubernetes#redpanda-enterprise-edition). -enterprise: - # -- license (optional). - license: "" - # -- Secret name and key where the license key is stored. - licenseSecretRef: ~ - # name: my-secret - # key: key-where-license-is-stored - -# -- Rack Awareness settings. -# For details, -# see the [Rack Awareness documentation](https://docs.redpanda.com/docs/manage/kubernetes/kubernetes-rack-awareness/). -rackAwareness: - # -- When running in multiple racks or availability zones, use a Kubernetes Node - # annotation value as the Redpanda rack value. - # Enabling this requires running with a service account with "get" Node permissions. - # To have the Helm chart configure these permissions, - # set `serviceAccount.create=true` and `rbac.enabled=true`. - enabled: false - # -- The common well-known annotation to use as the rack ID. - # Override this only if you use a custom Node annotation. - nodeAnnotation: topology.kubernetes.io/zone - -# -# -- Redpanda Console settings. -# For a reference of configuration settings, -# see the [Redpanda Console documentation](https://docs.redpanda.com/docs/reference/console/config/). -console: - enabled: true - configmap: - create: false - secret: - create: false - deployment: - create: false - config: {} - -# -- Authentication settings. -# For details, -# see the [SASL documentation](https://docs.redpanda.com/docs/manage/kubernetes/security/sasl-kubernetes/). -auth: - sasl: - # -- Enable SASL authentication. - # If you enable SASL authentication, you must provide a Secret in `auth.sasl.secretRef`. - enabled: false - # -- The authentication mechanism to use for the superuser. Options are `SCRAM-SHA-256` and `SCRAM-SHA-512`. - mechanism: SCRAM-SHA-512 - # -- A Secret that contains your superuser credentials. - # For details, - # see the [SASL documentation](https://docs.redpanda.com/docs/manage/kubernetes/security/sasl-kubernetes/#use-secrets). - secretRef: "redpanda-users" - # -- Optional list of superusers. - # These superusers will be created in the Secret whose name is defined in `auth.sasl.secretRef`. - # If this list is empty, - # the Secret in `auth.sasl.secretRef` must already exist in the cluster before you deploy the chart. - # Uncomment the sample list if you wish to try adding sample sasl users or override to use your own. - users: [] - # - name: admin - # password: change-me - # mechanism: SCRAM-SHA-512 - # -- Details about how to create the bootstrap user for the cluster. - # The secretKeyRef is optionally specified. If it is specified, the - # chart will use a password written to that secret when creating the - # "kubernetes-controller" bootstrap user. If it is unspecified, then - # the secret will be generated and stored in the secret - # "releasename"-bootstrap-user, with the key "password". - bootstrapUser: - # -- The name used to override the name of the bootstrap user. If unspecified the bootstrap user is named - # "kubernetes-controller". This should only be specified when SASL authentication is enabled (usually installation) - # and should not be changed afterward. - # name: my-user - # -- The authentication mechanism to use for the bootstrap user. Options are `SCRAM-SHA-256` and `SCRAM-SHA-512`. - mechanism: SCRAM-SHA-256 - # secretKeyRef: - # name: my-password - # key: my-key - -# -- TLS settings. -# For details, see the [TLS documentation](https://docs.redpanda.com/docs/manage/kubernetes/security/kubernetes-tls/). -tls: - # -- Enable TLS globally for all listeners. - # Each listener must include a Certificate name in its `.tls` object. - # To allow you to enable TLS for individual listeners, - # Certificates in `auth.tls.certs` are always loaded, even if `tls.enabled` is `false`. - # See `listeners..tls.enabled`. - enabled: true - # -- List all Certificates here, - # then you can reference a specific Certificate's name - # in each listener's `listeners..tls.cert` setting. - certs: - # -- This key is the Certificate name. - # To apply the Certificate to a specific listener, - # reference the Certificate's name in `listeners..tls.cert`. - default: - # -- To use a custom pre-installed Issuer, - # add its name and kind to the `issuerRef` object. - # issuerRef: - # name: redpanda-default-root-issuer - # kind: Issuer # Can be Issuer or ClusterIssuer - # -- To use a secret with custom tls files, - # secretRef: - # name: my-tls-secret - # -- Indicates whether or not the Secret holding this certificate - # includes a `ca.crt` key. When `true`, chart managed clients, such as - # rpk, will use `ca.crt` for certificate verification and listeners with - # `require_client_auth` and no explicit `truststore` will use `ca.crt` as - # their `truststore_file` for verification of client certificates. When - # `false`, chart managed clients will use `tls.crt` for certificate - # verification and listeners with `require_client_auth` and no explicit - # `truststore` will use the container's CA certificates. - caEnabled: true - # duration: 43800h - # if you wish to have Kubernetes internal dns names (IE the headless service of the redpanda StatefulSet) included in `dnsNames` of the certificate even, when supplying an issuer. - # applyInternalDNSNames: false - # -- Example external tls configuration - # uncomment and set the right key to the listeners that require them - # also enable the tls setting for those listeners. - external: - # -- To use a custom pre-installed Issuer, - # add its name and kind to the `issuerRef` object. - # issuerRef: - # name: redpanda-default-root-issuer - # kind: Issuer # Can be Issuer or ClusterIssuer - # -- To use a secret with custom tls files, - # secretRef: - # name: my-tls-secret - # -- Indicates whether or not the Secret holding this certificate - # includes a `ca.crt` key. When `true`, chart managed clients, such as - # rpk, will use `ca.crt` for certificate verification and listeners with - # `require_client_auth` and no explicit `truststore` will use `ca.crt` as - # their `truststore_file` for verification of client certificates. When - # `false`, chart managed clients will use `tls.crt` for certificate - # verification and listeners with `require_client_auth` and no explicit - # `truststore` will use the container's CA certificates. - caEnabled: true - # duration: 43800h - # if you wish to for apply internal dns names to the certificate even when supplying an issuer - # applyInternalDNSNames: false - -# -- External access settings. -# For details, -# see the [Networking and Connectivity documentation](https://docs.redpanda.com/docs/manage/kubernetes/networking/networking-and-connectivity/). -external: - # -- Service allows you to manage the creation of an external kubernetes service object - service: - # -- Enabled if set to false will not create the external service type - # You can still set your cluster with external access but not create the supporting service (NodePort/LoadBalander). - # Set this to false if you rather manage your own service. - enabled: true - # -- Enable external access for each Service. - # You can toggle external access for each listener in - # `listeners..external..enabled`. - enabled: true - # -- External access type. Only `NodePort` and `LoadBalancer` are supported. - # If undefined, then advertised listeners will be configured in Redpanda, - # but the helm chart will not create a Service. - # You must create a Service manually. - # Warning: If you use LoadBalancers, you will likely experience higher latency and increased packet loss. - # NodePort is recommended in cases where latency is a priority. - type: NodePort - # Optional source range for external access. Only applicable when external.type is LoadBalancer - # sourceRanges: [] - # -- Optional domain advertised to external clients - # If specified, then it will be appended to the `external.addresses` values as each broker's advertised address - # domain: local - # Optional list of addresses that the Redpanda brokers advertise. - # Provide one entry for each broker in order of StatefulSet replicas. - # The number of brokers is defined in statefulset.replicas. - # The values can be IP addresses or DNS names. - # If external.domain is set, the domain is appended to these values. - # There is an option to define a single external address for all brokers and leverage - # prefixTemplate as it will be calculated during initContainer execution. - # addresses: - # - redpanda-0 - # - redpanda-1 - # - redpanda-2 - # - # annotations: - # For example: - # cloud.google.com/load-balancer-type: "Internal" - # service.beta.kubernetes.io/aws-load-balancer-type: nlb - # If you enable externalDns, each LoadBalancer service instance - # will be annotated with external-dns hostname - # matching external.addresses + external.domain - # externalDns: - # enabled: true - # prefixTemplate: "" - -# -- Log-level settings. -logging: - # -- Log level - # Valid values (from least to most verbose) are: `warn`, `info`, `debug`, and `trace`. - logLevel: info - # -- Send usage statistics back to Redpanda Data. - # For details, - # see the [stats reporting documentation](https://docs.redpanda.com/docs/cluster-administration/monitoring/#stats-reporting). - usageStats: - # Enable the `rpk.enable_usage_stats` property. - enabled: true - # Your cluster ID (optional) - # clusterId: your-helm-cluster - -# -- Monitoring. -# This will create a ServiceMonitor that can be used by Prometheus-Operator or VictoriaMetrics-Operator to scrape the metrics. -monitoring: - enabled: false - scrapeInterval: 30s - labels: {} - # Enables http2 for scraping metrics for prometheus. Used when Istio's mTLS is enabled and using tlsConfig. - # enableHttp2: true - # tlsConfig: - # caFile: /etc/prom-certs/root-cert.pem - # certFile: /etc/prom-certs/cert-chain.pem - # insecureSkipVerify: true - # keyFile: /etc/prom-certs/key.pem - -# -- Pod resource management. -# @raw -# This section simplifies resource allocation for the redpanda container by -# providing a single location where resources are defined. -# -# Resources may be specified by either setting `resources.cpu` and -# `resources.memory` (the default) or by setting `resources.requests` and -# `resources.limits`. -# -# For details on `resources.cpu` and `resources.memory`, see their respective -# documentation below. -# -# When `resources.limits` and `resources.requests` are set, the redpanda -# container's resources will be set to exactly the provided values. This allows -# users to granularly control limits and requests to best suit their use case. -# For example: `resources.requests.cpu` may be set without setting -# `resources.limits.cpu` to avoid the potential of CPU throttling. -# -# Redpanda's resource related CLI flags will then be calculated as follows: -# * `--smp max(1, floor(coalesce(resources.requests.cpu, resources.limits.cpu)))` -# * `--memory coalesce(resources.requests.memory, resources.limits.memory) * 90%` -# * `--reserve-memory 0` -# * `--overprovisioned coalesce(resources.requests.cpu, resources.limits.cpu) < 1000m` -# -# If neither a request nor a limit is provided for cpu or memory, the -# corresponding flag will be omitted. As a result, setting `resources.limits` -# and `resources.requests` to `{}` will result in redpanda being run without -# `--smp` or `--memory`. (This is not recommended). -# -# If the computed CLI flags are undesirable, they may be overridden by -# specifying the desired value through `statefulset.additionalRedpandaCmdFlags`. -# -# The default values are for a development environment. -# Production-level values and other considerations are documented, -# where those values are different from the default. -# For details, -# see the [Pod resources documentation](https://docs.redpanda.com/docs/manage/kubernetes/manage-resources/). -resources: - # limits: null - # requests: null - # - # -- CPU resources. - # For details, - # see the [Pod resources documentation](https://docs.redpanda.com/docs/manage/kubernetes/manage-resources/#configure-cpu-resources). - cpu: - # -- Redpanda makes use of a thread per core model. - # For details, see this [blog](https://redpanda.com/blog/tpc-buffers). - # For this reason, Redpanda should only be given full cores. - # - # Note: You can increase cores, but decreasing cores is supported only from - # 24.3 Redpanda version. - # - # This setting is equivalent to `--smp`, `resources.requests.cpu`, and `resources.limits.cpu`. - # For production, use `4` or greater. - # - # To maximize efficiency, use the `static` CPU manager policy by specifying an even integer for - # CPU resource requests and limits. This policy gives the Pods running Redpanda brokers - # access to exclusive CPUs on the node. See - # https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/#static-policy. - cores: 1 - # - # -- Overprovisioned means Redpanda won't assume it has all of the provisioned CPU. - # This should be true unless the container has CPU affinity. - # Equivalent to: `--idle-poll-time-us 0 --thread-affinity 0 --poll-aio 0` - # - # If the value of full cores in `resources.cpu.cores` is less than `1`, this - # setting is set to `true`. - # overprovisioned: false - # - # -- Memory resources - # For details, - # see the [Pod resources documentation](https://docs.redpanda.com/docs/manage/kubernetes/manage-resources/#configure-memory-resources). - memory: - # -- Enables memory locking. - # For production, set to `true`. - # enable_memory_locking: false - # - # It is recommended to have at least 2Gi of memory per core for the Redpanda binary. - # This memory is taken from the total memory given to each container. - # The Helm chart allocates 80% of the container's memory to Redpanda, leaving the rest for - # other container processes. - # So at least 2.5Gi per core is recommended in order to ensure Redpanda has a full 2Gi. - # - # These values affect `--memory` and `--reserve-memory` flags passed to Redpanda and the memory - # requests/limits in the StatefulSet. - # Valid suffixes: k, M, G, T, P, Ki, Mi, Gi, Ti, Pi - # To create `Guaranteed` Pod QoS for Redpanda brokers, provide both container max and min values for the container. - # For details, see - # https://kubernetes.io/docs/tasks/configure-pod-container/quality-service-pod/#create-a-pod-that-gets-assigned-a-qos-class-of-guaranteed - # * Every container in the Pod must have a memory limit and a memory request. - # * For every container in the Pod, the memory limit must equal the memory request. - # - container: - # Minimum memory count for each Redpanda broker. - # If omitted, the `min` value is equal to the `max` value (requested resources defaults to limits). - # This setting is equivalent to `resources.requests.memory`. - # For production, use 10Gi or greater. - # min: 2.5Gi - # - # -- Maximum memory count for each Redpanda broker. - # Equivalent to `resources.limits.memory`. - # For production, use `10Gi` or greater. - max: 2.5Gi - # - # This optional `redpanda` object allows you to specify the memory size for both the Redpanda - # process and the Seastar subsystem. - # This section is omitted by default, and memory sizes are calculated automatically - # based on container memory. - # Uncommenting this section and setting memory and reserveMemory values will disable - # automatic calculation. - # - # If you are setting these values manually, follow these guidelines carefully. Incorrect settings can lead to performance degradation, instability, or even data loss. The total memory allocated to a container is determined as the sum of the following two areas: - # - #- Redpanda (including Seastar): Defined by the `--memory` parameter. Includes the memory used by the Redpanda process and the reserved memory allocated for Seastar. A minimum of 2Gi per core is required, and this value typically accounts for ~80% of the container’s total memory. For production, allocate at least 8Gi. - # - # - Operating system (OS): Defined by the `--reserve-memory` parameter. Represents the memory available for the operating system and other processes within the container. - # redpanda: - # Memory for the Redpanda process. - # This must be lower than the container's memory (resources.memory.container.min if provided, otherwise - # resources.memory.container.max). - # Equivalent to --memory. - # For production, use 8Gi or greater. - # memory: 2Gi - # - # Memory reserved for the OS. - # Equivalent to --reserve-memory. - # reserveMemory: 200Mi - -# -- Persistence settings. -# For details, see the [storage documentation](https://docs.redpanda.com/docs/manage/kubernetes/configure-storage/). -storage: - # -- Absolute path on the host to store Redpanda's data. - # If unspecified, then an `emptyDir` volume is used. - # If specified but `persistentVolume.enabled` is true, `storage.hostPath` has no effect. - hostPath: "" - # -- If `persistentVolume.enabled` is true, a PersistentVolumeClaim is created and - # used to store Redpanda's data. Otherwise, `storage.hostPath` is used. - persistentVolume: - enabled: true - size: 20Gi - # -- To disable dynamic provisioning, set to `-`. - # If undefined or empty (default), then no storageClassName spec is set, - # and the default dynamic provisioner is chosen (gp2 on AWS, standard on - # GKE, AWS & OpenStack). - storageClass: "" - # -- Additional labels to apply to the created PersistentVolumeClaims. - labels: {} - # -- Additional annotations to apply to the created PersistentVolumeClaims. - annotations: {} - # -- Option to change volume claim template name for tiered storage persistent volume - # if tiered.mountType is set to `persistentVolume` - nameOverwrite: "" - # - # Settings for the Tiered Storage cache. - # For details, - # see the [Tiered Storage documentation](https://docs.redpanda.com/docs/manage/kubernetes/tiered-storage/#caching). - - tiered: - # mountType can be one of: - # - none: does not mount a volume. Tiered storage will use the data directory. - # - hostPath: will allow you to chose a path on the Node the pod is running on - # - emptyDir: will mount a fresh empty directory every time the pod starts - # - persistentVolume: creates and mounts a PersistentVolumeClaim - mountType: none - - # For the maximum size of the disk cache, see `tieredConfig.cloud_storage_cache_size`. - # - # -- Absolute path on the host to store Redpanda's Tiered Storage cache. - hostPath: "" - # PersistentVolumeClaim to be created for the Tiered Storage cache and - # used to store data retrieved from cloud storage, such as S3). - persistentVolume: - # -- To disable dynamic provisioning, set to "-". - # If undefined or empty (default), then no storageClassName spec is set, - # and the default dynamic provisioner is chosen (gp2 on AWS, standard on - # GKE, AWS & OpenStack). - storageClass: "" - # -- Additional labels to apply to the created PersistentVolumeClaims. - labels: {} - # -- Additional annotations to apply to the created PersistentVolumeClaims. - annotations: {} - - # credentialsSecretRef can be used to set `cloud_storage_secret_key` and/or `cloud_storage_access_key` from - # referenced Kubernetes Secret - credentialsSecretRef: - accessKey: - # https://docs.redpanda.com/current/reference/object-storage-properties/#cloud_storage_access_key - configurationKey: cloud_storage_access_key - # name: - # key: - secretKey: - # https://docs.redpanda.com/current/reference/object-storage-properties/#cloud_storage_secret_key - # or - # https://docs.redpanda.com/current/reference/object-storage-properties/#cloud_storage_azure_shared_key - configurationKey: cloud_storage_secret_key - # name: - # key - # -- DEPRECATED `configurationKey`, `name` and `key`. Please use `accessKey` and `secretKey` - # configurationKey: cloud_storage_secret_key - # name: - # key: - # - # -- Tiered Storage settings - # Requires `enterprise.licenseKey` or `enterprised.licenseSecretRef` - # For details, see the [Tiered Storage documentation](https://docs.redpanda.com/docs/manage/kubernetes/tiered-storage/). - # For a list of properties, see [Object Storage Properties](https://docs.redpanda.com/current/reference/properties/object-storage-properties/). - config: - # -- Global flag that enables Tiered Storage if a license key is provided. - # See the [property reference documentation](https://docs.redpanda.com/docs/reference/object-storage-properties/#cloud_storage_enabled). - cloud_storage_enabled: false - # -- Cluster level default remote write configuration for new topics. - # See the [property reference documentation](https://docs.redpanda.com/docs/reference/object-storage-properties/#cloud_storage_enable_remote_write). - cloud_storage_enable_remote_write: true - # -- Cluster level default remote read configuration for new topics. - # See the [property reference documentation](https://docs.redpanda.com/docs/reference/object-storage-properties/#cloud_storage_enable_remote_read). - cloud_storage_enable_remote_read: true - # -- Maximum size of the disk cache used by Tiered Storage. - # Default is 20 GiB. - # See the [property reference documentation](https://docs.redpanda.com/docs/reference/object-storage-properties/#cloud_storage_cache_size). - cloud_storage_cache_size: 5368709120 - -post_install_job: - enabled: true - # Resource requests and limits for the post-install batch job - # resources: - # requests: - # cpu: 1 - # memory: 512Mi - # limits: - # cpu: 2 - # memory: 1024Mi - # labels: {} - # annotations: {} - - podTemplate: - # -- Labels to apply (or overwrite the default) to the Pods of this Job. - labels: {} - # -- Annotations to apply (or overwrite the default) to the Pods of this Job. - annotations: {} - # -- A subset of Kubernetes' PodSpec type that will be merged into the - # final PodSpec. See [Merge Semantics](#merging-semantics) for details. - spec: - securityContext: {} - containers: - - name: post-install - securityContext: {} - env: [] - -statefulset: - # -- Number of Redpanda brokers (Redpanda Data recommends setting this to the number of worker nodes in the cluster) - replicas: 3 - updateStrategy: - type: RollingUpdate - budget: - maxUnavailable: 1 - # -- Additional labels to be added to statefulset label selector. - # For example, `my.k8s.service: redpanda`. - additionalSelectorLabels: {} - podTemplate: - # -- Additional labels to apply to the Pods of the StatefulSet. - labels: {} - # -- Additional annotations to apply to the Pods of the StatefulSet. - annotations: {} - # -- A subset of Kubernetes' PodSpec type that will be merged into the - # final PodSpec. See [Merge Semantics](#merging-semantics) for details. - spec: - securityContext: {} - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - topologyKey: kubernetes.io/hostname - labelSelector: - matchLabels: - "app.kubernetes.io/component": '{{ include "redpanda.name" . }}-statefulset' - "app.kubernetes.io/instance": '{{ .Release.Name }}' - "app.kubernetes.io/name": '{{ include "redpanda.name" . }}' - - # -- Termination grace period in seconds is time required to execute preStop hook - # which puts particular Redpanda Pod (process/container) into maintenance mode. - # Before settle down on particular value please put Redpanda under load and perform - # rolling upgrade or rolling restart. That value needs to accommodate two processes: - # * preStop hook needs to put Redpanda into maintenance mode - # * after preStop hook Redpanda needs to handle gracefully SIGTERM signal - # - # Both processes are executed sequentially where preStop hook has hard deadline in the - # middle of terminationGracePeriodSeconds. - # - # REF: - # https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#hook-handler-execution - # https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination - terminationGracePeriodSeconds: 90 - # -- Node selection constraints for scheduling Pods of this StatefulSet. - # These constraints override the global `nodeSelector` value. - # For details, - # see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector). - nodeSelector: {} - # -- PriorityClassName given to Pods of this StatefulSet. - # For details, - # see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass). - priorityClassName: "" - # -- Taints to be tolerated by Pods of this StatefulSet. - # These tolerations override the global tolerations value. - # For details, - # see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/). - tolerations: [] - # For details, - # see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/). - topologySpreadConstraints: - - maxSkew: 1 - topologyKey: topology.kubernetes.io/zone - whenUnsatisfiable: ScheduleAnyway - labelSelector: - matchLabels: - "app.kubernetes.io/component": '{{ include "redpanda.name" . }}-statefulset' - "app.kubernetes.io/instance": '{{ .Release.Name }}' - "app.kubernetes.io/name": '{{ include "redpanda.name" . }}' - # StatefulSet resources: - # Resources are set through the top-level resources section above. - # It is recommended to set resource values in that section rather than here, as this will guarantee - # memory is allocated across containers, Redpanda, and the Seastar subsystem correctly. - # This automatic memory allocation is in place because Repanda and the Seastar subsystem require flags - # at startup that set the amount of memory available to each process. - # Kubernetes (mainly statefulset), Redpanda, and Seastar memory values are tightly coupled. - # Adding a resource section here will be ignored. - # - # see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#inter-pod-affinity-and-anti-affinity). - # You may either edit the default settings for anti-affinity rules, - # or specify new anti-affinity rules to use instead of the defaults. - podAntiAffinity: - # -- The topologyKey to be used. - # Can be used to spread across different nodes, AZs, regions etc. - topologyKey: kubernetes.io/hostname - # -- Valid anti-affinity types are `soft`, `hard`, or `custom`. - # Use `custom` if you want to supply your own anti-affinity rules in the `podAntiAffinity.custom` object. - type: hard - # -- Weight for `soft` anti-affinity rules. - # Does not apply to other anti-affinity types. - weight: 100 - # -- Change `podAntiAffinity.type` to `custom` and provide your own podAntiAffinity rules here. - custom: {} - sideCars: - image: - tag: v25.1.1-beta2 - repository: docker.redpanda.com/redpandadata/redpanda-operator - # The PVCUnbinder helps keep redpanda operational in the event of a tolerable Node or Disk loss event when non-remountable storage, - # such as `local` or `hostPath`, are used. It does so by monitoring redpanda Pods that are in a "Pending" state for at least the period - # specified by `unbindAfter`. After this period it will delete the Pod's PVC to re-trigger volume provisioning. - pvcUnbinder: - enabled: false - unbindAfter: 60s - # The BrokerDecommissioner attempts to decommission brokers that have been non-gracefully terminated in a cluster due to something - # like a Node crash. When a broker is determined to no longer be valid (i.e. it has been replaced by a broker with a different id) - # the decommissioner reaches out to the deployed cluster and begins a decommission operation after detecting the broker as invalid - # multiple times across the `decommissionAfter` window. A `decommissionRequeueTimeout` values can be specified to override how - # often the decommissioner rechecks a cluster that has a broker which has been flagged as invalid. - brokerDecommissioner: - enabled: false - decommissionAfter: 60s - decommissionRequeueTimeout: 10s - configWatcher: - enabled: true - controllers: - # You must also enable RBAC, `rbac.enabled=true`, to deploy this sidecar - enabled: false - healthProbeAddress: ":8085" - metricsAddress: ":9082" - pprofAddress: ":9083" - run: - - all - createRBAC: true - initContainers: - fsValidator: - enabled: false - expectedFS: xfs - setDataDirOwnership: - # -- In environments where root is not allowed, you cannot change the ownership of files and directories. - # Enable `setDataDirOwnership` when using default minikube cluster configuration. - enabled: false - initContainerImage: - repository: busybox - tag: latest - # -- Additional flags to pass to redpanda, - additionalRedpandaCmdFlags: [] -# - --unsafe-bypass-fsync - -# -- Service account management. -serviceAccount: - # -- Specifies whether a service account should be created. - create: true - # -- Annotations to add to the service account. - annotations: {} - # -- The name of the service account to use. - # If not set and `serviceAccount.create` is `true`, - # a name is generated using the `redpanda.fullname` template. - name: "" - -# -- Role Based Access Control. -rbac: - # -- Controls whether or not Roles, ClusterRoles, and bindings thereof will - # be generated. Disabling this very likely result in a non-functional - # deployment. - # If you use the Redpanda Operator, you must deploy it with the `--set - # rbac.createRPKBundleCRs=true` flag to give it the required ClusterRoles. - enabled: true - - # -- Controls whether or not a Role and RoleBinding will be generated for the - # permissions required by `rpk debug bundle`. Disabling will not affect the - # redpanda deployment itself but a bundle is required to engage with our - # support. - rpkDebugBundle: true - - # -- Annotations to add to the `rbac` resources. - annotations: {} - -# -- Redpanda tuning settings. -# Each is set to their default values in Redpanda. -tuning: - # -- Increase the maximum number of outstanding asynchronous IO operations if the - # current value is below a certain threshold. This allows Redpanda to make as many - # simultaneous IO requests as possible, increasing throughput. - # - # When this option is enabled, Helm creates a privileged container. If your security profile does not allow this, you can disable this container by setting `tune_aio_events` to `false`. - # For more details, see the [tuning documentation](https://docs.redpanda.com/docs/deploy/deployment-option/self-hosted/kubernetes/kubernetes-tune-workers/). - tune_aio_events: true - # - # Syncs NTP - # tune_clocksource: false - # - # Creates a "ballast" file so that, if a Redpanda node runs out of space, - # you can delete the ballast file to allow the node to resume operations and then - # delete a topic or records to reduce the space used by Redpanda. - # tune_ballast_file: false - # - # The path where the ballast file will be created. - # ballast_file_path: "/var/lib/redpanda/data/ballast" - # - # The ballast file size. - # ballast_file_size: "1GiB" - # - # (Optional) The vendor, VM type and storage device type that redpanda will run on, in - # the format ::. This hints to rpk which configuration values it - # should use for the redpanda IO scheduler. - # Some valid values are "gcp:c2-standard-16:nvme", "aws:i3.xlarge:default" - # well_known_io: "" - # - # The following tuning parameters must be false in container environments and will be ignored: - # tune_network - # tune_disk_scheduler - # tune_disk_nomerges - # tune_disk_irq - # tune_fstrim - # tune_cpu - # tune_swappiness - # tune_transparent_hugepages - # tune_coredump - - -# -- Listener settings. -# -# Override global settings configured above for individual -# listeners. -# For details, -# see the [listeners documentation](https://docs.redpanda.com/docs/manage/kubernetes/networking/configure-listeners/). -listeners: - # -- Admin API listener (only one). - admin: - # -- The port for both internal and external connections to the Admin API. - port: 9644 - # -- Optional instrumentation hint - https://kubernetes.io/docs/concepts/services-networking/service/#application-protocol - # appProtocol: - # -- Optional external access settings. - external: - # -- Name of the external listener. - default: - port: 9645 - # Override the global `external.enabled` for only this listener. - # enabled: true - # -- The port advertised to this listener's external clients. - # List one port if you want to use the same port for each broker (would be the case when using NodePort service). - # Otherwise, list the port you want to use for each broker in order of StatefulSet replicas. - # If undefined, `listeners.admin.port` is used. - tls: - # enabled: true - cert: external - advertisedPorts: - - 31644 - # -- Optional TLS section (required if global TLS is enabled) - tls: - # Optional flag to override the global TLS enabled flag. - # enabled: true - # -- Name of the Certificate used for TLS (must match a Certificate name that is registered in tls.certs). - cert: default - # -- If true, the truststore file for this listener is included in the ConfigMap. - requireClientAuth: false - # -- Kafka API listeners. - kafka: - # -- The port for internal client connections. - port: 9093 - # default is "sasl" - authenticationMethod: - tls: - # Optional flag to override the global TLS enabled flag. - # enabled: true - cert: default - requireClientAuth: false - external: - default: - # enabled: true - # -- The port used for external client connections. - port: 9094 - # prefixTemplate: "" - # -- If undefined, `listeners.kafka.external.default.port` is used. - advertisedPorts: - - 31092 - tls: - # enabled: true - cert: external - # default is "sasl" - authenticationMethod: - # -- RPC listener (this is never externally accessible). - rpc: - port: 33145 - tls: - # Optional flag to override the global TLS enabled flag. - # enabled: true - cert: default - requireClientAuth: false - # -- Schema registry listeners. - schemaRegistry: - enabled: true - port: 8081 - # default is "http_basic" - authenticationMethod: - tls: - # Optional flag to override the global TLS enabled flag. - # enabled: true - cert: default - requireClientAuth: false - external: - default: - # enabled: true - port: 8084 - advertisedPorts: - - 30081 - tls: - # enabled: true - cert: external - requireClientAuth: false - # default is "http_basic" - authenticationMethod: - # -- HTTP API listeners (aka PandaProxy). - http: - enabled: true - port: 8082 - # default is "http_basic" - authenticationMethod: - tls: - # Optional flag to override the global TLS enabled flag. - # enabled: true - cert: default - requireClientAuth: false - external: - default: - # enabled: true - port: 8083 - # prefixTemplate: "" - advertisedPorts: - - 30082 - tls: - # enabled: true - cert: external - requireClientAuth: false - # default is "http_basic" - authenticationMethod: - -# Expert Config -# Here be dragons! -# -# -- This section contains various settings supported by Redpanda that may not work -# correctly in a Kubernetes cluster. Changing these settings comes with some risk. -# -# Use these settings to customize various Redpanda configurations that are not covered in other sections. -# These values have no impact on the configuration or behavior of the Kubernetes objects deployed by Helm, -# and therefore should not be modified for the purpose of configuring those objects. -# Instead, these settings get passed directly to the Redpanda binary at startup. -# For descriptions of these properties, -# see the [configuration documentation](https://docs.redpanda.com/docs/cluster-administration/configuration/). -config: - rpk: {} - # additional_start_flags: # List of flags to pass to rpk, e.g., ` "--idle-poll-time-us=0"` - # -- [Cluster Configuration Properties](https://docs.redpanda.com/current/reference/properties/cluster-properties/) - cluster: {} - - # -- Tunable cluster properties. - # Deprecated: all settings here may be specified via `config.cluster`. - tunable: - # -- See the [property reference documentation](https://docs.redpanda.com/docs/reference/cluster-properties/#log_segment_size_min). - log_segment_size_min: 16777216 # 16 mb - # -- See the [property reference documentation](https://docs.redpanda.com/docs/reference/cluster-properties/#log_segment_size_max). - log_segment_size_max: 268435456 # 256 mb - # -- See the [property reference documentation](https://docs.redpanda.com/docs/reference/cluster-properties/#compacted_log_segment_size). - compacted_log_segment_size: 67108864 # 64 mb - # -- See the [property reference documentation](https://docs.redpanda.com/docs/reference/cluster-properties/#max_compacted_log_segment_size). - max_compacted_log_segment_size: 536870912 # 512 mb - # -- See the [property reference documentation](https://docs.redpanda.com/docs/reference/cluster-properties/#kafka_connection_rate_limit). - kafka_connection_rate_limit: 1000 - - # -- [Broker (node) Configuration Properties](https://docs.redpanda.com/docs/reference/broker-properties/). - node: - # -- Crash loop limit - # A limit on the number of consecutive times a broker can crash within one hour before its crash-tracking logic is reset. - # This limit prevents a broker from getting stuck in an infinite cycle of crashes. - # User can disable this crash loop limit check by the following action: - # - # * One hour elapses since the last crash - # * The node configuration file, redpanda.yaml, is updated via config.cluster or config.node or config.tunable objects - # * The startup_log file in the node’s data_directory is manually deleted - # - # Default to 5 - # REF: https://docs.redpanda.com/current/reference/broker-properties/#crash_loop_limit - crash_loop_limit: 5 - - # Reference schema registry client https://docs.redpanda.com/current/reference/node-configuration-sample/ - schema_registry_client: {} - # # Number of times to retry a request to a broker - # # Default: 5 - # retries: 5 - # - # # Delay (in milliseconds) for initial retry backoff - # # Default: 100ms - # retry_base_backoff_ms: 100 - # - # # Number of records to batch before sending to broker - # # Default: 1000 - # produce_batch_record_count: 1000 - # - # # Number of bytes to batch before sending to broker - # # Defautl 1MiB - # produce_batch_size_bytes: 1048576 - # - # # Delay (in milliseconds) to wait before sending batch - # # Default: 100ms - # produce_batch_delay_ms: 100 - # - # # Interval (in milliseconds) for consumer request timeout - # # Default: 100ms - # consumer_request_timeout_ms: 100 - # - # # Max bytes to fetch per request - # # Default: 1MiB - # consumer_request_max_bytes: 1048576 - # - # # Timeout (in milliseconds) for consumer session - # # Default: 10s - # consumer_session_timeout_ms: 10000 - # - # # Timeout (in milliseconds) for consumer rebalance - # # Default: 2s - # consumer_rebalance_timeout_ms: 2000 - # - # # Interval (in milliseconds) for consumer heartbeats - # # Default: 500ms - # consumer_heartbeat_interval_ms: 500 - - # Reference panda proxy client https://docs.redpanda.com/current/reference/node-configuration-sample/ - pandaproxy_client: {} - # # Number of times to retry a request to a broker - # # Default: 5 - # retries: 5 - # - # # Delay (in milliseconds) for initial retry backoff - # # Default: 100ms - # retry_base_backoff_ms: 100 - # - # # Number of records to batch before sending to broker - # # Default: 1000 - # produce_batch_record_count: 1000 - # - # # Number of bytes to batch before sending to broker - # # Defautl 1MiB - # produce_batch_size_bytes: 1048576 - # - # # Delay (in milliseconds) to wait before sending batch - # # Default: 100ms - # produce_batch_delay_ms: 100 - # - # # Interval (in milliseconds) for consumer request timeout - # # Default: 100ms - # consumer_request_timeout_ms: 100 - # - # # Max bytes to fetch per request - # # Default: 1MiB - # consumer_request_max_bytes: 1048576 - # - # # Timeout (in milliseconds) for consumer session - # # Default: 10s - # consumer_session_timeout_ms: 10000 - # - # # Timeout (in milliseconds) for consumer rebalance - # # Default: 2s - # consumer_rebalance_timeout_ms: 2000 - # - # # Interval (in milliseconds) for consumer heartbeats - # # Default: 500ms - # consumer_heartbeat_interval_ms: 500 - - # Invalid properties - # Any of these properties will be ignored. These otherwise valid properties are not allowed - # to be used in this section since they impact deploying Redpanda in Kubernetes. - # Make use of the above sections to modify these values instead (see comments below). - # admin: "127.0.0.1:9644" # Address and port of admin server: use listeners.admin - # admin_api_tls: validate_many # TLS configuration for admin HTTP server: use listeners.admin.tls - # advertised_kafka_api: None # Address of Kafka API published to the clients - # advertised_pandaproxy_api: None # Rest API address and port to publish to client - # advertised_rpc_api: None # Address of RPC endpoint published to other cluster members - # enable_admin_api: true # Enable the admin API - # enable_sasl: false # Enable SASL authentication for Kafka connections - # kafka_api: "127.0.0.1:9092" # Address and port of an interface to listen for Kafka API requests - # kafka_api_tls: None # TLS configuration for Kafka API endpoint - # pandaproxy_api: "0.0.0.0:8082" # Rest API listen address and port - # pandaproxy_api_tls: validate_many # TLS configuration for Pandaproxy api - # rpc_server: "127.0.0.1:33145" # IP address and port for RPC server - # rpc_server_tls: validate # TLS configuration for RPC server - # superusers: None # List of superuser usernames - -tests: - enabled: true diff --git a/flake.lock b/flake.lock index f239350f7b..a6f1978ac2 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1730785428, - "narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=", + "lastModified": 1750506804, + "narHash": "sha256-VLFNc4egNjovYVxDGyBYTrvVCgDYgENp5bVi9fPTDYc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7", + "rev": "4206c4cb56751df534751b058295ea61357bbbaa", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 0ee7137c67..b6d8631ca5 100644 --- a/flake.nix +++ b/flake.nix @@ -20,9 +20,7 @@ (final: prev: { chart-releaser = pkgs.callPackage ./.github/chart-releaser.nix { }; chart-testing = pkgs.callPackage ./.github/chart-testing.nix { }; - docker-tag-list = pkgs.callPackage ./.github/docker-tag-list.nix { }; helm-3-10-3 = pkgs.callPackage ./.github/helm.nix { }; - setup-envtest = pkgs.callPackage ./.github/setup-envtest.nix { }; kubernetes-helm = prev.wrapHelm prev.kubernetes-helm { plugins = [ prev.kubernetes-helmPlugins.helm-unittest ]; }; @@ -38,7 +36,6 @@ pkgs.actionlint # Github Workflow definition linter https://github.com/rhysd/actionlint pkgs.chart-releaser pkgs.chart-testing - pkgs.docker-tag-list # Utility to list out docker tags pkgs.dyff pkgs.gh # Github CLI pkgs.git @@ -54,7 +51,6 @@ pkgs.kubectl pkgs.kubernetes-helm pkgs.kustomize - pkgs.setup-envtest pkgs.yq # jq but for YAML ]; };