diff --git a/.github/workflows/ci-release-kaap-chart.yaml b/.github/workflows/ci-release-kaap-chart.yaml index f50efdcd..e7e94bdf 100644 --- a/.github/workflows/ci-release-kaap-chart.yaml +++ b/.github/workflows/ci-release-kaap-chart.yaml @@ -31,10 +31,11 @@ jobs: helm package "$chart" --destination .cr-release-packages - name: Run chart-releaser - uses: helm/chart-releaser-action@v1.5.0 + uses: helm/chart-releaser-action@3e001cb8c68933439c7e721650f20a07a1a5c61e with: charts_dir: helm/kaap skip_packaging: true + skip_existing: true env: CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" @@ -49,6 +50,5 @@ jobs: mkdir -p kaap mv /tmp/README.md kaap/README.md git add kaap/README.md - git commit -m "kaap/README.md" - git pull --rebase origin gh-pages - git push origin gh-pages \ No newline at end of file + # Commit only if changes exist; push only if commit succeeds + git commit -m "kaap/README.md" && git pull --rebase origin gh-pages && git push origin gh-pages || echo "Nothing to push" diff --git a/.github/workflows/ci-release-kaap-stack-chart.yaml b/.github/workflows/ci-release-kaap-stack-chart.yaml index 713bee7c..a5a77420 100644 --- a/.github/workflows/ci-release-kaap-stack-chart.yaml +++ b/.github/workflows/ci-release-kaap-stack-chart.yaml @@ -31,10 +31,11 @@ jobs: helm package "$chart" --destination .cr-release-packages - name: Run chart-releaser - uses: helm/chart-releaser-action@v1.5.0 + uses: helm/chart-releaser-action@3e001cb8c68933439c7e721650f20a07a1a5c61e with: charts_dir: helm/kaap-stack skip_packaging: true + skip_existing: true env: CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" @@ -51,4 +52,4 @@ jobs: git add kaap-stack/README.md git commit -m "kaap-stack/README.md" git pull --rebase origin gh-pages - git push origin gh-pages \ No newline at end of file + git push origin gh-pages diff --git a/.github/workflows/ci-release-operator.yaml b/.github/workflows/ci-release-operator.yaml index 5a23290b..609811c3 100644 --- a/.github/workflows/ci-release-operator.yaml +++ b/.github/workflows/ci-release-operator.yaml @@ -4,6 +4,12 @@ on: push: tags: - 'operator-*' + workflow_dispatch: # Manual Trigger + inputs: + docker_tag: + description: 'Docker tag to use' + required: true + default: 'dev' jobs: release-operator: @@ -13,11 +19,11 @@ jobs: - name: Check out the repo uses: actions/checkout@v3 - - name: Set up JDK 17 - uses: actions/setup-java@v3 + - name: Set up JDK + uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: 17 + java-version: 21 - name: Log in to Docker Hub uses: docker/login-action@v2 @@ -32,18 +38,37 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Build and push + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Get the tag & Build Operator run: | - mvn clean install -DskipTests -Pskip-crds - docker_tag=${GITHUB_REF/refs\/tags\/operator-/} - - docker tag datastax/kaap:latest-dev datastax/kaap:$docker_tag - docker tag datastax/kaap:latest-dev datastax/kaap:latest - docker push datastax/kaap:$docker_tag - docker push datastax/kaap:latest + OP_TAG=${GITHUB_REF/refs\/tags\/operator-/} + MANUAL_WORKFLOW_TAG=${{ inputs.docker_tag }} + if [[ $MANUAL_WORKFLOW_TAG != "" ]]; then + TAGS="docker.io/datastax/kaap:$MANUAL_WORKFLOW_TAG" + else + TAGS="docker.io/datastax/kaap:$OP_TAG,docker.io/datastax/kaap:latest" + fi + echo "TAGS=${TAGS}" >> "$GITHUB_ENV" + echo "Using tags $TAGS" + + mvn clean install -DskipTests -Pskip-crds -Pskip-docker + + - name: Build and push + uses: docker/build-push-action@v6 + with: + platforms: linux/amd64,linux/arm64 + push: true + context: operator + tags: ${{ env.TAGS }} - uses: ncipollo/release-action@v1 + if: ${{ inputs.docker_tag == '' }} # If not manual workflow with: artifacts: "migration-tool/target/kaap-migration-tool-*.jar,helm/kaap/crds/*.yml" token: ${{ secrets.GITHUB_TOKEN }} - generateReleaseNotes: true \ No newline at end of file + generateReleaseNotes: true diff --git a/.github/workflows/ci-sync-doc.yaml b/.github/workflows/ci-sync-doc.yaml index 09ced11b..34363cae 100644 --- a/.github/workflows/ci-sync-doc.yaml +++ b/.github/workflows/ci-sync-doc.yaml @@ -7,7 +7,7 @@ on: jobs: sync-gh-pages-doc: name: Sync pages - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - name: checkout uses: actions/checkout@v3 diff --git a/.github/workflows/ci-test.yaml b/.github/workflows/ci-test.yaml index 2e7efc70..d9dc1a9c 100644 --- a/.github/workflows/ci-test.yaml +++ b/.github/workflows/ci-test.yaml @@ -7,17 +7,18 @@ on: jobs: build-and-unit-test: name: Build and test - runs-on: ubuntu-20.04 + runs-on: + labels: kaap timeout-minutes: 60 steps: - name: checkout uses: actions/checkout@v3 - - name: Set up JDK 17 - uses: actions/setup-java@v3 + - name: Set up JDK + uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: 17 + java-version: 21 - name: Check license headers run: mvn license:check @@ -42,7 +43,8 @@ jobs: integration-tests: name: Integration tests - ${{ matrix.name }} - runs-on: ubuntu-20.04 + runs-on: + labels: kaap timeout-minutes: 60 strategy: fail-fast: false @@ -61,6 +63,10 @@ jobs: group: helm num_agents: 0 setup_helm: "true" + - name: Helm (Cluster Scoped) + group: helm-cluster-scoped + num_agents: 0 + setup_helm: "true" - name: Helm (TLS) group: helm-tls num_agents: 0 @@ -103,11 +109,11 @@ jobs: helm dependency build helm/kaap-stack if: ${{ matrix.setup_helm == 'true' }} - - name: Set up JDK 17 - uses: actions/setup-java@v3 + - name: Set up JDK + uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: 17 + java-version: 21 - name: Setup ssh access to build runner VM if: ${{ github.event_name == 'pull_request' }} @@ -127,7 +133,7 @@ jobs: -Dkaap.tests.env.existing.k3s.agents='${{ matrix.num_agents }}' - name: Upload Surefire reports - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: failure() continue-on-error: true with: diff --git a/README.md b/README.md index 7d204cf6..555fdba3 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Full documentation is available in the [DataStax Streaming Documentation](https: ## Install KAAP Operator -This example installs only the KAAP operator. +This example installs only the KAAP operator without a managed Pulsar cluster. See the KAAP Stack below to install KAAP with an operator, a Pulsar cluster, and the Prometheus monitoring stack. 1. Install the DataStax KAAP Helm repository: @@ -55,10 +55,11 @@ helm install kaap kaap/kaap Result: ``` NAME: kaap -LAST DEPLOYED: Wed Jun 28 11:37:45 2023 -NAMESPACE: pulsar-cluster +LAST DEPLOYED: Wed Dec 17 12:11:51 2025 +NAMESPACE: default STATUS: deployed REVISION: 1 +DESCRIPTION: Install complete TEST SUITE: None ``` 3. Ensure the operator is up and running: @@ -91,11 +92,16 @@ pulsarclusters.kaap.oss.datastax.com 2023-06-28T15:37:41Z zookeepers.kaap.oss.datastax.com 2023-06-28T15:37:41Z ``` -For more, see the [DataStax Streaming Documentation](https://docs.datastax.com/en/streaming/kaap-operator/latest/index.html) or [this repo's GitHub Pages site](https://datastax.github.io/kaap/docs/). +For more information, see the [DataStax Streaming Documentation](https://docs.datastax.com/en/streaming/kaap-operator/latest/index.html) or [this repo's GitHub Pages site](https://datastax.github.io/kaap/docs/). + +## Install KAAP Stack with a Pulsar cluster + +This example deploys a KAAP operator, and also deploys a minimally-sized Pulsar cluster for development testing. -## Install KAAP Stack Operator with a Pulsar cluster +> [!IMPORTANT] +> If using a local Kubernetes environment like [kind](https://kind.sigs.k8s.io/) or [minikube](https://minikube.sigs.k8s.io/docs/) you will need to allocate at least 16 GB of memory to run the +> example development cluster. -This example deploys a KAAP stack operator, and also deploys a minimally-sized Pulsar cluster for development testing. 1. Install the DataStax KAAP Helm repository: ``` @@ -104,15 +110,16 @@ helm repo update ``` 2. Install the KAAP Stack operator Helm chart with the custom `dev-cluster` values file: ``` -helm install pulsar kaap/kaap-stack --values helm/examples/dev-cluster/values.yaml +helm install kaap-stack kaap/kaap-stack --values helm/examples/dev-cluster/values.yaml ``` Result: ``` -NAME: pulsar -LAST DEPLOYED: Thu Jun 29 14:30:20 2023 +NAME: kaap-stack +LAST DEPLOYED: Wed Dec 17 12:25:16 2025 NAMESPACE: default STATUS: deployed REVISION: 1 +DESCRIPTION: Install complete TEST SUITE: None ``` 3. Ensure the operator is up and running: @@ -157,7 +164,7 @@ For more, see the [DataStax Streaming Documentation](https://docs.datastax.com/e To uninstall KAAP: ``` -helm delete kaap +helm uninstall kaap ``` Result: ``` diff --git a/RELEASE.md b/RELEASE.md index 2f7ba89f..0d9b0462 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -5,8 +5,23 @@ The project contains 3 different and independents artifacts: 2. KAAP Chart 3. KAAP Stack Chart -The releases process are independent. +The releases process are independent. You can also do the release on a different branch and merge to main. +(**PR based**). +For reference, check [here.](https://github.com/datastax/kaap/pull/212) +## Release Order Guidance +This is not required to be followed if you are just releasing a new version for only one project. + +### operator -> kaap → kaap-stack +To ensure `kaap-stack` is packaged with the latest `kaap` version and latest `operator` version. +This applies **only when a new `kaap` or `operator` version is part of the release cycle**. + +This is also because `kaap-stack` uses a local dependency: +```yaml +repository: file://../kaap +``` + +A release is considered completed only when the PR is merged if we are doing a PR based approach. ## Operator image (datastax/kaap:latest) @@ -25,18 +40,24 @@ This will create a new tag `operator-`, bump the pom versions and push Run the following command: ```bash -./release/release.sh kaap +./release/release.sh kaap-chart ``` This will create a new tag `kaap-`, bump the chart version, creates a new Github release with the chart tarball and update the docs. +**NOTE:** You have to **manually update the default operator version** in the values.yaml of KAAP if you need to change it. +For reference, check [here.](https://github.com/datastax/kaap/pull/213/commits/ebc1bb38edeaf2164d6f2d7c1729ebfe8ed94db1) ## KAAP Stack Chart Run the following command: ```bash -./release/release.sh kaap-stack +./release/release.sh kaap-stack-chart ``` -This will create a new tag `kaap-stack-`, bump the chart version, creates a new Github release with the chart tarball and update the docs. \ No newline at end of file +This will create a new tag `kaap-stack-`, bump the chart version, creates a new Github release with the chart tarball and update the docs. + +**NOTE:** You have to **manually update the kaap version** if there is a major version change of KAAP in the KAAP-STACK +chart.yaml. Minor version changes get picked up because of the regex 0.4.x. +For reference, check [here.](https://github.com/datastax/kaap/pull/213/commits/853d3135e5eb6bd25d373e5506e14640083b2c04) \ No newline at end of file diff --git a/dev/run-dev-mode.sh b/dev/run-dev-mode.sh index c6b7621d..f76fdf2a 100755 --- a/dev/run-dev-mode.sh +++ b/dev/run-dev-mode.sh @@ -15,5 +15,4 @@ # limitations under the License. # -kubectl apply -f helm/operator/crds --server-side -mvn -pl operator quarkus:dev -Dquarkus.operator-sdk.crd.generate=false -Dquarkus.operator-sdk.crd.apply=false \ No newline at end of file +mvn -pl operator quarkus:dev -Dquarkus.operator-sdk.crd.generate=false -Dquarkus.operator-sdk.crd.apply=true \ No newline at end of file diff --git a/docs/api-reference.md b/docs/api-reference.md index 9b4e1fc3..0d3ceb18 100644 --- a/docs/api-reference.md +++ b/docs/api-reference.md @@ -234,6 +234,13 @@ Resource Types: Match labels selectors to add to each pod.
false + + minReadySeconds + integer + + Min seconds to wait before considering the pod as ready.
+ + false nodeAffinity object @@ -276,6 +283,13 @@ Resource Types: Resources requirements.
false + + securityContext + object + + Subset of PodSecurityContext for basic UID, GID, and volume access control.
+ + false serviceAccountName string @@ -758,6 +772,13 @@ Indicates the provisioner property for the StorageClass.
false + + resizePolicy + []object + +
+ + false resources object @@ -765,6 +786,13 @@ Indicates the provisioner property for the StorageClass.
false + + restartPolicy + string + +
+ + false securityContext object @@ -1214,6 +1242,13 @@ Indicates the provisioner property for the StorageClass.
false + + stopSignal + string + +
+ + false @@ -1247,6 +1282,13 @@ Indicates the provisioner property for the StorageClass.
false + + sleep + object + +
+ + false tcpSocket object @@ -1371,160 +1413,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.autorecovery.initContainers[index].lifecycle.postStart.tcpSocket - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
hoststring -
-
false
portint or string -
-
false
- - -### PulsarCluster.spec.autorecovery.initContainers[index].lifecycle.preStop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
execobject -
-
false
httpGetobject -
-
false
tcpSocketobject -
-
false
- - -### PulsarCluster.spec.autorecovery.initContainers[index].lifecycle.preStop.exec - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
command[]string -
-
false
- - -### PulsarCluster.spec.autorecovery.initContainers[index].lifecycle.preStop.httpGet - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
hoststring -
-
false
httpHeaders[]object -
-
false
pathstring -
-
false
portint or string -
-
false
schemestring -
-
false
- - -### PulsarCluster.spec.autorecovery.initContainers[index].lifecycle.preStop.httpGet.httpHeaders[index] +### PulsarCluster.spec.autorecovery.initContainers[index].lifecycle.postStart.sleep @@ -1540,15 +1429,8 @@ Indicates the provisioner property for the StorageClass. - name - string - -
- - false - - value - string + seconds + integer
@@ -1557,7 +1439,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.autorecovery.initContainers[index].lifecycle.preStop.tcpSocket +### PulsarCluster.spec.autorecovery.initContainers[index].lifecycle.postStart.tcpSocket @@ -1590,7 +1472,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.autorecovery.initContainers[index].livenessProbe +### PulsarCluster.spec.autorecovery.initContainers[index].lifecycle.preStop @@ -1606,80 +1488,38 @@ Indicates the provisioner property for the StorageClass. - exec + exec object
false - failureThreshold - integer - -
- - false - - grpc + httpGet object
false - httpGet + sleep object
false - initialDelaySeconds - integer - -
- - false - - periodSeconds - integer - -
- - false - - successThreshold - integer - -
- - false - - tcpSocket + tcpSocket object
false - - terminationGracePeriodSeconds - integer - -
- - false - - timeoutSeconds - integer - -
- - false -### PulsarCluster.spec.autorecovery.initContainers[index].livenessProbe.exec +### PulsarCluster.spec.autorecovery.initContainers[index].lifecycle.preStop.exec @@ -1705,40 +1545,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.autorecovery.initContainers[index].livenessProbe.grpc - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
portinteger -
-
false
servicestring -
-
false
- - -### PulsarCluster.spec.autorecovery.initContainers[index].livenessProbe.httpGet +### PulsarCluster.spec.autorecovery.initContainers[index].lifecycle.preStop.httpGet @@ -1761,7 +1568,7 @@ Indicates the provisioner property for the StorageClass. false - httpHeaders + httpHeaders []object
@@ -1792,7 +1599,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.autorecovery.initContainers[index].livenessProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.autorecovery.initContainers[index].lifecycle.preStop.httpGet.httpHeaders[index] @@ -1825,7 +1632,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.autorecovery.initContainers[index].livenessProbe.tcpSocket +### PulsarCluster.spec.autorecovery.initContainers[index].lifecycle.preStop.sleep @@ -1841,15 +1648,8 @@ Indicates the provisioner property for the StorageClass. - host - string - -
- - false - - port - int or string + seconds + integer
@@ -1858,7 +1658,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.autorecovery.initContainers[index].ports[index] +### PulsarCluster.spec.autorecovery.initContainers[index].lifecycle.preStop.tcpSocket @@ -1874,36 +1674,15 @@ Indicates the provisioner property for the StorageClass. - containerPort - integer - -
- - false - - hostIP - string - -
- - false - - hostPort - integer - -
- - false - - name + host string
false - protocol - string + port + int or string
@@ -1912,7 +1691,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.autorecovery.initContainers[index].readinessProbe +### PulsarCluster.spec.autorecovery.initContainers[index].livenessProbe @@ -1928,7 +1707,7 @@ Indicates the provisioner property for the StorageClass. - exec + exec object
@@ -1942,14 +1721,14 @@ Indicates the provisioner property for the StorageClass. false - grpc + grpc object
false - httpGet + httpGet object
@@ -1977,7 +1756,7 @@ Indicates the provisioner property for the StorageClass. false - tcpSocket + tcpSocket object
@@ -2001,7 +1780,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.autorecovery.initContainers[index].readinessProbe.exec +### PulsarCluster.spec.autorecovery.initContainers[index].livenessProbe.exec @@ -2027,7 +1806,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.autorecovery.initContainers[index].readinessProbe.grpc +### PulsarCluster.spec.autorecovery.initContainers[index].livenessProbe.grpc @@ -2060,7 +1839,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.autorecovery.initContainers[index].readinessProbe.httpGet +### PulsarCluster.spec.autorecovery.initContainers[index].livenessProbe.httpGet @@ -2083,7 +1862,7 @@ Indicates the provisioner property for the StorageClass. false - httpHeaders + httpHeaders []object
@@ -2114,7 +1893,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.autorecovery.initContainers[index].readinessProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.autorecovery.initContainers[index].livenessProbe.httpGet.httpHeaders[index] @@ -2147,7 +1926,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.autorecovery.initContainers[index].readinessProbe.tcpSocket +### PulsarCluster.spec.autorecovery.initContainers[index].livenessProbe.tcpSocket @@ -2180,7 +1959,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.autorecovery.initContainers[index].resources +### PulsarCluster.spec.autorecovery.initContainers[index].ports[index] @@ -2196,15 +1975,36 @@ Indicates the provisioner property for the StorageClass. - limits - map[string]int or string + containerPort + integer
false - requests - map[string]int or string + hostIP + string + +
+ + false + + hostPort + integer + +
+ + false + + name + string + +
+ + false + + protocol + string
@@ -2213,7 +2013,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.autorecovery.initContainers[index].securityContext +### PulsarCluster.spec.autorecovery.initContainers[index].readinessProbe @@ -2229,78 +2029,71 @@ Indicates the provisioner property for the StorageClass. - allowPrivilegeEscalation - boolean - -
- - false - - capabilities + exec object
false - privileged - boolean + failureThreshold + integer
false - procMount - string + grpc + object
false - readOnlyRootFilesystem - boolean + httpGet + object
false - runAsGroup + initialDelaySeconds integer
false - runAsNonRoot - boolean + periodSeconds + integer
false - runAsUser + successThreshold integer
false - seLinuxOptions + tcpSocket object
false - seccompProfile - object + terminationGracePeriodSeconds + integer
false - windowsOptions - object + timeoutSeconds + integer
@@ -2309,7 +2102,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.autorecovery.initContainers[index].securityContext.capabilities +### PulsarCluster.spec.autorecovery.initContainers[index].readinessProbe.exec @@ -2325,14 +2118,7 @@ Indicates the provisioner property for the StorageClass. - add - []string - -
- - false - - drop + command []string
@@ -2342,7 +2128,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.autorecovery.initContainers[index].securityContext.seLinuxOptions +### PulsarCluster.spec.autorecovery.initContainers[index].readinessProbe.grpc @@ -2358,28 +2144,14 @@ Indicates the provisioner property for the StorageClass. - level - string - -
- - false - - role - string - -
- - false - - type - string + port + integer
false - user + service string
@@ -2389,7 +2161,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.autorecovery.initContainers[index].securityContext.seccompProfile +### PulsarCluster.spec.autorecovery.initContainers[index].readinessProbe.httpGet @@ -2405,61 +2177,35 @@ Indicates the provisioner property for the StorageClass. - localhostProfile + host string
false - type - string - -
- - false - - - - -### PulsarCluster.spec.autorecovery.initContainers[index].securityContext.windowsOptions - - - - - - - - - - - - - - - - - + + - + - - + + - +
NameTypeDescriptionRequired
gmsaCredentialSpecstringhttpHeaders[]object
false
gmsaCredentialSpecNamepath string
false
hostProcessbooleanportint or string
false
runAsUserNamescheme string
@@ -2469,7 +2215,7 @@ Indicates the provisioner property for the StorageClass.
-### PulsarCluster.spec.autorecovery.initContainers[index].startupProbe +### PulsarCluster.spec.autorecovery.initContainers[index].readinessProbe.httpGet.httpHeaders[index] @@ -2485,71 +2231,15 @@ Indicates the provisioner property for the StorageClass. - exec - object - -
- - false - - failureThreshold - integer - -
- - false - - grpc - object - -
- - false - - httpGet - object - -
- - false - - initialDelaySeconds - integer - -
- - false - - periodSeconds - integer - -
- - false - - successThreshold - integer - -
- - false - - tcpSocket - object - -
- - false - - terminationGracePeriodSeconds - integer + name + string
false - timeoutSeconds - integer + value + string
@@ -2558,7 +2248,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.autorecovery.initContainers[index].startupProbe.exec +### PulsarCluster.spec.autorecovery.initContainers[index].readinessProbe.tcpSocket @@ -2574,8 +2264,15 @@ Indicates the provisioner property for the StorageClass. - command - []string + host + string + +
+ + false + + port + int or string
@@ -2584,7 +2281,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.autorecovery.initContainers[index].startupProbe.grpc +### PulsarCluster.spec.autorecovery.initContainers[index].resizePolicy[index] @@ -2600,14 +2297,14 @@ Indicates the provisioner property for the StorageClass. - port - integer + resourceName + string
false - service + restartPolicy string
@@ -2617,7 +2314,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.autorecovery.initContainers[index].startupProbe.httpGet +### PulsarCluster.spec.autorecovery.initContainers[index].resources @@ -2633,36 +2330,22 @@ Indicates the provisioner property for the StorageClass. - host - string - -
- - false - - httpHeaders + claims []object
false - path - string - -
- - false - - port - int or string + limits + map[string]int or string
false - scheme - string + requests + map[string]int or string
@@ -2671,7 +2354,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.autorecovery.initContainers[index].startupProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.autorecovery.initContainers[index].resources.claims[index] @@ -2694,7 +2377,7 @@ Indicates the provisioner property for the StorageClass. false - value + request string
@@ -2704,7 +2387,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.autorecovery.initContainers[index].startupProbe.tcpSocket +### PulsarCluster.spec.autorecovery.initContainers[index].securityContext @@ -2720,108 +2403,117 @@ Indicates the provisioner property for the StorageClass. - host - string + allowPrivilegeEscalation + boolean
false - port - int or string + appArmorProfile + object
false - - - - -### PulsarCluster.spec.autorecovery.initContainers[index].volumeDevices[index] - - - - - - - - - - - - - - - - - + + + - - + + - -
NameTypeDescriptionRequired
devicePathstring
capabilitiesobject
false
namestringprivilegedboolean
false
- - -### PulsarCluster.spec.autorecovery.initContainers[index].volumeMounts[index] - - - - - - - - - - - - - - - - + + - - + + - - + + - + - + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
mountPath
procMount string
false
mountPropagationstringreadOnlyRootFilesystemboolean
false
namestringrunAsGroupinteger
false
readOnlyrunAsNonRoot boolean
false
subPathrunAsUserinteger +
+
false
seLinuxOptionsobject +
+
false
seccompProfileobject +
+
false
windowsOptionsobject +
+
false
+ + +### PulsarCluster.spec.autorecovery.initContainers[index].securityContext.appArmorProfile + + + + + + + + + + + + + + + + - +
NameTypeDescriptionRequired
localhostProfile string
false
subPathExprtype string
@@ -2831,11 +2523,11 @@ Indicates the provisioner property for the StorageClass.
-### PulsarCluster.spec.autorecovery.nodeAffinity +### PulsarCluster.spec.autorecovery.initContainers[index].securityContext.capabilities + -Node affinity configuration. @@ -2847,15 +2539,15 @@ Node affinity configuration. - - + + - - + + @@ -2864,7 +2556,7 @@ Node affinity configuration.
preferredDuringSchedulingIgnoredDuringExecution[]objectadd[]string
false
requiredDuringSchedulingIgnoredDuringExecutionobjectdrop[]string
-### PulsarCluster.spec.autorecovery.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index] +### PulsarCluster.spec.autorecovery.initContainers[index].securityContext.seLinuxOptions @@ -2880,15 +2572,29 @@ Node affinity configuration. - preference - object + level + string
false - weight - integer + role + string + +
+ + false + + type + string + +
+ + false + + user + string
@@ -2897,7 +2603,7 @@ Node affinity configuration. -### PulsarCluster.spec.autorecovery.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference +### PulsarCluster.spec.autorecovery.initContainers[index].securityContext.seccompProfile @@ -2913,15 +2619,15 @@ Node affinity configuration. - matchExpressions - []object + localhostProfile + string
false - matchFields - []object + type + string
@@ -2930,7 +2636,7 @@ Node affinity configuration. -### PulsarCluster.spec.autorecovery.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference.matchExpressions[index] +### PulsarCluster.spec.autorecovery.initContainers[index].securityContext.windowsOptions @@ -2946,22 +2652,29 @@ Node affinity configuration. - key + gmsaCredentialSpec string
false - operator + gmsaCredentialSpecName string
false - values - []string + hostProcess + boolean + +
+ + false + + runAsUserName + string
@@ -2970,7 +2683,7 @@ Node affinity configuration. -### PulsarCluster.spec.autorecovery.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference.matchFields[index] +### PulsarCluster.spec.autorecovery.initContainers[index].startupProbe @@ -2986,22 +2699,71 @@ Node affinity configuration. - key - string + exec + object
false - operator - string + failureThreshold + integer
false - values - []string + grpc + object + +
+ + false + + httpGet + object + +
+ + false + + initialDelaySeconds + integer + +
+ + false + + periodSeconds + integer + +
+ + false + + successThreshold + integer + +
+ + false + + tcpSocket + object + +
+ + false + + terminationGracePeriodSeconds + integer + +
+ + false + + timeoutSeconds + integer
@@ -3010,7 +2772,7 @@ Node affinity configuration. -### PulsarCluster.spec.autorecovery.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution +### PulsarCluster.spec.autorecovery.initContainers[index].startupProbe.exec @@ -3026,8 +2788,8 @@ Node affinity configuration. - nodeSelectorTerms - []object + command + []string
@@ -3036,7 +2798,7 @@ Node affinity configuration. -### PulsarCluster.spec.autorecovery.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index] +### PulsarCluster.spec.autorecovery.initContainers[index].startupProbe.grpc @@ -3052,15 +2814,15 @@ Node affinity configuration. - matchExpressions - []object + port + integer
false - matchFields - []object + service + string
@@ -3069,7 +2831,7 @@ Node affinity configuration. -### PulsarCluster.spec.autorecovery.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index].matchExpressions[index] +### PulsarCluster.spec.autorecovery.initContainers[index].startupProbe.httpGet @@ -3085,22 +2847,36 @@ Node affinity configuration. - key + host string
false - operator + httpHeaders + []object + +
+ + false + + path string
false - values - []string + port + int or string + +
+ + false + + scheme + string
@@ -3109,7 +2885,7 @@ Node affinity configuration. -### PulsarCluster.spec.autorecovery.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index].matchFields[index] +### PulsarCluster.spec.autorecovery.initContainers[index].startupProbe.httpGet.httpHeaders[index] @@ -3125,35 +2901,28 @@ Node affinity configuration. - key + name string
false - operator + value string
false - - values - []string - -
- - false -### PulsarCluster.spec.autorecovery.resources +### PulsarCluster.spec.autorecovery.initContainers[index].startupProbe.tcpSocket + -Resources requirements. @@ -3165,15 +2934,15 @@ Resources requirements. - - + + - - + + @@ -3182,7 +2951,7 @@ Resources requirements.
limitsmap[string]int or stringhoststring
false
requestsmap[string]int or stringportint or string
-### PulsarCluster.spec.autorecovery.sidecars[index] +### PulsarCluster.spec.autorecovery.initContainers[index].volumeDevices[index] @@ -3198,57 +2967,48 @@ Resources requirements. - args - []string - -
- - false - - command - []string - -
- - false - - env - []object - -
- - false - - envFrom - []object - -
- - false - - image + devicePath string
false - imagePullPolicy + name string
false - - lifecycle - object + + + + +### PulsarCluster.spec.autorecovery.initContainers[index].volumeMounts[index] + + + + + + + + + + + + + + + + + - - + + @@ -3261,91 +3021,28 @@ Resources requirements. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - - - - - - - - - - - - - - - - +
NameTypeDescriptionRequired
mountPathstring
false
livenessProbeobjectmountPropagationstring
false
ports[]object -
-
false
readinessProbeobject -
-
false
resourcesobject -
-
false
securityContextobject -
-
false
startupProbeobject -
-
false
stdinboolean -
-
false
stdinOncereadOnly boolean
false
terminationMessagePathrecursiveReadOnly string
false
terminationMessagePolicysubPath string
false
ttyboolean -
-
false
volumeDevices[]object -
-
false
volumeMounts[]object -
-
false
workingDirsubPathExpr string
@@ -3355,11 +3052,11 @@ Resources requirements.
-### PulsarCluster.spec.autorecovery.sidecars[index].env[index] - +### PulsarCluster.spec.autorecovery.nodeAffinity +Node affinity configuration. @@ -3371,21 +3068,14 @@ Resources requirements. - - - - - - - + + - +
namestring -
-
false
valuestringpreferredDuringSchedulingIgnoredDuringExecution[]object
false
valueFromrequiredDuringSchedulingIgnoredDuringExecution object
@@ -3395,7 +3085,7 @@ Resources requirements.
-### PulsarCluster.spec.autorecovery.sidecars[index].env[index].valueFrom +### PulsarCluster.spec.autorecovery.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index] @@ -3411,29 +3101,48 @@ Resources requirements. - configMapKeyRef + preference object
false - fieldRef - object + weight + integer
false - - resourceFieldRef - object + + + + +### PulsarCluster.spec.autorecovery.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference + + + + + + + + + + + + + + + + + - - + + @@ -3442,7 +3151,7 @@ Resources requirements.
NameTypeDescriptionRequired
matchExpressions[]object
false
secretKeyRefobjectmatchFields[]object
-### PulsarCluster.spec.autorecovery.sidecars[index].env[index].valueFrom.configMapKeyRef +### PulsarCluster.spec.autorecovery.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference.matchExpressions[index] @@ -3465,15 +3174,15 @@ Resources requirements. false - name + operator string
false - optional - boolean + values + []string
@@ -3482,7 +3191,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].env[index].valueFrom.fieldRef +### PulsarCluster.spec.autorecovery.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference.matchFields[index] @@ -3498,24 +3207,31 @@ Resources requirements. - apiVersion + key string
false - fieldPath + operator string
false + + values + []string + +
+ + false -### PulsarCluster.spec.autorecovery.sidecars[index].env[index].valueFrom.resourceFieldRef +### PulsarCluster.spec.autorecovery.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution @@ -3531,22 +3247,41 @@ Resources requirements. - containerName - string + nodeSelectorTerms + []object
false - - divisor - int or string + + + + +### PulsarCluster.spec.autorecovery.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index] + + + + + + + + + + + + + + + + + - - + + @@ -3555,7 +3290,7 @@ Resources requirements.
NameTypeDescriptionRequired
matchExpressions[]object
false
resourcestringmatchFields[]object
-### PulsarCluster.spec.autorecovery.sidecars[index].env[index].valueFrom.secretKeyRef +### PulsarCluster.spec.autorecovery.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index].matchExpressions[index] @@ -3578,15 +3313,15 @@ Resources requirements. false - name + operator string
false - optional - boolean + values + []string
@@ -3595,7 +3330,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].envFrom[index] +### PulsarCluster.spec.autorecovery.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index].matchFields[index] @@ -3611,22 +3346,22 @@ Resources requirements. - configMapRef - object + key + string
false - prefix + operator string
false - secretRef - object + values + []string
@@ -3635,11 +3370,11 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].envFrom[index].configMapRef - +### PulsarCluster.spec.autorecovery.resources +Resources requirements. @@ -3651,15 +3386,22 @@ Resources requirements. - - + + - - + + + + + + + @@ -3668,7 +3410,7 @@ Resources requirements.
namestringclaims[]object
false
optionalbooleanlimitsmap[string]int or string +
+
false
requestsmap[string]int or string
-### PulsarCluster.spec.autorecovery.sidecars[index].envFrom[index].secretRef +### PulsarCluster.spec.autorecovery.resources.claims[index] @@ -3691,8 +3433,8 @@ Resources requirements. false - optional - boolean + request + string
@@ -3701,11 +3443,11 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].lifecycle - +### PulsarCluster.spec.autorecovery.securityContext +Subset of PodSecurityContext for basic UID, GID, and volume access control. @@ -3717,15 +3459,43 @@ Resources requirements. - - + + - - + + + + + + + + + + + + + + + + + + + + + + @@ -3734,7 +3504,7 @@ Resources requirements.
postStartobjectfsGroupinteger
false
preStopobjectfsGroupChangePolicystring +
+
false
runAsGroupinteger +
+
false
runAsNonRootboolean +
+
false
runAsUserinteger +
+
false
supplementalGroups[]integer
-### PulsarCluster.spec.autorecovery.sidecars[index].lifecycle.postStart +### PulsarCluster.spec.autorecovery.sidecars[index] @@ -3750,31 +3520,178 @@ Resources requirements. - exec + args + []string + +
+ + false + + command + []string + +
+ + false + + env + []object + +
+ + false + + envFrom + []object + +
+ + false + + image + string + +
+ + false + + imagePullPolicy + string + +
+ + false + + lifecycle object
false - httpGet + livenessProbe object
false - tcpSocket + name + string + +
+ + false + + ports + []object + +
+ + false + + readinessProbe + object + +
+ + false + + resizePolicy + []object + +
+ + false + + resources + object + +
+ + false + + restartPolicy + string + +
+ + false + + securityContext + object + +
+ + false + + startupProbe object
false + + stdin + boolean + +
+ + false + + stdinOnce + boolean + +
+ + false + + terminationMessagePath + string + +
+ + false + + terminationMessagePolicy + string + +
+ + false + + tty + boolean + +
+ + false + + volumeDevices + []object + +
+ + false + + volumeMounts + []object + +
+ + false + + workingDir + string + +
+ + false -### PulsarCluster.spec.autorecovery.sidecars[index].lifecycle.postStart.exec +### PulsarCluster.spec.autorecovery.sidecars[index].env[index] @@ -3790,8 +3707,22 @@ Resources requirements. - command - []string + name + string + +
+ + false + + value + string + +
+ + false + + valueFrom + object
@@ -3800,7 +3731,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].lifecycle.postStart.httpGet +### PulsarCluster.spec.autorecovery.sidecars[index].env[index].valueFrom @@ -3816,36 +3747,29 @@ Resources requirements. - host - string - -
- - false - - httpHeaders - []object + configMapKeyRef + object
false - path - string + fieldRef + object
false - port - int or string + resourceFieldRef + object
false - scheme - string + secretKeyRef + object
@@ -3854,7 +3778,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].lifecycle.postStart.httpGet.httpHeaders[index] +### PulsarCluster.spec.autorecovery.sidecars[index].env[index].valueFrom.configMapKeyRef @@ -3870,24 +3794,31 @@ Resources requirements. - name + key string
false - value + name string
false + + optional + boolean + +
+ + false -### PulsarCluster.spec.autorecovery.sidecars[index].lifecycle.postStart.tcpSocket +### PulsarCluster.spec.autorecovery.sidecars[index].env[index].valueFrom.fieldRef @@ -3903,15 +3834,15 @@ Resources requirements. - host + apiVersion string
false - port - int or string + fieldPath + string
@@ -3920,7 +3851,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].lifecycle.preStop +### PulsarCluster.spec.autorecovery.sidecars[index].env[index].valueFrom.resourceFieldRef @@ -3936,22 +3867,22 @@ Resources requirements. - exec - object + containerName + string
false - httpGet - object + divisor + int or string
false - tcpSocket - object + resource + string
@@ -3960,7 +3891,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].lifecycle.preStop.exec +### PulsarCluster.spec.autorecovery.sidecars[index].env[index].valueFrom.secretKeyRef @@ -3976,8 +3907,22 @@ Resources requirements. - command - []string + key + string + +
+ + false + + name + string + +
+ + false + + optional + boolean
@@ -3986,7 +3931,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].lifecycle.preStop.httpGet +### PulsarCluster.spec.autorecovery.sidecars[index].envFrom[index] @@ -4002,36 +3947,22 @@ Resources requirements. - host - string - -
- - false - - httpHeaders - []object + configMapRef + object
false - path + prefix string
false - port - int or string - -
- - false - - scheme - string + secretRef + object
@@ -4040,7 +3971,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].lifecycle.preStop.httpGet.httpHeaders[index] +### PulsarCluster.spec.autorecovery.sidecars[index].envFrom[index].configMapRef @@ -4063,8 +3994,8 @@ Resources requirements. false - value - string + optional + boolean
@@ -4073,7 +4004,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].lifecycle.preStop.tcpSocket +### PulsarCluster.spec.autorecovery.sidecars[index].envFrom[index].secretRef @@ -4089,15 +4020,15 @@ Resources requirements. - host + name string
false - port - int or string + optional + boolean
@@ -4106,7 +4037,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].livenessProbe +### PulsarCluster.spec.autorecovery.sidecars[index].lifecycle @@ -4122,71 +4053,69 @@ Resources requirements. - exec - object - -
- - false - - failureThreshold - integer - -
- - false - - grpc + postStart object
false - httpGet + preStop object
false - initialDelaySeconds - integer - -
- - false - - periodSeconds - integer + stopSignal + string
false - - successThreshold - integer + + + + +### PulsarCluster.spec.autorecovery.sidecars[index].lifecycle.postStart + + + + + + + + + + + + + + + + + - + - - + + - - + + @@ -4195,7 +4124,7 @@ Resources requirements.
NameTypeDescriptionRequired
execobject
false
tcpSockethttpGet object
false
terminationGracePeriodSecondsintegersleepobject
false
timeoutSecondsintegertcpSocketobject
-### PulsarCluster.spec.autorecovery.sidecars[index].livenessProbe.exec +### PulsarCluster.spec.autorecovery.sidecars[index].lifecycle.postStart.exec @@ -4221,7 +4150,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].livenessProbe.grpc +### PulsarCluster.spec.autorecovery.sidecars[index].lifecycle.postStart.httpGet @@ -4237,14 +4166,35 @@ Resources requirements. + host + string + +
+ + false + + httpHeaders + []object + +
+ + false + + path + string + +
+ + false + port - integer + int or string
false - service + scheme string
@@ -4254,7 +4204,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].livenessProbe.httpGet +### PulsarCluster.spec.autorecovery.sidecars[index].lifecycle.postStart.httpGet.httpHeaders[index] @@ -4270,35 +4220,14 @@ Resources requirements. - host + name string
false - httpHeaders - []object - -
- - false - - path - string - -
- - false - - port - int or string - -
- - false - - scheme + value string
@@ -4308,7 +4237,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].livenessProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.autorecovery.sidecars[index].lifecycle.postStart.sleep @@ -4324,15 +4253,8 @@ Resources requirements. - name - string - -
- - false - - value - string + seconds + integer
@@ -4341,7 +4263,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].livenessProbe.tcpSocket +### PulsarCluster.spec.autorecovery.sidecars[index].lifecycle.postStart.tcpSocket @@ -4374,61 +4296,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].ports[index] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
containerPortinteger -
-
false
hostIPstring -
-
false
hostPortinteger -
-
false
namestring -
-
false
protocolstring -
-
false
- - -### PulsarCluster.spec.autorecovery.sidecars[index].readinessProbe +### PulsarCluster.spec.autorecovery.sidecars[index].lifecycle.preStop @@ -4444,80 +4312,38 @@ Resources requirements. - exec + exec object
false - failureThreshold - integer - -
- - false - - grpc + httpGet object
false - httpGet + sleep object
false - initialDelaySeconds - integer - -
- - false - - periodSeconds - integer - -
- - false - - successThreshold - integer - -
- - false - - tcpSocket + tcpSocket object
false - - terminationGracePeriodSeconds - integer - -
- - false - - timeoutSeconds - integer - -
- - false -### PulsarCluster.spec.autorecovery.sidecars[index].readinessProbe.exec +### PulsarCluster.spec.autorecovery.sidecars[index].lifecycle.preStop.exec @@ -4543,40 +4369,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].readinessProbe.grpc - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
portinteger -
-
false
servicestring -
-
false
- - -### PulsarCluster.spec.autorecovery.sidecars[index].readinessProbe.httpGet +### PulsarCluster.spec.autorecovery.sidecars[index].lifecycle.preStop.httpGet @@ -4599,7 +4392,7 @@ Resources requirements. false - httpHeaders + httpHeaders []object
@@ -4630,7 +4423,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].readinessProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.autorecovery.sidecars[index].lifecycle.preStop.httpGet.httpHeaders[index] @@ -4663,7 +4456,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].readinessProbe.tcpSocket +### PulsarCluster.spec.autorecovery.sidecars[index].lifecycle.preStop.sleep @@ -4679,15 +4472,8 @@ Resources requirements. - host - string - -
- - false - - port - int or string + seconds + integer
@@ -4696,7 +4482,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].resources +### PulsarCluster.spec.autorecovery.sidecars[index].lifecycle.preStop.tcpSocket @@ -4712,15 +4498,15 @@ Resources requirements. - limits - map[string]int or string + host + string
false - requests - map[string]int or string + port + int or string
@@ -4729,7 +4515,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].securityContext +### PulsarCluster.spec.autorecovery.sidecars[index].livenessProbe @@ -4745,78 +4531,71 @@ Resources requirements. - allowPrivilegeEscalation - boolean - -
- - false - - capabilities + exec object
false - privileged - boolean + failureThreshold + integer
false - procMount - string + grpc + object
false - readOnlyRootFilesystem - boolean + httpGet + object
false - runAsGroup + initialDelaySeconds integer
false - runAsNonRoot - boolean + periodSeconds + integer
false - runAsUser + successThreshold integer
false - seLinuxOptions + tcpSocket object
false - seccompProfile - object + terminationGracePeriodSeconds + integer
false - windowsOptions - object + timeoutSeconds + integer
@@ -4825,7 +4604,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].securityContext.capabilities +### PulsarCluster.spec.autorecovery.sidecars[index].livenessProbe.exec @@ -4841,15 +4620,41 @@ Resources requirements. - add + command []string
false + + + + +### PulsarCluster.spec.autorecovery.sidecars[index].livenessProbe.grpc + + + + + + + + + + + + + + + + + + + - - + + @@ -4858,7 +4663,7 @@ Resources requirements.
NameTypeDescriptionRequired
portinteger +
+
false
drop[]stringservicestring
-### PulsarCluster.spec.autorecovery.sidecars[index].securityContext.seLinuxOptions +### PulsarCluster.spec.autorecovery.sidecars[index].livenessProbe.httpGet @@ -4874,28 +4679,35 @@ Resources requirements. - level + host string
false - role - string + httpHeaders + []object
false - type + path string
false - user + port + int or string + +
+ + false + + scheme string
@@ -4905,7 +4717,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].securityContext.seccompProfile +### PulsarCluster.spec.autorecovery.sidecars[index].livenessProbe.httpGet.httpHeaders[index] @@ -4921,14 +4733,14 @@ Resources requirements. - localhostProfile + name string
false - type + value string
@@ -4938,7 +4750,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].securityContext.windowsOptions +### PulsarCluster.spec.autorecovery.sidecars[index].livenessProbe.tcpSocket @@ -4954,28 +4766,68 @@ Resources requirements. - gmsaCredentialSpec + host string
false - gmsaCredentialSpecName + port + int or string + +
+ + false + + + + +### PulsarCluster.spec.autorecovery.sidecars[index].ports[index] + + + + + + + + + + + + + + + + + + + + + - - + + - + + + + + +
NameTypeDescriptionRequired
containerPortinteger +
+
false
hostIP string
false
hostProcessbooleanhostPortinteger
false
runAsUserNamenamestring +
+
false
protocol string
@@ -4985,7 +4837,7 @@ Resources requirements.
-### PulsarCluster.spec.autorecovery.sidecars[index].startupProbe +### PulsarCluster.spec.autorecovery.sidecars[index].readinessProbe @@ -5001,7 +4853,7 @@ Resources requirements. - exec + exec object
@@ -5015,14 +4867,14 @@ Resources requirements. false - grpc + grpc object
false - httpGet + httpGet object
@@ -5050,7 +4902,7 @@ Resources requirements. false - tcpSocket + tcpSocket object
@@ -5074,7 +4926,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].startupProbe.exec +### PulsarCluster.spec.autorecovery.sidecars[index].readinessProbe.exec @@ -5100,7 +4952,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].startupProbe.grpc +### PulsarCluster.spec.autorecovery.sidecars[index].readinessProbe.grpc @@ -5133,7 +4985,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].startupProbe.httpGet +### PulsarCluster.spec.autorecovery.sidecars[index].readinessProbe.httpGet @@ -5156,7 +5008,7 @@ Resources requirements. false - httpHeaders + httpHeaders []object
@@ -5187,7 +5039,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].startupProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.autorecovery.sidecars[index].readinessProbe.httpGet.httpHeaders[index] @@ -5220,7 +5072,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].startupProbe.tcpSocket +### PulsarCluster.spec.autorecovery.sidecars[index].readinessProbe.tcpSocket @@ -5253,7 +5105,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].volumeDevices[index] +### PulsarCluster.spec.autorecovery.sidecars[index].resizePolicy[index] @@ -5269,14 +5121,14 @@ Resources requirements. - devicePath + resourceName string
false - name + restartPolicy string
@@ -5286,7 +5138,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.sidecars[index].volumeMounts[index] +### PulsarCluster.spec.autorecovery.sidecars[index].resources @@ -5302,43 +5154,22 @@ Resources requirements. - mountPath - string - -
- - false - - mountPropagation - string - -
- - false - - name - string - -
- - false - - readOnly - boolean + claims + []object
false - subPath - string + limits + map[string]int or string
false - subPathExpr - string + requests + map[string]int or string
@@ -5347,7 +5178,7 @@ Resources requirements. -### PulsarCluster.spec.autorecovery.tolerations[index] +### PulsarCluster.spec.autorecovery.sidecars[index].resources.claims[index] @@ -5363,35 +5194,14 @@ Resources requirements. - effect - string - -
- - false - - key - string - -
- - false - - operator + name string
false - tolerationSeconds - integer - -
- - false - - value + request string
@@ -5401,7 +5211,7 @@ Resources requirements. -### PulsarCluster.spec.bastion +### PulsarCluster.spec.autorecovery.sidecars[index].securityContext @@ -5417,163 +5227,131 @@ Resources requirements. - annotations - map[string]string + allowPrivilegeEscalation + boolean - Annotations to add to each resource (except pods).
+
false - antiAffinity + appArmorProfile object - Pod anti-affinity configuration. This override the global value if set.
- - false - - config - JSON - - Configuration.
- - false - - env - []object - - Additional container env variables.
+
false - gracePeriod - integer + capabilities + object - Termination grace period in seconds.

- Minimum: 0
false - image - string + privileged + boolean - Override Pulsar image.
+
false - imagePullPolicy + procMount string - Override image pull policy.
+
false - imagePullSecrets - []object + readOnlyRootFilesystem + boolean - Image pull secrets.
+
false - initContainers - []object + runAsGroup + integer - Init containers
+
false - labels - map[string]string + runAsNonRoot + boolean - Labels to add to each resource (except pods).
+
false - matchLabels - map[string]string + runAsUser + integer - Match labels selectors to add to each pod.
+
false - nodeAffinity + seLinuxOptions object - Node affinity configuration.
- - false - - nodeSelectors - map[string]string - - Additional node selectors.
- - false - - podAnnotations - map[string]string - - Annotations to add to pod.
- - false - - podLabels - map[string]string - - Labels to add to each pod.
+
false - replicas - integer + seccompProfile + object - Number of desired replicas.
+
false - resources + windowsOptions object - Resources requirements.
+
false - - serviceAccountName + + + + +### PulsarCluster.spec.autorecovery.sidecars[index].securityContext.appArmorProfile + + + + + + + + + + + + + + + + - - - - - - - - - - - - + +
NameTypeDescriptionRequired
localhostProfile string - Service account name for the resource.
-
false
sidecars[]object - Sidecar containers
-
false
targetProxyboolean - Indicates to connect to proxy or the broker. The default value depends whether Proxy is deployed or not.
+
false
tolerations[]objecttypestring - Pod tolerations.
+
false
-### PulsarCluster.spec.bastion.antiAffinity +### PulsarCluster.spec.autorecovery.sidecars[index].securityContext.capabilities + -Pod anti-affinity configuration. This override the global value if set. @@ -5585,28 +5363,28 @@ Pod anti-affinity configuration. This override the global value if set. - - + + - - + +
hostobjectadd[]string - Indicates the reclaimPolicy property for the StorageClass.
+
false
zoneobjectdrop[]string - Indicates the provisioner property for the StorageClass.
+
false
-### PulsarCluster.spec.bastion.antiAffinity.host +### PulsarCluster.spec.autorecovery.sidecars[index].securityContext.seLinuxOptions + -Indicates the reclaimPolicy property for the StorageClass. @@ -5618,28 +5396,42 @@ Indicates the reclaimPolicy property for the StorageClass. - - + + - - + + + + + + + + + + + +
enabledbooleanlevelstring - Indicates the reclaimPolicy property for the StorageClass.
+
false
requiredbooleanrolestring - Indicates the reclaimPolicy property for the StorageClass.
+
+
false
typestring +
+
false
userstring +
false
-### PulsarCluster.spec.bastion.antiAffinity.zone +### PulsarCluster.spec.autorecovery.sidecars[index].securityContext.seccompProfile + -Indicates the provisioner property for the StorageClass. @@ -5651,24 +5443,24 @@ Indicates the provisioner property for the StorageClass. - - + + - - + +
enabledbooleanlocalhostProfilestring - Indicates the reclaimPolicy property for the StorageClass.
+
false
requiredbooleantypestring - Indicates the reclaimPolicy property for the StorageClass.
+
false
-### PulsarCluster.spec.bastion.env[index] +### PulsarCluster.spec.autorecovery.sidecars[index].securityContext.windowsOptions @@ -5684,22 +5476,29 @@ Indicates the provisioner property for the StorageClass. - name + gmsaCredentialSpec string
false - value + gmsaCredentialSpecName string
false - valueFrom - object + hostProcess + boolean + +
+ + false + + runAsUserName + string
@@ -5708,7 +5507,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.env[index].valueFrom +### PulsarCluster.spec.autorecovery.sidecars[index].startupProbe @@ -5724,38 +5523,80 @@ Indicates the provisioner property for the StorageClass. - configMapKeyRef + exec object
false - fieldRef + failureThreshold + integer + +
+ + false + + grpc object
false - resourceFieldRef + httpGet object
false - secretKeyRef + initialDelaySeconds + integer + +
+ + false + + periodSeconds + integer + +
+ + false + + successThreshold + integer + +
+ + false + + tcpSocket object
false + + terminationGracePeriodSeconds + integer + +
+ + false + + timeoutSeconds + integer + +
+ + false -### PulsarCluster.spec.bastion.env[index].valueFrom.configMapKeyRef +### PulsarCluster.spec.autorecovery.sidecars[index].startupProbe.exec @@ -5771,22 +5612,8 @@ Indicates the provisioner property for the StorageClass. - key - string - -
- - false - - name - string - -
- - false - - optional - boolean + command + []string
@@ -5795,7 +5622,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.env[index].valueFrom.fieldRef +### PulsarCluster.spec.autorecovery.sidecars[index].startupProbe.grpc @@ -5811,14 +5638,14 @@ Indicates the provisioner property for the StorageClass. - apiVersion - string + port + integer
false - fieldPath + service string
@@ -5828,7 +5655,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.env[index].valueFrom.resourceFieldRef +### PulsarCluster.spec.autorecovery.sidecars[index].startupProbe.httpGet @@ -5844,21 +5671,35 @@ Indicates the provisioner property for the StorageClass. - containerName + host string
false - divisor + httpHeaders + []object + +
+ + false + + path + string + +
+ + false + + port int or string
false - resource + scheme string
@@ -5868,7 +5709,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.env[index].valueFrom.secretKeyRef +### PulsarCluster.spec.autorecovery.sidecars[index].startupProbe.httpGet.httpHeaders[index] @@ -5884,22 +5725,48 @@ Indicates the provisioner property for the StorageClass. - key + name string
false - name + value + string + +
+ + false + + + + +### PulsarCluster.spec.autorecovery.sidecars[index].startupProbe.tcpSocket + + + + + + + + + + + + + + + + - - + + @@ -5908,7 +5775,7 @@ Indicates the provisioner property for the StorageClass.
NameTypeDescriptionRequired
host string
false
optionalbooleanportint or string
-### PulsarCluster.spec.bastion.imagePullSecrets[index] +### PulsarCluster.spec.autorecovery.sidecars[index].volumeDevices[index] @@ -5924,6 +5791,13 @@ Indicates the provisioner property for the StorageClass. + devicePath + string + +
+ + false + name string @@ -5934,7 +5808,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.initContainers[index] +### PulsarCluster.spec.autorecovery.sidecars[index].volumeMounts[index] @@ -5950,255 +5824,299 @@ Indicates the provisioner property for the StorageClass. - args - []string + mountPath + string
false - command - []string + mountPropagation + string
false - env - []object + name + string
false - envFrom - []object + readOnly + boolean
false - image + recursiveReadOnly string
false - imagePullPolicy + subPath string
false - lifecycle - object - -
- - false - - livenessProbe - object + subPathExpr + string
false - - name + + + + +### PulsarCluster.spec.autorecovery.tolerations[index] + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + +
NameTypeDescriptionRequired
effect string
false
ports[]objectkeystring
false
readinessProbeobjectoperatorstring
false
resourcesobjecttolerationSecondsinteger
false
securityContextobjectvaluestring
false
startupProbe
+ + +### PulsarCluster.spec.bastion + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - + - - + + - + - + - - + + - -
NameTypeDescriptionRequired
annotationsmap[string]string + Annotations to add to each resource (except pods).
+
false
antiAffinity object -
+ Pod anti-affinity configuration. This override the global value if set.
false
stdinbooleanconfigJSON -
+ Configuration.
false
stdinOncebooleanenv[]object -
+ Additional container env variables.
false
terminationMessagePathstringgracePeriodinteger + Termination grace period in seconds.

+ Minimum: 0
false
terminationMessagePolicyimage string -
+ Override Pulsar image.
false
ttybooleanimagePullPolicystring -
+ Override image pull policy.
false
volumeDevicesimagePullSecrets []object -
+ Image pull secrets.
false
volumeMountsinitContainers []object -
+ Init containers
false
workingDirstringlabelsmap[string]string -
+ Labels to add to each resource (except pods).
false
- - -### PulsarCluster.spec.bastion.initContainers[index].env[index] - - - - - - - - - - - - - - - - - + + + - - + + - + - -
NameTypeDescriptionRequired
namestring
matchLabelsmap[string]string -
+ Match labels selectors to add to each pod.
false
valuestringminReadySecondsinteger -
+ Min seconds to wait before considering the pod as ready.
false
valueFromnodeAffinity object -
+ Node affinity configuration.
false
- - -### PulsarCluster.spec.bastion.initContainers[index].env[index].valueFrom - - - - - - - - - - - - - - - - - + + + - - + + - + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
configMapKeyRefobject
nodeSelectorsmap[string]string -
+ Additional node selectors.
false
fieldRefobjectpodAnnotationsmap[string]string -
+ Annotations to add to pod.
false
resourceFieldRefpodLabelsmap[string]string + Labels to add to each pod.
+
false
replicasinteger + Number of desired replicas.
+
false
resources object -
+ Resources requirements.
false
secretKeyRefsecurityContext object -
+ Subset of PodSecurityContext for basic UID, GID, and volume access control.
+
false
serviceAccountNamestring + Service account name for the resource.
+
false
sidecars[]object + Sidecar containers
+
false
targetProxyboolean + Indicates to connect to proxy or the broker. The default value depends whether Proxy is deployed or not.
+
false
tolerations[]object + Pod tolerations.
false
-### PulsarCluster.spec.bastion.initContainers[index].env[index].valueFrom.configMapKeyRef - +### PulsarCluster.spec.bastion.antiAffinity +Pod anti-affinity configuration. This override the global value if set. @@ -6210,35 +6128,28 @@ Indicates the provisioner property for the StorageClass. - - - - - - - + + - - + +
keystring -
-
false
namestringhostobject -
+ Indicates the reclaimPolicy property for the StorageClass.
false
optionalbooleanzoneobject -
+ Indicates the provisioner property for the StorageClass.
false
-### PulsarCluster.spec.bastion.initContainers[index].env[index].valueFrom.fieldRef - +### PulsarCluster.spec.bastion.antiAffinity.host +Indicates the reclaimPolicy property for the StorageClass. @@ -6250,28 +6161,28 @@ Indicates the provisioner property for the StorageClass. - - + + - - + +
apiVersionstringenabledboolean -
+ Indicates the reclaimPolicy property for the StorageClass.
false
fieldPathstringrequiredboolean -
+ Indicates the reclaimPolicy property for the StorageClass.
false
-### PulsarCluster.spec.bastion.initContainers[index].env[index].valueFrom.resourceFieldRef - +### PulsarCluster.spec.bastion.antiAffinity.zone +Indicates the provisioner property for the StorageClass. @@ -6283,31 +6194,24 @@ Indicates the provisioner property for the StorageClass. - - - - - - - + + - - + +
containerNamestring -
-
false
divisorint or stringenabledboolean -
+ Indicates the reclaimPolicy property for the StorageClass.
false
resourcestringrequiredboolean -
+ Indicates the reclaimPolicy property for the StorageClass.
false
-### PulsarCluster.spec.bastion.initContainers[index].env[index].valueFrom.secretKeyRef +### PulsarCluster.spec.bastion.env[index] @@ -6323,22 +6227,22 @@ Indicates the provisioner property for the StorageClass. - key + name string
false - name + value string
false - optional - boolean + valueFrom + object
@@ -6347,7 +6251,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.initContainers[index].envFrom[index] +### PulsarCluster.spec.bastion.env[index].valueFrom @@ -6363,21 +6267,28 @@ Indicates the provisioner property for the StorageClass. - configMapRef + configMapKeyRef object
false - prefix - string + fieldRef + object
false - secretRef + resourceFieldRef + object + +
+ + false + + secretKeyRef object
@@ -6387,7 +6298,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.initContainers[index].envFrom[index].configMapRef +### PulsarCluster.spec.bastion.env[index].valueFrom.configMapKeyRef @@ -6403,6 +6314,13 @@ Indicates the provisioner property for the StorageClass. + key + string + +
+ + false + name string @@ -6420,7 +6338,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.initContainers[index].envFrom[index].secretRef +### PulsarCluster.spec.bastion.env[index].valueFrom.fieldRef @@ -6436,15 +6354,15 @@ Indicates the provisioner property for the StorageClass. - name + apiVersion string
false - optional - boolean + fieldPath + string
@@ -6453,7 +6371,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.initContainers[index].lifecycle +### PulsarCluster.spec.bastion.env[index].valueFrom.resourceFieldRef @@ -6469,15 +6387,22 @@ Indicates the provisioner property for the StorageClass. - postStart - object + containerName + string
false - preStop - object + divisor + int or string + +
+ + false + + resource + string
@@ -6486,7 +6411,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.initContainers[index].lifecycle.postStart +### PulsarCluster.spec.bastion.env[index].valueFrom.secretKeyRef @@ -6502,22 +6427,22 @@ Indicates the provisioner property for the StorageClass. - exec - object + key + string
false - httpGet - object + name + string
false - tcpSocket - object + optional + boolean
@@ -6526,7 +6451,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.initContainers[index].lifecycle.postStart.exec +### PulsarCluster.spec.bastion.imagePullSecrets[index] @@ -6542,8 +6467,8 @@ Indicates the provisioner property for the StorageClass. - command - []string + name + string
@@ -6552,7 +6477,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.initContainers[index].lifecycle.postStart.httpGet +### PulsarCluster.spec.bastion.initContainers[index] @@ -6568,35 +6493,168 @@ Indicates the provisioner property for the StorageClass. - host + args + []string + +
+ + false + + command + []string + +
+ + false + + env + []object + +
+ + false + + envFrom + []object + +
+ + false + + image string
false - httpHeaders + imagePullPolicy + string + +
+ + false + + lifecycle + object + +
+ + false + + livenessProbe + object + +
+ + false + + name + string + +
+ + false + + ports []object
false - path + readinessProbe + object + +
+ + false + + resizePolicy + []object + +
+ + false + + resources + object + +
+ + false + + restartPolicy string
false - port - int or string + securityContext + object
false - scheme + startupProbe + object + +
+ + false + + stdin + boolean + +
+ + false + + stdinOnce + boolean + +
+ + false + + terminationMessagePath + string + +
+ + false + + terminationMessagePolicy + string + +
+ + false + + tty + boolean + +
+ + false + + volumeDevices + []object + +
+ + false + + volumeMounts + []object + +
+ + false + + workingDir string
@@ -6606,7 +6664,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.initContainers[index].lifecycle.postStart.httpGet.httpHeaders[index] +### PulsarCluster.spec.bastion.initContainers[index].env[index] @@ -6635,11 +6693,18 @@ Indicates the provisioner property for the StorageClass.
false + + valueFrom + object + +
+ + false -### PulsarCluster.spec.bastion.initContainers[index].lifecycle.postStart.tcpSocket +### PulsarCluster.spec.bastion.initContainers[index].env[index].valueFrom @@ -6655,15 +6720,29 @@ Indicates the provisioner property for the StorageClass. - host - string + configMapKeyRef + object
false - port - int or string + fieldRef + object + +
+ + false + + resourceFieldRef + object + +
+ + false + + secretKeyRef + object
@@ -6672,7 +6751,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.initContainers[index].lifecycle.preStop +### PulsarCluster.spec.bastion.initContainers[index].env[index].valueFrom.configMapKeyRef @@ -6688,22 +6767,22 @@ Indicates the provisioner property for the StorageClass. - exec - object + key + string
false - httpGet - object + name + string
false - tcpSocket - object + optional + boolean
@@ -6712,7 +6791,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.initContainers[index].lifecycle.preStop.exec +### PulsarCluster.spec.bastion.initContainers[index].env[index].valueFrom.fieldRef @@ -6728,8 +6807,15 @@ Indicates the provisioner property for the StorageClass. - command - []string + apiVersion + string + +
+ + false + + fieldPath + string
@@ -6738,7 +6824,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.initContainers[index].lifecycle.preStop.httpGet +### PulsarCluster.spec.bastion.initContainers[index].env[index].valueFrom.resourceFieldRef @@ -6754,45 +6840,71 @@ Indicates the provisioner property for the StorageClass. - host + containerName string
false - httpHeaders - []object + divisor + int or string
false - path + resource string
false - - port - int or string + + + + +### PulsarCluster.spec.bastion.initContainers[index].env[index].valueFrom.secretKeyRef + + + + + + + + + + + + + + + + + - + + + + + +
NameTypeDescriptionRequired
keystring
false
schemename string
false
optionalboolean +
+
false
-### PulsarCluster.spec.bastion.initContainers[index].lifecycle.preStop.httpGet.httpHeaders[index] +### PulsarCluster.spec.bastion.initContainers[index].envFrom[index] @@ -6808,24 +6920,31 @@ Indicates the provisioner property for the StorageClass. - name - string + configMapRef + object
false - value + prefix string
false + + secretRef + object + +
+ + false -### PulsarCluster.spec.bastion.initContainers[index].lifecycle.preStop.tcpSocket +### PulsarCluster.spec.bastion.initContainers[index].envFrom[index].configMapRef @@ -6841,15 +6960,15 @@ Indicates the provisioner property for the StorageClass. - host + name string
false - port - int or string + optional + boolean
@@ -6858,7 +6977,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.initContainers[index].livenessProbe +### PulsarCluster.spec.bastion.initContainers[index].envFrom[index].secretRef @@ -6874,71 +6993,102 @@ Indicates the provisioner property for the StorageClass. - exec - object + name + string
false - failureThreshold - integer + optional + boolean
false - - grpc + + + + +### PulsarCluster.spec.bastion.initContainers[index].lifecycle + + + + + + + + + + + + + + + + - + - - - - - - - + + - - - + +
NameTypeDescriptionRequired
postStart object
false
httpGetpreStop object
false
initialDelaySecondsinteger -
-
false
periodSecondsintegerstopSignalstring
false
successThresholdinteger
+ + +### PulsarCluster.spec.bastion.initContainers[index].lifecycle.postStart + + + + + + + + + + + + + + + + + - + - - + + - - + + @@ -6947,7 +7097,7 @@ Indicates the provisioner property for the StorageClass.
NameTypeDescriptionRequired
execobject
false
tcpSockethttpGet object
false
terminationGracePeriodSecondsintegersleepobject
false
timeoutSecondsintegertcpSocketobject
-### PulsarCluster.spec.bastion.initContainers[index].livenessProbe.exec +### PulsarCluster.spec.bastion.initContainers[index].lifecycle.postStart.exec @@ -6973,7 +7123,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.initContainers[index].livenessProbe.grpc +### PulsarCluster.spec.bastion.initContainers[index].lifecycle.postStart.httpGet @@ -6989,14 +7139,35 @@ Indicates the provisioner property for the StorageClass. + host + string + +
+ + false + + httpHeaders + []object + +
+ + false + + path + string + +
+ + false + port - integer + int or string
false - service + scheme string
@@ -7006,7 +7177,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.initContainers[index].livenessProbe.httpGet +### PulsarCluster.spec.bastion.initContainers[index].lifecycle.postStart.httpGet.httpHeaders[index] @@ -7022,36 +7193,74 @@ Indicates the provisioner property for the StorageClass. - host + name string
false - httpHeaders - []object + value + string
false - - path - string + + + + +### PulsarCluster.spec.bastion.initContainers[index].lifecycle.postStart.sleep + + + + + + + + + + + + + + + + + - - - + +
NameTypeDescriptionRequired
secondsinteger
false
portint or string
+ + +### PulsarCluster.spec.bastion.initContainers[index].lifecycle.postStart.tcpSocket + + + + + + + + + + + + + + + + + - - + + @@ -7060,7 +7269,7 @@ Indicates the provisioner property for the StorageClass.
NameTypeDescriptionRequired
hoststring
false
schemestringportint or string
-### PulsarCluster.spec.bastion.initContainers[index].livenessProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.bastion.initContainers[index].lifecycle.preStop @@ -7076,15 +7285,29 @@ Indicates the provisioner property for the StorageClass. - name - string + exec + object
false - value - string + httpGet + object + +
+ + false + + sleep + object + +
+ + false + + tcpSocket + object
@@ -7093,7 +7316,33 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.initContainers[index].livenessProbe.tcpSocket +### PulsarCluster.spec.bastion.initContainers[index].lifecycle.preStop.exec + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
command[]string +
+
false
+ + +### PulsarCluster.spec.bastion.initContainers[index].lifecycle.preStop.httpGet @@ -7115,6 +7364,20 @@ Indicates the provisioner property for the StorageClass.
false + + httpHeaders + []object + +
+ + false + + path + string + +
+ + false port int or string @@ -7122,11 +7385,18 @@ Indicates the provisioner property for the StorageClass.
false + + scheme + string + +
+ + false -### PulsarCluster.spec.bastion.initContainers[index].ports[index] +### PulsarCluster.spec.bastion.initContainers[index].lifecycle.preStop.httpGet.httpHeaders[index] @@ -7142,36 +7412,74 @@ Indicates the provisioner property for the StorageClass. - containerPort - integer + name + string
false - hostIP + value string
false - - hostPort + + + + +### PulsarCluster.spec.bastion.initContainers[index].lifecycle.preStop.sleep + + + + + + + + + + + + + + + + - - + +
NameTypeDescriptionRequired
seconds integer
false
name
+ + +### PulsarCluster.spec.bastion.initContainers[index].lifecycle.preStop.tcpSocket + + + + + + + + + + + + + + + + - - + + @@ -7180,7 +7488,7 @@ Indicates the provisioner property for the StorageClass.
NameTypeDescriptionRequired
host string
false
protocolstringportint or string
-### PulsarCluster.spec.bastion.initContainers[index].readinessProbe +### PulsarCluster.spec.bastion.initContainers[index].livenessProbe @@ -7196,7 +7504,7 @@ Indicates the provisioner property for the StorageClass. - exec + exec object
@@ -7210,14 +7518,14 @@ Indicates the provisioner property for the StorageClass. false - grpc + grpc object
false - httpGet + httpGet object
@@ -7245,7 +7553,7 @@ Indicates the provisioner property for the StorageClass. false - tcpSocket + tcpSocket object
@@ -7269,7 +7577,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.initContainers[index].readinessProbe.exec +### PulsarCluster.spec.bastion.initContainers[index].livenessProbe.exec @@ -7295,7 +7603,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.initContainers[index].readinessProbe.grpc +### PulsarCluster.spec.bastion.initContainers[index].livenessProbe.grpc @@ -7328,7 +7636,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.initContainers[index].readinessProbe.httpGet +### PulsarCluster.spec.bastion.initContainers[index].livenessProbe.httpGet @@ -7351,7 +7659,7 @@ Indicates the provisioner property for the StorageClass. false - httpHeaders + httpHeaders []object
@@ -7382,7 +7690,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.initContainers[index].readinessProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.bastion.initContainers[index].livenessProbe.httpGet.httpHeaders[index] @@ -7415,7 +7723,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.initContainers[index].readinessProbe.tcpSocket +### PulsarCluster.spec.bastion.initContainers[index].livenessProbe.tcpSocket @@ -7448,7 +7756,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.initContainers[index].resources +### PulsarCluster.spec.bastion.initContainers[index].ports[index] @@ -7464,15 +7772,36 @@ Indicates the provisioner property for the StorageClass. - limits - map[string]int or string + containerPort + integer
false - requests - map[string]int or string + hostIP + string + +
+ + false + + hostPort + integer + +
+ + false + + name + string + +
+ + false + + protocol + string
@@ -7481,7 +7810,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.initContainers[index].securityContext +### PulsarCluster.spec.bastion.initContainers[index].readinessProbe @@ -7497,78 +7826,71 @@ Indicates the provisioner property for the StorageClass. - allowPrivilegeEscalation - boolean - -
- - false - - capabilities + exec object
false - privileged - boolean + failureThreshold + integer
false - procMount - string + grpc + object
false - readOnlyRootFilesystem - boolean + httpGet + object
false - runAsGroup + initialDelaySeconds integer
false - runAsNonRoot - boolean + periodSeconds + integer
false - runAsUser + successThreshold integer
false - seLinuxOptions + tcpSocket object
false - seccompProfile - object + terminationGracePeriodSeconds + integer
false - windowsOptions - object + timeoutSeconds + integer
@@ -7577,7 +7899,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.initContainers[index].securityContext.capabilities +### PulsarCluster.spec.bastion.initContainers[index].readinessProbe.exec @@ -7593,14 +7915,7 @@ Indicates the provisioner property for the StorageClass. - add - []string - -
- - false - - drop + command []string
@@ -7610,7 +7925,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.bastion.initContainers[index].securityContext.seLinuxOptions +### PulsarCluster.spec.bastion.initContainers[index].readinessProbe.grpc @@ -7626,30 +7941,458 @@ Indicates the provisioner property for the StorageClass. - level - string - -
- - false - - role - string + port + integer
false - type + service string
false - - user - string - + + + + +### PulsarCluster.spec.bastion.initContainers[index].readinessProbe.httpGet + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
hoststring +
+
false
httpHeaders[]object +
+
false
pathstring +
+
false
portint or string +
+
false
schemestring +
+
false
+ + +### PulsarCluster.spec.bastion.initContainers[index].readinessProbe.httpGet.httpHeaders[index] + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
namestring +
+
false
valuestring +
+
false
+ + +### PulsarCluster.spec.bastion.initContainers[index].readinessProbe.tcpSocket + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
hoststring +
+
false
portint or string +
+
false
+ + +### PulsarCluster.spec.bastion.initContainers[index].resizePolicy[index] + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
resourceNamestring +
+
false
restartPolicystring +
+
false
+ + +### PulsarCluster.spec.bastion.initContainers[index].resources + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
claims[]object +
+
false
limitsmap[string]int or string +
+
false
requestsmap[string]int or string +
+
false
+ + +### PulsarCluster.spec.bastion.initContainers[index].resources.claims[index] + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
namestring +
+
false
requeststring +
+
false
+ + +### PulsarCluster.spec.bastion.initContainers[index].securityContext + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
allowPrivilegeEscalationboolean +
+
false
appArmorProfileobject +
+
false
capabilitiesobject +
+
false
privilegedboolean +
+
false
procMountstring +
+
false
readOnlyRootFilesystemboolean +
+
false
runAsGroupinteger +
+
false
runAsNonRootboolean +
+
false
runAsUserinteger +
+
false
seLinuxOptionsobject +
+
false
seccompProfileobject +
+
false
windowsOptionsobject +
+
false
+ + +### PulsarCluster.spec.bastion.initContainers[index].securityContext.appArmorProfile + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
localhostProfilestring +
+
false
typestring +
+
false
+ + +### PulsarCluster.spec.bastion.initContainers[index].securityContext.capabilities + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
add[]string +
+
false
drop[]string +
+
false
+ + +### PulsarCluster.spec.bastion.initContainers[index].securityContext.seLinuxOptions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8081,6 +8824,13 @@ Indicates the provisioner property for the StorageClass.
+ + + + + @@ -8433,6 +9183,13 @@ Resources requirements. + + + + +
NameTypeDescriptionRequired
levelstring +
+
false
rolestring +
+
false
typestring +
+
false
userstring
false false
recursiveReadOnlystring +
+
false
subPath string
claims[]object +
+
false
limits map[string]int or string @@ -8450,7 +9207,7 @@ Resources requirements.
-### PulsarCluster.spec.bastion.sidecars[index] +### PulsarCluster.spec.bastion.resources.claims[index] @@ -8466,85 +9223,193 @@ Resources requirements. - args - []string - -
- - false - - command - []string - -
- - false - - env - []object - -
- - false - - envFrom - []object + name + string
false - image + request string
false - - imagePullPolicy - string + + + + +### PulsarCluster.spec.bastion.securityContext + + + +Subset of PodSecurityContext for basic UID, GID, and volume access control. + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - - + +
NameTypeDescriptionRequired
fsGroupinteger
false
lifecycleobjectfsGroupChangePolicystring
false
livenessProbeobjectrunAsGroupinteger
false
namestringrunAsNonRootboolean
false
ports[]objectrunAsUserinteger
false
readinessProbeobjectsupplementalGroups[]integer
false
resourcesobject
+ + +### PulsarCluster.spec.bastion.sidecars[index] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8998,6 +9863,13 @@ Resources requirements.
+ + + + +
NameTypeDescriptionRequired
args[]string +
+
false
command[]string +
+
false
env[]object +
+
false
envFrom[]object +
+
false
imagestring +
+
false
imagePullPolicystring +
+
false
lifecycleobject +
+
false
livenessProbeobject +
+
false
namestring +
+
false
ports[]object +
+
false
readinessProbeobject +
+
false
resizePolicy[]object +
+
false
resourcesobject +
+
false
restartPolicystring
false
stopSignalstring +
+
false
@@ -9031,6 +9903,13 @@ Resources requirements.
false + + sleep + object + +
+ + false tcpSocket object @@ -9155,6 +10034,32 @@ Resources requirements. +### PulsarCluster.spec.bastion.sidecars[index].lifecycle.postStart.sleep + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
secondsinteger +
+
false
+ + ### PulsarCluster.spec.bastion.sidecars[index].lifecycle.postStart.tcpSocket @@ -9217,6 +10122,13 @@ Resources requirements.
false + + sleep + object + +
+ + false tcpSocket object @@ -9341,6 +10253,32 @@ Resources requirements. +### PulsarCluster.spec.bastion.sidecars[index].lifecycle.preStop.sleep + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
secondsinteger +
+
false
+ + ### PulsarCluster.spec.bastion.sidecars[index].lifecycle.preStop.tcpSocket @@ -9964,6 +10902,39 @@ Resources requirements. +### PulsarCluster.spec.bastion.sidecars[index].resizePolicy[index] + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
resourceNamestring +
+
false
restartPolicystring +
+
false
+ + ### PulsarCluster.spec.bastion.sidecars[index].resources @@ -9980,6 +10951,13 @@ Resources requirements. + claims + []object + +
+ + false + limits map[string]int or string @@ -9997,6 +10975,39 @@ Resources requirements. +### PulsarCluster.spec.bastion.sidecars[index].resources.claims[index] + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
namestring +
+
false
requeststring +
+
false
+ + ### PulsarCluster.spec.bastion.sidecars[index].securityContext @@ -10019,6 +11030,13 @@ Resources requirements.
false + + appArmorProfile + object + +
+ + false capabilities object @@ -10093,6 +11111,39 @@ Resources requirements. +### PulsarCluster.spec.bastion.sidecars[index].securityContext.appArmorProfile + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
localhostProfilestring +
+
false
typestring +
+
false
+ + ### PulsarCluster.spec.bastion.sidecars[index].securityContext.capabilities @@ -10597,6 +11648,13 @@ Resources requirements.
false + + recursiveReadOnly + string + +
+ + false subPath string @@ -10791,6 +11849,13 @@ Resources requirements. Match labels selectors to add to each pod.
false + + minReadySeconds + integer + + Min seconds to wait before considering the pod as ready.
+ + false nodeAffinity object @@ -10868,6 +11933,13 @@ Resources requirements. Resources requirements.
false + + securityContext + object + + Subset of PodSecurityContext for basic UID, GID, and volume access control.
+ + false service object @@ -11004,6 +12076,13 @@ Mount additional volumes to the pod.
false + + recursiveReadOnly + string + +
+ + false subPath string @@ -11156,6 +12235,13 @@ Mount additional volumes to the pod.
false + + image + object + +
+ + false iscsi object @@ -12281,6 +13367,13 @@ Mount additional volumes to the pod.
false + + volumeAttributesClassName + string + +
+ + false volumeMode string @@ -12375,6 +13468,13 @@ Mount additional volumes to the pod.
false + + namespace + string + +
+ + false @@ -12812,6 +13912,39 @@ Mount additional volumes to the pod. +### PulsarCluster.spec.bookkeeper.additionalVolumes.volumes[index].image + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
pullPolicystring +
+
false
referencestring +
+
false
+ + ### PulsarCluster.spec.bookkeeper.additionalVolumes.volumes[index].iscsi @@ -13129,6 +14262,13 @@ Mount additional volumes to the pod. + clusterTrustBundle + object + +
+ + false + configMap object @@ -13160,7 +14300,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.additionalVolumes.volumes[index].projected.sources[index].configMap +### PulsarCluster.spec.bookkeeper.additionalVolumes.volumes[index].projected.sources[index].clusterTrustBundle @@ -13176,8 +14316,8 @@ Mount additional volumes to the pod. - items - []object + labelSelector + object
@@ -13196,105 +14336,6 @@ Mount additional volumes to the pod.
false - - - - -### PulsarCluster.spec.bookkeeper.additionalVolumes.volumes[index].projected.sources[index].configMap.items[index] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
keystring -
-
false
modeinteger -
-
false
pathstring -
-
false
- - -### PulsarCluster.spec.bookkeeper.additionalVolumes.volumes[index].projected.sources[index].downwardAPI - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
items[]object -
-
false
- - -### PulsarCluster.spec.bookkeeper.additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index] - - - - - - - - - - - - - - - - - - - - - - - - @@ -13303,40 +14344,7 @@ Mount additional volumes to the pod. - - - - - -
NameTypeDescriptionRequired
fieldRefobject -
-
false
modeinteger -
-
false
path string false
resourceFieldRefobject -
-
false
- - -### PulsarCluster.spec.bookkeeper.additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index].fieldRef - - - - - - - - - - - - - - - - - - - - - +
NameTypeDescriptionRequired
apiVersionstring -
-
false
fieldPathsignerName string
@@ -13346,7 +14354,7 @@ Mount additional volumes to the pod.
-### PulsarCluster.spec.bookkeeper.additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index].resourceFieldRef +### PulsarCluster.spec.bookkeeper.additionalVolumes.volumes[index].projected.sources[index].clusterTrustBundle.labelSelector @@ -13362,62 +14370,15 @@ Mount additional volumes to the pod. - containerName - string - -
- - false - - divisor - int or string - -
- - false - - resource - string - -
- - false - - - - -### PulsarCluster.spec.bookkeeper.additionalVolumes.volumes[index].projected.sources[index].secret - - - - - - - - - - - - - - - - + - - - - - - - + + @@ -13426,7 +14387,313 @@ Mount additional volumes to the pod.
NameTypeDescriptionRequired
itemsmatchExpressions []object
false
namestring -
-
false
optionalbooleanmatchLabelsmap[string]string
-### PulsarCluster.spec.bookkeeper.additionalVolumes.volumes[index].projected.sources[index].secret.items[index] +### PulsarCluster.spec.bookkeeper.additionalVolumes.volumes[index].projected.sources[index].clusterTrustBundle.labelSelector.matchExpressions[index] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
keystring +
+
false
operatorstring +
+
false
values[]string +
+
false
+ + +### PulsarCluster.spec.bookkeeper.additionalVolumes.volumes[index].projected.sources[index].configMap + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
items[]object +
+
false
namestring +
+
false
optionalboolean +
+
false
+ + +### PulsarCluster.spec.bookkeeper.additionalVolumes.volumes[index].projected.sources[index].configMap.items[index] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
keystring +
+
false
modeinteger +
+
false
pathstring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.additionalVolumes.volumes[index].projected.sources[index].downwardAPI + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
items[]object +
+
false
+ + +### PulsarCluster.spec.bookkeeper.additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
fieldRefobject +
+
false
modeinteger +
+
false
pathstring +
+
false
resourceFieldRefobject +
+
false
+ + +### PulsarCluster.spec.bookkeeper.additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index].fieldRef + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
apiVersionstring +
+
false
fieldPathstring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index].resourceFieldRef + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
containerNamestring +
+
false
divisorint or string +
+
false
resourcestring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.additionalVolumes.volumes[index].projected.sources[index].secret + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
items[]object +
+
false
namestring +
+
false
optionalboolean +
+
false
+ + +### PulsarCluster.spec.bookkeeper.additionalVolumes.volumes[index].projected.sources[index].secret.items[index] @@ -14596,6 +15863,13 @@ Autoscaling config.
false + + resizePolicy + []object + +
+ + false resources object @@ -14603,6 +15877,13 @@ Autoscaling config.
false + + restartPolicy + string + +
+ + false securityContext object @@ -15052,6 +16333,13 @@ Autoscaling config.
false + + stopSignal + string + +
+ + false @@ -15085,6 +16373,13 @@ Autoscaling config.
false + + sleep + object + +
+ + false tcpSocket object @@ -15209,160 +16504,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.initContainers[index].lifecycle.postStart.tcpSocket - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
hoststring -
-
false
portint or string -
-
false
- - -### PulsarCluster.spec.bookkeeper.initContainers[index].lifecycle.preStop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
execobject -
-
false
httpGetobject -
-
false
tcpSocketobject -
-
false
- - -### PulsarCluster.spec.bookkeeper.initContainers[index].lifecycle.preStop.exec - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
command[]string -
-
false
- - -### PulsarCluster.spec.bookkeeper.initContainers[index].lifecycle.preStop.httpGet - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
hoststring -
-
false
httpHeaders[]object -
-
false
pathstring -
-
false
portint or string -
-
false
schemestring -
-
false
- - -### PulsarCluster.spec.bookkeeper.initContainers[index].lifecycle.preStop.httpGet.httpHeaders[index] +### PulsarCluster.spec.bookkeeper.initContainers[index].lifecycle.postStart.sleep @@ -15378,15 +16520,8 @@ Autoscaling config. - name - string - -
- - false - - value - string + seconds + integer
@@ -15395,7 +16530,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.initContainers[index].lifecycle.preStop.tcpSocket +### PulsarCluster.spec.bookkeeper.initContainers[index].lifecycle.postStart.tcpSocket @@ -15428,7 +16563,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.initContainers[index].livenessProbe +### PulsarCluster.spec.bookkeeper.initContainers[index].lifecycle.preStop @@ -15444,80 +16579,38 @@ Autoscaling config. - exec + exec object
false - failureThreshold - integer - -
- - false - - grpc + httpGet object
false - httpGet + sleep object
false - initialDelaySeconds - integer - -
- - false - - periodSeconds - integer - -
- - false - - successThreshold - integer - -
- - false - - tcpSocket + tcpSocket object
false - - terminationGracePeriodSeconds - integer - -
- - false - - timeoutSeconds - integer - -
- - false -### PulsarCluster.spec.bookkeeper.initContainers[index].livenessProbe.exec +### PulsarCluster.spec.bookkeeper.initContainers[index].lifecycle.preStop.exec @@ -15543,40 +16636,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.initContainers[index].livenessProbe.grpc - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
portinteger -
-
false
servicestring -
-
false
- - -### PulsarCluster.spec.bookkeeper.initContainers[index].livenessProbe.httpGet +### PulsarCluster.spec.bookkeeper.initContainers[index].lifecycle.preStop.httpGet @@ -15599,7 +16659,7 @@ Autoscaling config. false - httpHeaders + httpHeaders []object
@@ -15630,7 +16690,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.initContainers[index].livenessProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.bookkeeper.initContainers[index].lifecycle.preStop.httpGet.httpHeaders[index] @@ -15663,7 +16723,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.initContainers[index].livenessProbe.tcpSocket +### PulsarCluster.spec.bookkeeper.initContainers[index].lifecycle.preStop.sleep @@ -15679,15 +16739,8 @@ Autoscaling config. - host - string - -
- - false - - port - int or string + seconds + integer
@@ -15696,7 +16749,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.initContainers[index].ports[index] +### PulsarCluster.spec.bookkeeper.initContainers[index].lifecycle.preStop.tcpSocket @@ -15712,36 +16765,15 @@ Autoscaling config. - containerPort - integer - -
- - false - - hostIP - string - -
- - false - - hostPort - integer - -
- - false - - name + host string
false - protocol - string + port + int or string
@@ -15750,7 +16782,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.initContainers[index].readinessProbe +### PulsarCluster.spec.bookkeeper.initContainers[index].livenessProbe @@ -15766,7 +16798,7 @@ Autoscaling config. - exec + exec object
@@ -15780,14 +16812,14 @@ Autoscaling config. false - grpc + grpc object
false - httpGet + httpGet object
@@ -15815,7 +16847,7 @@ Autoscaling config. false - tcpSocket + tcpSocket object
@@ -15839,7 +16871,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.initContainers[index].readinessProbe.exec +### PulsarCluster.spec.bookkeeper.initContainers[index].livenessProbe.exec @@ -15865,7 +16897,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.initContainers[index].readinessProbe.grpc +### PulsarCluster.spec.bookkeeper.initContainers[index].livenessProbe.grpc @@ -15898,7 +16930,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.initContainers[index].readinessProbe.httpGet +### PulsarCluster.spec.bookkeeper.initContainers[index].livenessProbe.httpGet @@ -15921,7 +16953,7 @@ Autoscaling config. false - httpHeaders + httpHeaders []object
@@ -15952,7 +16984,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.initContainers[index].readinessProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.bookkeeper.initContainers[index].livenessProbe.httpGet.httpHeaders[index] @@ -15985,7 +17017,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.initContainers[index].readinessProbe.tcpSocket +### PulsarCluster.spec.bookkeeper.initContainers[index].livenessProbe.tcpSocket @@ -16018,7 +17050,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.initContainers[index].resources +### PulsarCluster.spec.bookkeeper.initContainers[index].ports[index] @@ -16034,15 +17066,36 @@ Autoscaling config. - limits - map[string]int or string + containerPort + integer
false - requests - map[string]int or string + hostIP + string + +
+ + false + + hostPort + integer + +
+ + false + + name + string + +
+ + false + + protocol + string
@@ -16051,7 +17104,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.initContainers[index].securityContext +### PulsarCluster.spec.bookkeeper.initContainers[index].readinessProbe @@ -16067,78 +17120,71 @@ Autoscaling config. - allowPrivilegeEscalation - boolean - -
- - false - - capabilities + exec object
false - privileged - boolean + failureThreshold + integer
false - procMount - string + grpc + object
false - readOnlyRootFilesystem - boolean + httpGet + object
false - runAsGroup + initialDelaySeconds integer
false - runAsNonRoot - boolean + periodSeconds + integer
false - runAsUser + successThreshold integer
false - seLinuxOptions + tcpSocket object
false - seccompProfile - object + terminationGracePeriodSeconds + integer
false - windowsOptions - object + timeoutSeconds + integer
@@ -16147,7 +17193,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.initContainers[index].securityContext.capabilities +### PulsarCluster.spec.bookkeeper.initContainers[index].readinessProbe.exec @@ -16163,14 +17209,7 @@ Autoscaling config. - add - []string - -
- - false - - drop + command []string
@@ -16180,7 +17219,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.initContainers[index].securityContext.seLinuxOptions +### PulsarCluster.spec.bookkeeper.initContainers[index].readinessProbe.grpc @@ -16196,28 +17235,14 @@ Autoscaling config. - level - string - -
- - false - - role - string - -
- - false - - type - string + port + integer
false - user + service string
@@ -16227,7 +17252,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.initContainers[index].securityContext.seccompProfile +### PulsarCluster.spec.bookkeeper.initContainers[index].readinessProbe.httpGet @@ -16243,61 +17268,35 @@ Autoscaling config. - localhostProfile + host string
false - type - string - -
- - false - - - - -### PulsarCluster.spec.bookkeeper.initContainers[index].securityContext.windowsOptions - - - - - - - - - - - - - - - - - + + - + - - + + - +
NameTypeDescriptionRequired
gmsaCredentialSpecstringhttpHeaders[]object
false
gmsaCredentialSpecNamepath string
false
hostProcessbooleanportint or string
false
runAsUserNamescheme string
@@ -16307,7 +17306,7 @@ Autoscaling config.
-### PulsarCluster.spec.bookkeeper.initContainers[index].startupProbe +### PulsarCluster.spec.bookkeeper.initContainers[index].readinessProbe.httpGet.httpHeaders[index] @@ -16323,71 +17322,15 @@ Autoscaling config. - exec - object - -
- - false - - failureThreshold - integer - -
- - false - - grpc - object - -
- - false - - httpGet - object - -
- - false - - initialDelaySeconds - integer - -
- - false - - periodSeconds - integer - -
- - false - - successThreshold - integer - -
- - false - - tcpSocket - object - -
- - false - - terminationGracePeriodSeconds - integer + name + string
false - timeoutSeconds - integer + value + string
@@ -16396,7 +17339,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.initContainers[index].startupProbe.exec +### PulsarCluster.spec.bookkeeper.initContainers[index].readinessProbe.tcpSocket @@ -16412,8 +17355,15 @@ Autoscaling config. - command - []string + host + string + +
+ + false + + port + int or string
@@ -16422,7 +17372,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.initContainers[index].startupProbe.grpc +### PulsarCluster.spec.bookkeeper.initContainers[index].resizePolicy[index] @@ -16438,14 +17388,14 @@ Autoscaling config. - port - integer + resourceName + string
false - service + restartPolicy string
@@ -16455,7 +17405,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.initContainers[index].startupProbe.httpGet +### PulsarCluster.spec.bookkeeper.initContainers[index].resources @@ -16471,36 +17421,22 @@ Autoscaling config. - host - string - -
- - false - - httpHeaders + claims []object
false - path - string - -
- - false - - port - int or string + limits + map[string]int or string
false - scheme - string + requests + map[string]int or string
@@ -16509,7 +17445,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.initContainers[index].startupProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.bookkeeper.initContainers[index].resources.claims[index] @@ -16532,7 +17468,7 @@ Autoscaling config. false - value + request string
@@ -16542,7 +17478,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.initContainers[index].startupProbe.tcpSocket +### PulsarCluster.spec.bookkeeper.initContainers[index].securityContext @@ -16558,108 +17494,117 @@ Autoscaling config. - host - string + allowPrivilegeEscalation + boolean
false - port - int or string + appArmorProfile + object
false - - - - -### PulsarCluster.spec.bookkeeper.initContainers[index].volumeDevices[index] - - - - - - - - - - - - - - - - - + + + - - + + - -
NameTypeDescriptionRequired
devicePathstring
capabilitiesobject
false
namestringprivilegedboolean
false
- - -### PulsarCluster.spec.bookkeeper.initContainers[index].volumeMounts[index] - - - - - - - - - - - - - - - - + + - - + + - - + + - + - + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
mountPath
procMount string
false
mountPropagationstringreadOnlyRootFilesystemboolean
false
namestringrunAsGroupinteger
false
readOnlyrunAsNonRoot boolean
false
subPathrunAsUserinteger +
+
false
seLinuxOptionsobject +
+
false
seccompProfileobject +
+
false
windowsOptionsobject +
+
false
+ + +### PulsarCluster.spec.bookkeeper.initContainers[index].securityContext.appArmorProfile + + + + + + + + + + + + + + + + - +
NameTypeDescriptionRequired
localhostProfile string
false
subPathExprtype string
@@ -16669,11 +17614,11 @@ Autoscaling config.
-### PulsarCluster.spec.bookkeeper.nodeAffinity +### PulsarCluster.spec.bookkeeper.initContainers[index].securityContext.capabilities + -Node affinity configuration. @@ -16685,15 +17630,15 @@ Node affinity configuration. - - + + - - + + @@ -16702,7 +17647,7 @@ Node affinity configuration.
preferredDuringSchedulingIgnoredDuringExecution[]objectadd[]string
false
requiredDuringSchedulingIgnoredDuringExecutionobjectdrop[]string
-### PulsarCluster.spec.bookkeeper.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index] +### PulsarCluster.spec.bookkeeper.initContainers[index].securityContext.seLinuxOptions @@ -16718,15 +17663,29 @@ Node affinity configuration. - preference - object + level + string
false - weight - integer + role + string + +
+ + false + + type + string + +
+ + false + + user + string
@@ -16735,7 +17694,7 @@ Node affinity configuration. -### PulsarCluster.spec.bookkeeper.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference +### PulsarCluster.spec.bookkeeper.initContainers[index].securityContext.seccompProfile @@ -16751,15 +17710,15 @@ Node affinity configuration. - matchExpressions - []object + localhostProfile + string
false - matchFields - []object + type + string
@@ -16768,7 +17727,7 @@ Node affinity configuration. -### PulsarCluster.spec.bookkeeper.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference.matchExpressions[index] +### PulsarCluster.spec.bookkeeper.initContainers[index].securityContext.windowsOptions @@ -16784,22 +17743,29 @@ Node affinity configuration. - key + gmsaCredentialSpec string
false - operator + gmsaCredentialSpecName string
false - values - []string + hostProcess + boolean + +
+ + false + + runAsUserName + string
@@ -16808,7 +17774,7 @@ Node affinity configuration. -### PulsarCluster.spec.bookkeeper.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference.matchFields[index] +### PulsarCluster.spec.bookkeeper.initContainers[index].startupProbe @@ -16824,22 +17790,71 @@ Node affinity configuration. - key - string + exec + object
false - operator - string + failureThreshold + integer
false - values - []string + grpc + object + +
+ + false + + httpGet + object + +
+ + false + + initialDelaySeconds + integer + +
+ + false + + periodSeconds + integer + +
+ + false + + successThreshold + integer + +
+ + false + + tcpSocket + object + +
+ + false + + terminationGracePeriodSeconds + integer + +
+ + false + + timeoutSeconds + integer
@@ -16848,7 +17863,7 @@ Node affinity configuration. -### PulsarCluster.spec.bookkeeper.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution +### PulsarCluster.spec.bookkeeper.initContainers[index].startupProbe.exec @@ -16864,8 +17879,8 @@ Node affinity configuration. - nodeSelectorTerms - []object + command + []string
@@ -16874,7 +17889,7 @@ Node affinity configuration. -### PulsarCluster.spec.bookkeeper.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index] +### PulsarCluster.spec.bookkeeper.initContainers[index].startupProbe.grpc @@ -16890,15 +17905,15 @@ Node affinity configuration. - matchExpressions - []object + port + integer
false - matchFields - []object + service + string
@@ -16907,7 +17922,7 @@ Node affinity configuration. -### PulsarCluster.spec.bookkeeper.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index].matchExpressions[index] +### PulsarCluster.spec.bookkeeper.initContainers[index].startupProbe.httpGet @@ -16923,22 +17938,36 @@ Node affinity configuration. - key + host string
false - operator + httpHeaders + []object + +
+ + false + + path string
false - values - []string + port + int or string + +
+ + false + + scheme + string
@@ -16947,7 +17976,7 @@ Node affinity configuration. -### PulsarCluster.spec.bookkeeper.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index].matchFields[index] +### PulsarCluster.spec.bookkeeper.initContainers[index].startupProbe.httpGet.httpHeaders[index] @@ -16963,35 +17992,28 @@ Node affinity configuration. - key + name string
false - operator + value string
false - - values - []string - -
- - false -### PulsarCluster.spec.bookkeeper.pdb +### PulsarCluster.spec.bookkeeper.initContainers[index].startupProbe.tcpSocket + -Pod disruption budget configuration. @@ -17003,28 +18025,28 @@ Pod disruption budget configuration. - - + + - - + +
enabledbooleanhoststring - Enable Pdb policy.
+
false
maxUnavailableintegerportint or string - Number of maxUnavailable pods.
+
false
-### PulsarCluster.spec.bookkeeper.probes +### PulsarCluster.spec.bookkeeper.initContainers[index].volumeDevices[index] + -Liveness and readiness probes configuration. @@ -17036,28 +18058,28 @@ Liveness and readiness probes configuration. - - + + - - + +
livenessobjectdevicePathstring - Liveness probe configuration.
+
false
readinessobjectnamestring - Readiness probe configuration.
+
false
-### PulsarCluster.spec.bookkeeper.probes.liveness +### PulsarCluster.spec.bookkeeper.initContainers[index].volumeMounts[index] + -Liveness probe configuration. @@ -17069,63 +18091,63 @@ Liveness probe configuration. - - + + - - + + - - + + - - + + - - + + - - + + - - + +
enabledbooleanmountPathstring - Enables the probe.
+
false
failureThresholdintegermountPropagationstring - Failure threshold.
+
false
initialDelaySecondsintegernamestring - Indicates the initial delay (in seconds) for the probe.
+
false
periodSecondsintegerreadOnlyboolean - Indicates the period (in seconds) for the probe.
+
false
successThresholdintegerrecursiveReadOnlystring - Success threshold.
+
false
terminationGracePeriodSecondsintegersubPathstring - Indicates the termination grace period (in seconds) for the probe.
+
false
timeoutSecondsintegersubPathExprstring - Indicates the timeout (in seconds) for the probe.
+
false
-### PulsarCluster.spec.bookkeeper.probes.readiness +### PulsarCluster.spec.bookkeeper.nodeAffinity -Readiness probe configuration. +Node affinity configuration. @@ -17137,63 +18159,28 @@ Readiness probe configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + +
enabledboolean - Enables the probe.
-
false
failureThresholdinteger - Failure threshold.
-
false
initialDelaySecondsinteger - Indicates the initial delay (in seconds) for the probe.
-
false
periodSecondsinteger - Indicates the period (in seconds) for the probe.
-
false
successThresholdinteger - Success threshold.
-
false
terminationGracePeriodSecondsintegerpreferredDuringSchedulingIgnoredDuringExecution[]object - Indicates the termination grace period (in seconds) for the probe.
+
false
timeoutSecondsintegerrequiredDuringSchedulingIgnoredDuringExecutionobject - Indicates the timeout (in seconds) for the probe.
+
false
-### PulsarCluster.spec.bookkeeper.resources +### PulsarCluster.spec.bookkeeper.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index] + -Resources requirements. @@ -17205,15 +18192,15 @@ Resources requirements. - - + + - - + + @@ -17222,11 +18209,11 @@ Resources requirements.
limitsmap[string]int or stringpreferenceobject
false
requestsmap[string]int or stringweightinteger
-### PulsarCluster.spec.bookkeeper.service +### PulsarCluster.spec.bookkeeper.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference + -Service configuration. @@ -17238,24 +18225,24 @@ Service configuration. - + - - + +
additionalPortsmatchExpressions []object - Additional ports to add to the Service.
+
false
annotationsmap[string]stringmatchFields[]object - Additional annotations to add to the Service.
+
false
-### PulsarCluster.spec.bookkeeper.service.additionalPorts[index] +### PulsarCluster.spec.bookkeeper.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference.matchExpressions[index] @@ -17271,43 +18258,62 @@ Service configuration. - appProtocol + key string
false - name + operator string
false - nodePort - integer + values + []string
false - - port - integer + + + + +### PulsarCluster.spec.bookkeeper.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference.matchFields[index] + + + + + + + + + + + + + + + + + - + - - + + @@ -17316,7 +18322,7 @@ Service configuration.
NameTypeDescriptionRequired
keystring
false
protocoloperator string
false
targetPortint or stringvalues[]string
-### PulsarCluster.spec.bookkeeper.sets[key] +### PulsarCluster.spec.bookkeeper.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution @@ -17332,233 +18338,383 @@ Service configuration. - additionalVolumes - object - - Mount additional volumes to the pod.
- - false - - annotations - map[string]string + nodeSelectorTerms + []object - Annotations to add to each resource (except pods).
+
false - - antiAffinity - object + + + + +### PulsarCluster.spec.bookkeeper.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index] + + + + + + + + + + + + + + + + + - - + + - - - + +
NameTypeDescriptionRequired
matchExpressions[]object - Pod anti-affinity configuration. This override the global value if set.
+
false
autoscalerobjectmatchFields[]object - Autoscaling config.
+
false
cleanUpPvcsboolean
+ + +### PulsarCluster.spec.bookkeeper.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index].matchExpressions[index] + + + + + + + + + + + + + + + + + - - + + - - + + - - - + +
NameTypeDescriptionRequired
keystring - Cleanup PVCs after the bookie has been removed.
+
false
configJSONoperatorstring - Configuration.
+
false
env[]objectvalues[]string - Additional container env variables.
+
false
gracePeriodinteger
+ + +### PulsarCluster.spec.bookkeeper.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index].matchFields[index] + + + + + + + + + + + + + + + + + - + - - + + - - - + +
NameTypeDescriptionRequired
keystring - Termination grace period in seconds.

- Minimum: 0
false
imageoperator string - Override Pulsar image.
+
false
imagePullPolicystringvalues[]string - Override image pull policy.
+
false
imagePullSecrets[]object
+ + +### PulsarCluster.spec.bookkeeper.pdb + + + +Pod disruption budget configuration. + + + + + + + + + + + + + - - + + - - + + - - - + +
NameTypeDescriptionRequired
enabledboolean - Image pull secrets.
+ Enable Pdb policy.
false
initContainers[]objectmaxUnavailableinteger - Init containers
+ Number of maxUnavailable pods.
false
labelsmap[string]stringminAvailableinteger - Labels to add to each resource (except pods).
+ Number of minAvailable pods.
false
matchLabelsmap[string]string
+ + +### PulsarCluster.spec.bookkeeper.probes + + + +Liveness and readiness probes configuration. + + + + + + + + + + + + + - + - - - + +
NameTypeDescriptionRequired
livenessobject - Match labels selectors to add to each pod.
+ Liveness probe configuration.
false
nodeAffinityreadiness object - Node affinity configuration.
+ Readiness probe configuration.
false
nodeSelectorsmap[string]string
+ + +### PulsarCluster.spec.bookkeeper.probes.liveness + + + +Liveness probe configuration. + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + +
NameTypeDescriptionRequired
enabledboolean - Additional node selectors.
+ Enables the probe.
false
overrideResourceNamestringfailureThresholdinteger - Override the resource names generated by the operator.
+ Failure threshold.
false
pdbobjectinitialDelaySecondsinteger - Pod disruption budget configuration.
+ Indicates the initial delay (in seconds) for the probe.
false
podAnnotationsmap[string]stringperiodSecondsinteger - Annotations to add to pod.
+ Indicates the period (in seconds) for the probe.
false
podLabelsmap[string]stringsuccessThresholdinteger - Labels to add to each pod.
+ Success threshold.
false
podManagementPolicystringterminationGracePeriodSecondsinteger - Pod management policy. Default value is 'Parallel'.
+ Indicates the termination grace period (in seconds) for the probe.
false
probesobjecttimeoutSecondsinteger - Liveness and readiness probes configuration.
+ Indicates the timeout (in seconds) for the probe.
false
pvcPrefixstring
+ + +### PulsarCluster.spec.bookkeeper.probes.readiness + + + +Readiness probe configuration. + + + + + + + + + + + + + - + - - + + - - + + - - + + - - + + - + + + + + +
NameTypeDescriptionRequired
enabledboolean - Prefix for each PVC created.
+ Enables the probe.
false
replicasfailureThreshold integer - Number of desired replicas.
+ Failure threshold.
false
resourcesobjectinitialDelaySecondsinteger - Resources requirements.
+ Indicates the initial delay (in seconds) for the probe.
false
serviceobjectperiodSecondsinteger - Service configuration.
+ Indicates the period (in seconds) for the probe.
false
serviceAccountNamestringsuccessThresholdinteger - Service account name for the resource.
+ Success threshold.
false
sidecars[]objectterminationGracePeriodSecondsinteger - Sidecar containers
+ Indicates the termination grace period (in seconds) for the probe.
false
tolerationstimeoutSecondsinteger + Indicates the timeout (in seconds) for the probe.
+
false
+ + +### PulsarCluster.spec.bookkeeper.resources + + + +Resources requirements. + + + + + + + + + + + + - - + + - - + +
NameTypeDescriptionRequired
claims []object - Pod tolerations.
+
false
updateStrategyobjectlimitsmap[string]int or string - Update strategy for the StatefulSet. Default value is rolling update.
+
false
volumesobjectrequestsmap[string]int or string - Volumes configuration.
+
false
-### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes +### PulsarCluster.spec.bookkeeper.resources.claims[index] + -Mount additional volumes to the pod. @@ -17570,28 +18726,28 @@ Mount additional volumes to the pod. - - + + - - + +
mounts[]objectnamestring - Mount points for the additional volumes
+
false
volumes[]objectrequeststring - Additional volumes to be mounted to the pod
+
false
-### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.mounts[index] - +### PulsarCluster.spec.bookkeeper.securityContext +Subset of PodSecurityContext for basic UID, GID, and volume access control. @@ -17603,43 +18759,43 @@ Mount additional volumes to the pod. - - + + - + - - + + - + - - + + - - + + @@ -17648,11 +18804,11 @@ Mount additional volumes to the pod.
mountPathstringfsGroupinteger
false
mountPropagationfsGroupChangePolicy string
false
namestringrunAsGroupinteger
false
readOnlyrunAsNonRoot boolean
false
subPathstringrunAsUserinteger
false
subPathExprstringsupplementalGroups[]integer
-### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index] - +### PulsarCluster.spec.bookkeeper.service +Service configuration. @@ -17664,142 +18820,596 @@ Mount additional volumes to the pod. - - + + - - + + - - - + +
awsElasticBlockStoreobjectadditionalPorts[]object -
+ Additional ports to add to the Service.
false
azureDiskobjectannotationsmap[string]string -
+ Additional annotations to add to the Service.
false
azureFileobject
+ + +### PulsarCluster.spec.bookkeeper.service.additionalPorts[index] + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + +
NameTypeDescriptionRequired
appProtocolstring
false
cephfsobjectnamestring
false
cinderobjectnodePortinteger
false
configMapobjectportinteger
false
csiobjectprotocolstring
false
downwardAPIobjecttargetPortint or string
false
emptyDir
+ + +### PulsarCluster.spec.bookkeeper.sets[key] + + + + + + + + + + + + + + + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
additionalVolumes object -
+ Mount additional volumes to the pod.
false
ephemeralobjectannotationsmap[string]string -
+ Annotations to add to each resource (except pods).
false
fcantiAffinity object -
+ Pod anti-affinity configuration. This override the global value if set.
false
flexVolumeautoscaler object -
+ Autoscaling config.
false
flockerobjectcleanUpPvcsboolean -
+ Cleanup PVCs after the bookie has been removed.
false
gcePersistentDiskobjectconfigJSON -
+ Configuration.
false
gitRepoobjectenv[]object -
+ Additional container env variables.
false
glusterfsobjectgracePeriodinteger + Termination grace period in seconds.

+ Minimum: 0
false
hostPathobjectimagestring -
+ Override Pulsar image.
false
iscsiobjectimagePullPolicystring -
+ Override image pull policy.
false
namestringimagePullSecrets[]object -
+ Image pull secrets.
false
nfsobject + initContainers[]object + Init containers
+
false
labelsmap[string]string + Labels to add to each resource (except pods).
+
false
matchLabelsmap[string]string + Match labels selectors to add to each pod.
+
false
minReadySecondsinteger + Min seconds to wait before considering the pod as ready.
+
false
nodeAffinityobject + Node affinity configuration.
+
false
nodeSelectorsmap[string]string + Additional node selectors.
+
false
overrideResourceNamestring + Override the resource names generated by the operator.
+
false
pdbobject + Pod disruption budget configuration.
+
false
podAnnotationsmap[string]string + Annotations to add to pod.
+
false
podLabelsmap[string]string + Labels to add to each pod.
+
false
podManagementPolicystring + Pod management policy. Default value is 'Parallel'.
+
false
probesobject + Liveness and readiness probes configuration.
+
false
pvcPrefixstring + Prefix for each PVC created.
+
false
replicasinteger + Number of desired replicas.
+
false
resourcesobject + Resources requirements.
+
false
securityContextobject + Subset of PodSecurityContext for basic UID, GID, and volume access control.
+
false
serviceobject + Service configuration.
+
false
serviceAccountNamestring + Service account name for the resource.
+
false
sidecars[]object + Sidecar containers
+
false
tolerations[]object + Pod tolerations.
+
false
updateStrategyobject + Update strategy for the StatefulSet. Default value is rolling update.
+
false
volumesobject + Volumes configuration.
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes + + + +Mount additional volumes to the pod. + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
mounts[]object + Mount points for the additional volumes
+
false
volumes[]object + Additional volumes to be mounted to the pod
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.mounts[index] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
mountPathstring +
+
false
mountPropagationstring +
+
false
namestring +
+
false
readOnlyboolean +
+
false
recursiveReadOnlystring +
+
false
subPathstring +
+
false
subPathExprstring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -17867,17 +19477,3143 @@ Mount additional volumes to the pod. - - + + + + + +
NameTypeDescriptionRequired
awsElasticBlockStoreobject +
+
false
azureDiskobject +
+
false
azureFileobject +
+
false
cephfsobject +
+
false
cinderobject +
+
false
configMapobject +
+
false
csiobject +
+
false
downwardAPIobject +
+
false
emptyDirobject +
+
false
ephemeralobject +
+
false
fcobject +
+
false
flexVolumeobject +
+
false
flockerobject +
+
false
gcePersistentDiskobject +
+
false
gitRepoobject +
+
false
glusterfsobject +
+
false
hostPathobject +
+
false
imageobject +
+
false
iscsiobject +
+
false
namestring +
+
false
nfsobject
false false
vsphereVolumeobjectvsphereVolumeobject +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].awsElasticBlockStore + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
fsTypestring +
+
false
partitioninteger +
+
false
readOnlyboolean +
+
false
volumeIDstring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].azureDisk + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
cachingModestring +
+
false
diskNamestring +
+
false
diskURIstring +
+
false
fsTypestring +
+
false
kindstring +
+
false
readOnlyboolean +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].azureFile + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
readOnlyboolean +
+
false
secretNamestring +
+
false
shareNamestring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].cephfs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
monitors[]string +
+
false
pathstring +
+
false
readOnlyboolean +
+
false
secretFilestring +
+
false
secretRefobject +
+
false
userstring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].cephfs.secretRef + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
namestring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].cinder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
fsTypestring +
+
false
readOnlyboolean +
+
false
secretRefobject +
+
false
volumeIDstring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].cinder.secretRef + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
namestring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].configMap + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
defaultModeinteger +
+
false
items[]object +
+
false
namestring +
+
false
optionalboolean +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].configMap.items[index] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
keystring +
+
false
modeinteger +
+
false
pathstring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].csi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
driverstring +
+
false
fsTypestring +
+
false
nodePublishSecretRefobject +
+
false
readOnlyboolean +
+
false
volumeAttributesmap[string]string +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].csi.nodePublishSecretRef + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
namestring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].downwardAPI + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
defaultModeinteger +
+
false
items[]object +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].downwardAPI.items[index] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
fieldRefobject +
+
false
modeinteger +
+
false
pathstring +
+
false
resourceFieldRefobject +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].downwardAPI.items[index].fieldRef + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
apiVersionstring +
+
false
fieldPathstring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].downwardAPI.items[index].resourceFieldRef + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
containerNamestring +
+
false
divisorint or string +
+
false
resourcestring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].emptyDir + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
mediumstring +
+
false
sizeLimitint or string +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].ephemeral + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
volumeClaimTemplateobject +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
metadataobject +
+
false
specobject +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.metadata + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
annotationsmap[string]string +
+
false
creationTimestampstring +
+
false
deletionGracePeriodSecondsinteger +
+
false
deletionTimestampstring +
+
false
finalizers[]string +
+
false
generateNamestring +
+
false
generationinteger +
+
false
labelsmap[string]string +
+
false
managedFields[]object +
+
false
namestring +
+
false
namespacestring +
+
false
ownerReferences[]object +
+
false
resourceVersionstring +
+
false
selfLinkstring +
+
false
uidstring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.metadata.managedFields[index] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
apiVersionstring +
+
false
fieldsTypestring +
+
false
fieldsV1object +
+
false
managerstring +
+
false
operationstring +
+
false
subresourcestring +
+
false
timestring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.metadata.ownerReferences[index] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
apiVersionstring +
+
false
blockOwnerDeletionboolean +
+
false
controllerboolean +
+
false
kindstring +
+
false
namestring +
+
false
uidstring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
accessModes[]string +
+
false
dataSourceobject +
+
false
dataSourceRefobject +
+
false
resourcesobject +
+
false
selectorobject +
+
false
storageClassNamestring +
+
false
volumeAttributesClassNamestring +
+
false
volumeModestring +
+
false
volumeNamestring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.dataSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
apiGroupstring +
+
false
kindstring +
+
false
namestring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.dataSourceRef + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
apiGroupstring +
+
false
kindstring +
+
false
namestring +
+
false
namespacestring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.resources + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
limitsmap[string]int or string +
+
false
requestsmap[string]int or string +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.selector + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
matchExpressions[]object +
+
false
matchLabelsmap[string]string +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.selector.matchExpressions[index] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
keystring +
+
false
operatorstring +
+
false
values[]string +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].fc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
fsTypestring +
+
false
luninteger +
+
false
readOnlyboolean +
+
false
targetWWNs[]string +
+
false
wwids[]string +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].flexVolume + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
driverstring +
+
false
fsTypestring +
+
false
optionsmap[string]string +
+
false
readOnlyboolean +
+
false
secretRefobject +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].flexVolume.secretRef + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
namestring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].flocker + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
datasetNamestring +
+
false
datasetUUIDstring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].gcePersistentDisk + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
fsTypestring +
+
false
partitioninteger +
+
false
pdNamestring +
+
false
readOnlyboolean +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].gitRepo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
directorystring +
+
false
repositorystring +
+
false
revisionstring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].glusterfs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
endpointsstring +
+
false
pathstring +
+
false
readOnlyboolean +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].hostPath + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
pathstring +
+
false
typestring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].image + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
pullPolicystring +
+
false
referencestring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].iscsi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
chapAuthDiscoveryboolean +
+
false
chapAuthSessionboolean +
+
false
fsTypestring +
+
false
initiatorNamestring +
+
false
iqnstring +
+
false
iscsiInterfacestring +
+
false
luninteger +
+
false
portals[]string +
+
false
readOnlyboolean +
+
false
secretRefobject +
+
false
targetPortalstring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].iscsi.secretRef + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
namestring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].nfs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
pathstring +
+
false
readOnlyboolean +
+
false
serverstring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].persistentVolumeClaim + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
claimNamestring +
+
false
readOnlyboolean +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].photonPersistentDisk + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
fsTypestring +
+
false
pdIDstring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].portworxVolume + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
fsTypestring +
+
false
readOnlyboolean +
+
false
volumeIDstring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].projected + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
defaultModeinteger +
+
false
sources[]object +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].projected.sources[index] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
clusterTrustBundleobject +
+
false
configMapobject +
+
false
downwardAPIobject +
+
false
secretobject +
+
false
serviceAccountTokenobject +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].projected.sources[index].clusterTrustBundle + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
labelSelectorobject +
+
false
namestring +
+
false
optionalboolean +
+
false
pathstring +
+
false
signerNamestring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].projected.sources[index].clusterTrustBundle.labelSelector + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
matchExpressions[]object +
+
false
matchLabelsmap[string]string +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].projected.sources[index].clusterTrustBundle.labelSelector.matchExpressions[index] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
keystring +
+
false
operatorstring +
+
false
values[]string +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].projected.sources[index].configMap + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
items[]object +
+
false
namestring +
+
false
optionalboolean +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].projected.sources[index].configMap.items[index] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
keystring +
+
false
modeinteger +
+
false
pathstring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].projected.sources[index].downwardAPI + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
items[]object +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
fieldRefobject +
+
false
modeinteger +
+
false
pathstring +
+
false
resourceFieldRefobject +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index].fieldRef + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
apiVersionstring +
+
false
fieldPathstring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index].resourceFieldRef + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
containerNamestring +
+
false
divisorint or string +
+
false
resourcestring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].projected.sources[index].secret + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
items[]object +
+
false
namestring +
+
false
optionalboolean +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].projected.sources[index].secret.items[index] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
keystring +
+
false
modeinteger +
+
false
pathstring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].projected.sources[index].serviceAccountToken + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
audiencestring +
+
false
expirationSecondsinteger +
+
false
pathstring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].quobyte + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
groupstring +
+
false
readOnlyboolean +
+
false
registrystring +
+
false
tenantstring +
+
false
userstring +
+
false
volumestring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].rbd + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
fsTypestring +
+
false
imagestring +
+
false
keyringstring +
+
false
monitors[]string +
+
false
poolstring +
+
false
readOnlyboolean +
+
false
secretRefobject +
+
false
userstring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].rbd.secretRef + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
namestring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].scaleIO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
fsTypestring +
+
false
gatewaystring +
+
false
protectionDomainstring +
+
false
readOnlyboolean +
+
false
secretRefobject +
+
false
sslEnabledboolean +
+
false
storageModestring +
+
false
storagePoolstring +
+
false
systemstring +
+
false
volumeNamestring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].scaleIO.secretRef + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
namestring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].secret + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
defaultModeinteger +
+
false
items[]object +
+
false
optionalboolean +
+
false
secretNamestring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].secret.items[index] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
keystring +
+
false
modeinteger +
+
false
pathstring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].storageos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
fsTypestring +
+
false
readOnlyboolean +
+
false
secretRefobject +
+
false
volumeNamestring +
+
false
volumeNamespacestring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].storageos.secretRef + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
namestring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].vsphereVolume + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
fsTypestring +
+
false
storagePolicyIDstring +
+
false
storagePolicyNamestring +
+
false
volumePathstring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].antiAffinity + + + +Pod anti-affinity configuration. This override the global value if set. + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
hostobject + Indicates the reclaimPolicy property for the StorageClass.
+
false
zoneobject + Indicates the provisioner property for the StorageClass.
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].antiAffinity.host + + + +Indicates the reclaimPolicy property for the StorageClass. + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
enabledboolean + Indicates the reclaimPolicy property for the StorageClass.
+
false
requiredboolean + Indicates the reclaimPolicy property for the StorageClass.
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].antiAffinity.zone + + + +Indicates the provisioner property for the StorageClass. + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
enabledboolean + Indicates the reclaimPolicy property for the StorageClass.
+
false
requiredboolean + Indicates the reclaimPolicy property for the StorageClass.
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].autoscaler + + + +Autoscaling config. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
diskUsageToleranceHwmnumber + The threshold to trigger a scale up. The autoscaler will scale up if any of thebookie's disk usage is higher than or equal to this threshold. Default is '0.92'
+
+ Minimum: 0
+ Maximum: 1
+
false
diskUsageToleranceLwmnumber + The threshold to trigger a scale down. The autoscaler will scale down if all the bookies' disk usage is lower than this threshold. Default is '0.75'
+
+ Minimum: 0
+ Maximum: 1
+
false
enabledboolean + Enable autoscaling for bookies.
+
false
minWritableBookiesinteger + Min number of writable bookies. The autoscaler will scale up if not enough writable bookies are detected. For instance, if a bookie went to read-only mode, the autoscaler will scale up to replace it. Default is '3'.
+
+ Minimum: 1
+
false
periodMsinteger + The interval in milliseconds between two consecutive autoscaling checks.
+
+ Minimum: 1000
+
false
scaleDownByinteger + The number of bookies to remove at each scale down. Default is '1'
+
+ Minimum: 1
+
false
scaleUpByinteger + The number of bookies to add at each scale up. Default is '1'
+
+ Minimum: 1
+
false
scaleUpMaxLimitinteger + Max number of bookies. If the number of bookies is equals to this value, the autoscaler will never scale up.
+
+ Minimum: 1
+
false
stabilizationWindowMsinteger + The stabilization window is used to restrict the flapping of replica count when the metrics used for scaling keep fluctuating. The autoscaling algorithm uses this window to infer a previous desired state and avoid unwanted changes to workload scale.Default value is 5 minutes after the pod readiness.

+ Minimum: 1
false
-### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].awsElasticBlockStore +### PulsarCluster.spec.bookkeeper.sets[key].env[index] @@ -17893,29 +22629,22 @@ Mount additional volumes to the pod. - fsType + name string
false - partition - integer - -
- - false - - readOnly - boolean + value + string
false - volumeID - string + valueFrom + object
@@ -17924,7 +22653,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].azureDisk +### PulsarCluster.spec.bookkeeper.sets[key].env[index].valueFrom @@ -17940,43 +22669,29 @@ Mount additional volumes to the pod. - cachingMode - string - -
- - false - - diskName - string - -
- - false - - diskURI - string + configMapKeyRef + object
false - fsType - string + fieldRef + object
false - kind - string + resourceFieldRef + object
false - readOnly - boolean + secretKeyRef + object
@@ -17985,7 +22700,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].azureFile +### PulsarCluster.spec.bookkeeper.sets[key].env[index].valueFrom.configMapKeyRef @@ -18001,22 +22716,22 @@ Mount additional volumes to the pod. - readOnly - boolean + key + string
false - secretName + name string
false - shareName - string + optional + boolean
@@ -18025,7 +22740,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].cephfs +### PulsarCluster.spec.bookkeeper.sets[key].env[index].valueFrom.fieldRef @@ -18041,42 +22756,14 @@ Mount additional volumes to the pod. - monitors - []string - -
- - false - - path - string - -
- - false - - readOnly - boolean - -
- - false - - secretFile + apiVersion string
false - secretRef - object - -
- - false - - user + fieldPath string
@@ -18086,7 +22773,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].cephfs.secretRef +### PulsarCluster.spec.bookkeeper.sets[key].env[index].valueFrom.resourceFieldRef @@ -18102,7 +22789,21 @@ Mount additional volumes to the pod. - name + containerName + string + +
+ + false + + divisor + int or string + +
+ + false + + resource string
@@ -18112,7 +22813,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].cinder +### PulsarCluster.spec.bookkeeper.sets[key].env[index].valueFrom.secretKeyRef @@ -18128,29 +22829,22 @@ Mount additional volumes to the pod. - fsType + key string
false - readOnly - boolean - -
- - false - - secretRef - object + name + string
false - volumeID - string + optional + boolean
@@ -18159,7 +22853,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].cinder.secretRef +### PulsarCluster.spec.bookkeeper.sets[key].imagePullSecrets[index] @@ -18185,7 +22879,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].configMap +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index] @@ -18201,123 +22895,169 @@ Mount additional volumes to the pod. - defaultMode - integer + args + []string
false - items + command + []string + +
+ + false + + env []object
false - name - string + envFrom + []object
false - optional - boolean + image + string
false - - - - -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].configMap.items[index] - - - - - - - - - - - - - - - - + + - - + + - - + + - -
NameTypeDescriptionRequired
key
imagePullPolicy string
false
modeintegerlifecycleobject
false
pathstringlivenessProbeobject
false
- - -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].csi - - - - - - - - - - - - - - - - + + - + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -18326,7 +23066,7 @@ Mount additional volumes to the pod.
NameTypeDescriptionRequired
driver
name string
false
fsTypeports[]object +
+
false
readinessProbeobject +
+
false
resizePolicy[]object +
+
false
resourcesobject +
+
false
restartPolicy string
false
nodePublishSecretRefsecurityContext object
false
readOnlystartupProbeobject +
+
false
stdin boolean
false
volumeAttributesmap[string]stringstdinOnceboolean +
+
false
terminationMessagePathstring +
+
false
terminationMessagePolicystring +
+
false
ttyboolean +
+
false
volumeDevices[]object +
+
false
volumeMounts[]object +
+
false
workingDirstring
-### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].csi.nodePublishSecretRef +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].env[index] @@ -18348,11 +23088,25 @@ Mount additional volumes to the pod.
false + + value + string + +
+ + false + + valueFrom + object + +
+ + false -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].downwardAPI +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].env[index].valueFrom @@ -18368,15 +23122,29 @@ Mount additional volumes to the pod. - defaultMode - integer + configMapKeyRef + object
false - items - []object + fieldRef + object + +
+ + false + + resourceFieldRef + object + +
+ + false + + secretKeyRef + object
@@ -18385,7 +23153,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].downwardAPI.items[index] +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].env[index].valueFrom.configMapKeyRef @@ -18401,29 +23169,22 @@ Mount additional volumes to the pod. - fieldRef - object - -
- - false - - mode - integer + key + string
false - path + name string
false - resourceFieldRef - object + optional + boolean
@@ -18432,7 +23193,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].downwardAPI.items[index].fieldRef +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].env[index].valueFrom.fieldRef @@ -18465,7 +23226,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].downwardAPI.items[index].resourceFieldRef +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].env[index].valueFrom.resourceFieldRef @@ -18505,7 +23266,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].emptyDir +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].env[index].valueFrom.secretKeyRef @@ -18521,15 +23282,22 @@ Mount additional volumes to the pod. - medium + key string
false - sizeLimit - int or string + name + string + +
+ + false + + optional + boolean
@@ -18538,7 +23306,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].ephemeral +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].envFrom[index] @@ -18554,7 +23322,21 @@ Mount additional volumes to the pod. - volumeClaimTemplate + configMapRef + object + +
+ + false + + prefix + string + +
+ + false + + secretRef object
@@ -18564,7 +23346,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].envFrom[index].configMapRef @@ -18580,15 +23362,15 @@ Mount additional volumes to the pod. - metadata - object + name + string
false - spec - object + optional + boolean
@@ -18597,7 +23379,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.metadata +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].envFrom[index].secretRef @@ -18613,69 +23395,6 @@ Mount additional volumes to the pod. - annotations - map[string]string - -
- - false - - creationTimestamp - string - -
- - false - - deletionGracePeriodSeconds - integer - -
- - false - - deletionTimestamp - string - -
- - false - - finalizers - []string - -
- - false - - generateName - string - -
- - false - - generation - integer - -
- - false - - labels - map[string]string - -
- - false - - managedFields - []object - -
- - false - name string @@ -18683,35 +23402,47 @@ Mount additional volumes to the pod. false - namespace - string - -
- - false - - ownerReferences - []object + optional + boolean
false - - resourceVersion - string + + + + +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].lifecycle + + + + + + + + + + + + + + + + + - - + + - +
NameTypeDescriptionRequired
postStartobject
false
selfLinkstringpreStopobject
false
uidstopSignal string
@@ -18721,7 +23452,7 @@ Mount additional volumes to the pod.
-### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.metadata.managedFields[index] +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].lifecycle.postStart @@ -18737,50 +23468,55 @@ Mount additional volumes to the pod. - apiVersion - string - -
- - false - - fieldsType - string - -
- - false - - fieldsV1 + exec object
false - manager - string + httpGet + object
false - operation - string + sleep + object
false - subresource - string + tcpSocket + object
false - - time - string + + + + +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].lifecycle.postStart.exec + + + + + + + + + + + + + + + + + @@ -18789,7 +23525,7 @@ Mount additional volumes to the pod.
NameTypeDescriptionRequired
command[]string
-### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.metadata.ownerReferences[index] +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].lifecycle.postStart.httpGet @@ -18805,34 +23541,60 @@ Mount additional volumes to the pod. - apiVersion + host string
false - blockOwnerDeletion - boolean + httpHeaders + []object
false - controller - boolean + path + string
false - kind - string + port + int or string
false + scheme + string + +
+ + false + + + + +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].lifecycle.postStart.httpGet.httpHeaders[index] + + + + + + + + + + + + + + + - +
NameTypeDescriptionRequired
name string @@ -18840,7 +23602,7 @@ Mount additional volumes to the pod. false
uidvalue string
@@ -18850,7 +23612,7 @@ Mount additional volumes to the pod.
-### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].lifecycle.postStart.sleep @@ -18866,57 +23628,88 @@ Mount additional volumes to the pod. - accessModes - []string + seconds + integer
false - - dataSource - object + + + + +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].lifecycle.postStart.tcpSocket + + + + + + + + + + + + + + + + + - - + + - - + +
NameTypeDescriptionRequired
hoststring
false
dataSourceRefobjectportint or string
false
resources
+ + +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].lifecycle.preStop + + + + + + + + + + + + + + + + - + - - - - - - - + + - - + + @@ -18925,7 +23718,7 @@ Mount additional volumes to the pod.
NameTypeDescriptionRequired
exec object
false
selectorhttpGet object
false
storageClassNamestring -
-
false
volumeModestringsleepobject
false
volumeNamestringtcpSocketobject
-### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.dataSource +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].lifecycle.preStop.exec @@ -18941,22 +23734,8 @@ Mount additional volumes to the pod. - apiGroup - string - -
- - false - - kind - string - -
- - false - - name - string + command + []string
@@ -18965,7 +23744,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.dataSourceRef +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].lifecycle.preStop.httpGet @@ -18981,21 +23760,35 @@ Mount additional volumes to the pod. - apiGroup + host string
false - kind + httpHeaders + []object + +
+ + false + + path string
false - name + port + int or string + +
+ + false + + scheme string
@@ -19005,7 +23798,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.resources +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].lifecycle.preStop.httpGet.httpHeaders[index] @@ -19021,15 +23814,15 @@ Mount additional volumes to the pod. - limits - map[string]int or string + name + string
false - requests - map[string]int or string + value + string
@@ -19038,7 +23831,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.selector +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].lifecycle.preStop.sleep @@ -19054,15 +23847,8 @@ Mount additional volumes to the pod. - matchExpressions - []object - -
- - false - - matchLabels - map[string]string + seconds + integer
@@ -19071,7 +23857,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.selector.matchExpressions[index] +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].lifecycle.preStop.tcpSocket @@ -19087,22 +23873,15 @@ Mount additional volumes to the pod. - key - string - -
- - false - - operator + host string
false - values - []string + port + int or string
@@ -19111,7 +23890,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].fc +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].livenessProbe @@ -19127,90 +23906,71 @@ Mount additional volumes to the pod. - fsType - string + exec + object
false - lun + failureThreshold integer
false - readOnly - boolean + grpc + object
false - targetWWNs - []string + httpGet + object
false - wwids - []string + initialDelaySeconds + integer
false - - - - -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].flexVolume - - - - - - - - - - - - - - - - - + + + - - + + - - + + - - + + - - + + @@ -19219,7 +23979,7 @@ Mount additional volumes to the pod.
NameTypeDescriptionRequired
driverstring
periodSecondsinteger
false
fsTypestringsuccessThresholdinteger
false
optionsmap[string]stringtcpSocketobject
false
readOnlybooleanterminationGracePeriodSecondsinteger
false
secretRefobjecttimeoutSecondsinteger
-### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].flexVolume.secretRef +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].livenessProbe.exec @@ -19235,8 +23995,8 @@ Mount additional volumes to the pod. - name - string + command + []string
@@ -19245,7 +24005,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].flocker +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].livenessProbe.grpc @@ -19261,14 +24021,14 @@ Mount additional volumes to the pod. - datasetName - string + port + integer
false - datasetUUID + service string
@@ -19278,7 +24038,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].gcePersistentDisk +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].livenessProbe.httpGet @@ -19294,29 +24054,36 @@ Mount additional volumes to the pod. - fsType + host string
false - partition - integer + httpHeaders + []object
false - pdName + path string
false - readOnly - boolean + port + int or string + +
+ + false + + scheme + string
@@ -19325,7 +24092,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].gitRepo +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].livenessProbe.httpGet.httpHeaders[index] @@ -19341,21 +24108,14 @@ Mount additional volumes to the pod. - directory - string - -
- - false - - repository + name string
false - revision + value string
@@ -19365,7 +24125,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].glusterfs +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].livenessProbe.tcpSocket @@ -19381,22 +24141,15 @@ Mount additional volumes to the pod. - endpoints - string - -
- - false - - path + host string
false - readOnly - boolean + port + int or string
@@ -19405,7 +24158,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].hostPath +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].ports[index] @@ -19421,14 +24174,35 @@ Mount additional volumes to the pod. - path + containerPort + integer + +
+ + false + + hostIP string
false - type + hostPort + integer + +
+ + false + + name + string + +
+ + false + + protocol string
@@ -19438,7 +24212,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].iscsi +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].readinessProbe @@ -19454,77 +24228,129 @@ Mount additional volumes to the pod. - chapAuthDiscovery - boolean + exec + object
false - chapAuthSession - boolean + failureThreshold + integer
false - fsType - string + grpc + object
false - initiatorName - string + httpGet + object
false - iqn - string + initialDelaySeconds + integer
false - iscsiInterface - string + periodSeconds + integer
false - lun + successThreshold integer
false - portals - []string + tcpSocket + object
false - readOnly - boolean + terminationGracePeriodSeconds + integer
false - secretRef - object + timeoutSeconds + integer + +
+ + false + + + + +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].readinessProbe.exec + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
command[]string +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].readinessProbe.grpc + + + + + + + + + + + + + + + + + - +
NameTypeDescriptionRequired
portinteger
false
targetPortalservice string
@@ -19534,7 +24360,7 @@ Mount additional volumes to the pod.
-### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].iscsi.secretRef +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].readinessProbe.httpGet @@ -19550,7 +24376,35 @@ Mount additional volumes to the pod. - name + host + string + +
+ + false + + httpHeaders + []object + +
+ + false + + path + string + +
+ + false + + port + int or string + +
+ + false + + scheme string
@@ -19560,7 +24414,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].nfs +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].readinessProbe.httpGet.httpHeaders[index] @@ -19576,21 +24430,14 @@ Mount additional volumes to the pod. - path + name string
false - readOnly - boolean - -
- - false - - server + value string
@@ -19600,7 +24447,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].persistentVolumeClaim +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].readinessProbe.tcpSocket @@ -19616,15 +24463,15 @@ Mount additional volumes to the pod. - claimName + host string
false - readOnly - boolean + port + int or string
@@ -19633,7 +24480,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].photonPersistentDisk +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].resizePolicy[index] @@ -19649,14 +24496,14 @@ Mount additional volumes to the pod. - fsType + resourceName string
false - pdID + restartPolicy string
@@ -19666,7 +24513,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].portworxVolume +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].resources @@ -19682,22 +24529,22 @@ Mount additional volumes to the pod. - fsType - string + claims + []object
false - readOnly - boolean + limits + map[string]int or string
false - volumeID - string + requests + map[string]int or string
@@ -19706,7 +24553,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].projected +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].resources.claims[index] @@ -19722,15 +24569,15 @@ Mount additional volumes to the pod. - defaultMode - integer + name + string
false - sources - []object + request + string
@@ -19739,7 +24586,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].projected.sources[index] +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].securityContext @@ -19755,78 +24602,94 @@ Mount additional volumes to the pod. - configMap - object + allowPrivilegeEscalation + boolean
false - downwardAPI + appArmorProfile object
false - secret + capabilities object
false - serviceAccountToken - object + privileged + boolean
false - - - - -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].projected.sources[index].configMap - - - - - - - - - - - - - - - - - + + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
items[]object
procMountstring
false
namestringreadOnlyRootFilesystemboolean
false
optionalrunAsGroupinteger +
+
false
runAsNonRoot boolean
false
runAsUserinteger +
+
false
seLinuxOptionsobject +
+
false
seccompProfileobject +
+
false
windowsOptionsobject +
+
false
-### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].projected.sources[index].configMap.items[index] +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].securityContext.appArmorProfile @@ -19842,21 +24705,14 @@ Mount additional volumes to the pod. - key + localhostProfile string
false - mode - integer - -
- - false - - path + type string
@@ -19866,7 +24722,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].projected.sources[index].downwardAPI +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].securityContext.capabilities @@ -19882,8 +24738,15 @@ Mount additional volumes to the pod. - items - []object + add + []string + +
+ + false + + drop + []string
@@ -19892,7 +24755,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index] +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].securityContext.seLinuxOptions @@ -19908,29 +24771,29 @@ Mount additional volumes to the pod. - fieldRef - object + level + string
false - mode - integer + role + string
false - path + type string
false - resourceFieldRef - object + user + string
@@ -19939,7 +24802,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index].fieldRef +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].securityContext.seccompProfile @@ -19955,14 +24818,14 @@ Mount additional volumes to the pod. - apiVersion + localhostProfile string
false - fieldPath + type string
@@ -19972,7 +24835,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index].resourceFieldRef +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].securityContext.windowsOptions @@ -19988,21 +24851,28 @@ Mount additional volumes to the pod. - containerName + gmsaCredentialSpec string
false - divisor - int or string + gmsaCredentialSpecName + string
false - resource + hostProcess + boolean + +
+ + false + + runAsUserName string
@@ -20012,7 +24882,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].projected.sources[index].secret +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].startupProbe @@ -20028,22 +24898,71 @@ Mount additional volumes to the pod. - items - []object + exec + object
false - name - string + failureThreshold + integer
false - optional - boolean + grpc + object + +
+ + false + + httpGet + object + +
+ + false + + initialDelaySeconds + integer + +
+ + false + + periodSeconds + integer + +
+ + false + + successThreshold + integer + +
+ + false + + tcpSocket + object + +
+ + false + + terminationGracePeriodSeconds + integer + +
+ + false + + timeoutSeconds + integer
@@ -20052,7 +24971,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].projected.sources[index].secret.items[index] +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].startupProbe.exec @@ -20068,22 +24987,8 @@ Mount additional volumes to the pod. - key - string - -
- - false - - mode - integer - -
- - false - - path - string + command + []string
@@ -20092,7 +24997,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].projected.sources[index].serviceAccountToken +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].startupProbe.grpc @@ -20108,21 +25013,14 @@ Mount additional volumes to the pod. - audience - string - -
- - false - - expirationSeconds + port integer
false - path + service string
@@ -20132,7 +25030,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].quobyte +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].startupProbe.httpGet @@ -20148,42 +25046,35 @@ Mount additional volumes to the pod. - group + host string
false - readOnly - boolean - -
- - false - - registry - string + httpHeaders + []object
false - tenant + path string
false - user - string + port + int or string
false - volume + scheme string
@@ -20193,7 +25084,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].rbd +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].startupProbe.httpGet.httpHeaders[index] @@ -20209,57 +25100,48 @@ Mount additional volumes to the pod. - fsType - string - -
- - false - - image + name string
false - keyring + value string
false - - monitors - []string - -
- - false - - pool + + + + +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].startupProbe.tcpSocket + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + @@ -20268,7 +25150,7 @@ Mount additional volumes to the pod.
NameTypeDescriptionRequired
host string
false
readOnlyboolean -
-
false
secretRefobject -
-
false
userstringportint or string
-### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].rbd.secretRef +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].volumeDevices[index] @@ -20284,6 +25166,13 @@ Mount additional volumes to the pod. + devicePath + string + +
+ + false + name string @@ -20294,7 +25183,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].scaleIO +### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].volumeMounts[index] @@ -20310,21 +25199,21 @@ Mount additional volumes to the pod. - fsType + mountPath string
false - gateway + mountPropagation string
false - protectionDomain + name string
@@ -20338,43 +25227,55 @@ Mount additional volumes to the pod. false - secretRef - object - -
- - false - - sslEnabled - boolean + recursiveReadOnly + string
false - storageMode + subPath string
false - storagePool + subPathExpr string
false - - system - string + + + + +### PulsarCluster.spec.bookkeeper.sets[key].nodeAffinity + + + +Node affinity configuration. + + + + + + + + + + + + + - - + + @@ -20383,7 +25284,7 @@ Mount additional volumes to the pod.
NameTypeDescriptionRequired
preferredDuringSchedulingIgnoredDuringExecution[]object
false
volumeNamestringrequiredDuringSchedulingIgnoredDuringExecutionobject
-### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].scaleIO.secretRef +### PulsarCluster.spec.bookkeeper.sets[key].nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index] @@ -20399,8 +25300,15 @@ Mount additional volumes to the pod. - name - string + preference + object + +
+ + false + + weight + integer
@@ -20409,7 +25317,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].secret +### PulsarCluster.spec.bookkeeper.sets[key].nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference @@ -20425,29 +25333,15 @@ Mount additional volumes to the pod. - defaultMode - integer - -
- - false - - items + matchExpressions []object
false - optional - boolean - -
- - false - - secretName - string + matchFields + []object
@@ -20456,7 +25350,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].secret.items[index] +### PulsarCluster.spec.bookkeeper.sets[key].nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference.matchExpressions[index] @@ -20479,15 +25373,15 @@ Mount additional volumes to the pod. false - mode - integer + operator + string
false - path - string + values + []string
@@ -20496,7 +25390,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].storageos +### PulsarCluster.spec.bookkeeper.sets[key].nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference.matchFields[index] @@ -20512,36 +25406,22 @@ Mount additional volumes to the pod. - fsType - string - -
- - false - - readOnly - boolean - -
- - false - - secretRef - object + key + string
false - volumeName + operator string
false - volumeNamespace - string + values + []string
@@ -20550,7 +25430,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].storageos.secretRef +### PulsarCluster.spec.bookkeeper.sets[key].nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution @@ -20566,8 +25446,8 @@ Mount additional volumes to the pod. - name - string + nodeSelectorTerms + []object
@@ -20576,7 +25456,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.bookkeeper.sets[key].additionalVolumes.volumes[index].vsphereVolume +### PulsarCluster.spec.bookkeeper.sets[key].nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index] @@ -20592,29 +25472,55 @@ Mount additional volumes to the pod. - fsType - string + matchExpressions + []object
false - storagePolicyID + matchFields + []object + +
+ + false + + + + +### PulsarCluster.spec.bookkeeper.sets[key].nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index].matchExpressions[index] + + + + + + + + + + + + + + + + - + - - + + @@ -20623,11 +25529,11 @@ Mount additional volumes to the pod.
NameTypeDescriptionRequired
key string
false
storagePolicyNameoperator string
false
volumePathstringvalues[]string
-### PulsarCluster.spec.bookkeeper.sets[key].antiAffinity +### PulsarCluster.spec.bookkeeper.sets[key].nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index].matchFields[index] + -Pod anti-affinity configuration. This override the global value if set. @@ -20639,28 +25545,35 @@ Pod anti-affinity configuration. This override the global value if set. - - + + - - + + + + + + +
hostobjectkeystring - Indicates the reclaimPolicy property for the StorageClass.
+
false
zoneobjectoperatorstring - Indicates the provisioner property for the StorageClass.
+
+
false
values[]string +
false
-### PulsarCluster.spec.bookkeeper.sets[key].antiAffinity.host +### PulsarCluster.spec.bookkeeper.sets[key].pdb -Indicates the reclaimPolicy property for the StorageClass. +Pod disruption budget configuration. @@ -20675,25 +25588,32 @@ Indicates the reclaimPolicy property for the StorageClass. - - + + + + + + +
enabled boolean - Indicates the reclaimPolicy property for the StorageClass.
+ Enable Pdb policy.
false
requiredbooleanmaxUnavailableinteger - Indicates the reclaimPolicy property for the StorageClass.
+ Number of maxUnavailable pods.
+
false
minAvailableinteger + Number of minAvailable pods.
false
-### PulsarCluster.spec.bookkeeper.sets[key].antiAffinity.zone +### PulsarCluster.spec.bookkeeper.sets[key].probes -Indicates the provisioner property for the StorageClass. +Liveness and readiness probes configuration. @@ -20705,28 +25625,28 @@ Indicates the provisioner property for the StorageClass. - - + + - - + +
enabledbooleanlivenessobject - Indicates the reclaimPolicy property for the StorageClass.
+ Liveness probe configuration.
false
requiredbooleanreadinessobject - Indicates the reclaimPolicy property for the StorageClass.
+ Readiness probe configuration.
false
-### PulsarCluster.spec.bookkeeper.sets[key].autoscaler +### PulsarCluster.spec.bookkeeper.sets[key].probes.liveness -Autoscaling config. +Liveness probe configuration. @@ -20738,95 +25658,63 @@ Autoscaling config. - - - - - - - - - - - + - + - + - + - + - +
diskUsageToleranceHwmnumber - The threshold to trigger a scale up. The autoscaler will scale up if any of thebookie's disk usage is higher than or equal to this threshold. Default is '0.92'
-
- Minimum: 0
- Maximum: 1
-
false
diskUsageToleranceLwmnumber - The threshold to trigger a scale down. The autoscaler will scale down if all the bookies' disk usage is lower than this threshold. Default is '0.75'
-
- Minimum: 0
- Maximum: 1
-
false
enabled boolean - Enable autoscaling for bookies.
+ Enables the probe.
false
minWritableBookiesfailureThreshold integer - Min number of writable bookies. The autoscaler will scale up if not enough writable bookies are detected. For instance, if a bookie went to read-only mode, the autoscaler will scale up to replace it. Default is '3'.
-
- Minimum: 1
+ Failure threshold.
false
periodMsinitialDelaySeconds integer - The interval in milliseconds between two consecutive autoscaling checks.
-
- Minimum: 1000
+ Indicates the initial delay (in seconds) for the probe.
false
scaleDownByperiodSeconds integer - The number of bookies to remove at each scale down. Default is '1'
-
- Minimum: 1
+ Indicates the period (in seconds) for the probe.
false
scaleUpBysuccessThreshold integer - The number of bookies to add at each scale up. Default is '1'
-
- Minimum: 1
+ Success threshold.
false
scaleUpMaxLimitterminationGracePeriodSeconds integer - Max number of bookies. If the number of bookies is equals to this value, the autoscaler will never scale up.
-
- Minimum: 1
+ Indicates the termination grace period (in seconds) for the probe.
false
stabilizationWindowMstimeoutSeconds integer - The stabilization window is used to restrict the flapping of replica count when the metrics used for scaling keep fluctuating. The autoscaling algorithm uses this window to infer a previous desired state and avoid unwanted changes to workload scale.Default value is 5 minutes after the pod readiness.
-
- Minimum: 1
+ Indicates the timeout (in seconds) for the probe.
false
-### PulsarCluster.spec.bookkeeper.sets[key].env[index] - +### PulsarCluster.spec.bookkeeper.sets[key].probes.readiness +Readiness probe configuration. @@ -20838,82 +25726,63 @@ Autoscaling config. - - + + - - + + - - + + - -
namestringenabledboolean -
+ Enables the probe.
false
valuestringfailureThresholdinteger -
+ Failure threshold.
false
valueFromobjectinitialDelaySecondsinteger -
+ Indicates the initial delay (in seconds) for the probe.
false
- - -### PulsarCluster.spec.bookkeeper.sets[key].env[index].valueFrom - - - - - - - - - - - - - - - - - + + + - - + + - - + + - - + +
NameTypeDescriptionRequired
configMapKeyRefobject
periodSecondsinteger -
+ Indicates the period (in seconds) for the probe.
false
fieldRefobjectsuccessThresholdinteger -
+ Success threshold.
false
resourceFieldRefobjectterminationGracePeriodSecondsinteger -
+ Indicates the termination grace period (in seconds) for the probe.
false
secretKeyRefobjecttimeoutSecondsinteger -
+ Indicates the timeout (in seconds) for the probe.
false
-### PulsarCluster.spec.bookkeeper.sets[key].env[index].valueFrom.configMapKeyRef - +### PulsarCluster.spec.bookkeeper.sets[key].resources +Resources requirements. @@ -20925,22 +25794,22 @@ Autoscaling config. - - + + - - + + - - + + @@ -20949,7 +25818,7 @@ Autoscaling config.
keystringclaims[]object
false
namestringlimitsmap[string]int or string
false
optionalbooleanrequestsmap[string]int or string
-### PulsarCluster.spec.bookkeeper.sets[key].env[index].valueFrom.fieldRef +### PulsarCluster.spec.bookkeeper.sets[key].resources.claims[index] @@ -20965,14 +25834,14 @@ Autoscaling config. - apiVersion + name string
false - fieldPath + request string
@@ -20982,11 +25851,11 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].env[index].valueFrom.resourceFieldRef - +### PulsarCluster.spec.bookkeeper.sets[key].securityContext +Subset of PodSecurityContext for basic UID, GID, and volume access control. @@ -20998,22 +25867,43 @@ Autoscaling config. - + + + + + + - - + + - - + + + + + + + + + + + + @@ -21022,11 +25912,11 @@ Autoscaling config.
containerNamefsGroupinteger +
+
false
fsGroupChangePolicy string
false
divisorint or stringrunAsGroupinteger
false
resourcestringrunAsNonRootboolean +
+
false
runAsUserinteger +
+
false
supplementalGroups[]integer
-### PulsarCluster.spec.bookkeeper.sets[key].env[index].valueFrom.secretKeyRef - +### PulsarCluster.spec.bookkeeper.sets[key].service +Service configuration. @@ -21038,31 +25928,24 @@ Autoscaling config. - - - - - - - + + - - + +
keystring -
-
false
namestringadditionalPorts[]object -
+ Additional ports to add to the Service.
false
optionalbooleanannotationsmap[string]string -
+ Additional annotations to add to the Service.
false
-### PulsarCluster.spec.bookkeeper.sets[key].imagePullSecrets[index] +### PulsarCluster.spec.bookkeeper.sets[key].service.additionalPorts[index] @@ -21078,17 +25961,52 @@ Autoscaling config. + appProtocol + string + +
+ + false + name string
false + + nodePort + integer + +
+ + false + + port + integer + +
+ + false + + protocol + string + +
+ + false + + targetPort + int or string + +
+ + false -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index] +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index] @@ -21118,14 +26036,14 @@ Autoscaling config. false - env + env []object
false - envFrom + envFrom []object
@@ -21146,14 +26064,14 @@ Autoscaling config. false - lifecycle + lifecycle object
false - livenessProbe + livenessProbe object
@@ -21167,35 +26085,49 @@ Autoscaling config. false - ports + ports []object
false - readinessProbe + readinessProbe object
false - resources + resizePolicy + []object + +
+ + false + + resources object
false - securityContext + restartPolicy + string + +
+ + false + + securityContext object
false - startupProbe + startupProbe object
@@ -21237,14 +26169,14 @@ Autoscaling config. false - volumeDevices + volumeDevices []object
false - volumeMounts + volumeMounts []object
@@ -21261,7 +26193,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].env[index] +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].env[index] @@ -21291,7 +26223,7 @@ Autoscaling config. false - valueFrom + valueFrom object
@@ -21301,7 +26233,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].env[index].valueFrom +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].env[index].valueFrom @@ -21317,28 +26249,28 @@ Autoscaling config. - configMapKeyRef + configMapKeyRef object
false - fieldRef + fieldRef object
false - resourceFieldRef + resourceFieldRef object
false - secretKeyRef + secretKeyRef object
@@ -21348,7 +26280,120 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].env[index].valueFrom.configMapKeyRef +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].env[index].valueFrom.configMapKeyRef + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
keystring +
+
false
namestring +
+
false
optionalboolean +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].env[index].valueFrom.fieldRef + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
apiVersionstring +
+
false
fieldPathstring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].env[index].valueFrom.resourceFieldRef + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
containerNamestring +
+
false
divisorint or string +
+
false
resourcestring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].env[index].valueFrom.secretKeyRef @@ -21388,7 +26433,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].env[index].valueFrom.fieldRef +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].envFrom[index] @@ -21404,55 +26449,22 @@ Autoscaling config. - apiVersion - string + configMapRef + object
false - fieldPath - string - -
- - false - - - - -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].env[index].valueFrom.resourceFieldRef - - - - - - - - - - - - - - - - + - - - - - - - + + @@ -21461,7 +26473,7 @@ Autoscaling config.
NameTypeDescriptionRequired
containerNameprefix string
false
divisorint or string -
-
false
resourcestringsecretRefobject
-### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].env[index].valueFrom.secretKeyRef +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].envFrom[index].configMapRef @@ -21477,13 +26489,6 @@ Autoscaling config. - key - string - -
- - false - name string @@ -21501,7 +26506,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].envFrom[index] +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].envFrom[index].secretRef @@ -21517,22 +26522,15 @@ Autoscaling config. - configMapRef - object - -
- - false - - prefix + name string
false - secretRef - object + optional + boolean
@@ -21541,7 +26539,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].envFrom[index].configMapRef +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].lifecycle @@ -21557,48 +26555,22 @@ Autoscaling config. - name - string + postStart + object
false - optional - boolean - -
- - false - - - - -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].envFrom[index].secretRef - - - - - - - - - - - - - - - - - + + - - + + @@ -21607,7 +26579,7 @@ Autoscaling config.
NameTypeDescriptionRequired
namestringpreStopobject
false
optionalbooleanstopSignalstring
-### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].lifecycle +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].lifecycle.postStart @@ -21623,54 +26595,28 @@ Autoscaling config. - postStart + exec object
false - preStop - object - -
- - false - - - - -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].lifecycle.postStart - - - - - - - - - - - - - - - - + - + - +
NameTypeDescriptionRequired
exechttpGet object
false
httpGetsleep object
false
tcpSockettcpSocket object
@@ -21680,7 +26626,7 @@ Autoscaling config.
-### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].lifecycle.postStart.exec +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].lifecycle.postStart.exec @@ -21706,7 +26652,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].lifecycle.postStart.httpGet +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].lifecycle.postStart.httpGet @@ -21729,7 +26675,7 @@ Autoscaling config. false - httpHeaders + httpHeaders []object
@@ -21760,7 +26706,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].lifecycle.postStart.httpGet.httpHeaders[index] +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].lifecycle.postStart.httpGet.httpHeaders[index] @@ -21793,7 +26739,33 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].lifecycle.postStart.tcpSocket +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].lifecycle.postStart.sleep + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
secondsinteger +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].lifecycle.postStart.tcpSocket @@ -21826,7 +26798,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].lifecycle.preStop +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].lifecycle.preStop @@ -21842,21 +26814,28 @@ Autoscaling config. - exec + exec object
false - httpGet + httpGet object
false - tcpSocket + sleep + object + +
+ + false + + tcpSocket object
@@ -21866,7 +26845,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].lifecycle.preStop.exec +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].lifecycle.preStop.exec @@ -21892,7 +26871,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].lifecycle.preStop.httpGet +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].lifecycle.preStop.httpGet @@ -21915,7 +26894,7 @@ Autoscaling config. false - httpHeaders + httpHeaders []object
@@ -21946,7 +26925,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].lifecycle.preStop.httpGet.httpHeaders[index] +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].lifecycle.preStop.httpGet.httpHeaders[index] @@ -21979,7 +26958,33 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].lifecycle.preStop.tcpSocket +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].lifecycle.preStop.sleep + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
secondsinteger +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].lifecycle.preStop.tcpSocket @@ -22012,7 +27017,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].livenessProbe +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].livenessProbe @@ -22028,7 +27033,7 @@ Autoscaling config. - exec + exec object
@@ -22042,14 +27047,14 @@ Autoscaling config. false - grpc + grpc object
false - httpGet + httpGet object
@@ -22077,7 +27082,7 @@ Autoscaling config. false - tcpSocket + tcpSocket object
@@ -22101,7 +27106,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].livenessProbe.exec +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].livenessProbe.exec @@ -22127,7 +27132,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].livenessProbe.grpc +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].livenessProbe.grpc @@ -22160,7 +27165,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].livenessProbe.httpGet +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].livenessProbe.httpGet @@ -22183,7 +27188,7 @@ Autoscaling config. false - httpHeaders + httpHeaders []object
@@ -22214,7 +27219,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].livenessProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].livenessProbe.httpGet.httpHeaders[index] @@ -22247,7 +27252,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].livenessProbe.tcpSocket +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].livenessProbe.tcpSocket @@ -22280,7 +27285,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].ports[index] +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].ports[index] @@ -22334,7 +27339,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].readinessProbe +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].readinessProbe @@ -22350,7 +27355,7 @@ Autoscaling config. - exec + exec object
@@ -22364,14 +27369,14 @@ Autoscaling config. false - grpc + grpc object
false - httpGet + httpGet object
@@ -22399,7 +27404,7 @@ Autoscaling config. false - tcpSocket + tcpSocket object
@@ -22423,7 +27428,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].readinessProbe.exec +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].readinessProbe.exec @@ -22449,7 +27454,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].readinessProbe.grpc +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].readinessProbe.grpc @@ -22482,7 +27487,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].readinessProbe.httpGet +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].readinessProbe.httpGet @@ -22505,7 +27510,7 @@ Autoscaling config. false - httpHeaders + httpHeaders []object
@@ -22536,7 +27541,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].readinessProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].readinessProbe.httpGet.httpHeaders[index] @@ -22569,7 +27574,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].readinessProbe.tcpSocket +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].readinessProbe.tcpSocket @@ -22602,7 +27607,40 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].resources +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].resizePolicy[index] + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
resourceNamestring +
+
false
restartPolicystring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].resources @@ -22618,6 +27656,13 @@ Autoscaling config. + claims + []object + +
+ + false + limits map[string]int or string @@ -22635,7 +27680,40 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].securityContext +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].resources.claims[index] + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
namestring +
+
false
requeststring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].securityContext @@ -22658,7 +27736,14 @@ Autoscaling config. false - capabilities + appArmorProfile + object + +
+ + false + + capabilities object
@@ -22707,21 +27792,21 @@ Autoscaling config. false - seLinuxOptions + seLinuxOptions object
false - seccompProfile + seccompProfile object
false - windowsOptions + windowsOptions object
@@ -22731,7 +27816,40 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].securityContext.capabilities +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].securityContext.appArmorProfile + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
localhostProfilestring +
+
false
typestring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].securityContext.capabilities @@ -22764,7 +27882,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].securityContext.seLinuxOptions +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].securityContext.seLinuxOptions @@ -22811,7 +27929,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].securityContext.seccompProfile +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].securityContext.seccompProfile @@ -22844,7 +27962,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].securityContext.windowsOptions +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].securityContext.windowsOptions @@ -22891,7 +28009,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].startupProbe +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].startupProbe @@ -22907,7 +28025,7 @@ Autoscaling config. - exec + exec object
@@ -22921,14 +28039,14 @@ Autoscaling config. false - grpc + grpc object
false - httpGet + httpGet object
@@ -22956,7 +28074,7 @@ Autoscaling config. false - tcpSocket + tcpSocket object
@@ -22964,160 +28082,14 @@ Autoscaling config. false terminationGracePeriodSeconds - integer - -
- - false - - timeoutSeconds - integer - -
- - false - - - - -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].startupProbe.exec - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
command[]string -
-
false
- - -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].startupProbe.grpc - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
portinteger -
-
false
servicestring -
-
false
- - -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].startupProbe.httpGet - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
hoststring -
-
false
httpHeaders[]object -
-
false
pathstring -
-
false
portint or string -
-
false
schemestring -
-
false
- - -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].startupProbe.httpGet.httpHeaders[index] - - - - - - - - - - - - - - - - - + - - + + @@ -23126,7 +28098,7 @@ Autoscaling config.
NameTypeDescriptionRequired
namestringinteger
false
valuestringtimeoutSecondsinteger
-### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].startupProbe.tcpSocket +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].startupProbe.exec @@ -23142,15 +28114,8 @@ Autoscaling config. - host - string - -
- - false - - port - int or string + command + []string
@@ -23159,7 +28124,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].volumeDevices[index] +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].startupProbe.grpc @@ -23175,14 +28140,14 @@ Autoscaling config. - devicePath - string + port + integer
false - name + service string
@@ -23192,7 +28157,7 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].initContainers[index].volumeMounts[index] +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].startupProbe.httpGet @@ -23208,42 +28173,35 @@ Autoscaling config. - mountPath + host string
false - mountPropagation - string + httpHeaders + []object
false - name + path string
false - readOnly - boolean - -
- - false - - subPath - string + port + int or string
false - subPathExpr + scheme string
@@ -23253,11 +28211,11 @@ Autoscaling config. -### PulsarCluster.spec.bookkeeper.sets[key].nodeAffinity +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].startupProbe.httpGet.httpHeaders[index] + -Node affinity configuration. @@ -23269,15 +28227,15 @@ Node affinity configuration. - - + + - - + + @@ -23286,7 +28244,7 @@ Node affinity configuration.
preferredDuringSchedulingIgnoredDuringExecution[]objectnamestring
false
requiredDuringSchedulingIgnoredDuringExecutionobjectvaluestring
-### PulsarCluster.spec.bookkeeper.sets[key].nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index] +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].startupProbe.tcpSocket @@ -23302,15 +28260,15 @@ Node affinity configuration. - preference - object + host + string
false - weight - integer + port + int or string
@@ -23319,7 +28277,7 @@ Node affinity configuration. -### PulsarCluster.spec.bookkeeper.sets[key].nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].volumeDevices[index] @@ -23335,15 +28293,15 @@ Node affinity configuration. - matchExpressions - []object + devicePath + string
false - matchFields - []object + name + string
@@ -23352,7 +28310,7 @@ Node affinity configuration. -### PulsarCluster.spec.bookkeeper.sets[key].nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference.matchExpressions[index] +### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].volumeMounts[index] @@ -23368,88 +28326,50 @@ Node affinity configuration. - key + mountPath string
false - operator + mountPropagation string
false - values - []string + name + string
false - - - - -### PulsarCluster.spec.bookkeeper.sets[key].nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference.matchFields[index] - - - - - - - - - - - - - - - - - + + + - + - - + + - -
NameTypeDescriptionRequired
keystring
readOnlyboolean
false
operatorrecursiveReadOnly string
false
values[]stringsubPathstring
false
- - -### PulsarCluster.spec.bookkeeper.sets[key].nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution - - - - - - - - - - - - - - - - - + + + @@ -23458,7 +28378,7 @@ Node affinity configuration.
NameTypeDescriptionRequired
nodeSelectorTerms[]object
subPathExprstring
-### PulsarCluster.spec.bookkeeper.sets[key].nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index] +### PulsarCluster.spec.bookkeeper.sets[key].tolerations[index] @@ -23474,55 +28394,36 @@ Node affinity configuration. - matchExpressions - []object + effect + string
false - matchFields - []object + key + string
false - - - - -### PulsarCluster.spec.bookkeeper.sets[key].nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index].matchExpressions[index] - - - - - - - - - - - - - - - - + + - - + + - - + + @@ -23531,11 +28432,11 @@ Node affinity configuration.
NameTypeDescriptionRequired
key
operator string
false
operatorstringtolerationSecondsinteger
false
values[]stringvaluestring
-### PulsarCluster.spec.bookkeeper.sets[key].nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index].matchFields[index] - +### PulsarCluster.spec.bookkeeper.sets[key].updateStrategy +Update strategy for the StatefulSet. Default value is rolling update. @@ -23547,35 +28448,28 @@ Node affinity configuration. - - + + - + - - - - -
keystringrollingUpdateobject
false
operatortype string
false
values[]string -
-
false
-### PulsarCluster.spec.bookkeeper.sets[key].pdb +### PulsarCluster.spec.bookkeeper.sets[key].updateStrategy.rollingUpdate + -Pod disruption budget configuration. @@ -23587,28 +28481,28 @@ Pod disruption budget configuration. - - + + - +
enabledbooleanmaxUnavailableint or string - Enable Pdb policy.
+
false
maxUnavailablepartition integer - Number of maxUnavailable pods.
+
false
-### PulsarCluster.spec.bookkeeper.sets[key].probes +### PulsarCluster.spec.bookkeeper.sets[key].volumes -Liveness and readiness probes configuration. +Volumes configuration. @@ -23620,28 +28514,28 @@ Liveness and readiness probes configuration. - + - +
livenessjournal object - Liveness probe configuration.
+ Config for the journal volume.
false
readinessledgers object - Readiness probe configuration.
+ Config for the ledgers volume.
false
-### PulsarCluster.spec.bookkeeper.sets[key].probes.liveness +### PulsarCluster.spec.bookkeeper.sets[key].volumes.journal -Liveness probe configuration. +Config for the journal volume. @@ -23653,63 +28547,42 @@ Liveness probe configuration. - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + +
enabledboolean - Enables the probe.
-
false
failureThresholdinteger - Failure threshold.
-
false
initialDelaySecondsinteger - Indicates the initial delay (in seconds) for the probe.
-
false
periodSecondsintegerexistingStorageClassNamestring - Indicates the period (in seconds) for the probe.
+ Indicates if an already existing storage class should be used.
false
successThresholdintegernamestring - Success threshold.
+ Indicates the suffix for the volume. Default value is 'data'.
false
terminationGracePeriodSecondsintegersizestring - Indicates the termination grace period (in seconds) for the probe.
+ Indicates the requested size for the volume. The format follows the Kubernetes' Quantity.
false
timeoutSecondsintegerstorageClassobject - Indicates the timeout (in seconds) for the probe.
+ Indicates if a StorageClass is used. The operator will create the StorageClass if needed.
false
-### PulsarCluster.spec.bookkeeper.sets[key].probes.readiness +### PulsarCluster.spec.bookkeeper.sets[key].volumes.journal.storageClass -Readiness probe configuration. +Indicates if a StorageClass is used. The operator will create the StorageClass if needed. @@ -23721,63 +28594,49 @@ Readiness probe configuration. - - - - - - - - - - - - + + - - + + - - + + - - + + - - + +
enabledboolean - Enables the probe.
-
false
failureThresholdinteger - Failure threshold.
-
false
initialDelaySecondsintegerextraParamsmap[string]string - Indicates the initial delay (in seconds) for the probe.
+ Adds extra parameters for the StorageClass.
false
periodSecondsintegerfsTypestring - Indicates the period (in seconds) for the probe.
+ Indicates the 'fsType' parameter for the StorageClass.
false
successThresholdintegerprovisionerstring - Success threshold.
+ Indicates the provisioner property for the StorageClass.
false
terminationGracePeriodSecondsintegerreclaimPolicystring - Indicates the termination grace period (in seconds) for the probe.
+ Indicates the reclaimPolicy property for the StorageClass.
false
timeoutSecondsintegertypestring - Indicates the timeout (in seconds) for the probe.
+ Indicates the 'type' parameter for the StorageClass.
false
-### PulsarCluster.spec.bookkeeper.sets[key].resources +### PulsarCluster.spec.bookkeeper.sets[key].volumes.ledgers -Resources requirements. +Config for the ledgers volume. @@ -23789,61 +28648,42 @@ Resources requirements. - - + + - - + + - -
limitsmap[string]int or stringexistingStorageClassNamestring -
+ Indicates if an already existing storage class should be used.
false
requestsmap[string]int or stringnamestring -
+ Indicates the suffix for the volume. Default value is 'data'.
false
- - -### PulsarCluster.spec.bookkeeper.sets[key].service - - - -Service configuration. - - - - - - - - - - - - - + + + - - + +
NameTypeDescriptionRequired
additionalPorts[]object
sizestring - Additional ports to add to the Service.
+ Indicates the requested size for the volume. The format follows the Kubernetes' Quantity.
false
annotationsmap[string]stringstorageClassobject - Additional annotations to add to the Service.
+ Indicates if a StorageClass is used. The operator will create the StorageClass if needed.
false
-### PulsarCluster.spec.bookkeeper.sets[key].service.additionalPorts[index] - +### PulsarCluster.spec.bookkeeper.sets[key].volumes.ledgers.storageClass +Indicates if a StorageClass is used. The operator will create the StorageClass if needed. @@ -23855,52 +28695,45 @@ Service configuration. - - + + - + - - - - - - - + + - + - - + +
appProtocolstringextraParamsmap[string]string -
+ Adds extra parameters for the StorageClass.
false
namefsType string -
-
false
nodePortinteger -
+ Indicates the 'fsType' parameter for the StorageClass.
false
portintegerprovisionerstring -
+ Indicates the provisioner property for the StorageClass.
false
protocolreclaimPolicy string -
+ Indicates the reclaimPolicy property for the StorageClass.
false
targetPortint or stringtypestring -
+ Indicates the 'type' parameter for the StorageClass.
false
-### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index] +### PulsarCluster.spec.bookkeeper.sidecars[index] @@ -23930,14 +28763,14 @@ Service configuration. false - env + env []object
false - envFrom + envFrom []object
@@ -23958,14 +28791,14 @@ Service configuration. false - lifecycle + lifecycle object
false - livenessProbe + livenessProbe object
@@ -23979,35 +28812,49 @@ Service configuration. false - ports + ports []object
false - readinessProbe + readinessProbe object
false - resources + resizePolicy + []object + +
+ + false + + resources object
false - securityContext + restartPolicy + string + +
+ + false + + securityContext object
false - startupProbe + startupProbe object
@@ -24049,14 +28896,14 @@ Service configuration. false - volumeDevices + volumeDevices []object
false - volumeMounts + volumeMounts []object
@@ -24073,7 +28920,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].env[index] +### PulsarCluster.spec.bookkeeper.sidecars[index].env[index] @@ -24103,7 +28950,7 @@ Service configuration. false - valueFrom + valueFrom object
@@ -24113,7 +28960,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].env[index].valueFrom +### PulsarCluster.spec.bookkeeper.sidecars[index].env[index].valueFrom @@ -24129,28 +28976,28 @@ Service configuration. - configMapKeyRef + configMapKeyRef object
false - fieldRef + fieldRef object
false - resourceFieldRef + resourceFieldRef object
false - secretKeyRef + secretKeyRef object
@@ -24160,7 +29007,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].env[index].valueFrom.configMapKeyRef +### PulsarCluster.spec.bookkeeper.sidecars[index].env[index].valueFrom.configMapKeyRef @@ -24200,7 +29047,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].env[index].valueFrom.fieldRef +### PulsarCluster.spec.bookkeeper.sidecars[index].env[index].valueFrom.fieldRef @@ -24233,7 +29080,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].env[index].valueFrom.resourceFieldRef +### PulsarCluster.spec.bookkeeper.sidecars[index].env[index].valueFrom.resourceFieldRef @@ -24273,7 +29120,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].env[index].valueFrom.secretKeyRef +### PulsarCluster.spec.bookkeeper.sidecars[index].env[index].valueFrom.secretKeyRef @@ -24313,7 +29160,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].envFrom[index] +### PulsarCluster.spec.bookkeeper.sidecars[index].envFrom[index] @@ -24329,7 +29176,7 @@ Service configuration. - configMapRef + configMapRef object
@@ -24343,7 +29190,7 @@ Service configuration. false - secretRef + secretRef object
@@ -24353,7 +29200,40 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].envFrom[index].configMapRef +### PulsarCluster.spec.bookkeeper.sidecars[index].envFrom[index].configMapRef + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
namestring +
+
false
optionalboolean +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sidecars[index].envFrom[index].secretRef @@ -24386,7 +29266,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].envFrom[index].secretRef +### PulsarCluster.spec.bookkeeper.sidecars[index].lifecycle @@ -24402,48 +29282,22 @@ Service configuration. - name - string + postStart + object
false - optional - boolean - -
- - false - - - - -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].lifecycle - - - - - - - - - - - - - - - - + - - + + @@ -24452,7 +29306,7 @@ Service configuration.
NameTypeDescriptionRequired
postStartpreStop object
false
preStopobjectstopSignalstring
-### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].lifecycle.postStart +### PulsarCluster.spec.bookkeeper.sidecars[index].lifecycle.postStart @@ -24468,21 +29322,28 @@ Service configuration. - exec + exec object
false - httpGet + httpGet object
false - tcpSocket + sleep + object + +
+ + false + + tcpSocket object
@@ -24492,7 +29353,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].lifecycle.postStart.exec +### PulsarCluster.spec.bookkeeper.sidecars[index].lifecycle.postStart.exec @@ -24518,7 +29379,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].lifecycle.postStart.httpGet +### PulsarCluster.spec.bookkeeper.sidecars[index].lifecycle.postStart.httpGet @@ -24541,7 +29402,7 @@ Service configuration. false - httpHeaders + httpHeaders []object
@@ -24572,7 +29433,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].lifecycle.postStart.httpGet.httpHeaders[index] +### PulsarCluster.spec.bookkeeper.sidecars[index].lifecycle.postStart.httpGet.httpHeaders[index] @@ -24605,7 +29466,33 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].lifecycle.postStart.tcpSocket +### PulsarCluster.spec.bookkeeper.sidecars[index].lifecycle.postStart.sleep + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
secondsinteger +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sidecars[index].lifecycle.postStart.tcpSocket @@ -24638,7 +29525,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].lifecycle.preStop +### PulsarCluster.spec.bookkeeper.sidecars[index].lifecycle.preStop @@ -24654,21 +29541,28 @@ Service configuration. - exec + exec object
false - httpGet + httpGet object
false - tcpSocket + sleep + object + +
+ + false + + tcpSocket object
@@ -24678,7 +29572,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].lifecycle.preStop.exec +### PulsarCluster.spec.bookkeeper.sidecars[index].lifecycle.preStop.exec @@ -24704,7 +29598,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].lifecycle.preStop.httpGet +### PulsarCluster.spec.bookkeeper.sidecars[index].lifecycle.preStop.httpGet @@ -24727,7 +29621,7 @@ Service configuration. false - httpHeaders + httpHeaders []object
@@ -24758,7 +29652,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].lifecycle.preStop.httpGet.httpHeaders[index] +### PulsarCluster.spec.bookkeeper.sidecars[index].lifecycle.preStop.httpGet.httpHeaders[index] @@ -24791,7 +29685,33 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].lifecycle.preStop.tcpSocket +### PulsarCluster.spec.bookkeeper.sidecars[index].lifecycle.preStop.sleep + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
secondsinteger +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sidecars[index].lifecycle.preStop.tcpSocket @@ -24824,7 +29744,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].livenessProbe +### PulsarCluster.spec.bookkeeper.sidecars[index].livenessProbe @@ -24840,7 +29760,7 @@ Service configuration. - exec + exec object
@@ -24854,14 +29774,14 @@ Service configuration. false - grpc + grpc object
false - httpGet + httpGet object
@@ -24889,7 +29809,7 @@ Service configuration. false - tcpSocket + tcpSocket object
@@ -24913,7 +29833,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].livenessProbe.exec +### PulsarCluster.spec.bookkeeper.sidecars[index].livenessProbe.exec @@ -24939,7 +29859,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].livenessProbe.grpc +### PulsarCluster.spec.bookkeeper.sidecars[index].livenessProbe.grpc @@ -24972,7 +29892,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].livenessProbe.httpGet +### PulsarCluster.spec.bookkeeper.sidecars[index].livenessProbe.httpGet @@ -24995,7 +29915,7 @@ Service configuration. false - httpHeaders + httpHeaders []object
@@ -25026,7 +29946,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].livenessProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.bookkeeper.sidecars[index].livenessProbe.httpGet.httpHeaders[index] @@ -25059,7 +29979,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].livenessProbe.tcpSocket +### PulsarCluster.spec.bookkeeper.sidecars[index].livenessProbe.tcpSocket @@ -25092,7 +30012,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].ports[index] +### PulsarCluster.spec.bookkeeper.sidecars[index].ports[index] @@ -25146,7 +30066,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].readinessProbe +### PulsarCluster.spec.bookkeeper.sidecars[index].readinessProbe @@ -25162,7 +30082,7 @@ Service configuration. - exec + exec object
@@ -25176,14 +30096,14 @@ Service configuration. false - grpc + grpc object
false - httpGet + httpGet object
@@ -25211,7 +30131,7 @@ Service configuration. false - tcpSocket + tcpSocket object
@@ -25235,7 +30155,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].readinessProbe.exec +### PulsarCluster.spec.bookkeeper.sidecars[index].readinessProbe.exec @@ -25261,7 +30181,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].readinessProbe.grpc +### PulsarCluster.spec.bookkeeper.sidecars[index].readinessProbe.grpc @@ -25294,7 +30214,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].readinessProbe.httpGet +### PulsarCluster.spec.bookkeeper.sidecars[index].readinessProbe.httpGet @@ -25317,7 +30237,7 @@ Service configuration. false - httpHeaders + httpHeaders []object
@@ -25348,7 +30268,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].readinessProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.bookkeeper.sidecars[index].readinessProbe.httpGet.httpHeaders[index] @@ -25381,7 +30301,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].readinessProbe.tcpSocket +### PulsarCluster.spec.bookkeeper.sidecars[index].readinessProbe.tcpSocket @@ -25414,7 +30334,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].resources +### PulsarCluster.spec.bookkeeper.sidecars[index].resizePolicy[index] @@ -25430,6 +30350,46 @@ Service configuration. + resourceName + string + +
+ + false + + restartPolicy + string + +
+ + false + + + + +### PulsarCluster.spec.bookkeeper.sidecars[index].resources + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
claims[]object +
+
false
limits map[string]int or string @@ -25447,7 +30407,40 @@ Service configuration.
-### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].securityContext +### PulsarCluster.spec.bookkeeper.sidecars[index].resources.claims[index] + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
namestring +
+
false
requeststring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sidecars[index].securityContext @@ -25470,7 +30463,14 @@ Service configuration. false - capabilities + appArmorProfile + object + +
+ + false + + capabilities object
@@ -25519,21 +30519,21 @@ Service configuration. false - seLinuxOptions + seLinuxOptions object
false - seccompProfile + seccompProfile object
false - windowsOptions + windowsOptions object
@@ -25543,7 +30543,40 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].securityContext.capabilities +### PulsarCluster.spec.bookkeeper.sidecars[index].securityContext.appArmorProfile + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
localhostProfilestring +
+
false
typestring +
+
false
+ + +### PulsarCluster.spec.bookkeeper.sidecars[index].securityContext.capabilities @@ -25576,7 +30609,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].securityContext.seLinuxOptions +### PulsarCluster.spec.bookkeeper.sidecars[index].securityContext.seLinuxOptions @@ -25623,7 +30656,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].securityContext.seccompProfile +### PulsarCluster.spec.bookkeeper.sidecars[index].securityContext.seccompProfile @@ -25656,7 +30689,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].securityContext.windowsOptions +### PulsarCluster.spec.bookkeeper.sidecars[index].securityContext.windowsOptions @@ -25703,7 +30736,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].startupProbe +### PulsarCluster.spec.bookkeeper.sidecars[index].startupProbe @@ -25719,7 +30752,7 @@ Service configuration. - exec + exec object
@@ -25733,14 +30766,14 @@ Service configuration. false - grpc + grpc object
false - httpGet + httpGet object
@@ -25768,7 +30801,7 @@ Service configuration. false - tcpSocket + tcpSocket object
@@ -25792,7 +30825,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].startupProbe.exec +### PulsarCluster.spec.bookkeeper.sidecars[index].startupProbe.exec @@ -25818,7 +30851,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].startupProbe.grpc +### PulsarCluster.spec.bookkeeper.sidecars[index].startupProbe.grpc @@ -25851,7 +30884,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].startupProbe.httpGet +### PulsarCluster.spec.bookkeeper.sidecars[index].startupProbe.httpGet @@ -25874,7 +30907,7 @@ Service configuration. false - httpHeaders + httpHeaders []object
@@ -25905,7 +30938,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].startupProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.bookkeeper.sidecars[index].startupProbe.httpGet.httpHeaders[index] @@ -25938,7 +30971,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].startupProbe.tcpSocket +### PulsarCluster.spec.bookkeeper.sidecars[index].startupProbe.tcpSocket @@ -25971,7 +31004,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].volumeDevices[index] +### PulsarCluster.spec.bookkeeper.sidecars[index].volumeDevices[index] @@ -26004,7 +31037,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].sidecars[index].volumeMounts[index] +### PulsarCluster.spec.bookkeeper.sidecars[index].volumeMounts[index] @@ -26047,6 +31080,13 @@ Service configuration.
false + + recursiveReadOnly + string + +
+ + false subPath string @@ -26065,7 +31105,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].tolerations[index] +### PulsarCluster.spec.bookkeeper.tolerations[index] @@ -26119,7 +31159,7 @@ Service configuration. -### PulsarCluster.spec.bookkeeper.sets[key].updateStrategy +### PulsarCluster.spec.bookkeeper.updateStrategy @@ -26135,7 +31175,7 @@ Update strategy for the StatefulSet. Default value is rolling update. - rollingUpdate + rollingUpdate object
@@ -26152,7 +31192,7 @@ Update strategy for the StatefulSet. Default value is rolling update. -### PulsarCluster.spec.bookkeeper.sets[key].updateStrategy.rollingUpdate +### PulsarCluster.spec.bookkeeper.updateStrategy.rollingUpdate @@ -26185,7 +31225,7 @@ Update strategy for the StatefulSet. Default value is rolling update. -### PulsarCluster.spec.bookkeeper.sets[key].volumes +### PulsarCluster.spec.bookkeeper.volumes @@ -26201,14 +31241,14 @@ Volumes configuration. - journal + journal object Config for the journal volume.
false - ledgers + ledgers object Config for the ledgers volume.
@@ -26218,7 +31258,7 @@ Volumes configuration. -### PulsarCluster.spec.bookkeeper.sets[key].volumes.journal +### PulsarCluster.spec.bookkeeper.volumes.journal @@ -26255,7 +31295,7 @@ Config for the journal volume. false - storageClass + storageClass object Indicates if a StorageClass is used. The operator will create the StorageClass if needed.
@@ -26265,7 +31305,7 @@ Config for the journal volume. -### PulsarCluster.spec.bookkeeper.sets[key].volumes.journal.storageClass +### PulsarCluster.spec.bookkeeper.volumes.journal.storageClass @@ -26319,7 +31359,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i -### PulsarCluster.spec.bookkeeper.sets[key].volumes.ledgers +### PulsarCluster.spec.bookkeeper.volumes.ledgers @@ -26356,7 +31396,7 @@ Config for the ledgers volume. false - storageClass + storageClass object Indicates if a StorageClass is used. The operator will create the StorageClass if needed.
@@ -26366,7 +31406,7 @@ Config for the ledgers volume. -### PulsarCluster.spec.bookkeeper.sets[key].volumes.ledgers.storageClass +### PulsarCluster.spec.bookkeeper.volumes.ledgers.storageClass @@ -26420,7 +31460,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i -### PulsarCluster.spec.bookkeeper.sidecars[index] +### PulsarCluster.spec.broker @@ -26436,168 +31476,261 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - args - []string + additionalVolumes + object -
+ Mount additional volumes to the pod.
false - command - []string + annotations + map[string]string -
+ Annotations to add to each resource (except pods).
false - env - []object + antiAffinity + object -
+ Pod anti-affinity configuration. This override the global value if set.
false - envFrom + autoscaler + object + + Autoscaling config.
+ + false + + config + JSON + + Configuration.
+ + false + + env []object + Additional container env variables.
+ + false + + functionsWorkerEnabled + boolean + + Enable functions worker embedded in the broker.
+ + false + + gracePeriod + integer + + Termination grace period in seconds.

+ Minimum: 0
false image string -
+ Override Pulsar image.
false imagePullPolicy string -
+ Override image pull policy.
false - lifecycle - object + imagePullSecrets + []object -
+ Image pull secrets.
false - livenessProbe + initContainers + []object + + Init containers
+ + false + + kafka object -
+ Enable Kafka protocol.
false - name - string + labels + map[string]string -
+ Labels to add to each resource (except pods).
false - ports - []object + matchLabels + map[string]string -
+ Match labels selectors to add to each pod.
false - readinessProbe + minReadySeconds + integer + + Min seconds to wait before considering the pod as ready.
+ + false + + nodeAffinity object -
+ Node affinity configuration.
false - resources + nodeSelectors + map[string]string + + Additional node selectors.
+ + false + + overrideResourceName + string + + Override the resource names generated by the operator.
+ + false + + pdb object -
+ Pod disruption budget configuration.
false - securityContext + podAnnotations + map[string]string + + Annotations to add to pod.
+ + false + + podLabels + map[string]string + + Labels to add to each pod.
+ + false + + podManagementPolicy + string + + Pod management policy.
+ + false + + probes object -
+ Liveness and readiness probes configuration.
false - startupProbe + replicas + integer + + Number of desired replicas.
+ + false + + resources object -
+ Resources requirements.
false - stdin - boolean + securityContext + object -
+ Subset of PodSecurityContext for basic UID, GID, and volume access control.
false - stdinOnce - boolean + service + object -
+ Service configuration.
false - terminationMessagePath + serviceAccountName string -
+ Service account name for the resource.
false - terminationMessagePolicy + sets + map[string]object + + Broker sets.
+ + false + + setsUpdateStrategy string -
+ Sets update strategy. 'RollingUpdate' or 'Parallel'. Default is 'RollingUpdate'.
false - tty - boolean + sidecars + []object -
+ Sidecar containers
false - volumeDevices + tolerations []object -
+ Pod tolerations.
false - volumeMounts - []object + transactions + object -
+ Enable transactions in the broker.
false - workingDir - string + updateStrategy + object -
+ Update strategy for the StatefulSet.
false -### PulsarCluster.spec.bookkeeper.sidecars[index].env[index] - +### PulsarCluster.spec.broker.additionalVolumes +Mount additional volumes to the pod. @@ -26609,31 +31742,24 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - - - - - - - + + - - + +
namestring -
-
false
valuestringmounts[]object -
+ Mount points for the additional volumes
false
valueFromobjectvolumes[]object -
+ Additional volumes to be mounted to the pod
false
-### PulsarCluster.spec.bookkeeper.sidecars[index].env[index].valueFrom +### PulsarCluster.spec.broker.additionalVolumes.mounts[index] @@ -26649,69 +31775,50 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - configMapKeyRef - object + mountPath + string
false - fieldRef - object + mountPropagation + string
false - resourceFieldRef - object + name + string
false - secretKeyRef - object + readOnly + boolean
false - - - - -### PulsarCluster.spec.bookkeeper.sidecars[index].env[index].valueFrom.configMapKeyRef - - - - - - - - - - - - - - - - + + - + - - + + @@ -26720,7 +31827,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i
NameTypeDescriptionRequired
key
recursiveReadOnly string
false
namesubPath string
false
optionalbooleansubPathExprstring
-### PulsarCluster.spec.bookkeeper.sidecars[index].env[index].valueFrom.fieldRef +### PulsarCluster.spec.broker.additionalVolumes.volumes[index] @@ -26736,420 +31843,218 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - apiVersion - string + awsElasticBlockStore + object
false - fieldPath - string + azureDisk + object
false - - - - -### PulsarCluster.spec.bookkeeper.sidecars[index].env[index].valueFrom.resourceFieldRef - - - - - - - - - - - - - - - - - + + + - - + + - - + + - -
NameTypeDescriptionRequired
containerNamestring
azureFileobject
false
divisorint or stringcephfsobject
false
resourcestringcinderobject
false
- - -### PulsarCluster.spec.bookkeeper.sidecars[index].env[index].valueFrom.secretKeyRef - - - - - - - - - - - - - - - - - + + + - - + + - - + + - -
NameTypeDescriptionRequired
keystring
configMapobject
false
namestringcsiobject
false
optionalbooleandownwardAPIobject
false
- - -### PulsarCluster.spec.bookkeeper.sidecars[index].envFrom[index] - - - - - - - - - - - - - - - - + + - - + + - + - -
NameTypeDescriptionRequired
configMapRef
emptyDir object
false
prefixstringephemeralobject
false
secretReffc object
false
- - -### PulsarCluster.spec.bookkeeper.sidecars[index].envFrom[index].configMapRef - - - - - - - - - - - - - - - - - + + + - - + + - -
NameTypeDescriptionRequired
namestring
flexVolumeobject
false
optionalbooleanflockerobject
false
- - -### PulsarCluster.spec.bookkeeper.sidecars[index].envFrom[index].secretRef - - - - - - - - - - - - - - - - - + + + - - + + - -
NameTypeDescriptionRequired
namestring
gcePersistentDiskobject
false
optionalbooleangitRepoobject
false
- - -### PulsarCluster.spec.bookkeeper.sidecars[index].lifecycle - - - - - - - - - - - - - - - - + + - + - -
NameTypeDescriptionRequired
postStart
glusterfs object
false
preStophostPath object
false
- - -### PulsarCluster.spec.bookkeeper.sidecars[index].lifecycle.postStart - - - - - - - - - - - - - - - - + + - + - + + + + + + - -
NameTypeDescriptionRequired
exec
image object
false
httpGetiscsi object
false
tcpSocketnamestring +
+
false
nfs object
false
- - -### PulsarCluster.spec.bookkeeper.sidecars[index].lifecycle.postStart.exec - - - - - - - - - - - - - - - - - + + + - -
NameTypeDescriptionRequired
command[]string
persistentVolumeClaimobject
false
- - -### PulsarCluster.spec.bookkeeper.sidecars[index].lifecycle.postStart.httpGet - - - - - - - - - - - - - - - - - + + + - - + + - - + + - - + + - - + + - -
NameTypeDescriptionRequired
hoststring
photonPersistentDiskobject
false
httpHeaders[]objectportworxVolumeobject
false
pathstringprojectedobject
false
portint or stringquobyteobject
false
schemestringrbdobject
false
- - -### PulsarCluster.spec.bookkeeper.sidecars[index].lifecycle.postStart.httpGet.httpHeaders[index] - - - - - - - - - - - - - - - - - + + + - - + + - -
NameTypeDescriptionRequired
namestring
scaleIOobject
false
valuestringsecretobject
false
- - -### PulsarCluster.spec.bookkeeper.sidecars[index].lifecycle.postStart.tcpSocket - - - - - - - - - - - - - - - - - + + + - - + + @@ -27158,7 +32063,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i
NameTypeDescriptionRequired
hoststring
storageosobject
false
portint or stringvsphereVolumeobject
-### PulsarCluster.spec.bookkeeper.sidecars[index].lifecycle.preStop +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].awsElasticBlockStore @@ -27174,48 +32079,29 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - exec - object + fsType + string
false - httpGet - object + partition + integer
false - tcpSocket - object + readOnly + boolean
false - - - - -### PulsarCluster.spec.bookkeeper.sidecars[index].lifecycle.preStop.exec - - - - - - - - - - - - - - - - - + + + @@ -27224,7 +32110,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i
NameTypeDescriptionRequired
command[]string
volumeIDstring
-### PulsarCluster.spec.bookkeeper.sidecars[index].lifecycle.preStop.httpGet +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].azureDisk @@ -27240,69 +32126,43 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - host + cachingMode string
false - httpHeaders - []object - -
- - false - - path + diskName string
false - port - int or string + diskURI + string
false - scheme + fsType string
false - - - - -### PulsarCluster.spec.bookkeeper.sidecars[index].lifecycle.preStop.httpGet.httpHeaders[index] - - - - - - - - - - - - - - - - + + - - + + @@ -27311,7 +32171,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i
NameTypeDescriptionRequired
name
kind string
false
valuestringreadOnlyboolean
-### PulsarCluster.spec.bookkeeper.sidecars[index].lifecycle.preStop.tcpSocket +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].azureFile @@ -27327,15 +32187,22 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - host + readOnly + boolean + +
+ + false + + secretName string
false - port - int or string + shareName + string
@@ -27344,7 +32211,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i -### PulsarCluster.spec.bookkeeper.sidecars[index].livenessProbe +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].cephfs @@ -27360,97 +32227,43 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - exec - object - -
- - false - - failureThreshold - integer - -
- - false - - grpc - object - -
- - false - - httpGet - object + monitors + []string
false - initialDelaySeconds - integer + path + string
false - periodSeconds - integer + readOnly + boolean
false - successThreshold - integer + secretFile + string
false - tcpSocket + secretRef object
false - terminationGracePeriodSeconds - integer - -
- - false - - timeoutSeconds - integer - -
- - false - - - - -### PulsarCluster.spec.bookkeeper.sidecars[index].livenessProbe.exec - - - - - - - - - - - - - - - - - + + @@ -27459,7 +32272,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i
NameTypeDescriptionRequired
command[]stringuserstring
-### PulsarCluster.spec.bookkeeper.sidecars[index].livenessProbe.grpc +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].cephfs.secretRef @@ -27475,14 +32288,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - port - integer - -
- - false - - service + name string
@@ -27492,7 +32298,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i -### PulsarCluster.spec.bookkeeper.sidecars[index].livenessProbe.httpGet +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].cinder @@ -27508,35 +32314,28 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - host + fsType string
false - httpHeaders - []object - -
- - false - - path - string + readOnly + boolean
false - port - int or string + secretRef + object
false - scheme + volumeID string
@@ -27546,7 +32345,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i -### PulsarCluster.spec.bookkeeper.sidecars[index].livenessProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].cinder.secretRef @@ -27568,18 +32367,11 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i
false - - value - string - -
- - false -### PulsarCluster.spec.bookkeeper.sidecars[index].livenessProbe.tcpSocket +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].configMap @@ -27595,15 +32387,29 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - host + defaultMode + integer + +
+ + false + + items + []object + +
+ + false + + name string
false - port - int or string + optional + boolean
@@ -27612,7 +32418,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i -### PulsarCluster.spec.bookkeeper.sidecars[index].ports[index] +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].configMap.items[index] @@ -27628,35 +32434,21 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - containerPort - integer - -
- - false - - hostIP + key string
false - hostPort + mode integer
false - name - string - -
- - false - - protocol + path string
@@ -27666,7 +32458,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i -### PulsarCluster.spec.bookkeeper.sidecars[index].readinessProbe +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].csi @@ -27682,71 +32474,36 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - exec - object - -
- - false - - failureThreshold - integer - -
- - false - - grpc - object - -
- - false - - httpGet - object - -
- - false - - initialDelaySeconds - integer - -
- - false - - periodSeconds - integer + driver + string
false - successThreshold - integer + fsType + string
false - tcpSocket + nodePublishSecretRef object
false - terminationGracePeriodSeconds - integer + readOnly + boolean
false - timeoutSeconds - integer + volumeAttributes + map[string]string
@@ -27755,7 +32512,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i -### PulsarCluster.spec.bookkeeper.sidecars[index].readinessProbe.exec +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].csi.nodePublishSecretRef @@ -27771,8 +32528,8 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - command - []string + name + string
@@ -27781,7 +32538,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i -### PulsarCluster.spec.bookkeeper.sidecars[index].readinessProbe.grpc +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].downwardAPI @@ -27797,15 +32554,15 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - port + defaultMode integer
false - service - string + items + []object
@@ -27814,7 +32571,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i -### PulsarCluster.spec.bookkeeper.sidecars[index].readinessProbe.httpGet +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].downwardAPI.items[index] @@ -27830,15 +32587,15 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - host - string + fieldRef + object
false - httpHeaders - []object + mode + integer
@@ -27851,14 +32608,40 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i false - port - int or string + resourceFieldRef + object + +
+ + false + + + + +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].downwardAPI.items[index].fieldRef + + + + + + + + + + + + + + + + + - +
NameTypeDescriptionRequired
apiVersionstring
false
schemefieldPath string
@@ -27868,7 +32651,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i
-### PulsarCluster.spec.bookkeeper.sidecars[index].readinessProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].downwardAPI.items[index].resourceFieldRef @@ -27884,14 +32667,21 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - name + containerName string
false - value + divisor + int or string + +
+ + false + + resource string
@@ -27901,7 +32691,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i -### PulsarCluster.spec.bookkeeper.sidecars[index].readinessProbe.tcpSocket +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].emptyDir @@ -27917,14 +32707,14 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - host + medium string
false - port + sizeLimit int or string
@@ -27934,7 +32724,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i -### PulsarCluster.spec.bookkeeper.sidecars[index].resources +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].ephemeral @@ -27950,15 +32740,41 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - limits - map[string]int or string + volumeClaimTemplate + object + +
+ + false + + + + +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate + + + + + + + + + + + + + + + + + - - + + @@ -27967,7 +32783,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i
NameTypeDescriptionRequired
metadataobject
false
requestsmap[string]int or stringspecobject
-### PulsarCluster.spec.bookkeeper.sidecars[index].securityContext +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.metadata @@ -27983,111 +32799,106 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - allowPrivilegeEscalation - boolean + annotations + map[string]string
false - capabilities - object + creationTimestamp + string
false - privileged - boolean + deletionGracePeriodSeconds + integer
false - procMount + deletionTimestamp string
false - readOnlyRootFilesystem - boolean + finalizers + []string
false - runAsGroup + generateName + string + +
+ + false + + generation integer
false - runAsNonRoot - boolean + labels + map[string]string
false - runAsUser - integer + managedFields + []object
false - seLinuxOptions - object + name + string
false - seccompProfile - object + namespace + string
false - windowsOptions - object + ownerReferences + []object
false - - - - -### PulsarCluster.spec.bookkeeper.sidecars[index].securityContext.capabilities - - - - - - - - - - - - - - - - - + + + - - + + + + + + + @@ -28096,7 +32907,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i
NameTypeDescriptionRequired
add[]string
resourceVersionstring
false
drop[]stringselfLinkstring +
+
false
uidstring
-### PulsarCluster.spec.bookkeeper.sidecars[index].securityContext.seLinuxOptions +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.metadata.managedFields[index] @@ -28112,61 +32923,49 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - level + apiVersion string
false - role + fieldsType string
false - type + fieldsV1 + object + +
+ + false + + manager string
false - user + operation string
false - - - - -### PulsarCluster.spec.bookkeeper.sidecars[index].securityContext.seccompProfile - - - - - - - - - - - - - - - - + + - +
NameTypeDescriptionRequired
localhostProfile
subresource string
false
typetime string
@@ -28176,7 +32975,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i
-### PulsarCluster.spec.bookkeeper.sidecars[index].securityContext.windowsOptions +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.metadata.ownerReferences[index] @@ -28192,28 +32991,42 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - gmsaCredentialSpec + apiVersion string
false - gmsaCredentialSpecName - string + blockOwnerDeletion + boolean
false - hostProcess + controller boolean
false - runAsUserName + kind + string + +
+ + false + + name + string + +
+ + false + + uid string
@@ -28223,7 +33036,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i -### PulsarCluster.spec.bookkeeper.sidecars[index].startupProbe +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec @@ -28236,74 +33049,67 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i Type Description Required - - - - exec - object - -
- - false - - failureThreshold - integer + + + + accessModes + []string
false - grpc + dataSource object
false - httpGet + dataSourceRef object
false - initialDelaySeconds - integer + resources + object
false - periodSeconds - integer + selector + object
false - successThreshold - integer + storageClassName + string
false - tcpSocket - object + volumeAttributesClassName + string
false - terminationGracePeriodSeconds - integer + volumeMode + string
false - timeoutSeconds - integer + volumeName + string
@@ -28312,7 +33118,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i -### PulsarCluster.spec.bookkeeper.sidecars[index].startupProbe.exec +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.dataSource @@ -28328,40 +33134,21 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - command - []string + apiGroup + string
false - - - - -### PulsarCluster.spec.bookkeeper.sidecars[index].startupProbe.grpc - - - - - - - - - - - - - - - - - + + + - +
NameTypeDescriptionRequired
portinteger
kindstring
false
servicename string
@@ -28371,7 +33158,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i
-### PulsarCluster.spec.bookkeeper.sidecars[index].startupProbe.httpGet +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.dataSourceRef @@ -28387,35 +33174,28 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - host + apiGroup string
false - httpHeaders - []object - -
- - false - - path + kind string
false - port - int or string + name + string
false - scheme + namespace string
@@ -28425,7 +33205,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i -### PulsarCluster.spec.bookkeeper.sidecars[index].startupProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.resources @@ -28441,15 +33221,15 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - name - string + limits + map[string]int or string
false - value - string + requests + map[string]int or string
@@ -28458,7 +33238,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i -### PulsarCluster.spec.bookkeeper.sidecars[index].startupProbe.tcpSocket +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.selector @@ -28474,15 +33254,15 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - host - string + matchExpressions + []object
false - port - int or string + matchLabels + map[string]string
@@ -28491,7 +33271,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i -### PulsarCluster.spec.bookkeeper.sidecars[index].volumeDevices[index] +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.selector.matchExpressions[index] @@ -28507,24 +33287,31 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - devicePath + key string
false - name + operator string
false + + values + []string + +
+ + false -### PulsarCluster.spec.bookkeeper.sidecars[index].volumeMounts[index] +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].fc @@ -28540,22 +33327,15 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - mountPath - string - -
- - false - - mountPropagation + fsType string
false - name - string + lun + integer
@@ -28568,15 +33348,15 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i false - subPath - string + targetWWNs + []string
false - subPathExpr - string + wwids + []string
@@ -28585,7 +33365,7 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i -### PulsarCluster.spec.bookkeeper.tolerations[index] +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].flexVolume @@ -28601,36 +33381,36 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - effect + driver string
false - key + fsType string
false - operator - string + options + map[string]string
false - tolerationSeconds - integer + readOnly + boolean
false - value - string + secretRef + object
@@ -28639,11 +33419,11 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i -### PulsarCluster.spec.bookkeeper.updateStrategy +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].flexVolume.secretRef + -Update strategy for the StatefulSet. Default value is rolling update. @@ -28655,14 +33435,7 @@ Update strategy for the StatefulSet. Default value is rolling update. - - - - - - +
rollingUpdateobject -
-
false
typename string
@@ -28672,7 +33445,7 @@ Update strategy for the StatefulSet. Default value is rolling update.
-### PulsarCluster.spec.bookkeeper.updateStrategy.rollingUpdate +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].flocker @@ -28688,15 +33461,15 @@ Update strategy for the StatefulSet. Default value is rolling update. - maxUnavailable - int or string + datasetName + string
false - partition - integer + datasetUUID + string
@@ -28705,11 +33478,11 @@ Update strategy for the StatefulSet. Default value is rolling update. -### PulsarCluster.spec.bookkeeper.volumes +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].gcePersistentDisk + -Volumes configuration. @@ -28721,28 +33494,42 @@ Volumes configuration. - - + + - - + + + + + + + + + + + +
journalobjectfsTypestring - Config for the journal volume.
+
false
ledgersobjectpartitioninteger - Config for the ledgers volume.
+
+
false
pdNamestring +
+
false
readOnlyboolean +
false
-### PulsarCluster.spec.bookkeeper.volumes.journal +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].gitRepo + -Config for the journal volume. @@ -28754,42 +33541,35 @@ Config for the journal volume. - + - + - + - - - - -
existingStorageClassNamedirectory string - Indicates if an already existing storage class should be used.
+
false
namerepository string - Indicates the suffix for the volume. Default value is 'data'.
+
false
sizerevision string - Indicates the requested size for the volume. The format follows the Kubernetes' Quantity.
-
false
storageClassobject - Indicates if a StorageClass is used. The operator will create the StorageClass if needed.
+
false
-### PulsarCluster.spec.bookkeeper.volumes.journal.storageClass +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].glusterfs + -Indicates if a StorageClass is used. The operator will create the StorageClass if needed. @@ -28801,49 +33581,35 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - - - - - - - - - - - + - + - - + +
extraParamsmap[string]string - Adds extra parameters for the StorageClass.
-
false
fsTypestring - Indicates the 'fsType' parameter for the StorageClass.
-
false
provisionerendpoints string - Indicates the provisioner property for the StorageClass.
+
false
reclaimPolicypath string - Indicates the reclaimPolicy property for the StorageClass.
+
false
typestringreadOnlyboolean - Indicates the 'type' parameter for the StorageClass.
+
false
-### PulsarCluster.spec.bookkeeper.volumes.ledgers +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].hostPath + -Config for the ledgers volume. @@ -28855,42 +33621,28 @@ Config for the ledgers volume. - - - - - - + - + - - - - -
existingStorageClassNamestring - Indicates if an already existing storage class should be used.
-
false
namepath string - Indicates the suffix for the volume. Default value is 'data'.
+
false
sizetype string - Indicates the requested size for the volume. The format follows the Kubernetes' Quantity.
-
false
storageClassobject - Indicates if a StorageClass is used. The operator will create the StorageClass if needed.
+
false
-### PulsarCluster.spec.bookkeeper.volumes.ledgers.storageClass +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].image + -Indicates if a StorageClass is used. The operator will create the StorageClass if needed. @@ -28902,45 +33654,24 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - - - - - - - - - - - - - - - - + - +
extraParamsmap[string]string - Adds extra parameters for the StorageClass.
-
false
fsTypestring - Indicates the 'fsType' parameter for the StorageClass.
-
false
provisionerstring - Indicates the provisioner property for the StorageClass.
-
false
reclaimPolicypullPolicy string - Indicates the reclaimPolicy property for the StorageClass.
+
false
typereference string - Indicates the 'type' parameter for the StorageClass.
+
false
-### PulsarCluster.spec.broker +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].iscsi @@ -28956,247 +33687,157 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - additionalVolumes - object - - Mount additional volumes to the pod.
- - false - - annotations - map[string]string - - Annotations to add to each resource (except pods).
- - false - - antiAffinity - object - - Pod anti-affinity configuration. This override the global value if set.
- - false - - autoscaler - object - - Autoscaling config.
- - false - - config - JSON - - Configuration.
- - false - - env - []object - - Additional container env variables.
- - false - - functionsWorkerEnabled + chapAuthDiscovery boolean - Enable functions worker embedded in the broker.
+
false - gracePeriod - integer + chapAuthSession + boolean - Termination grace period in seconds.

- Minimum: 0
false - image + fsType string - Override Pulsar image.
+
false - imagePullPolicy + initiatorName string - Override image pull policy.
- - false - - imagePullSecrets - []object - - Image pull secrets.
- - false - - initContainers - []object - - Init containers
- - false - - kafka - object - - Enable Kafka protocol.
- - false - - labels - map[string]string - - Labels to add to each resource (except pods).
- - false - - matchLabels - map[string]string - - Match labels selectors to add to each pod.
- - false - - nodeAffinity - object - - Node affinity configuration.
- - false - - nodeSelectors - map[string]string - - Additional node selectors.
+
false - overrideResourceName + iqn string - Override the resource names generated by the operator.
- - false - - pdb - object - - Pod disruption budget configuration.
- - false - - podAnnotations - map[string]string - - Annotations to add to pod.
- - false - - podLabels - map[string]string - - Labels to add to each pod.
+
false - podManagementPolicy + iscsiInterface string - Pod management policy.
+
false - probes - object + lun + integer - Liveness and readiness probes configuration.
+
false - replicas - integer + portals + []string - Number of desired replicas.
+
false - resources - object + readOnly + boolean - Resources requirements.
+
false - service + secretRef object - Service configuration.
+
false - serviceAccountName + targetPortal string - Service account name for the resource.
- - false - - sets - map[string]object - - Broker sets.
+
false - - setsUpdateStrategy + + + + +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].iscsi.secretRef + + + + + + + + + + + + + + + + - - - - - - - - + +
NameTypeDescriptionRequired
name string - Sets update strategy. 'RollingUpdate' or 'Parallel'. Default is 'RollingUpdate'.
-
false
sidecars[]object - Sidecar containers
+
false
tolerations[]object
+ + +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].nfs + + + + + + + + + + + + + + + + + - - + + - - + +
NameTypeDescriptionRequired
pathstring - Pod tolerations.
+
false
transactionsobjectreadOnlyboolean - Enable transactions in the broker.
+
false
updateStrategyobjectserverstring - Update strategy for the StatefulSet.
+
false
-### PulsarCluster.spec.broker.additionalVolumes +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].persistentVolumeClaim + -Mount additional volumes to the pod. @@ -29208,24 +33849,24 @@ Mount additional volumes to the pod. - - + + - - + +
mounts[]objectclaimNamestring - Mount points for the additional volumes
+
false
volumes[]objectreadOnlyboolean - Additional volumes to be mounted to the pod
+
false
-### PulsarCluster.spec.broker.additionalVolumes.mounts[index] +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].photonPersistentDisk @@ -29241,21 +33882,40 @@ Mount additional volumes to the pod. - mountPath + fsType string
false - mountPropagation + pdID string
false - - name + + + + +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].portworxVolume + + + + + + + + + + + + + + + + - - - - - - +
NameTypeDescriptionRequired
fsType string
@@ -29269,14 +33929,7 @@ Mount additional volumes to the pod.
false
subPathstring -
-
false
subPathExprvolumeID string
@@ -29286,7 +33939,7 @@ Mount additional volumes to the pod.
-### PulsarCluster.spec.broker.additionalVolumes.volumes[index] +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].projected @@ -29302,127 +33955,222 @@ Mount additional volumes to the pod. - awsElasticBlockStore - object + defaultMode + integer
false - azureDisk - object + sources + []object
false - - azureFile + + + + +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].projected.sources[index] + + + + + + + + + + + + + + + + - + - + - + - + - - + +
NameTypeDescriptionRequired
clusterTrustBundle object
false
cephfsconfigMap object
false
cinderdownwardAPI object
false
configMapsecret object
false
csiserviceAccountToken object
false
downwardAPI
+ + +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].projected.sources[index].clusterTrustBundle + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - - + +
NameTypeDescriptionRequired
labelSelector object
false
emptyDirobjectnamestring
false
ephemeralobjectoptionalboolean
false
fcobjectpathstring
false
flexVolumeobjectsignerNamestring
false
flockerobject
+ + +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].projected.sources[index].clusterTrustBundle.labelSelector + + + + + + + + + + + + + + + + + - - + + - - - + +
NameTypeDescriptionRequired
matchExpressions[]object
false
gcePersistentDiskobjectmatchLabelsmap[string]string
false
gitRepoobject
+ + +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].projected.sources[index].clusterTrustBundle.labelSelector.matchExpressions[index] + + + + + + + + + + + + + + + + + - - + + - - + + - - - + +
NameTypeDescriptionRequired
keystring
false
glusterfsobjectoperatorstring
false
hostPathobjectvalues[]string
false
iscsiobject
+ + +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].projected.sources[index].configMap + + + + + + + + + + + + + + + + + @@ -29435,78 +34183,154 @@ Mount additional volumes to the pod. - - + + - - - + +
NameTypeDescriptionRequired
items[]object
false
nfsobjectoptionalboolean
false
persistentVolumeClaimobject
+ + +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].projected.sources[index].configMap.items[index] + + + + + + + + + + + + + + + + + - - + + - - + + - - - + +
NameTypeDescriptionRequired
keystring
false
photonPersistentDiskobjectmodeinteger
false
portworxVolumeobjectpathstring
false
projectedobject
+ + +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].projected.sources[index].downwardAPI + + + + + + + + + + + + + + + + + - - + +
NameTypeDescriptionRequired
items[]object
false
quobyte
+ + +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index] + + + + + + + + + + + + + + + + - - + + - - + + - + - - - + +
NameTypeDescriptionRequired
fieldRef object
false
rbdobjectmodeinteger
false
scaleIOobjectpathstring
false
secretresourceFieldRef object
false
storageosobject
+ + +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index].fieldRef + + + + + + + + + + + + + + + + + - - + + @@ -29515,7 +34339,7 @@ Mount additional volumes to the pod.
NameTypeDescriptionRequired
apiVersionstring
false
vsphereVolumeobjectfieldPathstring
-### PulsarCluster.spec.broker.additionalVolumes.volumes[index].awsElasticBlockStore +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index].resourceFieldRef @@ -29531,38 +34355,71 @@ Mount additional volumes to the pod. - fsType + containerName string
false - partition - integer + divisor + int or string
false - readOnly - boolean + resource + string + +
+ + false + + + + +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].projected.sources[index].secret + + + + + + + + + + + + + + + + + - + + + + + +
NameTypeDescriptionRequired
items[]object
false
volumeIDname string
false
optionalboolean +
+
false
-### PulsarCluster.spec.broker.additionalVolumes.volumes[index].azureDisk +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].projected.sources[index].secret.items[index] @@ -29578,43 +34435,62 @@ Mount additional volumes to the pod. - cachingMode + key string
false - diskName - string + mode + integer
false - diskURI + path string
false - - fsType + + + + +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].projected.sources[index].serviceAccountToken + + + + + + + + + + + + + + + + - - + + - - + + @@ -29623,7 +34499,7 @@ Mount additional volumes to the pod.
NameTypeDescriptionRequired
audience string
false
kindstringexpirationSecondsinteger
false
readOnlybooleanpathstring
-### PulsarCluster.spec.broker.additionalVolumes.volumes[index].azureFile +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].quobyte @@ -29639,6 +34515,13 @@ Mount additional volumes to the pod. + group + string + +
+ + false + readOnly boolean @@ -29646,14 +34529,28 @@ Mount additional volumes to the pod. false - secretName + registry string
false - shareName + tenant + string + +
+ + false + + user + string + +
+ + false + + volume string
@@ -29663,7 +34560,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].cephfs +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].rbd @@ -29679,35 +34576,49 @@ Mount additional volumes to the pod. - monitors - []string + fsType + string
false - path + image string
false - readOnly - boolean + keyring + string
false - secretFile + monitors + []string + +
+ + false + + pool string
false - secretRef + readOnly + boolean + +
+ + false + + secretRef object
@@ -29724,7 +34635,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].cephfs.secretRef +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].rbd.secretRef @@ -29750,7 +34661,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].cinder +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].scaleIO @@ -29772,6 +34683,20 @@ Mount additional volumes to the pod.
false + + gateway + string + +
+ + false + + protectionDomain + string + +
+ + false readOnly boolean @@ -29780,14 +34705,42 @@ Mount additional volumes to the pod. false - secretRef + secretRef object
false - volumeID + sslEnabled + boolean + +
+ + false + + storageMode + string + +
+ + false + + storagePool + string + +
+ + false + + system + string + +
+ + false + + volumeName string
@@ -29797,7 +34750,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].cinder.secretRef +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].scaleIO.secretRef @@ -29823,7 +34776,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].configMap +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].secret @@ -29846,22 +34799,22 @@ Mount additional volumes to the pod. false - items + items []object
false - name - string + optional + boolean
false - optional - boolean + secretName + string
@@ -29870,7 +34823,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].configMap.items[index] +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].secret.items[index] @@ -29910,7 +34863,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].csi +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].storageos @@ -29926,36 +34879,36 @@ Mount additional volumes to the pod. - driver + fsType string
false - fsType - string + readOnly + boolean
false - nodePublishSecretRef + secretRef object
false - readOnly - boolean + volumeName + string
false - volumeAttributes - map[string]string + volumeNamespace + string
@@ -29964,7 +34917,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].csi.nodePublishSecretRef +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].storageos.secretRef @@ -29990,7 +34943,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].downwardAPI +### PulsarCluster.spec.broker.additionalVolumes.volumes[index].vsphereVolume @@ -30006,15 +34959,29 @@ Mount additional volumes to the pod. - defaultMode - integer + fsType + string
false - items - []object + storagePolicyID + string + +
+ + false + + storagePolicyName + string + +
+ + false + + volumePath + string
@@ -30023,11 +34990,11 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].downwardAPI.items[index] - +### PulsarCluster.spec.broker.antiAffinity +Pod anti-affinity configuration. This override the global value if set. @@ -30039,42 +35006,28 @@ Mount additional volumes to the pod. - + - - - - - - - - - - - +
fieldRefhost object -
-
false
modeinteger -
-
false
pathstring -
+ Indicates the reclaimPolicy property for the StorageClass.
false
resourceFieldRefzone object -
+ Indicates the provisioner property for the StorageClass.
false
-### PulsarCluster.spec.broker.additionalVolumes.volumes[index].downwardAPI.items[index].fieldRef - +### PulsarCluster.spec.broker.antiAffinity.host +Indicates the reclaimPolicy property for the StorageClass. @@ -30086,28 +35039,28 @@ Mount additional volumes to the pod. - - + + - - + +
apiVersionstringenabledboolean -
+ Indicates the reclaimPolicy property for the StorageClass.
false
fieldPathstringrequiredboolean -
+ Indicates the reclaimPolicy property for the StorageClass.
false
-### PulsarCluster.spec.broker.additionalVolumes.volumes[index].downwardAPI.items[index].resourceFieldRef - +### PulsarCluster.spec.broker.antiAffinity.zone +Indicates the provisioner property for the StorageClass. @@ -30119,35 +35072,28 @@ Mount additional volumes to the pod. - - - - - - - + + - - + +
containerNamestring -
-
false
divisorint or stringenabledboolean -
+ Indicates the reclaimPolicy property for the StorageClass.
false
resourcestringrequiredboolean -
+ Indicates the reclaimPolicy property for the StorageClass.
false
-### PulsarCluster.spec.broker.additionalVolumes.volumes[index].emptyDir - +### PulsarCluster.spec.broker.autoscaler +Autoscaling config. @@ -30159,24 +35105,96 @@ Mount additional volumes to the pod. - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + +
mediumenabledboolean + Enable autoscaling for brokers.
+
false
higherCpuThresholdnumber + The threshold to trigger a scale up. The autoscaler will scale up if all the brokers cpu usage is higher than this threshold. Default is '0.8'
+
+ Minimum: 0
+ Maximum: 1
+
false
lowerCpuThresholdnumber + The threshold to trigger a scale down. The autoscaler will scale down if all the brokers cpu usage is lower than this threshold. Default is '0.4'
+
+ Minimum: 0
+ Maximum: 1
+
false
maxinteger + Max number of brokers. If the number of brokers is equals to this value, the autoscaler will never scale up.
+
false
mininteger + Min number of brokers. If the number of brokers is equals to this value, the autoscaler will never scale down.
+
+ Minimum: 1
+
false
periodMsinteger + The interval in milliseconds between two consecutive autoscaling checks.
+
+ Minimum: 1000
+
false
resourcesUsageSource string + Source for getting the brokers resources usage. Possible values are 'PulsarLBReport' and 'K8SMetrics'. Default is 'PulsarLBReport'
+
false
scaleDownByinteger + The number of brokers to remove at each scale down. Default is '1'

+ Minimum: 1
false
sizeLimitint or stringscaleUpByinteger + The number of brokers to add at each scale up. Default is '1'
+
+ Minimum: 1
+
false
stabilizationWindowMsinteger + The stabilization window is used to restrict the flapping of replica count when the metrics used for scaling keep fluctuating. The autoscaling algorithm uses this window to infer a previous desired state and avoid unwanted changes to workload scale.Default value is 5 minutes after the pod readiness.

+ Minimum: 1
false
-### PulsarCluster.spec.broker.additionalVolumes.volumes[index].ephemeral +### PulsarCluster.spec.broker.env[index] @@ -30192,7 +35210,21 @@ Mount additional volumes to the pod. - volumeClaimTemplate + name + string + +
+ + false + + value + string + +
+ + false + + valueFrom object
@@ -30202,7 +35234,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate +### PulsarCluster.spec.broker.env[index].valueFrom @@ -30218,14 +35250,28 @@ Mount additional volumes to the pod. - metadata + configMapKeyRef object
false - spec + fieldRef + object + +
+ + false + + resourceFieldRef + object + +
+ + false + + secretKeyRef object
@@ -30235,7 +35281,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.metadata +### PulsarCluster.spec.broker.env[index].valueFrom.configMapKeyRef @@ -30251,105 +35297,160 @@ Mount additional volumes to the pod. - annotations - map[string]string - -
- - false - - creationTimestamp + key string
false - deletionGracePeriodSeconds - integer - -
- - false - - deletionTimestamp + name string
false - finalizers - []string + optional + boolean
false - - generateName + + + + +### PulsarCluster.spec.broker.env[index].valueFrom.fieldRef + + + + + + + + + + + + + + + + - - + + - - - + +
NameTypeDescriptionRequired
apiVersion string
false
generationintegerfieldPathstring
false
labelsmap[string]string
+ + +### PulsarCluster.spec.broker.env[index].valueFrom.resourceFieldRef + + + + + + + + + + + + + + + + + - - + + - + - - + +
NameTypeDescriptionRequired
containerNamestring
false
managedFields[]objectdivisorint or string
false
nameresource string
false
namespace
+ + +### PulsarCluster.spec.broker.env[index].valueFrom.secretKeyRef + + + + + + + + + + + + + + + + - - - - - - + - - + + - - + +
NameTypeDescriptionRequired
key string
false
ownerReferences[]object -
-
false
resourceVersionname string
false
selfLinkstringoptionalboolean
false
uid
+ + +### PulsarCluster.spec.broker.imagePullSecrets[index] + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
name string
@@ -30359,7 +35460,7 @@ Mount additional volumes to the pod.
-### PulsarCluster.spec.broker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.metadata.managedFields[index] +### PulsarCluster.spec.broker.initContainers[index] @@ -30375,225 +35476,168 @@ Mount additional volumes to the pod. - apiVersion - string + args + []string
false - fieldsType - string + command + []string
false - fieldsV1 - object + env + []object
false - manager - string + envFrom + []object
false - operation + image string
false - subresource + imagePullPolicy string
false - time - string - -
- - false - - - - -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.metadata.ownerReferences[index] - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - -
NameTypeDescriptionRequired
apiVersionstringlifecycleobject
false
blockOwnerDeletionbooleanlivenessProbeobject
false
controllerbooleannamestring
false
kindstringports[]object
false
namestringreadinessProbeobject
false
uidstringresizePolicy[]object
false
- - -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec - - - - - - - - - - - - - - - - - + + + - - + + - + - + - - + + - - + + - + - + - -
NameTypeDescriptionRequired
accessModes[]string
resourcesobject
false
dataSourceobjectrestartPolicystring
false
dataSourceRefsecurityContext object
false
resourcesstartupProbe object
false
selectorobjectstdinboolean
false
storageClassNamestringstdinOnceboolean
false
volumeModeterminationMessagePath string
false
volumeNameterminationMessagePolicy string
false
- - -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.dataSource - - - - - - - - - - - - - - - - - + + + - - + + - + + + + + +
NameTypeDescriptionRequired
apiGroupstring
ttyboolean
false
kindstringvolumeDevices[]object
false
namevolumeMounts[]object +
+
false
workingDir string
@@ -30603,7 +35647,7 @@ Mount additional volumes to the pod.
-### PulsarCluster.spec.broker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.dataSourceRef +### PulsarCluster.spec.broker.initContainers[index].env[index] @@ -30619,22 +35663,22 @@ Mount additional volumes to the pod. - apiGroup + name string
false - kind + value string
false - name - string + valueFrom + object
@@ -30643,7 +35687,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.resources +### PulsarCluster.spec.broker.initContainers[index].env[index].valueFrom @@ -30659,15 +35703,29 @@ Mount additional volumes to the pod. - limits - map[string]int or string + configMapKeyRef + object
false - requests - map[string]int or string + fieldRef + object + +
+ + false + + resourceFieldRef + object + +
+ + false + + secretKeyRef + object
@@ -30676,7 +35734,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.selector +### PulsarCluster.spec.broker.initContainers[index].env[index].valueFrom.configMapKeyRef @@ -30692,15 +35750,22 @@ Mount additional volumes to the pod. - matchExpressions - []object + key + string
false - matchLabels - map[string]string + name + string + +
+ + false + + optional + boolean
@@ -30709,7 +35774,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.selector.matchExpressions[index] +### PulsarCluster.spec.broker.initContainers[index].env[index].valueFrom.fieldRef @@ -30725,31 +35790,24 @@ Mount additional volumes to the pod. - key + apiVersion string
false - operator + fieldPath string
false - - values - []string - -
- - false -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].fc +### PulsarCluster.spec.broker.initContainers[index].env[index].valueFrom.resourceFieldRef @@ -30765,36 +35823,22 @@ Mount additional volumes to the pod. - fsType + containerName string
false - lun - integer - -
- - false - - readOnly - boolean - -
- - false - - targetWWNs - []string + divisor + int or string
false - wwids - []string + resource + string
@@ -30803,7 +35847,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].flexVolume +### PulsarCluster.spec.broker.initContainers[index].env[index].valueFrom.secretKeyRef @@ -30819,45 +35863,31 @@ Mount additional volumes to the pod. - driver + key string
false - fsType + name string
false - options - map[string]string - -
- - false - - readOnly + optional boolean
false - - secretRef - object - -
- - false -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].flexVolume.secretRef +### PulsarCluster.spec.broker.initContainers[index].envFrom[index] @@ -30873,17 +35903,31 @@ Mount additional volumes to the pod. - name + configMapRef + object + +
+ + false + + prefix string
false + + secretRef + object + +
+ + false -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].flocker +### PulsarCluster.spec.broker.initContainers[index].envFrom[index].configMapRef @@ -30899,15 +35943,15 @@ Mount additional volumes to the pod. - datasetName + name string
false - datasetUUID - string + optional + boolean
@@ -30916,7 +35960,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].gcePersistentDisk +### PulsarCluster.spec.broker.initContainers[index].envFrom[index].secretRef @@ -30932,28 +35976,14 @@ Mount additional volumes to the pod. - fsType - string - -
- - false - - partition - integer - -
- - false - - pdName + name string
false - readOnly + optional boolean
@@ -30963,7 +35993,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].gitRepo +### PulsarCluster.spec.broker.initContainers[index].lifecycle @@ -30979,21 +36009,21 @@ Mount additional volumes to the pod. - directory - string + postStart + object
false - repository - string + preStop + object
false - revision + stopSignal string
@@ -31003,7 +36033,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].glusterfs +### PulsarCluster.spec.broker.initContainers[index].lifecycle.postStart @@ -31019,22 +36049,29 @@ Mount additional volumes to the pod. - endpoints - string + exec + object
false - path - string + httpGet + object
false - readOnly - boolean + sleep + object + +
+ + false + + tcpSocket + object
@@ -31043,7 +36080,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].hostPath +### PulsarCluster.spec.broker.initContainers[index].lifecycle.postStart.exec @@ -31059,15 +36096,8 @@ Mount additional volumes to the pod. - path - string - -
- - false - - type - string + command + []string
@@ -31076,7 +36106,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].iscsi +### PulsarCluster.spec.broker.initContainers[index].lifecycle.postStart.httpGet @@ -31092,77 +36122,35 @@ Mount additional volumes to the pod. - chapAuthDiscovery - boolean - -
- - false - - chapAuthSession - boolean - -
- - false - - fsType - string - -
- - false - - initiatorName + host string
false - iqn - string + httpHeaders + []object
false - iscsiInterface + path string
false - lun - integer - -
- - false - - portals - []string - -
- - false - - readOnly - boolean - -
- - false - - secretRef - object + port + int or string
false - targetPortal + scheme string
@@ -31172,7 +36160,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].iscsi.secretRef +### PulsarCluster.spec.broker.initContainers[index].lifecycle.postStart.httpGet.httpHeaders[index] @@ -31194,41 +36182,8 @@ Mount additional volumes to the pod.
false - - - - -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].nfs - - - - - - - - - - - - - - - - - - - - - - - - - +
NameTypeDescriptionRequired
pathstring -
-
false
readOnlyboolean -
-
false
servervalue string
@@ -31238,7 +36193,7 @@ Mount additional volumes to the pod.
-### PulsarCluster.spec.broker.additionalVolumes.volumes[index].persistentVolumeClaim +### PulsarCluster.spec.broker.initContainers[index].lifecycle.postStart.sleep @@ -31254,15 +36209,8 @@ Mount additional volumes to the pod. - claimName - string - -
- - false - - readOnly - boolean + seconds + integer
@@ -31271,7 +36219,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].photonPersistentDisk +### PulsarCluster.spec.broker.initContainers[index].lifecycle.postStart.tcpSocket @@ -31287,15 +36235,15 @@ Mount additional volumes to the pod. - fsType + host string
false - pdID - string + port + int or string
@@ -31304,7 +36252,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].portworxVolume +### PulsarCluster.spec.broker.initContainers[index].lifecycle.preStop @@ -31320,22 +36268,29 @@ Mount additional volumes to the pod. - fsType - string + exec + object
false - readOnly - boolean + httpGet + object
false - volumeID - string + sleep + object + +
+ + false + + tcpSocket + object
@@ -31344,7 +36299,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].projected +### PulsarCluster.spec.broker.initContainers[index].lifecycle.preStop.exec @@ -31360,15 +36315,8 @@ Mount additional volumes to the pod. - defaultMode - integer - -
- - false - - sources - []object + command + []string
@@ -31377,7 +36325,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].projected.sources[index] +### PulsarCluster.spec.broker.initContainers[index].lifecycle.preStop.httpGet @@ -31393,29 +36341,36 @@ Mount additional volumes to the pod. - configMap - object + host + string
false - downwardAPI - object + httpHeaders + []object
false - secret - object + path + string
false - serviceAccountToken - object + port + int or string + +
+ + false + + scheme + string
@@ -31424,7 +36379,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].projected.sources[index].configMap +### PulsarCluster.spec.broker.initContainers[index].lifecycle.preStop.httpGet.httpHeaders[index] @@ -31440,13 +36395,6 @@ Mount additional volumes to the pod. - items - []object - -
- - false - name string @@ -31454,8 +36402,8 @@ Mount additional volumes to the pod. false - optional - boolean + value + string
@@ -31464,7 +36412,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].projected.sources[index].configMap.items[index] +### PulsarCluster.spec.broker.initContainers[index].lifecycle.preStop.sleep @@ -31480,31 +36428,17 @@ Mount additional volumes to the pod. - key - string - -
- - false - - mode + seconds integer
false - - path - string - -
- - false -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].projected.sources[index].downwardAPI +### PulsarCluster.spec.broker.initContainers[index].lifecycle.preStop.tcpSocket @@ -31520,8 +36454,15 @@ Mount additional volumes to the pod. - items - []object + host + string + +
+ + false + + port + int or string
@@ -31530,7 +36471,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index] +### PulsarCluster.spec.broker.initContainers[index].livenessProbe @@ -31546,38 +36487,80 @@ Mount additional volumes to the pod. - fieldRef + exec object
false - mode + failureThreshold integer
false - path - string + grpc + object
false - resourceFieldRef + httpGet + object + +
+ + false + + initialDelaySeconds + integer + +
+ + false + + periodSeconds + integer + +
+ + false + + successThreshold + integer + +
+ + false + + tcpSocket object
false + + terminationGracePeriodSeconds + integer + +
+ + false + + timeoutSeconds + integer + +
+ + false -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index].fieldRef +### PulsarCluster.spec.broker.initContainers[index].livenessProbe.exec @@ -31593,15 +36576,8 @@ Mount additional volumes to the pod. - apiVersion - string - -
- - false - - fieldPath - string + command + []string
@@ -31610,7 +36586,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index].resourceFieldRef +### PulsarCluster.spec.broker.initContainers[index].livenessProbe.grpc @@ -31626,21 +36602,14 @@ Mount additional volumes to the pod. - containerName - string - -
- - false - - divisor - int or string + port + integer
false - resource + service string
@@ -31650,7 +36619,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].projected.sources[index].secret +### PulsarCluster.spec.broker.initContainers[index].livenessProbe.httpGet @@ -31666,22 +36635,36 @@ Mount additional volumes to the pod. - items + host + string + +
+ + false + + httpHeaders []object
false - name + path string
false - optional - boolean + port + int or string + +
+ + false + + scheme + string
@@ -31690,7 +36673,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].projected.sources[index].secret.items[index] +### PulsarCluster.spec.broker.initContainers[index].livenessProbe.httpGet.httpHeaders[index] @@ -31706,21 +36689,14 @@ Mount additional volumes to the pod. - key + name string
false - mode - integer - -
- - false - - path + value string
@@ -31730,7 +36706,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].projected.sources[index].serviceAccountToken +### PulsarCluster.spec.broker.initContainers[index].livenessProbe.tcpSocket @@ -31746,22 +36722,15 @@ Mount additional volumes to the pod. - audience + host string
false - expirationSeconds - integer - -
- - false - - path - string + port + int or string
@@ -31770,7 +36739,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].quobyte +### PulsarCluster.spec.broker.initContainers[index].ports[index] @@ -31786,42 +36755,35 @@ Mount additional volumes to the pod. - group - string - -
- - false - - readOnly - boolean + containerPort + integer
false - registry + hostIP string
false - tenant - string + hostPort + integer
false - user + name string
false - volume + protocol string
@@ -31831,7 +36793,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].rbd +### PulsarCluster.spec.broker.initContainers[index].readinessProbe @@ -31847,57 +36809,71 @@ Mount additional volumes to the pod. - fsType - string + exec + object
false - image - string + failureThreshold + integer
false - keyring - string + grpc + object
false - monitors - []string + httpGet + object
false - pool - string + initialDelaySeconds + integer
false - readOnly - boolean + periodSeconds + integer
false - secretRef + successThreshold + integer + +
+ + false + + tcpSocket object
false - user - string + terminationGracePeriodSeconds + integer + +
+ + false + + timeoutSeconds + integer
@@ -31906,7 +36882,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].rbd.secretRef +### PulsarCluster.spec.broker.initContainers[index].readinessProbe.exec @@ -31922,8 +36898,8 @@ Mount additional volumes to the pod. - name - string + command + []string
@@ -31932,7 +36908,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].scaleIO +### PulsarCluster.spec.broker.initContainers[index].readinessProbe.grpc @@ -31948,70 +36924,101 @@ Mount additional volumes to the pod. - fsType - string + port + integer
false - gateway + service string
false - - protectionDomain + + + + +### PulsarCluster.spec.broker.initContainers[index].readinessProbe.httpGet + + + + + + + + + + + + + + + + - - - - - - - + + - - + + - - + + - + - - + +
NameTypeDescriptionRequired
host string
false
readOnlyboolean -
-
false
secretRefobjecthttpHeaders[]object
false
sslEnabledbooleanpathstring
false
storageModestringportint or string
false
storagePoolscheme string
false
system
+ + +### PulsarCluster.spec.broker.initContainers[index].readinessProbe.httpGet.httpHeaders[index] + + + + + + + + + + + + + + + + - +
NameTypeDescriptionRequired
name string
false
volumeNamevalue string
@@ -32021,7 +37028,7 @@ Mount additional volumes to the pod.
-### PulsarCluster.spec.broker.additionalVolumes.volumes[index].scaleIO.secretRef +### PulsarCluster.spec.broker.initContainers[index].readinessProbe.tcpSocket @@ -32037,17 +37044,24 @@ Mount additional volumes to the pod. - name + host string
false + + port + int or string + +
+ + false -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].secret +### PulsarCluster.spec.broker.initContainers[index].resizePolicy[index] @@ -32063,29 +37077,55 @@ Mount additional volumes to the pod. - defaultMode - integer + resourceName + string
false - items + restartPolicy + string + +
+ + false + + + + +### PulsarCluster.spec.broker.initContainers[index].resources + + + + + + + + + + + + + + + + - - + + - - + + @@ -32094,7 +37134,7 @@ Mount additional volumes to the pod.
NameTypeDescriptionRequired
claims []object
false
optionalbooleanlimitsmap[string]int or string
false
secretNamestringrequestsmap[string]int or string
-### PulsarCluster.spec.broker.additionalVolumes.volumes[index].secret.items[index] +### PulsarCluster.spec.broker.initContainers[index].resources.claims[index] @@ -32110,21 +37150,14 @@ Mount additional volumes to the pod. - key + name string
false - mode - integer - -
- - false - - path + request string
@@ -32134,7 +37167,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].storageos +### PulsarCluster.spec.broker.initContainers[index].securityContext @@ -32150,36 +37183,85 @@ Mount additional volumes to the pod. - fsType + allowPrivilegeEscalation + boolean + +
+ + false + + appArmorProfile + object + +
+ + false + + capabilities + object + +
+ + false + + privileged + boolean + +
+ + false + + procMount string
false - readOnly + readOnlyRootFilesystem boolean
false - secretRef + runAsGroup + integer + +
+ + false + + runAsNonRoot + boolean + +
+ + false + + runAsUser + integer + +
+ + false + + seLinuxOptions object
false - volumeName - string + seccompProfile + object
false - volumeNamespace - string + windowsOptions + object
@@ -32188,7 +37270,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].storageos.secretRef +### PulsarCluster.spec.broker.initContainers[index].securityContext.appArmorProfile @@ -32204,7 +37286,14 @@ Mount additional volumes to the pod. - name + localhostProfile + string + +
+ + false + + type string
@@ -32214,7 +37303,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.additionalVolumes.volumes[index].vsphereVolume +### PulsarCluster.spec.broker.initContainers[index].securityContext.capabilities @@ -32230,29 +37319,15 @@ Mount additional volumes to the pod. - fsType - string - -
- - false - - storagePolicyID - string - -
- - false - - storagePolicyName - string + add + []string
false - volumePath - string + drop + []string
@@ -32261,11 +37336,11 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.antiAffinity +### PulsarCluster.spec.broker.initContainers[index].securityContext.seLinuxOptions + -Pod anti-affinity configuration. This override the global value if set. @@ -32277,28 +37352,42 @@ Pod anti-affinity configuration. This override the global value if set. - - + + - - + + + + + + + + + + + +
hostobjectlevelstring - Indicates the reclaimPolicy property for the StorageClass.
+
false
zoneobjectrolestring - Indicates the provisioner property for the StorageClass.
+
+
false
typestring +
+
false
userstring +
false
-### PulsarCluster.spec.broker.antiAffinity.host +### PulsarCluster.spec.broker.initContainers[index].securityContext.seccompProfile + -Indicates the reclaimPolicy property for the StorageClass. @@ -32310,28 +37399,28 @@ Indicates the reclaimPolicy property for the StorageClass. - - + + - - + +
enabledbooleanlocalhostProfilestring - Indicates the reclaimPolicy property for the StorageClass.
+
false
requiredbooleantypestring - Indicates the reclaimPolicy property for the StorageClass.
+
false
-### PulsarCluster.spec.broker.antiAffinity.zone +### PulsarCluster.spec.broker.initContainers[index].securityContext.windowsOptions + -Indicates the provisioner property for the StorageClass. @@ -32343,28 +37432,42 @@ Indicates the provisioner property for the StorageClass. - + + + + + + + + + + + - - + +
enabledgmsaCredentialSpecstring +
+
false
gmsaCredentialSpecNamestring +
+
false
hostProcess boolean - Indicates the reclaimPolicy property for the StorageClass.
+
false
requiredbooleanrunAsUserNamestring - Indicates the reclaimPolicy property for the StorageClass.
+
false
-### PulsarCluster.spec.broker.autoscaler +### PulsarCluster.spec.broker.initContainers[index].startupProbe + -Autoscaling config. @@ -32376,96 +37479,80 @@ Autoscaling config. - - + + - - + + - - + + - - + + - + - + - - + + - - + + - + - +
enabledbooleanexecobject - Enable autoscaling for brokers.
+
false
higherCpuThresholdnumberfailureThresholdinteger - The threshold to trigger a scale up. The autoscaler will scale up if all the brokers cpu usage is higher than this threshold. Default is '0.8'

- Minimum: 0
- Maximum: 1
false
lowerCpuThresholdnumbergrpcobject - The threshold to trigger a scale down. The autoscaler will scale down if all the brokers cpu usage is lower than this threshold. Default is '0.4'

- Minimum: 0
- Maximum: 1
false
maxintegerhttpGetobject - Max number of brokers. If the number of brokers is equals to this value, the autoscaler will never scale up.
+
false
mininitialDelaySeconds integer - Min number of brokers. If the number of brokers is equals to this value, the autoscaler will never scale down.

- Minimum: 1
false
periodMsperiodSeconds integer - The interval in milliseconds between two consecutive autoscaling checks.

- Minimum: 1000
false
resourcesUsageSourcestringsuccessThresholdinteger - Source for getting the brokers resources usage. Possible values are 'PulsarLBReport' and 'K8SMetrics'. Default is 'PulsarLBReport'
+
false
scaleDownByintegertcpSocketobject - The number of brokers to remove at each scale down. Default is '1'

- Minimum: 1
false
scaleUpByterminationGracePeriodSeconds integer - The number of brokers to add at each scale up. Default is '1'

- Minimum: 1
false
stabilizationWindowMstimeoutSeconds integer - The stabilization window is used to restrict the flapping of replica count when the metrics used for scaling keep fluctuating. The autoscaling algorithm uses this window to infer a previous desired state and avoid unwanted changes to workload scale.Default value is 5 minutes after the pod readiness.

- Minimum: 1
false
-### PulsarCluster.spec.broker.env[index] +### PulsarCluster.spec.broker.initContainers[index].startupProbe.exec @@ -32481,22 +37568,8 @@ Autoscaling config. - name - string - -
- - false - - value - string - -
- - false - - valueFrom - object + command + []string
@@ -32505,7 +37578,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.env[index].valueFrom +### PulsarCluster.spec.broker.initContainers[index].startupProbe.grpc @@ -32521,29 +37594,15 @@ Autoscaling config. - configMapKeyRef - object - -
- - false - - fieldRef - object - -
- - false - - resourceFieldRef - object + port + integer
false - secretKeyRef - object + service + string
@@ -32552,7 +37611,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.env[index].valueFrom.configMapKeyRef +### PulsarCluster.spec.broker.initContainers[index].startupProbe.httpGet @@ -32568,54 +37627,35 @@ Autoscaling config. - key + host string
false - name - string + httpHeaders + []object
false - optional - boolean + path + string
false - - - - -### PulsarCluster.spec.broker.env[index].valueFrom.fieldRef - - - - - - - - - - - - - - - - - + + + - +
NameTypeDescriptionRequired
apiVersionstring
portint or string
false
fieldPathscheme string
@@ -32625,7 +37665,7 @@ Autoscaling config.
-### PulsarCluster.spec.broker.env[index].valueFrom.resourceFieldRef +### PulsarCluster.spec.broker.initContainers[index].startupProbe.httpGet.httpHeaders[index] @@ -32641,21 +37681,14 @@ Autoscaling config. - containerName + name string
false - divisor - int or string - -
- - false - - resource + value string
@@ -32665,7 +37698,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.env[index].valueFrom.secretKeyRef +### PulsarCluster.spec.broker.initContainers[index].startupProbe.tcpSocket @@ -32681,22 +37714,15 @@ Autoscaling config. - key - string - -
- - false - - name + host string
false - optional - boolean + port + int or string
@@ -32705,7 +37731,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.imagePullSecrets[index] +### PulsarCluster.spec.broker.initContainers[index].volumeDevices[index] @@ -32721,6 +37747,13 @@ Autoscaling config. + devicePath + string + +
+ + false + name string @@ -32731,7 +37764,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.initContainers[index] +### PulsarCluster.spec.broker.initContainers[index].volumeMounts[index] @@ -32747,61 +37780,19 @@ Autoscaling config. - args - []string - -
- - false - - command - []string - -
- - false - - env - []object - -
- - false - - envFrom - []object - -
- - false - - image + mountPath string
false - imagePullPolicy + mountPropagation string
false - - lifecycle - object - -
- - false - - livenessProbe - object - -
- - false name string @@ -32810,91 +37801,28 @@ Autoscaling config. false - ports - []object - -
- - false - - readinessProbe - object - -
- - false - - resources - object - -
- - false - - securityContext - object - -
- - false - - startupProbe - object - -
- - false - - stdin - boolean - -
- - false - - stdinOnce + readOnly boolean
false - terminationMessagePath + recursiveReadOnly string
false - terminationMessagePolicy + subPath string
false - tty - boolean - -
- - false - - volumeDevices - []object - -
- - false - - volumeMounts - []object - -
- - false - - workingDir + subPathExpr string
@@ -32904,11 +37832,11 @@ Autoscaling config. -### PulsarCluster.spec.broker.initContainers[index].env[index] - +### PulsarCluster.spec.broker.kafka +Enable Kafka protocol. @@ -32920,35 +37848,28 @@ Autoscaling config. - - - - - - - + + - - + +
namestring -
-
false
valuestringenabledboolean -
+ Allow the cluster to accept Kafka protocol. Default is 'false'.
false
valueFromobjectexposePortsboolean -
+ Expose the kafka protocol port.
false
-### PulsarCluster.spec.broker.initContainers[index].env[index].valueFrom - +### PulsarCluster.spec.broker.nodeAffinity +Node affinity configuration. @@ -32960,28 +37881,14 @@ Autoscaling config. - - - - - - - - - - - - + + - +
configMapKeyRefobject -
-
false
fieldRefobject -
-
false
resourceFieldRefobjectpreferredDuringSchedulingIgnoredDuringExecution[]object
false
secretKeyRefrequiredDuringSchedulingIgnoredDuringExecution object
@@ -32991,7 +37898,7 @@ Autoscaling config.
-### PulsarCluster.spec.broker.initContainers[index].env[index].valueFrom.configMapKeyRef +### PulsarCluster.spec.broker.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index] @@ -33007,22 +37914,15 @@ Autoscaling config. - key - string - -
- - false - - name - string + preference + object
false - optional - boolean + weight + integer
@@ -33031,7 +37931,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.initContainers[index].env[index].valueFrom.fieldRef +### PulsarCluster.spec.broker.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference @@ -33047,15 +37947,15 @@ Autoscaling config. - apiVersion - string + matchExpressions + []object
false - fieldPath - string + matchFields + []object
@@ -33064,7 +37964,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.initContainers[index].env[index].valueFrom.resourceFieldRef +### PulsarCluster.spec.broker.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference.matchExpressions[index] @@ -33080,22 +37980,22 @@ Autoscaling config. - containerName + key string
false - divisor - int or string + operator + string
false - resource - string + values + []string
@@ -33104,7 +38004,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.initContainers[index].env[index].valueFrom.secretKeyRef +### PulsarCluster.spec.broker.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference.matchFields[index] @@ -33127,15 +38027,15 @@ Autoscaling config. false - name + operator string
false - optional - boolean + values + []string
@@ -33144,7 +38044,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.initContainers[index].envFrom[index] +### PulsarCluster.spec.broker.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution @@ -33160,22 +38060,8 @@ Autoscaling config. - configMapRef - object - -
- - false - - prefix - string - -
- - false - - secretRef - object + nodeSelectorTerms + []object
@@ -33184,7 +38070,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.initContainers[index].envFrom[index].configMapRef +### PulsarCluster.spec.broker.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index] @@ -33200,15 +38086,15 @@ Autoscaling config. - name - string + matchExpressions + []object
false - optional - boolean + matchFields + []object
@@ -33217,7 +38103,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.initContainers[index].envFrom[index].secretRef +### PulsarCluster.spec.broker.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index].matchExpressions[index] @@ -33233,15 +38119,22 @@ Autoscaling config. - name + key string
false - optional - boolean + operator + string + +
+ + false + + values + []string
@@ -33250,7 +38143,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.initContainers[index].lifecycle +### PulsarCluster.spec.broker.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index].matchFields[index] @@ -33266,15 +38159,22 @@ Autoscaling config. - postStart - object + key + string
false - preStop - object + operator + string + +
+ + false + + values + []string
@@ -33283,11 +38183,11 @@ Autoscaling config. -### PulsarCluster.spec.broker.initContainers[index].lifecycle.postStart - +### PulsarCluster.spec.broker.pdb +Pod disruption budget configuration. @@ -33299,35 +38199,35 @@ Autoscaling config. - - + + - - + + - - + +
execobjectenabledboolean -
+ Enable Pdb policy.
false
httpGetobjectmaxUnavailableinteger -
+ Number of maxUnavailable pods.
false
tcpSocketobjectminAvailableinteger -
+ Number of minAvailable pods.
false
-### PulsarCluster.spec.broker.initContainers[index].lifecycle.postStart.exec - +### PulsarCluster.spec.broker.probes +Liveness and readiness probes configuration. @@ -33339,21 +38239,42 @@ Autoscaling config. - - + + + + + + + + + + + + + + + + +
command[]stringlivenessobject + Liveness probe configuration.
+
false
readinessobject + Readiness probe configuration.
+
false
useHealthCheckForLivenessboolean + Use healthcheck for the liveness probe. If false, the /metrics endpoint will be used.
+
false
useHealthCheckForReadinessboolean -
+ Use healthcheck for the readiness probe. If false, the /metrics endpoint will be used.
false
-### PulsarCluster.spec.broker.initContainers[index].lifecycle.postStart.httpGet - +### PulsarCluster.spec.broker.probes.liveness +Liveness probe configuration. @@ -33365,82 +38286,63 @@ Autoscaling config. - - + + - - + + - - + + - - + + - - + + - -
hoststringenabledboolean -
+ Enables the probe.
false
httpHeaders[]objectfailureThresholdinteger -
+ Failure threshold.
false
pathstringinitialDelaySecondsinteger -
+ Indicates the initial delay (in seconds) for the probe.
false
portint or stringperiodSecondsinteger -
+ Indicates the period (in seconds) for the probe.
false
schemestringsuccessThresholdinteger -
+ Success threshold.
false
- - -### PulsarCluster.spec.broker.initContainers[index].lifecycle.postStart.httpGet.httpHeaders[index] - - - - - - - - - - - - - - - - - + + + - - + +
NameTypeDescriptionRequired
namestring
terminationGracePeriodSecondsinteger -
+ Indicates the termination grace period (in seconds) for the probe.
false
valuestringtimeoutSecondsinteger -
+ Indicates the timeout (in seconds) for the probe.
false
-### PulsarCluster.spec.broker.initContainers[index].lifecycle.postStart.tcpSocket - +### PulsarCluster.spec.broker.probes.readiness +Readiness probe configuration. @@ -33452,28 +38354,63 @@ Autoscaling config. - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + +
hoststringenabledboolean -
+ Enables the probe.
false
portint or stringfailureThresholdinteger -
+ Failure threshold.
+
false
initialDelaySecondsinteger + Indicates the initial delay (in seconds) for the probe.
+
false
periodSecondsinteger + Indicates the period (in seconds) for the probe.
+
false
successThresholdinteger + Success threshold.
+
false
terminationGracePeriodSecondsinteger + Indicates the termination grace period (in seconds) for the probe.
+
false
timeoutSecondsinteger + Indicates the timeout (in seconds) for the probe.
false
-### PulsarCluster.spec.broker.initContainers[index].lifecycle.preStop - +### PulsarCluster.spec.broker.resources +Resources requirements. @@ -33485,22 +38422,22 @@ Autoscaling config. - - + + - - + + - - + + @@ -33509,7 +38446,7 @@ Autoscaling config.
execobjectclaims[]object
false
httpGetobjectlimitsmap[string]int or string
false
tcpSocketobjectrequestsmap[string]int or string
-### PulsarCluster.spec.broker.initContainers[index].lifecycle.preStop.exec +### PulsarCluster.spec.broker.resources.claims[index] @@ -33525,8 +38462,15 @@ Autoscaling config. - command - []string + name + string + +
+ + false + + request + string
@@ -33535,11 +38479,11 @@ Autoscaling config. -### PulsarCluster.spec.broker.initContainers[index].lifecycle.preStop.httpGet - +### PulsarCluster.spec.broker.securityContext +Subset of PodSecurityContext for basic UID, GID, and volume access control. @@ -33551,36 +38495,43 @@ Autoscaling config. - + + + + + + - - + + - - + + - - + + - - + + @@ -33589,11 +38540,11 @@ Autoscaling config.
hostfsGroupinteger +
+
false
fsGroupChangePolicy string
false
httpHeaders[]objectrunAsGroupinteger
false
pathstringrunAsNonRootboolean
false
portint or stringrunAsUserinteger
false
schemestringsupplementalGroups[]integer
-### PulsarCluster.spec.broker.initContainers[index].lifecycle.preStop.httpGet.httpHeaders[index] - +### PulsarCluster.spec.broker.service +Service configuration. @@ -33605,24 +38556,31 @@ Autoscaling config. - - + + - + + + + + +
namestringadditionalPorts[]object -
+ Additional ports to add to the Service.
false
valueannotationsmap[string]string + Additional annotations to add to the Service.
+
false
type string -
+ Service type. Default value is 'ClusterIP'
false
-### PulsarCluster.spec.broker.initContainers[index].lifecycle.preStop.tcpSocket +### PulsarCluster.spec.broker.service.additionalPorts[index] @@ -33638,14 +38596,42 @@ Autoscaling config. - host + appProtocol + string + +
+ + false + + name string
false + + nodePort + integer + +
+ + false port + integer + +
+ + false + + protocol + string + +
+ + false + + targetPort int or string
@@ -33655,7 +38641,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.initContainers[index].livenessProbe +### PulsarCluster.spec.broker.sets[key] @@ -33671,230 +38657,247 @@ Autoscaling config. - exec + additionalVolumes object -
+ Mount additional volumes to the pod.
false - failureThreshold - integer + annotations + map[string]string -
+ Annotations to add to each resource (except pods).
false - grpc + antiAffinity object -
+ Pod anti-affinity configuration. This override the global value if set.
false - httpGet + autoscaler object -
+ Autoscaling config.
false - initialDelaySeconds - integer + config + JSON -
+ Configuration.
false - periodSeconds - integer + env + []object -
+ Additional container env variables.
false - successThreshold + functionsWorkerEnabled + boolean + + Enable functions worker embedded in the broker.
+ + false + + gracePeriod integer + Termination grace period in seconds.

+ Minimum: 0
false - tcpSocket + image + string + + Override Pulsar image.
+ + false + + imagePullPolicy + string + + Override image pull policy.
+ + false + + imagePullSecrets + []object + + Image pull secrets.
+ + false + + initContainers + []object + + Init containers
+ + false + + kafka object -
+ Enable Kafka protocol.
false - terminationGracePeriodSeconds - integer + labels + map[string]string -
+ Labels to add to each resource (except pods).
false - timeoutSeconds + matchLabels + map[string]string + + Match labels selectors to add to each pod.
+ + false + + minReadySeconds integer -
+ Min seconds to wait before considering the pod as ready.
false - - - - -### PulsarCluster.spec.broker.initContainers[index].livenessProbe.exec - - - - - - - - - - - - - - - - - + + + - -
NameTypeDescriptionRequired
command[]string
nodeAffinityobject -
+ Node affinity configuration.
false
- - -### PulsarCluster.spec.broker.initContainers[index].livenessProbe.grpc - - - - - - - - - - - - - - - - - + + + - + - -
NameTypeDescriptionRequired
portinteger
nodeSelectorsmap[string]string -
+ Additional node selectors.
false
serviceoverrideResourceName string -
+ Override the resource names generated by the operator.
false
- - -### PulsarCluster.spec.broker.initContainers[index].livenessProbe.httpGet - - - - - - - - - - - - - - - - - + + + - - + + - + + + + + + - - + + - - + + - -
NameTypeDescriptionRequired
hoststring
pdbobject -
+ Pod disruption budget configuration.
false
httpHeaders[]objectpodAnnotationsmap[string]string -
+ Annotations to add to pod.
false
pathpodLabelsmap[string]string + Labels to add to each pod.
+
false
podManagementPolicy string -
+ Pod management policy.
false
portint or stringprobesobject -
+ Liveness and readiness probes configuration.
false
schemestringreplicasinteger -
+ Number of desired replicas.
false
- - -### PulsarCluster.spec.broker.initContainers[index].livenessProbe.httpGet.httpHeaders[index] - - - - - - - - - - - - - - - - - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
namestring
resourcesobject -
+ Resources requirements.
false
valuesecurityContextobject + Subset of PodSecurityContext for basic UID, GID, and volume access control.
+
false
serviceobject + Service configuration.
+
false
serviceAccountName string -
+ Service account name for the resource.
+
false
sidecars[]object + Sidecar containers
+
false
tolerations[]object + Pod tolerations.
+
false
transactionsobject + Enable transactions in the broker.
+
false
updateStrategyobject + Update strategy for the StatefulSet.
false
-### PulsarCluster.spec.broker.initContainers[index].livenessProbe.tcpSocket - +### PulsarCluster.spec.broker.sets[key].additionalVolumes +Mount additional volumes to the pod. @@ -33906,24 +38909,24 @@ Autoscaling config. - - + + - - + +
hoststringmounts[]object -
+ Mount points for the additional volumes
false
portint or stringvolumes[]object -
+ Additional volumes to be mounted to the pod
false
-### PulsarCluster.spec.broker.initContainers[index].ports[index] +### PulsarCluster.spec.broker.sets[key].additionalVolumes.mounts[index] @@ -33939,35 +38942,49 @@ Autoscaling config. - containerPort - integer + mountPath + string
false - hostIP + mountPropagation string
false - hostPort - integer + name + string
false - name + readOnly + boolean + +
+ + false + + recursiveReadOnly string
false - protocol + subPath + string + +
+ + false + + subPathExpr string
@@ -33977,7 +38994,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.initContainers[index].readinessProbe +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index] @@ -33993,378 +39010,217 @@ Autoscaling config. - exec + awsElasticBlockStore object
false - failureThreshold - integer + azureDisk + object
false - grpc + azureFile object
false - httpGet + cephfs object
false - initialDelaySeconds - integer + cinder + object
false - periodSeconds - integer + configMap + object
false - successThreshold - integer + csi + object
false - tcpSocket + downwardAPI object
false - terminationGracePeriodSeconds - integer + emptyDir + object
false - timeoutSeconds - integer - -
- - false - - - - -### PulsarCluster.spec.broker.initContainers[index].readinessProbe.exec - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
command[]string -
-
false
- - -### PulsarCluster.spec.broker.initContainers[index].readinessProbe.grpc - - - - - - - - - - - - - - - - - + + - - - - - -
NameTypeDescriptionRequired
portintegerephemeralobject
false
servicestring -
-
false
- - -### PulsarCluster.spec.broker.initContainers[index].readinessProbe.httpGet - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - - - - -
NameTypeDescriptionRequired
hoststringfcobject
false
httpHeaders[]objectflexVolumeobject
false
pathstringflockerobject
false
portint or stringgcePersistentDiskobject
false
schemestring -
-
false
- - -### PulsarCluster.spec.broker.initContainers[index].readinessProbe.httpGet.httpHeaders[index] - - - - - - - - - - - - - - - - - + + - - + + - -
NameTypeDescriptionRequired
namestringgitRepoobject
false
valuestringglusterfsobject
false
- - -### PulsarCluster.spec.broker.initContainers[index].readinessProbe.tcpSocket - - - - - - - - - - - - - - - - - + + + - - + + - -
NameTypeDescriptionRequired
hoststring
hostPathobject
false
portint or stringimageobject
false
- - -### PulsarCluster.spec.broker.initContainers[index].resources - - - - - - - - - - - - - - - - - + + + - - + + - -
NameTypeDescriptionRequired
limitsmap[string]int or string
iscsiobject
false
requestsmap[string]int or stringnamestring
false
- - -### PulsarCluster.spec.broker.initContainers[index].securityContext - - - - - - - - - - - - - - - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - +
NameTypeDescriptionRequired
allowPrivilegeEscalationboolean
nfsobject
false
capabilitiespersistentVolumeClaim object
false
privilegedbooleanphotonPersistentDiskobject
false
procMountstringportworxVolumeobject
false
readOnlyRootFilesystembooleanprojectedobject
false
runAsGroupintegerquobyteobject
false
runAsNonRootbooleanrbdobject
false
runAsUserintegerscaleIOobject
false
seLinuxOptionssecret object
false
seccompProfilestorageos object
false
windowsOptionsvsphereVolume object
@@ -34374,7 +39230,7 @@ Autoscaling config.
-### PulsarCluster.spec.broker.initContainers[index].securityContext.capabilities +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].awsElasticBlockStore @@ -34390,15 +39246,29 @@ Autoscaling config. - add - []string + fsType + string
false - drop - []string + partition + integer + +
+ + false + + readOnly + boolean + +
+ + false + + volumeID + string
@@ -34407,7 +39277,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.initContainers[index].securityContext.seLinuxOptions +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].azureDisk @@ -34423,38 +39293,52 @@ Autoscaling config. - level + cachingMode string
false - role + diskName string
false - type + diskURI string
false - user + fsType + string + +
+ + false + + kind string
false + + readOnly + boolean + +
+ + false -### PulsarCluster.spec.broker.initContainers[index].securityContext.seccompProfile +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].azureFile @@ -34470,14 +39354,21 @@ Autoscaling config. - localhostProfile + readOnly + boolean + +
+ + false + + secretName string
false - type + shareName string
@@ -34487,7 +39378,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.initContainers[index].securityContext.windowsOptions +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].cephfs @@ -34503,28 +39394,42 @@ Autoscaling config. - gmsaCredentialSpec - string + monitors + []string
false - gmsaCredentialSpecName + path string
false - hostProcess + readOnly boolean
false - runAsUserName + secretFile + string + +
+ + false + + secretRef + object + +
+ + false + + user string
@@ -34534,7 +39439,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.initContainers[index].startupProbe +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].cephfs.secretRef @@ -34550,71 +39455,81 @@ Autoscaling config. - exec - object - -
- - false - - failureThreshold - integer - -
- - false - - grpc - object - -
- - false - - httpGet - object - -
- - false - - initialDelaySeconds - integer + name + string
false - - periodSeconds - integer + + + + +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].cinder + + + + + + + + + + + + + + + + + - - + + - + - - + + - - - + +
NameTypeDescriptionRequired
fsTypestring
false
successThresholdintegerreadOnlyboolean
false
tcpSocketsecretRef object
false
terminationGracePeriodSecondsintegervolumeIDstring
false
timeoutSecondsinteger
+ + +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].cinder.secretRef + + + + + + + + + + + + + + + + + @@ -34623,7 +39538,7 @@ Autoscaling config.
NameTypeDescriptionRequired
namestring
-### PulsarCluster.spec.broker.initContainers[index].startupProbe.exec +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].configMap @@ -34639,8 +39554,29 @@ Autoscaling config. - command - []string + defaultMode + integer + +
+ + false + + items + []object + +
+ + false + + name + string + +
+ + false + + optional + boolean
@@ -34649,7 +39585,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.initContainers[index].startupProbe.grpc +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].configMap.items[index] @@ -34665,14 +39601,21 @@ Autoscaling config. - port + key + string + +
+ + false + + mode integer
false - service + path string
@@ -34682,7 +39625,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.initContainers[index].startupProbe.httpGet +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].csi @@ -34698,36 +39641,36 @@ Autoscaling config. - host + driver string
false - httpHeaders - []object + fsType + string
false - path - string + nodePublishSecretRef + object
false - port - int or string + readOnly + boolean
false - scheme - string + volumeAttributes + map[string]string
@@ -34736,7 +39679,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.initContainers[index].startupProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].csi.nodePublishSecretRef @@ -34758,18 +39701,11 @@ Autoscaling config.
false - - value - string - -
- - false -### PulsarCluster.spec.broker.initContainers[index].startupProbe.tcpSocket +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].downwardAPI @@ -34785,15 +39721,15 @@ Autoscaling config. - host - string + defaultMode + integer
false - port - int or string + items + []object
@@ -34802,7 +39738,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.initContainers[index].volumeDevices[index] +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].downwardAPI.items[index] @@ -34818,24 +39754,38 @@ Autoscaling config. - devicePath - string + fieldRef + object
false - name + mode + integer + +
+ + false + + path string
false + + resourceFieldRef + object + +
+ + false -### PulsarCluster.spec.broker.initContainers[index].volumeMounts[index] +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].downwardAPI.items[index].fieldRef @@ -34851,42 +39801,54 @@ Autoscaling config. - mountPath + apiVersion string
false - mountPropagation + fieldPath string
false - - name + + + + +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].downwardAPI.items[index].resourceFieldRef + + + + + + + + + + + + + + + + - - - - - - - + + - +
NameTypeDescriptionRequired
containerName string
false
readOnlyboolean -
-
false
subPathstringdivisorint or string
false
subPathExprresource string
@@ -34896,11 +39858,11 @@ Autoscaling config.
-### PulsarCluster.spec.broker.kafka +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].emptyDir + -Enable Kafka protocol. @@ -34912,28 +39874,28 @@ Enable Kafka protocol. - - + + - - + +
enabledbooleanmediumstring - Allow the cluster to accept Kafka protocol. Default is 'false'.
+
false
exposePortsbooleansizeLimitint or string - Expose the kafka protocol port.
+
false
-### PulsarCluster.spec.broker.nodeAffinity +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].ephemeral + -Node affinity configuration. @@ -34945,14 +39907,7 @@ Node affinity configuration. - - - - - - +
preferredDuringSchedulingIgnoredDuringExecution[]object -
-
false
requiredDuringSchedulingIgnoredDuringExecutionvolumeClaimTemplate object
@@ -34962,7 +39917,7 @@ Node affinity configuration.
-### PulsarCluster.spec.broker.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index] +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate @@ -34978,15 +39933,15 @@ Node affinity configuration. - preference + metadata object
false - weight - integer + spec + object
@@ -34995,7 +39950,7 @@ Node affinity configuration. -### PulsarCluster.spec.broker.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.metadata @@ -35011,24 +39966,115 @@ Node affinity configuration. - matchExpressions + annotations + map[string]string + +
+ + false + + creationTimestamp + string + +
+ + false + + deletionGracePeriodSeconds + integer + +
+ + false + + deletionTimestamp + string + +
+ + false + + finalizers + []string + +
+ + false + + generateName + string + +
+ + false + + generation + integer + +
+ + false + + labels + map[string]string + +
+ + false + + managedFields []object
false - matchFields + name + string + +
+ + false + + namespace + string + +
+ + false + + ownerReferences []object
false + + resourceVersion + string + +
+ + false + + selfLink + string + +
+ + false + + uid + string + +
+ + false -### PulsarCluster.spec.broker.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference.matchExpressions[index] +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.metadata.managedFields[index] @@ -35044,22 +40090,50 @@ Node affinity configuration. - key + apiVersion string
false - operator + fieldsType string
false - values - []string + fieldsV1 + object + +
+ + false + + manager + string + +
+ + false + + operation + string + +
+ + false + + subresource + string + +
+ + false + + time + string
@@ -35068,7 +40142,7 @@ Node affinity configuration. -### PulsarCluster.spec.broker.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference.matchFields[index] +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.metadata.ownerReferences[index] @@ -35084,22 +40158,43 @@ Node affinity configuration. - key + apiVersion string
false - operator + blockOwnerDeletion + boolean + +
+ + false + + controller + boolean + +
+ + false + + kind string
false - values - []string + name + string + +
+ + false + + uid + string
@@ -35108,7 +40203,7 @@ Node affinity configuration. -### PulsarCluster.spec.broker.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec @@ -35124,8 +40219,64 @@ Node affinity configuration. - nodeSelectorTerms - []object + accessModes + []string + +
+ + false + + dataSource + object + +
+ + false + + dataSourceRef + object + +
+ + false + + resources + object + +
+ + false + + selector + object + +
+ + false + + storageClassName + string + +
+ + false + + volumeAttributesClassName + string + +
+ + false + + volumeMode + string + +
+ + false + + volumeName + string
@@ -35134,7 +40285,7 @@ Node affinity configuration. -### PulsarCluster.spec.broker.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index] +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.dataSource @@ -35150,15 +40301,22 @@ Node affinity configuration. - matchExpressions - []object + apiGroup + string
false - matchFields - []object + kind + string + +
+ + false + + name + string
@@ -35167,7 +40325,7 @@ Node affinity configuration. -### PulsarCluster.spec.broker.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index].matchExpressions[index] +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.dataSourceRef @@ -35183,22 +40341,29 @@ Node affinity configuration. - key + apiGroup string
false - operator + kind string
false - values - []string + name + string + +
+ + false + + namespace + string
@@ -35207,7 +40372,7 @@ Node affinity configuration. -### PulsarCluster.spec.broker.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index].matchFields[index] +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.resources @@ -35223,22 +40388,15 @@ Node affinity configuration. - key - string - -
- - false - - operator - string + limits + map[string]int or string
false - values - []string + requests + map[string]int or string
@@ -35247,11 +40405,11 @@ Node affinity configuration. -### PulsarCluster.spec.broker.pdb +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.selector + -Pod disruption budget configuration. @@ -35263,28 +40421,28 @@ Pod disruption budget configuration. - - + + - - + +
enabledbooleanmatchExpressions[]object - Enable Pdb policy.
+
false
maxUnavailableintegermatchLabelsmap[string]string - Number of maxUnavailable pods.
+
false
-### PulsarCluster.spec.broker.probes +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.selector.matchExpressions[index] + -Liveness and readiness probes configuration. @@ -35296,42 +40454,35 @@ Liveness and readiness probes configuration. - - - - - - - + + - - + + - - + +
livenessobject - Liveness probe configuration.
-
false
readinessobjectkeystring - Readiness probe configuration.
+
false
useHealthCheckForLivenessbooleanoperatorstring - Use healthcheck for the liveness probe. If false, the /metrics endpoint will be used.
+
false
useHealthCheckForReadinessbooleanvalues[]string - Use healthcheck for the readiness probe. If false, the /metrics endpoint will be used.
+
false
-### PulsarCluster.spec.broker.probes.liveness +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].fc + -Liveness probe configuration. @@ -35343,63 +40494,49 @@ Liveness probe configuration. - - - - - - - - - - - - + + - + - - + + - - + + - - + +
enabledboolean - Enables the probe.
-
false
failureThresholdinteger - Failure threshold.
-
false
initialDelaySecondsintegerfsTypestring - Indicates the initial delay (in seconds) for the probe.
+
false
periodSecondslun integer - Indicates the period (in seconds) for the probe.
+
false
successThresholdintegerreadOnlyboolean - Success threshold.
+
false
terminationGracePeriodSecondsintegertargetWWNs[]string - Indicates the termination grace period (in seconds) for the probe.
+
false
timeoutSecondsintegerwwids[]string - Indicates the timeout (in seconds) for the probe.
+
false
-### PulsarCluster.spec.broker.probes.readiness +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].flexVolume + -Readiness probe configuration. @@ -35411,63 +40548,49 @@ Readiness probe configuration. - - - - - - - - - - - - + + - - + + - - + + - - + + - - + +
enabledboolean - Enables the probe.
-
false
failureThresholdinteger - Failure threshold.
-
false
initialDelaySecondsintegerdriverstring - Indicates the initial delay (in seconds) for the probe.
+
false
periodSecondsintegerfsTypestring - Indicates the period (in seconds) for the probe.
+
false
successThresholdintegeroptionsmap[string]string - Success threshold.
+
false
terminationGracePeriodSecondsintegerreadOnlyboolean - Indicates the termination grace period (in seconds) for the probe.
+
false
timeoutSecondsintegersecretRefobject - Indicates the timeout (in seconds) for the probe.
+
false
-### PulsarCluster.spec.broker.resources +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].flexVolume.secretRef + -Resources requirements. @@ -35479,15 +40602,8 @@ Resources requirements. - - - - - - - + + @@ -35496,11 +40612,11 @@ Resources requirements.
limitsmap[string]int or string -
-
false
requestsmap[string]int or stringnamestring
-### PulsarCluster.spec.broker.service +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].flocker + -Service configuration. @@ -35512,31 +40628,24 @@ Service configuration. - - - - - - - + + - +
additionalPorts[]object - Additional ports to add to the Service.
-
false
annotationsmap[string]stringdatasetNamestring - Additional annotations to add to the Service.
+
false
typedatasetUUID string - Service type. Default value is 'ClusterIP'
+
false
-### PulsarCluster.spec.broker.service.additionalPorts[index] +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].gcePersistentDisk @@ -35552,43 +40661,29 @@ Service configuration. - appProtocol - string - -
- - false - - name + fsType string
false - nodePort - integer - -
- - false - - port + partition integer
false - protocol + pdName string
false - targetPort - int or string + readOnly + boolean
@@ -35597,7 +40692,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key] +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].gitRepo @@ -35613,233 +40708,303 @@ Service configuration. - additionalVolumes - object - - Mount additional volumes to the pod.
- - false - - annotations - map[string]string + directory + string - Annotations to add to each resource (except pods).
+
false - antiAffinity - object + repository + string - Pod anti-affinity configuration. This override the global value if set.
+
false - autoscaler - object + revision + string - Autoscaling config.
+
false - - config - JSON + + + + +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].glusterfs + + + + + + + + + + + + + + + + + - - + + - + - - - - - - - + +
NameTypeDescriptionRequired
endpointsstring - Configuration.
+
false
env[]objectpathstring - Additional container env variables.
+
false
functionsWorkerEnabledreadOnly boolean - Enable functions worker embedded in the broker.
-
false
gracePeriodinteger - Termination grace period in seconds.

- Minimum: 0
false
image
+ + +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].hostPath + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - + +
NameTypeDescriptionRequired
path string - Override Pulsar image.
+
false
imagePullPolicytype string - Override image pull policy.
-
false
imagePullSecrets[]object - Image pull secrets.
-
false
initContainers[]object - Init containers
-
false
kafkaobject - Enable Kafka protocol.
+
false
labelsmap[string]string
+ + +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].image + + + + + + + + + + + + + + + + + - - + + - - - + +
NameTypeDescriptionRequired
pullPolicystring - Labels to add to each resource (except pods).
+
false
matchLabelsmap[string]stringreferencestring - Match labels selectors to add to each pod.
+
false
nodeAffinityobject
+ + +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].iscsi + + + + + + + + + + + + + + + + + - - + + - + - - - - - - - + + - - + + - + - - + + - - + + - - + + - + - + - - - + +
NameTypeDescriptionRequired
chapAuthDiscoveryboolean - Node affinity configuration.
+
false
nodeSelectorsmap[string]stringchapAuthSessionboolean - Additional node selectors.
+
false
overrideResourceNamefsType string - Override the resource names generated by the operator.
-
false
pdbobject - Pod disruption budget configuration.
+
false
podAnnotationsmap[string]stringinitiatorNamestring - Annotations to add to pod.
+
false
podLabelsmap[string]stringiqnstring - Labels to add to each pod.
+
false
podManagementPolicyiscsiInterface string - Pod management policy.
+
false
probesobjectluninteger - Liveness and readiness probes configuration.
+
false
replicasintegerportals[]string - Number of desired replicas.
+
false
resourcesobjectreadOnlyboolean - Resources requirements.
+
false
servicesecretRef object - Service configuration.
+
false
serviceAccountNametargetPortal string - Service account name for the resource.
+
false
sidecars[]object
+ + +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].iscsi.secretRef + + + + + + + + + + + + + + + + + - - - + +
NameTypeDescriptionRequired
namestring - Sidecar containers
+
false
tolerations[]object
+ + +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].nfs + + + + + + + + + + + + + + + + + - - + + - - + +
NameTypeDescriptionRequired
pathstring - Pod tolerations.
+
false
transactionsobjectreadOnlyboolean - Enable transactions in the broker.
+
false
updateStrategyobjectserverstring - Update strategy for the StatefulSet.
+
false
-### PulsarCluster.spec.broker.sets[key].additionalVolumes +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].persistentVolumeClaim + -Mount additional volumes to the pod. @@ -35851,24 +41016,24 @@ Mount additional volumes to the pod. - - + + - - + +
mounts[]objectclaimNamestring - Mount points for the additional volumes
+
false
volumes[]objectreadOnlyboolean - Additional volumes to be mounted to the pod
+
false
-### PulsarCluster.spec.broker.sets[key].additionalVolumes.mounts[index] +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].photonPersistentDisk @@ -35884,21 +41049,40 @@ Mount additional volumes to the pod. - mountPath + fsType string
false - mountPropagation + pdID string
false - - name + + + + +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].portworxVolume + + + + + + + + + + + + + + + + - - - - - - +
NameTypeDescriptionRequired
fsType string
@@ -35912,14 +41096,7 @@ Mount additional volumes to the pod.
false
subPathstring -
-
false
subPathExprvolumeID string
@@ -35929,7 +41106,7 @@ Mount additional volumes to the pod.
-### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index] +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].projected @@ -35945,127 +41122,222 @@ Mount additional volumes to the pod. - awsElasticBlockStore - object + defaultMode + integer
false - azureDisk - object + sources + []object
false - - azureFile + + + + +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].projected.sources[index] + + + + + + + + + + + + + + + + - + - + - + - + - - + +
NameTypeDescriptionRequired
clusterTrustBundle object
false
cephfsconfigMap object
false
cinderdownwardAPI object
false
configMapsecret object
false
csiserviceAccountToken object
false
downwardAPI
+ + +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].projected.sources[index].clusterTrustBundle + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - - + +
NameTypeDescriptionRequired
labelSelector object
false
emptyDirobjectnamestring
false
ephemeralobjectoptionalboolean
false
fcobjectpathstring
false
flexVolumeobjectsignerNamestring
false
flockerobject
+ + +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].projected.sources[index].clusterTrustBundle.labelSelector + + + + + + + + + + + + + + + + + - - + + - - - + +
NameTypeDescriptionRequired
matchExpressions[]object
false
gcePersistentDiskobjectmatchLabelsmap[string]string
false
gitRepoobject
+ + +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].projected.sources[index].clusterTrustBundle.labelSelector.matchExpressions[index] + + + + + + + + + + + + + + + + + - - + + - - + + - - - + +
NameTypeDescriptionRequired
keystring
false
glusterfsobjectoperatorstring
false
hostPathobjectvalues[]string
false
iscsiobject
+ + +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].projected.sources[index].configMap + + + + + + + + + + + + + + + + + @@ -36078,78 +41350,154 @@ Mount additional volumes to the pod. - - + + - - - + +
NameTypeDescriptionRequired
items[]object
false
nfsobjectoptionalboolean
false
persistentVolumeClaimobject
+ + +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].projected.sources[index].configMap.items[index] + + + + + + + + + + + + + + + + + - - + + - - + + - - - + +
NameTypeDescriptionRequired
keystring
false
photonPersistentDiskobjectmodeinteger
false
portworxVolumeobjectpathstring
false
projectedobject
+ + +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].projected.sources[index].downwardAPI + + + + + + + + + + + + + + + + + - - + +
NameTypeDescriptionRequired
items[]object
false
quobyte
+ + +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index] + + + + + + + + + + + + + + + + - - + + - - + + - + - - - + +
NameTypeDescriptionRequired
fieldRef object
false
rbdobjectmodeinteger
false
scaleIOobjectpathstring
false
secretresourceFieldRef object
false
storageosobject
+ + +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index].fieldRef + + + + + + + + + + + + + + + + + - - + + @@ -36158,7 +41506,7 @@ Mount additional volumes to the pod.
NameTypeDescriptionRequired
apiVersionstring
false
vsphereVolumeobjectfieldPathstring
-### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].awsElasticBlockStore +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index].resourceFieldRef @@ -36174,28 +41522,21 @@ Mount additional volumes to the pod. - fsType + containerName string
false - partition - integer - -
- - false - - readOnly - boolean + divisor + int or string
false - volumeID + resource string
@@ -36205,7 +41546,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].azureDisk +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].projected.sources[index].secret @@ -36221,43 +41562,62 @@ Mount additional volumes to the pod. - cachingMode - string + items + []object
false - diskName + name string
false - diskURI - string + optional + boolean
false - - fsType + + + + +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].projected.sources[index].secret.items[index] + + + + + + + + + + + + + + + + - - + + - - + + @@ -36266,7 +41626,7 @@ Mount additional volumes to the pod.
NameTypeDescriptionRequired
key string
false
kindstringmodeinteger
false
readOnlybooleanpathstring
-### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].azureFile +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].projected.sources[index].serviceAccountToken @@ -36282,21 +41642,21 @@ Mount additional volumes to the pod. - readOnly - boolean + audience + string
false - secretName - string + expirationSeconds + integer
false - shareName + path string
@@ -36306,7 +41666,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].cephfs +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].quobyte @@ -36322,14 +41682,7 @@ Mount additional volumes to the pod. - monitors - []string - -
- - false - - path + group string
@@ -36343,15 +41696,15 @@ Mount additional volumes to the pod. false - secretFile + registry string
false - secretRef - object + tenant + string
@@ -36363,27 +41716,8 @@ Mount additional volumes to the pod.
false - - - - -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].cephfs.secretRef - - - - - - - - - - - - - - - - + +
NameTypeDescriptionRequired
name
volume string
@@ -36393,7 +41727,7 @@ Mount additional volumes to the pod.
-### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].cinder +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].rbd @@ -36415,6 +41749,34 @@ Mount additional volumes to the pod.
false + + image + string + +
+ + false + + keyring + string + +
+ + false + + monitors + []string + +
+ + false + + pool + string + +
+ + false readOnly boolean @@ -36423,14 +41785,14 @@ Mount additional volumes to the pod. false - secretRef + secretRef object
false - volumeID + user string
@@ -36440,7 +41802,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].cinder.secretRef +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].rbd.secretRef @@ -36466,7 +41828,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].configMap +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].scaleIO @@ -36482,68 +41844,70 @@ Mount additional volumes to the pod. - defaultMode - integer + fsType + string
false - items - []object + gateway + string
false - name + protectionDomain string
false - optional + readOnly boolean
false - - - - -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].configMap.items[index] - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - + + - + + + + + +
NameTypeDescriptionRequired
key
secretRefobject +
+
false
sslEnabledboolean +
+
false
storageMode string
false
modeintegerstoragePoolstring
false
pathsystemstring +
+
false
volumeName string
@@ -36553,7 +41917,7 @@ Mount additional volumes to the pod.
-### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].csi +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].scaleIO.secretRef @@ -36569,45 +41933,17 @@ Mount additional volumes to the pod. - driver - string - -
- - false - - fsType + name string
false - - nodePublishSecretRef - object - -
- - false - - readOnly - boolean - -
- - false - - volumeAttributes - map[string]string - -
- - false -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].csi.nodePublishSecretRef +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].secret @@ -36623,7 +41959,28 @@ Mount additional volumes to the pod. - name + defaultMode + integer + +
+ + false + + items + []object + +
+ + false + + optional + boolean + +
+ + false + + secretName string
@@ -36633,7 +41990,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].downwardAPI +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].secret.items[index] @@ -36649,15 +42006,22 @@ Mount additional volumes to the pod. - defaultMode + key + string + +
+ + false + + mode integer
false - items - []object + path + string
@@ -36666,7 +42030,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].downwardAPI.items[index] +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].storageos @@ -36682,29 +42046,36 @@ Mount additional volumes to the pod. - fieldRef - object + fsType + string
false - mode - integer + readOnly + boolean
false - path + secretRef + object + +
+ + false + + volumeName string
false - resourceFieldRef - object + volumeNamespace + string
@@ -36713,7 +42084,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].downwardAPI.items[index].fieldRef +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].storageos.secretRef @@ -36729,14 +42100,7 @@ Mount additional volumes to the pod. - apiVersion - string - -
- - false - - fieldPath + name string
@@ -36746,7 +42110,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].downwardAPI.items[index].resourceFieldRef +### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].vsphereVolume @@ -36762,21 +42126,28 @@ Mount additional volumes to the pod. - containerName + fsType string
false - divisor - int or string + storagePolicyID + string
false - resource + storagePolicyName + string + +
+ + false + + volumePath string
@@ -36786,11 +42157,11 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].emptyDir - +### PulsarCluster.spec.broker.sets[key].antiAffinity +Pod anti-affinity configuration. This override the global value if set. @@ -36802,28 +42173,28 @@ Mount additional volumes to the pod. - - + + - - + +
mediumstringhostobject -
+ Indicates the reclaimPolicy property for the StorageClass.
false
sizeLimitint or stringzoneobject -
+ Indicates the provisioner property for the StorageClass.
false
-### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].ephemeral - +### PulsarCluster.spec.broker.sets[key].antiAffinity.host +Indicates the reclaimPolicy property for the StorageClass. @@ -36835,21 +42206,28 @@ Mount additional volumes to the pod. - - + + + + + + +
volumeClaimTemplateobjectenabledboolean -
+ Indicates the reclaimPolicy property for the StorageClass.
+
false
requiredboolean + Indicates the reclaimPolicy property for the StorageClass.
false
-### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate - +### PulsarCluster.spec.broker.sets[key].antiAffinity.zone +Indicates the provisioner property for the StorageClass. @@ -36861,28 +42239,28 @@ Mount additional volumes to the pod. - - + + - - + +
metadataobjectenabledboolean -
+ Indicates the reclaimPolicy property for the StorageClass.
false
specobjectrequiredboolean -
+ Indicates the reclaimPolicy property for the StorageClass.
false
-### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.metadata - +### PulsarCluster.spec.broker.sets[key].autoscaler +Autoscaling config. @@ -36894,69 +42272,111 @@ Mount additional volumes to the pod. - - + + + + + + + - - + + - + - - + + - - + + - + - + - - + + - - + + - + +
annotationsmap[string]stringenabledboolean + Enable autoscaling for brokers.
+
false
higherCpuThresholdnumber + The threshold to trigger a scale up. The autoscaler will scale up if all the brokers cpu usage is higher than this threshold. Default is '0.8'

+ Minimum: 0
+ Maximum: 1
false
creationTimestampstringlowerCpuThresholdnumber + The threshold to trigger a scale down. The autoscaler will scale down if all the brokers cpu usage is lower than this threshold. Default is '0.4'

+ Minimum: 0
+ Maximum: 1
false
deletionGracePeriodSecondsmax integer -
+ Max number of brokers. If the number of brokers is equals to this value, the autoscaler will never scale up.
false
deletionTimestampstringmininteger + Min number of brokers. If the number of brokers is equals to this value, the autoscaler will never scale down.

+ Minimum: 1
false
finalizers[]stringperiodMsinteger + The interval in milliseconds between two consecutive autoscaling checks.

+ Minimum: 1000
false
generateNameresourcesUsageSource string -
+ Source for getting the brokers resources usage. Possible values are 'PulsarLBReport' and 'K8SMetrics'. Default is 'PulsarLBReport'
false
generationscaleDownBy integer + The number of brokers to remove at each scale down. Default is '1'

+ Minimum: 1
false
labelsmap[string]stringscaleUpByinteger + The number of brokers to add at each scale up. Default is '1'

+ Minimum: 1
false
managedFields[]objectstabilizationWindowMsinteger + The stabilization window is used to restrict the flapping of replica count when the metrics used for scaling keep fluctuating. The autoscaling algorithm uses this window to infer a previous desired state and avoid unwanted changes to workload scale.Default value is 5 minutes after the pod readiness.

+ Minimum: 1
false
+ + +### PulsarCluster.spec.broker.sets[key].env[index] + + + + + + + + + + + + + + + - + - - + + + + + +
NameTypeDescriptionRequired
name string @@ -36964,36 +42384,62 @@ Mount additional volumes to the pod. false
namespacevalue string
false
ownerReferences[]objectvalueFromobject +
+
false
+ + +### PulsarCluster.spec.broker.sets[key].env[index].valueFrom + + + + + + + + + + + + + + + + + - - + + - - + + - - + + @@ -37002,7 +42448,7 @@ Mount additional volumes to the pod.
NameTypeDescriptionRequired
configMapKeyRefobject
false
resourceVersionstringfieldRefobject
false
selfLinkstringresourceFieldRefobject
false
uidstringsecretKeyRefobject
-### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.metadata.managedFields[index] +### PulsarCluster.spec.broker.sets[key].env[index].valueFrom.configMapKeyRef @@ -37018,49 +42464,54 @@ Mount additional volumes to the pod. - apiVersion - string - -
- - false - - fieldsType + key string
false - fieldsV1 - object - -
- - false - - manager + name string
false - operation - string + optional + boolean
false - - subresource + + + + +### PulsarCluster.spec.broker.sets[key].env[index].valueFrom.fieldRef + + + + + + + + + + + + + + + + - +
NameTypeDescriptionRequired
apiVersion string
false
timefieldPath string
@@ -37070,7 +42521,7 @@ Mount additional volumes to the pod.
-### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.metadata.ownerReferences[index] +### PulsarCluster.spec.broker.sets[key].env[index].valueFrom.resourceFieldRef @@ -37086,28 +42537,47 @@ Mount additional volumes to the pod. - apiVersion + containerName string
false - blockOwnerDeletion - boolean + divisor + int or string
false - controller - boolean + resource + string
false - - kind + + + + +### PulsarCluster.spec.broker.sets[key].env[index].valueFrom.secretKeyRef + + + + + + + + + + + + + + + + - + + + + + +
NameTypeDescriptionRequired
key string
@@ -37121,7 +42591,33 @@ Mount additional volumes to the pod.
false
uidoptionalboolean +
+
false
+ + +### PulsarCluster.spec.broker.sets[key].imagePullSecrets[index] + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
name string
@@ -37131,7 +42627,7 @@ Mount additional volumes to the pod.
-### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec +### PulsarCluster.spec.broker.sets[key].initContainers[index] @@ -37147,203 +42643,169 @@ Mount additional volumes to the pod. - accessModes + args []string
false - dataSource - object + command + []string
false - dataSourceRef - object + env + []object
false - resources + envFrom + []object + +
+ + false + + image + string + +
+ + false + + imagePullPolicy + string + +
+ + false + + lifecycle object
false - selector + livenessProbe object
false - storageClassName + name string
false - volumeMode - string + ports + []object
false - volumeName - string + readinessProbe + object
false - - - - -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.dataSource - - - - - - - - - - - - - - - - - + + + - - + + - + - -
NameTypeDescriptionRequired
apiGroupstring
resizePolicy[]object
false
kindstringresourcesobject
false
namerestartPolicy string
false
- - -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.dataSourceRef - - - - - - - - - - - - - - - - - + + + - + + + + + + + + + + + + + + + + - + - -
NameTypeDescriptionRequired
apiGroupstring
securityContextobject
false
kindstartupProbeobject +
+
false
stdinboolean +
+
false
stdinOnceboolean +
+
false
terminationMessagePath string
false
nameterminationMessagePolicy string
false
- - -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.resources - - - - - - - - - - - - - - - - - + + + - - + + - -
NameTypeDescriptionRequired
limitsmap[string]int or string
ttyboolean
false
requestsmap[string]int or stringvolumeDevices[]object
false
- - -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.selector - - - - - - - - - - - - - - - - + + - - + + @@ -37352,7 +42814,7 @@ Mount additional volumes to the pod.
NameTypeDescriptionRequired
matchExpressions
volumeMounts []object
false
matchLabelsmap[string]stringworkingDirstring
-### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.selector.matchExpressions[index] +### PulsarCluster.spec.broker.sets[key].initContainers[index].env[index] @@ -37368,22 +42830,22 @@ Mount additional volumes to the pod. - key + name string
false - operator + value string
false - values - []string + valueFrom + object
@@ -37392,7 +42854,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].fc +### PulsarCluster.spec.broker.sets[key].initContainers[index].env[index].valueFrom @@ -37408,36 +42870,29 @@ Mount additional volumes to the pod. - fsType - string - -
- - false - - lun - integer + configMapKeyRef + object
false - readOnly - boolean + fieldRef + object
false - targetWWNs - []string + resourceFieldRef + object
false - wwids - []string + secretKeyRef + object
@@ -37446,7 +42901,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].flexVolume +### PulsarCluster.spec.broker.sets[key].initContainers[index].env[index].valueFrom.configMapKeyRef @@ -37462,45 +42917,31 @@ Mount additional volumes to the pod. - driver + key string
false - fsType + name string
false - options - map[string]string - -
- - false - - readOnly + optional boolean
false - - secretRef - object - -
- - false -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].flexVolume.secretRef +### PulsarCluster.spec.broker.sets[key].initContainers[index].env[index].valueFrom.fieldRef @@ -37516,7 +42957,14 @@ Mount additional volumes to the pod. - name + apiVersion + string + +
+ + false + + fieldPath string
@@ -37526,7 +42974,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].flocker +### PulsarCluster.spec.broker.sets[key].initContainers[index].env[index].valueFrom.resourceFieldRef @@ -37542,14 +42990,21 @@ Mount additional volumes to the pod. - datasetName + containerName string
false - datasetUUID + divisor + int or string + +
+ + false + + resource string
@@ -37559,7 +43014,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].gcePersistentDisk +### PulsarCluster.spec.broker.sets[key].initContainers[index].env[index].valueFrom.secretKeyRef @@ -37575,28 +43030,21 @@ Mount additional volumes to the pod. - fsType + key string
false - partition - integer - -
- - false - - pdName + name string
false - readOnly + optional boolean
@@ -37606,7 +43054,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].gitRepo +### PulsarCluster.spec.broker.sets[key].initContainers[index].envFrom[index] @@ -37622,22 +43070,22 @@ Mount additional volumes to the pod. - directory - string + configMapRef + object
false - repository + prefix string
false - revision - string + secretRef + object
@@ -37646,7 +43094,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].glusterfs +### PulsarCluster.spec.broker.sets[key].initContainers[index].envFrom[index].configMapRef @@ -37662,21 +43110,14 @@ Mount additional volumes to the pod. - endpoints - string - -
- - false - - path + name string
false - readOnly + optional boolean
@@ -37686,7 +43127,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].hostPath +### PulsarCluster.spec.broker.sets[key].initContainers[index].envFrom[index].secretRef @@ -37702,15 +43143,15 @@ Mount additional volumes to the pod. - path + name string
false - type - string + optional + boolean
@@ -37719,7 +43160,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].iscsi +### PulsarCluster.spec.broker.sets[key].initContainers[index].lifecycle @@ -37735,78 +43176,69 @@ Mount additional volumes to the pod. - chapAuthDiscovery - boolean - -
- - false - - chapAuthSession - boolean - -
- - false - - fsType - string - -
- - false - - initiatorName - string + postStart + object
false - iqn - string + preStop + object
false - iscsiInterface + stopSignal string
false - - lun - integer - -
- - false - - portals - []string + + + + +### PulsarCluster.spec.broker.sets[key].initContainers[index].lifecycle.postStart + + + + + + + + + + + + + + + + + - - + + - + - - + + @@ -37815,7 +43247,7 @@ Mount additional volumes to the pod.
NameTypeDescriptionRequired
execobject
false
readOnlybooleanhttpGetobject
false
secretRefsleep object
false
targetPortalstringtcpSocketobject
-### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].iscsi.secretRef +### PulsarCluster.spec.broker.sets[key].initContainers[index].lifecycle.postStart.exec @@ -37831,8 +43263,8 @@ Mount additional volumes to the pod. - name - string + command + []string
@@ -37841,7 +43273,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].nfs +### PulsarCluster.spec.broker.sets[key].initContainers[index].lifecycle.postStart.httpGet @@ -37857,6 +43289,20 @@ Mount additional volumes to the pod. + host + string + +
+ + false + + httpHeaders + []object + +
+ + false + path string @@ -37864,14 +43310,14 @@ Mount additional volumes to the pod. false - readOnly - boolean + port + int or string
false - server + scheme string
@@ -37881,7 +43327,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].persistentVolumeClaim +### PulsarCluster.spec.broker.sets[key].initContainers[index].lifecycle.postStart.httpGet.httpHeaders[index] @@ -37897,15 +43343,15 @@ Mount additional volumes to the pod. - claimName + name string
false - readOnly - boolean + value + string
@@ -37914,7 +43360,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].photonPersistentDisk +### PulsarCluster.spec.broker.sets[key].initContainers[index].lifecycle.postStart.sleep @@ -37930,15 +43376,41 @@ Mount additional volumes to the pod. - fsType + seconds + integer + +
+ + false + + + + +### PulsarCluster.spec.broker.sets[key].initContainers[index].lifecycle.postStart.tcpSocket + + + + + + + + + + + + + + + + - - + + @@ -37947,7 +43419,7 @@ Mount additional volumes to the pod.
NameTypeDescriptionRequired
host string
false
pdIDstringportint or string
-### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].portworxVolume +### PulsarCluster.spec.broker.sets[key].initContainers[index].lifecycle.preStop @@ -37963,22 +43435,29 @@ Mount additional volumes to the pod. - fsType - string + exec + object
false - readOnly - boolean + httpGet + object
false - volumeID - string + sleep + object + +
+ + false + + tcpSocket + object
@@ -37987,7 +43466,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].projected +### PulsarCluster.spec.broker.sets[key].initContainers[index].lifecycle.preStop.exec @@ -38003,15 +43482,8 @@ Mount additional volumes to the pod. - defaultMode - integer - -
- - false - - sources - []object + command + []string
@@ -38020,7 +43492,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].projected.sources[index] +### PulsarCluster.spec.broker.sets[key].initContainers[index].lifecycle.preStop.httpGet @@ -38036,29 +43508,36 @@ Mount additional volumes to the pod. - configMap - object + host + string
false - downwardAPI - object + httpHeaders + []object
false - secret - object + path + string
false - serviceAccountToken - object + port + int or string + +
+ + false + + scheme + string
@@ -38067,7 +43546,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].projected.sources[index].configMap +### PulsarCluster.spec.broker.sets[key].initContainers[index].lifecycle.preStop.httpGet.httpHeaders[index] @@ -38083,13 +43562,6 @@ Mount additional volumes to the pod. - items - []object - -
- - false - name string @@ -38097,8 +43569,8 @@ Mount additional volumes to the pod. false - optional - boolean + value + string
@@ -38107,7 +43579,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].projected.sources[index].configMap.items[index] +### PulsarCluster.spec.broker.sets[key].initContainers[index].lifecycle.preStop.sleep @@ -38123,31 +43595,17 @@ Mount additional volumes to the pod. - key - string - -
- - false - - mode + seconds integer
false - - path - string - -
- - false -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].projected.sources[index].downwardAPI +### PulsarCluster.spec.broker.sets[key].initContainers[index].lifecycle.preStop.tcpSocket @@ -38163,8 +43621,15 @@ Mount additional volumes to the pod. - items - []object + host + string + +
+ + false + + port + int or string
@@ -38173,7 +43638,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index] +### PulsarCluster.spec.broker.sets[key].initContainers[index].livenessProbe @@ -38189,38 +43654,80 @@ Mount additional volumes to the pod. - fieldRef + exec object
false - mode + failureThreshold integer
false - path - string + grpc + object
false - resourceFieldRef + httpGet + object + +
+ + false + + initialDelaySeconds + integer + +
+ + false + + periodSeconds + integer + +
+ + false + + successThreshold + integer + +
+ + false + + tcpSocket object
false + + terminationGracePeriodSeconds + integer + +
+ + false + + timeoutSeconds + integer + +
+ + false -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index].fieldRef +### PulsarCluster.spec.broker.sets[key].initContainers[index].livenessProbe.exec @@ -38236,15 +43743,8 @@ Mount additional volumes to the pod. - apiVersion - string - -
- - false - - fieldPath - string + command + []string
@@ -38253,7 +43753,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index].resourceFieldRef +### PulsarCluster.spec.broker.sets[key].initContainers[index].livenessProbe.grpc @@ -38269,21 +43769,14 @@ Mount additional volumes to the pod. - containerName - string - -
- - false - - divisor - int or string + port + integer
false - resource + service string
@@ -38293,7 +43786,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].projected.sources[index].secret +### PulsarCluster.spec.broker.sets[key].initContainers[index].livenessProbe.httpGet @@ -38309,22 +43802,36 @@ Mount additional volumes to the pod. - items + host + string + +
+ + false + + httpHeaders []object
false - name + path string
false - optional - boolean + port + int or string + +
+ + false + + scheme + string
@@ -38333,7 +43840,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].projected.sources[index].secret.items[index] +### PulsarCluster.spec.broker.sets[key].initContainers[index].livenessProbe.httpGet.httpHeaders[index] @@ -38349,21 +43856,14 @@ Mount additional volumes to the pod. - key + name string
false - mode - integer - -
- - false - - path + value string
@@ -38373,7 +43873,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].projected.sources[index].serviceAccountToken +### PulsarCluster.spec.broker.sets[key].initContainers[index].livenessProbe.tcpSocket @@ -38389,22 +43889,15 @@ Mount additional volumes to the pod. - audience + host string
false - expirationSeconds - integer - -
- - false - - path - string + port + int or string
@@ -38413,7 +43906,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].quobyte +### PulsarCluster.spec.broker.sets[key].initContainers[index].ports[index] @@ -38429,42 +43922,35 @@ Mount additional volumes to the pod. - group - string - -
- - false - - readOnly - boolean + containerPort + integer
false - registry + hostIP string
false - tenant - string + hostPort + integer
false - user + name string
false - volume + protocol string
@@ -38474,7 +43960,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].rbd +### PulsarCluster.spec.broker.sets[key].initContainers[index].readinessProbe @@ -38490,57 +43976,71 @@ Mount additional volumes to the pod. - fsType - string + exec + object
false - image - string + failureThreshold + integer
false - keyring - string + grpc + object
false - monitors - []string + httpGet + object
false - pool - string + initialDelaySeconds + integer
false - readOnly - boolean + periodSeconds + integer
false - secretRef + successThreshold + integer + +
+ + false + + tcpSocket object
false - user - string + terminationGracePeriodSeconds + integer + +
+ + false + + timeoutSeconds + integer
@@ -38549,7 +44049,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].rbd.secretRef +### PulsarCluster.spec.broker.sets[key].initContainers[index].readinessProbe.exec @@ -38565,8 +44065,8 @@ Mount additional volumes to the pod. - name - string + command + []string
@@ -38575,7 +44075,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].scaleIO +### PulsarCluster.spec.broker.sets[key].initContainers[index].readinessProbe.grpc @@ -38591,70 +44091,68 @@ Mount additional volumes to the pod. - fsType - string + port + integer
false - gateway + service string
false - - protectionDomain + + + + +### PulsarCluster.spec.broker.sets[key].initContainers[index].readinessProbe.httpGet + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + - + - - + + - +
NameTypeDescriptionRequired
host string
false
readOnlyboolean -
-
false
secretRefobject -
-
false
sslEnabledboolean -
-
false
storageModestringhttpHeaders[]object
false
storagePoolpath string
false
systemstringportint or string
false
volumeNamescheme string
@@ -38664,7 +44162,7 @@ Mount additional volumes to the pod.
-### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].scaleIO.secretRef +### PulsarCluster.spec.broker.sets[key].initContainers[index].readinessProbe.httpGet.httpHeaders[index] @@ -38686,11 +44184,18 @@ Mount additional volumes to the pod.
false + + value + string + +
+ + false -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].secret +### PulsarCluster.spec.broker.sets[key].initContainers[index].readinessProbe.tcpSocket @@ -38706,29 +44211,15 @@ Mount additional volumes to the pod. - defaultMode - integer - -
- - false - - items - []object - -
- - false - - optional - boolean + host + string
false - secretName - string + port + int or string
@@ -38737,7 +44228,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].secret.items[index] +### PulsarCluster.spec.broker.sets[key].initContainers[index].resizePolicy[index] @@ -38753,21 +44244,14 @@ Mount additional volumes to the pod. - key + resourceName string
false - mode - integer - -
- - false - - path + restartPolicy string
@@ -38777,7 +44261,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].storageos +### PulsarCluster.spec.broker.sets[key].initContainers[index].resources @@ -38793,36 +44277,22 @@ Mount additional volumes to the pod. - fsType - string - -
- - false - - readOnly - boolean - -
- - false - - secretRef - object + claims + []object
false - volumeName - string + limits + map[string]int or string
false - volumeNamespace - string + requests + map[string]int or string
@@ -38831,7 +44301,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].storageos.secretRef +### PulsarCluster.spec.broker.sets[key].initContainers[index].resources.claims[index] @@ -38853,11 +44323,18 @@ Mount additional volumes to the pod.
false + + request + string + +
+ + false -### PulsarCluster.spec.broker.sets[key].additionalVolumes.volumes[index].vsphereVolume +### PulsarCluster.spec.broker.sets[key].initContainers[index].securityContext @@ -38873,75 +44350,98 @@ Mount additional volumes to the pod. - fsType - string + allowPrivilegeEscalation + boolean
false - storagePolicyID - string + appArmorProfile + object
false - storagePolicyName - string + capabilities + object
false - volumePath + privileged + boolean + +
+ + false + + procMount string
false - - - - -### PulsarCluster.spec.broker.sets[key].antiAffinity - - - -Pod anti-affinity configuration. This override the global value if set. - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
NameTypeDescriptionRequired
host
readOnlyRootFilesystemboolean +
+
false
runAsGroupinteger +
+
false
runAsNonRootboolean +
+
false
runAsUserinteger +
+
false
seLinuxOptions object - Indicates the reclaimPolicy property for the StorageClass.
+
false
zoneseccompProfile object - Indicates the provisioner property for the StorageClass.
+
+
false
windowsOptionsobject +
false
-### PulsarCluster.spec.broker.sets[key].antiAffinity.host +### PulsarCluster.spec.broker.sets[key].initContainers[index].securityContext.appArmorProfile + -Indicates the reclaimPolicy property for the StorageClass. @@ -38953,28 +44453,28 @@ Indicates the reclaimPolicy property for the StorageClass. - - + + - - + +
enabledbooleanlocalhostProfilestring - Indicates the reclaimPolicy property for the StorageClass.
+
false
requiredbooleantypestring - Indicates the reclaimPolicy property for the StorageClass.
+
false
-### PulsarCluster.spec.broker.sets[key].antiAffinity.zone +### PulsarCluster.spec.broker.sets[key].initContainers[index].securityContext.capabilities + -Indicates the provisioner property for the StorageClass. @@ -38986,28 +44486,28 @@ Indicates the provisioner property for the StorageClass. - - + + - - + +
enabledbooleanadd[]string - Indicates the reclaimPolicy property for the StorageClass.
+
false
requiredbooleandrop[]string - Indicates the reclaimPolicy property for the StorageClass.
+
false
-### PulsarCluster.spec.broker.sets[key].autoscaler +### PulsarCluster.spec.broker.sets[key].initContainers[index].securityContext.seLinuxOptions + -Autoscaling config. @@ -39019,96 +44519,71 @@ Autoscaling config. - - - - - - - - - - - - + + - - - - - - - + + - - + + - + - - - - - - - - + +
enabledboolean - Enable autoscaling for brokers.
-
false
higherCpuThresholdnumber - The threshold to trigger a scale up. The autoscaler will scale up if all the brokers cpu usage is higher than this threshold. Default is '0.8'
-
- Minimum: 0
- Maximum: 1
-
false
lowerCpuThresholdnumberlevelstring - The threshold to trigger a scale down. The autoscaler will scale down if all the brokers cpu usage is lower than this threshold. Default is '0.4'

- Minimum: 0
- Maximum: 1
-
false
maxinteger - Max number of brokers. If the number of brokers is equals to this value, the autoscaler will never scale up.
false
minintegerrolestring - Min number of brokers. If the number of brokers is equals to this value, the autoscaler will never scale down.

- Minimum: 1
false
periodMsintegertypestring - The interval in milliseconds between two consecutive autoscaling checks.

- Minimum: 1000
false
resourcesUsageSourceuser string - Source for getting the brokers resources usage. Possible values are 'PulsarLBReport' and 'K8SMetrics'. Default is 'PulsarLBReport'
-
false
scaleDownByinteger - The number of brokers to remove at each scale down. Default is '1'

- Minimum: 1
false
scaleUpByinteger
+ + +### PulsarCluster.spec.broker.sets[key].initContainers[index].securityContext.seccompProfile + + + + + + + + + + + + + + + + + - - + +
NameTypeDescriptionRequired
localhostProfilestring - The number of brokers to add at each scale up. Default is '1'

- Minimum: 1
false
stabilizationWindowMsintegertypestring - The stabilization window is used to restrict the flapping of replica count when the metrics used for scaling keep fluctuating. The autoscaling algorithm uses this window to infer a previous desired state and avoid unwanted changes to workload scale.Default value is 5 minutes after the pod readiness.

- Minimum: 1
false
-### PulsarCluster.spec.broker.sets[key].env[index] +### PulsarCluster.spec.broker.sets[key].initContainers[index].securityContext.windowsOptions @@ -39124,22 +44599,29 @@ Autoscaling config. - name + gmsaCredentialSpec string
false - value + gmsaCredentialSpecName string
false - valueFrom - object + hostProcess + boolean + +
+ + false + + runAsUserName + string
@@ -39148,7 +44630,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].env[index].valueFrom +### PulsarCluster.spec.broker.sets[key].initContainers[index].startupProbe @@ -39164,29 +44646,71 @@ Autoscaling config. - configMapKeyRef + exec object
false - fieldRef + failureThreshold + integer + +
+ + false + + grpc + object + +
+ + false + + httpGet + object + +
+ + false + + initialDelaySeconds + integer + +
+ + false + + periodSeconds + integer + +
+ + false + + successThreshold + integer + +
+ + false + + tcpSocket object
false - resourceFieldRef - object + terminationGracePeriodSeconds + integer
false - secretKeyRef - object + timeoutSeconds + integer
@@ -39195,7 +44719,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].env[index].valueFrom.configMapKeyRef +### PulsarCluster.spec.broker.sets[key].initContainers[index].startupProbe.exec @@ -39211,22 +44735,8 @@ Autoscaling config. - key - string - -
- - false - - name - string - -
- - false - - optional - boolean + command + []string
@@ -39235,7 +44745,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].env[index].valueFrom.fieldRef +### PulsarCluster.spec.broker.sets[key].initContainers[index].startupProbe.grpc @@ -39251,14 +44761,14 @@ Autoscaling config. - apiVersion - string + port + integer
false - fieldPath + service string
@@ -39268,7 +44778,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].env[index].valueFrom.resourceFieldRef +### PulsarCluster.spec.broker.sets[key].initContainers[index].startupProbe.httpGet @@ -39284,21 +44794,35 @@ Autoscaling config. - containerName + host string
false - divisor + httpHeaders + []object + +
+ + false + + path + string + +
+ + false + + port int or string
false - resource + scheme string
@@ -39308,7 +44832,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].env[index].valueFrom.secretKeyRef +### PulsarCluster.spec.broker.sets[key].initContainers[index].startupProbe.httpGet.httpHeaders[index] @@ -39324,13 +44848,6 @@ Autoscaling config. - key - string - -
- - false - name string @@ -39338,8 +44855,8 @@ Autoscaling config. false - optional - boolean + value + string
@@ -39348,7 +44865,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].imagePullSecrets[index] +### PulsarCluster.spec.broker.sets[key].initContainers[index].startupProbe.tcpSocket @@ -39364,17 +44881,24 @@ Autoscaling config. - name + host string
false + + port + int or string + +
+ + false -### PulsarCluster.spec.broker.sets[key].initContainers[index] +### PulsarCluster.spec.broker.sets[key].initContainers[index].volumeDevices[index] @@ -39390,57 +44914,48 @@ Autoscaling config. - args - []string - -
- - false - - command - []string - -
- - false - - env - []object - -
- - false - - envFrom - []object - -
- - false - - image + devicePath string
false - imagePullPolicy + name string
false - - lifecycle - object + + + + +### PulsarCluster.spec.broker.sets[key].initContainers[index].volumeMounts[index] + + + + + + + + + + + + + + + + + - - + + @@ -39453,91 +44968,28 @@ Autoscaling config. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - - - - - - - - - - - - - - - - +
NameTypeDescriptionRequired
mountPathstring
false
livenessProbeobjectmountPropagationstring
false
ports[]object -
-
false
readinessProbeobject -
-
false
resourcesobject -
-
false
securityContextobject -
-
false
startupProbeobject -
-
false
stdinboolean -
-
false
stdinOncereadOnly boolean
false
terminationMessagePathrecursiveReadOnly string
false
terminationMessagePolicysubPath string
false
ttyboolean -
-
false
volumeDevices[]object -
-
false
volumeMounts[]object -
-
false
workingDirsubPathExpr string
@@ -39547,11 +44999,11 @@ Autoscaling config.
-### PulsarCluster.spec.broker.sets[key].initContainers[index].env[index] - +### PulsarCluster.spec.broker.sets[key].kafka +Enable Kafka protocol. @@ -39563,35 +45015,28 @@ Autoscaling config. - - - - - - - + + - - + +
namestring -
-
false
valuestringenabledboolean -
+ Allow the cluster to accept Kafka protocol. Default is 'false'.
false
valueFromobjectexposePortsboolean -
+ Expose the kafka protocol port.
false
-### PulsarCluster.spec.broker.sets[key].initContainers[index].env[index].valueFrom - +### PulsarCluster.spec.broker.sets[key].nodeAffinity +Node affinity configuration. @@ -39603,28 +45048,14 @@ Autoscaling config. - - - - - - - - - - - - + + - +
configMapKeyRefobject -
-
false
fieldRefobject -
-
false
resourceFieldRefobjectpreferredDuringSchedulingIgnoredDuringExecution[]object
false
secretKeyRefrequiredDuringSchedulingIgnoredDuringExecution object
@@ -39634,7 +45065,7 @@ Autoscaling config.
-### PulsarCluster.spec.broker.sets[key].initContainers[index].env[index].valueFrom.configMapKeyRef +### PulsarCluster.spec.broker.sets[key].nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index] @@ -39650,22 +45081,15 @@ Autoscaling config. - key - string - -
- - false - - name - string + preference + object
false - optional - boolean + weight + integer
@@ -39674,7 +45098,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].initContainers[index].env[index].valueFrom.fieldRef +### PulsarCluster.spec.broker.sets[key].nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference @@ -39690,15 +45114,15 @@ Autoscaling config. - apiVersion - string + matchExpressions + []object
false - fieldPath - string + matchFields + []object
@@ -39707,7 +45131,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].initContainers[index].env[index].valueFrom.resourceFieldRef +### PulsarCluster.spec.broker.sets[key].nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference.matchExpressions[index] @@ -39723,22 +45147,22 @@ Autoscaling config. - containerName + key string
false - divisor - int or string + operator + string
false - resource - string + values + []string
@@ -39747,7 +45171,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].initContainers[index].env[index].valueFrom.secretKeyRef +### PulsarCluster.spec.broker.sets[key].nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference.matchFields[index] @@ -39770,15 +45194,15 @@ Autoscaling config. false - name + operator string
false - optional - boolean + values + []string
@@ -39787,7 +45211,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].initContainers[index].envFrom[index] +### PulsarCluster.spec.broker.sets[key].nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution @@ -39803,22 +45227,41 @@ Autoscaling config. - configMapRef - object + nodeSelectorTerms + []object
false - - prefix - string + + + + +### PulsarCluster.spec.broker.sets[key].nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index] + + + + + + + + + + + + + + + + + - - + + @@ -39827,7 +45270,7 @@ Autoscaling config.
NameTypeDescriptionRequired
matchExpressions[]object
false
secretRefobjectmatchFields[]object
-### PulsarCluster.spec.broker.sets[key].initContainers[index].envFrom[index].configMapRef +### PulsarCluster.spec.broker.sets[key].nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index].matchExpressions[index] @@ -39843,15 +45286,22 @@ Autoscaling config. - name + key string
false - optional - boolean + operator + string + +
+ + false + + values + []string
@@ -39860,7 +45310,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].initContainers[index].envFrom[index].secretRef +### PulsarCluster.spec.broker.sets[key].nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index].matchFields[index] @@ -39876,15 +45326,22 @@ Autoscaling config. - name + key string
false - optional - boolean + operator + string + +
+ + false + + values + []string
@@ -39893,11 +45350,11 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].initContainers[index].lifecycle - +### PulsarCluster.spec.broker.sets[key].pdb +Pod disruption budget configuration. @@ -39909,28 +45366,35 @@ Autoscaling config. - - + + - - + + + + + + +
postStartobjectenabledboolean -
+ Enable Pdb policy.
false
preStopobjectmaxUnavailableinteger -
+ Number of maxUnavailable pods.
+
false
minAvailableinteger + Number of minAvailable pods.
false
-### PulsarCluster.spec.broker.sets[key].initContainers[index].lifecycle.postStart - +### PulsarCluster.spec.broker.sets[key].probes +Liveness and readiness probes configuration. @@ -39942,35 +45406,42 @@ Autoscaling config. - + - + - - + + + + + + +
execliveness object -
+ Liveness probe configuration.
false
httpGetreadiness object -
+ Readiness probe configuration.
false
tcpSocketobjectuseHealthCheckForLivenessboolean -
+ Use healthcheck for the liveness probe. If false, the /metrics endpoint will be used.
+
false
useHealthCheckForReadinessboolean + Use healthcheck for the readiness probe. If false, the /metrics endpoint will be used.
false
-### PulsarCluster.spec.broker.sets[key].initContainers[index].lifecycle.postStart.exec - +### PulsarCluster.spec.broker.sets[key].probes.liveness +Liveness probe configuration. @@ -39982,21 +45453,63 @@ Autoscaling config. - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
command[]stringenabledboolean -
+ Enables the probe.
+
false
failureThresholdinteger + Failure threshold.
+
false
initialDelaySecondsinteger + Indicates the initial delay (in seconds) for the probe.
+
false
periodSecondsinteger + Indicates the period (in seconds) for the probe.
+
false
successThresholdinteger + Success threshold.
+
false
terminationGracePeriodSecondsinteger + Indicates the termination grace period (in seconds) for the probe.
+
false
timeoutSecondsinteger + Indicates the timeout (in seconds) for the probe.
false
-### PulsarCluster.spec.broker.sets[key].initContainers[index].lifecycle.postStart.httpGet - +### PulsarCluster.spec.broker.sets[key].probes.readiness +Readiness probe configuration. @@ -40008,49 +45521,63 @@ Autoscaling config. - - + + - - + + - - + + - - + + + + + + + + + + + + - - + +
hoststringenabledboolean -
+ Enables the probe.
false
httpHeaders[]objectfailureThresholdinteger -
+ Failure threshold.
false
pathstringinitialDelaySecondsinteger -
+ Indicates the initial delay (in seconds) for the probe.
false
portint or stringperiodSecondsinteger + Indicates the period (in seconds) for the probe.
+
false
successThresholdinteger + Success threshold.
+
false
terminationGracePeriodSecondsinteger -
+ Indicates the termination grace period (in seconds) for the probe.
false
schemestringtimeoutSecondsinteger -
+ Indicates the timeout (in seconds) for the probe.
false
-### PulsarCluster.spec.broker.sets[key].initContainers[index].lifecycle.postStart.httpGet.httpHeaders[index] - +### PulsarCluster.spec.broker.sets[key].resources +Resources requirements. @@ -40062,15 +45589,22 @@ Autoscaling config. - - + + - - + + + + + + + @@ -40079,7 +45613,7 @@ Autoscaling config.
namestringclaims[]object
false
valuestringlimitsmap[string]int or string +
+
false
requestsmap[string]int or string
-### PulsarCluster.spec.broker.sets[key].initContainers[index].lifecycle.postStart.tcpSocket +### PulsarCluster.spec.broker.sets[key].resources.claims[index] @@ -40095,15 +45629,15 @@ Autoscaling config. - host + name string
false - port - int or string + request + string
@@ -40112,11 +45646,11 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].initContainers[index].lifecycle.preStop - +### PulsarCluster.spec.broker.sets[key].securityContext +Subset of PodSecurityContext for basic UID, GID, and volume access control. @@ -40128,22 +45662,43 @@ Autoscaling config. - - + + - - + + - - + + + + + + + + + + + + + + + + + @@ -40152,11 +45707,11 @@ Autoscaling config.
execobjectfsGroupinteger
false
httpGetobjectfsGroupChangePolicystring
false
tcpSocketobjectrunAsGroupinteger +
+
false
runAsNonRootboolean +
+
false
runAsUserinteger +
+
false
supplementalGroups[]integer
-### PulsarCluster.spec.broker.sets[key].initContainers[index].lifecycle.preStop.exec - +### PulsarCluster.spec.broker.sets[key].service +Service configuration. @@ -40168,17 +45723,31 @@ Autoscaling config. - - + + + + + + + + + + + +
command[]stringadditionalPorts[]object -
+ Additional ports to add to the Service.
+
false
annotationsmap[string]string + Additional annotations to add to the Service.
+
false
typestring + Service type. Default value is 'ClusterIP'
false
-### PulsarCluster.spec.broker.sets[key].initContainers[index].lifecycle.preStop.httpGet +### PulsarCluster.spec.broker.sets[key].service.additionalPorts[index] @@ -40194,45 +45763,52 @@ Autoscaling config. - host + appProtocol string
false - httpHeaders - []object + name + string
false - path - string + nodePort + integer
false port - int or string + integer
false - scheme + protocol string
false + + targetPort + int or string + +
+ + false -### PulsarCluster.spec.broker.sets[key].initContainers[index].lifecycle.preStop.httpGet.httpHeaders[index] +### PulsarCluster.spec.broker.sets[key].sidecars[index] @@ -40248,249 +45824,168 @@ Autoscaling config. - name - string + args + []string
false - value - string + command + []string
false - - - - -### PulsarCluster.spec.broker.sets[key].initContainers[index].lifecycle.preStop.tcpSocket - - - - - - - - - - - - - - - - - + + + - - + + - -
NameTypeDescriptionRequired
hoststring
env[]object
false
portint or stringenvFrom[]object
false
- - -### PulsarCluster.spec.broker.sets[key].initContainers[index].livenessProbe - - - - - - - - - - - - - - - - - + + + - - + + - + - + - - + + - - + + - - + + - + + + + + + - - + + - - + + - -
NameTypeDescriptionRequired
execobject
imagestring
false
failureThresholdintegerimagePullPolicystring
false
grpclifecycle object
false
httpGetlivenessProbe object
false
initialDelaySecondsintegernamestring
false
periodSecondsintegerports[]object
false
successThresholdintegerreadinessProbeobject
false
tcpSocketresizePolicy[]object +
+
false
resources object
false
terminationGracePeriodSecondsintegerrestartPolicystring
false
timeoutSecondsintegersecurityContextobject
false
- - -### PulsarCluster.spec.broker.sets[key].initContainers[index].livenessProbe.exec - - - - - - - - - - - - - - - - - + + + - -
NameTypeDescriptionRequired
command[]string
startupProbeobject
false
- - -### PulsarCluster.spec.broker.sets[key].initContainers[index].livenessProbe.grpc - - - - - - - - - - - - - - - - - + + + - + + + + + + - -
NameTypeDescriptionRequired
portinteger
stdinboolean
false
servicestdinOnceboolean +
+
false
terminationMessagePath string
false
- - -### PulsarCluster.spec.broker.sets[key].initContainers[index].livenessProbe.httpGet - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - +
NameTypeDescriptionRequired
host
terminationMessagePolicy string
false
httpHeaders[]objectttyboolean
false
pathstringvolumeDevices[]object
false
portint or stringvolumeMounts[]object
false
schemeworkingDir string
@@ -40500,7 +45995,7 @@ Autoscaling config.
-### PulsarCluster.spec.broker.sets[key].initContainers[index].livenessProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.broker.sets[key].sidecars[index].env[index] @@ -40529,11 +46024,18 @@ Autoscaling config.
false + + valueFrom + object + +
+ + false -### PulsarCluster.spec.broker.sets[key].initContainers[index].livenessProbe.tcpSocket +### PulsarCluster.spec.broker.sets[key].sidecars[index].env[index].valueFrom @@ -40549,15 +46051,29 @@ Autoscaling config. - host - string + configMapKeyRef + object
false - port - int or string + fieldRef + object + +
+ + false + + resourceFieldRef + object + +
+ + false + + secretKeyRef + object
@@ -40566,7 +46082,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].initContainers[index].ports[index] +### PulsarCluster.spec.broker.sets[key].sidecars[index].env[index].valueFrom.configMapKeyRef @@ -40582,26 +46098,12 @@ Autoscaling config. - containerPort - integer - -
- - false - - hostIP + key string
false - - hostPort - integer - -
- - false name string @@ -40610,8 +46112,8 @@ Autoscaling config. false - protocol - string + optional + boolean
@@ -40620,7 +46122,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].initContainers[index].readinessProbe +### PulsarCluster.spec.broker.sets[key].sidecars[index].env[index].valueFrom.fieldRef @@ -40636,71 +46138,15 @@ Autoscaling config. - exec - object - -
- - false - - failureThreshold - integer - -
- - false - - grpc - object - -
- - false - - httpGet - object - -
- - false - - initialDelaySeconds - integer - -
- - false - - periodSeconds - integer - -
- - false - - successThreshold - integer - -
- - false - - tcpSocket - object - -
- - false - - terminationGracePeriodSeconds - integer + apiVersion + string
false - timeoutSeconds - integer + fieldPath + string
@@ -40709,7 +46155,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].initContainers[index].readinessProbe.exec +### PulsarCluster.spec.broker.sets[key].sidecars[index].env[index].valueFrom.resourceFieldRef @@ -40725,8 +46171,22 @@ Autoscaling config. - command - []string + containerName + string + +
+ + false + + divisor + int or string + +
+ + false + + resource + string
@@ -40735,7 +46195,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].initContainers[index].readinessProbe.grpc +### PulsarCluster.spec.broker.sets[key].sidecars[index].env[index].valueFrom.secretKeyRef @@ -40751,24 +46211,31 @@ Autoscaling config. - port - integer + key + string
false - service + name string
false + + optional + boolean + +
+ + false -### PulsarCluster.spec.broker.sets[key].initContainers[index].readinessProbe.httpGet +### PulsarCluster.spec.broker.sets[key].sidecars[index].envFrom[index] @@ -40784,36 +46251,22 @@ Autoscaling config. - host - string - -
- - false - - httpHeaders - []object + configMapRef + object
false - path + prefix string
false - port - int or string - -
- - false - - scheme - string + secretRef + object
@@ -40822,7 +46275,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].initContainers[index].readinessProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.broker.sets[key].sidecars[index].envFrom[index].configMapRef @@ -40845,8 +46298,8 @@ Autoscaling config. false - value - string + optional + boolean
@@ -40855,7 +46308,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].initContainers[index].readinessProbe.tcpSocket +### PulsarCluster.spec.broker.sets[key].sidecars[index].envFrom[index].secretRef @@ -40871,15 +46324,15 @@ Autoscaling config. - host + name string
false - port - int or string + optional + boolean
@@ -40888,7 +46341,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].initContainers[index].resources +### PulsarCluster.spec.broker.sets[key].sidecars[index].lifecycle @@ -40904,15 +46357,22 @@ Autoscaling config. - limits - map[string]int or string + postStart + object + +
+ + false + + preStop + object
false - requests - map[string]int or string + stopSignal + string
@@ -40921,7 +46381,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].initContainers[index].securityContext +### PulsarCluster.spec.broker.sets[key].sidecars[index].lifecycle.postStart @@ -40937,77 +46397,28 @@ Autoscaling config. - allowPrivilegeEscalation - boolean - -
- - false - - capabilities + exec object
false - privileged - boolean - -
- - false - - procMount - string - -
- - false - - readOnlyRootFilesystem - boolean - -
- - false - - runAsGroup - integer - -
- - false - - runAsNonRoot - boolean - -
- - false - - runAsUser - integer - -
- - false - - seLinuxOptions + httpGet object
false - seccompProfile + sleep object
false - windowsOptions + tcpSocket object
@@ -41017,7 +46428,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].initContainers[index].securityContext.capabilities +### PulsarCluster.spec.broker.sets[key].sidecars[index].lifecycle.postStart.exec @@ -41033,14 +46444,7 @@ Autoscaling config. - add - []string - -
- - false - - drop + command []string
@@ -41050,7 +46454,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].initContainers[index].securityContext.seLinuxOptions +### PulsarCluster.spec.broker.sets[key].sidecars[index].lifecycle.postStart.httpGet @@ -41066,28 +46470,35 @@ Autoscaling config. - level + host string
false - role - string + httpHeaders + []object
false - type + path string
false - user + port + int or string + +
+ + false + + scheme string
@@ -41097,7 +46508,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].initContainers[index].securityContext.seccompProfile +### PulsarCluster.spec.broker.sets[key].sidecars[index].lifecycle.postStart.httpGet.httpHeaders[index] @@ -41113,14 +46524,14 @@ Autoscaling config. - localhostProfile + name string
false - type + value string
@@ -41130,7 +46541,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].initContainers[index].securityContext.windowsOptions +### PulsarCluster.spec.broker.sets[key].sidecars[index].lifecycle.postStart.sleep @@ -41146,29 +46557,41 @@ Autoscaling config. - gmsaCredentialSpec - string + seconds + integer
false - - gmsaCredentialSpecName + + + + +### PulsarCluster.spec.broker.sets[key].sidecars[index].lifecycle.postStart.tcpSocket + + + + + + + + + + + + + + + + - - - - - - - + + @@ -41177,7 +46600,7 @@ Autoscaling config.
NameTypeDescriptionRequired
host string
false
hostProcessboolean -
-
false
runAsUserNamestringportint or string
-### PulsarCluster.spec.broker.sets[key].initContainers[index].startupProbe +### PulsarCluster.spec.broker.sets[key].sidecars[index].lifecycle.preStop @@ -41193,80 +46616,38 @@ Autoscaling config. - exec + exec object
false - failureThreshold - integer - -
- - false - - grpc + httpGet object
false - httpGet + sleep object
false - initialDelaySeconds - integer - -
- - false - - periodSeconds - integer - -
- - false - - successThreshold - integer - -
- - false - - tcpSocket + tcpSocket object
false - - terminationGracePeriodSeconds - integer - -
- - false - - timeoutSeconds - integer - -
- - false -### PulsarCluster.spec.broker.sets[key].initContainers[index].startupProbe.exec +### PulsarCluster.spec.broker.sets[key].sidecars[index].lifecycle.preStop.exec @@ -41292,40 +46673,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].initContainers[index].startupProbe.grpc - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
portinteger -
-
false
servicestring -
-
false
- - -### PulsarCluster.spec.broker.sets[key].initContainers[index].startupProbe.httpGet +### PulsarCluster.spec.broker.sets[key].sidecars[index].lifecycle.preStop.httpGet @@ -41348,7 +46696,7 @@ Autoscaling config. false - httpHeaders + httpHeaders []object
@@ -41379,7 +46727,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].initContainers[index].startupProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.broker.sets[key].sidecars[index].lifecycle.preStop.httpGet.httpHeaders[index] @@ -41412,7 +46760,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].initContainers[index].startupProbe.tcpSocket +### PulsarCluster.spec.broker.sets[key].sidecars[index].lifecycle.preStop.sleep @@ -41428,15 +46776,8 @@ Autoscaling config. - host - string - -
- - false - - port - int or string + seconds + integer
@@ -41445,7 +46786,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].initContainers[index].volumeDevices[index] +### PulsarCluster.spec.broker.sets[key].sidecars[index].lifecycle.preStop.tcpSocket @@ -41461,15 +46802,15 @@ Autoscaling config. - devicePath + host string
false - name - string + port + int or string
@@ -41478,7 +46819,7 @@ Autoscaling config. -### PulsarCluster.spec.broker.sets[key].initContainers[index].volumeMounts[index] +### PulsarCluster.spec.broker.sets[key].sidecars[index].livenessProbe @@ -41494,109 +46835,71 @@ Autoscaling config. - mountPath - string + exec + object
false - mountPropagation - string + failureThreshold + integer
false - name - string + grpc + object
false - readOnly - boolean + httpGet + object
false - subPath - string + initialDelaySeconds + integer
false - subPathExpr - string + periodSeconds + integer
false - - - - -### PulsarCluster.spec.broker.sets[key].kafka - - - -Enable Kafka protocol. - - - - - - - - - - - - - + + + - - + + - -
NameTypeDescriptionRequired
enabledboolean
successThresholdinteger - Allow the cluster to accept Kafka protocol. Default is 'false'.
+
false
exposePortsbooleantcpSocketobject - Expose the kafka protocol port.
+
false
- - -### PulsarCluster.spec.broker.sets[key].nodeAffinity - - - -Node affinity configuration. - - - - - - - - - - - - - + + + - - + + @@ -41605,7 +46908,7 @@ Node affinity configuration.
NameTypeDescriptionRequired
preferredDuringSchedulingIgnoredDuringExecution[]object
terminationGracePeriodSecondsinteger
false
requiredDuringSchedulingIgnoredDuringExecutionobjecttimeoutSecondsinteger
-### PulsarCluster.spec.broker.sets[key].nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index] +### PulsarCluster.spec.broker.sets[key].sidecars[index].livenessProbe.exec @@ -41621,15 +46924,8 @@ Node affinity configuration. - preference - object - -
- - false - - weight - integer + command + []string
@@ -41638,7 +46934,7 @@ Node affinity configuration. -### PulsarCluster.spec.broker.sets[key].nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference +### PulsarCluster.spec.broker.sets[key].sidecars[index].livenessProbe.grpc @@ -41654,15 +46950,15 @@ Node affinity configuration. - matchExpressions - []object + port + integer
false - matchFields - []object + service + string
@@ -41671,7 +46967,7 @@ Node affinity configuration. -### PulsarCluster.spec.broker.sets[key].nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference.matchExpressions[index] +### PulsarCluster.spec.broker.sets[key].sidecars[index].livenessProbe.httpGet @@ -41687,62 +46983,36 @@ Node affinity configuration. - key + host string
false - operator - string + httpHeaders + []object
false - values - []string - -
- - false - - - - -### PulsarCluster.spec.broker.sets[key].nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference.matchFields[index] - - - - - - - - - - - - - - - - + - - + + - - + + @@ -41751,7 +47021,7 @@ Node affinity configuration.
NameTypeDescriptionRequired
keypath string
false
operatorstringportint or string
false
values[]stringschemestring
-### PulsarCluster.spec.broker.sets[key].nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution +### PulsarCluster.spec.broker.sets[key].sidecars[index].livenessProbe.httpGet.httpHeaders[index] @@ -41767,8 +47037,15 @@ Node affinity configuration. - nodeSelectorTerms - []object + name + string + +
+ + false + + value + string
@@ -41777,7 +47054,7 @@ Node affinity configuration. -### PulsarCluster.spec.broker.sets[key].nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index] +### PulsarCluster.spec.broker.sets[key].sidecars[index].livenessProbe.tcpSocket @@ -41793,15 +47070,15 @@ Node affinity configuration. - matchExpressions - []object + host + string
false - matchFields - []object + port + int or string
@@ -41810,7 +47087,7 @@ Node affinity configuration. -### PulsarCluster.spec.broker.sets[key].nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index].matchExpressions[index] +### PulsarCluster.spec.broker.sets[key].sidecars[index].ports[index] @@ -41826,22 +47103,36 @@ Node affinity configuration. - key + containerPort + integer + +
+ + false + + hostIP string
false - operator + hostPort + integer + +
+ + false + + name string
false - values - []string + protocol + string
@@ -41850,7 +47141,7 @@ Node affinity configuration. -### PulsarCluster.spec.broker.sets[key].nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index].matchFields[index] +### PulsarCluster.spec.broker.sets[key].sidecars[index].readinessProbe @@ -41866,22 +47157,71 @@ Node affinity configuration. - key - string + exec + object
false - operator - string + failureThreshold + integer
false - values - []string + grpc + object + +
+ + false + + httpGet + object + +
+ + false + + initialDelaySeconds + integer + +
+ + false + + periodSeconds + integer + +
+ + false + + successThreshold + integer + +
+ + false + + tcpSocket + object + +
+ + false + + terminationGracePeriodSeconds + integer + +
+ + false + + timeoutSeconds + integer
@@ -41890,11 +47230,11 @@ Node affinity configuration. -### PulsarCluster.spec.broker.sets[key].pdb +### PulsarCluster.spec.broker.sets[key].sidecars[index].readinessProbe.exec + -Pod disruption budget configuration. @@ -41906,28 +47246,21 @@ Pod disruption budget configuration. - - - - - - - + +
enabledboolean - Enable Pdb policy.
-
false
maxUnavailableintegercommand[]string - Number of maxUnavailable pods.
+
false
-### PulsarCluster.spec.broker.sets[key].probes +### PulsarCluster.spec.broker.sets[key].sidecars[index].readinessProbe.grpc + -Liveness and readiness probes configuration. @@ -41939,42 +47272,28 @@ Liveness and readiness probes configuration. - - - - - - - - - - - - + + - - + +
livenessobject - Liveness probe configuration.
-
false
readinessobject - Readiness probe configuration.
-
false
useHealthCheckForLivenessbooleanportinteger - Use healthcheck for the liveness probe. If false, the /metrics endpoint will be used.
+
false
useHealthCheckForReadinessbooleanservicestring - Use healthcheck for the readiness probe. If false, the /metrics endpoint will be used.
+
false
-### PulsarCluster.spec.broker.sets[key].probes.liveness +### PulsarCluster.spec.broker.sets[key].sidecars[index].readinessProbe.httpGet + -Liveness probe configuration. @@ -41986,63 +47305,49 @@ Liveness probe configuration. - - - - - - - - - - - - + + - - + + - - + + - - + + - - + +
enabledboolean - Enables the probe.
-
false
failureThresholdinteger - Failure threshold.
-
false
initialDelaySecondsintegerhoststring - Indicates the initial delay (in seconds) for the probe.
+
false
periodSecondsintegerhttpHeaders[]object - Indicates the period (in seconds) for the probe.
+
false
successThresholdintegerpathstring - Success threshold.
+
false
terminationGracePeriodSecondsintegerportint or string - Indicates the termination grace period (in seconds) for the probe.
+
false
timeoutSecondsintegerschemestring - Indicates the timeout (in seconds) for the probe.
+
false
-### PulsarCluster.spec.broker.sets[key].probes.readiness +### PulsarCluster.spec.broker.sets[key].sidecars[index].readinessProbe.httpGet.httpHeaders[index] + -Readiness probe configuration. @@ -42054,63 +47359,28 @@ Readiness probe configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + +
enabledboolean - Enables the probe.
-
false
failureThresholdinteger - Failure threshold.
-
false
initialDelaySecondsinteger - Indicates the initial delay (in seconds) for the probe.
-
false
periodSecondsinteger - Indicates the period (in seconds) for the probe.
-
false
successThresholdinteger - Success threshold.
-
false
terminationGracePeriodSecondsintegernamestring - Indicates the termination grace period (in seconds) for the probe.
+
false
timeoutSecondsintegervaluestring - Indicates the timeout (in seconds) for the probe.
+
false
-### PulsarCluster.spec.broker.sets[key].resources +### PulsarCluster.spec.broker.sets[key].sidecars[index].readinessProbe.tcpSocket + -Resources requirements. @@ -42122,15 +47392,15 @@ Resources requirements. - - + + - - + + @@ -42139,11 +47409,11 @@ Resources requirements.
limitsmap[string]int or stringhoststring
false
requestsmap[string]int or stringportint or string
-### PulsarCluster.spec.broker.sets[key].service +### PulsarCluster.spec.broker.sets[key].sidecars[index].resizePolicy[index] + -Service configuration. @@ -42155,31 +47425,24 @@ Service configuration. - - - - - - - + + - +
additionalPorts[]object - Additional ports to add to the Service.
-
false
annotationsmap[string]stringresourceNamestring - Additional annotations to add to the Service.
+
false
typerestartPolicy string - Service type. Default value is 'ClusterIP'
+
false
-### PulsarCluster.spec.broker.sets[key].service.additionalPorts[index] +### PulsarCluster.spec.broker.sets[key].sidecars[index].resources @@ -42195,43 +47458,55 @@ Service configuration. - appProtocol - string - -
- - false - - name - string + claims + []object
false - nodePort - integer + limits + map[string]int or string
false - port - integer + requests + map[string]int or string
false - - protocol + + + + +### PulsarCluster.spec.broker.sets[key].sidecars[index].resources.claims[index] + + + + + + + + + + + + + + + + - - + + @@ -42240,7 +47515,7 @@ Service configuration.
NameTypeDescriptionRequired
name string
false
targetPortint or stringrequeststring
-### PulsarCluster.spec.broker.sets[key].sidecars[index] +### PulsarCluster.spec.broker.sets[key].sidecars[index].securityContext @@ -42256,154 +47531,230 @@ Service configuration. - args - []string + allowPrivilegeEscalation + boolean
false - command - []string + appArmorProfile + object
false - env - []object + capabilities + object
false - envFrom - []object + privileged + boolean
false - image + procMount string
false - imagePullPolicy - string + readOnlyRootFilesystem + boolean
false - lifecycle - object + runAsGroup + integer
false - livenessProbe - object + runAsNonRoot + boolean
false - name - string + runAsUser + integer
false - ports - []object + seLinuxOptions + object
false - readinessProbe + seccompProfile object
false - resources + windowsOptions object
false - - securityContext - object + + + + +### PulsarCluster.spec.broker.sets[key].sidecars[index].securityContext.appArmorProfile + + + + + + + + + + + + + + + + + - - + + - - - + +
NameTypeDescriptionRequired
localhostProfilestring
false
startupProbeobjecttypestring
false
stdinboolean
+ + +### PulsarCluster.spec.broker.sets[key].sidecars[index].securityContext.capabilities + + + + + + + + + + + + + + + + + - - + + - - + +
NameTypeDescriptionRequired
add[]string
false
stdinOncebooleandrop[]string
false
terminationMessagePath
+ + +### PulsarCluster.spec.broker.sets[key].sidecars[index].securityContext.seLinuxOptions + + + + + + + + + + + + + + + + - + - - + + - - + + - - - + +
NameTypeDescriptionRequired
level string
false
terminationMessagePolicyrole string
false
ttybooleantypestring
false
volumeDevices[]objectuserstring
false
volumeMounts[]object
+ + +### PulsarCluster.spec.broker.sets[key].sidecars[index].securityContext.seccompProfile + + + + + + + + + + + + + + + + + - +
NameTypeDescriptionRequired
localhostProfilestring
false
workingDirtype string
@@ -42413,7 +47764,7 @@ Service configuration.
-### PulsarCluster.spec.broker.sets[key].sidecars[index].env[index] +### PulsarCluster.spec.broker.sets[key].sidecars[index].securityContext.windowsOptions @@ -42429,22 +47780,29 @@ Service configuration. - name + gmsaCredentialSpec string
false - value + gmsaCredentialSpecName string
false - valueFrom - object + hostProcess + boolean + +
+ + false + + runAsUserName + string
@@ -42453,7 +47811,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].env[index].valueFrom +### PulsarCluster.spec.broker.sets[key].sidecars[index].startupProbe @@ -42469,38 +47827,80 @@ Service configuration. - configMapKeyRef + exec object
false - fieldRef + failureThreshold + integer + +
+ + false + + grpc object
false - resourceFieldRef + httpGet object
false - secretKeyRef + initialDelaySeconds + integer + +
+ + false + + periodSeconds + integer + +
+ + false + + successThreshold + integer + +
+ + false + + tcpSocket object
false + + terminationGracePeriodSeconds + integer + +
+ + false + + timeoutSeconds + integer + +
+ + false -### PulsarCluster.spec.broker.sets[key].sidecars[index].env[index].valueFrom.configMapKeyRef +### PulsarCluster.spec.broker.sets[key].sidecars[index].startupProbe.exec @@ -42516,22 +47916,8 @@ Service configuration. - key - string - -
- - false - - name - string - -
- - false - - optional - boolean + command + []string
@@ -42540,7 +47926,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].env[index].valueFrom.fieldRef +### PulsarCluster.spec.broker.sets[key].sidecars[index].startupProbe.grpc @@ -42556,14 +47942,14 @@ Service configuration. - apiVersion - string + port + integer
false - fieldPath + service string
@@ -42573,7 +47959,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].env[index].valueFrom.resourceFieldRef +### PulsarCluster.spec.broker.sets[key].sidecars[index].startupProbe.httpGet @@ -42589,21 +47975,35 @@ Service configuration. - containerName + host string
false - divisor + httpHeaders + []object + +
+ + false + + path + string + +
+ + false + + port int or string
false - resource + scheme string
@@ -42613,7 +48013,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].env[index].valueFrom.secretKeyRef +### PulsarCluster.spec.broker.sets[key].sidecars[index].startupProbe.httpGet.httpHeaders[index] @@ -42628,14 +48028,7 @@ Service configuration. Required - - key - string - -
- - false - + name string @@ -42643,8 +48036,8 @@ Service configuration. false - optional - boolean + value + string
@@ -42653,7 +48046,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].envFrom[index] +### PulsarCluster.spec.broker.sets[key].sidecars[index].startupProbe.tcpSocket @@ -42669,22 +48062,15 @@ Service configuration. - configMapRef - object - -
- - false - - prefix + host string
false - secretRef - object + port + int or string
@@ -42693,7 +48079,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].envFrom[index].configMapRef +### PulsarCluster.spec.broker.sets[key].sidecars[index].volumeDevices[index] @@ -42709,15 +48095,15 @@ Service configuration. - name + devicePath string
false - optional - boolean + name + string
@@ -42726,7 +48112,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].envFrom[index].secretRef +### PulsarCluster.spec.broker.sets[key].sidecars[index].volumeMounts[index] @@ -42742,6 +48128,20 @@ Service configuration. + mountPath + string + +
+ + false + + mountPropagation + string + +
+ + false + name string @@ -42749,17 +48149,38 @@ Service configuration. false - optional + readOnly boolean
false + + recursiveReadOnly + string + +
+ + false + + subPath + string + +
+ + false + + subPathExpr + string + +
+ + false -### PulsarCluster.spec.broker.sets[key].sidecars[index].lifecycle +### PulsarCluster.spec.broker.sets[key].tolerations[index] @@ -42775,15 +48196,36 @@ Service configuration. - postStart - object + effect + string
false - preStop - object + key + string + +
+ + false + + operator + string + +
+ + false + + tolerationSeconds + integer + +
+ + false + + value + string
@@ -42792,11 +48234,11 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].lifecycle.postStart - +### PulsarCluster.spec.broker.sets[key].transactions +Enable transactions in the broker. @@ -42808,35 +48250,35 @@ Service configuration. - - + + - + - - + +
execobjectenabledboolean -
+ Initialize the transaction coordinator if it's not yet and configure the broker to accept transactions.
false
httpGetinitJob object -
+ Config for the init job.
false
tcpSocketobjectpartitionsinteger -
+ Number of coordinators to create.
false
-### PulsarCluster.spec.broker.sets[key].sidecars[index].lifecycle.postStart.exec - +### PulsarCluster.spec.broker.sets[key].transactions.initJob +Config for the init job. @@ -42848,21 +48290,21 @@ Service configuration. - - + +
command[]stringresourcesobject -
+ Resources requirements.
false
-### PulsarCluster.spec.broker.sets[key].sidecars[index].lifecycle.postStart.httpGet - +### PulsarCluster.spec.broker.sets[key].transactions.initJob.resources +Resources requirements. @@ -42874,36 +48316,22 @@ Service configuration. - - - - - - + - - - - - - - + + - - + + @@ -42912,7 +48340,7 @@ Service configuration.
hoststring -
-
false
httpHeadersclaims []object
false
pathstring -
-
false
portint or stringlimitsmap[string]int or string
false
schemestringrequestsmap[string]int or string
-### PulsarCluster.spec.broker.sets[key].sidecars[index].lifecycle.postStart.httpGet.httpHeaders[index] +### PulsarCluster.spec.broker.sets[key].transactions.initJob.resources.claims[index] @@ -42935,7 +48363,7 @@ Service configuration. false - value + request string
@@ -42945,11 +48373,11 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].lifecycle.postStart.tcpSocket - +### PulsarCluster.spec.broker.sets[key].updateStrategy +Update strategy for the StatefulSet. @@ -42961,15 +48389,15 @@ Service configuration. - - + + - - + + @@ -42978,7 +48406,7 @@ Service configuration.
hoststringrollingUpdateobject
false
portint or stringtypestring
-### PulsarCluster.spec.broker.sets[key].sidecars[index].lifecycle.preStop +### PulsarCluster.spec.broker.sets[key].updateStrategy.rollingUpdate @@ -42994,22 +48422,15 @@ Service configuration. - exec - object - -
- - false - - httpGet - object + maxUnavailable + int or string
false - tcpSocket - object + partition + integer
@@ -43018,7 +48439,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].lifecycle.preStop.exec +### PulsarCluster.spec.broker.sidecars[index] @@ -43034,94 +48455,168 @@ Service configuration. + args + []string + +
+ + false + command []string
false - - - - -### PulsarCluster.spec.broker.sets[key].sidecars[index].lifecycle.preStop.httpGet - - - - - - - - - - - - - - - - + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + - - + + - + + + + + + + + + + + + + + + + - -
NameTypeDescriptionRequired
host
env[]object +
+
false
envFrom[]object +
+
false
image string
false
httpHeadersimagePullPolicystring +
+
false
lifecycleobject +
+
false
livenessProbeobject +
+
false
namestring +
+
false
ports []object
false
pathreadinessProbeobject +
+
false
resizePolicy[]object +
+
false
resourcesobject +
+
false
restartPolicy string
false
portint or stringsecurityContextobject
false
schemestartupProbeobject +
+
false
stdinboolean +
+
false
stdinOnceboolean +
+
false
terminationMessagePath string
false
- - -### PulsarCluster.spec.broker.sets[key].sidecars[index].lifecycle.preStop.httpGet.httpHeaders[index] - - - - - - - - - - - - - - - - + + - + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
name
terminationMessagePolicy string
false
valuettyboolean +
+
false
volumeDevices[]object +
+
false
volumeMounts[]object +
+
false
workingDir string
@@ -43131,7 +48626,7 @@ Service configuration.
-### PulsarCluster.spec.broker.sets[key].sidecars[index].lifecycle.preStop.tcpSocket +### PulsarCluster.spec.broker.sidecars[index].env[index] @@ -43147,15 +48642,22 @@ Service configuration. - host + name string
false - port - int or string + value + string + +
+ + false + + valueFrom + object
@@ -43164,7 +48666,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].livenessProbe +### PulsarCluster.spec.broker.sidecars[index].env[index].valueFrom @@ -43180,71 +48682,69 @@ Service configuration. - exec + configMapKeyRef object
false - failureThreshold - integer - -
- - false - - grpc + fieldRef object
false - httpGet + resourceFieldRef object
false - initialDelaySeconds - integer - -
- - false - - periodSeconds - integer - -
- - false - - successThreshold - integer + secretKeyRef + object
false - - tcpSocket - object + + + + +### PulsarCluster.spec.broker.sidecars[index].env[index].valueFrom.configMapKeyRef + + + + + + + + + + + + + + + + + - - + + - - + + @@ -43253,7 +48753,7 @@ Service configuration.
NameTypeDescriptionRequired
keystring
false
terminationGracePeriodSecondsintegernamestring
false
timeoutSecondsintegeroptionalboolean
-### PulsarCluster.spec.broker.sets[key].sidecars[index].livenessProbe.exec +### PulsarCluster.spec.broker.sidecars[index].env[index].valueFrom.fieldRef @@ -43269,8 +48769,15 @@ Service configuration. - command - []string + apiVersion + string + +
+ + false + + fieldPath + string
@@ -43279,7 +48786,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].livenessProbe.grpc +### PulsarCluster.spec.broker.sidecars[index].env[index].valueFrom.resourceFieldRef @@ -43295,14 +48802,21 @@ Service configuration. - port - integer + containerName + string
false - service + divisor + int or string + +
+ + false + + resource string
@@ -43312,7 +48826,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].livenessProbe.httpGet +### PulsarCluster.spec.broker.sidecars[index].env[index].valueFrom.secretKeyRef @@ -43328,45 +48842,71 @@ Service configuration. - host + key string
false - httpHeaders - []object + name + string
false - path - string + optional + boolean
false - - port - int or string + + + + +### PulsarCluster.spec.broker.sidecars[index].envFrom[index] + + + + + + + + + + + + + + + + + - + + + + + +
NameTypeDescriptionRequired
configMapRefobject
false
schemeprefix string
false
secretRefobject +
+
false
-### PulsarCluster.spec.broker.sets[key].sidecars[index].livenessProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.broker.sidecars[index].envFrom[index].configMapRef @@ -43389,8 +48929,8 @@ Service configuration. false - value - string + optional + boolean
@@ -43399,7 +48939,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].livenessProbe.tcpSocket +### PulsarCluster.spec.broker.sidecars[index].envFrom[index].secretRef @@ -43415,15 +48955,15 @@ Service configuration. - host + name string
false - port - int or string + optional + boolean
@@ -43432,7 +48972,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].ports[index] +### PulsarCluster.spec.broker.sidecars[index].lifecycle @@ -43448,35 +48988,21 @@ Service configuration. - containerPort - integer - -
- - false - - hostIP - string - -
- - false - - hostPort - integer + postStart + object
false - name - string + preStop + object
false - protocol + stopSignal string
@@ -43486,7 +49012,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].readinessProbe +### PulsarCluster.spec.broker.sidecars[index].lifecycle.postStart @@ -43502,80 +49028,38 @@ Service configuration. - exec + exec object
false - failureThreshold - integer - -
- - false - - grpc + httpGet object
false - httpGet + sleep object
false - initialDelaySeconds - integer - -
- - false - - periodSeconds - integer - -
- - false - - successThreshold - integer - -
- - false - - tcpSocket + tcpSocket object
false - - terminationGracePeriodSeconds - integer - -
- - false - - timeoutSeconds - integer - -
- - false -### PulsarCluster.spec.broker.sets[key].sidecars[index].readinessProbe.exec +### PulsarCluster.spec.broker.sidecars[index].lifecycle.postStart.exec @@ -43601,40 +49085,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].readinessProbe.grpc - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
portinteger -
-
false
servicestring -
-
false
- - -### PulsarCluster.spec.broker.sets[key].sidecars[index].readinessProbe.httpGet +### PulsarCluster.spec.broker.sidecars[index].lifecycle.postStart.httpGet @@ -43657,7 +49108,7 @@ Service configuration. false - httpHeaders + httpHeaders []object
@@ -43688,7 +49139,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].readinessProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.broker.sidecars[index].lifecycle.postStart.httpGet.httpHeaders[index] @@ -43721,7 +49172,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].readinessProbe.tcpSocket +### PulsarCluster.spec.broker.sidecars[index].lifecycle.postStart.sleep @@ -43737,15 +49188,8 @@ Service configuration. - host - string - -
- - false - - port - int or string + seconds + integer
@@ -43754,7 +49198,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].resources +### PulsarCluster.spec.broker.sidecars[index].lifecycle.postStart.tcpSocket @@ -43770,15 +49214,15 @@ Service configuration. - limits - map[string]int or string + host + string
false - requests - map[string]int or string + port + int or string
@@ -43787,7 +49231,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].securityContext +### PulsarCluster.spec.broker.sidecars[index].lifecycle.preStop @@ -43803,77 +49247,28 @@ Service configuration. - allowPrivilegeEscalation - boolean - -
- - false - - capabilities + exec object
false - privileged - boolean - -
- - false - - procMount - string - -
- - false - - readOnlyRootFilesystem - boolean - -
- - false - - runAsGroup - integer - -
- - false - - runAsNonRoot - boolean - -
- - false - - runAsUser - integer - -
- - false - - seLinuxOptions + httpGet object
false - seccompProfile + sleep object
false - windowsOptions + tcpSocket object
@@ -43883,7 +49278,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].securityContext.capabilities +### PulsarCluster.spec.broker.sidecars[index].lifecycle.preStop.exec @@ -43899,14 +49294,7 @@ Service configuration. - add - []string - -
- - false - - drop + command []string
@@ -43916,7 +49304,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].securityContext.seLinuxOptions +### PulsarCluster.spec.broker.sidecars[index].lifecycle.preStop.httpGet @@ -43932,28 +49320,35 @@ Service configuration. - level + host string
false - role - string + httpHeaders + []object
false - type + path string
false - user + port + int or string + +
+ + false + + scheme string
@@ -43963,7 +49358,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].securityContext.seccompProfile +### PulsarCluster.spec.broker.sidecars[index].lifecycle.preStop.httpGet.httpHeaders[index] @@ -43979,14 +49374,14 @@ Service configuration. - localhostProfile + name string
false - type + value string
@@ -43996,7 +49391,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].securityContext.windowsOptions +### PulsarCluster.spec.broker.sidecars[index].lifecycle.preStop.sleep @@ -44012,29 +49407,41 @@ Service configuration. - gmsaCredentialSpec - string + seconds + integer
false - - gmsaCredentialSpecName + + + + +### PulsarCluster.spec.broker.sidecars[index].lifecycle.preStop.tcpSocket + + + + + + + + + + + + + + + + - - - - - - - + + @@ -44043,7 +49450,7 @@ Service configuration.
NameTypeDescriptionRequired
host string
false
hostProcessboolean -
-
false
runAsUserNamestringportint or string
-### PulsarCluster.spec.broker.sets[key].sidecars[index].startupProbe +### PulsarCluster.spec.broker.sidecars[index].livenessProbe @@ -44059,7 +49466,7 @@ Service configuration. - exec + exec object
@@ -44073,14 +49480,14 @@ Service configuration. false - grpc + grpc object
false - httpGet + httpGet object
@@ -44108,7 +49515,7 @@ Service configuration. false - tcpSocket + tcpSocket object
@@ -44132,7 +49539,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].startupProbe.exec +### PulsarCluster.spec.broker.sidecars[index].livenessProbe.exec @@ -44158,7 +49565,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].startupProbe.grpc +### PulsarCluster.spec.broker.sidecars[index].livenessProbe.grpc @@ -44191,7 +49598,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].startupProbe.httpGet +### PulsarCluster.spec.broker.sidecars[index].livenessProbe.httpGet @@ -44214,7 +49621,7 @@ Service configuration. false - httpHeaders + httpHeaders []object
@@ -44245,7 +49652,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].startupProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.broker.sidecars[index].livenessProbe.httpGet.httpHeaders[index] @@ -44269,40 +49676,7 @@ Service configuration. false value - string - -
- - false - - - - -### PulsarCluster.spec.broker.sets[key].sidecars[index].startupProbe.tcpSocket - - - - - - - - - - - - - - - - - - - - - - + @@ -44311,7 +49685,7 @@ Service configuration.
NameTypeDescriptionRequired
hoststring -
-
false
portint or stringstring
-### PulsarCluster.spec.broker.sets[key].sidecars[index].volumeDevices[index] +### PulsarCluster.spec.broker.sidecars[index].livenessProbe.tcpSocket @@ -44327,15 +49701,15 @@ Service configuration. - devicePath + host string
false - name - string + port + int or string
@@ -44344,7 +49718,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].sidecars[index].volumeMounts[index] +### PulsarCluster.spec.broker.sidecars[index].ports[index] @@ -44360,42 +49734,35 @@ Service configuration. - mountPath - string - -
- - false - - mountPropagation - string + containerPort + integer
false - name + hostIP string
false - readOnly - boolean + hostPort + integer
false - subPath + name string
false - subPathExpr + protocol string
@@ -44405,7 +49772,7 @@ Service configuration. -### PulsarCluster.spec.broker.sets[key].tolerations[index] +### PulsarCluster.spec.broker.sidecars[index].readinessProbe @@ -44421,89 +49788,84 @@ Service configuration. - effect - string + exec + object
false - key - string + failureThreshold + integer
false - operator - string + grpc + object
false - tolerationSeconds + httpGet + object + +
+ + false + + initialDelaySeconds integer
false - value - string + periodSeconds + integer
false - - - - -### PulsarCluster.spec.broker.sets[key].transactions - - - -Enable transactions in the broker. - - - - - - - - - - - - - + + + - + - + + + + + +
NameTypeDescriptionRequired
enabledboolean
successThresholdinteger - Initialize the transaction coordinator if it's not yet and configure the broker to accept transactions.
+
false
initJobtcpSocket object - Config for the init job.
+
false
partitionsterminationGracePeriodSeconds integer - Number of coordinators to create.
+
+
false
timeoutSecondsinteger +
false
-### PulsarCluster.spec.broker.sets[key].transactions.initJob +### PulsarCluster.spec.broker.sidecars[index].readinessProbe.exec + -Config for the init job. @@ -44515,21 +49877,21 @@ Config for the init job. - - + +
resourcesobjectcommand[]string - Resources requirements.
+
false
-### PulsarCluster.spec.broker.sets[key].transactions.initJob.resources +### PulsarCluster.spec.broker.sidecars[index].readinessProbe.grpc + -Resources requirements. @@ -44541,15 +49903,15 @@ Resources requirements. - - + + - - + + @@ -44558,11 +49920,11 @@ Resources requirements.
limitsmap[string]int or stringportinteger
false
requestsmap[string]int or stringservicestring
-### PulsarCluster.spec.broker.sets[key].updateStrategy +### PulsarCluster.spec.broker.sidecars[index].readinessProbe.httpGet + -Update strategy for the StatefulSet. @@ -44574,14 +49936,35 @@ Update strategy for the StatefulSet. - - + + - + + + + + + + + + + + + + + + +
rollingUpdateobjecthoststring
false
typehttpHeaders[]object +
+
false
pathstring +
+
false
portint or string +
+
false
scheme string
@@ -44591,7 +49974,7 @@ Update strategy for the StatefulSet.
-### PulsarCluster.spec.broker.sets[key].updateStrategy.rollingUpdate +### PulsarCluster.spec.broker.sidecars[index].readinessProbe.httpGet.httpHeaders[index] @@ -44607,15 +49990,15 @@ Update strategy for the StatefulSet. - maxUnavailable - int or string + name + string
false - partition - integer + value + string
@@ -44624,7 +50007,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index] +### PulsarCluster.spec.broker.sidecars[index].readinessProbe.tcpSocket @@ -44640,62 +50023,112 @@ Update strategy for the StatefulSet. - args - []string - -
- - false - - command - []string + host + string
false - env - []object + port + int or string
false - - envFrom - []object + + + + +### PulsarCluster.spec.broker.sidecars[index].resizePolicy[index] + + + + + + + + + + + + + + + + + - + - - - + +
NameTypeDescriptionRequired
resourceNamestring
false
imagerestartPolicy string
false
imagePullPolicystring
+ + +### PulsarCluster.spec.broker.sidecars[index].resources + + + + + + + + + + + + + + + + + - - + + - - + + - + +
NameTypeDescriptionRequired
claims[]object
false
lifecycleobjectlimitsmap[string]int or string
false
livenessProbeobjectrequestsmap[string]int or string
false
+ + +### PulsarCluster.spec.broker.sidecars[index].resources.claims[index] + + + + + + + + + + + + + + + - - + + - - - + +
NameTypeDescriptionRequired
name string @@ -44703,92 +50136,111 @@ Update strategy for the StatefulSet. false
ports[]objectrequeststring
false
readinessProbeobject
+ + +### PulsarCluster.spec.broker.sidecars[index].securityContext + + + + + + + + + + + + + + + + + - + - + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + @@ -44797,7 +50249,7 @@ Update strategy for the StatefulSet.
NameTypeDescriptionRequired
allowPrivilegeEscalationboolean
false
resourcesappArmorProfile object
false
securityContextcapabilities object
false
startupProbeobjectprivilegedboolean
false
stdinbooleanprocMountstring
false
stdinOncereadOnlyRootFilesystem boolean
false
terminationMessagePathstringrunAsGroupinteger
false
terminationMessagePolicystringrunAsNonRootboolean
false
ttybooleanrunAsUserinteger
false
volumeDevices[]objectseLinuxOptionsobject
false
volumeMounts[]objectseccompProfileobject
false
workingDirstringwindowsOptionsobject
-### PulsarCluster.spec.broker.sidecars[index].env[index] +### PulsarCluster.spec.broker.sidecars[index].securityContext.appArmorProfile @@ -44813,31 +50265,24 @@ Update strategy for the StatefulSet. - name + localhostProfile string
false - value + type string
false - - valueFrom - object - -
- - false -### PulsarCluster.spec.broker.sidecars[index].env[index].valueFrom +### PulsarCluster.spec.broker.sidecars[index].securityContext.capabilities @@ -44853,29 +50298,15 @@ Update strategy for the StatefulSet. - configMapKeyRef - object - -
- - false - - fieldRef - object - -
- - false - - resourceFieldRef - object + add + []string
false - secretKeyRef - object + drop + []string
@@ -44884,7 +50315,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].env[index].valueFrom.configMapKeyRef +### PulsarCluster.spec.broker.sidecars[index].securityContext.seLinuxOptions @@ -44900,22 +50331,29 @@ Update strategy for the StatefulSet. - key + level string
false - name + role string
false - optional - boolean + type + string + +
+ + false + + user + string
@@ -44924,7 +50362,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].env[index].valueFrom.fieldRef +### PulsarCluster.spec.broker.sidecars[index].securityContext.seccompProfile @@ -44940,14 +50378,14 @@ Update strategy for the StatefulSet. - apiVersion + localhostProfile string
false - fieldPath + type string
@@ -44957,7 +50395,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].env[index].valueFrom.resourceFieldRef +### PulsarCluster.spec.broker.sidecars[index].securityContext.windowsOptions @@ -44973,21 +50411,28 @@ Update strategy for the StatefulSet. - containerName + gmsaCredentialSpec string
false - divisor - int or string + gmsaCredentialSpecName + string
false - resource + hostProcess + boolean + +
+ + false + + runAsUserName string
@@ -44997,7 +50442,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].env[index].valueFrom.secretKeyRef +### PulsarCluster.spec.broker.sidecars[index].startupProbe @@ -45013,22 +50458,71 @@ Update strategy for the StatefulSet. - key - string + exec + object
false - name - string + failureThreshold + integer
false - optional - boolean + grpc + object + +
+ + false + + httpGet + object + +
+ + false + + initialDelaySeconds + integer + +
+ + false + + periodSeconds + integer + +
+ + false + + successThreshold + integer + +
+ + false + + tcpSocket + object + +
+ + false + + terminationGracePeriodSeconds + integer + +
+ + false + + timeoutSeconds + integer
@@ -45037,7 +50531,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].envFrom[index] +### PulsarCluster.spec.broker.sidecars[index].startupProbe.exec @@ -45053,22 +50547,8 @@ Update strategy for the StatefulSet. - configMapRef - object - -
- - false - - prefix - string - -
- - false - - secretRef - object + command + []string
@@ -45077,7 +50557,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].envFrom[index].configMapRef +### PulsarCluster.spec.broker.sidecars[index].startupProbe.grpc @@ -45093,15 +50573,15 @@ Update strategy for the StatefulSet. - name - string + port + integer
false - optional - boolean + service + string
@@ -45110,7 +50590,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].envFrom[index].secretRef +### PulsarCluster.spec.broker.sidecars[index].startupProbe.httpGet @@ -45126,15 +50606,36 @@ Update strategy for the StatefulSet. - name + host + string + +
+ + false + + httpHeaders + []object + +
+ + false + + path string
false - optional - boolean + port + int or string + +
+ + false + + scheme + string
@@ -45143,7 +50644,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].lifecycle +### PulsarCluster.spec.broker.sidecars[index].startupProbe.httpGet.httpHeaders[index] @@ -45159,15 +50660,15 @@ Update strategy for the StatefulSet. - postStart - object + name + string
false - preStop - object + value + string
@@ -45176,7 +50677,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].lifecycle.postStart +### PulsarCluster.spec.broker.sidecars[index].startupProbe.tcpSocket @@ -45192,22 +50693,15 @@ Update strategy for the StatefulSet. - exec - object - -
- - false - - httpGet - object + host + string
false - tcpSocket - object + port + int or string
@@ -45216,7 +50710,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].lifecycle.postStart.exec +### PulsarCluster.spec.broker.sidecars[index].volumeDevices[index] @@ -45232,8 +50726,15 @@ Update strategy for the StatefulSet. - command - []string + devicePath + string + +
+ + false + + name + string
@@ -45242,7 +50743,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].lifecycle.postStart.httpGet +### PulsarCluster.spec.broker.sidecars[index].volumeMounts[index] @@ -45258,68 +50759,49 @@ Update strategy for the StatefulSet. - host + mountPath string
false - httpHeaders - []object + mountPropagation + string
false - path + name string
false - port - int or string + readOnly + boolean
false - scheme + recursiveReadOnly string
false - - - - -### PulsarCluster.spec.broker.sidecars[index].lifecycle.postStart.httpGet.httpHeaders[index] - - - - - - - - - - - - - - - - + + - +
NameTypeDescriptionRequired
name
subPath string
false
valuesubPathExpr string
@@ -45329,7 +50811,7 @@ Update strategy for the StatefulSet.
-### PulsarCluster.spec.broker.sidecars[index].lifecycle.postStart.tcpSocket +### PulsarCluster.spec.broker.tolerations[index] @@ -45345,15 +50827,36 @@ Update strategy for the StatefulSet. - host + effect string
false - port - int or string + key + string + +
+ + false + + operator + string + +
+ + false + + tolerationSeconds + integer + +
+ + false + + value + string
@@ -45362,11 +50865,11 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].lifecycle.preStop - +### PulsarCluster.spec.broker.transactions +Enable transactions in the broker. @@ -45378,35 +50881,35 @@ Update strategy for the StatefulSet. - - + + - + - - + +
execobjectenabledboolean -
+ Initialize the transaction coordinator if it's not yet and configure the broker to accept transactions.
false
httpGetinitJob object -
+ Config for the init job.
false
tcpSocketobjectpartitionsinteger -
+ Number of coordinators to create.
false
-### PulsarCluster.spec.broker.sidecars[index].lifecycle.preStop.exec - +### PulsarCluster.spec.broker.transactions.initJob +Config for the init job. @@ -45418,21 +50921,21 @@ Update strategy for the StatefulSet. - - + +
command[]stringresourcesobject -
+ Resources requirements.
false
-### PulsarCluster.spec.broker.sidecars[index].lifecycle.preStop.httpGet - +### PulsarCluster.spec.broker.transactions.initJob.resources +Resources requirements. @@ -45444,35 +50947,54 @@ Update strategy for the StatefulSet. - - + + - - + + - - + + - - - + +
hoststringclaims[]object
false
httpHeaders[]objectlimitsmap[string]int or string
false
pathstringrequestsmap[string]int or string
false
portint or string
+ + +### PulsarCluster.spec.broker.transactions.initJob.resources.claims[index] + + + + + + + + + + + + + + + + + - +
NameTypeDescriptionRequired
namestring
false
schemerequest string
@@ -45482,11 +51004,11 @@ Update strategy for the StatefulSet.
-### PulsarCluster.spec.broker.sidecars[index].lifecycle.preStop.httpGet.httpHeaders[index] - +### PulsarCluster.spec.broker.updateStrategy +Update strategy for the StatefulSet. @@ -45498,14 +51020,14 @@ Update strategy for the StatefulSet. - - + + - +
namestringrollingUpdateobject
false
valuetype string
@@ -45515,7 +51037,7 @@ Update strategy for the StatefulSet.
-### PulsarCluster.spec.broker.sidecars[index].lifecycle.preStop.tcpSocket +### PulsarCluster.spec.broker.updateStrategy.rollingUpdate @@ -45531,15 +51053,15 @@ Update strategy for the StatefulSet. - host - string + maxUnavailable + int or string
false - port - int or string + partition + integer
@@ -45548,7 +51070,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].livenessProbe +### PulsarCluster.spec.functionsWorker @@ -45564,84 +51086,233 @@ Update strategy for the StatefulSet. - exec + additionalVolumes object -
+ Mount additional volumes to the pod.
false - failureThreshold - integer + annotations + map[string]string -
+ Annotations to add to each resource (except pods).
false - grpc + antiAffinity object -
+ Pod anti-affinity configuration. This override the global value if set.
false - httpGet - object + config + JSON -
+ Configuration.
false - initialDelaySeconds - integer + env + []object -
+ Additional container env variables.
false - periodSeconds + gracePeriod integer + Termination grace period in seconds.

+ Minimum: 0
false - successThreshold - integer + image + string -
+ Override Pulsar image.
false - tcpSocket + imagePullPolicy + string + + Override image pull policy.
+ + false + + imagePullSecrets + []object + + Image pull secrets.
+ + false + + initContainers + []object + + Init containers
+ + false + + labels + map[string]string + + Labels to add to each resource (except pods).
+ + false + + logsVolume object -
+ Volume configuration for export function logs.
false - terminationGracePeriodSeconds + matchLabels + map[string]string + + Match labels selectors to add to each pod.
+ + false + + minReadySeconds integer -
+ Min seconds to wait before considering the pod as ready.
false - timeoutSeconds + nodeAffinity + object + + Node affinity configuration.
+ + false + + nodeSelectors + map[string]string + + Additional node selectors.
+ + false + + pdb + object + + Pod disruption budget configuration.
+ + false + + podAnnotations + map[string]string + + Annotations to add to pod.
+ + false + + podLabels + map[string]string + + Labels to add to each pod.
+ + false + + podManagementPolicy + string + + Pod management policy.
+ + false + + probes + object + + Liveness and readiness probes configuration.
+ + false + + rbac + object + + RBAC config.
+ + false + + replicas integer -
+ Number of desired replicas.
+ + false + + resources + object + + Resources requirements.
+ + false + + runtime + string + + Runtime mode for functions.
+ + false + + securityContext + object + + Subset of PodSecurityContext for basic UID, GID, and volume access control.
+ + false + + service + object + + Service configuration.
+ + false + + serviceAccountName + string + + Service account name for the resource.
+ + false + + sidecars + []object + + Sidecar containers
+ + false + + tolerations + []object + + Pod tolerations.
+ + false + + updateStrategy + object + + Update strategy for the StatefulSet.
false -### PulsarCluster.spec.broker.sidecars[index].livenessProbe.exec - +### PulsarCluster.spec.functionsWorker.additionalVolumes +Mount additional volumes to the pod. @@ -45653,17 +51324,24 @@ Update strategy for the StatefulSet. - - + + + + + + +
command[]stringmounts[]object -
+ Mount points for the additional volumes
+
false
volumes[]object + Additional volumes to be mounted to the pod
false
-### PulsarCluster.spec.broker.sidecars[index].livenessProbe.grpc +### PulsarCluster.spec.functionsWorker.additionalVolumes.mounts[index] @@ -45679,14 +51357,49 @@ Update strategy for the StatefulSet. - port - integer + mountPath + string
false - service + mountPropagation + string + +
+ + false + + name + string + +
+ + false + + readOnly + boolean + +
+ + false + + recursiveReadOnly + string + +
+ + false + + subPath + string + +
+ + false + + subPathExpr string
@@ -45696,7 +51409,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].livenessProbe.httpGet +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index] @@ -45712,142 +51425,134 @@ Update strategy for the StatefulSet. - host - string + awsElasticBlockStore + object + +
+ + false + + azureDisk + object + +
+ + false + + azureFile + object + +
+ + false + + cephfs + object + +
+ + false + + cinder + object + +
+ + false + + configMap + object + +
+ + false + + csi + object + +
+ + false + + downwardAPI + object
false - httpHeaders - []object + emptyDir + object
false - path - string + ephemeral + object
false - port - int or string + fc + object
false - scheme - string + flexVolume + object
false - - - - -### PulsarCluster.spec.broker.sidecars[index].livenessProbe.httpGet.httpHeaders[index] - - - - - - - - - - - - - - - - - + + + - - + + - -
NameTypeDescriptionRequired
namestring
flockerobject
false
valuestringgcePersistentDiskobject
false
- - -### PulsarCluster.spec.broker.sidecars[index].livenessProbe.tcpSocket - - - - - - - - - - - - - - - - - + + + - - + + - -
NameTypeDescriptionRequired
hoststring
gitRepoobject
false
portint or stringglusterfsobject
false
- - -### PulsarCluster.spec.broker.sidecars[index].ports[index] - - - - - - - - - - - - - - - - - + + + - - + + - - + + @@ -45860,97 +51565,78 @@ Update strategy for the StatefulSet. - - + + - -
NameTypeDescriptionRequired
containerPortinteger
hostPathobject
false
hostIPstringimageobject
false
hostPortintegeriscsiobject
false
protocolstringnfsobject
false
- - -### PulsarCluster.spec.broker.sidecars[index].readinessProbe - - - - - - - - - - - - - - - - + + - - + + - + - + - - + + - - + + - - + + - + - - + + - - + + @@ -45959,7 +51645,7 @@ Update strategy for the StatefulSet.
NameTypeDescriptionRequired
exec
persistentVolumeClaim object
false
failureThresholdintegerphotonPersistentDiskobject
false
grpcportworxVolume object
false
httpGetprojected object
false
initialDelaySecondsintegerquobyteobject
false
periodSecondsintegerrbdobject
false
successThresholdintegerscaleIOobject
false
tcpSocketsecret object
false
terminationGracePeriodSecondsintegerstorageosobject
false
timeoutSecondsintegervsphereVolumeobject
-### PulsarCluster.spec.broker.sidecars[index].readinessProbe.exec +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].awsElasticBlockStore @@ -45975,40 +51661,28 @@ Update strategy for the StatefulSet. - command - []string + fsType + string
false - - - - -### PulsarCluster.spec.broker.sidecars[index].readinessProbe.grpc - - - - - - - - - - - - - - - - + + - + + + + + +
NameTypeDescriptionRequired
port
partition integer
false
servicereadOnlyboolean +
+
false
volumeID string
@@ -46018,7 +51692,7 @@ Update strategy for the StatefulSet.
-### PulsarCluster.spec.broker.sidecars[index].readinessProbe.httpGet +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].azureDisk @@ -46034,45 +51708,52 @@ Update strategy for the StatefulSet. - host + cachingMode string
false - httpHeaders - []object + diskName + string
false - path + diskURI string
false - port - int or string + fsType + string
false - scheme + kind string
false + + readOnly + boolean + +
+ + false -### PulsarCluster.spec.broker.sidecars[index].readinessProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].azureFile @@ -46088,14 +51769,21 @@ Update strategy for the StatefulSet. - name + readOnly + boolean + +
+ + false + + secretName string
false - value + shareName string
@@ -46105,7 +51793,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].readinessProbe.tcpSocket +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].cephfs @@ -46121,15 +51809,43 @@ Update strategy for the StatefulSet. - host + monitors + []string + +
+ + false + + path string
false - port - int or string + readOnly + boolean + +
+ + false + + secretFile + string + +
+ + false + + secretRef + object + +
+ + false + + user + string
@@ -46138,7 +51854,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].resources +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].cephfs.secretRef @@ -46154,15 +51870,8 @@ Update strategy for the StatefulSet. - limits - map[string]int or string - -
- - false - - requests - map[string]int or string + name + string
@@ -46171,7 +51880,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].securityContext +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].cinder @@ -46187,78 +51896,29 @@ Update strategy for the StatefulSet. - allowPrivilegeEscalation - boolean - -
- - false - - capabilities - object - -
- - false - - privileged - boolean - -
- - false - - procMount + fsType string
false - readOnlyRootFilesystem - boolean - -
- - false - - runAsGroup - integer - -
- - false - - runAsNonRoot + readOnly boolean
false - runAsUser - integer - -
- - false - - seLinuxOptions - object - -
- - false - - seccompProfile + secretRef object
false - windowsOptions - object + volumeID + string
@@ -46267,7 +51927,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].securityContext.capabilities +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].cinder.secretRef @@ -46283,15 +51943,8 @@ Update strategy for the StatefulSet. - add - []string - -
- - false - - drop - []string + name + string
@@ -46300,7 +51953,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].securityContext.seLinuxOptions +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].configMap @@ -46316,29 +51969,29 @@ Update strategy for the StatefulSet. - level - string + defaultMode + integer
false - role - string + items + []object
false - type + name string
false - user - string + optional + boolean
@@ -46347,7 +52000,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].securityContext.seccompProfile +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].configMap.items[index] @@ -46363,14 +52016,21 @@ Update strategy for the StatefulSet. - localhostProfile + key string
false - type + mode + integer + +
+ + false + + path string
@@ -46380,7 +52040,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].securityContext.windowsOptions +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].csi @@ -46396,29 +52056,36 @@ Update strategy for the StatefulSet. - gmsaCredentialSpec + driver string
false - gmsaCredentialSpecName + fsType string
false - hostProcess + nodePublishSecretRef + object + +
+ + false + + readOnly boolean
false - runAsUserName - string + volumeAttributes + map[string]string
@@ -46427,7 +52094,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].startupProbe +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].csi.nodePublishSecretRef @@ -46443,71 +52110,41 @@ Update strategy for the StatefulSet. - exec - object - -
- - false - - failureThreshold - integer - -
- - false - - grpc - object - -
- - false - - httpGet - object - -
- - false - - initialDelaySeconds - integer - -
- - false - - periodSeconds - integer - -
- - false - - successThreshold - integer - -
- - false - - tcpSocket - object + name + string
false - - terminationGracePeriodSeconds + + + + +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].downwardAPI + + + + + + + + + + + + + + + + - - + + @@ -46516,7 +52153,7 @@ Update strategy for the StatefulSet.
NameTypeDescriptionRequired
defaultMode integer
false
timeoutSecondsintegeritems[]object
-### PulsarCluster.spec.broker.sidecars[index].startupProbe.exec +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].downwardAPI.items[index] @@ -46532,8 +52169,29 @@ Update strategy for the StatefulSet. - command - []string + fieldRef + object + +
+ + false + + mode + integer + +
+ + false + + path + string + +
+ + false + + resourceFieldRef + object
@@ -46542,7 +52200,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].startupProbe.grpc +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].downwardAPI.items[index].fieldRef @@ -46558,14 +52216,14 @@ Update strategy for the StatefulSet. - port - integer + apiVersion + string
false - service + fieldPath string
@@ -46575,7 +52233,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].startupProbe.httpGet +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].downwardAPI.items[index].resourceFieldRef @@ -46591,35 +52249,21 @@ Update strategy for the StatefulSet. - host - string - -
- - false - - httpHeaders - []object - -
- - false - - path + containerName string
false - port + divisor int or string
false - scheme + resource string
@@ -46629,7 +52273,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].startupProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].emptyDir @@ -46645,15 +52289,15 @@ Update strategy for the StatefulSet. - name + medium string
false - value - string + sizeLimit + int or string
@@ -46662,7 +52306,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].startupProbe.tcpSocket +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].ephemeral @@ -46678,15 +52322,8 @@ Update strategy for the StatefulSet. - host - string - -
- - false - - port - int or string + volumeClaimTemplate + object
@@ -46695,7 +52332,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].volumeDevices[index] +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate @@ -46711,15 +52348,15 @@ Update strategy for the StatefulSet. - devicePath - string + metadata + object
false - name - string + spec + object
@@ -46728,7 +52365,7 @@ Update strategy for the StatefulSet. -### PulsarCluster.spec.broker.sidecars[index].volumeMounts[index] +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.metadata @@ -46744,176 +52381,119 @@ Update strategy for the StatefulSet. - mountPath - string + annotations + map[string]string
false - mountPropagation + creationTimestamp string
false - name - string + deletionGracePeriodSeconds + integer
false - readOnly - boolean + deletionTimestamp + string
false - subPath - string + finalizers + []string
false - subPathExpr + generateName string
false - - - - -### PulsarCluster.spec.broker.tolerations[index] - - - - - - - - - - - - - - - - - + + + - - + + - - + + - - + + - + - -
NameTypeDescriptionRequired
effectstring
generationinteger
false
keystringlabelsmap[string]string
false
operatorstringmanagedFields[]object
false
tolerationSecondsintegernamestring
false
valuenamespace string
false
- - -### PulsarCluster.spec.broker.transactions - - - -Enable transactions in the broker. - - - - - - - - - - - - - + + + - - + + - - + + - -
NameTypeDescriptionRequired
enabledboolean
ownerReferences[]object - Initialize the transaction coordinator if it's not yet and configure the broker to accept transactions.
+
false
initJobobjectresourceVersionstring - Config for the init job.
+
false
partitionsintegerselfLinkstring - Number of coordinators to create.
+
false
- - -### PulsarCluster.spec.broker.transactions.initJob - - - -Config for the init job. - - - - - - - - - - - - - + + +
NameTypeDescriptionRequired
resourcesobject
uidstring - Resources requirements.
+
false
-### PulsarCluster.spec.broker.transactions.initJob.resources +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.metadata.managedFields[index] + -Resources requirements. @@ -46925,81 +52505,50 @@ Resources requirements. - - + + - - + + - -
limitsmap[string]int or stringapiVersionstring
false
requestsmap[string]int or stringfieldsTypestring
false
- - -### PulsarCluster.spec.broker.updateStrategy - - - -Update strategy for the StatefulSet. - - - - - - - - - - - - + + - + - -
NameTypeDescriptionRequired
rollingUpdate
fieldsV1 object
false
typemanager string
false
- - -### PulsarCluster.spec.broker.updateStrategy.rollingUpdate - - - - - - - - - - - - - - - - - + + + - - + + + + + + + @@ -47008,7 +52557,7 @@ Update strategy for the StatefulSet.
NameTypeDescriptionRequired
maxUnavailableint or string
operationstring
false
partitionintegersubresourcestring +
+
false
timestring
-### PulsarCluster.spec.functionsWorker +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.metadata.ownerReferences[index] @@ -47024,219 +52573,258 @@ Update strategy for the StatefulSet. - additionalVolumes - object - - Mount additional volumes to the pod.
- - false - - annotations - map[string]string - - Annotations to add to each resource (except pods).
- - false - - antiAffinity - object - - Pod anti-affinity configuration. This override the global value if set.
- - false - - config - JSON + apiVersion + string - Configuration.
+
false - env - []object + blockOwnerDeletion + boolean - Additional container env variables.
+
false - gracePeriod - integer + controller + boolean - Termination grace period in seconds.

- Minimum: 0
false - image + kind string - Override Pulsar image.
+
false - imagePullPolicy + name string - Override image pull policy.
- - false - - imagePullSecrets - []object - - Image pull secrets.
+
false - initContainers - []object + uid + string - Init containers
+
false - - labels - map[string]string + + + + +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec + + + + + + + + + + + + + + + + + - + - - - - - - + - - + + - + - - + + - - + + - + - - + + - - - + +
NameTypeDescriptionRequired
accessModes[]string - Labels to add to each resource (except pods).
+
false
logsVolumedataSource object - Volume configuration for export function logs.
-
false
matchLabelsmap[string]string - Match labels selectors to add to each pod.
+
false
nodeAffinitydataSourceRef object - Node affinity configuration.
+
false
nodeSelectorsmap[string]stringresourcesobject - Additional node selectors.
+
false
pdbselector object - Pod disruption budget configuration.
+
false
podAnnotationsmap[string]stringstorageClassNamestring - Annotations to add to pod.
+
false
podLabelsmap[string]stringvolumeAttributesClassNamestring - Labels to add to each pod.
+
false
podManagementPolicyvolumeMode string - Pod management policy.
+
false
probesobjectvolumeNamestring - Liveness and readiness probes configuration.
+
false
rbacobject
+ + +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.dataSource + + + + + + + + + + + + + + + + + - - + + - - + + - - + +
NameTypeDescriptionRequired
apiGroupstring - RBAC config.
+
false
replicasintegerkindstring - Number of desired replicas.
+
false
resourcesobjectnamestring - Resources requirements.
+
false
runtime
+ + +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.dataSourceRef + + + + + + + + + + + + + + + + - - + + - + - - + + - - - + +
NameTypeDescriptionRequired
apiGroup string - Runtime mode for functions.
+
false
serviceobjectkindstring - Service configuration.
+
false
serviceAccountNamename string - Service account name for the resource.
+
false
sidecars[]objectnamespacestring - Sidecar containers
+
false
tolerations[]object
+ + +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.resources + + + + + + + + + + + + + + + + + - - + +
NameTypeDescriptionRequired
limitsmap[string]int or string - Pod tolerations.
+
false
updateStrategyobjectrequestsmap[string]int or string - Update strategy for the StatefulSet.
+
false
-### PulsarCluster.spec.functionsWorker.additionalVolumes +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.selector + -Mount additional volumes to the pod. @@ -47248,24 +52836,24 @@ Mount additional volumes to the pod. - + - - + +
mountsmatchExpressions []object - Mount points for the additional volumes
+
false
volumes[]objectmatchLabelsmap[string]string - Additional volumes to be mounted to the pod
+
false
-### PulsarCluster.spec.functionsWorker.additionalVolumes.mounts[index] +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.selector.matchExpressions[index] @@ -47281,26 +52869,59 @@ Mount additional volumes to the pod. - mountPath + key string
false - mountPropagation + operator string
false - name + values + []string + +
+ + false + + + + +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].fc + + + + + + + + + + + + + + + + + + + + + @@ -47309,15 +52930,15 @@ Mount additional volumes to the pod. - - + + - - + + @@ -47326,7 +52947,7 @@ Mount additional volumes to the pod.
NameTypeDescriptionRequired
fsType string
false
luninteger +
+
false
readOnly boolean false
subPathstringtargetWWNs[]string
false
subPathExprstringwwids[]string
-### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index] +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].flexVolume @@ -47342,211 +52963,384 @@ Mount additional volumes to the pod. - awsElasticBlockStore - object + driver + string
false - azureDisk - object + fsType + string
false - azureFile - object + options + map[string]string
false - cephfs - object + readOnly + boolean
false - cinder + secretRef object
false - - configMap - object + + + + +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].flexVolume.secretRef + + + + + + + + + + + + + + + + + - - - + +
NameTypeDescriptionRequired
namestring
false
csiobject
+ + +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].flocker + + + + + + + + + + + + + + + + + - - + + - - - + +
NameTypeDescriptionRequired
datasetNamestring
false
downwardAPIobjectdatasetUUIDstring
false
emptyDirobject
+ + +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].gcePersistentDisk + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - - + +
NameTypeDescriptionRequired
fsTypestring
false
ephemeralobjectpartitioninteger
false
fcobjectpdNamestring
false
flexVolumeobjectreadOnlyboolean
false
flockerobject
+ + +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].gitRepo + + + + + + + + + + + + + + + + + - - + + - - + + - - - + +
NameTypeDescriptionRequired
directorystring
false
gcePersistentDiskobjectrepositorystring
false
gitRepoobjectrevisionstring
false
glusterfsobject
+ + +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].glusterfs + + + + + + + + + + + + + + + + + - - + + - - + + + + + +
NameTypeDescriptionRequired
endpointsstring
false
hostPathobjectpathstring
false
iscsiobjectreadOnlyboolean +
+
false
+ + +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].hostPath + + + + + + + + + + + + + + + + + - + + + + + +
NameTypeDescriptionRequired
pathstring
false
nametypestring +
+
false
+ + +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].image + + + + + + + + + + + + + + + + - - + + + + + +
NameTypeDescriptionRequired
pullPolicy string
false
nfsobjectreferencestring +
+
false
+ + +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].iscsi + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + @@ -47555,7 +53349,7 @@ Mount additional volumes to the pod.
NameTypeDescriptionRequired
chapAuthDiscoveryboolean
false
persistentVolumeClaimobjectchapAuthSessionboolean
false
photonPersistentDiskobjectfsTypestring
false
portworxVolumeobjectinitiatorNamestring
false
projectedobjectiqnstring
false
quobyteobjectiscsiInterfacestring
false
rbdobjectluninteger
false
scaleIOobjectportals[]string
false
secretobjectreadOnlyboolean
false
storageossecretRef object
false
vsphereVolumeobjecttargetPortalstring
-### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].awsElasticBlockStore +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].iscsi.secretRef @@ -47571,15 +53365,34 @@ Mount additional volumes to the pod. - fsType + name string
false - - partition - integer + + + + +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].nfs + + + + + + + + + + + + + + + + + @@ -47592,7 +53405,7 @@ Mount additional volumes to the pod. - +
NameTypeDescriptionRequired
pathstring
false
volumeIDserver string
@@ -47602,7 +53415,7 @@ Mount additional volumes to the pod.
-### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].azureDisk +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].persistentVolumeClaim @@ -47618,35 +53431,7 @@ Mount additional volumes to the pod. - cachingMode - string - -
- - false - - diskName - string - -
- - false - - diskURI - string - -
- - false - - fsType - string - -
- - false - - kind + claimName string
@@ -47663,7 +53448,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].azureFile +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].photonPersistentDisk @@ -47679,21 +53464,14 @@ Mount additional volumes to the pod. - readOnly - boolean - -
- - false - - secretName + fsType string
false - shareName + pdID string
@@ -47703,7 +53481,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].cephfs +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].portworxVolume @@ -47719,14 +53497,7 @@ Mount additional volumes to the pod. - monitors - []string - -
- - false - - path + fsType string
@@ -47740,21 +53511,7 @@ Mount additional volumes to the pod. false - secretFile - string - -
- - false - - secretRef - object - -
- - false - - user + volumeID string
@@ -47764,7 +53521,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].cephfs.secretRef +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].projected @@ -47780,8 +53537,15 @@ Mount additional volumes to the pod. - name - string + defaultMode + integer + +
+ + false + + sources + []object
@@ -47790,7 +53554,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].cinder +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].projected.sources[index] @@ -47806,29 +53570,36 @@ Mount additional volumes to the pod. - fsType - string + clusterTrustBundle + object
false - readOnly - boolean + configMap + object
false - secretRef + downwardAPI object
false - volumeID - string + secret + object + +
+ + false + + serviceAccountToken + object
@@ -47837,7 +53608,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].cinder.secretRef +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].projected.sources[index].clusterTrustBundle @@ -47853,17 +53624,45 @@ Mount additional volumes to the pod. + labelSelector + object + +
+ + false + name string
false + + optional + boolean + +
+ + false + + path + string + +
+ + false + + signerName + string + +
+ + false -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].configMap +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].projected.sources[index].clusterTrustBundle.labelSelector @@ -47879,29 +53678,15 @@ Mount additional volumes to the pod. - defaultMode - integer - -
- - false - - items + matchExpressions []object
false - name - string - -
- - false - - optional - boolean + matchLabels + map[string]string
@@ -47910,7 +53695,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].configMap.items[index] +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].projected.sources[index].clusterTrustBundle.labelSelector.matchExpressions[index] @@ -47933,15 +53718,15 @@ Mount additional volumes to the pod. false - mode - integer + operator + string
false - path - string + values + []string
@@ -47950,7 +53735,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].csi +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].projected.sources[index].configMap @@ -47966,45 +53751,31 @@ Mount additional volumes to the pod. - driver - string + items + []object
false - fsType + name string
false - nodePublishSecretRef - object - -
- - false - - readOnly + optional boolean
false - - volumeAttributes - map[string]string - -
- - false -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].csi.nodePublishSecretRef +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].projected.sources[index].configMap.items[index] @@ -48020,7 +53791,21 @@ Mount additional volumes to the pod. - name + key + string + +
+ + false + + mode + integer + +
+ + false + + path string
@@ -48030,7 +53815,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].downwardAPI +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].projected.sources[index].downwardAPI @@ -48046,14 +53831,7 @@ Mount additional volumes to the pod. - defaultMode - integer - -
- - false - - items + items []object
@@ -48063,7 +53841,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].downwardAPI.items[index] +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index] @@ -48079,7 +53857,7 @@ Mount additional volumes to the pod. - fieldRef + fieldRef object
@@ -48100,7 +53878,7 @@ Mount additional volumes to the pod. false - resourceFieldRef + resourceFieldRef object
@@ -48110,7 +53888,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].downwardAPI.items[index].fieldRef +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index].fieldRef @@ -48143,7 +53921,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].downwardAPI.items[index].resourceFieldRef +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index].resourceFieldRef @@ -48183,7 +53961,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].emptyDir +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].projected.sources[index].secret @@ -48199,15 +53977,22 @@ Mount additional volumes to the pod. - medium + items + []object + +
+ + false + + name string
false - sizeLimit - int or string + optional + boolean
@@ -48216,7 +54001,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].ephemeral +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].projected.sources[index].secret.items[index] @@ -48232,8 +54017,22 @@ Mount additional volumes to the pod. - volumeClaimTemplate - object + key + string + +
+ + false + + mode + integer + +
+ + false + + path + string
@@ -48242,7 +54041,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].projected.sources[index].serviceAccountToken @@ -48258,15 +54057,22 @@ Mount additional volumes to the pod. - metadata - object + audience + string
false - spec - object + expirationSeconds + integer + +
+ + false + + path + string
@@ -48275,7 +54081,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.metadata +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].quobyte @@ -48291,105 +54097,143 @@ Mount additional volumes to the pod. - annotations - map[string]string + group + string
false - creationTimestamp - string + readOnly + boolean
false - deletionGracePeriodSeconds - integer + registry + string
false - deletionTimestamp + tenant string
false - finalizers - []string + user + string
false - generateName + volume string
false - - generation - integer + + + + +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].rbd + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - + - - + + - - + + - + - - + +
NameTypeDescriptionRequired
fsTypestring
false
labelsmap[string]stringimagestring
false
managedFields[]objectkeyringstring
false
namestringmonitors[]string
false
namespacepool string
false
ownerReferences[]objectreadOnlyboolean
false
resourceVersionstringsecretRefobject
false
selfLinkuser string
false
uid
+ + +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].rbd.secretRef + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
name string
@@ -48399,7 +54243,7 @@ Mount additional volumes to the pod.
-### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.metadata.managedFields[index] +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].scaleIO @@ -48415,49 +54259,70 @@ Mount additional volumes to the pod. - apiVersion + fsType string
false - fieldsType + gateway string
false - fieldsV1 + protectionDomain + string + +
+ + false + + readOnly + boolean + +
+ + false + + secretRef object
false - manager + sslEnabled + boolean + +
+ + false + + storageMode string
false - operation + storagePool string
false - subresource + system string
false - time + volumeName string
@@ -48467,7 +54332,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.metadata.ownerReferences[index] +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].scaleIO.secretRef @@ -48483,42 +54348,54 @@ Mount additional volumes to the pod. - apiVersion + name string
false - - blockOwnerDeletion - boolean - -
- - false - - controller - boolean + + + + +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].secret + + + + + + + + + + + + + + + + + - - + + - - + + - +
NameTypeDescriptionRequired
defaultModeinteger
false
kindstringitems[]object
false
namestringoptionalboolean
false
uidsecretName string
@@ -48528,7 +54405,7 @@ Mount additional volumes to the pod.
-### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].secret.items[index] @@ -48544,56 +54421,75 @@ Mount additional volumes to the pod. - accessModes - []string + key + string
false - dataSource - object + mode + integer
false - dataSourceRef - object + path + string
false - - resources - object + + + + +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].storageos + + + + + + + + + + + + + + + + + - - + + - - + + - + - +
NameTypeDescriptionRequired
fsTypestring
false
selectorobjectreadOnlyboolean
false
storageClassNamestringsecretRefobject
false
volumeModevolumeName string
false
volumeNamevolumeNamespace string
@@ -48603,7 +54499,7 @@ Mount additional volumes to the pod.
-### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.dataSource +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].storageos.secretRef @@ -48619,20 +54515,6 @@ Mount additional volumes to the pod. - apiGroup - string - -
- - false - - kind - string - -
- - false - name string @@ -48643,7 +54525,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.dataSourceRef +### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].vsphereVolume @@ -48659,55 +54541,29 @@ Mount additional volumes to the pod. - apiGroup + fsType string
false - kind + storagePolicyID string
false - name + storagePolicyName string
false - - - - -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.resources - - - - - - - - - - - - - - - - - - - - - + + @@ -48716,11 +54572,11 @@ Mount additional volumes to the pod.
NameTypeDescriptionRequired
limitsmap[string]int or string -
-
false
requestsmap[string]int or stringvolumePathstring
-### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.selector - +### PulsarCluster.spec.functionsWorker.antiAffinity +Pod anti-affinity configuration. This override the global value if set. @@ -48732,28 +54588,28 @@ Mount additional volumes to the pod. - - + + - - + +
matchExpressions[]objecthostobject -
+ Indicates the reclaimPolicy property for the StorageClass.
false
matchLabelsmap[string]stringzoneobject -
+ Indicates the provisioner property for the StorageClass.
false
-### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].ephemeral.volumeClaimTemplate.spec.selector.matchExpressions[index] - +### PulsarCluster.spec.functionsWorker.antiAffinity.host +Indicates the reclaimPolicy property for the StorageClass. @@ -48765,35 +54621,28 @@ Mount additional volumes to the pod. - - - - - - - + + - - + +
keystring -
-
false
operatorstringenabledboolean -
+ Indicates the reclaimPolicy property for the StorageClass.
false
values[]stringrequiredboolean -
+ Indicates the reclaimPolicy property for the StorageClass.
false
-### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].fc - +### PulsarCluster.spec.functionsWorker.antiAffinity.zone +Indicates the provisioner property for the StorageClass. @@ -48805,45 +54654,24 @@ Mount additional volumes to the pod. - - - - - - - - - - - + - - - - - - - + +
fsTypestring -
-
false
luninteger -
-
false
readOnlyenabled boolean -
-
false
targetWWNs[]string -
+ Indicates the reclaimPolicy property for the StorageClass.
false
wwids[]stringrequiredboolean -
+ Indicates the reclaimPolicy property for the StorageClass.
false
-### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].flexVolume +### PulsarCluster.spec.functionsWorker.env[index] @@ -48859,35 +54687,21 @@ Mount additional volumes to the pod. - driver + name string
false - fsType + value string
false - options - map[string]string - -
- - false - - readOnly - boolean - -
- - false - - secretRef + valueFrom object
@@ -48897,7 +54711,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].flexVolume.secretRef +### PulsarCluster.spec.functionsWorker.env[index].valueFrom @@ -48913,8 +54727,29 @@ Mount additional volumes to the pod. - name - string + configMapKeyRef + object + +
+ + false + + fieldRef + object + +
+ + false + + resourceFieldRef + object + +
+ + false + + secretKeyRef + object
@@ -48923,7 +54758,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].flocker +### PulsarCluster.spec.functionsWorker.env[index].valueFrom.configMapKeyRef @@ -48939,24 +54774,31 @@ Mount additional volumes to the pod. - datasetName + key string
false - datasetUUID + name string
false + + optional + boolean + +
+ + false -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].gcePersistentDisk +### PulsarCluster.spec.functionsWorker.env[index].valueFrom.fieldRef @@ -48972,38 +54814,24 @@ Mount additional volumes to the pod. - fsType + apiVersion string
false - partition - integer - -
- - false - - pdName + fieldPath string
false - - readOnly - boolean - -
- - false -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].gitRepo +### PulsarCluster.spec.functionsWorker.env[index].valueFrom.resourceFieldRef @@ -49019,21 +54847,21 @@ Mount additional volumes to the pod. - directory + containerName string
false - repository - string + divisor + int or string
false - revision + resource string
@@ -49043,7 +54871,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].glusterfs +### PulsarCluster.spec.functionsWorker.env[index].valueFrom.secretKeyRef @@ -49059,21 +54887,21 @@ Mount additional volumes to the pod. - endpoints + key string
false - path + name string
false - readOnly + optional boolean
@@ -49083,7 +54911,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].hostPath +### PulsarCluster.spec.functionsWorker.imagePullSecrets[index] @@ -49099,14 +54927,7 @@ Mount additional volumes to the pod. - path - string - -
- - false - - type + name string
@@ -49116,7 +54937,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].iscsi +### PulsarCluster.spec.functionsWorker.initContainers[index] @@ -49132,77 +54953,168 @@ Mount additional volumes to the pod. - chapAuthDiscovery - boolean + args + []string
false - chapAuthSession - boolean + command + []string
false - fsType + env + []object + +
+ + false + + envFrom + []object + +
+ + false + + image string
false - initiatorName + imagePullPolicy string
false - iqn + lifecycle + object + +
+ + false + + livenessProbe + object + +
+ + false + + name string
false - iscsiInterface + ports + []object + +
+ + false + + readinessProbe + object + +
+ + false + + resizePolicy + []object + +
+ + false + + resources + object + +
+ + false + + restartPolicy string
false - lun - integer + securityContext + object
false - portals - []string + startupProbe + object
false - readOnly + stdin boolean
false - secretRef - object + stdinOnce + boolean
false - targetPortal + terminationMessagePath + string + +
+ + false + + terminationMessagePolicy + string + +
+ + false + + tty + boolean + +
+ + false + + volumeDevices + []object + +
+ + false + + volumeMounts + []object + +
+ + false + + workingDir string
@@ -49212,7 +55124,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].iscsi.secretRef +### PulsarCluster.spec.functionsWorker.initContainers[index].env[index] @@ -49234,11 +55146,25 @@ Mount additional volumes to the pod.
false + + value + string + +
+ + false + + valueFrom + object + +
+ + false -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].nfs +### PulsarCluster.spec.functionsWorker.initContainers[index].env[index].valueFrom @@ -49254,22 +55180,29 @@ Mount additional volumes to the pod. - path - string + configMapKeyRef + object
false - readOnly - boolean + fieldRef + object
false - server - string + resourceFieldRef + object + +
+ + false + + secretKeyRef + object
@@ -49278,7 +55211,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].persistentVolumeClaim +### PulsarCluster.spec.functionsWorker.initContainers[index].env[index].valueFrom.configMapKeyRef @@ -49294,14 +55227,21 @@ Mount additional volumes to the pod. - claimName + key string
false - readOnly + name + string + +
+ + false + + optional boolean
@@ -49311,7 +55251,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].photonPersistentDisk +### PulsarCluster.spec.functionsWorker.initContainers[index].env[index].valueFrom.fieldRef @@ -49327,14 +55267,14 @@ Mount additional volumes to the pod. - fsType + apiVersion string
false - pdID + fieldPath string
@@ -49344,7 +55284,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].portworxVolume +### PulsarCluster.spec.functionsWorker.initContainers[index].env[index].valueFrom.resourceFieldRef @@ -49360,21 +55300,21 @@ Mount additional volumes to the pod. - fsType + containerName string
false - readOnly - boolean + divisor + int or string
false - volumeID + resource string
@@ -49384,7 +55324,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].projected +### PulsarCluster.spec.functionsWorker.initContainers[index].env[index].valueFrom.secretKeyRef @@ -49400,15 +55340,22 @@ Mount additional volumes to the pod. - defaultMode - integer + key + string
false - sources - []object + name + string + +
+ + false + + optional + boolean
@@ -49417,7 +55364,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].projected.sources[index] +### PulsarCluster.spec.functionsWorker.initContainers[index].envFrom[index] @@ -49433,28 +55380,21 @@ Mount additional volumes to the pod. - configMap - object - -
- - false - - downwardAPI + configMapRef object
false - secret - object + prefix + string
false - serviceAccountToken + secretRef object
@@ -49464,7 +55404,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].projected.sources[index].configMap +### PulsarCluster.spec.functionsWorker.initContainers[index].envFrom[index].configMapRef @@ -49480,13 +55420,6 @@ Mount additional volumes to the pod. - items - []object - -
- - false - name string @@ -49504,7 +55437,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].projected.sources[index].configMap.items[index] +### PulsarCluster.spec.functionsWorker.initContainers[index].envFrom[index].secretRef @@ -49520,22 +55453,15 @@ Mount additional volumes to the pod. - key + name string
false - mode - integer - -
- - false - - path - string + optional + boolean
@@ -49544,7 +55470,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].projected.sources[index].downwardAPI +### PulsarCluster.spec.functionsWorker.initContainers[index].lifecycle @@ -49560,8 +55486,22 @@ Mount additional volumes to the pod. - items - []object + postStart + object + +
+ + false + + preStop + object + +
+ + false + + stopSignal + string
@@ -49570,7 +55510,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index] +### PulsarCluster.spec.functionsWorker.initContainers[index].lifecycle.postStart @@ -49586,28 +55526,28 @@ Mount additional volumes to the pod. - fieldRef + exec object
false - mode - integer + httpGet + object
false - path - string + sleep + object
false - resourceFieldRef + tcpSocket object
@@ -49617,7 +55557,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index].fieldRef +### PulsarCluster.spec.functionsWorker.initContainers[index].lifecycle.postStart.exec @@ -49633,15 +55573,8 @@ Mount additional volumes to the pod. - apiVersion - string - -
- - false - - fieldPath - string + command + []string
@@ -49650,7 +55583,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].projected.sources[index].downwardAPI.items[index].resourceFieldRef +### PulsarCluster.spec.functionsWorker.initContainers[index].lifecycle.postStart.httpGet @@ -49666,21 +55599,35 @@ Mount additional volumes to the pod. - containerName + host string
false - divisor + httpHeaders + []object + +
+ + false + + path + string + +
+ + false + + port int or string
false - resource + scheme string
@@ -49690,7 +55637,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].projected.sources[index].secret +### PulsarCluster.spec.functionsWorker.initContainers[index].lifecycle.postStart.httpGet.httpHeaders[index] @@ -49706,13 +55653,6 @@ Mount additional volumes to the pod. - items - []object - -
- - false - name string @@ -49720,8 +55660,8 @@ Mount additional volumes to the pod. false - optional - boolean + value + string
@@ -49730,7 +55670,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].projected.sources[index].secret.items[index] +### PulsarCluster.spec.functionsWorker.initContainers[index].lifecycle.postStart.sleep @@ -49746,31 +55686,17 @@ Mount additional volumes to the pod. - key - string - -
- - false - - mode + seconds integer
false - - path - string - -
- - false -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].projected.sources[index].serviceAccountToken +### PulsarCluster.spec.functionsWorker.initContainers[index].lifecycle.postStart.tcpSocket @@ -49786,22 +55712,15 @@ Mount additional volumes to the pod. - audience + host string
false - expirationSeconds - integer - -
- - false - - path - string + port + int or string
@@ -49810,7 +55729,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].quobyte +### PulsarCluster.spec.functionsWorker.initContainers[index].lifecycle.preStop @@ -49826,43 +55745,55 @@ Mount additional volumes to the pod. - group - string - -
- - false - - readOnly - boolean + exec + object
false - registry - string + httpGet + object
false - tenant - string + sleep + object
false - user - string + tcpSocket + object
false - - volume - string + + + + +### PulsarCluster.spec.functionsWorker.initContainers[index].lifecycle.preStop.exec + + + + + + + + + + + + + + + + + @@ -49871,7 +55802,7 @@ Mount additional volumes to the pod.
NameTypeDescriptionRequired
command[]string
-### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].rbd +### PulsarCluster.spec.functionsWorker.initContainers[index].lifecycle.preStop.httpGet @@ -49887,57 +55818,95 @@ Mount additional volumes to the pod. - fsType + host string
false - image - string + httpHeaders + []object
false - keyring + path string
false - monitors - []string + port + int or string
false - pool + scheme string
false - - readOnly - boolean + + + + +### PulsarCluster.spec.functionsWorker.initContainers[index].lifecycle.preStop.httpGet.httpHeaders[index] + + + + + + + + + + + + + + + + + - - + + - - - + +
NameTypeDescriptionRequired
namestring
false
secretRefobjectvaluestring
false
userstring
+ + +### PulsarCluster.spec.functionsWorker.initContainers[index].lifecycle.preStop.sleep + + + + + + + + + + + + + + + + + @@ -49946,7 +55915,7 @@ Mount additional volumes to the pod.
NameTypeDescriptionRequired
secondsinteger
-### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].rbd.secretRef +### PulsarCluster.spec.functionsWorker.initContainers[index].lifecycle.preStop.tcpSocket @@ -49962,17 +55931,24 @@ Mount additional volumes to the pod. - name + host string
false + + port + int or string + +
+ + false -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].scaleIO +### PulsarCluster.spec.functionsWorker.initContainers[index].livenessProbe @@ -49988,71 +55964,71 @@ Mount additional volumes to the pod. - fsType - string + exec + object
false - gateway - string + failureThreshold + integer
false - protectionDomain - string + grpc + object
false - readOnly - boolean + httpGet + object
false - secretRef - object + initialDelaySeconds + integer
false - sslEnabled - boolean + periodSeconds + integer
false - storageMode - string + successThreshold + integer
false - storagePool - string + tcpSocket + object
false - system - string + terminationGracePeriodSeconds + integer
false - volumeName - string + timeoutSeconds + integer
@@ -50061,7 +56037,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].scaleIO.secretRef +### PulsarCluster.spec.functionsWorker.initContainers[index].livenessProbe.exec @@ -50077,8 +56053,8 @@ Mount additional volumes to the pod. - name - string + command + []string
@@ -50087,7 +56063,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].secret +### PulsarCluster.spec.functionsWorker.initContainers[index].livenessProbe.grpc @@ -50103,28 +56079,14 @@ Mount additional volumes to the pod. - defaultMode + port integer
false - items - []object - -
- - false - - optional - boolean - -
- - false - - secretName + service string
@@ -50134,7 +56096,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].secret.items[index] +### PulsarCluster.spec.functionsWorker.initContainers[index].livenessProbe.httpGet @@ -50150,15 +56112,15 @@ Mount additional volumes to the pod. - key + host string
false - mode - integer + httpHeaders + []object
@@ -50170,11 +56132,25 @@ Mount additional volumes to the pod.
false + + port + int or string + +
+ + false + + scheme + string + +
+ + false -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].storageos +### PulsarCluster.spec.functionsWorker.initContainers[index].livenessProbe.httpGet.httpHeaders[index] @@ -50190,35 +56166,14 @@ Mount additional volumes to the pod. - fsType - string - -
- - false - - readOnly - boolean - -
- - false - - secretRef - object - -
- - false - - volumeName + name string
false - volumeNamespace + value string
@@ -50228,7 +56183,7 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].storageos.secretRef +### PulsarCluster.spec.functionsWorker.initContainers[index].livenessProbe.tcpSocket @@ -50244,17 +56199,24 @@ Mount additional volumes to the pod. - name + host string
false + + port + int or string + +
+ + false -### PulsarCluster.spec.functionsWorker.additionalVolumes.volumes[index].vsphereVolume +### PulsarCluster.spec.functionsWorker.initContainers[index].ports[index] @@ -50270,28 +56232,35 @@ Mount additional volumes to the pod. - fsType - string + containerPort + integer
false - storagePolicyID + hostIP string
false - storagePolicyName + hostPort + integer + +
+ + false + + name string
false - volumePath + protocol string
@@ -50301,11 +56270,11 @@ Mount additional volumes to the pod. -### PulsarCluster.spec.functionsWorker.antiAffinity +### PulsarCluster.spec.functionsWorker.initContainers[index].readinessProbe + -Pod anti-affinity configuration. This override the global value if set. @@ -50317,61 +56286,84 @@ Pod anti-affinity configuration. This override the global value if set. - + - + + + + + + - -
hostexec object - Indicates the reclaimPolicy property for the StorageClass.
+
false
zonefailureThresholdinteger +
+
false
grpc object - Indicates the provisioner property for the StorageClass.
+
false
- - -### PulsarCluster.spec.functionsWorker.antiAffinity.host - - - -Indicates the reclaimPolicy property for the StorageClass. - - - - - - - - - - - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
enabledboolean
httpGetobject - Indicates the reclaimPolicy property for the StorageClass.
+
false
requiredbooleaninitialDelaySecondsinteger - Indicates the reclaimPolicy property for the StorageClass.
+
+
false
periodSecondsinteger +
+
false
successThresholdinteger +
+
false
tcpSocketobject +
+
false
terminationGracePeriodSecondsinteger +
+
false
timeoutSecondsinteger +
false
-### PulsarCluster.spec.functionsWorker.antiAffinity.zone +### PulsarCluster.spec.functionsWorker.initContainers[index].readinessProbe.exec + -Indicates the provisioner property for the StorageClass. @@ -50383,24 +56375,17 @@ Indicates the provisioner property for the StorageClass. - - - - - - - + +
enabledboolean - Indicates the reclaimPolicy property for the StorageClass.
-
false
requiredbooleancommand[]string - Indicates the reclaimPolicy property for the StorageClass.
+
false
-### PulsarCluster.spec.functionsWorker.env[index] +### PulsarCluster.spec.functionsWorker.initContainers[index].readinessProbe.grpc @@ -50416,31 +56401,24 @@ Indicates the provisioner property for the StorageClass. - name - string + port + integer
false - value + service string
false - - valueFrom - object - -
- - false -### PulsarCluster.spec.functionsWorker.env[index].valueFrom +### PulsarCluster.spec.functionsWorker.initContainers[index].readinessProbe.httpGet @@ -50456,29 +56434,36 @@ Indicates the provisioner property for the StorageClass. - configMapKeyRef - object + host + string
false - fieldRef - object + httpHeaders + []object
false - resourceFieldRef - object + path + string
false - secretKeyRef - object + port + int or string + +
+ + false + + scheme + string
@@ -50487,7 +56472,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.functionsWorker.env[index].valueFrom.configMapKeyRef +### PulsarCluster.spec.functionsWorker.initContainers[index].readinessProbe.httpGet.httpHeaders[index] @@ -50503,13 +56488,6 @@ Indicates the provisioner property for the StorageClass. - key - string - -
- - false - name string @@ -50517,8 +56495,8 @@ Indicates the provisioner property for the StorageClass. false - optional - boolean + value + string
@@ -50527,7 +56505,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.functionsWorker.env[index].valueFrom.fieldRef +### PulsarCluster.spec.functionsWorker.initContainers[index].readinessProbe.tcpSocket @@ -50543,15 +56521,15 @@ Indicates the provisioner property for the StorageClass. - apiVersion + host string
false - fieldPath - string + port + int or string
@@ -50560,7 +56538,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.functionsWorker.env[index].valueFrom.resourceFieldRef +### PulsarCluster.spec.functionsWorker.initContainers[index].resizePolicy[index] @@ -50576,21 +56554,14 @@ Indicates the provisioner property for the StorageClass. - containerName + resourceName string
false - divisor - int or string - -
- - false - - resource + restartPolicy string
@@ -50600,7 +56571,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.functionsWorker.env[index].valueFrom.secretKeyRef +### PulsarCluster.spec.functionsWorker.initContainers[index].resources @@ -50616,22 +56587,22 @@ Indicates the provisioner property for the StorageClass. - key - string + claims + []object
false - name - string + limits + map[string]int or string
false - optional - boolean + requests + map[string]int or string
@@ -50640,7 +56611,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.functionsWorker.imagePullSecrets[index] +### PulsarCluster.spec.functionsWorker.initContainers[index].resources.claims[index] @@ -50662,11 +56633,18 @@ Indicates the provisioner property for the StorageClass.
false + + request + string + +
+ + false -### PulsarCluster.spec.functionsWorker.initContainers[index] +### PulsarCluster.spec.functionsWorker.initContainers[index].securityContext @@ -50675,162 +56653,92 @@ Indicates the provisioner property for the StorageClass. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - + - + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + @@ -50839,7 +56747,7 @@ Indicates the provisioner property for the StorageClass.
NameTypeDescriptionRequired
args[]string -
-
false
command[]string -
-
false
env[]object -
-
false
envFrom[]object -
-
false
imagestring -
-
false
imagePullPolicystring -
-
false
lifecycleobject -
-
false
livenessProbeobject -
-
false
namestring -
-
false
ports[]object -
-
false
readinessProbeobjectNameTypeDescriptionRequired
allowPrivilegeEscalationboolean
false
resourcesappArmorProfile object
false
securityContextcapabilities object
false
startupProbeobjectprivilegedboolean
false
stdinbooleanprocMountstring
false
stdinOncereadOnlyRootFilesystem boolean
false
terminationMessagePathstringrunAsGroupinteger
false
terminationMessagePolicystringrunAsNonRootboolean
false
ttybooleanrunAsUserinteger
false
volumeDevices[]objectseLinuxOptionsobject
false
volumeMounts[]objectseccompProfileobject
false
workingDirstringwindowsOptionsobject
-### PulsarCluster.spec.functionsWorker.initContainers[index].env[index] +### PulsarCluster.spec.functionsWorker.initContainers[index].securityContext.appArmorProfile @@ -50855,31 +56763,24 @@ Indicates the provisioner property for the StorageClass. - name + localhostProfile string
false - value + type string
false - - valueFrom - object - -
- - false -### PulsarCluster.spec.functionsWorker.initContainers[index].env[index].valueFrom +### PulsarCluster.spec.functionsWorker.initContainers[index].securityContext.capabilities @@ -50895,29 +56796,15 @@ Indicates the provisioner property for the StorageClass. - configMapKeyRef - object - -
- - false - - fieldRef - object - -
- - false - - resourceFieldRef - object + add + []string
false - secretKeyRef - object + drop + []string
@@ -50926,7 +56813,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.functionsWorker.initContainers[index].env[index].valueFrom.configMapKeyRef +### PulsarCluster.spec.functionsWorker.initContainers[index].securityContext.seLinuxOptions @@ -50942,22 +56829,29 @@ Indicates the provisioner property for the StorageClass. - key + level string
false - name + role string
false - optional - boolean + type + string + +
+ + false + + user + string
@@ -50966,7 +56860,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.functionsWorker.initContainers[index].env[index].valueFrom.fieldRef +### PulsarCluster.spec.functionsWorker.initContainers[index].securityContext.seccompProfile @@ -50982,14 +56876,14 @@ Indicates the provisioner property for the StorageClass. - apiVersion + localhostProfile string
false - fieldPath + type string
@@ -50999,7 +56893,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.functionsWorker.initContainers[index].env[index].valueFrom.resourceFieldRef +### PulsarCluster.spec.functionsWorker.initContainers[index].securityContext.windowsOptions @@ -51015,21 +56909,28 @@ Indicates the provisioner property for the StorageClass. - containerName + gmsaCredentialSpec string
false - divisor - int or string + gmsaCredentialSpecName + string
false - resource + hostProcess + boolean + +
+ + false + + runAsUserName string
@@ -51039,7 +56940,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.functionsWorker.initContainers[index].env[index].valueFrom.secretKeyRef +### PulsarCluster.spec.functionsWorker.initContainers[index].startupProbe @@ -51055,22 +56956,71 @@ Indicates the provisioner property for the StorageClass. - key - string + exec + object
false - name - string + failureThreshold + integer
false - optional - boolean + grpc + object + +
+ + false + + httpGet + object + +
+ + false + + initialDelaySeconds + integer + +
+ + false + + periodSeconds + integer + +
+ + false + + successThreshold + integer + +
+ + false + + tcpSocket + object + +
+ + false + + terminationGracePeriodSeconds + integer + +
+ + false + + timeoutSeconds + integer
@@ -51079,7 +57029,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.functionsWorker.initContainers[index].envFrom[index] +### PulsarCluster.spec.functionsWorker.initContainers[index].startupProbe.exec @@ -51095,22 +57045,8 @@ Indicates the provisioner property for the StorageClass. - configMapRef - object - -
- - false - - prefix - string - -
- - false - - secretRef - object + command + []string
@@ -51119,7 +57055,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.functionsWorker.initContainers[index].envFrom[index].configMapRef +### PulsarCluster.spec.functionsWorker.initContainers[index].startupProbe.grpc @@ -51135,15 +57071,15 @@ Indicates the provisioner property for the StorageClass. - name - string + port + integer
false - optional - boolean + service + string
@@ -51152,7 +57088,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.functionsWorker.initContainers[index].envFrom[index].secretRef +### PulsarCluster.spec.functionsWorker.initContainers[index].startupProbe.httpGet @@ -51168,15 +57104,36 @@ Indicates the provisioner property for the StorageClass. - name + host string
false - optional - boolean + httpHeaders + []object + +
+ + false + + path + string + +
+ + false + + port + int or string + +
+ + false + + scheme + string
@@ -51185,7 +57142,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.functionsWorker.initContainers[index].lifecycle +### PulsarCluster.spec.functionsWorker.initContainers[index].startupProbe.httpGet.httpHeaders[index] @@ -51201,15 +57158,15 @@ Indicates the provisioner property for the StorageClass. - postStart - object + name + string
false - preStop - object + value + string
@@ -51218,7 +57175,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.functionsWorker.initContainers[index].lifecycle.postStart +### PulsarCluster.spec.functionsWorker.initContainers[index].startupProbe.tcpSocket @@ -51234,22 +57191,15 @@ Indicates the provisioner property for the StorageClass. - exec - object - -
- - false - - httpGet - object + host + string
false - tcpSocket - object + port + int or string
@@ -51258,7 +57208,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.functionsWorker.initContainers[index].lifecycle.postStart.exec +### PulsarCluster.spec.functionsWorker.initContainers[index].volumeDevices[index] @@ -51274,8 +57224,15 @@ Indicates the provisioner property for the StorageClass. - command - []string + devicePath + string + +
+ + false + + name + string
@@ -51284,7 +57241,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.functionsWorker.initContainers[index].lifecycle.postStart.httpGet +### PulsarCluster.spec.functionsWorker.initContainers[index].volumeMounts[index] @@ -51300,68 +57257,49 @@ Indicates the provisioner property for the StorageClass. - host + mountPath string
false - httpHeaders - []object + mountPropagation + string
false - path + name string
false - port - int or string + readOnly + boolean
false - scheme + recursiveReadOnly string
false - - - - -### PulsarCluster.spec.functionsWorker.initContainers[index].lifecycle.postStart.httpGet.httpHeaders[index] - - - - - - - - - - - - - - - - + + - +
NameTypeDescriptionRequired
name
subPath string
false
valuesubPathExpr string
@@ -51371,11 +57309,11 @@ Indicates the provisioner property for the StorageClass.
-### PulsarCluster.spec.functionsWorker.initContainers[index].lifecycle.postStart.tcpSocket - +### PulsarCluster.spec.functionsWorker.logsVolume +Volume configuration for export function logs. @@ -51387,28 +57325,42 @@ Indicates the provisioner property for the StorageClass. - + - - + + + + + + + + + + + +
hostexistingStorageClassName string -
+ Indicates if an already existing storage class should be used.
false
portint or stringnamestring -
+ Indicates the suffix for the volume. Default value is 'data'.
+
false
sizestring + Indicates the requested size for the volume. The format follows the Kubernetes' Quantity.
+
false
storageClassobject + Indicates if a StorageClass is used. The operator will create the StorageClass if needed.
false
-### PulsarCluster.spec.functionsWorker.initContainers[index].lifecycle.preStop - +### PulsarCluster.spec.functionsWorker.logsVolume.storageClass +Indicates if a StorageClass is used. The operator will create the StorageClass if needed. @@ -51420,35 +57372,49 @@ Indicates the provisioner property for the StorageClass. - - + + - - + + - - + + + + + + + + + + + +
execobjectextraParamsmap[string]string -
+ Adds extra parameters for the StorageClass.
false
httpGetobjectfsTypestring -
+ Indicates the 'fsType' parameter for the StorageClass.
false
tcpSocketobjectprovisionerstring -
+ Indicates the provisioner property for the StorageClass.
+
false
reclaimPolicystring + Indicates the reclaimPolicy property for the StorageClass.
+
false
typestring + Indicates the 'type' parameter for the StorageClass.
false
-### PulsarCluster.spec.functionsWorker.initContainers[index].lifecycle.preStop.exec - +### PulsarCluster.spec.functionsWorker.nodeAffinity +Node affinity configuration. @@ -51460,8 +57426,15 @@ Indicates the provisioner property for the StorageClass. - - + + + + + + + @@ -51470,7 +57443,7 @@ Indicates the provisioner property for the StorageClass.
command[]stringpreferredDuringSchedulingIgnoredDuringExecution[]object +
+
false
requiredDuringSchedulingIgnoredDuringExecutionobject
-### PulsarCluster.spec.functionsWorker.initContainers[index].lifecycle.preStop.httpGet +### PulsarCluster.spec.functionsWorker.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index] @@ -51486,36 +57459,15 @@ Indicates the provisioner property for the StorageClass. - host - string - -
- - false - - httpHeaders - []object - -
- - false - - path - string - -
- - false - - port - int or string + preference + object
false - scheme - string + weight + integer
@@ -51524,7 +57476,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.functionsWorker.initContainers[index].lifecycle.preStop.httpGet.httpHeaders[index] +### PulsarCluster.spec.functionsWorker.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference @@ -51540,15 +57492,15 @@ Indicates the provisioner property for the StorageClass. - name - string + matchExpressions + []object
false - value - string + matchFields + []object
@@ -51557,7 +57509,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.functionsWorker.initContainers[index].lifecycle.preStop.tcpSocket +### PulsarCluster.spec.functionsWorker.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference.matchExpressions[index] @@ -51573,15 +57525,22 @@ Indicates the provisioner property for the StorageClass. - host + key string
false - port - int or string + operator + string + +
+ + false + + values + []string
@@ -51590,7 +57549,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.functionsWorker.initContainers[index].livenessProbe +### PulsarCluster.spec.functionsWorker.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference.matchFields[index] @@ -51606,71 +57565,22 @@ Indicates the provisioner property for the StorageClass. - exec - object - -
- - false - - failureThreshold - integer - -
- - false - - grpc - object - -
- - false - - httpGet - object - -
- - false - - initialDelaySeconds - integer - -
- - false - - periodSeconds - integer - -
- - false - - successThreshold - integer - -
- - false - - tcpSocket - object + key + string
false - terminationGracePeriodSeconds - integer + operator + string
false - timeoutSeconds - integer + values + []string
@@ -51679,7 +57589,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.functionsWorker.initContainers[index].livenessProbe.exec +### PulsarCluster.spec.functionsWorker.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution @@ -51695,8 +57605,8 @@ Indicates the provisioner property for the StorageClass. - command - []string + nodeSelectorTerms + []object
@@ -51705,7 +57615,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.functionsWorker.initContainers[index].livenessProbe.grpc +### PulsarCluster.spec.functionsWorker.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index] @@ -51721,15 +57631,15 @@ Indicates the provisioner property for the StorageClass. - port - integer + matchExpressions + []object
false - service - string + matchFields + []object
@@ -51738,7 +57648,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.functionsWorker.initContainers[index].livenessProbe.httpGet +### PulsarCluster.spec.functionsWorker.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index].matchExpressions[index] @@ -51754,36 +57664,22 @@ Indicates the provisioner property for the StorageClass. - host + key string
false - httpHeaders - []object - -
- - false - - path + operator string
false - port - int or string - -
- - false - - scheme - string + values + []string
@@ -51792,7 +57688,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.functionsWorker.initContainers[index].livenessProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.functionsWorker.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index].matchFields[index] @@ -51808,28 +57704,35 @@ Indicates the provisioner property for the StorageClass. - name + key string
false - value + operator string
false + + values + []string + +
+ + false -### PulsarCluster.spec.functionsWorker.initContainers[index].livenessProbe.tcpSocket - +### PulsarCluster.spec.functionsWorker.pdb +Pod disruption budget configuration. @@ -51841,28 +57744,35 @@ Indicates the provisioner property for the StorageClass. - - + + - - + + + + + + +
hoststringenabledboolean -
+ Enable Pdb policy.
false
portint or stringmaxUnavailableinteger -
+ Number of maxUnavailable pods.
+
false
minAvailableinteger + Number of minAvailable pods.
false
-### PulsarCluster.spec.functionsWorker.initContainers[index].ports[index] - +### PulsarCluster.spec.functionsWorker.probes +Liveness and readiness probes configuration. @@ -51874,49 +57784,28 @@ Indicates the provisioner property for the StorageClass. - - - - - - - - - - - - - - - - - + + - - + +
containerPortinteger -
-
false
hostIPstring -
-
false
hostPortinteger -
-
false
namestringlivenessobject -
+ Liveness probe configuration.
false
protocolstringreadinessobject -
+ Readiness probe configuration.
false
-### PulsarCluster.spec.functionsWorker.initContainers[index].readinessProbe - +### PulsarCluster.spec.functionsWorker.probes.liveness +Liveness probe configuration. @@ -51928,84 +57817,63 @@ Indicates the provisioner property for the StorageClass. - - + + - - - - - - - - - - - - - - -
execobjectenabledboolean -
+ Enables the probe.
false
failureThreshold integer -
-
false
grpcobject -
-
false
httpGetobject -
+ Failure threshold.
false
initialDelaySeconds integer -
+ Indicates the initial delay (in seconds) for the probe.
false
periodSeconds integer -
+ Indicates the period (in seconds) for the probe.
false
successThreshold integer -
-
false
tcpSocketobject -
+ Success threshold.
false
terminationGracePeriodSeconds integer -
+ Indicates the termination grace period (in seconds) for the probe.
false
timeoutSeconds integer -
+ Indicates the timeout (in seconds) for the probe.
false
-### PulsarCluster.spec.functionsWorker.initContainers[index].readinessProbe.exec - +### PulsarCluster.spec.functionsWorker.probes.readiness +Readiness probe configuration. @@ -52017,108 +57885,63 @@ Indicates the provisioner property for the StorageClass. - - + + - -
command[]stringenabledboolean -
+ Enables the probe.
false
- - -### PulsarCluster.spec.functionsWorker.initContainers[index].readinessProbe.grpc - - - - - - - - - - - - - - - - + + - - - - - -
NameTypeDescriptionRequired
port
failureThreshold integer -
+ Failure threshold.
false
servicestring -
-
false
- - -### PulsarCluster.spec.functionsWorker.initContainers[index].readinessProbe.httpGet - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + +
NameTypeDescriptionRequired
hoststringinitialDelaySecondsinteger -
+ Indicates the initial delay (in seconds) for the probe.
false
httpHeaders[]objectperiodSecondsinteger -
+ Indicates the period (in seconds) for the probe.
false
pathstringsuccessThresholdinteger -
+ Success threshold.
false
portint or stringterminationGracePeriodSecondsinteger -
+ Indicates the termination grace period (in seconds) for the probe.
false
schemestringtimeoutSecondsinteger -
+ Indicates the timeout (in seconds) for the probe.
false
-### PulsarCluster.spec.functionsWorker.initContainers[index].readinessProbe.httpGet.httpHeaders[index] - +### PulsarCluster.spec.functionsWorker.rbac +RBAC config. @@ -52130,28 +57953,28 @@ Indicates the provisioner property for the StorageClass. - - + + - - + +
namestringcreateboolean -
+ Create needed RBAC to run the Functions Worker.
false
valuestringnamespacedboolean -
+ Whether or not the RBAC is created per-namespace or cluster-wise.
false
-### PulsarCluster.spec.functionsWorker.initContainers[index].readinessProbe.tcpSocket - +### PulsarCluster.spec.functionsWorker.resources +Resources requirements. @@ -52163,15 +57986,22 @@ Indicates the provisioner property for the StorageClass. - - + + - - + + + + + + + @@ -52180,7 +58010,7 @@ Indicates the provisioner property for the StorageClass.
hoststringclaims[]object
false
portint or stringlimitsmap[string]int or string +
+
false
requestsmap[string]int or string
-### PulsarCluster.spec.functionsWorker.initContainers[index].resources +### PulsarCluster.spec.functionsWorker.resources.claims[index] @@ -52196,15 +58026,15 @@ Indicates the provisioner property for the StorageClass. - limits - map[string]int or string + name + string
false - requests - map[string]int or string + request + string
@@ -52213,11 +58043,11 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.functionsWorker.initContainers[index].securityContext - +### PulsarCluster.spec.functionsWorker.securityContext +Subset of PodSecurityContext for basic UID, GID, and volume access control. @@ -52229,40 +58059,19 @@ Indicates the provisioner property for the StorageClass. - - - - - - - - - - - - + + - + - - - - - @@ -52285,22 +58094,8 @@ Indicates the provisioner property for the StorageClass. - - - - - - - - - - - - + + @@ -52309,11 +58104,11 @@ Indicates the provisioner property for the StorageClass.
allowPrivilegeEscalationboolean -
-
false
capabilitiesobject -
-
false
privilegedbooleanfsGroupinteger
false
procMountfsGroupChangePolicy string
false
readOnlyRootFilesystemboolean -
-
false
runAsGroup integer false
seLinuxOptionsobject -
-
false
seccompProfileobject -
-
false
windowsOptionsobjectsupplementalGroups[]integer
-### PulsarCluster.spec.functionsWorker.initContainers[index].securityContext.capabilities - +### PulsarCluster.spec.functionsWorker.service +Service configuration. @@ -52325,24 +58120,31 @@ Indicates the provisioner property for the StorageClass. - - + + - - + + + + + + +
add[]stringadditionalPorts[]object -
+ Additional ports to add to the Service.
false
drop[]stringannotationsmap[string]string -
+ Additional annotations to add to the Service.
+
false
typestring + Service type. Default value is 'ClusterIP'
false
-### PulsarCluster.spec.functionsWorker.initContainers[index].securityContext.seLinuxOptions +### PulsarCluster.spec.functionsWorker.service.additionalPorts[index] @@ -52358,62 +58160,43 @@ Indicates the provisioner property for the StorageClass. - level + appProtocol string
false - role + name string
false - type - string + nodePort + integer
false - user - string + port + integer
false - - - - -### PulsarCluster.spec.functionsWorker.initContainers[index].securityContext.seccompProfile - - - - - - - - - - - - - - - - + + - - + + @@ -52422,7 +58205,7 @@ Indicates the provisioner property for the StorageClass.
NameTypeDescriptionRequired
localhostProfile
protocol string
false
typestringtargetPortint or string
-### PulsarCluster.spec.functionsWorker.initContainers[index].securityContext.windowsOptions +### PulsarCluster.spec.functionsWorker.sidecars[index] @@ -52438,118 +58221,169 @@ Indicates the provisioner property for the StorageClass. - gmsaCredentialSpec + args + []string + +
+ + false + + command + []string + +
+ + false + + env + []object + +
+ + false + + envFrom + []object + +
+ + false + + image string
false - gmsaCredentialSpecName + imagePullPolicy string
false - hostProcess - boolean + lifecycle + object
false - runAsUserName + livenessProbe + object + +
+ + false + + name string
false - - - - -### PulsarCluster.spec.functionsWorker.initContainers[index].startupProbe - - - - - - - - - - - - - - - - + + + + + + + - - + + - + - + + + + + + + + + + + - - + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + @@ -52558,7 +58392,7 @@ Indicates the provisioner property for the StorageClass.
NameTypeDescriptionRequired
exec
ports[]object +
+
false
readinessProbe object
false
failureThresholdintegerresizePolicy[]object
false
grpcresources object
false
httpGetrestartPolicystring +
+
false
securityContextobject +
+
false
startupProbe object
false
initialDelaySecondsintegerstdinboolean +
+
false
stdinOnceboolean +
+
false
terminationMessagePathstring
false
periodSecondsintegerterminationMessagePolicystring
false
successThresholdintegerttyboolean
false
tcpSocketobjectvolumeDevices[]object
false
terminationGracePeriodSecondsintegervolumeMounts[]object
false
timeoutSecondsintegerworkingDirstring
-### PulsarCluster.spec.functionsWorker.initContainers[index].startupProbe.exec +### PulsarCluster.spec.functionsWorker.sidecars[index].env[index] @@ -52574,41 +58408,22 @@ Indicates the provisioner property for the StorageClass. - command - []string + name + string
false - - - - -### PulsarCluster.spec.functionsWorker.initContainers[index].startupProbe.grpc - - - - - - - - - - - - - - - - - + + + - - + + @@ -52617,7 +58432,7 @@ Indicates the provisioner property for the StorageClass.
NameTypeDescriptionRequired
portinteger
valuestring
false
servicestringvalueFromobject
-### PulsarCluster.spec.functionsWorker.initContainers[index].startupProbe.httpGet +### PulsarCluster.spec.functionsWorker.sidecars[index].env[index].valueFrom @@ -52633,36 +58448,29 @@ Indicates the provisioner property for the StorageClass. - host - string - -
- - false - - httpHeaders - []object + configMapKeyRef + object
false - path - string + fieldRef + object
false - port - int or string + resourceFieldRef + object
false - scheme - string + secretKeyRef + object
@@ -52671,7 +58479,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.functionsWorker.initContainers[index].startupProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.functionsWorker.sidecars[index].env[index].valueFrom.configMapKeyRef @@ -52687,48 +58495,22 @@ Indicates the provisioner property for the StorageClass. - name + key string
false - value - string - -
- - false - - - - -### PulsarCluster.spec.functionsWorker.initContainers[index].startupProbe.tcpSocket - - - - - - - - - - - - - - - - + - - + + @@ -52737,7 +58519,7 @@ Indicates the provisioner property for the StorageClass.
NameTypeDescriptionRequired
hostname string
false
portint or stringoptionalboolean
-### PulsarCluster.spec.functionsWorker.initContainers[index].volumeDevices[index] +### PulsarCluster.spec.functionsWorker.sidecars[index].env[index].valueFrom.fieldRef @@ -52753,14 +58535,14 @@ Indicates the provisioner property for the StorageClass. - devicePath + apiVersion string
false - name + fieldPath string
@@ -52770,7 +58552,7 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.functionsWorker.initContainers[index].volumeMounts[index] +### PulsarCluster.spec.functionsWorker.sidecars[index].env[index].valueFrom.resourceFieldRef @@ -52786,42 +58568,21 @@ Indicates the provisioner property for the StorageClass. - mountPath - string - -
- - false - - mountPropagation - string - -
- - false - - name + containerName string
false - readOnly - boolean - -
- - false - - subPath - string + divisor + int or string
false - subPathExpr + resource string
@@ -52831,11 +58592,11 @@ Indicates the provisioner property for the StorageClass. -### PulsarCluster.spec.functionsWorker.logsVolume +### PulsarCluster.spec.functionsWorker.sidecars[index].env[index].valueFrom.secretKeyRef + -Volume configuration for export function logs. @@ -52847,42 +58608,35 @@ Volume configuration for export function logs. - + - - - - - - - + +
existingStorageClassNamekey string - Indicates if an already existing storage class should be used.
+
false
name string - Indicates the suffix for the volume. Default value is 'data'.
-
false
sizestring - Indicates the requested size for the volume. The format follows the Kubernetes' Quantity.
+
false
storageClassobjectoptionalboolean - Indicates if a StorageClass is used. The operator will create the StorageClass if needed.
+
false
-### PulsarCluster.spec.functionsWorker.logsVolume.storageClass +### PulsarCluster.spec.functionsWorker.sidecars[index].envFrom[index] + -Indicates if a StorageClass is used. The operator will create the StorageClass if needed. @@ -52894,68 +58648,21 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - - - - - - - - - - - - - - - - - + + - + - - - -
extraParamsmap[string]string - Adds extra parameters for the StorageClass.
-
false
fsTypestring - Indicates the 'fsType' parameter for the StorageClass.
-
false
provisionerstring - Indicates the provisioner property for the StorageClass.
-
false
reclaimPolicystringconfigMapRefobject - Indicates the reclaimPolicy property for the StorageClass.
+
false
typeprefix string - Indicates the 'type' parameter for the StorageClass.
-
false
- - -### PulsarCluster.spec.functionsWorker.nodeAffinity - - - -Node affinity configuration. - - - - - - - - - - - - - - +
NameTypeDescriptionRequired
preferredDuringSchedulingIgnoredDuringExecution[]object
false
requiredDuringSchedulingIgnoredDuringExecutionsecretRef object
@@ -52965,7 +58672,7 @@ Node affinity configuration.
-### PulsarCluster.spec.functionsWorker.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index] +### PulsarCluster.spec.functionsWorker.sidecars[index].envFrom[index].configMapRef @@ -52981,15 +58688,15 @@ Node affinity configuration. - preference - object + name + string
false - weight - integer + optional + boolean
@@ -52998,7 +58705,7 @@ Node affinity configuration. -### PulsarCluster.spec.functionsWorker.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference +### PulsarCluster.spec.functionsWorker.sidecars[index].envFrom[index].secretRef @@ -53014,15 +58721,15 @@ Node affinity configuration. - matchExpressions - []object + name + string
false - matchFields - []object + optional + boolean
@@ -53031,7 +58738,7 @@ Node affinity configuration. -### PulsarCluster.spec.functionsWorker.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference.matchExpressions[index] +### PulsarCluster.spec.functionsWorker.sidecars[index].lifecycle @@ -53047,22 +58754,22 @@ Node affinity configuration. - key - string + postStart + object
false - operator - string + preStop + object
false - values - []string + stopSignal + string
@@ -53071,7 +58778,7 @@ Node affinity configuration. -### PulsarCluster.spec.functionsWorker.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[index].preference.matchFields[index] +### PulsarCluster.spec.functionsWorker.sidecars[index].lifecycle.postStart @@ -53087,22 +58794,29 @@ Node affinity configuration. - key - string + exec + object
false - operator - string + httpGet + object
false - values - []string + sleep + object + +
+ + false + + tcpSocket + object
@@ -53111,7 +58825,7 @@ Node affinity configuration. -### PulsarCluster.spec.functionsWorker.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution +### PulsarCluster.spec.functionsWorker.sidecars[index].lifecycle.postStart.exec @@ -53127,8 +58841,8 @@ Node affinity configuration. - nodeSelectorTerms - []object + command + []string
@@ -53137,7 +58851,7 @@ Node affinity configuration. -### PulsarCluster.spec.functionsWorker.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index] +### PulsarCluster.spec.functionsWorker.sidecars[index].lifecycle.postStart.httpGet @@ -53153,55 +58867,36 @@ Node affinity configuration. - matchExpressions - []object + host + string
false - matchFields + httpHeaders []object
false - - - - -### PulsarCluster.spec.functionsWorker.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index].matchExpressions[index] - - - - - - - - - - - - - - - - + + - - + + - - + + @@ -53210,7 +58905,7 @@ Node affinity configuration.
NameTypeDescriptionRequired
key
path string
false
operatorstringportint or string
false
values[]stringschemestring
-### PulsarCluster.spec.functionsWorker.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[index].matchFields[index] +### PulsarCluster.spec.functionsWorker.sidecars[index].lifecycle.postStart.httpGet.httpHeaders[index] @@ -53226,35 +58921,28 @@ Node affinity configuration. - key + name string
false - operator + value string
false - - values - []string - -
- - false -### PulsarCluster.spec.functionsWorker.pdb +### PulsarCluster.spec.functionsWorker.sidecars[index].lifecycle.postStart.sleep + -Pod disruption budget configuration. @@ -53266,28 +58954,21 @@ Pod disruption budget configuration. - - - - - - +
enabledboolean - Enable Pdb policy.
-
false
maxUnavailableseconds integer - Number of maxUnavailable pods.
+
false
-### PulsarCluster.spec.functionsWorker.probes +### PulsarCluster.spec.functionsWorker.sidecars[index].lifecycle.postStart.tcpSocket + -Liveness and readiness probes configuration. @@ -53299,28 +58980,28 @@ Liveness and readiness probes configuration. - - + + - - + +
livenessobjecthoststring - Liveness probe configuration.
+
false
readinessobjectportint or string - Readiness probe configuration.
+
false
-### PulsarCluster.spec.functionsWorker.probes.liveness +### PulsarCluster.spec.functionsWorker.sidecars[index].lifecycle.preStop + -Liveness probe configuration. @@ -53332,63 +59013,42 @@ Liveness probe configuration. - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + +
enabledboolean - Enables the probe.
-
false
failureThresholdinteger - Failure threshold.
-
false
initialDelaySecondsinteger - Indicates the initial delay (in seconds) for the probe.
-
false
periodSecondsintegerexecobject - Indicates the period (in seconds) for the probe.
+
false
successThresholdintegerhttpGetobject - Success threshold.
+
false
terminationGracePeriodSecondsintegersleepobject - Indicates the termination grace period (in seconds) for the probe.
+
false
timeoutSecondsintegertcpSocketobject - Indicates the timeout (in seconds) for the probe.
+
false
-### PulsarCluster.spec.functionsWorker.probes.readiness +### PulsarCluster.spec.functionsWorker.sidecars[index].lifecycle.preStop.exec + -Readiness probe configuration. @@ -53400,63 +59060,21 @@ Readiness probe configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +
enabledboolean - Enables the probe.
-
false
failureThresholdinteger - Failure threshold.
-
false
initialDelaySecondsinteger - Indicates the initial delay (in seconds) for the probe.
-
false
periodSecondsinteger - Indicates the period (in seconds) for the probe.
-
false
successThresholdinteger - Success threshold.
-
false
terminationGracePeriodSecondsinteger - Indicates the termination grace period (in seconds) for the probe.
-
false
timeoutSecondsintegercommand[]string - Indicates the timeout (in seconds) for the probe.
+
false
-### PulsarCluster.spec.functionsWorker.rbac +### PulsarCluster.spec.functionsWorker.sidecars[index].lifecycle.preStop.httpGet + -RBAC config. @@ -53468,28 +59086,49 @@ RBAC config. - - + + + + + + + + + + + + + + + + + - - + +
createbooleanhoststring +
+
false
httpHeaders[]object +
+
false
pathstring +
+
false
portint or string - Create needed RBAC to run the Functions Worker.
+
false
namespacedbooleanschemestring - Whether or not the RBAC is created per-namespace or cluster-wise.
+
false
-### PulsarCluster.spec.functionsWorker.resources +### PulsarCluster.spec.functionsWorker.sidecars[index].lifecycle.preStop.httpGet.httpHeaders[index] + -Resources requirements. @@ -53501,15 +59140,15 @@ Resources requirements. - - + + - - + + @@ -53518,11 +59157,11 @@ Resources requirements.
limitsmap[string]int or stringnamestring
false
requestsmap[string]int or stringvaluestring
-### PulsarCluster.spec.functionsWorker.service +### PulsarCluster.spec.functionsWorker.sidecars[index].lifecycle.preStop.sleep + -Service configuration. @@ -53534,31 +59173,17 @@ Service configuration. - - - - - - - - - - - - + +
additionalPorts[]object - Additional ports to add to the Service.
-
false
annotationsmap[string]string - Additional annotations to add to the Service.
-
false
typestringsecondsinteger - Service type. Default value is 'ClusterIP'
+
false
-### PulsarCluster.spec.functionsWorker.service.additionalPorts[index] +### PulsarCluster.spec.functionsWorker.sidecars[index].lifecycle.preStop.tcpSocket @@ -53574,42 +59199,14 @@ Service configuration. - appProtocol - string - -
- - false - - name + host string
false - - nodePort - integer - -
- - false port - integer - -
- - false - - protocol - string - -
- - false - - targetPort int or string
@@ -53619,7 +59216,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index] +### PulsarCluster.spec.functionsWorker.sidecars[index].livenessProbe @@ -53635,155 +59232,71 @@ Service configuration. - args - []string - -
- - false - - command - []string - -
- - false - - env - []object - -
- - false - - envFrom - []object - -
- - false - - image - string - -
- - false - - imagePullPolicy - string - -
- - false - - lifecycle - object - -
- - false - - livenessProbe - object - -
- - false - - name - string - -
- - false - - ports - []object - -
- - false - - readinessProbe + exec object
false - resources - object + failureThreshold + integer
false - securityContext + grpc object
false - startupProbe + httpGet object
false - stdin - boolean - -
- - false - - stdinOnce - boolean - -
- - false - - terminationMessagePath - string + initialDelaySeconds + integer
false - terminationMessagePolicy - string + periodSeconds + integer
false - tty - boolean + successThreshold + integer
false - volumeDevices - []object + tcpSocket + object
false - volumeMounts - []object + terminationGracePeriodSeconds + integer
false - workingDir - string + timeoutSeconds + integer
@@ -53792,7 +59305,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].env[index] +### PulsarCluster.spec.functionsWorker.sidecars[index].livenessProbe.exec @@ -53808,22 +59321,8 @@ Service configuration. - name - string - -
- - false - - value - string - -
- - false - - valueFrom - object + command + []string
@@ -53832,7 +59331,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].env[index].valueFrom +### PulsarCluster.spec.functionsWorker.sidecars[index].livenessProbe.grpc @@ -53848,29 +59347,15 @@ Service configuration. - configMapKeyRef - object - -
- - false - - fieldRef - object - -
- - false - - resourceFieldRef - object + port + integer
false - secretKeyRef - object + service + string
@@ -53879,7 +59364,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].env[index].valueFrom.configMapKeyRef +### PulsarCluster.spec.functionsWorker.sidecars[index].livenessProbe.httpGet @@ -53895,22 +59380,36 @@ Service configuration. - key + host string
false - name + httpHeaders + []object + +
+ + false + + path string
false - optional - boolean + port + int or string + +
+ + false + + scheme + string
@@ -53919,7 +59418,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].env[index].valueFrom.fieldRef +### PulsarCluster.spec.functionsWorker.sidecars[index].livenessProbe.httpGet.httpHeaders[index] @@ -53935,14 +59434,14 @@ Service configuration. - apiVersion + name string
false - fieldPath + value string
@@ -53952,7 +59451,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].env[index].valueFrom.resourceFieldRef +### PulsarCluster.spec.functionsWorker.sidecars[index].livenessProbe.tcpSocket @@ -53968,31 +59467,24 @@ Service configuration. - containerName + host string
false - divisor + port int or string
false - - resource - string - -
- - false -### PulsarCluster.spec.functionsWorker.sidecars[index].env[index].valueFrom.secretKeyRef +### PulsarCluster.spec.functionsWorker.sidecars[index].ports[index] @@ -54008,12 +59500,26 @@ Service configuration. - key + containerPort + integer + +
+ + false + + hostIP string
false + + hostPort + integer + +
+ + false name string @@ -54022,8 +59528,8 @@ Service configuration. false - optional - boolean + protocol + string
@@ -54032,7 +59538,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].envFrom[index] +### PulsarCluster.spec.functionsWorker.sidecars[index].readinessProbe @@ -54048,121 +59554,71 @@ Service configuration. - configMapRef + exec object
false - prefix - string + failureThreshold + integer
false - secretRef + grpc object
false - - - - -### PulsarCluster.spec.functionsWorker.sidecars[index].envFrom[index].configMapRef - - - - - - - - - - - - - - - - - + + + - - + + - -
NameTypeDescriptionRequired
namestring
httpGetobject
false
optionalbooleaninitialDelaySecondsinteger
false
- - -### PulsarCluster.spec.functionsWorker.sidecars[index].envFrom[index].secretRef - - - - - - - - - - - - - - - - - + + + - - + + - -
NameTypeDescriptionRequired
namestring
periodSecondsinteger
false
optionalbooleansuccessThresholdinteger
false
- - -### PulsarCluster.spec.functionsWorker.sidecars[index].lifecycle - - - - - - - - - - - - - - - - + + - - + + + + + + + @@ -54171,7 +59627,7 @@ Service configuration.
NameTypeDescriptionRequired
postStart
tcpSocket object
false
preStopobjectterminationGracePeriodSecondsinteger +
+
false
timeoutSecondsinteger
-### PulsarCluster.spec.functionsWorker.sidecars[index].lifecycle.postStart +### PulsarCluster.spec.functionsWorker.sidecars[index].readinessProbe.exec @@ -54187,22 +59643,8 @@ Service configuration. - exec - object - -
- - false - - httpGet - object - -
- - false - - tcpSocket - object + command + []string
@@ -54211,7 +59653,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].lifecycle.postStart.exec +### PulsarCluster.spec.functionsWorker.sidecars[index].readinessProbe.grpc @@ -54227,8 +59669,15 @@ Service configuration. - command - []string + port + integer + +
+ + false + + service + string
@@ -54237,7 +59686,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].lifecycle.postStart.httpGet +### PulsarCluster.spec.functionsWorker.sidecars[index].readinessProbe.httpGet @@ -54260,7 +59709,7 @@ Service configuration. false - httpHeaders + httpHeaders []object
@@ -54291,7 +59740,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].lifecycle.postStart.httpGet.httpHeaders[index] +### PulsarCluster.spec.functionsWorker.sidecars[index].readinessProbe.httpGet.httpHeaders[index] @@ -54324,7 +59773,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].lifecycle.postStart.tcpSocket +### PulsarCluster.spec.functionsWorker.sidecars[index].readinessProbe.tcpSocket @@ -54357,7 +59806,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].lifecycle.preStop +### PulsarCluster.spec.functionsWorker.sidecars[index].resizePolicy[index] @@ -54373,48 +59822,15 @@ Service configuration. - exec - object - -
- - false - - httpGet - object + resourceName + string
false - tcpSocket - object - -
- - false - - - - -### PulsarCluster.spec.functionsWorker.sidecars[index].lifecycle.preStop.exec - - - - - - - - - - - - - - - - - + + @@ -54423,7 +59839,7 @@ Service configuration.
NameTypeDescriptionRequired
command[]stringrestartPolicystring
-### PulsarCluster.spec.functionsWorker.sidecars[index].lifecycle.preStop.httpGet +### PulsarCluster.spec.functionsWorker.sidecars[index].resources @@ -54439,36 +59855,22 @@ Service configuration. - host - string - -
- - false - - httpHeaders + claims []object
false - path - string - -
- - false - - port - int or string + limits + map[string]int or string
false - scheme - string + requests + map[string]int or string
@@ -54477,7 +59879,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].lifecycle.preStop.httpGet.httpHeaders[index] +### PulsarCluster.spec.functionsWorker.sidecars[index].resources.claims[index] @@ -54500,7 +59902,7 @@ Service configuration. false - value + request string
@@ -54510,7 +59912,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].lifecycle.preStop.tcpSocket +### PulsarCluster.spec.functionsWorker.sidecars[index].securityContext @@ -54526,104 +59928,85 @@ Service configuration. - host - string + allowPrivilegeEscalation + boolean
false - port - int or string + appArmorProfile + object
false - - - - -### PulsarCluster.spec.functionsWorker.sidecars[index].livenessProbe - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - + - - + + - + - + - - + + - - + + @@ -54632,7 +60015,7 @@ Service configuration.
NameTypeDescriptionRequired
exec
capabilities object
false
failureThresholdintegerprivilegedboolean
false
grpcobjectprocMountstring
false
httpGetobjectreadOnlyRootFilesystemboolean
false
initialDelaySecondsrunAsGroup integer
false
periodSecondsintegerrunAsNonRootboolean
false
successThresholdrunAsUser integer
false
tcpSocketseLinuxOptions object
false
terminationGracePeriodSecondsintegerseccompProfileobject
false
timeoutSecondsintegerwindowsOptionsobject
-### PulsarCluster.spec.functionsWorker.sidecars[index].livenessProbe.exec +### PulsarCluster.spec.functionsWorker.sidecars[index].securityContext.appArmorProfile @@ -54648,8 +60031,15 @@ Service configuration. - command - []string + localhostProfile + string + +
+ + false + + type + string
@@ -54658,7 +60048,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].livenessProbe.grpc +### PulsarCluster.spec.functionsWorker.sidecars[index].securityContext.capabilities @@ -54674,15 +60064,15 @@ Service configuration. - port - integer + add + []string
false - service - string + drop + []string
@@ -54691,7 +60081,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].livenessProbe.httpGet +### PulsarCluster.spec.functionsWorker.sidecars[index].securityContext.seLinuxOptions @@ -54707,35 +60097,28 @@ Service configuration. - host + level string
false - httpHeaders - []object - -
- - false - - path + role string
false - port - int or string + type + string
false - scheme + user string
@@ -54745,7 +60128,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].livenessProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.functionsWorker.sidecars[index].securityContext.seccompProfile @@ -54761,14 +60144,14 @@ Service configuration. - name + localhostProfile string
false - value + type string
@@ -54778,7 +60161,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].livenessProbe.tcpSocket +### PulsarCluster.spec.functionsWorker.sidecars[index].securityContext.windowsOptions @@ -54794,68 +60177,28 @@ Service configuration. - host + gmsaCredentialSpec string
false - port - int or string - -
- - false - - - - -### PulsarCluster.spec.functionsWorker.sidecars[index].ports[index] - - - - - - - - - - - - - - - - - - - - - + - - - - - - - + + - +
NameTypeDescriptionRequired
containerPortinteger -
-
false
hostIPgmsaCredentialSpecName string
false
hostPortinteger -
-
false
namestringhostProcessboolean
false
protocolrunAsUserName string
@@ -54865,7 +60208,7 @@ Service configuration.
-### PulsarCluster.spec.functionsWorker.sidecars[index].readinessProbe +### PulsarCluster.spec.functionsWorker.sidecars[index].startupProbe @@ -54881,7 +60224,7 @@ Service configuration. - exec + exec object
@@ -54895,14 +60238,14 @@ Service configuration. false - grpc + grpc object
false - httpGet + httpGet object
@@ -54930,7 +60273,7 @@ Service configuration. false - tcpSocket + tcpSocket object
@@ -54954,7 +60297,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].readinessProbe.exec +### PulsarCluster.spec.functionsWorker.sidecars[index].startupProbe.exec @@ -54980,7 +60323,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].readinessProbe.grpc +### PulsarCluster.spec.functionsWorker.sidecars[index].startupProbe.grpc @@ -55013,7 +60356,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].readinessProbe.httpGet +### PulsarCluster.spec.functionsWorker.sidecars[index].startupProbe.httpGet @@ -55036,7 +60379,7 @@ Service configuration. false - httpHeaders + httpHeaders []object
@@ -55067,7 +60410,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].readinessProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.functionsWorker.sidecars[index].startupProbe.httpGet.httpHeaders[index] @@ -55100,7 +60443,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].readinessProbe.tcpSocket +### PulsarCluster.spec.functionsWorker.sidecars[index].startupProbe.tcpSocket @@ -55133,7 +60476,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].resources +### PulsarCluster.spec.functionsWorker.sidecars[index].volumeDevices[index] @@ -55149,15 +60492,15 @@ Service configuration. - limits - map[string]int or string + devicePath + string
false - requests - map[string]int or string + name + string
@@ -55166,7 +60509,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].securityContext +### PulsarCluster.spec.functionsWorker.sidecars[index].volumeMounts[index] @@ -55182,78 +60525,50 @@ Service configuration. - allowPrivilegeEscalation - boolean - -
- - false - - capabilities - object - -
- - false - - privileged - boolean - -
- - false - - procMount + mountPath string
false - readOnlyRootFilesystem - boolean + mountPropagation + string
false - runAsGroup - integer + name + string
false - runAsNonRoot + readOnly boolean
false - runAsUser - integer - -
- - false - - seLinuxOptions - object + recursiveReadOnly + string
false - seccompProfile - object + subPath + string
false - windowsOptions - object + subPathExpr + string
@@ -55262,7 +60577,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].securityContext.capabilities +### PulsarCluster.spec.functionsWorker.tolerations[index] @@ -55278,15 +60593,36 @@ Service configuration. - add - []string + effect + string
false - drop - []string + key + string + +
+ + false + + operator + string + +
+ + false + + tolerationSeconds + integer + +
+ + false + + value + string
@@ -55295,11 +60631,11 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].securityContext.seLinuxOptions - +### PulsarCluster.spec.functionsWorker.updateStrategy +Update strategy for the StatefulSet. @@ -55311,15 +60647,8 @@ Service configuration. - - - - - - - + + @@ -55331,18 +60660,11 @@ Service configuration.
- - - - -
levelstring -
-
false
rolestringrollingUpdateobject
false
userstring -
-
false
-### PulsarCluster.spec.functionsWorker.sidecars[index].securityContext.seccompProfile +### PulsarCluster.spec.functionsWorker.updateStrategy.rollingUpdate @@ -55358,15 +60680,15 @@ Service configuration. - localhostProfile - string + maxUnavailable + int or string
false - type - string + partition + integer
@@ -55375,7 +60697,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].securityContext.windowsOptions +### PulsarCluster.spec.global @@ -55391,42 +60713,160 @@ Service configuration. - gmsaCredentialSpec + name string -
+ Name of the Pulsar cluster spec. This is used as a prefix for managed Kubernetes resources.
+ + true + + antiAffinity + object + + Pod anti affinity configuration.
false - gmsaCredentialSpecName + auth + object + + Authentication and authorization configuration. +
+ + false + + clusterName string -
+ Corresponds to the 'clusterName' field in the broker.conf. Defaults to the value of the 'name' field
false - hostProcess + components + object + + Pulsar cluster components names.
+ + false + + dnsConfig + object + + Override default DNS config for each pod. Note that because we use fully qualified service names for intra +cluster networking with Pulsar components, we set the ndots value to 4 (the default is 5). This prevents +unnecessary DNS lookups for the fully qualified service names that would be guaranteed to result in NXDOMAIN. +For example, the name 'pulsar-broker.pulsar.svc.cluster.local' has 4 dots, so it would be resolved directly +instead of appending the configured search domains. + More info here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config. +
+ + false + + dnsName + string + + Public dns name for the cluster's load balancer.
+ + false + + image + string + + Default Pulsar image to use. Any components can be configured to use a different image.
+ + false + + imagePullPolicy + string + + Default Pulsar image pull policy to use. Any components can be configured to use a different image pull policy. Default value is 'IfNotPresent'.
+ + false + + kubernetesClusterDomain + string + + The domain name for your kubernetes cluster. +This domain is documented here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#a-aaaa-records-1 . +It's used to fully qualify service names when configuring Pulsar. +The default value is 'cluster.local'. +
+ + false + + nodeSelectors + map[string]string + + Global node selector. If set, this will apply to all the components.
+ + false + + persistence boolean -
+ If persistence is enabled, components that has state will be deployed with PersistentVolumeClaims, otherwise, for test purposes, they will be deployed with emptyDir +
false - runAsUserName + priorityClassName string -
+ Priority class name to attach to each pod.
+ + false + + racks + map[string]object + + Racks configuration.
+ + false + + resourceSets + map[string]object + + Resource sets.
+ + false + + restartOnConfigMapChange + boolean + + By default, Kubernetes will not restart pods when only their configmap is changed. This setting will restart pods when their configmap is changed using an annotation that calculates the checksum of the configmap. +
+ + false + + storage + object + + Storage configuration.
+ + false + + tls + object + + TLS configuration for the cluster.
+ + false + + zookeeperPlainSslStorePassword + boolean + + Use plain password in zookeeper server and client configuration. Default is false. Old versions of Apache Zookeeper (<3.8.0) does not support getting password from file. In that case, set this to true.
false -### PulsarCluster.spec.functionsWorker.sidecars[index].startupProbe - +### PulsarCluster.spec.global.antiAffinity +Pod anti affinity configuration. @@ -55438,83 +60878,94 @@ Service configuration. - - - - - - - - - - - + - + - - - - - - - - - - - - - + +
execobject -
-
false
failureThresholdinteger -
-
false
grpchost object -
+ Indicates the reclaimPolicy property for the StorageClass.
false
httpGetzone object -
-
false
initialDelaySecondsinteger -
-
false
periodSecondsinteger -
+ Indicates the provisioner property for the StorageClass.
false
successThresholdinteger
+ + +### PulsarCluster.spec.global.antiAffinity.host + + + +Indicates the reclaimPolicy property for the StorageClass. + + + + + + + + + + + + + - - + + - - - + +
NameTypeDescriptionRequired
enabledboolean -
+ Indicates the reclaimPolicy property for the StorageClass.
false
tcpSocketobjectrequiredboolean -
+ Indicates the reclaimPolicy property for the StorageClass.
false
terminationGracePeriodSecondsinteger
+ + +### PulsarCluster.spec.global.antiAffinity.zone + + + +Indicates the provisioner property for the StorageClass. + + + + + + + + + + + + + - - + +
NameTypeDescriptionRequired
enabledboolean -
+ Indicates the reclaimPolicy property for the StorageClass.
false
timeoutSecondsintegerrequiredboolean -
+ Indicates the reclaimPolicy property for the StorageClass.
false
-### PulsarCluster.spec.functionsWorker.sidecars[index].startupProbe.exec +### PulsarCluster.spec.global.auth +Authentication and authorization configuration. @@ -55527,21 +60978,28 @@ Service configuration. - - + + + + + + +
command[]stringenabledboolean -
+ Enable authentication in the cluster. Default is 'false'.
+
false
tokenobject + Token based authentication configuration.
false
-### PulsarCluster.spec.functionsWorker.sidecars[index].startupProbe.grpc - +### PulsarCluster.spec.global.auth.token +Token based authentication configuration. @@ -55553,28 +61011,49 @@ Service configuration. - - + + - + + + + + + + + + + + + + + + +
portintegerinitializeboolean -
+ Initialize Secrets with new pair of keys and tokens for the super user roles. The generated Secret name is 'token-'.
false
serviceprivateKeyFile string -
+ Private key file name stored in the Secret. Default is 'my-private.key'
+
false
proxyRoles[]string + Proxy roles.
+
false
publicKeyFilestring + Public key file name stored in the Secret. Default is 'my-public.key'
+
false
superUserRoles[]string + Super user roles.
false
-### PulsarCluster.spec.functionsWorker.sidecars[index].startupProbe.httpGet - +### PulsarCluster.spec.global.components +Pulsar cluster components names. @@ -55586,48 +61065,68 @@ Service configuration. - + - - + + - + - - + + - + + + + + + + + + + +
hostautorecoveryBaseName string -
+ Autorecovery base name. Default value is 'autorecovery'.
false
httpHeaders[]objectbastionBaseNamestring -
+ Bastion base name. Default value is 'bastion'.
false
pathbookkeeperBaseName string -
+ BookKeeper base name. Default value is 'bookkeeper'.
false
portint or stringbrokerBaseNamestring -
+ Broker base name. Default value is 'broker'.
false
schemefunctionsWorkerBaseName string -
+ Functions Worker base name. Default value is 'function'.
+
false
proxyBaseNamestring + Proxy base name. Default value is 'proxy'.
+
false
zookeeperBaseNamestring + Zookeeper base name. Default value is 'zookeeper'.
false
-### PulsarCluster.spec.functionsWorker.sidecars[index].startupProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.global.dnsConfig +Override default DNS config for each pod. Note that because we use fully qualified service names for intra +cluster networking with Pulsar components, we set the ndots value to 4 (the default is 5). This prevents +unnecessary DNS lookups for the fully qualified service names that would be guaranteed to result in NXDOMAIN. +For example, the name 'pulsar-broker.pulsar.svc.cluster.local' has 4 dots, so it would be resolved directly +instead of appending the configured search domains. + More info here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config. @@ -55640,15 +61139,22 @@ Service configuration. - - + + - - + + + + + + + @@ -55657,7 +61163,7 @@ Service configuration.
namestringnameservers[]string
false
valuestringoptions[]object +
+
false
searches[]string
-### PulsarCluster.spec.functionsWorker.sidecars[index].startupProbe.tcpSocket +### PulsarCluster.spec.global.dnsConfig.options[index] @@ -55673,15 +61179,15 @@ Service configuration. - host + name string
false - port - int or string + value + string
@@ -55690,7 +61196,7 @@ Service configuration. -### PulsarCluster.spec.functionsWorker.sidecars[index].volumeDevices[index] +### PulsarCluster.spec.global.racks[key] @@ -55706,28 +61212,28 @@ Service configuration. - devicePath - string + host + object -
+ Enable rack rules based on the hostname of the node.
false - name - string + zone + object -
+ Enable rack rules based on the failure domain (availability zone) of the node.
false -### PulsarCluster.spec.functionsWorker.sidecars[index].volumeMounts[index] - +### PulsarCluster.spec.global.racks[key].host +Enable rack rules based on the hostname of the node. @@ -55739,56 +61245,35 @@ Service configuration. - - - - - - - - - - - - - - - - + - - + + - - + +
mountPathstring -
-
false
mountPropagationstring -
-
false
namestring -
-
false
readOnlyenabled boolean -
+ Enable the rack affinity rules.
false
subPathstringrequireRackAffinityboolean -
+ Indicates if the podAffinity rules will be enforced. Default is false. If required, the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'.
false
subPathExprstringrequireRackAntiAffinityboolean -
+ Indicates if the podAntiAffinity rules will be enforced. Default is true. If required, the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'.
false
-### PulsarCluster.spec.functionsWorker.tolerations[index] - +### PulsarCluster.spec.global.racks[key].zone +Enable rack rules based on the failure domain (availability zone) of the node. @@ -55800,49 +61285,49 @@ Service configuration. - - + + - - + + - - + + - - + + - - + +
effectstringenableHostAntiAffinityboolean -
+ Enable the host anti affinity. If set, all the pods of the same rack will deployed on different nodes of the same zone.Default is true.
false
keystringenabledboolean -
+ Enable the rack affinity rules.
false
operatorstringrequireRackAffinityboolean -
+ Indicates if the podAffinity rules will be enforced. Default is false. If required, the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'.
false
tolerationSecondsintegerrequireRackAntiAffinityboolean -
+ Indicates if the podAntiAffinity rules will be enforced. Default is true. If required, the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'.
false
valuestringrequireRackHostAntiAffinityboolean -
+ Indicates if the podAntiAffinity rules will be enforced for the host. Default is true. If required, the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'.
false
-### PulsarCluster.spec.functionsWorker.updateStrategy +### PulsarCluster.spec.global.resourceSets[key] + -Update strategy for the StatefulSet. @@ -55854,28 +61339,21 @@ Update strategy for the StatefulSet. - - - - - - +
rollingUpdateobject -
-
false
typerack string -
+ Place this resource set to a specific rack, defined at .global.racks.
false
-### PulsarCluster.spec.functionsWorker.updateStrategy.rollingUpdate - +### PulsarCluster.spec.global.storage +Storage configuration. @@ -55887,28 +61365,28 @@ Update strategy for the StatefulSet. - - + + - - + +
maxUnavailableint or stringexistingStorageClassNamestring -
+ Indicates if an already existing storage class should be used.
false
partitionintegerstorageClassobject -
+ Indicates if a StorageClass is used. The operator will create the StorageClass if needed.
false
-### PulsarCluster.spec.global - +### PulsarCluster.spec.global.storage.storageClass +Indicates if a StorageClass is used. The operator will create the StorageClass if needed. @@ -55920,160 +61398,159 @@ Update strategy for the StatefulSet. - - + + - + - - + + - - + + - + - - + + - - + +
namestringextraParamsmap[string]string - Name of the Pulsar cluster spec. This is used as a prefix for managed Kubernetes resources.
+ Adds extra parameters for the StorageClass.
truefalse
antiAffinityobjectfsTypestring - Pod anti affinity configuration.
+ Indicates the 'fsType' parameter for the StorageClass.
false
authobjectprovisionerstring - Authentication and authorization configuration. -
+ Indicates the provisioner property for the StorageClass.
false
clusterNamereclaimPolicy string - Corresponds to the 'clusterName' field in the broker.conf. Defaults to the value of the 'name' field
+ Indicates the reclaimPolicy property for the StorageClass.
false
componentsobjecttypestring - Pulsar cluster components names.
+ Indicates the 'type' parameter for the StorageClass.
false
dnsConfig
+ + +### PulsarCluster.spec.global.tls + + + +TLS configuration for the cluster. + + + + + + + + + + + + - - + + - - + + - - + + - + - - - - - - - + + - + - - + + - - + + - - + + - - + + - + - - + +
NameTypeDescriptionRequired
autorecovery object - Override default DNS config for each pod. Note that because we use fully qualified service names for intra -cluster networking with Pulsar components, we set the ndots value to 4 (the default is 5). This prevents -unnecessary DNS lookups for the fully qualified service names that would be guaranteed to result in NXDOMAIN. -For example, the name 'pulsar-broker.pulsar.svc.cluster.local' has 4 dots, so it would be resolved directly -instead of appending the configured search domains. - More info here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config. -
+ TLS configurations related to the Autorecovery component.
false
dnsNamestringbookkeeperobject - Public dns name for the cluster's load balancer.
+ TLS configurations related to the BookKeeper component.
false
imagestringbrokerobject - Default Pulsar image to use. Any components can be configured to use a different image.
+ TLS configurations related to the Broker component.
false
imagePullPolicystringbrokerResourceSetsmap[string]object - Default Pulsar image pull policy to use. Any components can be configured to use a different image pull policy. Default value is 'IfNotPresent'.
+ TLS configurations related to the Broker resource sets.
false
kubernetesClusterDomaincaPath string - The domain name for your kubernetes cluster. -This domain is documented here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#a-aaaa-records-1 . -It's used to fully qualify service names when configuring Pulsar. -The default value is 'cluster.local'. -
-
false
nodeSelectorsmap[string]string - Global node selector. If set, this will apply to all the components.
+ Path in the container filesystem where the TLS CA certificates are retrieved. It has to point to a certificate file. The default value is /etc/ssl/certs/ca-certificates.crt.
false
persistencebooleancertProvisionerobject - If persistence is enabled, components that has state will be deployed with PersistentVolumeClaims, otherwise, for test purposes, they will be deployed with emptyDir -
+ Certificate provisioner configuration.
false
priorityClassNamedefaultSecretName string - Priority class name to attach to each pod.
+ Secret name used by each component to load TLS certificates. Each component can load a different secret by setting the 'secretName' entry in the tls component spec.
false
racksmap[string]objectenabledboolean - Racks configuration.
+ Deprecated. Use the 'enabled' field in each component spec instead.
false
resourceSetsmap[string]objectfunctionsWorkerobject - Resource sets.
+ TLS configurations related to the Functions worker component.
false
restartOnConfigMapChangebooleanproxyobject - By default, Kubernetes will not restart pods when only their configmap is changed. This setting will restart pods when their configmap is changed using an annotation that calculates the checksum of the configmap. -
+ TLS configurations related to the Proxy component.
false
storageobjectproxyResourceSetsmap[string]object - Storage configuration.
+ TLS configurations related to the Proxy resource sets.
false
tlsssCa object - TLS configuration for the cluster.
+ TLS configurations used by additional components, such as the Bastion component.
false
zookeeperPlainSslStorePasswordbooleanzookeeperobject - Use plain password in zookeeper server and client configuration. Default is false. Old versions of Apache Zookeeper (<3.8.0) does not support getting password from file. In that case, set this to true.
+ TLS configurations related to the ZooKeeper component.
false
-### PulsarCluster.spec.global.antiAffinity +### PulsarCluster.spec.global.tls.autorecovery -Pod anti affinity configuration. +TLS configurations related to the Autorecovery component. @@ -56085,28 +61562,28 @@ Pod anti affinity configuration. - - + + - - + +
hostobjectenabledboolean - Indicates the reclaimPolicy property for the StorageClass.
+ Enable TLS.
false
zoneobjectsecretNamestring - Indicates the provisioner property for the StorageClass.
+ Override the default secret name from where to load the certificates.
false
-### PulsarCluster.spec.global.antiAffinity.host +### PulsarCluster.spec.global.tls.bookkeeper -Indicates the reclaimPolicy property for the StorageClass. +TLS configurations related to the BookKeeper component. @@ -56121,25 +61598,25 @@ Indicates the reclaimPolicy property for the StorageClass. - - + +
enabled boolean - Indicates the reclaimPolicy property for the StorageClass.
+ Enable TLS.
false
requiredbooleansecretNamestring - Indicates the reclaimPolicy property for the StorageClass.
+ Override the default secret name from where to load the certificates.
false
-### PulsarCluster.spec.global.antiAffinity.zone +### PulsarCluster.spec.global.tls.broker -Indicates the provisioner property for the StorageClass. +TLS configurations related to the Broker component. @@ -56154,25 +61631,24 @@ Indicates the provisioner property for the StorageClass. - - + +
enabled boolean - Indicates the reclaimPolicy property for the StorageClass.
+ Enable TLS.
false
requiredbooleansecretNamestring - Indicates the reclaimPolicy property for the StorageClass.
+ Override the default secret name from where to load the certificates.
false
-### PulsarCluster.spec.global.auth +### PulsarCluster.spec.global.tls.brokerResourceSets[key] -Authentication and authorization configuration. @@ -56188,25 +61664,25 @@ Authentication and authorization configuration. - - + +
enabled boolean - Enable authentication in the cluster. Default is 'false'.
+ Enable TLS.
false
tokenobjectsecretNamestring - Token based authentication configuration.
+ Override the default secret name from where to load the certificates.
false
-### PulsarCluster.spec.global.auth.token +### PulsarCluster.spec.global.tls.certProvisioner -Token based authentication configuration. +Certificate provisioner configuration. @@ -56218,49 +61694,28 @@ Token based authentication configuration. - - - - - - - - - - - - - - - - - + + - - + +
initializeboolean - Initialize Secrets with new pair of keys and tokens for the super user roles. The generated Secret name is 'token-'.
-
false
privateKeyFilestring - Private key file name stored in the Secret. Default is 'my-private.key'
-
false
proxyRoles[]string - Proxy roles.
-
false
publicKeyFilestringacmeobject - Public key file name stored in the Secret. Default is 'my-public.key'
+ ACME certificate provisioner configuration.
false
superUserRoles[]stringselfSignedobject - Super user roles.
+ Self signed certificate provisioner configuration.
false
-### PulsarCluster.spec.global.components +### PulsarCluster.spec.global.tls.certProvisioner.acme -Pulsar cluster components names. +ACME certificate provisioner configuration. @@ -56272,69 +61727,56 @@ Pulsar cluster components names. - - - - - - - + + - - + + - - + + - - + + - - + + - - + +
autorecoveryBaseNamestring - Autorecovery base name. Default value is 'autorecovery'.
-
false
bastionBaseNamestringbrokerobject - Bastion base name. Default value is 'bastion'.
+ Broker self signed certificate config.
false
bookkeeperBaseNamestringenabledboolean - BookKeeper base name. Default value is 'bookkeeper'.
+ Generate self signed certificates for broker, proxy and functions worker.
false
brokerBaseNamestringexternalmap[string]object - Broker base name. Default value is 'broker'.
+ External services self signed certificate config (e.g., admin console, grafana). The key is the service name, and the value contains generation config
false
functionsWorkerBaseNamestringissuerobject - Functions Worker base name. Default value is 'function'.
+ ACME issuer configuration.
false
proxyBaseNamestringprivateKeyobject - Proxy base name. Default value is 'proxy'.
+ Cert-manager options for generating the private key.
false
zookeeperBaseNamestringproxyobject - Zookeeper base name. Default value is 'zookeeper'.
+ Proxy self signed certificate config.
false
-### PulsarCluster.spec.global.dnsConfig - +### PulsarCluster.spec.global.tls.certProvisioner.acme.broker -Override default DNS config for each pod. Note that because we use fully qualified service names for intra -cluster networking with Pulsar components, we set the ndots value to 4 (the default is 5). This prevents -unnecessary DNS lookups for the fully qualified service names that would be guaranteed to result in NXDOMAIN. -For example, the name 'pulsar-broker.pulsar.svc.cluster.local' has 4 dots, so it would be resolved directly -instead of appending the configured search domains. - More info here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config. +Broker self signed certificate config. @@ -56346,35 +61788,42 @@ instead of appending the configured search domains. - + - - + + - - + + + + + + +
nameserversdnsNames []string -
+ A list of DNS names (and IP addresses) to include in the certificate's Subject Alternative Names (SANs) extension.
false
options[]objectgenerateboolean -
+ Generate certificate for the component.
false
searches[]stringprivateKeyobject -
+ Cert-manager options for generating the private key.
+
false
secretNamestring + The name of the Kubernetes Secret where the generated certificate and key will be stored whe perComponent is enabled. Required for external services. Internal services pick up the secret name from the tls config if not specified
false
-### PulsarCluster.spec.global.dnsConfig.options[index] - +### PulsarCluster.spec.global.tls.certProvisioner.acme.broker.privateKey +Cert-manager options for generating the private key. @@ -56386,24 +61835,38 @@ instead of appending the configured search domains. - + - + + + + + + + + + + +
namealgorithm string
false
valueencodingstring +
+
false
rotationPolicy string
false
sizeinteger +
+
false
-### PulsarCluster.spec.global.racks[key] +### PulsarCluster.spec.global.tls.certProvisioner.acme.external[key] @@ -56419,28 +61882,42 @@ instead of appending the configured search domains. - host - object + dnsNames + []string - Enable rack rules based on the hostname of the node.
+ A list of DNS names (and IP addresses) to include in the certificate's Subject Alternative Names (SANs) extension.
false - zone + generate + boolean + + Generate certificate for the component.
+ + false + + privateKey object - Enable rack rules based on the failure domain (availability zone) of the node.
+ Cert-manager options for generating the private key.
+ + false + + secretName + string + + The name of the Kubernetes Secret where the generated certificate and key will be stored whe perComponent is enabled. Required for external services. Internal services pick up the secret name from the tls config if not specified
false -### PulsarCluster.spec.global.racks[key].host +### PulsarCluster.spec.global.tls.certProvisioner.acme.external[key].privateKey -Enable rack rules based on the hostname of the node. +Cert-manager options for generating the private key. @@ -56452,35 +61929,42 @@ Enable rack rules based on the hostname of the node. - - + + - - + + - - + + + + + + +
enabledbooleanalgorithmstring - Enable the rack affinity rules.
+
false
requireRackAffinitybooleanencodingstring - Indicates if the podAffinity rules will be enforced. Default is false. If required, the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'.
+
false
requireRackAntiAffinitybooleanrotationPolicystring - Indicates if the podAntiAffinity rules will be enforced. Default is true. If required, the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'.
+
+
false
sizeinteger +
false
-### PulsarCluster.spec.global.racks[key].zone +### PulsarCluster.spec.global.tls.certProvisioner.acme.issuer -Enable rack rules based on the failure domain (availability zone) of the node. +ACME issuer configuration. @@ -56492,45 +61976,45 @@ Enable rack rules based on the failure domain (availability zone) of the node. - - + + - - + + - - + + - - + + - - + +
enableHostAntiAffinitybooleanemailstring - Enable the host anti affinity. If set, all the pods of the same rack will deployed on different nodes of the same zone.Default is true.
+ Email used for ACME registration.
false
enabledbooleannamestring - Enable the rack affinity rules.
+ Name of the Issuer resource.
false
requireRackAffinitybooleanprivateKeySecretNamestring - Indicates if the podAffinity rules will be enforced. Default is false. If required, the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'.
+ Secret storing the ACME account private key.
false
requireRackAntiAffinitybooleanserverstring - Indicates if the podAntiAffinity rules will be enforced. Default is true. If required, the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'.
+ ACME server URL.
false
requireRackHostAntiAffinitybooleansolvers[]object - Indicates if the podAntiAffinity rules will be enforced for the host. Default is true. If required, the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'.
+ ACME challenge solvers. Solvers are evaluated in order; no domain-based routing
false
-### PulsarCluster.spec.global.resourceSets[key] +### PulsarCluster.spec.global.tls.certProvisioner.acme.issuer.solvers[index] @@ -56546,21 +62030,28 @@ Enable rack rules based on the failure domain (availability zone) of the node. - rack - string + dns01 + object - Place this resource set to a specific rack, defined at .global.racks.
+ DNS01 solver configuration.
+ + false + + http01 + object + + HTTP01 solver configuration.
false -### PulsarCluster.spec.global.storage +### PulsarCluster.spec.global.tls.certProvisioner.acme.issuer.solvers[index].dns01 -Storage configuration. +DNS01 solver configuration. @@ -56572,28 +62063,35 @@ Storage configuration. - - + + - + + + + + +
existingStorageClassNamestringcloudDNSobject - Indicates if an already existing storage class should be used.
+
false
storageClasscloudflare object - Indicates if a StorageClass is used. The operator will create the StorageClass if needed.
+
+
false
route53object +
false
-### PulsarCluster.spec.global.storage.storageClass +### PulsarCluster.spec.global.tls.certProvisioner.acme.issuer.solvers[index].dns01.cloudDNS + -Indicates if a StorageClass is used. The operator will create the StorageClass if needed. @@ -56605,49 +62103,35 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - - - - - - - - - - - + - + - +
extraParamsmap[string]string - Adds extra parameters for the StorageClass.
-
false
fsTypestring - Indicates the 'fsType' parameter for the StorageClass.
-
false
provisionerproject string - Indicates the provisioner property for the StorageClass.
+
false
reclaimPolicyserviceAccountSecretKey string - Indicates the reclaimPolicy property for the StorageClass.
+
false
typeserviceAccountSecretName string - Indicates the 'type' parameter for the StorageClass.
+
false
-### PulsarCluster.spec.global.tls +### PulsarCluster.spec.global.tls.certProvisioner.acme.issuer.solvers[index].dns01.cloudflare + -TLS configuration for the cluster. @@ -56659,105 +62143,35 @@ TLS configuration for the cluster. - - - - - - - - - - - - - - - - - - - - - + - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + +
autorecoveryobject - TLS configurations related to the Autorecovery component.
-
false
bookkeeperobject - TLS configurations related to the BookKeeper component.
-
false
brokerobject - TLS configurations related to the Broker component.
-
false
brokerResourceSetsmap[string]object - TLS configurations related to the Broker resource sets.
-
false
caPathapiTokenSecretKey string - Path in the container filesystem where the TLS CA certificates are retrieved. It has to point to a certificate file. The default value is /etc/ssl/certs/ca-certificates.crt.
-
false
certProvisionerobject - Certificate provisioner configuration.
+
false
defaultSecretNameapiTokenSecretName string - Secret name used by each component to load TLS certificates. Each component can load a different secret by setting the 'secretName' entry in the tls component spec.
-
false
enabledboolean - Deprecated. Use the 'enabled' field in each component spec instead.
-
false
functionsWorkerobject - TLS configurations related to the Functions worker component.
-
false
proxyobject - TLS configurations related to the Proxy component.
-
false
proxyResourceSetsmap[string]object - TLS configurations related to the Proxy resource sets.
-
false
ssCaobject - TLS configurations used by additional components, such as the Bastion component.
+
false
zookeeperobjectemailstring - TLS configurations related to the ZooKeeper component.
+
false
-### PulsarCluster.spec.global.tls.autorecovery +### PulsarCluster.spec.global.tls.certProvisioner.acme.issuer.solvers[index].dns01.route53 + -TLS configurations related to the Autorecovery component. @@ -56769,28 +62183,28 @@ TLS configurations related to the Autorecovery component. - - + + - +
enabledbooleanhostedZoneIdstring - Enable TLS.
+
false
secretNameregion string - Override the default secret name from where to load the certificates.
+
false
-### PulsarCluster.spec.global.tls.bookkeeper +### PulsarCluster.spec.global.tls.certProvisioner.acme.issuer.solvers[index].http01 -TLS configurations related to the BookKeeper component. +HTTP01 solver configuration. @@ -56802,28 +62216,21 @@ TLS configurations related to the BookKeeper component. - - - - - - +
enabledboolean - Enable TLS.
-
false
secretNameingressClass string - Override the default secret name from where to load the certificates.
+ Ingress class used for HTTP01 challenge.
false
-### PulsarCluster.spec.global.tls.broker +### PulsarCluster.spec.global.tls.certProvisioner.acme.privateKey -TLS configurations related to the Broker component. +Cert-manager options for generating the private key. @@ -56835,28 +62242,42 @@ TLS configurations related to the Broker component. - - + + - + + + + + + + + + + +
enabledbooleanalgorithmstring - Enable TLS.
+
false
secretNameencoding string - Override the default secret name from where to load the certificates.
+
+
false
rotationPolicystring +
+
false
sizeinteger +
false
-### PulsarCluster.spec.global.tls.brokerResourceSets[key] - +### PulsarCluster.spec.global.tls.certProvisioner.acme.proxy +Proxy self signed certificate config. @@ -56868,28 +62289,42 @@ TLS configurations related to the Broker component. - + + + + + + + + + + +
enableddnsNames[]string + A list of DNS names (and IP addresses) to include in the certificate's Subject Alternative Names (SANs) extension.
+
false
generate boolean - Enable TLS.
+ Generate certificate for the component.
+
false
privateKeyobject + Cert-manager options for generating the private key.
false
secretName string - Override the default secret name from where to load the certificates.
+ The name of the Kubernetes Secret where the generated certificate and key will be stored whe perComponent is enabled. Required for external services. Internal services pick up the secret name from the tls config if not specified
false
-### PulsarCluster.spec.global.tls.certProvisioner +### PulsarCluster.spec.global.tls.certProvisioner.acme.proxy.privateKey -Certificate provisioner configuration. +Cert-manager options for generating the private key. @@ -56901,10 +62336,31 @@ Certificate provisioner configuration. - - + + + + + + + + + + + + + + + + + @@ -56961,6 +62417,13 @@ Self signed certificate provisioner configuration. Generate self signed certificates for broker, proxy and functions worker.
+ + + + + @@ -57023,10 +62486,17 @@ Autorecovery self signed certificate config. + + + + + @@ -57036,6 +62506,13 @@ Autorecovery self signed certificate config. Cert-manager options for generating the private key.
+ + + + +
selfSignedobjectalgorithmstring - Self signed certificate provisioner configuration.
+
+
false
encodingstring +
+
false
rotationPolicystring +
+
false
sizeinteger +
false
false
externalmap[string]object + External services self signed certificate config (e.g., admin console, grafana). The key is the service name, and the value contains generation config
+
false
functionsWorker object
dnsNames[]string + A list of DNS names (and IP addresses) to include in the certificate's Subject Alternative Names (SANs) extension.
+
false
generate boolean - Generate self signed certificates for the component.
+ Generate certificate for the component.
false
false
secretNamestring + The name of the Kubernetes Secret where the generated certificate and key will be stored whe perComponent is enabled. Required for external services. Internal services pick up the secret name from the tls config if not specified
+
false
@@ -57103,10 +62580,17 @@ Bookkeeper self signed certificate config. + dnsNames + []string + + A list of DNS names (and IP addresses) to include in the certificate's Subject Alternative Names (SANs) extension.
+ + false + generate boolean - Generate self signed certificates for the component.
+ Generate certificate for the component.
false @@ -57116,6 +62600,13 @@ Bookkeeper self signed certificate config. Cert-manager options for generating the private key.
false + + secretName + string + + The name of the Kubernetes Secret where the generated certificate and key will be stored whe perComponent is enabled. Required for external services. Internal services pick up the secret name from the tls config if not specified
+ + false @@ -57167,11 +62658,105 @@ Cert-manager options for generating the private key. -### PulsarCluster.spec.global.tls.certProvisioner.selfSigned.broker +### PulsarCluster.spec.global.tls.certProvisioner.selfSigned.broker + + + +Broker self signed certificate config. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
dnsNames[]string + A list of DNS names (and IP addresses) to include in the certificate's Subject Alternative Names (SANs) extension.
+
false
generateboolean + Generate certificate for the component.
+
false
privateKeyobject + Cert-manager options for generating the private key.
+
false
secretNamestring + The name of the Kubernetes Secret where the generated certificate and key will be stored whe perComponent is enabled. Required for external services. Internal services pick up the secret name from the tls config if not specified
+
false
+ + +### PulsarCluster.spec.global.tls.certProvisioner.selfSigned.broker.privateKey + + + +Cert-manager options for generating the private key. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
algorithmstring +
+
false
encodingstring +
+
false
rotationPolicystring +
+
false
sizeinteger +
+
false
+ + +### PulsarCluster.spec.global.tls.certProvisioner.selfSigned.external[key] + -Broker self signed certificate config. @@ -57183,24 +62768,38 @@ Broker self signed certificate config. + + + + + - + + + + + +
dnsNames[]string + A list of DNS names (and IP addresses) to include in the certificate's Subject Alternative Names (SANs) extension.
+
false
generate boolean - Generate self signed certificates for the component.
+ Generate certificate for the component.
false
privateKeyprivateKey object Cert-manager options for generating the private key.
false
secretNamestring + The name of the Kubernetes Secret where the generated certificate and key will be stored whe perComponent is enabled. Required for external services. Internal services pick up the secret name from the tls config if not specified
+
false
-### PulsarCluster.spec.global.tls.certProvisioner.selfSigned.broker.privateKey +### PulsarCluster.spec.global.tls.certProvisioner.selfSigned.external[key].privateKey @@ -57263,10 +62862,17 @@ Functions worker self signed certificate config. + dnsNames + []string + + A list of DNS names (and IP addresses) to include in the certificate's Subject Alternative Names (SANs) extension.
+ + false + generate boolean - Generate self signed certificates for the component.
+ Generate certificate for the component.
false @@ -57276,6 +62882,13 @@ Functions worker self signed certificate config. Cert-manager options for generating the private key.
false + + secretName + string + + The name of the Kubernetes Secret where the generated certificate and key will be stored whe perComponent is enabled. Required for external services. Internal services pick up the secret name from the tls config if not specified
+ + false @@ -57390,10 +63003,17 @@ Proxy self signed certificate config. + dnsNames + []string + + A list of DNS names (and IP addresses) to include in the certificate's Subject Alternative Names (SANs) extension.
+ + false + generate boolean - Generate self signed certificates for the component.
+ Generate certificate for the component.
false @@ -57403,6 +63023,13 @@ Proxy self signed certificate config. Cert-manager options for generating the private key.
false + + secretName + string + + The name of the Kubernetes Secret where the generated certificate and key will be stored whe perComponent is enabled. Required for external services. Internal services pick up the secret name from the tls config if not specified
+ + false @@ -57470,10 +63097,17 @@ Zookeeper self signed certificate config. + dnsNames + []string + + A list of DNS names (and IP addresses) to include in the certificate's Subject Alternative Names (SANs) extension.
+ + false + generate boolean - Generate self signed certificates for the component.
+ Generate certificate for the component.
false @@ -57483,6 +63117,13 @@ Zookeeper self signed certificate config. Cert-manager options for generating the private key.
false + + secretName + string + + The name of the Kubernetes Secret where the generated certificate and key will be stored whe perComponent is enabled. Required for external services. Internal services pick up the secret name from the tls config if not specified
+ + false @@ -57828,6 +63469,13 @@ TLS configurations related to the ZooKeeper component. Match labels selectors to add to each pod.
false + + minReadySeconds + integer + + Min seconds to wait before considering the pod as ready.
+ + false nodeAffinity object @@ -57891,6 +63539,13 @@ TLS configurations related to the ZooKeeper component. Resources requirements.
false + + securityContext + object + + Subset of PodSecurityContext for basic UID, GID, and volume access control.
+ + false service object @@ -58034,6 +63689,13 @@ Mount additional volumes to the pod.
false + + recursiveReadOnly + string + +
+ + false subPath string @@ -58186,6 +63848,13 @@ Mount additional volumes to the pod.
false + + image + object + +
+ + false iscsi object @@ -59311,6 +64980,13 @@ Mount additional volumes to the pod.
false + + volumeAttributesClassName + string + +
+ + false volumeMode string @@ -59405,6 +65081,13 @@ Mount additional volumes to the pod.
false + + namespace + string + +
+ + false @@ -59842,6 +65525,39 @@ Mount additional volumes to the pod. +### PulsarCluster.spec.proxy.additionalVolumes.volumes[index].image + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
pullPolicystring +
+
false
referencestring +
+
false
+ + ### PulsarCluster.spec.proxy.additionalVolumes.volumes[index].iscsi @@ -60159,6 +65875,13 @@ Mount additional volumes to the pod. + clusterTrustBundle + object + +
+ + false + configMap object @@ -60190,6 +65913,133 @@ Mount additional volumes to the pod. +### PulsarCluster.spec.proxy.additionalVolumes.volumes[index].projected.sources[index].clusterTrustBundle + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
labelSelectorobject +
+
false
namestring +
+
false
optionalboolean +
+
false
pathstring +
+
false
signerNamestring +
+
false
+ + +### PulsarCluster.spec.proxy.additionalVolumes.volumes[index].projected.sources[index].clusterTrustBundle.labelSelector + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
matchExpressions[]object +
+
false
matchLabelsmap[string]string +
+
false
+ + +### PulsarCluster.spec.proxy.additionalVolumes.volumes[index].projected.sources[index].clusterTrustBundle.labelSelector.matchExpressions[index] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
keystring +
+
false
operatorstring +
+
false
values[]string +
+
false
+ + ### PulsarCluster.spec.proxy.additionalVolumes.volumes[index].projected.sources[index].configMap @@ -61484,6 +67334,13 @@ Indicates the provisioner property for the StorageClass.
false + + resizePolicy + []object + +
+ + false resources object @@ -61491,6 +67348,13 @@ Indicates the provisioner property for the StorageClass.
false + + restartPolicy + string + +
+ + false securityContext object @@ -61940,6 +67804,13 @@ Indicates the provisioner property for the StorageClass.
false + + stopSignal + string + +
+ + false @@ -61973,6 +67844,13 @@ Indicates the provisioner property for the StorageClass.
false + + sleep + object + +
+ + false tcpSocket object @@ -62097,6 +67975,32 @@ Indicates the provisioner property for the StorageClass. +### PulsarCluster.spec.proxy.initContainers[index].lifecycle.postStart.sleep + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
secondsinteger +
+
false
+ + ### PulsarCluster.spec.proxy.initContainers[index].lifecycle.postStart.tcpSocket @@ -62159,6 +68063,13 @@ Indicates the provisioner property for the StorageClass.
false + + sleep + object + +
+ + false tcpSocket object @@ -62283,6 +68194,32 @@ Indicates the provisioner property for the StorageClass. +### PulsarCluster.spec.proxy.initContainers[index].lifecycle.preStop.sleep + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
secondsinteger +
+
false
+ + ### PulsarCluster.spec.proxy.initContainers[index].lifecycle.preStop.tcpSocket @@ -62906,6 +68843,39 @@ Indicates the provisioner property for the StorageClass. +### PulsarCluster.spec.proxy.initContainers[index].resizePolicy[index] + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
resourceNamestring +
+
false
restartPolicystring +
+
false
+ + ### PulsarCluster.spec.proxy.initContainers[index].resources @@ -62922,6 +68892,13 @@ Indicates the provisioner property for the StorageClass. + claims + []object + +
+ + false + limits map[string]int or string @@ -62939,6 +68916,39 @@ Indicates the provisioner property for the StorageClass. +### PulsarCluster.spec.proxy.initContainers[index].resources.claims[index] + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
namestring +
+
false
requeststring +
+
false
+ + ### PulsarCluster.spec.proxy.initContainers[index].securityContext @@ -62961,6 +68971,13 @@ Indicates the provisioner property for the StorageClass.
false + + appArmorProfile + object + +
+ + false capabilities object @@ -63035,6 +69052,39 @@ Indicates the provisioner property for the StorageClass. +### PulsarCluster.spec.proxy.initContainers[index].securityContext.appArmorProfile + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
localhostProfilestring +
+
false
typestring +
+
false
+ + ### PulsarCluster.spec.proxy.initContainers[index].securityContext.capabilities @@ -63539,6 +69589,13 @@ Indicates the provisioner property for the StorageClass.
false + + recursiveReadOnly + string + +
+ + false subPath string @@ -63937,6 +69994,13 @@ Pod disruption budget configuration. Number of maxUnavailable pods.
false + + minAvailable + integer + + Number of minAvailable pods.
+ + false @@ -64126,6 +70190,13 @@ Resources requirements. + claims + []object + +
+ + false + limits map[string]int or string @@ -64143,6 +70214,100 @@ Resources requirements. +### PulsarCluster.spec.proxy.resources.claims[index] + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
namestring +
+
false
requeststring +
+
false
+ + +### PulsarCluster.spec.proxy.securityContext + + + +Subset of PodSecurityContext for basic UID, GID, and volume access control. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
fsGroupinteger +
+
false
fsGroupChangePolicystring +
+
false
runAsGroupinteger +
+
false
runAsNonRootboolean +
+
false
runAsUserinteger +
+
false
supplementalGroups[]integer +
+
false
+ + ### PulsarCluster.spec.proxy.service @@ -64179,6 +70344,13 @@ Service configuration. Enable plain text connections even if TLS is enabled.
false + + loadBalancerClass + string + + Assign a load balancer class.
+ + false loadBalancerIP string @@ -64366,6 +70538,13 @@ Service configuration. Match labels selectors to add to each pod.
false + + minReadySeconds + integer + + Min seconds to wait before considering the pod as ready.
+ + false nodeAffinity object @@ -64429,6 +70608,13 @@ Service configuration. Resources requirements.
false + + securityContext + object + + Subset of PodSecurityContext for basic UID, GID, and volume access control.
+ + false service object @@ -64558,6 +70744,13 @@ Mount additional volumes to the pod.
false + + recursiveReadOnly + string + +
+ + false subPath string @@ -64710,6 +70903,13 @@ Mount additional volumes to the pod.
false + + image + object + +
+ + false iscsi object @@ -65835,6 +72035,13 @@ Mount additional volumes to the pod.
false + + volumeAttributesClassName + string + +
+ + false volumeMode string @@ -65929,6 +72136,13 @@ Mount additional volumes to the pod.
false + + namespace + string + +
+ + false @@ -66366,6 +72580,39 @@ Mount additional volumes to the pod. +### PulsarCluster.spec.proxy.sets[key].additionalVolumes.volumes[index].image + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
pullPolicystring +
+
false
referencestring +
+
false
+ + ### PulsarCluster.spec.proxy.sets[key].additionalVolumes.volumes[index].iscsi @@ -66683,6 +72930,13 @@ Mount additional volumes to the pod. + clusterTrustBundle + object + +
+ + false + configMap object @@ -66714,6 +72968,133 @@ Mount additional volumes to the pod. +### PulsarCluster.spec.proxy.sets[key].additionalVolumes.volumes[index].projected.sources[index].clusterTrustBundle + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
labelSelectorobject +
+
false
namestring +
+
false
optionalboolean +
+
false
pathstring +
+
false
signerNamestring +
+
false
+ + +### PulsarCluster.spec.proxy.sets[key].additionalVolumes.volumes[index].projected.sources[index].clusterTrustBundle.labelSelector + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
matchExpressions[]object +
+
false
matchLabelsmap[string]string +
+
false
+ + +### PulsarCluster.spec.proxy.sets[key].additionalVolumes.volumes[index].projected.sources[index].clusterTrustBundle.labelSelector.matchExpressions[index] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
keystring +
+
false
operatorstring +
+
false
values[]string +
+
false
+ + ### PulsarCluster.spec.proxy.sets[key].additionalVolumes.volumes[index].projected.sources[index].configMap @@ -68008,6 +74389,13 @@ Indicates the provisioner property for the StorageClass.
false + + resizePolicy + []object + +
+ + false resources object @@ -68015,6 +74403,13 @@ Indicates the provisioner property for the StorageClass.
false + + restartPolicy + string + +
+ + false securityContext object @@ -68464,6 +74859,13 @@ Indicates the provisioner property for the StorageClass.
false + + stopSignal + string + +
+ + false @@ -68497,6 +74899,13 @@ Indicates the provisioner property for the StorageClass.
false + + sleep + object + +
+ + false tcpSocket object @@ -68621,6 +75030,32 @@ Indicates the provisioner property for the StorageClass. +### PulsarCluster.spec.proxy.sets[key].initContainers[index].lifecycle.postStart.sleep + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
secondsinteger +
+
false
+ + ### PulsarCluster.spec.proxy.sets[key].initContainers[index].lifecycle.postStart.tcpSocket @@ -68683,6 +75118,13 @@ Indicates the provisioner property for the StorageClass.
false + + sleep + object + +
+ + false tcpSocket object @@ -68807,6 +75249,32 @@ Indicates the provisioner property for the StorageClass. +### PulsarCluster.spec.proxy.sets[key].initContainers[index].lifecycle.preStop.sleep + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
secondsinteger +
+
false
+ + ### PulsarCluster.spec.proxy.sets[key].initContainers[index].lifecycle.preStop.tcpSocket @@ -69430,6 +75898,39 @@ Indicates the provisioner property for the StorageClass. +### PulsarCluster.spec.proxy.sets[key].initContainers[index].resizePolicy[index] + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
resourceNamestring +
+
false
restartPolicystring +
+
false
+ + ### PulsarCluster.spec.proxy.sets[key].initContainers[index].resources @@ -69446,6 +75947,13 @@ Indicates the provisioner property for the StorageClass. + claims + []object + +
+ + false + limits map[string]int or string @@ -69463,6 +75971,39 @@ Indicates the provisioner property for the StorageClass. +### PulsarCluster.spec.proxy.sets[key].initContainers[index].resources.claims[index] + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
namestring +
+
false
requeststring +
+
false
+ + ### PulsarCluster.spec.proxy.sets[key].initContainers[index].securityContext @@ -69485,6 +76026,13 @@ Indicates the provisioner property for the StorageClass.
false + + appArmorProfile + object + +
+ + false capabilities object @@ -69559,6 +76107,39 @@ Indicates the provisioner property for the StorageClass. +### PulsarCluster.spec.proxy.sets[key].initContainers[index].securityContext.appArmorProfile + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
localhostProfilestring +
+
false
typestring +
+
false
+ + ### PulsarCluster.spec.proxy.sets[key].initContainers[index].securityContext.capabilities @@ -70063,6 +76644,13 @@ Indicates the provisioner property for the StorageClass.
false + + recursiveReadOnly + string + +
+ + false subPath string @@ -70461,6 +77049,13 @@ Pod disruption budget configuration. Number of maxUnavailable pods.
false + + minAvailable + integer + + Number of minAvailable pods.
+ + false @@ -70650,6 +77245,13 @@ Resources requirements. + claims + []object + +
+ + false + limits map[string]int or string @@ -70667,6 +77269,100 @@ Resources requirements. +### PulsarCluster.spec.proxy.sets[key].resources.claims[index] + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
namestring +
+
false
requeststring +
+
false
+ + +### PulsarCluster.spec.proxy.sets[key].securityContext + + + +Subset of PodSecurityContext for basic UID, GID, and volume access control. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
fsGroupinteger +
+
false
fsGroupChangePolicystring +
+
false
runAsGroupinteger +
+
false
runAsNonRootboolean +
+
false
runAsUserinteger +
+
false
supplementalGroups[]integer +
+
false
+ + ### PulsarCluster.spec.proxy.sets[key].service @@ -70703,6 +77399,13 @@ Service configuration. Enable plain text connections even if TLS is enabled.
false + + loadBalancerClass + string + + Assign a load balancer class.
+ + false loadBalancerIP string @@ -70874,6 +77577,13 @@ Service configuration.
false + + resizePolicy + []object + +
+ + false resources object @@ -70881,6 +77591,13 @@ Service configuration.
false + + restartPolicy + string + +
+ + false securityContext object @@ -71268,7 +77985,40 @@ Service configuration. -### PulsarCluster.spec.proxy.sets[key].sidecars[index].envFrom[index].secretRef +### PulsarCluster.spec.proxy.sets[key].sidecars[index].envFrom[index].secretRef + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
namestring +
+
false
optionalboolean +
+
false
+ + +### PulsarCluster.spec.proxy.sets[key].sidecars[index].lifecycle @@ -71284,48 +78034,22 @@ Service configuration. - name - string + postStart + object
false - optional - boolean - -
- - false - - - - -### PulsarCluster.spec.proxy.sets[key].sidecars[index].lifecycle - - - - - - - - - - - - - - - - + - - + + @@ -71363,6 +78087,13 @@ Service configuration.
+ + + + + @@ -71487,6 +78218,32 @@ Service configuration.
NameTypeDescriptionRequired
postStartpreStop object
false
preStopobjectstopSignalstring
false
sleepobject +
+
false
tcpSocket object
+### PulsarCluster.spec.proxy.sets[key].sidecars[index].lifecycle.postStart.sleep + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
secondsinteger +
+
false
+ + ### PulsarCluster.spec.proxy.sets[key].sidecars[index].lifecycle.postStart.tcpSocket @@ -71549,6 +78306,13 @@ Service configuration.
false + + sleep + object + +
+ + false tcpSocket object @@ -71673,6 +78437,32 @@ Service configuration. +### PulsarCluster.spec.proxy.sets[key].sidecars[index].lifecycle.preStop.sleep + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
secondsinteger +
+
false
+ + ### PulsarCluster.spec.proxy.sets[key].sidecars[index].lifecycle.preStop.tcpSocket @@ -72296,6 +79086,39 @@ Service configuration. +### PulsarCluster.spec.proxy.sets[key].sidecars[index].resizePolicy[index] + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
resourceNamestring +
+
false
restartPolicystring +
+
false
+ + ### PulsarCluster.spec.proxy.sets[key].sidecars[index].resources @@ -72312,6 +79135,13 @@ Service configuration. + claims + []object + +
+ + false + limits map[string]int or string @@ -72329,6 +79159,39 @@ Service configuration. +### PulsarCluster.spec.proxy.sets[key].sidecars[index].resources.claims[index] + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
namestring +
+
false
requeststring +
+
false
+ + ### PulsarCluster.spec.proxy.sets[key].sidecars[index].securityContext @@ -72351,6 +79214,13 @@ Service configuration.
false + + appArmorProfile + object + +
+ + false capabilities object @@ -72425,6 +79295,39 @@ Service configuration. +### PulsarCluster.spec.proxy.sets[key].sidecars[index].securityContext.appArmorProfile + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
localhostProfilestring +
+
false
typestring +
+
false
+ + ### PulsarCluster.spec.proxy.sets[key].sidecars[index].securityContext.capabilities @@ -72929,6 +79832,13 @@ Service configuration.
false + + recursiveReadOnly + string + +
+ + false subPath string @@ -73299,6 +80209,13 @@ Resources requirements. + claims + []object + +
+ + false + limits map[string]int or string @@ -73316,6 +80233,39 @@ Resources requirements. +### PulsarCluster.spec.proxy.sets[key].webSocket.resources.claims[index] + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
namestring +
+
false
requeststring +
+
false
+ + ### PulsarCluster.spec.proxy.sidecars[index] @@ -73408,6 +80358,13 @@ Resources requirements.
false + + resizePolicy + []object + +
+ + false resources object @@ -73415,6 +80372,13 @@ Resources requirements.
false + + restartPolicy + string + +
+ + false securityContext object @@ -73864,6 +80828,13 @@ Resources requirements.
false + + stopSignal + string + +
+ + false @@ -73897,6 +80868,13 @@ Resources requirements.
false + + sleep + object + +
+ + false tcpSocket object @@ -74021,6 +80999,32 @@ Resources requirements. +### PulsarCluster.spec.proxy.sidecars[index].lifecycle.postStart.sleep + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
secondsinteger +
+
false
+ + ### PulsarCluster.spec.proxy.sidecars[index].lifecycle.postStart.tcpSocket @@ -74083,6 +81087,13 @@ Resources requirements.
false + + sleep + object + +
+ + false tcpSocket object @@ -74207,6 +81218,32 @@ Resources requirements. +### PulsarCluster.spec.proxy.sidecars[index].lifecycle.preStop.sleep + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
secondsinteger +
+
false
+ + ### PulsarCluster.spec.proxy.sidecars[index].lifecycle.preStop.tcpSocket @@ -74830,6 +81867,39 @@ Resources requirements. +### PulsarCluster.spec.proxy.sidecars[index].resizePolicy[index] + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
resourceNamestring +
+
false
restartPolicystring +
+
false
+ + ### PulsarCluster.spec.proxy.sidecars[index].resources @@ -74846,6 +81916,13 @@ Resources requirements. + claims + []object + +
+ + false + limits map[string]int or string @@ -74863,6 +81940,39 @@ Resources requirements. +### PulsarCluster.spec.proxy.sidecars[index].resources.claims[index] + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
namestring +
+
false
requeststring +
+
false
+ + ### PulsarCluster.spec.proxy.sidecars[index].securityContext @@ -74885,6 +81995,13 @@ Resources requirements.
false + + appArmorProfile + object + +
+ + false capabilities object @@ -74959,6 +82076,39 @@ Resources requirements. +### PulsarCluster.spec.proxy.sidecars[index].securityContext.appArmorProfile + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
localhostProfilestring +
+
false
typestring +
+
false
+ + ### PulsarCluster.spec.proxy.sidecars[index].securityContext.capabilities @@ -75463,6 +82613,13 @@ Resources requirements.
false + + recursiveReadOnly + string + +
+ + false subPath string @@ -75833,6 +82990,13 @@ Resources requirements. + claims + []object + +
+ + false + limits map[string]int or string @@ -75850,6 +83014,39 @@ Resources requirements. +### PulsarCluster.spec.proxy.webSocket.resources.claims[index] + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
namestring +
+
false
requeststring +
+
false
+ + ### PulsarCluster.spec.zookeeper @@ -75965,6 +83162,13 @@ Resources requirements. Configuration about the job that initializes the Pulsar cluster creating the needed ZooKeeper nodes.
false + + minReadySeconds + integer + + Min seconds to wait before considering the pod as ready.
+ + false nodeAffinity object @@ -76028,6 +83232,13 @@ Resources requirements. Resources requirements.
false + + securityContext + object + + Subset of PodSecurityContext for basic UID, GID, and volume access control.
+ + false service object @@ -76143,6 +83354,13 @@ Mount additional volumes to the pod.
false + + recursiveReadOnly + string + +
+ + false subPath string @@ -76295,6 +83513,13 @@ Mount additional volumes to the pod.
false + + image + object + +
+ + false iscsi object @@ -77420,6 +84645,13 @@ Mount additional volumes to the pod.
false + + volumeAttributesClassName + string + +
+ + false volumeMode string @@ -77514,6 +84746,13 @@ Mount additional volumes to the pod.
false + + namespace + string + +
+ + false @@ -77951,6 +85190,39 @@ Mount additional volumes to the pod. +### PulsarCluster.spec.zookeeper.additionalVolumes.volumes[index].image + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
pullPolicystring +
+
false
referencestring +
+
false
+ + ### PulsarCluster.spec.zookeeper.additionalVolumes.volumes[index].iscsi @@ -78268,6 +85540,13 @@ Mount additional volumes to the pod. + clusterTrustBundle + object + +
+ + false + configMap object @@ -78299,6 +85578,133 @@ Mount additional volumes to the pod. +### PulsarCluster.spec.zookeeper.additionalVolumes.volumes[index].projected.sources[index].clusterTrustBundle + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
labelSelectorobject +
+
false
namestring +
+
false
optionalboolean +
+
false
pathstring +
+
false
signerNamestring +
+
false
+ + +### PulsarCluster.spec.zookeeper.additionalVolumes.volumes[index].projected.sources[index].clusterTrustBundle.labelSelector + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
matchExpressions[]object +
+
false
matchLabelsmap[string]string +
+
false
+ + +### PulsarCluster.spec.zookeeper.additionalVolumes.volumes[index].projected.sources[index].clusterTrustBundle.labelSelector.matchExpressions[index] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
keystring +
+
false
operatorstring +
+
false
values[]string +
+
false
+ + ### PulsarCluster.spec.zookeeper.additionalVolumes.volumes[index].projected.sources[index].configMap @@ -79694,6 +87100,13 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i
false + + resizePolicy + []object + +
+ + false resources object @@ -79701,6 +87114,13 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i
false + + restartPolicy + string + +
+ + false securityContext object @@ -80150,6 +87570,13 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i
false + + stopSignal + string + +
+ + false @@ -80183,6 +87610,13 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i
false + + sleep + object + +
+ + false tcpSocket object @@ -80307,160 +87741,226 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i -### PulsarCluster.spec.zookeeper.initContainers[index].lifecycle.postStart.tcpSocket - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
hoststring -
-
false
portint or string -
-
false
- - -### PulsarCluster.spec.zookeeper.initContainers[index].lifecycle.preStop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
execobject -
-
false
httpGetobject -
-
false
tcpSocketobject -
-
false
- - -### PulsarCluster.spec.zookeeper.initContainers[index].lifecycle.preStop.exec - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
command[]string -
-
false
- - -### PulsarCluster.spec.zookeeper.initContainers[index].lifecycle.preStop.httpGet - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
hoststring -
-
false
httpHeaders[]object -
-
false
pathstring -
-
false
portint or string -
-
false
schemestring -
-
false
- - -### PulsarCluster.spec.zookeeper.initContainers[index].lifecycle.preStop.httpGet.httpHeaders[index] +### PulsarCluster.spec.zookeeper.initContainers[index].lifecycle.postStart.sleep + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
secondsinteger +
+
false
+ + +### PulsarCluster.spec.zookeeper.initContainers[index].lifecycle.postStart.tcpSocket + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
hoststring +
+
false
portint or string +
+
false
+ + +### PulsarCluster.spec.zookeeper.initContainers[index].lifecycle.preStop + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
execobject +
+
false
httpGetobject +
+
false
sleepobject +
+
false
tcpSocketobject +
+
false
+ + +### PulsarCluster.spec.zookeeper.initContainers[index].lifecycle.preStop.exec + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
command[]string +
+
false
+ + +### PulsarCluster.spec.zookeeper.initContainers[index].lifecycle.preStop.httpGet + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
hoststring +
+
false
httpHeaders[]object +
+
false
pathstring +
+
false
portint or string +
+
false
schemestring +
+
false
+ + +### PulsarCluster.spec.zookeeper.initContainers[index].lifecycle.preStop.httpGet.httpHeaders[index] + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
namestring +
+
false
valuestring +
+
false
+ + +### PulsarCluster.spec.zookeeper.initContainers[index].lifecycle.preStop.sleep @@ -80476,15 +87976,8 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - name - string - -
- - false - - value - string + seconds + integer
@@ -81073,50 +88566,156 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i false - value - string - -
- - false - - - - -### PulsarCluster.spec.zookeeper.initContainers[index].readinessProbe.tcpSocket - - - - - - - - - - - - - - - - + + + + + +
NameTypeDescriptionRequired
hostvaluestring +
+
false
+ + +### PulsarCluster.spec.zookeeper.initContainers[index].readinessProbe.tcpSocket + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
hoststring +
+
false
portint or string +
+
false
+ + +### PulsarCluster.spec.zookeeper.initContainers[index].resizePolicy[index] + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
resourceNamestring +
+
false
restartPolicystring +
+
false
+ + +### PulsarCluster.spec.zookeeper.initContainers[index].resources + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
claims[]object +
+
false
limitsmap[string]int or string +
+
false
requestsmap[string]int or string +
+
false
+ + +### PulsarCluster.spec.zookeeper.initContainers[index].resources.claims[index] + + + + + + + + + + + + + + + + + + + + + - - - - -
NameTypeDescriptionRequired
namestring +
+
false
request string
false
portint or string -
-
false
-### PulsarCluster.spec.zookeeper.initContainers[index].resources +### PulsarCluster.spec.zookeeper.initContainers[index].securityContext @@ -81132,41 +88731,15 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i - limits - map[string]int or string + allowPrivilegeEscalation + boolean
false - requests - map[string]int or string - -
- - false - - - - -### PulsarCluster.spec.zookeeper.initContainers[index].securityContext - - - - - - - - - - - - - - - - - + + @@ -81245,6 +88818,39 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i
NameTypeDescriptionRequired
allowPrivilegeEscalationbooleanappArmorProfileobject
+### PulsarCluster.spec.zookeeper.initContainers[index].securityContext.appArmorProfile + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
localhostProfilestring +
+
false
typestring +
+
false
+ + ### PulsarCluster.spec.zookeeper.initContainers[index].securityContext.capabilities @@ -81749,6 +89355,13 @@ Indicates if a StorageClass is used. The operator will create the StorageClass i
false + + recursiveReadOnly + string + +
+ + false subPath string @@ -81816,6 +89429,13 @@ Resources requirements. + claims + []object + +
+ + false + limits map[string]int or string @@ -81833,6 +89453,39 @@ Resources requirements. +### PulsarCluster.spec.zookeeper.metadataInitializationJob.resources.claims[index] + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
namestring +
+
false
requeststring +
+
false
+ + ### PulsarCluster.spec.zookeeper.nodeAffinity @@ -82180,6 +89833,13 @@ Pod disruption budget configuration. Number of maxUnavailable pods.
false + + minAvailable + integer + + Number of minAvailable pods.
+ + false @@ -82369,6 +90029,13 @@ Resources requirements. + claims + []object + +
+ + false + limits map[string]int or string @@ -82386,6 +90053,100 @@ Resources requirements. +### PulsarCluster.spec.zookeeper.resources.claims[index] + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
namestring +
+
false
requeststring +
+
false
+ + +### PulsarCluster.spec.zookeeper.securityContext + + + +Subset of PodSecurityContext for basic UID, GID, and volume access control. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
fsGroupinteger +
+
false
fsGroupChangePolicystring +
+
false
runAsGroupinteger +
+
false
runAsNonRootboolean +
+
false
runAsUserinteger +
+
false
supplementalGroups[]integer +
+
false
+ + ### PulsarCluster.spec.zookeeper.service @@ -82572,6 +90333,13 @@ Service configuration.
false + + resizePolicy + []object + +
+ + false resources object @@ -82579,6 +90347,13 @@ Service configuration.
false + + restartPolicy + string + +
+ + false securityContext object @@ -83028,6 +90803,13 @@ Service configuration.
false + + stopSignal + string + +
+ + false @@ -83061,6 +90843,13 @@ Service configuration.
false + + sleep + object + +
+ + false tcpSocket object @@ -83185,6 +90974,32 @@ Service configuration. +### PulsarCluster.spec.zookeeper.sidecars[index].lifecycle.postStart.sleep + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
secondsinteger +
+
false
+ + ### PulsarCluster.spec.zookeeper.sidecars[index].lifecycle.postStart.tcpSocket @@ -83247,6 +91062,13 @@ Service configuration.
false + + sleep + object + +
+ + false tcpSocket object @@ -83371,6 +91193,32 @@ Service configuration. +### PulsarCluster.spec.zookeeper.sidecars[index].lifecycle.preStop.sleep + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
secondsinteger +
+
false
+ + ### PulsarCluster.spec.zookeeper.sidecars[index].lifecycle.preStop.tcpSocket @@ -83662,61 +91510,263 @@ Service configuration. false - port - int or string - -
- - false - - - - -### PulsarCluster.spec.zookeeper.sidecars[index].ports[index] - - - - - - - - - - - - - - - - - + + + + + +
NameTypeDescriptionRequired
containerPortintegerportint or string +
+
false
+ + +### PulsarCluster.spec.zookeeper.sidecars[index].ports[index] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
containerPortinteger +
+
false
hostIPstring +
+
false
hostPortinteger +
+
false
namestring +
+
false
protocolstring +
+
false
+ + +### PulsarCluster.spec.zookeeper.sidecars[index].readinessProbe + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
execobject +
+
false
failureThresholdinteger +
+
false
grpcobject +
+
false
httpGetobject +
+
false
initialDelaySecondsinteger +
+
false
periodSecondsinteger +
+
false
successThresholdinteger +
+
false
tcpSocketobject +
+
false
terminationGracePeriodSecondsinteger +
+
false
timeoutSecondsinteger +
+
false
+ + +### PulsarCluster.spec.zookeeper.sidecars[index].readinessProbe.exec + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
command[]string +
+
false
+ + +### PulsarCluster.spec.zookeeper.sidecars[index].readinessProbe.grpc + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
portinteger +
+
false
servicestring +
+
false
+ + +### PulsarCluster.spec.zookeeper.sidecars[index].readinessProbe.httpGet + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - + + - +
NameTypeDescriptionRequired
hoststring +
+
false
httpHeaders[]object
false
hostIPpath string
false
hostPortinteger -
-
false
namestringportint or string
false
protocolscheme string
@@ -83726,122 +91776,7 @@ Service configuration.
-### PulsarCluster.spec.zookeeper.sidecars[index].readinessProbe - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
execobject -
-
false
failureThresholdinteger -
-
false
grpcobject -
-
false
httpGetobject -
-
false
initialDelaySecondsinteger -
-
false
periodSecondsinteger -
-
false
successThresholdinteger -
-
false
tcpSocketobject -
-
false
terminationGracePeriodSecondsinteger -
-
false
timeoutSecondsinteger -
-
false
- - -### PulsarCluster.spec.zookeeper.sidecars[index].readinessProbe.exec - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
command[]string -
-
false
- - -### PulsarCluster.spec.zookeeper.sidecars[index].readinessProbe.grpc +### PulsarCluster.spec.zookeeper.sidecars[index].readinessProbe.httpGet.httpHeaders[index] @@ -83857,14 +91792,14 @@ Service configuration. - port - integer + name + string
false - service + value string
@@ -83874,7 +91809,7 @@ Service configuration. -### PulsarCluster.spec.zookeeper.sidecars[index].readinessProbe.httpGet +### PulsarCluster.spec.zookeeper.sidecars[index].readinessProbe.tcpSocket @@ -83896,20 +91831,6 @@ Service configuration.
false - - httpHeaders - []object - -
- - false - - path - string - -
- - false port int or string @@ -83917,18 +91838,11 @@ Service configuration.
false - - scheme - string - -
- - false -### PulsarCluster.spec.zookeeper.sidecars[index].readinessProbe.httpGet.httpHeaders[index] +### PulsarCluster.spec.zookeeper.sidecars[index].resizePolicy[index] @@ -83944,14 +91858,14 @@ Service configuration. - name + resourceName string
false - value + restartPolicy string
@@ -83961,7 +91875,7 @@ Service configuration. -### PulsarCluster.spec.zookeeper.sidecars[index].readinessProbe.tcpSocket +### PulsarCluster.spec.zookeeper.sidecars[index].resources @@ -83977,15 +91891,22 @@ Service configuration. - host - string + claims + []object
false - port - int or string + limits + map[string]int or string + +
+ + false + + requests + map[string]int or string
@@ -83994,7 +91915,7 @@ Service configuration. -### PulsarCluster.spec.zookeeper.sidecars[index].resources +### PulsarCluster.spec.zookeeper.sidecars[index].resources.claims[index] @@ -84010,15 +91931,15 @@ Service configuration. - limits - map[string]int or string + name + string
false - requests - map[string]int or string + request + string
@@ -84049,6 +91970,13 @@ Service configuration.
false + + appArmorProfile + object + +
+ + false capabilities object @@ -84123,6 +92051,39 @@ Service configuration. +### PulsarCluster.spec.zookeeper.sidecars[index].securityContext.appArmorProfile + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
localhostProfilestring +
+
false
typestring +
+
false
+ + ### PulsarCluster.spec.zookeeper.sidecars[index].securityContext.capabilities @@ -84627,6 +92588,13 @@ Service configuration.
false + + recursiveReadOnly + string + +
+ + false subPath string diff --git a/docs/development.md b/docs/development.md index b4a4705d..3708996b 100644 --- a/docs/development.md +++ b/docs/development.md @@ -2,7 +2,7 @@ The operator is built upon the [quarkus-operator-sdk](https://quarkiverse.github.io/quarkiverse-docs/quarkus-operator-sdk/dev/index.html) library. ## Requirements -- JDK17+ +- JDK21+ - Maven - Docker @@ -99,4 +99,4 @@ mvn -pl tests test -Dtest='CRDsTest' -Prun-tests-current-context \ ## Links and resources * [Quarkus Kubernetes](https://quarkus.io/guides/deploying-to-kubernetes) * [Quarkus JIB](https://quarkus.io/guides/container-image#container-image-options) -* [Kubernetes Java Operator SDK](https://javaoperatorsdk.io/) \ No newline at end of file +* [Kubernetes Java Operator SDK](https://javaoperatorsdk.io/) diff --git a/docs/migration.md b/docs/migration.md index 532bd741..7d98912a 100644 --- a/docs/migration.md +++ b/docs/migration.md @@ -12,7 +12,7 @@ Once the report is generated, is up to you to decide if you want to proceed with ### Usage -Java 17+ it's required. +Java 21+ is required. Download the jar from the [latest release](https://github.com/datastax/kaap/releases). Create the input file `input-cluster-specs.yaml` with the following content: @@ -78,4 +78,4 @@ kaap: - app.kubernetes.io/managed-by - chart - release - - heritage \ No newline at end of file + - heritage diff --git a/helm/examples/admin-console/values.yaml b/helm/examples/admin-console/values.yaml index 4db7d05e..53488802 100644 --- a/helm/examples/admin-console/values.yaml +++ b/helm/examples/admin-console/values.yaml @@ -21,7 +21,7 @@ kaap: spec: global: name: pulsar - image: datastax/lunastreaming-all:2.10_3.4 + image: datastax/lunastreaming-all:3.1.4_21 restartOnConfigMapChange: true storage: existingStorageClassName: default @@ -169,4 +169,4 @@ pulsarGrafanaDashboards: kube-prometheus-stack: enabled: true grafana: - adminPassword: grafana1 \ No newline at end of file + adminPassword: grafana1 diff --git a/helm/examples/bkvm/values.yaml b/helm/examples/bkvm/values.yaml index 45ab82c8..fa6ee756 100644 --- a/helm/examples/bkvm/values.yaml +++ b/helm/examples/bkvm/values.yaml @@ -21,7 +21,7 @@ kaap: spec: global: name: pulsar - image: datastax/lunastreaming-all:2.10_3.4 + image: datastax/lunastreaming-all:3.1.4_21 restartOnConfigMapChange: true storage: existingStorageClassName: default @@ -75,4 +75,4 @@ bkvm: resources: requests: cpu: "0.5" - memory: "128Mi" \ No newline at end of file + memory: "128Mi" diff --git a/helm/examples/bookie-autoscaling/values.yaml b/helm/examples/bookie-autoscaling/values.yaml index 8715c3b6..e4502e14 100644 --- a/helm/examples/bookie-autoscaling/values.yaml +++ b/helm/examples/bookie-autoscaling/values.yaml @@ -22,7 +22,7 @@ cluster: spec: global: name: pulsar - image: datastax/lunastreaming-all:2.10_3.4 + image: datastax/lunastreaming-all:3.1.4_21 restartOnConfigMapChange: true storage: existingStorageClassName: default diff --git a/helm/examples/bookie-racks/values.yaml b/helm/examples/bookie-racks/values.yaml index 4b016eb3..e030ebe6 100644 --- a/helm/examples/bookie-racks/values.yaml +++ b/helm/examples/bookie-racks/values.yaml @@ -20,7 +20,7 @@ kaap: spec: global: name: pulsar - image: datastax/lunastreaming-all:2.10_2.11 + image: datastax/lunastreaming-all:3.1.4_21 restartOnConfigMapChange: true tls: enabled: true @@ -122,4 +122,4 @@ cert-manager: installCRDs: true global: leaderElection: - namespace: default \ No newline at end of file + namespace: default diff --git a/helm/examples/broker-autoscaling/values.yaml b/helm/examples/broker-autoscaling/values.yaml index b675beb0..07d9c9e2 100644 --- a/helm/examples/broker-autoscaling/values.yaml +++ b/helm/examples/broker-autoscaling/values.yaml @@ -21,7 +21,7 @@ kaap: spec: global: name: pulsar - image: datastax/lunastreaming-all:2.10_3.4 + image: datastax/lunastreaming-all:3.1.4_21 restartOnConfigMapChange: true storage: existingStorageClassName: default diff --git a/helm/examples/cert-manager-acme/values.yaml b/helm/examples/cert-manager-acme/values.yaml index 2553255d..4d0ba856 100644 --- a/helm/examples/cert-manager-acme/values.yaml +++ b/helm/examples/cert-manager-acme/values.yaml @@ -21,7 +21,7 @@ kaap: spec: global: name: pulsar - image: datastax/lunastreaming-all:2.10_3.4 + image: datastax/lunastreaming-all:3.1.4_21 restartOnConfigMapChange: true antiAffinity: host: diff --git a/helm/examples/cert-manager-self-signed/values.yaml b/helm/examples/cert-manager-self-signed/values.yaml index 8d9fe55d..69984d18 100644 --- a/helm/examples/cert-manager-self-signed/values.yaml +++ b/helm/examples/cert-manager-self-signed/values.yaml @@ -21,7 +21,7 @@ kaap: spec: global: name: pulsar - image: datastax/lunastreaming-all:2.10_3.4 + image: datastax/lunastreaming-all:3.1.4_21 restartOnConfigMapChange: true # dnsName: add here your public dns name tls: diff --git a/helm/examples/dev-cluster/values.yaml b/helm/examples/dev-cluster/values.yaml index 972a0a8f..5f4d094a 100644 --- a/helm/examples/dev-cluster/values.yaml +++ b/helm/examples/dev-cluster/values.yaml @@ -21,7 +21,7 @@ kaap: spec: global: name: pulsar - image: apachepulsar/pulsar:3.0.0 + image: apachepulsar/pulsar:4.0.7 restartOnConfigMapChange: true zookeeper: replicas: 1 @@ -95,4 +95,4 @@ pulsarGrafanaDashboards: kube-prometheus-stack: enabled: true grafana: - adminPassword: grafana1 \ No newline at end of file + adminPassword: grafana1 diff --git a/helm/examples/grafana/README.md b/helm/examples/grafana/README.md index 1699441e..5349252d 100644 --- a/helm/examples/grafana/README.md +++ b/helm/examples/grafana/README.md @@ -2,7 +2,7 @@ Install a Pulsar cluster with prometheus stack enabled and Pulsar grafana dashboards. ``` -helm install pstack -n pstack --create-namespace kaap/kaap-stack --values helm/examples/grafana/values.yaml +helm install kaap-stack kaap/kaap-stack --values helm/examples/grafana/values.yaml ``` Login to grafana UI: @@ -11,3 +11,23 @@ kubectl port-forward deployment/pstack-grafana 3000:3000 open localhost:3000 ``` Login using the credentials configured in the values.yaml. (`admin` and `grafana1`). + +This example includes grafana persistence config to allow new dashboards to be created +and saved across restarts of grafana. + +``` +kube-prometheus-stack: + enabled: true + grafana: + adminPassword: grafana1 + # Make Grafana persistent (Using Statefulset) + persistence: + enabled: true + type: sts + # storageClassName: "storageClassName" + accessModes: + - ReadWriteOnce + size: 5Gi + finalizers: + - kubernetes.io/pvc-protection +``` diff --git a/helm/examples/grafana/values.yaml b/helm/examples/grafana/values.yaml index 1f69a592..168b31a0 100644 --- a/helm/examples/grafana/values.yaml +++ b/helm/examples/grafana/values.yaml @@ -21,7 +21,7 @@ kaap: spec: global: name: pulsar - image: datastax/lunastreaming-all:2.10_3.4 + image: datastax/lunastreaming-all:3.1.4_21 storage: existingStorageClassName: default zookeeper: @@ -79,4 +79,19 @@ pulsarGrafanaDashboards: kube-prometheus-stack: enabled: true grafana: - adminPassword: grafana1 \ No newline at end of file + adminPassword: grafana1 + # Make Grafana persistent (Using Statefulset) + persistence: + enabled: true + type: sts + # storageClassName: "storageClassName" + accessModes: + - ReadWriteOnce + size: 5Gi + finalizers: + - kubernetes.io/pvc-protection + sidecar: + dashboards: + enabled: true + provider: + allowUiUpdates: true diff --git a/helm/examples/kafka/values.yaml b/helm/examples/kafka/values.yaml index 890d570e..5415ec2a 100644 --- a/helm/examples/kafka/values.yaml +++ b/helm/examples/kafka/values.yaml @@ -23,7 +23,7 @@ kaap: spec: global: name: pulsar - image: datastax/lunastreaming-all:2.10_3.4 + image: datastax/lunastreaming-all:3.1.4_21 restartOnConfigMapChange: true antiAffinity: host: diff --git a/helm/examples/keycloak/values.yaml b/helm/examples/keycloak/values.yaml index 3d26e1e2..d20b5231 100644 --- a/helm/examples/keycloak/values.yaml +++ b/helm/examples/keycloak/values.yaml @@ -21,7 +21,7 @@ kaap: spec: global: name: pulsar - image: datastax/lunastreaming-all:2.10_3.4 + image: datastax/lunastreaming-all:3.1.4_21 auth: enabled: true storage: diff --git a/helm/examples/racks/values.yaml b/helm/examples/racks/values.yaml index 52584ab8..2d6e1d93 100644 --- a/helm/examples/racks/values.yaml +++ b/helm/examples/racks/values.yaml @@ -22,7 +22,7 @@ cluster: spec: global: name: pulsar - image: datastax/lunastreaming-all:2.10_2.11 + image: datastax/lunastreaming-all:3.1.4_21 restartOnConfigMapChange: true storage: existingStorageClassName: default diff --git a/helm/examples/resource-sets/values.yaml b/helm/examples/resource-sets/values.yaml index 5ceeb27f..19bbde3c 100644 --- a/helm/examples/resource-sets/values.yaml +++ b/helm/examples/resource-sets/values.yaml @@ -22,7 +22,7 @@ cluster: spec: global: name: pulsar - image: datastax/lunastreaming-all:2.10_3.4 + image: datastax/lunastreaming-all:3.1.4_21 restartOnConfigMapChange: true storage: existingStorageClassName: default diff --git a/helm/examples/tiered-storage/values.yaml b/helm/examples/tiered-storage/values.yaml index 06d1977f..0c8a4708 100644 --- a/helm/examples/tiered-storage/values.yaml +++ b/helm/examples/tiered-storage/values.yaml @@ -21,7 +21,7 @@ kaap: spec: global: name: pulsar - image: datastax/lunastreaming-all:2.10_2.11 + image: datastax/lunastreaming-all:3.1.4_21 restartOnConfigMapChange: true storage: existingStorageClassName: default diff --git a/helm/examples/zoned-resource-sets/values.yaml b/helm/examples/zoned-resource-sets/values.yaml index 30a438ca..5aa5132f 100644 --- a/helm/examples/zoned-resource-sets/values.yaml +++ b/helm/examples/zoned-resource-sets/values.yaml @@ -22,7 +22,7 @@ cluster: spec: global: name: pulsar - image: datastax/lunastreaming-all:2.10_3.4 + image: datastax/lunastreaming-all:3.1.4_21 restartOnConfigMapChange: true storage: existingStorageClassName: default diff --git a/helm/kaap-stack/Chart.yaml b/helm/kaap-stack/Chart.yaml index b02a155c..2a5a1918 100644 --- a/helm/kaap-stack/Chart.yaml +++ b/helm/kaap-stack/Chart.yaml @@ -19,13 +19,13 @@ apiVersion: v2 name: kaap-stack description: Kubernetes Autoscaling for Apache Pulsar Stack -version: 0.3.0 +version: 0.4.4 dependencies: - name: kaap - version: 0.3.x + version: 0.4.x repository: file://../kaap - name: kube-prometheus-stack - version: 41.x.x + version: 70.10.0 repository: https://prometheus-community.github.io/helm-charts condition: kube-prometheus-stack.enabled - name: keycloak diff --git a/helm/kaap-stack/grafana-dashboards/book-compact.json b/helm/kaap-stack/grafana-dashboards/book-compact.json deleted file mode 100644 index e7d08c80..00000000 --- a/helm/kaap-stack/grafana-dashboards/book-compact.json +++ /dev/null @@ -1,797 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "editable": true, - "gnetId": null, - "graphTooltip": 0, - "id": 36, - "links": [], - "panels": [ - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 0 - }, - "hiddenSeries": false, - "id": 2, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "rate(bookie_RECLAIMED_COMPACTION_SPACE_BYTES[5m]) ", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Bookie Reclaim Compaction Space (Rate)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 0 - }, - "hiddenSeries": false, - "id": 5, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "rate(bookie_RECLAIMED_DELETION_SPACE_BYTES[5m]) ", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Bookie Reclaim Deletion Space (Rate)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 9 - }, - "hiddenSeries": false, - "id": 3, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "rate(bookie_MAJOR_COMPACTION_COUNT[5m])", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Major Compaction (Rate)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 9 - }, - "hiddenSeries": false, - "id": 6, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "rate(bookie_MAJOR_COMPACTION_COUNT[5m])", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Major Compaction (Rate)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 18 - }, - "hiddenSeries": false, - "id": 4, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, - "targets": [ - { - "expr": "bookie_ACTIVE_ENTRY_LOG_COUNT", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Active Entry Logs", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 18 - }, - "hiddenSeries": false, - "id": 8, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, - "targets": [ - { - "expr": "bookie_ACTIVE_ENTRY_LOG_COUNT", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Active Entry Logs", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 27 - }, - "hiddenSeries": false, - "id": 7, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, - "targets": [ - { - "expr": "bookie_ACTIVE_LEDGER_COUNT", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Active Ledger Count", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 27 - }, - "hiddenSeries": false, - "id": 9, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, - "targets": [ - { - "expr": "bookie_DELETED_LEDGER_COUNT", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Deleted Ledger Count", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - } - ], - "schemaVersion": 26, - "style": "dark", - "tags": [], - "templating": { - "list": [] - }, - "time": { - "from": "now-6h", - "to": "now" - }, - "timepicker": {}, - "timezone": "", - "title": "Pulsar / BookKeeper Compaction", - "uid": "dOcbekX7k", - "version": 3 -} diff --git a/helm/kaap-stack/grafana-dashboards/bookkeeper-compaction.json b/helm/kaap-stack/grafana-dashboards/bookkeeper-compaction.json new file mode 100644 index 00000000..b4005ed6 --- /dev/null +++ b/helm/kaap-stack/grafana-dashboards/bookkeeper-compaction.json @@ -0,0 +1,817 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "datasource", + "uid": "grafana" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 3, + "links": [], + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 2, + "options": { + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "rate(bookie_RECLAIMED_COMPACTION_SPACE_BYTES[5m]) ", + "interval": "", + "legendFormat": "{{ kubernetes_pod_name }}", + "refId": "A" + } + ], + "title": "Bookie Reclaim Compaction Space (Rate)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 5, + "options": { + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "rate(bookie_RECLAIMED_DELETION_SPACE_BYTES[5m]) ", + "interval": "", + "legendFormat": "{{ kubernetes_pod_name }}", + "refId": "A" + } + ], + "title": "Bookie Reclaim Deletion Space (Rate)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 9 + }, + "id": 3, + "options": { + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "rate(bookie_MAJOR_COMPACTION_COUNT[5m])", + "interval": "", + "legendFormat": "{{ kubernetes_pod_name }}", + "refId": "A" + } + ], + "title": "Major Compaction (Rate)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 9 + }, + "id": 6, + "options": { + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "rate(bookie_MAJOR_COMPACTION_COUNT[5m])", + "interval": "", + "legendFormat": "{{ kubernetes_pod_name }}", + "refId": "A" + } + ], + "title": "Major Compaction (Rate)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 18 + }, + "id": 4, + "options": { + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "bookie_ACTIVE_ENTRY_LOG_COUNT", + "interval": "", + "legendFormat": "{{ kubernetes_pod_name }}", + "refId": "B" + } + ], + "title": "Active Entry Logs", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 18 + }, + "id": 8, + "options": { + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "bookie_ACTIVE_ENTRY_LOG_COUNT", + "interval": "", + "legendFormat": "{{ kubernetes_pod_name }}", + "refId": "B" + } + ], + "title": "Active Entry Logs", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 27 + }, + "id": 7, + "options": { + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "bookie_ACTIVE_LEDGER_COUNT", + "interval": "", + "legendFormat": "{{ kubernetes_pod_name }}", + "refId": "B" + } + ], + "title": "Active Ledger Count", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 27 + }, + "id": 9, + "options": { + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "bookie_DELETED_LEDGER_COUNT", + "interval": "", + "legendFormat": "{{ kubernetes_pod_name }}", + "refId": "B" + } + ], + "title": "Deleted Ledger Count", + "type": "timeseries" + } + ], + "preload": false, + "refresh": "", + "schemaVersion": 41, + "tags": [], + "templating": { + "list": [] + }, + "time": { + "from": "now-6h", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "Pulsar / BookKeeper Compaction", + "uid": "dOcbekX7k", + "version": 1 +} diff --git a/helm/kaap-stack/grafana-dashboards/bookkeeper-read-cache.json b/helm/kaap-stack/grafana-dashboards/bookkeeper-read-cache.json index 3718b7ed..22307974 100644 --- a/helm/kaap-stack/grafana-dashboards/bookkeeper-read-cache.json +++ b/helm/kaap-stack/grafana-dashboards/bookkeeper-read-cache.json @@ -3,7 +3,10 @@ "list": [ { "builtIn": 1, - "datasource": "-- Grafana --", + "datasource": { + "type": "datasource", + "uid": "grafana" + }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", @@ -13,869 +16,828 @@ ] }, "editable": true, - "gnetId": null, + "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": 35, + "id": 5, "links": [], "panels": [ { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 0 }, - "hiddenSeries": false, "id": 18, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "(sum(rate(bookie_readahead_batch_count_count[1m])) by (kubernetes_pod_name) + sum(rate(bookie_readahead_batch_count_sum[1m])) by (kubernetes_pod_name)) / sum(rate(bookie_read_entry_count[1m])) by (kubernetes_pod_name)", "interval": "", "legendFormat": "", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Reads to disk per read op", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 0 }, - "hiddenSeries": false, "id": 10, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(irate(bookkeeper_server_READ_ENTRY_REQUEST_count{success=\"false\"}[1m])) by (kubernetes_pod_name)", "interval": "", "legendFormat": "", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Failed read request rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 8 }, - "hiddenSeries": false, "id": 8, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(irate(bookkeeper_server_READ_ENTRY_REQUEST_count[1m])) by (kubernetes_pod_name)", "interval": "", "legendFormat": "", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Read request rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 8 }, - "hiddenSeries": false, "id": 14, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(irate(bookie_READ_BYTES[1m])) by (kubernetes_pod_name)", "interval": "", "legendFormat": "", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Bookie read throughput", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 16 }, - "hiddenSeries": false, "id": 12, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(irate(bookkeeper_server_READ_ENTRY_count[1m])) by (kubernetes_pod_name)", "interval": "", "legendFormat": "", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Bookie read operation rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 16 }, - "hiddenSeries": false, "id": 6, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "irate(bookie_read_cache_size[1m])", "interval": "", "legendFormat": "", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Bookie read cache size 1 minute increase", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 9, "w": 12, "x": 0, "y": 24 }, - "hiddenSeries": false, "id": 2, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(irate(bookie_read_cache_hits_count[1m])) by (kubernetes_pod_name)", "interval": "", "legendFormat": "", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Bookie read cache hits", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 24 }, - "hiddenSeries": false, "id": 4, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(irate(bookie_read_cache_misses_count[1m])) by (kubernetes_pod_name)", "interval": "", "legendFormat": "", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Bookie read cache misses", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 33 }, - "hiddenSeries": false, "id": 16, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { "alertThreshold": true }, - "percentage": false, "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "(sum(irate(bookie_read_cache_misses_count[1m])) by (kubernetes_pod_name) / sum(irate(bookie_read_cache_hits_count[1m])) by (kubernetes_pod_name)) * 100", "interval": "", "legendFormat": "", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Cache miss to hit ratio", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" } ], - "schemaVersion": 26, - "style": "dark", + "preload": false, + "refresh": "", + "schemaVersion": 41, "tags": [], "templating": { "list": [] @@ -889,4 +851,4 @@ "title": "Pulsar / Bookkeeper read cache", "uid": "XbpcyJK7k", "version": 1 -} \ No newline at end of file +} diff --git a/helm/kaap-stack/grafana-dashboards/bookkeeper-read-use.json b/helm/kaap-stack/grafana-dashboards/bookkeeper-read-use.json index 53a75ca2..70444702 100644 --- a/helm/kaap-stack/grafana-dashboards/bookkeeper-read-use.json +++ b/helm/kaap-stack/grafana-dashboards/bookkeeper-read-use.json @@ -3,7 +3,10 @@ "list": [ { "builtIn": 1, - "datasource": "-- Grafana --", + "datasource": { + "type": "datasource", + "uid": "grafana" + }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", @@ -13,437 +16,474 @@ ] }, "editable": true, - "gnetId": null, + "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": 34, + "id": 6, "links": [], "panels": [ { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 0 }, - "hiddenSeries": false, "id": 4, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(irate(bookie_read_entry_sum[1m])) by (kubernetes_pod_name)", "interval": "", "legendFormat": "", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "DbLedgerStorage Reads Time Spent", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "Time spent by the read thread pool executing requests", "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 9, "w": 12, "x": 12, "y": 0 }, - "hiddenSeries": false, "id": 2, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(irate(bookkeeper_server_BookieReadThreadPool_task_execution_sum[1m])) by (kubernetes_pod_name)", "interval": "", "legendFormat": "", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Read Thread Pool Time Spent", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 8 }, - "hiddenSeries": false, "id": 6, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookkeeper_server_BookieReadThreadPool_queue_0) by (kubernetes_pod_name)", "interval": "", "legendFormat": "", "refId": "A" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookkeeper_server_BookieReadThreadPool_queue_1) by (kubernetes_pod_name)", "interval": "", "legendFormat": "", "refId": "B" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookkeeper_server_BookieReadThreadPool_queue_2) by (kubernetes_pod_name)", "interval": "", "legendFormat": "", "refId": "C" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookkeeper_server_BookieReadThreadPool_queue_3) by (kubernetes_pod_name)", "interval": "", "legendFormat": "", "refId": "D" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookkeeper_server_BookieReadThreadPool_queue_4) by (kubernetes_pod_name)", "interval": "", "legendFormat": "", "refId": "E" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookkeeper_server_BookieReadThreadPool_queue_5) by (kubernetes_pod_name)", "interval": "", "legendFormat": "", "refId": "F" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookkeeper_server_BookieReadThreadPool_queue_6) by (kubernetes_pod_name)", "interval": "", "legendFormat": "", "refId": "G" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookkeeper_server_BookieReadThreadPool_queue_7) by (kubernetes_pod_name)", "interval": "", "legendFormat": "", "refId": "H" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Read thread pool task queues length", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 9 }, - "hiddenSeries": false, "id": 8, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookkeeper_server_BookieReadThreadPool_task_queued{success=\"true\",quantile=\"0.99\"}) by (kubernetes_pod_name)", "interval": "", "legendFormat": "", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Read thread pool queue p99 time", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" } ], - "schemaVersion": 26, - "style": "dark", + "preload": false, + "refresh": "", + "schemaVersion": 41, "tags": [], "templating": { "list": [] diff --git a/helm/kaap-stack/grafana-dashboards/bookkeeper.json b/helm/kaap-stack/grafana-dashboards/bookkeeper.json index a169a838..a0e2b2b6 100644 --- a/helm/kaap-stack/grafana-dashboards/bookkeeper.json +++ b/helm/kaap-stack/grafana-dashboards/bookkeeper.json @@ -3,7 +3,10 @@ "list": [ { "builtIn": 1, - "datasource": "-- Grafana --", + "datasource": { + "type": "datasource", + "uid": "grafana" + }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", @@ -14,14 +17,13 @@ }, "description": "Metrics of bookkeeper cluster", "editable": true, - "gnetId": null, + "fiscalYearStartMonth": 0, "graphTooltip": 0, - "iteration": 1593873242177, + "id": 4, "links": [], "panels": [ { "collapsed": false, - "datasource": null, "gridPos": { "h": 1, "w": 24, @@ -34,29 +36,39 @@ "type": "row" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" }, "overrides": [] }, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, "gridPos": { "h": 7, "w": 3, @@ -64,42 +76,31 @@ "y": 1 }, "id": 27, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false - }, - "tableColumn": "", + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "count(bookie_SERVER_STATUS{job=~\"$job\"} == 1)\n ", "format": "time_series", "intervalFactor": 1, @@ -107,43 +108,43 @@ "refId": "A" } ], - "thresholds": "", "title": "Writable Bookies", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "avg" + "type": "stat" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "0" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" }, "overrides": [] }, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, "gridPos": { "h": 7, "w": 3, @@ -151,44 +152,31 @@ "y": 1 }, "id": 31, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "$$hashKey": "object:1794", - "name": "value to text", - "value": 1 - }, - { - "$$hashKey": "object:1795", - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false - }, - "tableColumn": "", + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "count(bookie_SERVER_STATUS{job=~\"$job\", kubernetes_pod_name=~\"$instance\"} == 0)\n", "format": "time_series", "interval": "", @@ -197,70 +185,99 @@ "refId": "A" } ], - "thresholds": "", "title": "ReadOnly Bookies", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "$$hashKey": "object:1797", - "op": "=", - "text": "0", - "value": "null" - } - ], - "valueName": "avg" + "type": "stat" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "success rate for different types of requests", "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 9, "x": 6, "y": 1 }, - "hiddenSeries": false, "id": 1, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "dataLinks": [] + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "100 * sum(irate(bookkeeper_server_ADD_ENTRY_count{job=~\"$job\", kubernetes_pod_name=~\"$instance\", success=\"true\"}[60s])) / sum(irate(bookkeeper_server_ADD_ENTRY_count{job=~\"$job\", kubernetes_pod_name=~\"$instance\"}[60s]))", "format": "time_series", "interval": "", @@ -270,6 +287,10 @@ "step": 2 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "100 * sum(irate(bookkeeper_server_READ_ENTRY_count{job=~\"$job\", instance=~\"$instance\", success=\"true\"}[60s])) / sum(irate(bookkeeper_server_READ_ENTRY_count{job=~\"$job\", instance=~\"$instance\"}[60s]))", "format": "time_series", "intervalFactor": 1, @@ -277,96 +298,98 @@ "refId": "B" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Success Rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "ms" }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 9, "x": 15, "y": 1 }, - "hiddenSeries": false, "id": 13, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "dataLinks": [] + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "avg(bookkeeper_server_ADD_ENTRY_REQUEST{job=~\"$job\", kubernetes_pod_name=~\"$instance\", success=\"true\", quantile=\"0.99\"})", "format": "time_series", "interval": "", @@ -376,6 +399,10 @@ "step": 2 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "avg(bookkeeper_server_ADD_ENTRY_REQUEST{job=~\"$job\", kubernetes_pod_name=~\"$instance\", success=\"true\", quantile=\"0.999\"})", "format": "time_series", "interval": "", @@ -384,6 +411,10 @@ "refId": "B" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "avg(bookkeeper_server_ADD_ENTRY_REQUEST{job=~\"$job\", kubernetes_pod_name=~\"$instance\", success=\"true\", quantile=\"0.5\"})", "format": "time_series", "interval": "", @@ -392,6 +423,10 @@ "refId": "C" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "avg(bookkeeper_server_READ_ENTRY_REQUEST{job=~\"$job\", kubernetes_pod_name=~\"$instance\", success=\"true\", quantile=\"0.99\"})", "format": "time_series", "interval": "", @@ -400,6 +435,10 @@ "refId": "D" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "avg(bookkeeper_server_READ_ENTRY_REQUEST{job=~\"$job\", kubernetes_pod_name=~\"$instance\", success=\"true\", quantile=\"0.999\"})", "format": "time_series", "interval": "", @@ -408,6 +447,10 @@ "refId": "E" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "avg(bookkeeper_server_READ_ENTRY_REQUEST{job=~\"$job\", kubernetes_pod_name=~\"$instance\", success=\"true\", quantile=\"0.5\"})", "format": "time_series", "interval": "", @@ -416,71 +459,49 @@ "refId": "F" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Latency", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#d44a3a", - "rgba(237, 129, 40, 0.89)", - "#299c46" - ], - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#d44a3a" + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 80 + }, + { + "color": "#299c46", + "value": 90 + } + ] + }, + "unit": "percent" }, "overrides": [] }, - "format": "percent", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": true, - "thresholdLabels": false, - "thresholdMarkers": false - }, "gridPos": { "h": 7, "w": 6, @@ -488,42 +509,31 @@ "y": 8 }, "id": 33, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false - }, - "tableColumn": "", + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "100 \n* \ncount(bookie_SERVER_STATUS{job=~\"$job\", kubernetes_pod_name=~\"$instance\"} == 1)\n/\ncount(bookie_SERVER_STATUS{job=~\"$job\", kubernetes_pod_name=~\"$instance\"})\n ", "format": "time_series", "interval": "", @@ -532,68 +542,98 @@ "refId": "A" } ], - "thresholds": "80,90", "title": "writable bookies (percentage)", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" + "type": "stat" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "Bps" }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 9, "x": 6, "y": 8 }, - "hiddenSeries": false, "id": 12, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "dataLinks": [] + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(rate(bookie_WRITE_BYTES{job=~\"$job\"}[60s]))", "format": "time_series", "interval": "", @@ -603,6 +643,10 @@ "step": 2 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(rate(bookie_READ_BYTES{job=~\"$job\"}[60s]))", "format": "time_series", "intervalFactor": 1, @@ -610,96 +654,98 @@ "refId": "B" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Throughput (MB / s)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "Bps", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 9, "x": 15, "y": 8 }, - "hiddenSeries": false, "id": 2, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "dataLinks": [] + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(irate(bookkeeper_server_READ_ENTRY_count{job=~\"$job\", kubernetes_pod_name=~\"$instance\", success=\"true\"}[60s]))", "format": "time_series", "interval": "", @@ -709,6 +755,10 @@ "step": 2 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(irate(bookkeeper_server_ADD_ENTRY_count{job=~\"$job\", kubernetes_pod_name=~\"$instance\", success=\"true\"}[60s]))", "format": "time_series", "interval": "", @@ -717,50 +767,11 @@ "refId": "B" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Entry Rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { "collapsed": false, - "datasource": null, "gridPos": { "h": 1, "w": 24, @@ -773,54 +784,94 @@ "type": "row" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "Bps" }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 16 }, - "hiddenSeries": false, "id": 3, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "dataLinks": [] + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(irate(bookie_WRITE_BYTES{job=~\"$job\", kubernetes_pod_name=~\"$instance\"}[60s])) by (kubernetes_pod_name) ", "format": "time_series", "interval": "", @@ -830,96 +881,98 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Write Bytes", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "Bps", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "Bps" }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 16 }, - "hiddenSeries": false, "id": 51, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "dataLinks": [] + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(irate(bookie_READ_BYTES{job=~\"$job\", kubernetes_pod_name=~\"$instance\"}[60s])) by (kubernetes_pod_name)", "format": "time_series", "interval": "", @@ -929,96 +982,98 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Read Bytes (bytes/s)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "Bps", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "Bps" }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 23 }, - "hiddenSeries": false, "id": 52, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "dataLinks": [] + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(irate(bookkeeper_server_ADD_ENTRY_REQUEST_count{job=~\"$job\", kubernetes_pod_name=~\"$instance\"}[60s])) by (kubernetes_pod_name)", "format": "time_series", "interval": "", @@ -1028,96 +1083,98 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Add Entry Rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "Bps", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "Bps" }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 23 }, - "hiddenSeries": false, "id": 53, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "dataLinks": [] + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(irate(bookkeeper_server_READ_ENTRY_REQUEST_count{job=~\"$job\", kubernetes_pod_name=~\"$instance\"}[60s])) by (kubernetes_pod_name)", "format": "time_series", "interval": "", @@ -1127,96 +1184,98 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Read Entry Rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "Bps", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "ms" }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 8, "x": 0, "y": 30 }, - "hiddenSeries": false, "id": 48, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "dataLinks": [] + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookkeeper_server_ADD_ENTRY_REQUEST{job=~\"$job\", kubernetes_pod_name=~\"$instance\", success=\"true\", quantile=\"0.5\"}) by (kubernetes_pod_name)", "format": "time_series", "interval": "", @@ -1226,96 +1285,98 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Add entry latency (p50)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "ms" }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 8, "x": 8, "y": 30 }, - "hiddenSeries": false, "id": 5, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "dataLinks": [] + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookkeeper_server_ADD_ENTRY_REQUEST{job=~\"$job\", kubernetes_pod_name=~\"$instance\", success=\"true\", quantile=\"0.99\"}) by (kubernetes_pod_name)", "format": "time_series", "interval": "", @@ -1325,96 +1386,98 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Add entry latency (99pct)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "ms" }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 8, "x": 16, "y": 30 }, - "hiddenSeries": false, "id": 49, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "dataLinks": [] + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookkeeper_server_ADD_ENTRY_REQUEST{job=~\"$job\", kubernetes_pod_name=~\"$instance\", success=\"true\", quantile=\"0.999\"}) by (kubernetes_pod_name)", "format": "time_series", "interval": "", @@ -1424,96 +1487,36 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Add entry latency (p999)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 8, "x": 0, "y": 37 }, - "hiddenSeries": false, "id": 54, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "dataLinks": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookkeeper_server_READ_ENTRY_REQUEST{job=~\"$job\", kubernetes_pod_name=~\"$instance\", success=\"true\", quantile=\"0.5\"}) by (kubernetes_pod_name)", "format": "time_series", "interval": "", @@ -1523,96 +1526,36 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Read entry latency (p50)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 8, "x": 8, "y": 37 }, - "hiddenSeries": false, "id": 55, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "dataLinks": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookkeeper_server_READ_ENTRY_REQUEST{job=~\"$job\", kubernetes_pod_name=~\"$instance\", success=\"true\", quantile=\"0.99\"}) by (kubernetes_pod_name)", "format": "time_series", "interval": "", @@ -1622,96 +1565,36 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Read entry latency (p99)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 8, "x": 16, "y": 37 }, - "hiddenSeries": false, "id": 56, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "dataLinks": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookkeeper_server_READ_ENTRY_REQUEST{job=~\"$job\", kubernetes_pod_name=~\"$instance\", success=\"true\", quantile=\"0.999\"}) by (kubernetes_pod_name)", "format": "time_series", "interval": "", @@ -1721,50 +1604,11 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Read entry latency (p999)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { "collapsed": false, - "datasource": null, "gridPos": { "h": 1, "w": 24, @@ -1777,54 +1621,32 @@ "type": "row" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 45 }, - "hiddenSeries": false, "id": 14, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "dataLinks": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(irate(bookie_journal_JOURNAL_SYNC_count{job=~\"$job\", kubernetes_pod_name=~\"$instance\", success=\"true\"}[60s])) by (kubernetes_pod_name)", "format": "time_series", "interval": "", @@ -1834,96 +1656,36 @@ "step": 4 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Journal Sync Rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 45 }, - "hiddenSeries": false, "id": 40, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "dataLinks": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(irate(bookie_journal_JOURNAL_ADD_ENTRY_count{job=~\"$job\", kubernetes_pod_name=~\"$instance\", success=\"true\"}[60s])) by (kubernetes_pod_name)", "format": "time_series", "interval": "", @@ -1933,96 +1695,36 @@ "step": 4 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Journal Add Rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 8, "x": 0, "y": 52 }, - "hiddenSeries": false, "id": 11, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "dataLinks": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookie_journal_JOURNAL_QUEUE_SIZE{job=~\"$job\", kubernetes_pod_name=~\"$instance\"}) by (kubernetes_pod_name)", "format": "time_series", "interval": "", @@ -2032,96 +1734,36 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Journal Queue length", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 8, "x": 8, "y": 52 }, - "hiddenSeries": false, "id": 36, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "dataLinks": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookie_journal_JOURNAL_FORCE_WRITE_QUEUE_SIZE{job=~\"$job\", kubernetes_pod_name=~\"$instance\"}) by (kubernetes_pod_name)", "format": "time_series", "interval": "", @@ -2131,96 +1773,36 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Journal Force Write Queue length", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 8, "x": 16, "y": 52 }, - "hiddenSeries": false, "id": 37, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "dataLinks": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookie_journal_JOURNAL_CB_QUEUE_SIZE{job=~\"$job\", kubernetes_pod_name=~\"$instance\"}) by (kubernetes_pod_name)", "format": "time_series", "interval": "", @@ -2230,96 +1812,36 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Journal Callback Queue length", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 8, "x": 0, "y": 59 }, - "hiddenSeries": false, "id": 10, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "dataLinks": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookie_journal_JOURNAL_ADD_ENTRY{job=~\"$job\", kubernetes_pod_name=~\"$instance\", success=\"true\", quantile=\"0.5\"}) by (kubernetes_pod_name)", "format": "time_series", "interval": "", @@ -2329,96 +1851,36 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Journal Add latency (p50)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 8, "x": 8, "y": 59 }, - "hiddenSeries": false, "id": 38, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "dataLinks": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookie_journal_JOURNAL_ADD_ENTRY{job=~\"$job\", kubernetes_pod_name=~\"$instance\", success=\"true\", quantile=\"0.99\"}) by (kubernetes_pod_name)", "format": "time_series", "interval": "", @@ -2428,96 +1890,36 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Journal Add latency (p99)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 8, "x": 16, "y": 59 }, - "hiddenSeries": false, "id": 39, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "dataLinks": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookie_journal_JOURNAL_ADD_ENTRY{job=~\"$job\", kubernetes_pod_name=~\"$instance\", success=\"true\", quantile=\"1.0\"}) by (kubernetes_pod_name)", "format": "time_series", "interval": "", @@ -2527,96 +1929,36 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Journal Add latency (Max)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 8, "x": 0, "y": 66 }, - "hiddenSeries": false, "id": 15, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "dataLinks": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookie_journal_JOURNAL_SYNC{job=~\"$job\", kubernetes_pod_name=~\"$instance\", success=\"true\", quantile=\"0.5\"}) by (kubernetes_pod_name)", "format": "time_series", "interval": "", @@ -2626,96 +1968,36 @@ "step": 4 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Journal Sync Latency (p50)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 8, "x": 8, "y": 66 }, - "hiddenSeries": false, "id": 41, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "dataLinks": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookie_journal_JOURNAL_SYNC{job=~\"$job\", kubernetes_pod_name=~\"$instance\", success=\"true\", quantile=\"0.99\"}) by (kubernetes_pod_name)", "format": "time_series", "interval": "", @@ -2725,96 +2007,36 @@ "step": 4 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Journal Sync Latency (p99)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 8, "x": 16, "y": 66 }, - "hiddenSeries": false, "id": 16, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "dataLinks": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookie_journal_JOURNAL_SYNC{job=~\"$job\", kubernetes_pod_name=~\"$instance\", success=\"true\", quantile=\"1.0\"}) by (kubernetes_pod_name)", "format": "time_series", "interval": "", @@ -2824,50 +2046,11 @@ "step": 4 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Journal Sync Latency (Max)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { "collapsed": false, - "datasource": null, "gridPos": { "h": 1, "w": 24, @@ -2880,54 +2063,32 @@ "type": "row" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 74 }, - "hiddenSeries": false, "id": 8, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "dataLinks": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookie_ledgers_count{job=~\"$job\", kubernetes_pod_name=~\"$instance\"}) by (kubernetes_pod_name)", "format": "time_series", "interval": "", @@ -2937,96 +2098,36 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Ledgers count", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 74 }, - "hiddenSeries": false, "id": 9, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "dataLinks": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookie_entries_count{job=~\"$job\", kubernetes_pod_name=~\"$instance\"}) by (kubernetes_pod_name)", "format": "time_series", "interval": "", @@ -3036,96 +2137,36 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Entries count", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 81 }, - "hiddenSeries": false, "id": 18, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "dataLinks": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookie_write_cache_size{job=~\"$job\", kubernetes_pod_name=~\"$instance\"}) by (kubernetes_pod_name)", "format": "time_series", "interval": "", @@ -3135,96 +2176,36 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Write Cache Size", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 81 }, - "hiddenSeries": false, "id": 19, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "dataLinks": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookie_read_cache_size{job=~\"$job\", kubernetes_pod_name=~\"$instance\"}) by (kubernetes_pod_name)", "format": "time_series", "interval": "", @@ -3234,95 +2215,36 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Read Cache Size", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 9, "w": 12, "x": 0, "y": 88 }, - "hiddenSeries": false, "id": 45, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "dataLinks": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookie_DELETED_LEDGER_COUNT{job=~\"$job\", kubernetes_pod_name=~\"$$instance\"}) by (kubernetes_pod_name)", "format": "time_series", "interval": "", @@ -3331,95 +2253,36 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Deleted Ledger Count", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { "h": 9, "w": 12, "x": 12, "y": 88 }, - "hiddenSeries": false, "id": 46, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "dataLinks": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(bookie_ledger_writable_dirs{job=~\"$job\", kubernetes_pod_name=~\"$instance\"}) by (kubernetes_pod_name)", "format": "time_series", "interval": "", @@ -3428,95 +2291,50 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Writable Ledger Directory Count", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" } ], + "preload": false, "refresh": "1m", - "schemaVersion": 25, - "style": "dark", + "schemaVersion": 41, "tags": [ "pulsar" ], "templating": { "list": [ { - "allValue": null, "current": { - "selected": false, "text": "bookkeeper", "value": "bookkeeper" }, "datasource": "Prometheus", - "definition": "bookkeeper_server_ADD_ENTRY{job=~\"$job\"}", - "hide": 0, + "definition": "bookkeeper_server_ADD_ENTRY{component=~\"bookkeeper\\\\d?\"}", "includeAll": true, - "label": "job", - "multi": false, + "label": "Bookie Set", "name": "job", "options": [], - "query": "bookkeeper_server_ADD_ENTRY{job=~\"$job\"}", + "query": { + "qryType": 4, + "query": "bookkeeper_server_ADD_ENTRY{component=~\"bookkeeper\\\\d?\"}", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, "refresh": 2, - "regex": "/.*[^_]job=\\\"(bookkeeper)\\\".*/", - "skipUrlSync": false, + "regex": "/.*component=\\\"(bookkeeper\\d?)\\\".*/", "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false + "type": "query" }, { - "allValue": null, "current": { - "selected": true, - "tags": [], - "text": "pulsar-bookkeeper-1", + "text": [ + "All" + ], "value": [ - "pulsar-bookkeeper-1" + "$__all" ] }, "datasource": "Prometheus", "definition": "bookkeeper_server_ADD_ENTRY{job=~\"$job\", kubernetes_pod_name=~\".+\"}", - "hide": 0, "includeAll": true, "label": "Bookie", "multi": true, @@ -3525,13 +2343,8 @@ "query": "bookkeeper_server_ADD_ENTRY{job=~\"$job\", kubernetes_pod_name=~\".+\"}", "refresh": 2, "regex": "/.*[^_]kubernetes_pod_name=\\\"([^\\\"]+)\\\".*/", - "skipUrlSync": false, "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false + "type": "query" } ] }, @@ -3550,17 +2363,6 @@ "1h", "2h", "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" ] }, "timezone": "browser", diff --git a/helm/kaap-stack/grafana-dashboards/broker-cache-by-broker.json b/helm/kaap-stack/grafana-dashboards/broker-cache-by-broker.json index 8f8f8235..51f5c196 100644 --- a/helm/kaap-stack/grafana-dashboards/broker-cache-by-broker.json +++ b/helm/kaap-stack/grafana-dashboards/broker-cache-by-broker.json @@ -24,10 +24,8 @@ "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": 48, - "iteration": 1662569745975, + "id": 8, "links": [], - "liveNow": false, "panels": [ { "datasource": { @@ -41,9 +39,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", @@ -52,6 +54,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -74,8 +77,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -98,14 +100,16 @@ "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "none" } }, - "pluginVersion": "8.5.0", + "pluginVersion": "11.6.1", "targets": [ { "datasource": { @@ -161,10 +165,6 @@ "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": { "type": "prometheus", "uid": "prometheus" @@ -172,44 +172,82 @@ "description": "", "fieldConfig": { "defaults": { - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 0 }, - "hiddenSeries": false, "id": 29, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.5.0", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", "targets": [ { "datasource": { @@ -224,35 +262,8 @@ "refId": "A" } ], - "thresholds": [], - "timeRegions": [], "title": "Cache Hit Percentage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } + "type": "timeseries" }, { "datasource": { @@ -265,9 +276,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", @@ -276,6 +291,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -298,8 +314,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -322,14 +337,16 @@ "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "none" } }, - "pluginVersion": "8.5.0", + "pluginVersion": "11.6.1", "targets": [ { "datasource": { @@ -348,54 +365,88 @@ "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": { "type": "prometheus", "uid": "prometheus" }, "fieldConfig": { "defaults": { - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 7 }, - "hiddenSeries": false, "id": 8, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.5.0", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", "targets": [ { "datasource": { @@ -410,41 +461,10 @@ "refId": "A" } ], - "thresholds": [], - "timeRegions": [], "title": "Cache Hit Rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": { "type": "prometheus", "uid": "prometheus" @@ -452,44 +472,82 @@ "description": "", "fieldConfig": { "defaults": { - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 15 }, - "hiddenSeries": false, "id": 27, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.5.0", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", "targets": [ { "datasource": { @@ -504,41 +562,10 @@ "refId": "A" } ], - "thresholds": [], - "timeRegions": [], "title": "Hits Throughput by Broker", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": { "type": "prometheus", "uid": "prometheus" @@ -546,44 +573,82 @@ "description": "", "fieldConfig": { "defaults": { - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 15 }, - "hiddenSeries": false, "id": 28, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.5.0", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", "targets": [ { "datasource": { @@ -598,41 +663,10 @@ "refId": "A" } ], - "thresholds": [], - "timeRegions": [], "title": "Misses Throughput by Broker", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": { "type": "prometheus", "uid": "prometheus" @@ -640,44 +674,82 @@ "description": "", "fieldConfig": { "defaults": { - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 23 }, - "hiddenSeries": false, "id": 12, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.5.0", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", "targets": [ { "datasource": { @@ -692,85 +764,92 @@ "refId": "A" } ], - "thresholds": [], - "timeRegions": [], "title": "Used Size By Broker", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": { "type": "prometheus", "uid": "prometheus" }, "fieldConfig": { "defaults": { - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 23 }, - "hiddenSeries": false, "id": 25, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.5.0", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", "targets": [ { "datasource": { @@ -785,55 +864,23 @@ "refId": "A" } ], - "thresholds": [], - "timeRegions": [], "title": "Evictions by Broker", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } + "type": "timeseries" } ], + "preload": false, "refresh": "1m", - "schemaVersion": 36, - "style": "dark", + "schemaVersion": 41, "tags": [], "templating": { "list": [ { "current": { - "selected": true, "text": [ - "pulsar-aws-useast1-broker-0", - "pulsar-aws-useast1-broker-1", - "pulsar-aws-useast1-broker-2" + "All" ], "value": [ - "pulsar-aws-useast1-broker-0", - "pulsar-aws-useast1-broker-1", - "pulsar-aws-useast1-broker-2" + "$__all" ] }, "datasource": { @@ -841,7 +888,6 @@ "uid": "prometheus" }, "definition": "label_values(pulsar_ml_AddEntryBytesRate, kubernetes_pod_name)", - "hide": 0, "includeAll": true, "multi": true, "name": "broker", @@ -852,8 +898,6 @@ }, "refresh": 1, "regex": "", - "skipUrlSync": false, - "sort": 0, "type": "query" } ] @@ -866,6 +910,5 @@ "timezone": "", "title": "Pulsar / Broker Cache By Broker", "uid": "mtRgpcM4k", - "version": 2, - "weekStart": "" -} \ No newline at end of file + "version": 1 +} diff --git a/helm/kaap-stack/grafana-dashboards/broker-cache.json b/helm/kaap-stack/grafana-dashboards/broker-cache.json index aa21992e..51433125 100644 --- a/helm/kaap-stack/grafana-dashboards/broker-cache.json +++ b/helm/kaap-stack/grafana-dashboards/broker-cache.json @@ -3,7 +3,10 @@ "list": [ { "builtIn": 1, - "datasource": "-- Grafana --", + "datasource": { + "type": "datasource", + "uid": "grafana" + }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", @@ -13,790 +16,826 @@ ] }, "editable": true, - "gnetId": null, + "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": 1, + "id": 7, "links": [], "panels": [ { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 0 }, - "hiddenSeries": false, "id": 22, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_ml_cache_hits_rate)", "interval": "", "legendFormat": "Cache Hit", "refId": "A" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_ml_cache_misses_rate)", "interval": "", "legendFormat": "Miss Rate", "refId": "B" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(avg(pulsar_rate_in) by (topic))", "interval": "", "legendFormat": "Rate In", "refId": "C" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(avg(pulsar_rate_out) by (topic))", "interval": "", "legendFormat": "Rate Out", "refId": "D" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "In/Out Rate vs Cache Hit/Miss Rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 0 }, - "hiddenSeries": false, "id": 29, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_ml_cache_hits_rate) / (sum(pulsar_ml_cache_hits_rate) + sum(pulsar_ml_cache_misses_rate)) * 100", "interval": "", "legendFormat": "Cache Hit %", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Cache Hit Percentage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 7 }, - "hiddenSeries": false, "id": 18, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_ml_cache_misses_rate) by (kubernetes_pod_name)", "interval": "", "legendFormat": "{{ instance }}", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Cache Miss Rate by Broker", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 7 }, - "hiddenSeries": false, "id": 8, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_ml_cache_hits_rate) by (kubernetes_pod_name)", "interval": "", "legendFormat": "", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Cache Hit Rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 15 }, - "hiddenSeries": false, "id": 27, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_ml_cache_hits_throughput) by (kubernetes_pod_name)", "interval": "", "legendFormat": "", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Hits Throughput by Broker", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 15 }, - "hiddenSeries": false, "id": 28, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_ml_cache_misses_throughput) by (kubernetes_pod_name)", "interval": "", "legendFormat": "", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Misses Throughput by Broker", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 23 }, - "hiddenSeries": false, "id": 12, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_ml_cache_used_size) by (kubernetes_pod_name)", "interval": "", "legendFormat": "", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Used Size By Broker", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 23 }, - "hiddenSeries": false, "id": 25, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_ml_cache_evictions) by (kubernetes_pod_name)", "interval": "", "legendFormat": "", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Evictions by Broker", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" } ], + "preload": false, "refresh": "1m", - "schemaVersion": 25, - "style": "dark", + "schemaVersion": 41, "tags": [], "templating": { "list": [] diff --git a/helm/kaap-stack/grafana-dashboards/debezium.json b/helm/kaap-stack/grafana-dashboards/debezium.json index 8567f6de..060ff039 100644 --- a/helm/kaap-stack/grafana-dashboards/debezium.json +++ b/helm/kaap-stack/grafana-dashboards/debezium.json @@ -3,7 +3,10 @@ "list": [ { "builtIn": 1, - "datasource": "-- Grafana --", + "datasource": { + "type": "datasource", + "uid": "grafana" + }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", @@ -13,504 +16,527 @@ ] }, "editable": true, - "gnetId": null, + "fiscalYearStartMonth": 0, "graphTooltip": 0, + "id": 9, "links": [], "panels": [ { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 0 }, - "hiddenSeries": false, "id": 7, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum by (kubernetes_pod_name) (rate(debezium_postgres_connector_metrics_TotalNumberOfEventsSeen[5m]))", "interval": "", "legendFormat": "{{ kubernetes_pod_name }}", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Event Rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 0 }, - "hiddenSeries": false, "id": 8, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum by (kubernetes_pod_name) (rate(debezium_postgres_connector_metrics_NumberOfCommittedTransactions[5m]))", "interval": "", "legendFormat": "{{ kubernetes_pod_name }}", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Commited Transaction Rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 8 }, - "hiddenSeries": false, "id": 6, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum by (kubernetes_pod_name) (debezium_postgres_connector_metrics_Connected)", "interval": "", "legendFormat": "{{ kubernetes_pod_name }}", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Connected Status", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 8 }, - "hiddenSeries": false, "id": 4, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum by (kubernetes_pod_name) (debezium_postgres_connector_metrics_NumberOfCommittedTransactions)", "interval": "", "legendFormat": "{{ kubernetes_pod_name }}", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Committed Transactions", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 9, "w": 12, "x": 0, "y": 16 }, - "hiddenSeries": false, "id": 2, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum by (kubernetes_pod_name) (debezium_postgres_connector_metrics_TotalNumberOfEventsSeen)", "interval": "", "legendFormat": "{{ kubernetes_pod_name }}", "refId": "A" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "", "interval": "", "legendFormat": "", "refId": "B" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "refId": "C" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "refId": "D" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Events Seen", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" } ], - "refresh": false, - "schemaVersion": 26, - "style": "dark", + "preload": false, + "refresh": "", + "schemaVersion": 41, "tags": [], "templating": { "list": [] diff --git a/helm/kaap-stack/grafana-dashboards/goruntime.json b/helm/kaap-stack/grafana-dashboards/goruntime.json deleted file mode 100644 index 5b6a7f76..00000000 --- a/helm/kaap-stack/grafana-dashboards/goruntime.json +++ /dev/null @@ -1,1193 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "description": "A quickstart to setup the Prometheus Go runtime exporter with preconfigured dashboards, alerting rules, and recording rules.", - "editable": true, - "gnetId": 14061, - "graphTooltip": 0, - "id": 39, - "iteration": 1651855349835, - "links": [], - "panels": [ - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "$datasource", - "description": "Average total bytes of memory reserved across all process instances of a job.", - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 0 - }, - "hiddenSeries": false, - "id": 16, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "avg by(job)(go_memstats_sys_bytes{job=\"$job\", instance=~\"$instance\"})", - "interval": "", - "legendFormat": "{{job}} (avg)", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Total Reserved Memory", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "$datasource", - "description": "Average stack memory usage across all instances of a job.", - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 0 - }, - "hiddenSeries": false, - "id": 24, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "avg by (job) (go_memstats_stack_sys_bytes{job=\"$job\", instance=~\"$instance\"})", - "interval": "", - "legendFormat": "{{job}}: stack inuse (avg)", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Stack Memory Use", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "$datasource", - "description": "Average memory reservations by the runtime, not for stack or heap, across all instances of a job.", - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 8 - }, - "hiddenSeries": false, - "id": 26, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "avg by (job)(go_memstats_mspan_sys_bytes{job=\"$job\", instance=~\"$instance\"})", - "interval": "", - "legendFormat": "{{instance}}: mspan (avg)", - "refId": "B" - }, - { - "expr": "avg by (job)(go_memstats_mcache_sys_bytes{job=\"$job\", instance=~\"$instance\"})", - "interval": "", - "legendFormat": "{{instance}}: mcache (avg)", - "refId": "D" - }, - { - "expr": "avg by (job)(go_memstats_buck_hash_sys_bytes{job=\"$job\", instance=~\"$instance\"})", - "interval": "", - "legendFormat": "{{instance}}: buck hash (avg)", - "refId": "E" - }, - { - "expr": "avg by (job)(go_memstats_gc_sys_bytes{job=\"$job\", instance=~\"$instance\"})", - "interval": "", - "legendFormat": "{{job}}: gc (avg)", - "refId": "F" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Other Memory Reservations", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "$datasource", - "description": "Average memory reserved, and actually in use, by the heap, across all instances of a job.", - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 8 - }, - "hiddenSeries": false, - "id": 12, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "avg by (job)(go_memstats_heap_sys_bytes{job=\"$job\", instance=~\"$instance\"})", - "interval": "", - "legendFormat": "{{job}}: heap reserved (avg)", - "refId": "B" - }, - { - "exemplar": true, - "expr": "avg by (job)(go_memstats_heap_inuse_bytes{job=\"$job\", instance=~\"$instance\"})", - "interval": "", - "legendFormat": "{{job}}: heap in use (avg)", - "refId": "A" - }, - { - "exemplar": true, - "expr": "avg by (job)(go_memstats_heap_alloc_bytes{job=~\"$job\",instance=~\"$instance\"})", - "interval": "", - "legendFormat": "{{job}}: heap alloc (avg)", - "refId": "C" - }, - { - "exemplar": true, - "expr": "avg by (job)(go_memstats_heap_idle_bytes{job=~\"$job\",instance=~\"$instance\"})", - "interval": "", - "legendFormat": "{{job}}: heap idle (avg)", - "refId": "D" - }, - { - "exemplar": true, - "expr": "avg by (job)(go_memstats_heap_released_bytes{job=~\"$job\",instance=~\"$instance\"})", - "interval": "", - "legendFormat": "{{job}}: heap released (avg)", - "refId": "E" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Heap Memory", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "$datasource", - "description": "Average allocation rate in bytes per second, across all instances of a job.", - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 16 - }, - "hiddenSeries": false, - "id": 14, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.5", - "pointradius": 1, - "points": true, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "avg by (job)(rate(go_memstats_alloc_bytes_total{job=\"$job\", instance=~\"$instance\"}[$__rate_interval]))", - "interval": "", - "legendFormat": "{{job}}: bytes malloced/s (avg)", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Allocation Rate, Bytes", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "Bps", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "$datasource", - "description": "Average rate of heap object allocation, across all instances of a job.", - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 16 - }, - "hiddenSeries": false, - "id": 20, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "rate(go_memstats_mallocs_total{job=\"$job\", instance=~\"$instance\"}[$__rate_interval])", - "interval": "", - "legendFormat": "{{job}}: obj mallocs/s (avg)", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Heap Object Allocation Rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "$datasource", - "description": "Average number of live memory objects across all instances of a job.", - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 24 - }, - "hiddenSeries": false, - "id": 22, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "avg by(job)(go_memstats_mallocs_total{job=\"$job\", instance=~\"$instance\"} - go_memstats_frees_total{job=\"$job\", instance=~\"$instance\"})", - "interval": "", - "legendFormat": "{{job}}: object count (avg)", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Number of Live Objects", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "$datasource", - "description": "Average number of goroutines across instances of a job.", - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 24 - }, - "hiddenSeries": false, - "id": 8, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "avg by (job)(go_goroutines{job=\"$job\", instance=~\"$instance\"})", - "interval": "", - "legendFormat": "{{job}}: goroutine count (avg)", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Goroutines", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": 0, - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "$datasource", - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 32 - }, - "hiddenSeries": false, - "id": 4, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": true, - "expr": "avg by (job)(go_gc_duration_seconds{quantile=\"0\", job=\"$job\", instance=~\"$instance\"})", - "interval": "", - "legendFormat": "{{job}}: min gc time (avg)", - "refId": "A" - }, - { - "exemplar": true, - "expr": "avg by (job)(go_gc_duration_seconds{quantile=\"1\", job=\"$job\", instance=~\"$instance\"})", - "interval": "", - "legendFormat": "{{job}}: max gc time (avg)", - "refId": "B" - }, - { - "exemplar": true, - "expr": "avg by (job)(go_gc_duration_seconds{quantile=\"0.5\", job=\"$job\", instance=~\"$instance\"})", - "hide": false, - "interval": "", - "legendFormat": "{{job}}: 0.5 quantile gc time (avg)", - "refId": "C" - }, - { - "exemplar": true, - "expr": "avg by (job)(go_gc_duration_seconds{quantile=\"0.75\", job=\"$job\", instance=~\"$instance\"})", - "hide": false, - "interval": "", - "legendFormat": "{{job}}: 0.75 quantile gc time (avg)", - "refId": "D" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "GC min & max duration", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "$datasource", - "description": "The number used bytes at which the runtime plans to perform the next GC, averaged across all instances of a job.", - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 32 - }, - "hiddenSeries": false, - "id": 27, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "avg by (job)(go_memstats_next_gc_bytes{job=\"$job\", instance=~\"$instance\"})", - "interval": "", - "legendFormat": "{{job}} next gc bytes (avg)", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Next GC, Bytes", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "s", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - } - ], - "refresh": "10s", - "schemaVersion": 27, - "style": "dark", - "tags": [ - "go", - "golang" - ], - "templating": { - "list": [ - { - "current": { - "selected": false, - "text": "Prometheus", - "value": "Prometheus" - }, - "description": null, - "error": null, - "hide": 0, - "includeAll": false, - "label": null, - "multi": false, - "name": "datasource", - "options": [], - "query": "prometheus", - "queryValue": "", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "type": "datasource" - }, - { - "allValue": null, - "current": { - "selected": false, - "text": "pulsar-monitor", - "value": "pulsar-monitor" - }, - "datasource": "$datasource", - "definition": "label_values(go_info, job)", - "description": null, - "error": null, - "hide": 0, - "includeAll": false, - "label": "job", - "multi": false, - "name": "job", - "options": [], - "query": { - "query": "label_values(go_info, job)", - "refId": "Prometheus-job-Variable-Query" - }, - "refresh": 2, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": "", - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": "$datasource", - "definition": "label_values(go_info{job=\"$job\"}, instance)", - "description": null, - "error": null, - "hide": 0, - "includeAll": true, - "label": "instance", - "multi": true, - "name": "instance", - "options": [], - "query": { - "query": "label_values(go_info{job=\"$job\"}, instance)", - "refId": "Prometheus-instance-Variable-Query" - }, - "refresh": 2, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - } - ] - }, - "time": { - "from": "now-1h", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" - ] - }, - "timezone": "", - "title": "Go Runtime Exporter", - "uid": "CgCw8jKZz3", - "version": 5 -} diff --git a/helm/kaap-stack/grafana-dashboards/jvm.json b/helm/kaap-stack/grafana-dashboards/jvm.json index 337518a2..3dd90731 100644 --- a/helm/kaap-stack/grafana-dashboards/jvm.json +++ b/helm/kaap-stack/grafana-dashboards/jvm.json @@ -3,1536 +3,129 @@ "list": [ { "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "description": "JVM Related Metrics", - "editable": true, - "gnetId": null, - "graphTooltip": 0, - "id": 21, - "iteration": 1617970014384, - "links": [], - "panels": [ - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 41, - "panels": [], - "repeat": "instance", - "scopedVars": {}, - "title": "$job - $instance", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 6, - "x": 0, - "y": 1 - }, - "hiddenSeries": false, - "id": 4, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "irate(process_cpu_seconds_total{kubernetes_pod_name=~\"$instance\"}[60s]) * 100\n\n", - "format": "time_series", - "interval": "", - "intervalFactor": 2, - "legendFormat": "{{kubernetes_pod_name}}", - "metric": "process_cpu_seconds_total", - "refId": "A", - "step": 20 - } - ], - "thresholds": [ - { - "colorMode": "ok", - "fill": false, - "line": true, - "op": "gt", - "value": 100, - "yaxis": "left" - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "CPU", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "percent", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 6, - "x": 6, - "y": 1 - }, - "hiddenSeries": false, - "id": 1, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "hideEmpty": false, - "max": false, - "min": false, - "rightSide": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(jvm_memory_bytes_committed{kubernetes_pod_name=~\"$instance\"})", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 2, - "legendFormat": "Heap size", - "metric": "jvm_memory_bytes_committed", - "refId": "A", - "step": 20 - }, - { - "expr": "sum(jvm_memory_bytes_used{kubernetes_pod_name=~\"$instance\"})", - "format": "time_series", - "interval": "", - "intervalFactor": 2, - "legendFormat": "Used", - "metric": "jvm_memory_bytes_used", - "refId": "B", - "step": 20 - }, - { - "expr": "sum(jvm_memory_bytes_max{kubernetes_pod_name=~\"$instance\"})", - "format": "time_series", - "interval": "", - "intervalFactor": 2, - "legendFormat": "Max", - "metric": "jvm_memory_bytes_max", - "refId": "C", - "step": 20 - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Heap Memory", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 6, - "x": 12, - "y": 1 - }, - "hiddenSeries": false, - "id": 2, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "jvm_memory_direct_bytes_used{kubernetes_pod_name=~\"$instance\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 2, - "legendFormat": "Used", - "metric": "jvm_memory_direct_bytes_used", - "refId": "A", - "step": 20 - }, - { - "expr": "jvm_memory_direct_bytes_max{kubernetes_pod_name=~\"$instance\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 2, - "legendFormat": "Max", - "metric": "jvm_memory_direct_bytes_max", - "refId": "B", - "step": 20 - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Direct Memory", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 6, - "x": 18, - "y": 1 - }, - "hiddenSeries": false, - "id": 3, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "scopedVars": {}, - "seriesOverrides": [ - { - "alias": "old count", - "yaxis": 2 - }, - { - "alias": "young count", - "yaxis": 2 - } - ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(increase(jvm_gc_collection_seconds_sum{kubernetes_pod_name=~\"$instance\"}[60s]))", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 2, - "legendFormat": "Pause", - "metric": "jvm_gc_collection_seconds_count", - "refId": "B", - "step": 20 - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "GC Time", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "s", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 7 - }, - "id": 42, - "panels": [], - "repeat": null, - "repeatIteration": 1617970014384, - "repeatPanelId": 41, - "scopedVars": {}, - "title": "$job - $instance", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 6, - "x": 0, - "y": 8 - }, - "hiddenSeries": false, - "id": 43, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "repeatIteration": 1617970014384, - "repeatPanelId": 4, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "irate(process_cpu_seconds_total{kubernetes_pod_name=~\"$instance\"}[60s]) * 100\n\n", - "format": "time_series", - "interval": "", - "intervalFactor": 2, - "legendFormat": "{{kubernetes_pod_name}}", - "metric": "process_cpu_seconds_total", - "refId": "A", - "step": 20 - } - ], - "thresholds": [ - { - "colorMode": "ok", - "fill": false, - "line": true, - "op": "gt", - "value": 100, - "yaxis": "left" - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "CPU", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "percent", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 6, - "x": 6, - "y": 8 - }, - "hiddenSeries": false, - "id": 44, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "hideEmpty": false, - "max": false, - "min": false, - "rightSide": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "repeatIteration": 1617970014384, - "repeatPanelId": 1, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(jvm_memory_bytes_committed{kubernetes_pod_name=~\"$instance\"})", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 2, - "legendFormat": "Heap size", - "metric": "jvm_memory_bytes_committed", - "refId": "A", - "step": 20 - }, - { - "expr": "sum(jvm_memory_bytes_used{kubernetes_pod_name=~\"$instance\"})", - "format": "time_series", - "interval": "", - "intervalFactor": 2, - "legendFormat": "Used", - "metric": "jvm_memory_bytes_used", - "refId": "B", - "step": 20 - }, - { - "expr": "sum(jvm_memory_bytes_max{kubernetes_pod_name=~\"$instance\"})", - "format": "time_series", - "interval": "", - "intervalFactor": 2, - "legendFormat": "Max", - "metric": "jvm_memory_bytes_max", - "refId": "C", - "step": 20 - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Heap Memory", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 6, - "x": 12, - "y": 8 - }, - "hiddenSeries": false, - "id": 45, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "repeatIteration": 1617970014384, - "repeatPanelId": 2, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "jvm_memory_direct_bytes_used{kubernetes_pod_name=~\"$instance\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 2, - "legendFormat": "Used", - "metric": "jvm_memory_direct_bytes_used", - "refId": "A", - "step": 20 - }, - { - "expr": "jvm_memory_direct_bytes_max{kubernetes_pod_name=~\"$instance\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 2, - "legendFormat": "Max", - "metric": "jvm_memory_direct_bytes_max", - "refId": "B", - "step": 20 - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Direct Memory", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 6, - "x": 18, - "y": 8 - }, - "hiddenSeries": false, - "id": 46, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "repeatIteration": 1617970014384, - "repeatPanelId": 3, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [ - { - "alias": "old count", - "yaxis": 2 - }, - { - "alias": "young count", - "yaxis": 2 - } - ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(increase(jvm_gc_collection_seconds_sum{kubernetes_pod_name=~\"$instance\"}[60s]))", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 2, - "legendFormat": "Pause", - "metric": "jvm_gc_collection_seconds_count", - "refId": "B", - "step": 20 - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "GC Time", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "s", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 14 - }, - "id": 47, - "panels": [], - "repeat": null, - "repeatIteration": 1617970014384, - "repeatPanelId": 41, - "scopedVars": {}, - "title": "$job - $instance", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 6, - "x": 0, - "y": 15 - }, - "hiddenSeries": false, - "id": 48, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "repeatIteration": 1617970014384, - "repeatPanelId": 4, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "irate(process_cpu_seconds_total{kubernetes_pod_name=~\"$instance\"}[60s]) * 100\n\n", - "format": "time_series", - "interval": "", - "intervalFactor": 2, - "legendFormat": "{{kubernetes_pod_name}}", - "metric": "process_cpu_seconds_total", - "refId": "A", - "step": 20 - } - ], - "thresholds": [ - { - "colorMode": "ok", - "fill": false, - "line": true, - "op": "gt", - "value": 100, - "yaxis": "left" - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "CPU", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "percent", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 6, - "x": 6, - "y": 15 - }, - "hiddenSeries": false, - "id": 49, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "hideEmpty": false, - "max": false, - "min": false, - "rightSide": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "repeatIteration": 1617970014384, - "repeatPanelId": 1, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(jvm_memory_bytes_committed{kubernetes_pod_name=~\"$instance\"})", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 2, - "legendFormat": "Heap size", - "metric": "jvm_memory_bytes_committed", - "refId": "A", - "step": 20 - }, - { - "expr": "sum(jvm_memory_bytes_used{kubernetes_pod_name=~\"$instance\"})", - "format": "time_series", - "interval": "", - "intervalFactor": 2, - "legendFormat": "Used", - "metric": "jvm_memory_bytes_used", - "refId": "B", - "step": 20 - }, - { - "expr": "sum(jvm_memory_bytes_max{kubernetes_pod_name=~\"$instance\"})", - "format": "time_series", - "interval": "", - "intervalFactor": 2, - "legendFormat": "Max", - "metric": "jvm_memory_bytes_max", - "refId": "C", - "step": 20 - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Heap Memory", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 6, - "x": 12, - "y": 15 - }, - "hiddenSeries": false, - "id": 50, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "repeatIteration": 1617970014384, - "repeatPanelId": 2, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "jvm_memory_direct_bytes_used{kubernetes_pod_name=~\"$instance\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 2, - "legendFormat": "Used", - "metric": "jvm_memory_direct_bytes_used", - "refId": "A", - "step": 20 - }, - { - "expr": "jvm_memory_direct_bytes_max{kubernetes_pod_name=~\"$instance\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 2, - "legendFormat": "Max", - "metric": "jvm_memory_direct_bytes_max", - "refId": "B", - "step": 20 - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Direct Memory", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true + "datasource": { + "type": "datasource", + "uid": "grafana" }, - { - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 6, - "x": 18, - "y": 15 - }, - "hiddenSeries": false, - "id": 51, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "repeatIteration": 1617970014384, - "repeatPanelId": 3, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [ - { - "alias": "old count", - "yaxis": 2 - }, - { - "alias": "young count", - "yaxis": 2 - } - ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(increase(jvm_gc_collection_seconds_sum{kubernetes_pod_name=~\"$instance\"}[60s]))", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 2, - "legendFormat": "Pause", - "metric": "jvm_gc_collection_seconds_count", - "refId": "B", - "step": 20 - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "GC Time", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "s", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" } - }, + ] + }, + "description": "JVM Related Metrics", + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 11, + "links": [], + "panels": [ { "collapsed": false, - "datasource": null, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 21 + "y": 0 }, - "id": 52, + "id": 41, "panels": [], - "repeat": null, - "repeatIteration": 1617970014384, - "repeatPanelId": 41, - "scopedVars": {}, + "repeat": "instance", "title": "$job - $instance", "type": "row" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "line" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "transparent" + }, + { + "color": "red", + "value": 100 + } + ] + }, + "unit": "percent" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 6, "w": 6, "x": 0, - "y": 22 - }, - "hiddenSeries": false, - "id": 53, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false + "y": 1 }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", + "id": 4, "options": { - "dataLinks": [] + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "repeatIteration": 1617970014384, - "repeatPanelId": 4, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "irate(process_cpu_seconds_total{kubernetes_pod_name=~\"$instance\"}[60s]) * 100\n\n", "format": "time_series", "interval": "", @@ -1543,111 +136,97 @@ "step": 20 } ], - "thresholds": [ - { - "colorMode": "ok", - "fill": false, - "line": true, - "op": "gt", - "value": 100, - "yaxis": "left" - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "CPU", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "percent", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 6, "w": 6, "x": 6, - "y": 22 - }, - "hiddenSeries": false, - "id": 54, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "hideEmpty": false, - "max": false, - "min": false, - "rightSide": false, - "show": false, - "total": false, - "values": false + "y": 1 }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", + "id": 1, "options": { - "dataLinks": [] + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "repeatIteration": 1617970014384, - "repeatPanelId": 1, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(jvm_memory_bytes_committed{kubernetes_pod_name=~\"$instance\"})", "format": "time_series", "hide": false, @@ -1659,6 +238,10 @@ "step": 20 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(jvm_memory_bytes_used{kubernetes_pod_name=~\"$instance\"})", "format": "time_series", "interval": "", @@ -1669,6 +252,10 @@ "step": 20 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(jvm_memory_bytes_max{kubernetes_pod_name=~\"$instance\"})", "format": "time_series", "interval": "", @@ -1679,99 +266,97 @@ "step": 20 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Heap Memory", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 6, "w": 6, "x": 12, - "y": 22 - }, - "hiddenSeries": false, - "id": 55, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false + "y": 1 }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", + "id": 2, "options": { - "dataLinks": [] + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "repeatIteration": 1617970014384, - "repeatPanelId": 2, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "jvm_memory_direct_bytes_used{kubernetes_pod_name=~\"$instance\"}", "format": "time_series", "interval": "", @@ -1782,6 +367,10 @@ "step": 20 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "jvm_memory_direct_bytes_max{kubernetes_pod_name=~\"$instance\"}", "format": "time_series", "interval": "", @@ -1792,108 +381,139 @@ "step": 20 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Direct Memory", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} - }, - "overrides": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "old count" + }, + "properties": [ + { + "id": "unit", + "value": "short" + }, + { + "id": "custom.axisPlacement", + "value": "right" + }, + { + "id": "custom.axisPlacement", + "value": "hidden" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "young count" + }, + "properties": [ + { + "id": "unit", + "value": "short" + }, + { + "id": "custom.axisPlacement", + "value": "right" + }, + { + "id": "custom.axisPlacement", + "value": "hidden" + } + ] + } + ] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 6, "w": 6, "x": 18, - "y": 22 - }, - "hiddenSeries": false, - "id": 56, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false + "y": 1 }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", + "id": 3, "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "repeatIteration": 1617970014384, - "repeatPanelId": 3, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [ - { - "alias": "old count", - "yaxis": 2 + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false }, - { - "alias": "young count", - "yaxis": 2 + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" } - ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + }, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(increase(jvm_gc_collection_seconds_sum{kubernetes_pod_name=~\"$instance\"}[60s]))", "format": "time_series", "hide": false, @@ -1905,118 +525,58 @@ "step": 20 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "GC Time", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "s", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" } ], + "preload": false, "refresh": "1m", - "schemaVersion": 25, - "style": "dark", + "schemaVersion": 41, "tags": [ "pulsar" ], "templating": { "list": [ { - "allValue": null, "current": { - "selected": false, "text": "All", "value": "$__all" }, "datasource": "Prometheus", "definition": "", - "hide": 0, "includeAll": true, "label": "Cluster", - "multi": false, "name": "cluster", "options": [], "query": "jvm_memory_bytes_used{cluster=~\".+\"}", "refresh": 1, "regex": "/.*[^_]cluster=\\\"([^\\\"]+)\\\".*/", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false + "type": "query" }, { - "allValue": null, "current": { - "selected": true, "text": "bookkeeper", "value": "bookkeeper" }, "datasource": "Prometheus", "definition": "", - "hide": 0, "includeAll": true, "label": "Job", - "multi": false, "name": "job", "options": [], "query": "jvm_memory_bytes_used{job=~\".+\"}", "refresh": 1, "regex": "/.*[^_]job=\\\"([^\\\"]+)\\\".*/", - "skipUrlSync": false, "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false + "type": "query" }, { - "allValue": null, "current": { - "selected": false, "text": "All", "value": "$__all" }, "datasource": "Prometheus", "definition": "jvm_memory_bytes_used{job=~\"$job\", kubernetes_pod_name=~\".+\"}", - "hide": 0, "includeAll": true, "label": "Instance", "multi": true, @@ -2025,13 +585,8 @@ "query": "jvm_memory_bytes_used{job=~\"$job\", kubernetes_pod_name=~\".+\"}", "refresh": 2, "regex": "/.*[^_]kubernetes_pod_name=\\\"([^\\\"]+)\\\".*/", - "skipUrlSync": false, "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false + "type": "query" } ] }, @@ -2050,17 +605,6 @@ "1h", "2h", "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" ] }, "timezone": "browser", diff --git a/helm/kaap-stack/grafana-dashboards/load-balance.json b/helm/kaap-stack/grafana-dashboards/load-balance.json index 1d4f106e..6182149f 100644 --- a/helm/kaap-stack/grafana-dashboards/load-balance.json +++ b/helm/kaap-stack/grafana-dashboards/load-balance.json @@ -3,213 +3,228 @@ "list": [ { "builtIn": 1, - "datasource": "-- Grafana --", + "datasource": { + "type": "datasource", + "uid": "grafana" + }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", + "target": { + "limit": 100, + "matchAny": false, + "tags": [], + "type": "dashboard" + }, "type": "dashboard" } ] }, "editable": true, - "gnetId": null, + "fiscalYearStartMonth": 0, "graphTooltip": 0, "id": 12, - "iteration": 1621329296794, "links": [], "panels": [ { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 0 }, - "hiddenSeries": false, "id": 47, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "dataLinks": [] + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "pulsar_lb_cpu_usage{kubernetes_pod_name=~\"$instance\"}", "interval": "", "legendFormat": "{{ kubernetes_pod_name }}", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "CPU Usage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 0 }, - "hiddenSeries": false, "id": 48, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "dataLinks": [] + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "pulsar_lb_memory_usage{kubernetes_pod_name=~\"$instance\"}", "interval": "", "legendFormat": "{{ kubernetes_pod_name }}", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Memory Usage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { "collapsed": false, - "datasource": null, "gridPos": { "h": 1, "w": 24, @@ -222,575 +237,600 @@ "type": "row" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 9 }, - "hiddenSeries": false, "id": 50, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "dataLinks": [] + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "pulsar_lb_bandwidth_in_usage{kubernetes_pod_name=~\"$instance\"}", "interval": "", "legendFormat": "{{ kubernetes_pod_name }}", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Bandwidth In Usage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 9 }, - "hiddenSeries": false, "id": 49, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "dataLinks": [] + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "pulsar_lb_directMemory_usage{kubernetes_pod_name=~\"$instance\"}", "interval": "", "legendFormat": "{{ kubernetes_pod_name }}", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Direct Memory Usage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 17 }, - "hiddenSeries": false, "id": 51, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "dataLinks": [] + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "pulsar_lb_bandwidth_out_usage{kubernetes_pod_name=~\"$instance\"}", "interval": "", "legendFormat": "{{ kubernetes_pod_name }}", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Bandwidth Out Usage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 5, "x": 12, "y": 17 }, - "hiddenSeries": false, "id": 10, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "dataLinks": [] + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { - "expr": "pulsar_lb_unload_broker_count{kubernetes_pod_name=~\"$instance\"}", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "editorMode": "code", + "expr": "pulsar_lb_unload_broker_total{kubernetes_pod_name=~\"$instance\"}", "interval": "", "legendFormat": "{{ kubernetes_pod_name }}", + "range": true, "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Unload Broker Total", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 5, "x": 17, "y": 17 }, - "hiddenSeries": false, "id": 11, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "dataLinks": [] + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { - "expr": "pulsar_lb_unload_bundle_count{kubernetes_pod_name=~\"$instance\"}", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "pulsar_lb_unload_bundle_total{kubernetes_pod_name=~\"$instance\"}", "interval": "", "legendFormat": "{{ kubernetes_pod_name }}", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Unload Bundle Total", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 5, "x": 0, "y": 25 }, - "hiddenSeries": false, "id": 7, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "dataLinks": [] + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { - "expr": "pulsar_lb_bundles_split_count{kubernetes_pod_name=~\"$instance\"}", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "pulsar_lb_bundles_split_total{kubernetes_pod_name=~\"$instance\"}", "interval": "", "legendFormat": "{{ kubernetes_pod_name }}", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Bundles Split Total", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { "collapsed": false, - "datasource": null, "gridPos": { "h": 1, "w": 24, @@ -800,3147 +840,531 @@ "id": 13, "panels": [], "repeat": "instance", - "scopedVars": {}, "title": "$instance", "type": "row" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "line+area" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "transparent" + }, + { + "color": "orange", + "value": 85 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 5, "x": 0, "y": 34 }, - "hiddenSeries": false, "id": 8, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "dataLinks": [] + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "pulsar_lb_cpu_usage{kubernetes_pod_name=~\"$instance\"}", "interval": "", "legendFormat": "{{ kubernetes_pod_name }}", "refId": "A" } ], - "thresholds": [ - { - "colorMode": "warning", - "fill": true, - "line": true, - "op": "gt", - "value": 85, - "yaxis": "left" - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "CPU Usage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 5, "x": 5, "y": 34 }, - "hiddenSeries": false, "id": 5, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "dataLinks": [] + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "pulsar_lb_memory_usage{kubernetes_pod_name=~\"$instance\"}", "interval": "", "legendFormat": "{{ kubernetes_pod_name }}", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Memory", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 4, "x": 10, "y": 34 }, - "hiddenSeries": false, "id": 9, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "dataLinks": [] + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "pulsar_lb_directMemory_usage{kubernetes_pod_name=~\"$instance\"}", "interval": "", "legendFormat": "{{ kubernetes_pod_name }}", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Direct Memory", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 4, "x": 14, "y": 34 }, - "hiddenSeries": false, "id": 4, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "dataLinks": [] + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "pulsar_lb_bandwidth_in_usage{kubernetes_pod_name=~\"$instance\"}", "interval": "", "legendFormat": "{{ kubernetes_pod_name }}", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Bandwidth In", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 4, "x": 18, "y": 34 }, - "hiddenSeries": false, "id": 6, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_lb_bandwidth_out_usage{kubernetes_pod_name=~\"$instance\"}", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Bandwidth Out", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 42 - }, - "id": 52, - "panels": [], - "repeat": null, - "repeatIteration": 1621329296794, - "repeatPanelId": 13, - "scopedVars": {}, - "title": "$instance", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 5, - "x": 0, - "y": 43 - }, - "hiddenSeries": false, - "id": 53, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621329296794, - "repeatPanelId": 8, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { - "expr": "pulsar_lb_cpu_usage{kubernetes_pod_name=~\"$instance\"}", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "pulsar_lb_bandwidth_out_usage{kubernetes_pod_name=~\"$instance\"}", "interval": "", "legendFormat": "{{ kubernetes_pod_name }}", "refId": "A" } ], - "thresholds": [ - { - "colorMode": "warning", - "fill": true, - "line": true, - "op": "gt", - "value": 85, - "yaxis": "left" - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "CPU Usage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + "title": "Bandwidth Out", + "type": "timeseries" + } + ], + "preload": false, + "refresh": "1m", + "schemaVersion": 41, + "tags": [], + "templating": { + "list": [ + { + "current": { + "text": "All", + "value": "$__all" }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} + "datasource": { + "type": "prometheus", + "uid": "prometheus" }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 5, - "x": 5, - "y": 43 - }, - "hiddenSeries": false, - "id": 54, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621329296794, - "repeatPanelId": 5, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_lb_memory_usage{kubernetes_pod_name=~\"$instance\"}", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Memory", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + "definition": "pulsar_lb_memory_usage{job=~\"broker.*\", kubernetes_pod_name=~\".+\"}", + "includeAll": true, + "name": "instance", + "options": [], + "query": { + "query": "pulsar_lb_memory_usage{job=~\"broker.*\", kubernetes_pod_name=~\".+\"}", + "refId": "Prometheus-instance-Variable-Query" }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 4, - "x": 10, - "y": 43 - }, - "hiddenSeries": false, - "id": 55, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621329296794, - "repeatPanelId": 9, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_lb_directMemory_usage{kubernetes_pod_name=~\"$instance\"}", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Direct Memory", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 4, - "x": 14, - "y": 43 - }, - "hiddenSeries": false, - "id": 56, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621329296794, - "repeatPanelId": 4, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_lb_bandwidth_in_usage{kubernetes_pod_name=~\"$instance\"}", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Bandwidth In", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 4, - "x": 18, - "y": 43 - }, - "hiddenSeries": false, - "id": 57, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621329296794, - "repeatPanelId": 6, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_lb_bandwidth_out_usage{kubernetes_pod_name=~\"$instance\"}", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Bandwidth Out", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 51 - }, - "id": 58, - "panels": [], - "repeat": null, - "repeatIteration": 1621329296794, - "repeatPanelId": 13, - "scopedVars": {}, - "title": "$instance", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 5, - "x": 0, - "y": 52 - }, - "hiddenSeries": false, - "id": 59, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621329296794, - "repeatPanelId": 8, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_lb_cpu_usage{kubernetes_pod_name=~\"$instance\"}", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [ - { - "colorMode": "warning", - "fill": true, - "line": true, - "op": "gt", - "value": 85, - "yaxis": "left" - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "CPU Usage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 5, - "x": 5, - "y": 52 - }, - "hiddenSeries": false, - "id": 60, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621329296794, - "repeatPanelId": 5, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_lb_memory_usage{kubernetes_pod_name=~\"$instance\"}", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Memory", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 4, - "x": 10, - "y": 52 - }, - "hiddenSeries": false, - "id": 61, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621329296794, - "repeatPanelId": 9, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_lb_directMemory_usage{kubernetes_pod_name=~\"$instance\"}", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Direct Memory", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 4, - "x": 14, - "y": 52 - }, - "hiddenSeries": false, - "id": 62, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621329296794, - "repeatPanelId": 4, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_lb_bandwidth_in_usage{kubernetes_pod_name=~\"$instance\"}", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Bandwidth In", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 4, - "x": 18, - "y": 52 - }, - "hiddenSeries": false, - "id": 63, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621329296794, - "repeatPanelId": 6, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_lb_bandwidth_out_usage{kubernetes_pod_name=~\"$instance\"}", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Bandwidth Out", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 60 - }, - "id": 64, - "panels": [], - "repeat": null, - "repeatIteration": 1621329296794, - "repeatPanelId": 13, - "scopedVars": {}, - "title": "$instance", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 5, - "x": 0, - "y": 61 - }, - "hiddenSeries": false, - "id": 65, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621329296794, - "repeatPanelId": 8, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_lb_cpu_usage{kubernetes_pod_name=~\"$instance\"}", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [ - { - "colorMode": "warning", - "fill": true, - "line": true, - "op": "gt", - "value": 85, - "yaxis": "left" - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "CPU Usage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 5, - "x": 5, - "y": 61 - }, - "hiddenSeries": false, - "id": 66, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621329296794, - "repeatPanelId": 5, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_lb_memory_usage{kubernetes_pod_name=~\"$instance\"}", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Memory", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 4, - "x": 10, - "y": 61 - }, - "hiddenSeries": false, - "id": 67, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621329296794, - "repeatPanelId": 9, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_lb_directMemory_usage{kubernetes_pod_name=~\"$instance\"}", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Direct Memory", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 4, - "x": 14, - "y": 61 - }, - "hiddenSeries": false, - "id": 68, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621329296794, - "repeatPanelId": 4, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_lb_bandwidth_in_usage{kubernetes_pod_name=~\"$instance\"}", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Bandwidth In", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 4, - "x": 18, - "y": 61 - }, - "hiddenSeries": false, - "id": 69, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621329296794, - "repeatPanelId": 6, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_lb_bandwidth_out_usage{kubernetes_pod_name=~\"$instance\"}", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Bandwidth Out", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 69 - }, - "id": 70, - "panels": [], - "repeat": null, - "repeatIteration": 1621329296794, - "repeatPanelId": 13, - "scopedVars": {}, - "title": "$instance", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 5, - "x": 0, - "y": 70 - }, - "hiddenSeries": false, - "id": 71, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621329296794, - "repeatPanelId": 8, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_lb_cpu_usage{kubernetes_pod_name=~\"$instance\"}", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [ - { - "colorMode": "warning", - "fill": true, - "line": true, - "op": "gt", - "value": 85, - "yaxis": "left" - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "CPU Usage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 5, - "x": 5, - "y": 70 - }, - "hiddenSeries": false, - "id": 72, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621329296794, - "repeatPanelId": 5, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_lb_memory_usage{kubernetes_pod_name=~\"$instance\"}", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Memory", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 4, - "x": 10, - "y": 70 - }, - "hiddenSeries": false, - "id": 73, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621329296794, - "repeatPanelId": 9, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_lb_directMemory_usage{kubernetes_pod_name=~\"$instance\"}", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Direct Memory", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 4, - "x": 14, - "y": 70 - }, - "hiddenSeries": false, - "id": 74, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621329296794, - "repeatPanelId": 4, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_lb_bandwidth_in_usage{kubernetes_pod_name=~\"$instance\"}", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Bandwidth In", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 4, - "x": 18, - "y": 70 - }, - "hiddenSeries": false, - "id": 75, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621329296794, - "repeatPanelId": 6, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_lb_bandwidth_out_usage{kubernetes_pod_name=~\"$instance\"}", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Bandwidth Out", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 78 - }, - "id": 76, - "panels": [], - "repeat": null, - "repeatIteration": 1621329296794, - "repeatPanelId": 13, - "scopedVars": {}, - "title": "$instance", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 5, - "x": 0, - "y": 79 - }, - "hiddenSeries": false, - "id": 77, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621329296794, - "repeatPanelId": 8, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_lb_cpu_usage{kubernetes_pod_name=~\"$instance\"}", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [ - { - "colorMode": "warning", - "fill": true, - "line": true, - "op": "gt", - "value": 85, - "yaxis": "left" - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "CPU Usage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 5, - "x": 5, - "y": 79 - }, - "hiddenSeries": false, - "id": 78, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621329296794, - "repeatPanelId": 5, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_lb_memory_usage{kubernetes_pod_name=~\"$instance\"}", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Memory", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 4, - "x": 10, - "y": 79 - }, - "hiddenSeries": false, - "id": 79, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621329296794, - "repeatPanelId": 9, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_lb_directMemory_usage{kubernetes_pod_name=~\"$instance\"}", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Direct Memory", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 4, - "x": 14, - "y": 79 - }, - "hiddenSeries": false, - "id": 80, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621329296794, - "repeatPanelId": 4, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_lb_bandwidth_in_usage{kubernetes_pod_name=~\"$instance\"}", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Bandwidth In", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 4, - "x": 18, - "y": 79 - }, - "hiddenSeries": false, - "id": 81, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "repeatIteration": 1621329296794, - "repeatPanelId": 6, - "repeatedByRow": true, - "scopedVars": {}, - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_lb_bandwidth_out_usage{kubernetes_pod_name=~\"$instance\"}", - "interval": "", - "legendFormat": "{{ kubernetes_pod_name }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Bandwidth Out", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - } - ], - "refresh": "1m", - "schemaVersion": 25, - "style": "dark", - "tags": [], - "templating": { - "list": [ - { - "allValue": null, - "current": { - "selected": true, - "text": "All", - "value": "$__all" - }, - "datasource": "Prometheus", - "definition": "pulsar_lb_memory_usage{job=~\"broker.*\", kubernetes_pod_name=~\".+\"}", - "hide": 0, - "includeAll": true, - "label": null, - "multi": false, - "name": "instance", - "options": [ - { - "selected": true, - "text": "All", - "value": "$__all" - } - ], - "query": "pulsar_lb_memory_usage{job=~\"broker.*\", kubernetes_pod_name=~\".+\"}", "refresh": 1, "regex": "/.*[^_]kubernetes_pod_name=\\\"([^\\\"]+)\\\".*/", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false + "type": "query" } ] }, @@ -3963,6 +1387,6 @@ }, "timezone": "", "title": "Pulsar / Load Balancing", - "uid": "WLVt6P_Mk", + "uid": "Mcz1HWESz", "version": 1 -} \ No newline at end of file +} diff --git a/helm/kaap-stack/grafana-dashboards/messaging.json b/helm/kaap-stack/grafana-dashboards/messaging.json index bfa650c9..ddac8419 100644 --- a/helm/kaap-stack/grafana-dashboards/messaging.json +++ b/helm/kaap-stack/grafana-dashboards/messaging.json @@ -1,45 +1,12 @@ { - "__inputs": [ - { - "name": "DS_TEST-CLUSTER", - "label": "Prometheus", - "description": "", - "type": "datasource", - "pluginId": "prometheus", - "pluginName": "Prometheus" - } - ], - "__requires": [ - { - "type": "grafana", - "id": "grafana", - "name": "Grafana", - "version": "5.3.2" - }, - { - "type": "panel", - "id": "graph", - "name": "Graph", - "version": "5.0.0" - }, - { - "type": "datasource", - "id": "prometheus", - "name": "Prometheus", - "version": "5.0.0" - }, - { - "type": "panel", - "id": "singlestat", - "name": "Singlestat", - "version": "5.0.0" - } - ], "annotations": { "list": [ { "builtIn": 1, - "datasource": "-- Grafana --", + "datasource": { + "type": "datasource", + "uid": "grafana" + }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", @@ -50,10 +17,9 @@ }, "description": "Messaging Related Metrics Per Namespace", "editable": true, - "gnetId": null, + "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": null, - "iteration": 1543830651050, + "id": 13, "links": [], "panels": [ { @@ -70,22 +36,38 @@ "type": "row" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": "Prometheus", - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] }, "gridPos": { "h": 5, @@ -94,78 +76,73 @@ "y": 1 }, "id": 26, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_topics_count{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"})", "format": "time_series", "intervalFactor": 1, "refId": "A" } ], - "thresholds": "", "title": "Topics", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" + "type": "stat" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": "Prometheus", - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] }, "gridPos": { "h": 5, @@ -174,42 +151,31 @@ "y": 1 }, "id": 27, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_producers_count{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"})", "format": "time_series", "interval": "", @@ -218,36 +184,42 @@ "refId": "A" } ], - "thresholds": "", "title": "Producers", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" + "type": "stat" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": "Prometheus", - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] }, "gridPos": { "h": 5, @@ -256,42 +228,31 @@ "y": 1 }, "id": 29, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_subscriptions_count{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"})", "format": "time_series", "interval": "", @@ -300,36 +261,42 @@ "refId": "A" } ], - "thresholds": "", "title": "Subscriptions", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" + "type": "stat" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": "Prometheus", - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] }, "gridPos": { "h": 5, @@ -338,42 +305,31 @@ "y": 1 }, "id": 28, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_consumers_count{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"})", "format": "time_series", "interval": "", @@ -382,36 +338,42 @@ "refId": "A" } ], - "thresholds": "", "title": "Consumers", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" + "type": "stat" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": "Prometheus", - "format": "decbytes", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] }, "gridPos": { "h": 5, @@ -420,42 +382,31 @@ "y": 1 }, "id": 31, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_msg_backlog{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"})", "format": "time_series", "interval": "", @@ -464,36 +415,42 @@ "refId": "A" } ], - "thresholds": "", "title": "Msg Backlog", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" + "type": "stat" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": "Prometheus", - "format": "decbytes", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] }, "gridPos": { "h": 5, @@ -502,42 +459,31 @@ "y": 1 }, "id": 30, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_size{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"})", "format": "time_series", "interval": "", @@ -546,18 +492,8 @@ "refId": "A" } ], - "thresholds": "", "title": "Storage Size", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" + "type": "stat" }, { "collapsed": true, @@ -570,12 +506,14 @@ "id": 18, "panels": [ { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 7, "w": 12, @@ -583,30 +521,13 @@ "y": 7 }, "id": 16, - "legend": { - "avg": false, - "current": false, - "hideEmpty": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_rate_in{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"}) by (cluster, namespace)", "format": "time_series", "interval": "", @@ -617,53 +538,18 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Local publish rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "msg/s", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 7, "w": 12, @@ -671,29 +557,13 @@ "y": 7 }, "id": 2, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_rate_out{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"}) by (cluster, namespace)", "format": "time_series", "intervalFactor": 2, @@ -703,53 +573,18 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Local delivery rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "msg / s", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 7, "w": 12, @@ -757,29 +592,13 @@ "y": 14 }, "id": 5, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_throughput_in{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"}) by (cluster, namespace)", "format": "time_series", "interval": "", @@ -790,54 +609,19 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Local publish throughput (bytes/s)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "Bps", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", - "fill": 1, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 7, "w": 12, @@ -845,30 +629,13 @@ "y": 14 }, "id": 8, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_throughput_out{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"}) by (cluster, namespace)", "format": "time_series", "interval": "", @@ -879,54 +646,18 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Local delivery throughput (bytes/s)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "Bps", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 0, - "fill": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 7, "w": 12, @@ -934,29 +665,13 @@ "y": 21 }, "id": 7, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_topics_count{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"})", "format": "time_series", "interval": "", @@ -967,6 +682,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_producers_count{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"})", "format": "time_series", "interval": "", @@ -977,6 +696,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_subscriptions_count{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"})", "format": "time_series", "intervalFactor": 2, @@ -986,6 +709,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_consumers_count{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"})", "format": "time_series", "intervalFactor": 2, @@ -995,56 +722,18 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Topics - Producers - Subscriptions - Consumers", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [ - "current" - ] - }, - "yaxes": [ - { - "decimals": null, - "format": "short", - "label": "count", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 7, "w": 12, @@ -1052,29 +741,13 @@ "y": 21 }, "id": 4, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_msg_backlog{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"}) by (cluster, namespace)", "format": "time_series", "interval": "", @@ -1085,45 +758,8 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Local backlog", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "Messages", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" } ], "title": "Namespaces", @@ -1140,25 +776,14 @@ "id": 20, "panels": [ { - "aliasColors": { - "0 - 0.5 ms": "#2F575E", - "0.5 - 1 ms": "#3F6833", - "1 - 5 ms": "#629E51", - "10 - 20 ms": "#E5A8E2", - "100 - 200 ms": "#EF843C", - "20 - 50 ms": "#65C5DB", - "200 ms - 1 s": "#EA6460", - "5 - 10 ms": "#1F78C1", - "50 - 100 ms": "#E5AC0E", - "< +Inf ms": "#BF1B00", - "< 0.5 ms": "#508642", - "> 1 s": "#BF1B00" + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] }, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 5, "gridPos": { "h": 7, "w": 12, @@ -1166,34 +791,13 @@ "y": 8 }, "id": 3, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 0, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [ - { - "alias": "< 100 ms", - "yaxis": 1 - } - ], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + "options": {}, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_le_0_5{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "interval": "", @@ -1204,6 +808,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_le_1{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "interval": "", @@ -1214,6 +822,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_le_5{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "interval": "", @@ -1224,6 +836,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_le_10{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "interval": "", @@ -1234,6 +850,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_le_20{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "interval": "", @@ -1244,6 +864,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_le_50{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "interval": "", @@ -1254,6 +878,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_le_100{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "hide": false, @@ -1265,6 +893,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_le_200{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "intervalFactor": 2, @@ -1274,6 +906,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_le_1000{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "intervalFactor": 2, @@ -1283,6 +919,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_overflow{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "interval": "", @@ -1293,53 +933,18 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Storage Write Latency", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "msg / s", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 7, "w": 12, @@ -1347,29 +952,13 @@ "y": 8 }, "id": 9, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_size{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"})", "format": "time_series", "interval": "", @@ -1380,55 +969,19 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Storage Size", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "format": "decbytes", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "Rate of writes into storage (can be lower than publish rate, when batching is enabled)", - "fill": 1, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 7, "w": 12, @@ -1436,29 +989,13 @@ "y": 15 }, "id": 13, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_count{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"})", "format": "time_series", "interval": "", @@ -1469,54 +1006,19 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Storage Write Rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "entry / s", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "Reads from bookies", - "fill": 1, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 7, "w": 12, @@ -1524,29 +1026,13 @@ "y": 15 }, "id": 14, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_read_latency_count{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"})", "format": "time_series", "interval": "", @@ -1557,53 +1043,18 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Storage read entry rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "entries / s", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 6, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 6, "w": 24, @@ -1611,34 +1062,13 @@ "y": 22 }, "id": 12, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 0, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [ - { - "alias": "< 2 KB", - "yaxis": 1 - } - ], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + "options": {}, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_entry_size_le_128{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "interval": "", @@ -1649,6 +1079,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_entry_size_le_512{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "interval": "", @@ -1659,6 +1093,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_entry_size_le_1_kb{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "interval": "", @@ -1669,6 +1107,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_entry_size_le_2_kb{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "interval": "", @@ -1679,6 +1121,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_entry_size_le_4_kb{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "interval": "", @@ -1689,6 +1135,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_entry_size_le_16_kb{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "interval": "", @@ -1699,6 +1149,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_entry_size_le_100_kb{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "interval": "", @@ -1709,6 +1163,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_entry_size_le_1_mb{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "interval": "", @@ -1719,6 +1177,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_entry_size_overflow{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "interval": "", @@ -1729,45 +1191,8 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Storage entry size", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "msg / s", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" } ], "title": "Storage", @@ -1784,12 +1209,14 @@ "id": 22, "panels": [ { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 7, "w": 12, @@ -1797,29 +1224,13 @@ "y": 9 }, "id": 10, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_replication_rate_in{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\", remote_cluster!=\"local\"}) by (cluster, remote_cluster)", "format": "time_series", "interval": "", @@ -1830,53 +1241,18 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Incoming replication rate | any → $cluster", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "msg / s", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 7, "w": 12, @@ -1884,29 +1260,13 @@ "y": 9 }, "id": 11, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_replication_rate_out{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"})", "format": "time_series", "intervalFactor": 2, @@ -1916,53 +1276,18 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Outgoing replication rate | $cluster → any", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "msg / s", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 7, "w": 24, @@ -1970,29 +1295,13 @@ "y": 16 }, "id": 15, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_replication_backlog{cluster=~\"$cluster\", job=~\"broker\", namespace=~\"$namespace\"}) by (cluster, remote_cluster)", "format": "time_series", "intervalFactor": 2, @@ -2002,100 +1311,53 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Replication backlog | $cluster → any", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "messages", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" } ], "title": "Geo Replication", "type": "row" } ], + "preload": false, "refresh": "1m", - "schemaVersion": 16, - "style": "dark", + "schemaVersion": 41, "tags": [ "pulsar" ], "templating": { "list": [ { - "allValue": null, - "current": {}, + "current": { + "text": "All", + "value": "$__all" + }, "datasource": "Prometheus", - "hide": 0, "includeAll": true, "label": "Cluster", - "multi": false, "name": "cluster", "options": [], "query": "pulsar_rate_in{cluster=~\".+\"}", "refresh": 2, "regex": "/.*[^_]cluster=\\\"([^\\\"]+)\\\".*/", - "skipUrlSync": false, "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false + "type": "query" }, { - "allValue": null, - "current": {}, + "current": { + "text": "All", + "value": "$__all" + }, "datasource": "Prometheus", - "hide": 0, "includeAll": true, "label": "Namespace", - "multi": false, "name": "namespace", "options": [], "query": "pulsar_rate_in{namespace=~\".+\", cluster=~\"$cluster\"}", "refresh": 2, "regex": "/[\\s,{]namespace=\\\"([^\\\"]+)\\\".*/", - "skipUrlSync": false, "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false + "type": "query" } ] }, @@ -2103,34 +1365,9 @@ "from": "now-1h", "to": "now" }, - "timepicker": { - "refresh_intervals": [ - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" - ] - }, + "timepicker": {}, "timezone": "browser", "title": "Pulsar / Messaging", "uid": "sWPi0L-mk", - "version": 4 + "version": 2 } - diff --git a/helm/kaap-stack/grafana-dashboards/namespace.json b/helm/kaap-stack/grafana-dashboards/namespace.json index 74122d15..5af2bc7b 100644 --- a/helm/kaap-stack/grafana-dashboards/namespace.json +++ b/helm/kaap-stack/grafana-dashboards/namespace.json @@ -3,7 +3,10 @@ "list": [ { "builtIn": 1, - "datasource": "-- Grafana --", + "datasource": { + "type": "datasource", + "uid": "grafana" + }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", @@ -13,60 +16,99 @@ ] }, "editable": true, - "gnetId": null, + "fiscalYearStartMonth": 0, "graphTooltip": 0, - "iteration": 1596845897119, + "id": 14, "links": [], "panels": [ { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "msg/s", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 0 }, - "hiddenSeries": false, "id": 16, - "legend": { - "avg": false, - "current": false, - "hideEmpty": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "dataLinks": [] + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_rate_in{cluster=~\"$cluster\", namespace=~\"$namespace\"}) by (cluster, namespace)", "interval": "", "intervalFactor": 2, @@ -76,95 +118,98 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Local publish rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "msg/s", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "msg / s", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 0 }, - "hiddenSeries": false, "id": 2, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "dataLinks": [] + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_rate_out{cluster=~\"$cluster\", namespace=~\"$namespace\"}) by (cluster, namespace)", "format": "time_series", "intervalFactor": 2, @@ -174,95 +219,97 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Local delivery rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "msg / s", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "Bps" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 7 }, - "hiddenSeries": false, "id": 5, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "dataLinks": [] + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_throughput_in{cluster=~\"$cluster\", namespace=~\"$namespace\"}) by (cluster, namespace)", "format": "time_series", "interval": "", @@ -273,97 +320,99 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Local publish throughput (bytes/s)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "Bps", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "Bps" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 7 }, - "hiddenSeries": false, "id": 8, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "dataLinks": [] + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_throughput_out{cluster=~\"$cluster\", namespace=~\"$namespace\"}) by (cluster, namespace)", "format": "time_series", "interval": "", @@ -374,96 +423,97 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Local delivery throughput (bytes/s)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "Bps", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "decimals": 0, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "count", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 14 }, - "hiddenSeries": false, "id": 7, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "dataLinks": [] + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_topics_count{cluster=~\"$cluster\", namespace=~\"$namespace\"})", "format": "time_series", "interval": "", @@ -474,6 +524,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_producers_count{cluster=~\"$cluster\", namespace=~\"$namespace\"})", "format": "time_series", "interval": "", @@ -484,6 +538,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_subscriptions_count{cluster=~\"$cluster\", namespace=~\"$namespace\"})", "format": "time_series", "intervalFactor": 2, @@ -493,6 +551,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_consumers_count{cluster=~\"$cluster\", namespace=~\"$namespace\"})", "format": "time_series", "intervalFactor": 2, @@ -502,97 +564,98 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Topics - Producers - Subscriptions - Consumers", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [ - "current" - ] - }, - "yaxes": [ - { - "format": "short", - "label": "count", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "Messages", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 14 }, - "hiddenSeries": false, "id": 4, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "dataLinks": [] + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_msg_backlog{cluster=~\"$cluster\", namespace=~\"$namespace\"}) by (cluster, namespace)", "format": "time_series", "interval": "", @@ -603,113 +666,278 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Local backlog", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "Messages", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": { - "0 - 0.5 ms": "#2F575E", - "0.5 - 1 ms": "#3F6833", - "1 - 5 ms": "#629E51", - "10 - 20 ms": "#E5A8E2", - "100 - 200 ms": "#EF843C", - "20 - 50 ms": "#65C5DB", - "200 ms - 1 s": "#EA6460", - "5 - 10 ms": "#1F78C1", - "50 - 100 ms": "#E5AC0E", - "< +Inf ms": "#BF1B00", - "< 0.5 ms": "#508642", - "> 1 s": "#BF1B00" + "datasource": { + "type": "prometheus", + "uid": "prometheus" }, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "msg / s", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 50, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 0, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "0 - 0.5 ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#2F575E", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "0.5 - 1 ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#3F6833", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "1 - 5 ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#629E51", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "10 - 20 ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#E5A8E2", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "100 - 200 ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#EF843C", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "20 - 50 ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#65C5DB", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "200 ms - 1 s" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#EA6460", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "5 - 10 ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#1F78C1", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "50 - 100 ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#E5AC0E", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "< +Inf ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#BF1B00", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "< 0.5 ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#508642", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "> 1 s" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#BF1B00", + "mode": "fixed" + } + } + ] + } + ] }, - "fill": 5, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 21 }, - "hiddenSeries": false, "id": 3, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 0, - "links": [], - "nullPointMode": "null", "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [ - { - "alias": "< 100 ms", - "yaxis": 1 + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" } - ], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + }, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_le_0_5{cluster=~\"$cluster\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "interval": "", @@ -720,6 +948,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_le_1{cluster=~\"$cluster\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "interval": "", @@ -730,6 +962,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_le_5{cluster=~\"$cluster\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "interval": "", @@ -740,6 +976,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_le_10{cluster=~\"$cluster\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "interval": "", @@ -750,6 +990,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_le_20{cluster=~\"$cluster\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "interval": "", @@ -760,6 +1004,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_le_50{cluster=~\"$cluster\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "interval": "", @@ -770,6 +1018,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_le_100{cluster=~\"$cluster\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "hide": false, @@ -781,6 +1033,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_le_200{cluster=~\"$cluster\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "intervalFactor": 2, @@ -790,6 +1046,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_le_1000{cluster=~\"$cluster\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "intervalFactor": 2, @@ -799,6 +1059,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_overflow{cluster=~\"$cluster\", namespace=~\"$namespace\"}) / 60.0", "format": "time_series", "interval": "", @@ -809,95 +1073,97 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Storage Write Latency", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "msg / s", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 21 }, - "hiddenSeries": false, "id": 9, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "dataLinks": [] + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_size{cluster=~\"$cluster\", namespace=~\"$namespace\"})", "format": "time_series", "interval": "", @@ -908,95 +1174,98 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Storage Size", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "msg / s", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 28 }, - "hiddenSeries": false, "id": 10, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "dataLinks": [] + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_replication_rate_in{cluster=~\"$cluster\", namespace=~\"$namespace\", remote_cluster!=\"local\"}) by (cluster, remote_cluster)", "format": "time_series", "interval": "", @@ -1007,95 +1276,98 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Incoming replication rate | any → $cluster", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "msg / s", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "msg / s", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 28 }, - "hiddenSeries": false, "id": 11, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "dataLinks": [] + "dataLinks": [], + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_replication_rate_out{cluster=~\"$cluster\", namespace=~\"$namespace\"})", "format": "time_series", "intervalFactor": 2, @@ -1105,60 +1377,20 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Outgoing replication rate | $cluster → any", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "msg / s", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, - "fill": 1, "gridPos": { "h": 7, "w": 12, @@ -1166,29 +1398,13 @@ "y": 35 }, "id": 15, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_replication_backlog{cluster=~\"$cluster\", namespace=~\"$namespace\"}) by (cluster, remote_cluster)", "format": "time_series", "intervalFactor": 2, @@ -1198,55 +1414,20 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Replication backlog | $cluster → any", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "messages", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ] + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, - "fill": 6, "gridPos": { "h": 7, "w": 12, @@ -1254,34 +1435,13 @@ "y": 35 }, "id": 12, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 0, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [ - { - "alias": "< 2 KB", - "yaxis": 1 - } - ], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + "options": {}, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_entry_size_le_128{cluster=~\"$cluster\", namespace=~\"$namespace\"}) / 60.0", "interval": "", "intervalFactor": 2, @@ -1291,6 +1451,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_entry_size_le_512{cluster=~\"$cluster\", namespace=~\"$namespace\"}) / 60.0", "interval": "", "intervalFactor": 2, @@ -1300,6 +1464,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_entry_size_le_1_kb{cluster=~\"$cluster\", namespace=~\"$namespace\"}) / 60.0", "interval": "", "intervalFactor": 2, @@ -1309,6 +1477,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_entry_size_le_2_kb{cluster=~\"$cluster\", namespace=~\"$namespace\"}) / 60.0", "interval": "", "intervalFactor": 2, @@ -1318,6 +1490,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_entry_size_le_4_kb{cluster=~\"$cluster\", namespace=~\"$namespace\"}) / 60.0", "interval": "", "intervalFactor": 2, @@ -1327,6 +1503,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_entry_size_le_16_kb{cluster=~\"$cluster\", namespace=~\"$namespace\"}) / 60.0", "interval": "", "intervalFactor": 2, @@ -1336,6 +1516,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_entry_size_le_100_kb{cluster=~\"$cluster\", namespace=~\"$namespace\"}) / 60.0", "interval": "", "intervalFactor": 2, @@ -1345,6 +1529,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_entry_size_le_1_mb{cluster=~\"$cluster\", namespace=~\"$namespace\"}) / 60.0", "interval": "", "intervalFactor": 2, @@ -1354,6 +1542,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_entry_size_overflow{cluster=~\"$cluster\", namespace=~\"$namespace\"}) / 60.0", "interval": "", "intervalFactor": 2, @@ -1363,48 +1555,14 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Storage entry size", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "msg / s", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ] + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "Rate of writes into storage (can be lower than publish rate, when batching is enabled)", "fieldConfig": { "defaults": { @@ -1412,7 +1570,6 @@ }, "overrides": [] }, - "fill": 1, "gridPos": { "h": 7, "w": 12, @@ -1420,29 +1577,13 @@ "y": 42 }, "id": 13, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_rate{cluster=~\"$cluster\", namespace=~\"$namespace\"})", "format": "time_series", "interval": "", @@ -1453,48 +1594,14 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Storage Write Rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "entry / s", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ] + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "Reads from bookies", "fieldConfig": { "defaults": { @@ -1502,7 +1609,6 @@ }, "overrides": [] }, - "fill": 1, "gridPos": { "h": 7, "w": 12, @@ -1510,29 +1616,13 @@ "y": 42 }, "id": 14, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_read_rate{cluster=~\"$cluster\", namespace=~\"$namespace\"})", "format": "time_series", "interval": "", @@ -1543,102 +1633,51 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Storage read entry rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "entries / s", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ] + "type": "timeseries" } ], + "preload": false, "refresh": "1m", - "schemaVersion": 25, - "style": "dark", + "schemaVersion": 41, "tags": [ "pulsar" ], "templating": { "list": [ { - "allValue": null, "current": { - "selected": false, - "text": "toronto-do", - "value": "toronto-do" + "text": "pulsar", + "value": "pulsar" }, "datasource": "Prometheus", "definition": "pulsar_producers_count{cluster=~\".+\"}", - "hide": 0, "includeAll": false, "label": "Cluster", - "multi": false, "name": "cluster", "options": [], "query": "pulsar_producers_count{cluster=~\".+\"}", "refresh": 1, "regex": "/.*[^_]cluster=\\\"([^\\\"]+)\\\".*/", - "skipUrlSync": false, "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false + "type": "query" }, { - "allValue": null, "current": { - "selected": true, - "text": "public/default", - "value": "public/default" + "text": "pulsar/pulsar/pulsar-broker-0.pulsar-broker.default.svc.cluster.local:8080", + "value": "pulsar/pulsar/pulsar-broker-0.pulsar-broker.default.svc.cluster.local:8080" }, "datasource": "Prometheus", "definition": "pulsar_producers_count{cluster=\"$cluster\"}", - "hide": 0, "includeAll": false, "label": "Namespace", - "multi": false, "name": "namespace", "options": [], "query": "pulsar_producers_count{cluster=\"$cluster\"}", "refresh": 2, "regex": "/.*,namespace=\\\"([^\\\"]+)\\\".*/", - "skipUrlSync": false, "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false + "type": "query" } ] }, @@ -1657,17 +1696,6 @@ "1h", "2h", "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" ] }, "timezone": "browser", diff --git a/helm/kaap-stack/grafana-dashboards/node.json b/helm/kaap-stack/grafana-dashboards/node.json index 82f0c3ba..967a6247 100644 --- a/helm/kaap-stack/grafana-dashboards/node.json +++ b/helm/kaap-stack/grafana-dashboards/node.json @@ -1,45 +1,12 @@ { - "__inputs": [ - { - "name": "DS_TEST-CLUSTER", - "label": "Prometheus", - "description": "", - "type": "datasource", - "pluginId": "prometheus", - "pluginName": "Prometheus" - } - ], - "__requires": [ - { - "type": "grafana", - "id": "grafana", - "name": "Grafana", - "version": "5.3.2" - }, - { - "type": "panel", - "id": "graph", - "name": "Graph", - "version": "5.0.0" - }, - { - "type": "datasource", - "id": "prometheus", - "name": "Prometheus", - "version": "5.0.0" - }, - { - "type": "panel", - "id": "singlestat", - "name": "Singlestat", - "version": "5.0.0" - } - ], "annotations": { "list": [ { "builtIn": 1, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", @@ -50,10 +17,9 @@ }, "description": "System Metrics on Nodes", "editable": true, - "gnetId": 159, + "fiscalYearStartMonth": 0, "graphTooltip": 1, - "id": null, - "iteration": 1543911290195, + "id": 15, "links": [ { "asDropdown": false, @@ -79,30 +45,37 @@ }, "id": 45, "panels": [], - "repeat": null, "title": "System Stats", "type": "row" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": true, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "datasource": "Prometheus", - "decimals": 1, - "editable": true, - "error": false, - "format": "s", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "decimals": 1, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "rgba(245, 54, 54, 0.9)" + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 300 + }, + { + "color": "rgba(50, 172, 45, 0.97)", + "value": 3600 + } + ] + }, + "unit": "s" + }, + "overrides": [] }, "gridPos": { "h": 3, @@ -110,45 +83,33 @@ "x": 0, "y": 1 }, - "height": "50px", "id": 19, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "s", - "postfixFontSize": "80%", - "prefix": "", - "prefixFontSize": "80%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "11.6.1", "targets": [ { "calculatedInterval": "10m", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "node_time_seconds{instance=\"$instance\"} - node_boot_time_seconds{instance=\"$instance\"}", @@ -162,33 +123,42 @@ "step": 300 } ], - "thresholds": "300,3600", "title": "System Uptime", - "transparent": false, - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [], - "valueName": "current" + "type": "stat" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "datasource": "Prometheus", - "editable": true, - "error": false, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] }, "gridPos": { "h": 3, @@ -196,44 +166,32 @@ "x": 6, "y": 1 }, - "height": "55px", "id": 25, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "80%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "count(node_cpu_seconds_total{mode=\"user\", instance=\"$instance\"})", "format": "time_series", "interval": "5m", @@ -242,39 +200,43 @@ "step": 300 } ], - "thresholds": "", "title": "Virtual CPUs", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" + "type": "stat" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "datasource": "Prometheus", - "decimals": 2, - "editable": true, - "error": false, - "format": "bytes", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "decimals": 2, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] }, "gridPos": { "h": 3, @@ -282,44 +244,32 @@ "x": 12, "y": 1 }, - "height": "55px", "id": 26, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "80%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "node_memory_MemAvailable_bytes{instance=\"$instance\"}", "format": "time_series", "interval": "", @@ -330,39 +280,39 @@ "step": 30 } ], - "thresholds": "", "title": "RAM available", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" + "type": "stat" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": true, - "colors": [ - "rgba(50, 172, 45, 0.97)", - "rgba(237, 129, 40, 0.89)", - "rgba(245, 54, 54, 0.9)" - ], - "datasource": "Prometheus", - "decimals": 0, - "editable": true, - "error": false, - "format": "percent", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "decimals": 0, + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "rgba(50, 172, 45, 0.97)" + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 90 + }, + { + "color": "rgba(245, 54, 54, 0.9)", + "value": 95 + } + ] + }, + "unit": "percent" + }, + "overrides": [] }, "gridPos": { "h": 3, @@ -370,45 +320,33 @@ "x": 18, "y": 1 }, - "height": "50px", "id": 9, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "80%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": true, - "lineColor": "rgb(31, 120, 193)", - "show": true + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "11.6.1", "targets": [ { "calculatedInterval": "10m", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "(node_memory_MemAvailable_bytes{instance=\"$instance\"} or (node_memory_MemFree_bytes{instance=\"$instance\"} + node_memory_Buffers_bytes{instance=\"$instance\"} + node_memory_Cached_bytes{instance=\"$instance\"})) / node_memory_MemTotal_bytes{instance=\"$instance\"} * 100", @@ -422,61 +360,103 @@ "step": 300 } ], - "thresholds": "90,95", "title": "Memory Available", - "transparent": false, - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [], - "valueName": "current" + "type": "stat" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 2, - "editable": true, - "error": false, - "fill": 6, - "grid": {}, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 60, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, "gridPos": { "h": 7, "w": 24, "x": 0, "y": 4 }, - "height": "260px", "id": 2, - "instanceColors": {}, - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "hideEmpty": false, - "max": true, - "min": true, - "rightSide": true, - "show": true, - "total": false, - "values": true + "options": { + "legend": { + "calcs": [ + "mean", + "max", + "min" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { "calculatedInterval": "2s", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "sum(rate(node_cpu_seconds_total{instance=\"$instance\"}[$interval])) by (mode) * 100 / count(node_cpu_seconds_total{instance=\"$instance\"}) by (mode) or sum(irate(node_cpu_seconds_total{instance=\"$instance\"}[5m])) by (mode) * 100 / count(node_cpu_seconds_total{instance=\"$instance\"}) by (mode)", @@ -489,57 +469,70 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "CPU Usage", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" }, - "yaxes": [ - { - "format": "percent", - "label": "", - "logBase": 1, - "max": 100, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 20, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], "min": 0, - "show": true + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": 0, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 2, - "editable": true, - "error": false, - "fill": 2, - "grid": {}, + "overrides": [] + }, "gridPos": { "h": 7, "w": 24, @@ -547,48 +540,31 @@ "y": 11 }, "id": 18, - "instanceColors": {}, - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "hideEmpty": false, - "max": true, - "min": true, - "rightSide": true, - "show": true, - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [ - { - "color": "#E24D42", - "instance": "Load 1m" - }, - { - "color": "#E0752D", - "instance": "Load 5m" + "options": { + "legend": { + "calcs": [ + "mean", + "max", + "min" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true }, - { - "color": "#E5AC0E", - "instance": "Load 15m" + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" } - ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + }, + "pluginVersion": "11.6.1", "targets": [ { "calculatedInterval": "10s", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "node_load1{instance=\"$instance\"}", @@ -603,6 +579,10 @@ }, { "calculatedInterval": "10s", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "node_load5{instance=\"$instance\"}", @@ -617,6 +597,10 @@ }, { "calculatedInterval": "10s", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "node_load15{instance=\"$instance\"}", @@ -630,58 +614,70 @@ "target": "" } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Load Average", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" }, - "yaxes": [ - { - "format": "none", - "label": "", - "logBase": 1, - "max": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 20, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], "min": 0, - "show": true + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "Bps" }, - { - "format": "none", - "logBase": 1, - "max": null, - "min": 0, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 2, - "editable": true, - "error": false, - "fill": 2, - "grid": {}, + "overrides": [] + }, "gridPos": { "h": 7, "w": 24, @@ -689,48 +685,31 @@ "y": 18 }, "id": 40, - "instanceColors": {}, - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "hideEmpty": false, - "max": true, - "min": true, - "rightSide": true, - "show": true, - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [ - { - "color": "#E24D42", - "instance": "Load 1m" - }, - { - "color": "#E0752D", - "instance": "Load 5m" + "options": { + "legend": { + "calcs": [ + "mean", + "max", + "min" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true }, - { - "color": "#E5AC0E", - "instance": "Load 15m" + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" } - ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + }, + "pluginVersion": "11.6.1", "targets": [ { "calculatedInterval": "10s", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "rate(node_vmstat_pgpgin{instance=\"$instance\"}[$interval]) * 1024 or irate(node_vmstat_pgpgin{instance=\"$instance\"}[5m]) * 1024", @@ -745,6 +724,10 @@ }, { "calculatedInterval": "10s", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "rate(node_vmstat_pgpgout{instance=\"$instance\"}[$interval]) * 1024 or irate(node_vmstat_pgpgout{instance=\"$instance\"}[5m]) * 1024", @@ -758,46 +741,8 @@ "target": "" } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Page In/Page Out", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "Bps", - "label": "", - "logBase": 1, - "max": null, - "min": 0, - "show": true - }, - { - "format": "decbytes", - "logBase": 1, - "max": null, - "min": 0, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { "collapsed": true, @@ -810,16 +755,14 @@ "id": 51, "panels": [ { - "aliasColors": {}, - "bars": true, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 2, - "editable": true, - "error": false, - "fill": 2, - "grid": {}, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 8, "w": 12, @@ -827,39 +770,14 @@ "y": 3 }, "id": 24, - "instanceColors": {}, - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "hideEmpty": false, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": false, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [ - { - "color": "#EF843C", - "instance": "Forks" - } - ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { "calculatedInterval": "2m", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "rate(node_forks_total{instance=\"$instance\"}[$interval]) or irate(node_forks_total{instance=\"$instance\"}[5m])", @@ -873,58 +791,18 @@ "target": "" } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Forks", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "none", - "label": "", - "logBase": 1, - "max": null, - "min": 0, - "show": true - }, - { - "format": "none", - "logBase": 1, - "max": null, - "min": 0, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": true, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 2, - "editable": true, - "error": false, - "fill": 2, - "grid": {}, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 8, "w": 12, @@ -932,43 +810,14 @@ "y": 3 }, "id": 20, - "instanceColors": {}, - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "hideEmpty": false, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": false, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [ - { - "color": "#E24D42", - "instance": "Processes blocked waiting for I/O to complete" - }, - { - "color": "#6ED0E0", - "instance": "Processes in runnable state" - } - ], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + "options": {}, "targets": [ { "calculatedInterval": "2m", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "node_procs_running{instance=\"$instance\"}", @@ -983,6 +832,10 @@ }, { "calculatedInterval": "2m", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "node_procs_blocked{instance=\"$instance\"}", @@ -996,58 +849,18 @@ "target": "" } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Processes", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "none", - "label": "", - "logBase": 1, - "max": null, - "min": 0, - "show": true - }, - { - "format": "none", - "logBase": 1, - "max": null, - "min": 0, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 2, - "editable": true, - "error": false, - "fill": 2, - "grid": {}, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 8, "w": 12, @@ -1055,34 +868,14 @@ "y": 11 }, "id": 27, - "instanceColors": {}, - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "hideEmpty": false, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { "calculatedInterval": "2m", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "rate(node_context_switches_total{instance=\"$instance\"}[$interval]) or irate(node_context_switches_total{instance=\"$instance\"}[5m])", @@ -1096,58 +889,18 @@ "target": "" } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Context Switches", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "none", - "label": "", - "logBase": 1, - "max": null, - "min": 0, - "show": true - }, - { - "format": "none", - "logBase": 1, - "max": null, - "min": 0, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 2, - "editable": true, - "error": false, - "fill": 2, - "grid": {}, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 8, "w": 12, @@ -1155,39 +908,14 @@ "y": 11 }, "id": 28, - "instanceColors": {}, - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "hideEmpty": false, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [ - { - "color": "#D683CE", - "instance": "Interrupts" - } - ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { "calculatedInterval": "2m", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "rate(node_intr_total{instance=\"$instance\"}[$interval]) or irate(node_intr_total{instance=\"$instance\"}[5m])", @@ -1201,46 +929,8 @@ "target": "" } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Interrupts", - "tooltip": { - "msResolution": true, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "none", - "label": "", - "logBase": 1, - "max": null, - "min": 0, - "show": true - }, - { - "format": "none", - "logBase": 1, - "max": null, - "min": 0, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" } ], "title": "CPU", @@ -1257,67 +947,29 @@ "id": 46, "panels": [ { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 2, - "editable": true, - "error": false, - "fill": 6, - "grid": {}, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 2 }, - "height": "", "id": 6, - "instanceColors": {}, - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "hideEmpty": false, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [ - { - "color": "#0A437C", - "instance": "Used" - }, - { - "color": "#5195CE", - "instance": "Available" - }, - { - "color": "#052B51", - "instance": "Total", - "legend": false, - "stack": false - } - ], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + "options": {}, "targets": [ { "calculatedInterval": "2s", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "node_memory_MemTotal_bytes{instance=\"$instance\"}", @@ -1332,6 +984,10 @@ }, { "calculatedInterval": "2s", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "node_memory_MemTotal_bytes{instance=\"$instance\"} - (node_memory_MemAvailable_bytes{instance=\"$instance\"} or (node_memory_MemFree_bytes{instance=\"$instance\"} + node_memory_Buffers_bytes{instance=\"$instance\"} + node_memory_Cached_bytes{instance=\"$instance\"}))", @@ -1346,6 +1002,10 @@ }, { "calculatedInterval": "2s", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "node_memory_MemAvailable_bytes{instance=\"$instance\"} or (node_memory_MemFree_bytes{instance=\"$instance\"} + node_memory_Buffers_bytes{instance=\"$instance\"} + node_memory_Cached_bytes{instance=\"$instance\"})", @@ -1359,94 +1019,33 @@ "target": "" } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Memory", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": "", - "logBase": 1, - "max": null, - "min": 0, - "show": true - }, - { - "format": "bytes", - "logBase": 1, - "max": null, - "min": 0, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 2, - "editable": true, - "error": false, - "fill": 6, - "grid": {}, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 2 }, - "height": "", "id": 29, - "instanceColors": {}, - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "hideEmpty": false, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + "options": {}, "targets": [ { "calculatedInterval": "2s", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "node_memory_MemTotal_bytes{instance=\"$instance\"} - (node_memory_MemFree_bytes{instance=\"$instance\"} + node_memory_Buffers_bytes{instance=\"$instance\"} + node_memory_Cached_bytes{instance=\"$instance\"})", @@ -1461,6 +1060,10 @@ }, { "calculatedInterval": "2s", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "node_memory_MemFree_bytes{instance=\"$instance\"}", @@ -1475,6 +1078,10 @@ }, { "calculatedInterval": "2s", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "node_memory_Buffers_bytes{instance=\"$instance\"}", @@ -1489,6 +1096,10 @@ }, { "calculatedInterval": "2s", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "node_memory_Cached_bytes{instance=\"$instance\"}", @@ -1502,49 +1113,10 @@ "target": "" } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Memory Distribution", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "bytes", - "label": "", - "logBase": 1, - "max": null, - "min": 0, - "show": true - }, - { - "format": "bytes", - "logBase": 1, - "max": null, - "min": 0, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" } ], - "repeat": null, "title": "Memory", "type": "row" }, @@ -1559,16 +1131,14 @@ "id": 49, "panels": [ { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 2, - "editable": true, - "error": false, - "fill": 6, - "grid": {}, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 8, "w": 12, @@ -1576,43 +1146,14 @@ "y": 67 }, "id": 23, - "instanceColors": {}, - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "hideEmpty": false, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [ - { - "color": "#584477", - "instance": "Used" - }, - { - "color": "#AEA2E0", - "instance": "Free" - } - ], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + "options": {}, "targets": [ { "calculatedInterval": "2s", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "node_memory_SwapTotal_bytes{instance=\"$instance\"} - node_memory_SwapFree_bytes{instance=\"$instance\"}", @@ -1627,6 +1168,10 @@ }, { "calculatedInterval": "2s", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "node_memory_SwapFree_bytes{instance=\"$instance\"}", @@ -1640,58 +1185,18 @@ "target": "" } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Swap", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "bytes", - "label": "", - "logBase": 1, - "max": null, - "min": 0, - "show": true - }, - { - "format": "bytes", - "logBase": 1, - "max": null, - "min": 0, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 2, - "editable": true, - "error": false, - "fill": 2, - "grid": {}, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 8, "w": 12, @@ -1699,34 +1204,14 @@ "y": 67 }, "id": 30, - "instanceColors": {}, - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "hideEmpty": false, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { "calculatedInterval": "2s", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "rate(node_vmstat_pswpin{instance=\"$instance\"}[$interval]) * 4096 or irate(node_vmstat_pswpin{instance=\"$instance\"}[5m]) * 4096", @@ -1741,6 +1226,10 @@ }, { "calculatedInterval": "2s", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "rate(node_vmstat_pswpout{instance=\"$instance\"}[$interval]) * 4096 or irate(node_vmstat_pswpout{instance=\"$instance\"}[5m]) * 4096", @@ -1754,54 +1243,18 @@ "target": "" } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Swap Activity", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "Bps", - "label": "", - "logBase": 1, - "max": null, - "min": 0, - "show": true - }, - { - "format": "bytes", - "logBase": 1, - "max": null, - "min": 0, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 7, "w": 12, @@ -1809,29 +1262,13 @@ "y": 75 }, "id": 44, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "rate(node_vmstat_pgmajfault{instance=\"$instance\"}[1m])", "format": "time_series", "intervalFactor": 2, @@ -1839,6 +1276,10 @@ "refId": "A" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "rate(node_vmstat_pgfault{instance=\"$instance\"}[1m])", "format": "time_series", "intervalFactor": 2, @@ -1846,53 +1287,18 @@ "refId": "B" } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Mem Fault", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 7, "w": 12, @@ -1900,29 +1306,13 @@ "y": 75 }, "id": 42, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "rate(node_vmstat_pgpgin{instance=\"$instance\"}[1m])", "format": "time_series", "intervalFactor": 2, @@ -1930,6 +1320,10 @@ "refId": "A" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "rate(node_vmstat_pgpgout{instance=\"$instance\"}[1m])", "format": "time_series", "intervalFactor": 2, @@ -1937,6 +1331,10 @@ "refId": "B" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "rate(node_vmstat_pswpout{instance=\"$instance\"}[1m])", "format": "time_series", "intervalFactor": 2, @@ -1944,6 +1342,10 @@ "refId": "C" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "rate(node_vmstat_pswpin{instance=\"$instance\"}[1m])", "format": "time_series", "intervalFactor": 2, @@ -1951,48 +1353,10 @@ "refId": "D" } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Page/Swap in/out", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" } ], - "repeat": null, "title": "Swap", "type": "row" }, @@ -2007,16 +1371,14 @@ "id": 47, "panels": [ { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 2, - "editable": true, - "error": false, - "fill": 2, - "grid": {}, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 8, "w": 12, @@ -2024,35 +1386,14 @@ "y": 76 }, "id": 35, - "instanceColors": {}, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "hideEmpty": false, - "max": true, - "min": false, - "rightSide": true, - "show": true, - "sideWidth": 200, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { "calculatedInterval": "2s", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "rate(node_disk_io_time_seconds_total{instance=\"$instance\"}[1m]) / 1000", @@ -2066,58 +1407,18 @@ "target": "" } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "I/O Util", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "percentunit", - "label": "", - "logBase": 1, - "max": null, - "min": 0, - "show": true - }, - { - "format": "bytes", - "logBase": 1, - "max": null, - "min": 0, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 2, - "editable": true, - "error": false, - "fill": 2, - "grid": {}, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 8, "w": 12, @@ -2125,35 +1426,14 @@ "y": 76 }, "id": 36, - "instanceColors": {}, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "hideEmpty": false, - "max": true, - "min": false, - "rightSide": true, - "show": true, - "sideWidth": 200, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { "calculatedInterval": "2s", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "rate(node_disk_io_now{instance=\"$instance\"}[1m])", @@ -2167,58 +1447,18 @@ "target": "" } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "I/O in Progress", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "none", - "label": "", - "logBase": 1, - "max": null, - "min": 0, - "show": true - }, - { - "format": "bytes", - "logBase": 1, - "max": null, - "min": 0, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 2, - "editable": true, - "error": false, - "fill": 2, - "grid": {}, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 8, "w": 12, @@ -2226,35 +1466,14 @@ "y": 84 }, "id": 37, - "instanceColors": {}, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "hideEmpty": false, - "max": true, - "min": false, - "rightSide": true, - "show": true, - "sideWidth": 200, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { "calculatedInterval": "2s", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "rate(node_disk_read_time_seconds_total{instance=\"$instance\"}[1m]) / 1000 / rate(node_disk_reads_completed_total{instance=\"$instance\"}[1m])", @@ -2268,58 +1487,18 @@ "target": "" } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "I/O Average Read Time", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "s", - "label": "", - "logBase": 1, - "max": null, - "min": 0, - "show": true - }, - { - "format": "bytes", - "logBase": 1, - "max": null, - "min": 0, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 2, - "editable": true, - "error": false, - "fill": 2, - "grid": {}, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 8, "w": 12, @@ -2327,35 +1506,14 @@ "y": 84 }, "id": 38, - "instanceColors": {}, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "hideEmpty": false, - "max": true, - "min": false, - "rightSide": true, - "show": true, - "sideWidth": 200, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { "calculatedInterval": "2s", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "rate(node_disk_write_time_seconds_total{instance=\"$instance\"}[1m]) / 1000 / rate(node_disk_writes_completed_total{instance=\"$instance\"}[1m])", @@ -2369,49 +1527,10 @@ "target": "" } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "I/O Average Write Time", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "s", - "label": "", - "logBase": 1, - "max": null, - "min": 0, - "show": true - }, - { - "format": "bytes", - "logBase": 1, - "max": null, - "min": 0, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" } ], - "repeat": null, "title": "I/O", "type": "row" }, @@ -2426,12 +1545,14 @@ "id": 48, "panels": [ { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 7, "w": 12, @@ -2439,29 +1560,13 @@ "y": 93 }, "id": 33, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "node_filefd_allocated{instance=\"$instance\"}", "format": "time_series", "intervalFactor": 2, @@ -2471,53 +1576,18 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Allocated File Descriptor", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 7, "w": 12, @@ -2525,29 +1595,13 @@ "y": 93 }, "id": 34, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "node_filefd_maximum{instance=\"$instance\"}", "format": "time_series", "intervalFactor": 2, @@ -2557,48 +1611,10 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Maximum File Descriptor", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" } ], - "repeat": null, "title": "File Descriptors", "type": "row" }, @@ -2613,16 +1629,14 @@ "id": 53, "panels": [ { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 2, - "editable": true, - "error": false, - "fill": 6, - "grid": {}, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 8, "w": 12, @@ -2630,34 +1644,14 @@ "y": 7 }, "id": 21, - "instanceColors": {}, - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "hideEmpty": false, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + "options": {}, "targets": [ { "calculatedInterval": "2s", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "rate(node_network_receive_bytes_total{instance=\"$instance\", device!=\"lo\"}[$interval]) or irate(node_network_receive_bytes_total{instance=\"$instance\", device!=\"lo\"}[5m]) ", @@ -2672,6 +1666,10 @@ }, { "calculatedInterval": "2s", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "rate(node_network_transmit_bytes_total{instance=\"$instance\", device!=\"lo\"}[$interval]) or irate(node_network_transmit_bytes_total{instance=\"$instance\", device!=\"lo\"}[5m])", @@ -2685,58 +1683,18 @@ "target": "" } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Network Traffic", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "Bps", - "label": "", - "logBase": 1, - "max": null, - "min": 0, - "show": true - }, - { - "format": "bytes", - "logBase": 1, - "max": null, - "min": 0, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": true, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 2, - "editable": true, - "error": false, - "fill": 6, - "grid": {}, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 8, "w": 12, @@ -2744,36 +1702,14 @@ "y": 7 }, "id": 22, - "instanceColors": {}, - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "hideEmpty": false, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "sort": "min", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": false, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + "options": {}, "targets": [ { "calculatedInterval": "2s", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "sum(increase(node_network_receive_bytes_total{instance=\"$instance\", device!=\"lo\"}[1h]))", @@ -2789,6 +1725,10 @@ }, { "calculatedInterval": "2s", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "datasourceErrors": {}, "errors": {}, "expr": "sum(increase(node_network_transmit_bytes_total{instance=\"$instance\", device!=\"lo\"}[1h]))", @@ -2803,55 +1743,20 @@ "target": "" } ], - "thresholds": [], "timeFrom": "24h", - "timeShift": null, "title": "Network Utilization Hourly", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "bytes", - "label": "", - "logBase": 1, - "max": null, - "min": 0, - "show": true - }, - { - "format": "bytes", - "logBase": 1, - "max": null, - "min": 0, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "Number of TCP sockets in state inuse.", - "fill": 1, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 8, "w": 24, @@ -2859,29 +1764,13 @@ "y": 15 }, "id": 32, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "node_sockstat_TCP_inuse{instance=\"$instance\"}", "format": "time_series", "intervalFactor": 1, @@ -2891,61 +1780,23 @@ "step": 5 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "TCP In Use", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" } ], "title": "Network", "type": "row" } ], + "preload": false, "refresh": "30s", - "schemaVersion": 16, - "style": "dark", + "schemaVersion": 41, "tags": [ "pulsar" ], "templating": { "list": [ { - "allFormat": "glob", "auto": true, "auto_count": 200, "auto_min": "1s", @@ -2953,19 +1804,9 @@ "text": "5s", "value": "5s" }, - "datasource": "Prometheus", - "hide": 0, - "includeAll": false, "label": "Interval", - "multi": false, - "multiFormat": "glob", "name": "interval", "options": [ - { - "selected": false, - "text": "auto", - "value": "$__auto_interval_interval" - }, { "selected": false, "text": "1s", @@ -3004,32 +1845,23 @@ ], "query": "1s,5s,1m,5m,1h,6h,1d", "refresh": 2, - "skipUrlSync": false, "type": "interval" }, { - "allFormat": "glob", - "allValue": null, - "current": {}, + "current": { + "text": "10.89.0.2:9100", + "value": "10.89.0.2:9100" + }, "datasource": "Prometheus", - "hide": 0, "includeAll": false, "label": "Instance", - "multi": false, - "multiFormat": "regex values", "name": "instance", "options": [], "query": "node_time_seconds{instance=~\".+\"}", "refresh": 1, - "refresh_on_load": false, "regex": "/.*[^_]instance=\\\"([^\\\"]+)\\\".*/", - "skipUrlSync": false, "sort": 1, - "tagValuesQuery": "instance", - "tags": [], - "tagsQuery": "up", - "type": "query", - "useTags": false + "type": "query" } ] }, @@ -3037,39 +1869,9 @@ "from": "now-1h", "to": "now" }, - "timepicker": { - "collapse": false, - "enable": true, - "notice": false, - "now": true, - "refresh_intervals": [ - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "status": "Stable", - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" - ], - "type": "timepicker" - }, + "timepicker": {}, "timezone": "browser", "title": "Pulsar / Node", "uid": "U_EkxTLik", - "version": 8 + "version": 1 } diff --git a/helm/kaap-stack/grafana-dashboards/offload.json b/helm/kaap-stack/grafana-dashboards/offload.json index e5f63d8e..ef492287 100644 --- a/helm/kaap-stack/grafana-dashboards/offload.json +++ b/helm/kaap-stack/grafana-dashboards/offload.json @@ -3,7 +3,10 @@ "list": [ { "builtIn": 1, - "datasource": "-- Grafana --", + "datasource": { + "type": "datasource", + "uid": "grafana" + }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", @@ -13,395 +16,403 @@ ] }, "editable": true, - "gnetId": null, + "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": 35, + "id": 16, "links": [], "panels": [ { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 9, "w": 10, "x": 0, "y": 0 }, - "hiddenSeries": false, "id": 2, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_offloaded_size)", "interval": "", "legendFormat": "Bytes", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Offload Total", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 10, "y": 0 }, - "hiddenSeries": false, "id": 4, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum by (namespace) (\n pulsar_storage_offloaded_size\n)", "interval": "", "legendFormat": "{{ namespace }}", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Offload By Namespace", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 8 }, - "hiddenSeries": false, "id": 6, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "(rate(pulsar_storage_offloaded_size[5m]))/300 > 0", "interval": "", "legendFormat": "{{ topic }}", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Byte Rate Per Topic", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 9 }, - "hiddenSeries": false, "id": 8, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum((rate(pulsar_storage_offloaded_size[5m]))/300)", "interval": "", "legendFormat": "", "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Offload Rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" } ], - "schemaVersion": 26, - "style": "dark", + "preload": false, + "schemaVersion": 41, "tags": [], "templating": { "list": [] @@ -414,5 +425,5 @@ "timezone": "", "title": "Pulsar / Offload", "uid": "qKohp_qMz", - "version": 3 + "version": 1 } diff --git a/helm/kaap-stack/grafana-dashboards/overview-by-broker.json b/helm/kaap-stack/grafana-dashboards/overview-by-broker.json index c3d8fae7..f0ec06d8 100644 --- a/helm/kaap-stack/grafana-dashboards/overview-by-broker.json +++ b/helm/kaap-stack/grafana-dashboards/overview-by-broker.json @@ -25,17 +25,11 @@ "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": 50, - "iteration": 1662569682845, + "id": 18, "links": [], - "liveNow": false, "panels": [ { "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, "gridPos": { "h": 1, "w": 24, @@ -72,8 +66,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -92,13 +85,13 @@ "y": 1 }, "id": 27, - "links": [], "maxDataPoints": 100, "options": { "colorMode": "none", "graphMode": "none", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "max" @@ -106,9 +99,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "8.5.0", + "pluginVersion": "11.6.1", "targets": [ { "expr": "count(node_cpu_seconds_total{mode=\"system\"})", @@ -147,8 +142,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -167,13 +161,13 @@ "y": 1 }, "id": 25, - "links": [], "maxDataPoints": 100, "options": { "colorMode": "none", "graphMode": "none", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "max" @@ -181,9 +175,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "8.5.0", + "pluginVersion": "11.6.1", "targets": [ { "expr": "sum(node_memory_MemTotal_bytes)", @@ -222,8 +218,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -242,13 +237,13 @@ "y": 1 }, "id": 28, - "links": [], "maxDataPoints": 100, "options": { "colorMode": "none", "graphMode": "none", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -256,9 +251,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "8.5.0", + "pluginVersion": "11.6.1", "targets": [ { "expr": "count(count(up{job=\"zookeeper\"}) by (instance))", @@ -296,8 +293,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -316,13 +312,13 @@ "y": 1 }, "id": 15, - "links": [], "maxDataPoints": 100, "options": { "colorMode": "none", "graphMode": "none", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -330,12 +326,14 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "8.5.0", + "pluginVersion": "11.6.1", "targets": [ { - "expr": "count(count(up{job=\"bookkeeper\"}) by (instance))", + "expr": "count(count(up{job=~\"bookkeeper.*\"}) by (instance))", "format": "time_series", "intervalFactor": 2, "legendFormat": "", @@ -370,8 +368,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -390,13 +387,13 @@ "y": 1 }, "id": 32, - "links": [], "maxDataPoints": 100, "options": { "colorMode": "none", "graphMode": "none", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -404,9 +401,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "8.5.0", + "pluginVersion": "11.6.1", "targets": [ { "expr": "count(count(up{job=\"broker\"}) by (instance))", @@ -445,8 +444,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -465,13 +463,13 @@ "y": 1 }, "id": 29, - "links": [], "maxDataPoints": 100, "options": { "colorMode": "none", "graphMode": "none", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -479,9 +477,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "8.5.0", + "pluginVersion": "11.6.1", "targets": [ { "expr": "count(count(up{job=\"proxy\"}) by (instance))", @@ -519,8 +519,7 @@ "mode": "absolute", "steps": [ { - "color": "#d44a3a", - "value": null + "color": "#d44a3a" }, { "color": "rgba(237, 129, 40, 0.89)", @@ -543,13 +542,13 @@ "y": 1 }, "id": 45, - "links": [], "maxDataPoints": 100, "options": { "colorMode": "none", "graphMode": "none", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -557,9 +556,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "8.5.0", + "pluginVersion": "11.6.1", "targets": [ { "expr": "sum(pulsar_storage_size{job=~\"broker\"}) by (cluster)", @@ -597,8 +598,7 @@ "mode": "absolute", "steps": [ { - "color": "#d44a3a", - "value": null + "color": "#d44a3a" }, { "color": "rgba(237, 129, 40, 0.89)", @@ -621,13 +621,13 @@ "y": 1 }, "id": 46, - "links": [], "maxDataPoints": 100, "options": { "colorMode": "none", "graphMode": "none", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -635,9 +635,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "8.5.0", + "pluginVersion": "11.6.1", "targets": [ { "expr": "sum(pulsar_msg_backlog{job=~\"broker\"}) by (cluster)", @@ -677,8 +679,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -697,9 +698,10 @@ "y": 3 }, "id": 26, - "links": [], "maxDataPoints": 100, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "horizontal", "reduceOptions": { "calcs": [ @@ -709,9 +711,10 @@ "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "8.5.0", + "pluginVersion": "11.6.1", "targets": [ { "expr": "100 * ( 1 - \n ( sum(increase(node_cpu_seconds_total{mode=\"idle\"}[1m]))\n / \n sum(increase(node_cpu_seconds_total[1m]))\n )\n)", @@ -752,8 +755,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -772,9 +774,10 @@ "y": 3 }, "id": 24, - "links": [], "maxDataPoints": 100, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "horizontal", "reduceOptions": { "calcs": [ @@ -784,9 +787,10 @@ "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "8.5.0", + "pluginVersion": "11.6.1", "targets": [ { "expr": "sum(node_memory_MemTotal_bytes - node_memory_MemFree_bytes - node_memory_Buffers_bytes - node_memory_Cached_bytes) / sum(node_memory_MemTotal_bytes) * 100", @@ -827,8 +831,7 @@ "mode": "absolute", "steps": [ { - "color": "#d44a3a", - "value": null + "color": "#d44a3a" }, { "color": "rgba(237, 129, 40, 0.89)", @@ -851,9 +854,10 @@ "y": 3 }, "id": 38, - "links": [], "maxDataPoints": 100, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "horizontal", "reduceOptions": { "calcs": [ @@ -863,9 +867,10 @@ "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": false + "showThresholdMarkers": false, + "sizing": "auto" }, - "pluginVersion": "8.5.0", + "pluginVersion": "11.6.1", "targets": [ { "expr": "100 * count(up{job=\"zookeeper\"} == 1) / count(up{job=\"zookeeper\"})", @@ -905,8 +910,7 @@ "mode": "absolute", "steps": [ { - "color": "#d44a3a", - "value": null + "color": "#d44a3a" }, { "color": "rgba(237, 129, 40, 0.89)", @@ -929,9 +933,10 @@ "y": 3 }, "id": 35, - "links": [], "maxDataPoints": 100, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "horizontal", "reduceOptions": { "calcs": [ @@ -941,12 +946,13 @@ "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": false + "showThresholdMarkers": false, + "sizing": "auto" }, - "pluginVersion": "8.5.0", + "pluginVersion": "11.6.1", "targets": [ { - "expr": "100 * count(up{job=\"bookkeeper\"} == 1) / count(up{job=\"bookkeeper\"})", + "expr": "100 * count(up{job=~\"bookkeeper.*\"} == 1) / count(up{job=~\"bookkeeper.*\"})", "format": "time_series", "intervalFactor": 2, "legendFormat": "", @@ -983,8 +989,7 @@ "mode": "absolute", "steps": [ { - "color": "#d44a3a", - "value": null + "color": "#d44a3a" }, { "color": "rgba(237, 129, 40, 0.89)", @@ -1007,9 +1012,10 @@ "y": 3 }, "id": 31, - "links": [], "maxDataPoints": 100, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "horizontal", "reduceOptions": { "calcs": [ @@ -1019,9 +1025,10 @@ "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": false + "showThresholdMarkers": false, + "sizing": "auto" }, - "pluginVersion": "8.5.0", + "pluginVersion": "11.6.1", "targets": [ { "expr": "100 * count(up{job=\"broker\"} == 1) / count(up{job=\"broker\"})", @@ -1061,8 +1068,7 @@ "mode": "absolute", "steps": [ { - "color": "#d44a3a", - "value": null + "color": "#d44a3a" }, { "color": "rgba(237, 129, 40, 0.89)", @@ -1085,9 +1091,10 @@ "y": 3 }, "id": 36, - "links": [], "maxDataPoints": 100, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "horizontal", "reduceOptions": { "calcs": [ @@ -1097,9 +1104,10 @@ "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": false + "showThresholdMarkers": false, + "sizing": "auto" }, - "pluginVersion": "8.5.0", + "pluginVersion": "11.6.1", "targets": [ { "expr": "100 * count(up{job=\"proxy\"} == 1) / count(up{job=\"proxy\"})", @@ -1114,10 +1122,6 @@ }, { "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, "gridPos": { "h": 1, "w": 24, @@ -1140,9 +1144,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", @@ -1151,6 +1159,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -1174,8 +1183,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1194,19 +1202,20 @@ "y": 8 }, "id": 5, - "links": [], "options": { "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "none" } }, - "pluginVersion": "8.5.0", + "pluginVersion": "11.6.1", "targets": [ { "datasource": { @@ -1250,9 +1259,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", @@ -1261,6 +1274,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -1284,8 +1298,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1304,19 +1317,20 @@ "y": 8 }, "id": 6, - "links": [], "options": { "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "none" } }, - "pluginVersion": "8.5.0", + "pluginVersion": "11.6.1", "targets": [ { "datasource": { @@ -1388,7 +1402,9 @@ }, "custom": { "align": "auto", - "displayMode": "auto", + "cellOptions": { + "type": "auto" + }, "filterable": false, "inspect": false }, @@ -1397,8 +1413,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1454,8 +1469,7 @@ "mode": "absolute", "steps": [ { - "color": "rgba(245, 54, 54, 0.9)", - "value": null + "color": "rgba(245, 54, 54, 0.9)" }, { "color": "rgba(237, 129, 40, 0.89)" @@ -1509,11 +1523,11 @@ "x": 16, "y": 8 }, - "hideTimeOverride": false, "id": 4, - "links": [], "options": { + "cellHeight": "sm", "footer": { + "countRows": false, "fields": "", "reducer": [ "sum" @@ -1523,7 +1537,7 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "8.5.0", + "pluginVersion": "11.6.1", "targets": [ { "datasource": { @@ -1574,9 +1588,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", @@ -1585,6 +1603,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -1608,8 +1627,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1628,19 +1646,20 @@ "y": 14 }, "id": 12, - "links": [], "options": { "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "none" } }, - "pluginVersion": "8.5.0", + "pluginVersion": "11.6.1", "targets": [ { "datasource": { @@ -1674,55 +1693,89 @@ "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": { "type": "prometheus", "uid": "prometheus" }, "fieldConfig": { "defaults": { - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 14 }, - "hiddenSeries": false, "id": 7, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "8.5.0", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { "datasource": { @@ -1779,37 +1832,8 @@ "refId": "D" } ], - "thresholds": [], - "timeRegions": [], "title": "Throughput (bytes/s)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } + "type": "timeseries" }, { "datasource": { @@ -1822,9 +1846,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", @@ -1833,6 +1861,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -1856,8 +1885,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1876,19 +1904,20 @@ "y": 20 }, "id": 47, - "links": [], "options": { "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "none" } }, - "pluginVersion": "8.5.0", + "pluginVersion": "11.6.1", "targets": [ { "datasource": { @@ -1922,55 +1951,89 @@ "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": { "type": "prometheus", "uid": "prometheus" }, "fieldConfig": { "defaults": { - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 20 }, - "hiddenSeries": false, "id": 49, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "8.5.0", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { "datasource": { @@ -2000,37 +2063,8 @@ "refId": "B" } ], - "thresholds": [], - "timeRegions": [], "title": "Producers Count", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } + "type": "timeseries" }, { "datasource": { @@ -2044,7 +2078,9 @@ }, "custom": { "align": "auto", - "displayMode": "auto", + "cellOptions": { + "type": "auto" + }, "inspect": false }, "mappings": [], @@ -2052,8 +2088,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -2128,8 +2163,7 @@ "mode": "absolute", "steps": [ { - "color": "rgba(245, 54, 54, 0.9)", - "value": null + "color": "rgba(245, 54, 54, 0.9)" }, { "color": "rgba(237, 129, 40, 0.89)" @@ -2183,11 +2217,11 @@ "x": 16, "y": 20 }, - "hideTimeOverride": false, "id": 48, - "links": [], "options": { + "cellHeight": "sm", "footer": { + "countRows": false, "fields": "", "reducer": [ "sum" @@ -2197,7 +2231,7 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "8.5.0", + "pluginVersion": "11.6.1", "targets": [ { "datasource": { @@ -2245,9 +2279,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", @@ -2256,6 +2294,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -2279,8 +2318,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -2299,19 +2337,20 @@ "y": 26 }, "id": 50, - "links": [], "options": { "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "none" } }, - "pluginVersion": "8.5.0", + "pluginVersion": "11.6.1", "targets": [ { "datasource": { @@ -2355,9 +2394,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", @@ -2366,6 +2409,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -2389,8 +2433,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -2409,19 +2452,20 @@ "y": 26 }, "id": 51, - "links": [], "options": { "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "none" } }, - "pluginVersion": "8.5.0", + "pluginVersion": "11.6.1", "targets": [ { "datasource": { @@ -2455,55 +2499,89 @@ "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": { "type": "prometheus", "uid": "prometheus" }, "fieldConfig": { "defaults": { - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 6, "w": 7, "x": 0, "y": 32 }, - "hiddenSeries": false, "id": 53, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "8.5.0", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { "datasource": { @@ -2565,88 +2643,93 @@ "refId": "D" } ], - "thresholds": [], - "timeRegions": [], "title": "Messages I/O (1d)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": { "type": "prometheus", "uid": "prometheus" }, "fieldConfig": { "defaults": { - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 6, "w": 6, "x": 7, "y": 32 }, - "hiddenSeries": false, "id": 54, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "8.5.0", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { "datasource": { @@ -2708,37 +2791,8 @@ "refId": "C" } ], - "thresholds": [], - "timeRegions": [], "title": "Bytes I/O (1d)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": "", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } + "type": "timeseries" }, { "datasource": { @@ -2784,13 +2838,13 @@ "y": 32 }, "id": 61, - "links": [], "maxDataPoints": 100, "options": { "colorMode": "none", "graphMode": "none", "justifyMode": "auto", "orientation": "horizontal", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -2798,9 +2852,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "8.5.0", + "pluginVersion": "11.6.1", "targets": [ { "expr": "sum(increase(pulsar_in_bytes_total[1d]))/sum(increase(pulsar_in_messages_total[1d]))", @@ -2824,7 +2880,9 @@ }, "custom": { "align": "auto", - "displayMode": "auto", + "cellOptions": { + "type": "auto" + }, "inspect": false }, "mappings": [], @@ -2949,11 +3007,11 @@ "x": 16, "y": 32 }, - "hideTimeOverride": false, "id": 52, - "links": [], "options": { + "cellHeight": "sm", "footer": { + "countRows": false, "fields": "", "reducer": [ "sum" @@ -2963,7 +3021,7 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "8.5.0", + "pluginVersion": "11.6.1", "targets": [ { "datasource": { @@ -3051,7 +3109,6 @@ "y": 35 }, "id": 56, - "links": [], "maxDataPoints": 100, "options": { "colorMode": "none", @@ -3084,10 +3141,6 @@ "type": "stat" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": { "type": "prometheus", "uid": "prometheus" @@ -3098,40 +3151,17 @@ }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 8, "x": 0, "y": 38 }, - "hiddenSeries": false, "id": 58, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { "alertThreshold": true }, - "percentage": false, "pluginVersion": "8.5.0", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { "datasource": { @@ -3159,43 +3189,10 @@ "refId": "B" } ], - "thresholds": [], - "timeRegions": [], "title": "Offloaded Size Total", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:489", - "format": "decbytes", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:490", - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": { "type": "prometheus", "uid": "prometheus" @@ -3206,40 +3203,17 @@ }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 8, "x": 8, "y": 38 }, - "hiddenSeries": false, "id": 60, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { "alertThreshold": true }, - "percentage": false, "pluginVersion": "8.5.0", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { "datasource": { @@ -3267,37 +3241,8 @@ "refId": "B" } ], - "thresholds": [], - "timeRegions": [], "title": "Redelivery Rate (msg/s)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:489", - "format": "decbytes", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:490", - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } + "type": "timeseries" }, { "datasource": { @@ -3311,7 +3256,9 @@ }, "custom": { "align": "auto", - "displayMode": "auto", + "cellOptions": { + "type": "auto" + }, "inspect": false }, "mappings": [], @@ -3436,9 +3383,7 @@ "x": 16, "y": 44 }, - "hideTimeOverride": false, "id": 59, - "links": [], "options": { "footer": { "fields": "", @@ -3490,10 +3435,6 @@ }, { "collapsed": true, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, "gridPos": { "h": 1, "w": 24, @@ -3503,15 +3444,14 @@ "id": 42, "panels": [ { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": { "type": "prometheus", "uid": "prometheus" }, - "fill": 1, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 10, "w": 12, @@ -3519,28 +3459,7 @@ "y": 21 }, "id": 1, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { "expr": "100 * (1 - (sum(increase(node_cpu_seconds_total{mode=\"idle\"}[1m])) by (instance)\n/ \nsum(increase(node_cpu_seconds_total[1m])) by (instance)))", @@ -3550,48 +3469,18 @@ "refId": "B" } ], - "thresholds": [], "title": "Node CPU usage", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "percent", - "label": "", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": { "type": "prometheus", "uid": "prometheus" }, - "fill": 1, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, "gridPos": { "h": 10, "w": 12, @@ -3599,27 +3488,7 @@ "y": 21 }, "id": 11, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "options": {}, "targets": [ { "expr": "(node_memory_MemTotal_bytes - node_memory_MemFree_bytes - node_memory_Buffers_bytes - node_memory_Cached_bytes) / node_memory_MemTotal_bytes * 100 ", @@ -3629,54 +3498,23 @@ "refId": "A" } ], - "thresholds": [], "title": "Node Memory Usage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "percent", - "logBase": 1, - "max": "100", - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } + "type": "timeseries" } ], "title": "Nodes", "type": "row" } ], - "refresh": false, - "schemaVersion": 36, - "style": "dark", + "preload": false, + "refresh": "", + "schemaVersion": 41, "tags": [], "templating": { "list": [ { "current": { - "selected": true, - "text": [ - "All" - ], + "text": "All", "value": [ "$__all" ] @@ -3686,7 +3524,6 @@ "uid": "prometheus" }, "definition": "label_values(pulsar_msg_backlog, kubernetes_pod_name)", - "hide": 0, "includeAll": true, "multi": true, "name": "broker", @@ -3697,8 +3534,6 @@ }, "refresh": 1, "regex": "", - "skipUrlSync": false, - "sort": 0, "type": "query" } ] @@ -3707,34 +3542,9 @@ "from": "now-3h", "to": "now" }, - "timepicker": { - "refresh_intervals": [ - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" - ] - }, + "timepicker": {}, "timezone": "", "title": "Pulsar / Overview By Broker", "uid": "JjhNVoMVk", - "version": 2, - "weekStart": "" -} \ No newline at end of file + "version": 1 +} diff --git a/helm/kaap-stack/grafana-dashboards/overview.json b/helm/kaap-stack/grafana-dashboards/overview.json index ab078b08..d9aee180 100644 --- a/helm/kaap-stack/grafana-dashboards/overview.json +++ b/helm/kaap-stack/grafana-dashboards/overview.json @@ -3,7 +3,10 @@ "list": [ { "builtIn": 1, - "datasource": "-- Grafana --", + "datasource": { + "type": "datasource", + "uid": "grafana" + }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", @@ -14,13 +17,13 @@ }, "description": "Overview of Pulsar Cluster", "editable": true, - "gnetId": null, + "fiscalYearStartMonth": 0, "graphTooltip": 0, + "id": 17, "links": [], "panels": [ { "collapsed": false, - "datasource": null, "gridPos": { "h": 1, "w": 24, @@ -33,29 +36,39 @@ "type": "row" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#d44a3a", - "rgba(237, 129, 40, 0.89)", - "#299c46" - ], - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" }, "overrides": [] }, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, "gridPos": { "h": 2, "w": 3, @@ -63,42 +76,31 @@ "y": 1 }, "id": 27, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": " Cores", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "max" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "count(node_cpu_seconds_total{mode=\"system\"})", "format": "time_series", "instant": true, @@ -107,43 +109,43 @@ "refId": "A" } ], - "thresholds": "", "title": "CPU", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "max" + "type": "stat" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#d44a3a", - "rgba(237, 129, 40, 0.89)", - "#299c46" - ], - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" }, "overrides": [] }, - "format": "bytes", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, "gridPos": { "h": 2, "w": 3, @@ -151,42 +153,31 @@ "y": 1 }, "id": 25, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "max" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(node_memory_MemTotal_bytes)", "format": "time_series", "instant": true, @@ -195,43 +186,43 @@ "refId": "A" } ], - "thresholds": "", "title": "Memory", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "max" + "type": "stat" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#7eb26d", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" }, "overrides": [] }, - "format": "none", - "gauge": { - "maxValue": null, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": false - }, "gridPos": { "h": 2, "w": 3, @@ -239,42 +230,31 @@ "y": 1 }, "id": 28, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "count(count(up{job=\"zookeeper\"}) by (instance))", "format": "time_series", "intervalFactor": 2, @@ -282,43 +262,43 @@ "refId": "A" } ], - "thresholds": "", "title": "Zookeeper", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" + "type": "stat" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#7eb26d", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" }, "overrides": [] }, - "format": "none", - "gauge": { - "maxValue": null, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": false - }, "gridPos": { "h": 2, "w": 3, @@ -326,42 +306,31 @@ "y": 1 }, "id": 15, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "count(count(up{job=\"bookkeeper\"}) by (instance))", "format": "time_series", "intervalFactor": 2, @@ -369,43 +338,43 @@ "refId": "A" } ], - "thresholds": "", "title": "Bookies", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" + "type": "stat" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#d44a3a", - "rgba(237, 129, 40, 0.89)", - "#299c46" - ], - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" }, "overrides": [] }, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, "gridPos": { "h": 2, "w": 3, @@ -413,42 +382,31 @@ "y": 1 }, "id": 32, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "count(count(up{job=\"broker\"}) by (instance))", "format": "time_series", "instant": true, @@ -457,43 +415,43 @@ "refId": "A" } ], - "thresholds": "", "title": "Brokers", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" + "type": "stat" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#7eb26d", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" }, "overrides": [] }, - "format": "none", - "gauge": { - "maxValue": null, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": false - }, "gridPos": { "h": 2, "w": 3, @@ -501,42 +459,31 @@ "y": 1 }, "id": 29, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "count(count(up{job=\"proxy\"}) by (instance))", "format": "time_series", "intervalFactor": 2, @@ -544,43 +491,47 @@ "refId": "A" } ], - "thresholds": "", "title": "Proxies", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" + "type": "stat" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#d44a3a", - "rgba(237, 129, 40, 0.89)", - "#7eb26d" - ], - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#d44a3a" + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 80 + }, + { + "color": "#7eb26d", + "value": 90 + } + ] + }, + "unit": "decbytes" }, "overrides": [] }, - "format": "decbytes", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": false - }, "gridPos": { "h": 6, "w": 3, @@ -588,42 +539,31 @@ "y": 1 }, "id": 45, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_size{job=~\"broker\"}) by (cluster)", "format": "time_series", "intervalFactor": 2, @@ -631,43 +571,47 @@ "refId": "A" } ], - "thresholds": "80,90", "title": "Storage", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" + "type": "stat" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#d44a3a", - "rgba(237, 129, 40, 0.89)", - "#7eb26d" - ], - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#d44a3a" + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 80 + }, + { + "color": "#7eb26d", + "value": 90 + } + ] + }, + "unit": "decbytes" }, "overrides": [] }, - "format": "decbytes", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": false - }, "gridPos": { "h": 6, "w": 3, @@ -675,42 +619,31 @@ "y": 1 }, "id": 46, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_msg_backlog{job=~\"broker\"}) by (cluster)", "format": "time_series", "intervalFactor": 2, @@ -718,43 +651,45 @@ "refId": "A" } ], - "thresholds": "80,90", "title": "Backlog", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" + "type": "stat" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#d44a3a", - "rgba(237, 129, 40, 0.89)", - "#299c46" - ], - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percent" }, "overrides": [] }, - "format": "percent", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": true, - "thresholdLabels": false, - "thresholdMarkers": true - }, "gridPos": { "h": 4, "w": 3, @@ -762,42 +697,31 @@ "y": 3 }, "id": 26, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "100 * ( 1 - \n ( sum(increase(node_cpu_seconds_total{mode=\"idle\"}[1m]))\n / \n sum(increase(node_cpu_seconds_total[1m]))\n )\n)", "format": "time_series", "instant": true, @@ -806,43 +730,45 @@ "refId": "A" } ], - "thresholds": "", "title": "CPU Usage", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" + "type": "stat" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#d44a3a", - "rgba(237, 129, 40, 0.89)", - "#299c46" - ], - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percent" }, "overrides": [] }, - "format": "percent", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": true, - "thresholdLabels": false, - "thresholdMarkers": true - }, "gridPos": { "h": 4, "w": 3, @@ -850,42 +776,31 @@ "y": 3 }, "id": 24, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(node_memory_MemTotal_bytes - node_memory_MemFree_bytes - node_memory_Buffers_bytes - node_memory_Cached_bytes) / sum(node_memory_MemTotal_bytes) * 100", "format": "time_series", "instant": true, @@ -894,43 +809,49 @@ "refId": "A" } ], - "thresholds": "", "title": "Memory Usage", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" + "type": "stat" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#d44a3a", - "rgba(237, 129, 40, 0.89)", - "#7eb26d" - ], - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#d44a3a" + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 80 + }, + { + "color": "#7eb26d", + "value": 90 + } + ] + }, + "unit": "percent" }, "overrides": [] }, - "format": "percent", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": true, - "thresholdLabels": false, - "thresholdMarkers": false - }, "gridPos": { "h": 4, "w": 3, @@ -938,42 +859,31 @@ "y": 3 }, "id": 38, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "100 * count(up{job=\"zookeeper\"} == 1) / count(up{job=\"zookeeper\"})", "format": "time_series", "intervalFactor": 2, @@ -981,43 +891,49 @@ "refId": "A" } ], - "thresholds": "80,90", "title": "Zookeeper Up", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" + "type": "stat" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#d44a3a", - "rgba(237, 129, 40, 0.89)", - "#7eb26d" - ], - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#d44a3a" + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 80 + }, + { + "color": "#7eb26d", + "value": 90 + } + ] + }, + "unit": "percent" }, "overrides": [] }, - "format": "percent", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": true, - "thresholdLabels": false, - "thresholdMarkers": false - }, "gridPos": { "h": 4, "w": 3, @@ -1025,42 +941,31 @@ "y": 3 }, "id": 35, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "100 * count(up{job=\"bookkeeper\"} == 1) / count(up{job=\"bookkeeper\"})", "format": "time_series", "intervalFactor": 2, @@ -1068,43 +973,49 @@ "refId": "A" } ], - "thresholds": "80,90", "title": "Bookies Up", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" + "type": "stat" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#d44a3a", - "rgba(237, 129, 40, 0.89)", - "#7eb26d" - ], - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#d44a3a" + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 80 + }, + { + "color": "#7eb26d", + "value": 90 + } + ] + }, + "unit": "percent" }, "overrides": [] }, - "format": "percent", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": true, - "thresholdLabels": false, - "thresholdMarkers": false - }, "gridPos": { "h": 4, "w": 3, @@ -1112,42 +1023,31 @@ "y": 3 }, "id": 31, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "100 * count(up{job=\"broker\"} == 1) / count(up{job=\"broker\"})", "format": "time_series", "intervalFactor": 2, @@ -1155,43 +1055,49 @@ "refId": "A" } ], - "thresholds": "80,90", "title": "Brokers Up", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" + "type": "stat" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#d44a3a", - "rgba(237, 129, 40, 0.89)", - "#7eb26d" - ], - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#d44a3a" + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 80 + }, + { + "color": "#7eb26d", + "value": 90 + } + ] + }, + "unit": "percent" }, "overrides": [] }, - "format": "percent", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": true, - "thresholdLabels": false, - "thresholdMarkers": false - }, "gridPos": { "h": 4, "w": 3, @@ -1199,42 +1105,31 @@ "y": 3 }, "id": 36, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "100 * count(up{job=\"proxy\"} == 1) / count(up{job=\"proxy\"})", "format": "time_series", "intervalFactor": 2, @@ -1242,22 +1137,11 @@ "refId": "A" } ], - "thresholds": "80,90", "title": "Proxies Up", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" + "type": "stat" }, { "collapsed": false, - "datasource": null, "gridPos": { "h": 1, "w": 24, @@ -1270,157 +1154,198 @@ "type": "row" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {}, - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 6, "w": 8, "x": 0, "y": 8 }, - "hiddenSeries": false, "id": 5, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(avg(pulsar_storage_size{job=~\"broker.*\"}) by (topic)) by (cluster)", "format": "time_series", "interval": "", "intervalFactor": 2, "legendFormat": "{{ cluster }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Messaging Storage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "format": "decbytes", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + "refId": "A" } ], - "yaxis": { - "align": false, - "alignLevel": null - } + "title": "Messaging Storage", + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {}, - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 8 }, - "hiddenSeries": false, "id": 6, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(avg(pulsar_rate_in{job=~\"broker.*\"}) by (topic)) by (cluster)", "format": "time_series", "interval": "", @@ -1429,6 +1354,10 @@ "refId": "A" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(avg(pulsar_rate_out{job=~\"broker\"}) by (topic)) by (cluster)", "format": "time_series", "interval": "", @@ -1437,130 +1366,146 @@ "refId": "B" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Message Rate (msg/s)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "columns": [], - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} - }, - "overrides": [] + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Time" + }, + "properties": [ + { + "id": "unit", + "value": "short" + }, + { + "id": "decimals", + "value": 2 + }, + { + "id": "custom.hidden", + "value": true + }, + { + "id": "custom.align" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "topic" + }, + "properties": [ + { + "id": "displayName", + "value": "Topic name" + }, + { + "id": "unit", + "value": "short" + }, + { + "id": "decimals", + "value": 2 + }, + { + "id": "custom.align" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Value" + }, + "properties": [ + { + "id": "displayName", + "value": "Messages" + }, + { + "id": "unit", + "value": "short" + }, + { + "id": "custom.align" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "rgba(245, 54, 54, 0.9)" + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": null + } + ] + } + } + ] + } + ] }, - "fontSize": "100%", "gridPos": { "h": 12, "w": 8, "x": 16, "y": 8 }, - "hideTimeOverride": false, "id": 4, - "links": [], - "pageSize": null, - "scroll": true, - "showHeader": true, - "sort": { - "col": 2, - "desc": true - }, - "styles": [ - { - "alias": "", - "align": "auto", - "colorMode": null, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "link": false, - "pattern": "Time", - "thresholds": [], - "type": "hidden", - "unit": "short" - }, - { - "alias": "Topic name", - "align": "auto", - "colorMode": null, - "colors": [ - "#890f02", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "fields": "", + "reducer": [ + "sum" ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "link": false, - "pattern": "topic", - "thresholds": [], - "type": "number", - "unit": "short" + "show": false }, - { - "alias": "Messages", - "align": "auto", - "colorMode": null, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 0, - "pattern": "Value", - "thresholds": [ - "" - ], - "type": "number", - "unit": "short" - } - ], + "showHeader": true + }, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": " topk(10, sum(pulsar_msg_backlog{job=~\"broker\"}) by (topic))", "format": "table", "instant": true, @@ -1570,59 +1515,98 @@ } ], "title": "Top 10 topics backlog", - "transform": "table", - "type": "table-old" + "type": "table" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {}, - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 6, "w": 8, "x": 0, "y": 14 }, - "hiddenSeries": false, "id": 12, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(avg(pulsar_msg_backlog{job=~\"broker.*\"}) by (topic)) by (cluster)", "format": "time_series", "interval": "", @@ -1631,99 +1615,100 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Messaging Backlog", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {}, - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 14 }, - "hiddenSeries": false, "id": 7, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(avg(pulsar_throughput_in{job=~\"broker.*\"}) by (topic)) by (cluster)", "format": "time_series", "interval": "", @@ -1732,6 +1717,10 @@ "refId": "A" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(avg(pulsar_throughput_out{job=~\"broker.*\"}) by (topic)) by (cluster)", "format": "time_series", "interval": "", @@ -1740,99 +1729,100 @@ "refId": "B" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Throughput (bytes/s)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {}, - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 6, "w": 8, "x": 0, "y": 20 }, - "hiddenSeries": false, "id": 47, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_replication_backlog{job=~\"broker.*\"}) by (remote_cluster)", "format": "time_series", "interval": "", @@ -1841,6 +1831,10 @@ "refId": "A" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_replication_backlog{job=~\"broker.*\"})", "format": "time_series", "interval": "", @@ -1849,99 +1843,100 @@ "refId": "B" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Replication Backlog", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {}, - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 20 }, - "hiddenSeries": false, "id": 61, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(avg(pulsar_replication_throughput_in{job=~\"broker.*\"}) by (topic)) by (cluster)", "format": "time_series", "interval": "", @@ -1950,136 +1945,156 @@ "refId": "A" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(avg(pulsar_replication_throughput_out{job=~\"broker.*\"}) by (topic)) by (cluster)", "interval": "", "legendFormat": "Out", "refId": "B" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Replication Throughput", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "columns": [], - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} - }, - "overrides": [] + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Time" + }, + "properties": [ + { + "id": "unit", + "value": "short" + }, + { + "id": "decimals", + "value": 2 + }, + { + "id": "custom.hidden", + "value": true + }, + { + "id": "custom.align" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "topic" + }, + "properties": [ + { + "id": "displayName", + "value": "Topic name" + }, + { + "id": "unit", + "value": "short" + }, + { + "id": "decimals", + "value": 2 + }, + { + "id": "custom.align" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Value" + }, + "properties": [ + { + "id": "displayName", + "value": "Messages" + }, + { + "id": "unit", + "value": "short" + }, + { + "id": "custom.align" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "rgba(245, 54, 54, 0.9)" + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": null + } + ] + } + } + ] + } + ] }, - "fontSize": "100%", "gridPos": { "h": 12, "w": 8, "x": 16, "y": 20 }, - "hideTimeOverride": false, "id": 48, - "links": [], - "pageSize": null, - "scroll": true, - "showHeader": true, - "sort": { - "col": 2, - "desc": true - }, - "styles": [ - { - "alias": "", - "align": "auto", - "colorMode": null, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "link": false, - "pattern": "Time", - "thresholds": [], - "type": "hidden", - "unit": "short" - }, - { - "alias": "Topic name", - "align": "auto", - "colorMode": null, - "colors": [ - "#890f02", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "fields": "", + "reducer": [ + "sum" ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "link": false, - "pattern": "topic", - "thresholds": [], - "type": "number", - "unit": "short" + "show": false }, - { - "alias": "Messages", - "align": "auto", - "colorMode": null, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 0, - "pattern": "Value", - "thresholds": [ - "" - ], - "type": "number", - "unit": "short" - } - ], + "showHeader": true + }, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": " topk(10, sum(pulsar_replication_backlog{job=~\"broker\"}) by (topic))", "format": "table", "instant": true, @@ -2090,60 +2105,99 @@ } ], "title": "Top 10 Replication Backlog", - "transform": "table", - "type": "table-old" + "type": "table" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {}, - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 6, "w": 8, "x": 0, "y": 26 }, - "hiddenSeries": false, "id": 60, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(avg(pulsar_replication_rate_in{job=~\"broker.*\"}) by (topic)) by (cluster)", "format": "time_series", "interval": "", @@ -2152,105 +2206,110 @@ "refId": "A" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(avg(pulsar_replication_rate_out{job=~\"broker.*\"}) by (topic)) by (cluster)", "interval": "", "legendFormat": "Out", "refId": "B" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Replication Rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {}, - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 26 }, - "hiddenSeries": false, "id": 58, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(avg(pulsar_subscription_unacked_messages{job=~\"broker.*\"}) by (topic)) by (cluster)", "format": "time_series", "interval": "", @@ -2259,99 +2318,100 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Subscription Unacked Messages", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {}, - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 6, "w": 8, "x": 0, "y": 32 }, - "hiddenSeries": false, "id": 50, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(avg(pulsar_consumers_count{job=~\"broker.*\"}) by (topic)) by (cluster)", "format": "time_series", "interval": "", @@ -2360,98 +2420,99 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Consumers Count", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {}, - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 32 }, - "hiddenSeries": false, "id": 49, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(avg(pulsar_producers_count{job=~\"broker.*\"}) by (topic)) by (cluster)", "format": "time_series", "interval": "", @@ -2460,130 +2521,146 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Producers Count", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "columns": [], - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} - }, - "overrides": [] + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Time" + }, + "properties": [ + { + "id": "unit", + "value": "short" + }, + { + "id": "decimals", + "value": 2 + }, + { + "id": "custom.hidden", + "value": true + }, + { + "id": "custom.align" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "topic" + }, + "properties": [ + { + "id": "displayName", + "value": "Topic name" + }, + { + "id": "unit", + "value": "short" + }, + { + "id": "decimals", + "value": 2 + }, + { + "id": "custom.align" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Value" + }, + "properties": [ + { + "id": "displayName", + "value": "Messages" + }, + { + "id": "unit", + "value": "short" + }, + { + "id": "custom.align" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "rgba(245, 54, 54, 0.9)" + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": null + } + ] + } + } + ] + } + ] }, - "fontSize": "100%", "gridPos": { "h": 12, "w": 8, "x": 16, "y": 32 }, - "hideTimeOverride": false, "id": 59, - "links": [], - "pageSize": null, - "scroll": true, - "showHeader": true, - "sort": { - "col": 2, - "desc": true - }, - "styles": [ - { - "alias": "", - "align": "auto", - "colorMode": null, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "link": false, - "pattern": "Time", - "thresholds": [], - "type": "hidden", - "unit": "short" - }, - { - "alias": "Topic name", - "align": "auto", - "colorMode": null, - "colors": [ - "#890f02", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "fields": "", + "reducer": [ + "sum" ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "link": false, - "pattern": "topic", - "thresholds": [], - "type": "number", - "unit": "short" + "show": false }, - { - "alias": "Messages", - "align": "auto", - "colorMode": null, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 0, - "pattern": "Value", - "thresholds": [ - "" - ], - "type": "number", - "unit": "short" - } - ], + "showHeader": true + }, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": " topk(10, sum(pulsar_subscription_unacked_messages{job=~\"broker\"}) by (topic))", "format": "table", "instant": true, @@ -2593,15 +2670,13 @@ } ], "title": "Top 10 Topics Unacked", - "transform": "table", - "type": "table-old" + "type": "table" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {}, @@ -2609,43 +2684,23 @@ }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 6, "w": 7, "x": 0, "y": 38 }, - "hiddenSeries": false, "id": 53, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "alertThreshold": true }, - "percentage": false, "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(increase(pulsar_in_messages_total[1d])) by (cluster)", "format": "time_series", "interval": "", @@ -2654,54 +2709,14 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Messages In (1d)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { @@ -2710,43 +2725,23 @@ }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 38 }, - "hiddenSeries": false, "id": 51, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "alertThreshold": true }, - "percentage": false, "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(avg(pulsar_subscriptions_count{job=~\"broker.*\"}) by (broker)) by (cluster)", "format": "time_series", "interval": "", @@ -2755,54 +2750,14 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Subscriptions Count", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {}, @@ -2810,43 +2765,23 @@ }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 6, "w": 7, "x": 0, "y": 44 }, - "hiddenSeries": false, "id": 57, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "alertThreshold": true }, - "percentage": false, "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(increase(pulsar_storage_offloaded_size[1d])) by (cluster)", "format": "time_series", "interval": "", @@ -2855,56 +2790,14 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Offloaded Size (1d)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:737", - "decimals": null, - "format": "decbytes", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "$$hashKey": "object:738", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {}, @@ -2912,43 +2805,23 @@ }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 6, "w": 6, "x": 7, "y": 44 }, - "hiddenSeries": false, "id": 54, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "alertThreshold": true }, - "percentage": false, "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(increase(pulsar_in_bytes_total[1d])) by (cluster)", "format": "time_series", "interval": "", @@ -2957,72 +2830,20 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Bytes In (1d)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "format": "decbytes", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, - "format": "decbytes", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, "gridPos": { "h": 6, "w": 3, @@ -3030,148 +2851,49 @@ "y": 44 }, "id": 56, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, + "options": {}, "pluginVersion": "6.7.1", - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false, - "ymax": null, - "ymin": null - }, - "tableColumn": "", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(increase(pulsar_in_bytes_total[1d]))/sum(increase(pulsar_in_messages_total[1d]))", "interval": "", "legendFormat": "", "refId": "A" } ], - "thresholds": "", - "timeFrom": null, - "timeShift": null, "title": "Avg In Msg (1d)", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" + "type": "stat" }, { - "columns": [], - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, - "fontSize": "100%", "gridPos": { "h": 12, "w": 8, "x": 16, "y": 44 }, - "hideTimeOverride": false, "id": 52, - "links": [], - "pageSize": null, - "scroll": true, - "showHeader": true, - "sort": { - "col": 2, - "desc": true - }, - "styles": [ - { - "alias": "", - "align": "auto", - "colorMode": null, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "link": false, - "pattern": "Time", - "thresholds": [], - "type": "hidden", - "unit": "short" - }, - { - "alias": "Topic name", - "align": "auto", - "colorMode": null, - "colors": [ - "#890f02", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "link": false, - "pattern": "topic", - "thresholds": [], - "type": "number", - "unit": "short" - }, - { - "alias": "Bytes", - "align": "auto", - "colorMode": null, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 0, - "pattern": "Value", - "thresholds": [ - "" - ], - "type": "number", - "unit": "decbytes" - } - ], + "options": {}, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": " topk(10, sum(pulsar_storage_size{job=~\"broker\"}) by (topic))", "format": "table", "instant": true, @@ -3182,12 +2904,10 @@ } ], "title": "Top 10 Topics Storage", - "transform": "table", - "type": "table-old" + "type": "table" }, { "collapsed": false, - "datasource": null, "gridPos": { "h": 1, "w": 24, @@ -3200,55 +2920,33 @@ "type": "row" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 10, "w": 12, "x": 0, "y": 57 }, - "hiddenSeries": false, "id": 1, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "alertThreshold": true }, - "percentage": false, "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "100 * (1 - (sum(increase(node_cpu_seconds_total{mode=\"idle\"}[1m])) by (instance)\n/ \nsum(increase(node_cpu_seconds_total[1m])) by (instance)))", "format": "time_series", "intervalFactor": 1, @@ -3256,97 +2954,37 @@ "refId": "B" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Node CPU usage", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "format": "percent", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 10, "w": 12, "x": 12, "y": 57 }, - "hiddenSeries": false, "id": 11, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "alertThreshold": true }, - "percentage": false, "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "(node_memory_MemTotal_bytes - node_memory_MemFree_bytes - node_memory_Buffers_bytes - node_memory_Cached_bytes) / node_memory_MemTotal_bytes * 100 ", "format": "time_series", "intervalFactor": 2, @@ -3354,52 +2992,13 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Node Memory Usage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "format": "percent", - "label": null, - "logBase": 1, - "max": "100", - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" } ], + "preload": false, "refresh": "1m", - "schemaVersion": 26, - "style": "dark", + "schemaVersion": 41, "tags": [ "pulsar" ], @@ -3410,31 +3009,7 @@ "from": "now-12h", "to": "now" }, - "timepicker": { - "refresh_intervals": [ - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" - ] - }, + "timepicker": {}, "timezone": "", "title": "Pulsar / Overview", "uid": "XlS0CN-mk", diff --git a/helm/kaap-stack/grafana-dashboards/proxy.json b/helm/kaap-stack/grafana-dashboards/proxy.json index 28092f55..80010173 100644 --- a/helm/kaap-stack/grafana-dashboards/proxy.json +++ b/helm/kaap-stack/grafana-dashboards/proxy.json @@ -1,39 +1,12 @@ { - "__inputs": [ - { - "name": "DS_TEST-CLUSTER", - "label": "Prometheus", - "description": "", - "type": "datasource", - "pluginId": "prometheus", - "pluginName": "Prometheus" - } - ], - "__requires": [ - { - "type": "grafana", - "id": "grafana", - "name": "Grafana", - "version": "5.3.2" - }, - { - "type": "panel", - "id": "graph", - "name": "Graph", - "version": "5.0.0" - }, - { - "type": "datasource", - "id": "prometheus", - "name": "Prometheus", - "version": "5.0.0" - } - ], "annotations": { "list": [ { "builtIn": 1, - "datasource": "-- Grafana --", + "datasource": { + "type": "datasource", + "uid": "grafana" + }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", @@ -44,20 +17,72 @@ }, "description": "Proxy Metrics", "editable": true, - "gnetId": null, + "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": null, - "iteration": 1543909108957, + "id": 19, "links": [], "panels": [ { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, - "fill": 0, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, "gridPos": { "h": 7, "w": 8, @@ -65,29 +90,26 @@ "y": 0 }, "id": 1, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_proxy_active_connections{cluster=~\"$cluster\", job=~\"proxy\", instance=~\"$instance\"}) by (instance)", "format": "time_series", "interval": "", @@ -97,54 +119,70 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Active Connections", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, - "fill": 0, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, "gridPos": { "h": 7, "w": 8, @@ -152,29 +190,26 @@ "y": 0 }, "id": 2, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(rate(pulsar_proxy_new_connections{cluster=~\"$cluster\", job=~\"proxy\", instance=~\"$instance\"}[30s])) by (instance)", "format": "time_series", "interval": "", @@ -184,54 +219,70 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "New connections (conn / s)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, - "fill": 0, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, "gridPos": { "h": 7, "w": 8, @@ -239,29 +290,26 @@ "y": 0 }, "id": 27, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(rate(pulsar_proxy_rejected_connections{cluster=~\"$cluster\", job=~\"proxy\", instance=~\"$instance\"}[30s])) by (instance)", "format": "time_series", "interval": "", @@ -271,53 +319,69 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Rejected connections (conn / s)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, "gridPos": { "h": 7, "w": 8, @@ -325,29 +389,26 @@ "y": 7 }, "id": 24, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(rate(pulsar_proxy_binary_ops{cluster=~\"$cluster\", job=~\"proxy\", instance=~\"$instance\"}[1m])) by (instance)", "format": "time_series", "interval": "", @@ -356,53 +417,69 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Operations per sec", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "Bps" + }, + "overrides": [] + }, "gridPos": { "h": 7, "w": 8, @@ -410,29 +487,26 @@ "y": 7 }, "id": 25, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(rate(pulsar_proxy_binary_ops{cluster=~\"$cluster\", job=~\"proxy\", instance=~\"$instance\"}[1m])) by (instance)", "format": "time_series", "interval": "", @@ -441,53 +515,69 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Traffic - bytes per sec", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "Bps", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 1, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, "gridPos": { "h": 7, "w": 8, @@ -495,29 +585,26 @@ "y": 7 }, "id": 29, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(rate(jetty_requests_total{cluster=~\"$cluster\", instance=~\"$instance\"}[1m])) by (instance)", "format": "time_series", "intervalFactor": 1, @@ -525,54 +612,70 @@ "refId": "B" } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "HTTP reqs per sec", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, - "fill": 0, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, "gridPos": { "h": 7, "w": 8, @@ -580,29 +683,26 @@ "y": 14 }, "id": 12, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(rate(pulsar_proxy_lookup_requests{cluster=~\"$cluster\", job=~\"proxy\", instance=~\"$instance\"}[1m])) by (instance)", "format": "time_series", "interval": "", @@ -612,54 +712,70 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Topic lookups per sec", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "none", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, - "fill": 0, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, "gridPos": { "h": 7, "w": 8, @@ -667,29 +783,26 @@ "y": 14 }, "id": 22, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(rate(pulsar_proxy_partitions_metadata_requests{cluster=~\"$cluster\", job=~\"proxy\", instance=~\"$instance\"}[1m])) by (instance)", "format": "time_series", "interval": "", @@ -699,54 +812,70 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "GetPartitionsMetadata per sec", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "none", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, - "fill": 0, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, "gridPos": { "h": 7, "w": 8, @@ -754,29 +883,26 @@ "y": 14 }, "id": 23, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(rate(pulsar_proxy_get_topics_of_namespace_requests{cluster=~\"$cluster\", job=~\"proxy\", instance=~\"$instance\"}[1m])) by (instance)", "format": "time_series", "interval": "", @@ -786,54 +912,70 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "GetNamespaceTopics per sec", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "none", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, - "fill": 0, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, "gridPos": { "h": 6, "w": 8, @@ -841,29 +983,26 @@ "y": 21 }, "id": 21, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(rate(pulsar_proxy_rejected_lookup_requests{cluster=~\"$cluster\", job=~\"proxy\", instance=~\"$instance\"}[1m])) by (instance)", "format": "time_series", "interval": "", @@ -873,54 +1012,70 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Lookups rejected per sec", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, - "fill": 0, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, "gridPos": { "h": 6, "w": 8, @@ -928,29 +1083,26 @@ "y": 21 }, "id": 26, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(rate(pulsar_proxy_rejected_partitions_metadata_requests{cluster=~\"$cluster\", job=~\"proxy\", instance=~\"$instance\"}[1m])) by (instance)", "format": "time_series", "interval": "", @@ -960,54 +1112,70 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Partitions requests rejected per sec", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, - "fill": 0, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, "gridPos": { "h": 6, "w": 8, @@ -1015,29 +1183,26 @@ "y": 21 }, "id": 28, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(\n rate(\n pulsar_proxy_rejected_get_topics_of_namespace_requests{\n cluster=~\"$cluster\", job=~\"proxy\", \n instance=~\"$instance\"}[1m]\n )\n ) \nby (instance)", "format": "time_series", "interval": "", @@ -1047,81 +1212,44 @@ "step": 2 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "GetNamespaceTopics requests rejected per sec", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" } ], + "preload": false, "refresh": "1m", - "schemaVersion": 16, - "style": "dark", + "schemaVersion": 41, "tags": [ "pulsar" ], "templating": { "list": [ { - "allValue": null, - "current": {}, + "current": { + "text": "All", + "value": "$__all" + }, "datasource": "Prometheus", - "hide": 0, "includeAll": true, "label": "Cluster", - "multi": false, "name": "cluster", "options": [], "query": "pulsar_proxy_active_connections{cluster=~\".+\", job=~\"proxy\"}", "refresh": 2, "regex": "/.*[^_]cluster=\\\"([^\\\"]+)\\\".*/", - "skipUrlSync": false, "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false + "type": "query" }, { - "allValue": null, - "current": {}, + "current": { + "text": [ + "All" + ], + "value": [ + "$__all" + ] + }, "datasource": "Prometheus", - "hide": 0, "includeAll": true, "label": "Proxy", "multi": true, @@ -1130,13 +1258,8 @@ "query": "pulsar_proxy_active_connections{instance=~\".+\", job=~\"proxy\"}", "refresh": 2, "regex": "/.*[^_]instance=\\\"([^\\\"]+)\\\".*/", - "skipUrlSync": false, "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false + "type": "query" } ] }, @@ -1144,33 +1267,9 @@ "from": "now-1h", "to": "now" }, - "timepicker": { - "refresh_intervals": [ - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" - ] - }, + "timepicker": {}, "timezone": "browser", "title": "Pulsar / Proxy", "uid": "IMCFzlbiz", - "version": 4 + "version": 1 } diff --git a/helm/kaap-stack/grafana-dashboards/pulsarheartbeat.json b/helm/kaap-stack/grafana-dashboards/pulsarheartbeat.json index ba792c6b..9f95e19d 100644 --- a/helm/kaap-stack/grafana-dashboards/pulsarheartbeat.json +++ b/helm/kaap-stack/grafana-dashboards/pulsarheartbeat.json @@ -1,703 +1,722 @@ { - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "editable": true, - "gnetId": null, - "graphTooltip": 0, - "id": 31, - "links": [], - "panels": [ + "annotations": { + "list": [ { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fieldConfig": { - "defaults": { - "custom": {} + "builtIn": 1, + "datasource": { + "type": "datasource", + "uid": "grafana" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 20, + "links": [], + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 0 + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "ms" }, - "hiddenSeries": false, - "id": 2, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 2, + "options": { + "dataLinks": [], "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_pubsub_latency_ms", - "legendFormat": "{{ device }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "End-to-End Topic Pubsub Latency", "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null + "expr": "pulsar_pubsub_latency_ms", + "legendFormat": "{{ device }}", + "refId": "A" } + ], + "title": "End-to-End Topic Pubsub Latency", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fieldConfig": { - "defaults": { - "custom": {} + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 0 + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, - "hiddenSeries": false, - "id": 23, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 23, + "options": { + "dataLinks": [], "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_k8s_bookkeeper_offline_counter", - "interval": "", - "legendFormat": "", - "refId": "A" - }, - { - "expr": "pulsar_k8s_broker_offline_counter", - "interval": "", - "legendFormat": "", - "refId": "B" + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" }, - { - "expr": "pulsar_k8s_zookeeper_offline_counter", - "interval": "", - "legendFormat": "", - "refId": "C" + "expr": "pulsar_k8s_bookkeeper_offline_counter", + "interval": "", + "legendFormat": "", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" }, - { - "expr": "pulsar_k8s_proxy_offline_counter", - "interval": "", - "legendFormat": "", - "refId": "D" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Instances offline counter", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" + "expr": "pulsar_k8s_broker_offline_counter", + "interval": "", + "legendFormat": "", + "refId": "B" }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "pulsar_k8s_zookeeper_offline_counter", + "interval": "", + "legendFormat": "", + "refId": "C" }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null + "expr": "pulsar_k8s_proxy_offline_counter", + "interval": "", + "legendFormat": "", + "refId": "D" } + ], + "title": "Instances offline counter", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fieldConfig": { - "defaults": { - "custom": {} + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 8 + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, - "hiddenSeries": false, - "id": 8, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 8 + }, + "id": 8, + "options": { + "dataLinks": [], "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_tenant_size ", - "legendFormat": "{{ device }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Tenants", "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null + "expr": "pulsar_tenant_size ", + "legendFormat": "{{ device }}", + "refId": "A" } + ], + "title": "Tenants", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "fieldConfig": { - "defaults": { - "custom": {} + "fieldConfig": { + "defaults": { + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] }, - "overrides": [] + "unit": "none" }, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 3, - "w": 4, - "x": 0, - "y": 9 + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 0, + "y": 9 + }, + "id": 18, + "maxDataPoints": 100, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false }, - "id": 18, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "pluginVersion": "6.5.2", - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false, - "ymax": null, - "ymin": null - }, - "tableColumn": "", - "targets": [ - { - "expr": "max(pulsar_tenant_size)", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "thresholds": "", - "timeFrom": null, - "timeShift": null, - "title": "Tenants", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "avg" + "expr": "max(pulsar_tenant_size)", + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "Tenants", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" }, - { - "cacheTimeout": null, - "datasource": null, - "fieldConfig": { - "defaults": { - "custom": {}, - "mappings": [ + "fieldConfig": { + "defaults": { + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, { - "id": 0, - "op": "=", - "text": "N/A", - "type": 1, - "value": "null" + "color": "red", + "value": 80 } - ], - "nullValueMode": "connected", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" + ] }, - "overrides": [] + "unit": "none" }, - "gridPos": { - "h": 3, - "w": 4, - "x": 4, - "y": 9 + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 4, + "y": 9 + }, + "id": 12, + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "fieldOptions": { + "calcs": [ + "mean" + ] + }, + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false }, - "id": 12, - "interval": null, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "value", - "fieldOptions": { - "calcs": [ - "mean" - ] + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" }, - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - } - }, - "pluginVersion": "7.0.3", - "targets": [ - { - "expr": "sum(pulsar_monitor_counter)/7200", - "format": "heatmap", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Uptime hours", - "type": "stat" + "expr": "sum(pulsar_monitor_counter)/7200", + "format": "heatmap", + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "Uptime hours", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fieldConfig": { - "defaults": { - "custom": {} + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 12 + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "ms" }, - "hiddenSeries": false, - "id": 21, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 12 + }, + "id": 21, + "options": { + "dataLinks": [], "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_websocket_latency_ms", - "interval": "", - "legendFormat": "{{ device }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "WebSockets Latency", "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null + "expr": "pulsar_websocket_latency_ms", + "interval": "", + "legendFormat": "{{ device }}", + "refId": "A" } + ], + "title": "WebSockets Latency", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fieldConfig": { - "defaults": { - "custom": {} + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 16 + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "ms" }, - "hiddenSeries": false, - "id": 4, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 16 + }, + "id": 4, + "options": { + "dataLinks": [], "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_func_topic_latency_ms", - "interval": "", - "legendFormat": "{{ device }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "End-to-End Function Latency", "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null + "expr": "pulsar_func_topic_latency_ms", + "interval": "", + "legendFormat": "{{ device }}", + "refId": "A" } - } - ], - "refresh": false, - "schemaVersion": 25, - "style": "dark", - "tags": [], - "templating": { - "list": [] - }, - "time": { - "from": "now-1h", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ] - }, - "timezone": "", - "title": "Pulsar / Pulsar Heartbeat", - "uid": "j55zWy2Mk", - "version": 5 - } \ No newline at end of file + ], + "title": "End-to-End Function Latency", + "type": "timeseries" + } + ], + "preload": false, + "refresh": "", + "schemaVersion": 41, + "tags": [], + "templating": { + "list": [] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ] + }, + "timezone": "", + "title": "Pulsar / Pulsar Heartbeat", + "uid": "j55zWy2Mk", + "version": 1 +} diff --git a/helm/kaap-stack/grafana-dashboards/pulsarmonitor.json b/helm/kaap-stack/grafana-dashboards/pulsarmonitor.json deleted file mode 100644 index 8d46882c..00000000 --- a/helm/kaap-stack/grafana-dashboards/pulsarmonitor.json +++ /dev/null @@ -1,703 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "editable": true, - "gnetId": null, - "graphTooltip": 0, - "id": 31, - "links": [], - "panels": [ - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 0 - }, - "hiddenSeries": false, - "id": 2, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_pubsub_latency_ms", - "legendFormat": "{{ device }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "End-to-End Topic Pubsub Latency", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 0 - }, - "hiddenSeries": false, - "id": 23, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_k8s_bookkeeper_offline_counter", - "interval": "", - "legendFormat": "", - "refId": "A" - }, - { - "expr": "pulsar_k8s_broker_offline_counter", - "interval": "", - "legendFormat": "", - "refId": "B" - }, - { - "expr": "pulsar_k8s_zookeeper_offline_counter", - "interval": "", - "legendFormat": "", - "refId": "C" - }, - { - "expr": "pulsar_k8s_proxy_offline_counter", - "interval": "", - "legendFormat": "", - "refId": "D" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Instances offline counter", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 8 - }, - "hiddenSeries": false, - "id": 8, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_tenant_size ", - "legendFormat": "{{ device }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Tenants", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 3, - "w": 4, - "x": 0, - "y": 9 - }, - "id": 18, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "pluginVersion": "6.5.2", - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false, - "ymax": null, - "ymin": null - }, - "tableColumn": "", - "targets": [ - { - "expr": "max(pulsar_tenant_size)", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "thresholds": "", - "timeFrom": null, - "timeShift": null, - "title": "Tenants", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "avg" - }, - { - "cacheTimeout": null, - "datasource": null, - "fieldConfig": { - "defaults": { - "custom": {}, - "mappings": [ - { - "id": 0, - "op": "=", - "text": "N/A", - "type": 1, - "value": "null" - } - ], - "nullValueMode": "connected", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 4, - "x": 4, - "y": 9 - }, - "id": 12, - "interval": null, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "value", - "fieldOptions": { - "calcs": [ - "mean" - ] - }, - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - } - }, - "pluginVersion": "7.0.3", - "targets": [ - { - "expr": "sum(pulsar_monitor_counter)/7200", - "format": "heatmap", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Uptime hours", - "type": "stat" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 12 - }, - "hiddenSeries": false, - "id": 21, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_websocket_latency_ms", - "interval": "", - "legendFormat": "{{ device }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "WebSockets Latency", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 16 - }, - "hiddenSeries": false, - "id": 4, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "pulsar_func_topic_latency_ms", - "interval": "", - "legendFormat": "{{ device }}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "End-to-End Function Latency", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - } - ], - "refresh": false, - "schemaVersion": 25, - "style": "dark", - "tags": [], - "templating": { - "list": [] - }, - "time": { - "from": "now-1h", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ] - }, - "timezone": "", - "title": "Pulsar / Pulsar Monitor", - "uid": "j55zWy2Mk", - "version": 5 - } \ No newline at end of file diff --git a/helm/kaap-stack/grafana-dashboards/s4k.json b/helm/kaap-stack/grafana-dashboards/s4k.json index f0a9c984..b33cea21 100644 --- a/helm/kaap-stack/grafana-dashboards/s4k.json +++ b/helm/kaap-stack/grafana-dashboards/s4k.json @@ -3,7 +3,10 @@ "list": [ { "builtIn": 1, - "datasource": "-- Grafana --", + "datasource": { + "type": "datasource", + "uid": "grafana" + }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", @@ -13,57 +16,99 @@ ] }, "editable": true, - "gnetId": null, + "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": 38, + "id": 21, "links": [], "panels": [ { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { - "defaults": {}, + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 0 }, - "hiddenSeries": false, "id": 6, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "sum(rate(kop_server_BYTES_IN[5m])) by (tenant)", "interval": "", @@ -71,93 +116,97 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "In bytes rate by tenant", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { - "defaults": {}, + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 0 }, - "hiddenSeries": false, "id": 8, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "sum(rate(kop_server_BYTES_OUT[5m])) by (tenant)", "interval": "", @@ -165,93 +214,97 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Out bytes rate by tenant", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { - "defaults": {}, + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 9, "w": 12, "x": 0, "y": 8 }, - "hiddenSeries": false, "id": 2, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "sum(rate(kop_server_MESSAGE_IN[5m])) by (tenant)", "interval": "", @@ -259,93 +312,97 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "In message rate by tenant", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { - "defaults": {}, + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 8 }, - "hiddenSeries": false, "id": 4, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "sum(rate(kop_server_MESSAGE_OUT[5m])) by (tenant)", "interval": "", @@ -353,93 +410,97 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Out message rate by tenant", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { - "defaults": {}, + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 16 }, - "hiddenSeries": false, "id": 25, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "rate(kop_server_PRODUCE_MESSAGE_CONVERSIONS_TIME_NANOS{success=\"false\", quantile=\"0.5\"}[1m])", "interval": "", @@ -447,6 +508,10 @@ "refId": "A" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "rate(kop_server_PRODUCE_MESSAGE_CONVERSIONS_TIME_NANOS{success=\"false\", quantile=\"0.75\"}[1m])", "hide": false, @@ -455,6 +520,10 @@ "refId": "B" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "rate(kop_server_PRODUCE_MESSAGE_CONVERSIONS_TIME_NANOS{success=\"false\", quantile=\"0.95\"}[1m])", "hide": false, @@ -463,6 +532,10 @@ "refId": "C" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "rate(kop_server_PRODUCE_MESSAGE_CONVERSIONS_TIME_NANOS{success=\"false\", quantile=\"0.99\"}[1m])", "hide": false, @@ -471,93 +544,97 @@ "refId": "D" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Failed produce message conversions time nanos", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { - "defaults": {}, + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 17 }, - "hiddenSeries": false, "id": 24, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "rate(kop_server_PRODUCE_MESSAGE_CONVERSIONS_TIME_NANOS{success=\"true\", quantile=\"0.5\"}[1m])", "interval": "", @@ -565,6 +642,10 @@ "refId": "A" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "rate(kop_server_PRODUCE_MESSAGE_CONVERSIONS_TIME_NANOS{success=\"true\", quantile=\"0.75\"}[1m])", "hide": false, @@ -573,6 +654,10 @@ "refId": "B" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "rate(kop_server_PRODUCE_MESSAGE_CONVERSIONS_TIME_NANOS{success=\"true\", quantile=\"0.95\"}[1m])", "hide": false, @@ -581,6 +666,10 @@ "refId": "C" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "rate(kop_server_PRODUCE_MESSAGE_CONVERSIONS_TIME_NANOS{success=\"true\", quantile=\"0.99\"}[1m])", "hide": false, @@ -589,93 +678,97 @@ "refId": "D" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Produce message conversions time nanos", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { - "defaults": {}, + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 24 }, - "hiddenSeries": false, "id": 26, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "rate(kop_server_CONSUME_MESSAGE_CONVERSIONS_TIME_NANOS{success=\"false\", quantile=\"0.5\"}[1m])", "interval": "", @@ -683,6 +776,10 @@ "refId": "A" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "rate(kop_server_CONSUME_MESSAGE_CONVERSIONS_TIME_NANOS{success=\"false\", quantile=\"0.75\"}[1m])", "hide": false, @@ -691,6 +788,10 @@ "refId": "B" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "rate(kop_server_CONSUME_MESSAGE_CONVERSIONS_TIME_NANOS{success=\"false\", quantile=\"0.95\"}[1m])", "hide": false, @@ -699,6 +800,10 @@ "refId": "C" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "rate(kop_server_CONSUME_MESSAGE_CONVERSIONS_TIME_NANOS{success=\"false\", quantile=\"0.99\"}[1m])", "hide": false, @@ -707,93 +812,97 @@ "refId": "D" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Failed consume message conversions time nanos", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { - "defaults": {}, + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 25 }, - "hiddenSeries": false, "id": 27, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "rate(kop_server_CONSUME_MESSAGE_CONVERSIONS_TIME_NANOS{success=\"true\", quantile=\"0.5\"}[1m])", "interval": "", @@ -801,6 +910,10 @@ "refId": "A" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "rate(kop_server_CONSUME_MESSAGE_CONVERSIONS_TIME_NANOS{success=\"true\", quantile=\"0.75\"}[1m])", "hide": false, @@ -809,6 +922,10 @@ "refId": "B" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "rate(kop_server_CONSUME_MESSAGE_CONVERSIONS_TIME_NANOS{success=\"true\", quantile=\"0.95\"}[1m])", "hide": false, @@ -817,6 +934,10 @@ "refId": "C" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "rate(kop_server_CONSUME_MESSAGE_CONVERSIONS_TIME_NANOS{success=\"true\", quantile=\"0.99\"}[1m])", "hide": false, @@ -825,93 +946,97 @@ "refId": "D" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Consume message conversions time nanos", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { - "defaults": {}, + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 32 }, - "hiddenSeries": false, "id": 22, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "sum(kop_server_REQUEST_LATENCY_count{success=\"false\"}) by (tenant)", "interval": "", @@ -919,93 +1044,35 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Failed request latency", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": {}, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 33 }, - "hiddenSeries": false, "id": 21, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { "alertThreshold": true }, - "percentage": false, "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "sum(kop_server_REQUEST_LATENCY_count{success=\"true\"}) by (tenant)", "interval": "", @@ -1013,93 +1080,35 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Successful request latency", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": {}, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 40 }, - "hiddenSeries": false, "id": 17, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { "alertThreshold": true }, - "percentage": false, "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "sum(kop_server_ACTIVE_CHANNEL_COUNT) by (tenant)", "interval": "", @@ -1107,91 +1116,35 @@ "refId": "A" } ], - "thresholds": [], - "timeRegions": [], "title": "Active channels by tenant", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": {}, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 41 }, - "hiddenSeries": false, "id": 19, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { "alertThreshold": true }, - "percentage": false, "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "sum(kop_server_REQUEST_QUEUE_SIZE) by (tenant)", "interval": "", @@ -1199,91 +1152,35 @@ "refId": "A" } ], - "thresholds": [], - "timeRegions": [], "title": "Request queue size by tenant", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": {}, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 48 }, - "hiddenSeries": false, "id": 15, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { "alertThreshold": true }, - "percentage": false, "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "sum(kop_server_MESSAGE_PUBLISH{quantile=\"0.5\"})", "interval": "", @@ -1291,6 +1188,10 @@ "refId": "A" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "sum(kop_server_MESSAGE_PUBLISH{quantile=\"0.75\"})", "hide": false, @@ -1299,6 +1200,10 @@ "refId": "B" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "sum(kop_server_MESSAGE_PUBLISH{quantile=\"0.95\"})", "hide": false, @@ -1307,6 +1212,10 @@ "refId": "C" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "sum(kop_server_MESSAGE_PUBLISH{quantile=\"0.99\"})", "hide": false, @@ -1315,93 +1224,35 @@ "refId": "D" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Message publish latency quantiles", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": {}, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 49 }, - "hiddenSeries": false, "id": 14, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { "alertThreshold": true }, - "percentage": false, "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "sum(kop_server_MESSAGE_READ{quantile=\"0.5\"})", "interval": "", @@ -1409,6 +1260,10 @@ "refId": "A" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "sum(kop_server_MESSAGE_READ{quantile=\"0.75\"})", "hide": false, @@ -1417,6 +1272,10 @@ "refId": "B" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "sum(kop_server_MESSAGE_READ{quantile=\"0.95\"})", "hide": false, @@ -1425,6 +1284,10 @@ "refId": "C" }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "sum(kop_server_MESSAGE_READ{quantile=\"0.99\"})", "hide": false, @@ -1433,91 +1296,35 @@ "refId": "D" } ], - "thresholds": [], - "timeRegions": [], "title": "Message consume latency quantiles", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": {}, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 56 }, - "hiddenSeries": false, "id": 10, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { "alertThreshold": true }, - "percentage": false, "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "sum(kop_server_REQUEST_QUEUE_SIZE) by (tenant)", "interval": "", @@ -1525,91 +1332,35 @@ "refId": "A" } ], - "thresholds": [], - "timeRegions": [], "title": "Request queue size by tenant", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": {}, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 57 }, - "hiddenSeries": false, "id": 12, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { "alertThreshold": true }, - "percentage": false, "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "sum(kop_server_ACTIVE_CHANNEL_COUNT) by (tenant)", "interval": "", @@ -1617,91 +1368,35 @@ "refId": "A" } ], - "thresholds": [], - "timeRegions": [], "title": "Active channel count by tenant", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": {}, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 64 }, - "hiddenSeries": false, "id": 31, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { "alertThreshold": true }, - "percentage": false, "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "rate(kop_server_KOP_EVENT_LATENCY[1m])", "interval": "", @@ -1709,91 +1404,35 @@ "refId": "A" } ], - "thresholds": [], - "timeRegions": [], "title": "Kop Queue latency", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": {}, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 65 }, - "hiddenSeries": false, "id": 29, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { "alertThreshold": true }, - "percentage": false, "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "kop_server_KOP_EVENT_QUEUE_SIZE", "interval": "", @@ -1801,50 +1440,12 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "KOP event queue size", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" } ], - "schemaVersion": 27, - "style": "dark", + "preload": false, + "schemaVersion": 41, "tags": [], "templating": { "list": [] @@ -1855,7 +1456,7 @@ }, "timepicker": {}, "timezone": "", - "title": "Starlight Kafka", + "title": "Pulsar / Starlight for Kafka", "uid": "7hJIApl7z", - "version": 11 -} \ No newline at end of file + "version": 1 +} diff --git a/helm/kaap-stack/grafana-dashboards/s4r.json b/helm/kaap-stack/grafana-dashboards/s4r.json index 995cecde..3d4ff4be 100644 --- a/helm/kaap-stack/grafana-dashboards/s4r.json +++ b/helm/kaap-stack/grafana-dashboards/s4r.json @@ -3,7 +3,10 @@ "list": [ { "builtIn": 1, - "datasource": "-- Grafana --", + "datasource": { + "type": "datasource", + "uid": "grafana" + }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", @@ -13,13 +16,16 @@ ] }, "editable": true, - "gnetId": null, + "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": 38, + "id": 22, "links": [], "panels": [ { - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "color": { @@ -30,8 +36,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -54,6 +59,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "auto", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -61,12 +67,18 @@ "fields": "", "values": false }, + "showPercentChange": false, "text": {}, - "textMode": "auto" + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "7.5.5", + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "pulsar_proxy_rabbitmq_active_connections", "interval": "", @@ -74,57 +86,97 @@ "refId": "A" } ], - "timeFrom": null, - "timeShift": null, "title": "Active Connections", "type": "stat" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { - "defaults": {}, + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 0 }, - "hiddenSeries": false, "id": 6, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "rate(pulsar_proxy_rabbitmq_new_connections[60s])", "interval": "", @@ -132,91 +184,97 @@ "refId": "A" } ], - "thresholds": [], - "timeRegions": [], "title": "New connection rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { - "defaults": {}, + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 9, "w": 12, "x": 0, "y": 8 }, - "hiddenSeries": false, "id": 2, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "rate(pulsar_proxy_rabbitmq_in_messages_total[60s])", "interval": "", @@ -224,93 +282,97 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "In message total", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { - "defaults": {}, + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 9, "w": 12, "x": 12, "y": 8 }, - "hiddenSeries": false, "id": 9, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "rate(pulsar_proxy_rabbitmq_in_messages_total[60s])", "interval": "", @@ -318,93 +380,97 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Out messages total", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { - "defaults": {}, + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 9, "w": 12, "x": 0, "y": 17 }, - "hiddenSeries": false, "id": 8, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "rate(pulsar_proxy_rabbitmq_in_bytes[60s])", "interval": "", @@ -412,93 +478,97 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "In bytes", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { - "defaults": {}, + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 9, "w": 12, "x": 12, "y": 17 }, - "hiddenSeries": false, "id": 7, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.5.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "rate(pulsar_proxy_rabbitmq_out_bytes[60s])", "interval": "", @@ -506,50 +576,12 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Out bytes", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" } ], - "schemaVersion": 27, - "style": "dark", + "preload": false, + "schemaVersion": 41, "tags": [ "RabbitMQ" ], @@ -562,7 +594,7 @@ }, "timepicker": {}, "timezone": "", - "title": "Starlight RabbitMQ", + "title": "Pulsar / Starlight for RabbitMQ", "uid": "9aDp0T_nk", - "version": 4 + "version": 1 } diff --git a/helm/kaap-stack/grafana-dashboards/sockets.json b/helm/kaap-stack/grafana-dashboards/sockets.json index 31bb1b16..c581d8a7 100644 --- a/helm/kaap-stack/grafana-dashboards/sockets.json +++ b/helm/kaap-stack/grafana-dashboards/sockets.json @@ -3,7 +3,10 @@ "list": [ { "builtIn": 1, - "datasource": "-- Grafana --", + "datasource": { + "type": "datasource", + "uid": "grafana" + }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", @@ -13,60 +16,100 @@ ] }, "editable": true, - "gnetId": null, + "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": 13, + "id": 23, "links": [], "panels": [ { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 9, "w": 12, "x": 0, "y": 0 }, - "hiddenSeries": false, "id": 2, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "sum(pulsar_producers_count{job=~\"broker\"}) by (kubernetes_pod_name)", "interval": "", @@ -74,96 +117,98 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Producers", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 9, "w": 12, "x": 12, "y": 0 }, - "hiddenSeries": false, "id": 7, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "sum(pulsar_consumers_count{job=~\"broker\"}) by (kubernetes_pod_name)", "interval": "", @@ -171,95 +216,97 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Consumers", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 9, "w": 12, "x": 0, "y": 9 }, - "hiddenSeries": false, "id": 3, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "container_sockets{container=~\".*proxy\",container!~\"kube-proxy.*\"}", "interval": "", @@ -267,95 +314,97 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Proxy Sockets", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 9, "w": 12, "x": 12, "y": 9 }, - "hiddenSeries": false, "id": 6, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "container_sockets{container=~\".*broker\"}", "interval": "", @@ -363,95 +412,97 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Broker Sockets", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 9, "w": 12, "x": 0, "y": 18 }, - "hiddenSeries": false, "id": 4, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "container_sockets{container=~\".*bookkeeper.*\"}", "interval": "", @@ -459,95 +510,97 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Bookkeeper Sockets", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 9, "w": 12, "x": 12, "y": 18 }, - "hiddenSeries": false, "id": 5, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "exemplar": true, "expr": "container_sockets{container=~\".*zookeeper.*\"}", "interval": "", @@ -555,51 +608,13 @@ "refId": "A" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "ZooKeeper Sockets", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" } ], + "preload": false, "refresh": "10s", - "schemaVersion": 26, - "style": "dark", + "schemaVersion": 41, "tags": [], "templating": { "list": [] @@ -610,7 +625,7 @@ }, "timepicker": {}, "timezone": "", - "title": "Sockets by Component", + "title": "Pulsar / Sockets by Component", "uid": "BPLyrjQ7k", "version": 1 } diff --git a/helm/kaap-stack/grafana-dashboards/tenant.json b/helm/kaap-stack/grafana-dashboards/tenant.json new file mode 100644 index 00000000..e49f3d2e --- /dev/null +++ b/helm/kaap-stack/grafana-dashboards/tenant.json @@ -0,0 +1,1662 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "datasource", + "uid": "grafana" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "target": { + "limit": 100, + "matchAny": false, + "tags": [], + "type": "dashboard" + }, + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 24, + "links": [], + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "msg/s", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 16, + "options": { + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_rate_in{cluster=~\"$cluster\", namespace=~\"$tenant/.*\"}) by (cluster)", + "interval": "", + "intervalFactor": 2, + "legendFormat": "{{cluster}} - {{namespace}}", + "metric": "pulsar_rate_in", + "refId": "A", + "step": 10 + } + ], + "title": "Local publish rate", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "msg / s", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 2, + "options": { + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_rate_out{cluster=~\"$cluster\", namespace=~\"$tenant/.*\"}) by (cluster)", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{cluster}} - {{namespace}}", + "metric": "pulsar_rate_out", + "refId": "A", + "step": 10 + } + ], + "title": "Local delivery rate", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "Bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 7 + }, + "id": 5, + "options": { + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_throughput_in{cluster=~\"$cluster\", namespace=~\"$tenant/.*\"}) by (cluster)", + "format": "time_series", + "interval": "", + "intervalFactor": 2, + "legendFormat": "{{cluster}} - {{namespace}}", + "metric": "pulsar_throughput_in", + "refId": "A", + "step": 10 + } + ], + "title": "Local publish throughput (bytes/s)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "Bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 7 + }, + "id": 8, + "options": { + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_throughput_out{cluster=~\"$cluster\", namespace=~\"$tenant/.*\"}) by (cluster)", + "format": "time_series", + "interval": "", + "intervalFactor": 2, + "legendFormat": "{{cluster}} - {{namespace}}", + "metric": "pulsar_throughput_out", + "refId": "A", + "step": 10 + } + ], + "title": "Local delivery throughput (bytes/s)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "count", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 14 + }, + "id": 7, + "options": { + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_topics_count{cluster=~\"$cluster\", namespace=~\"$tenant/.*\"})", + "format": "time_series", + "interval": "", + "intervalFactor": 2, + "legendFormat": "topics", + "metric": "pulsar_topics_count", + "refId": "D", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_producers_count{cluster=~\"$cluster\", namespace=~\"$tenant/.*\"})", + "format": "time_series", + "interval": "", + "intervalFactor": 2, + "legendFormat": "producers", + "metric": "pulsar_producers_count", + "refId": "A", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_subscriptions_count{cluster=~\"$cluster\", namespace=~\"$tenant/.*\"})", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "subscriptions", + "metric": "pulsar_subscriptions_count", + "refId": "B", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_consumers_count{cluster=~\"$cluster\", namespace=~\"$tenant/.*\"})", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "consumers", + "metric": "pulsar_consumers_count", + "refId": "C", + "step": 10 + } + ], + "title": "Topics - Producers - Subscriptions - Consumers", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "Messages", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 14 + }, + "id": 4, + "options": { + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_msg_backlog{cluster=~\"$cluster\", namespace=~\"$tenant/.*\"}) by (cluster)", + "format": "time_series", + "interval": "", + "intervalFactor": 2, + "legendFormat": "{{cluster}} - {{namespace}}", + "metric": "pulsar_msg_backlog", + "refId": "A", + "step": 10 + } + ], + "title": "Local backlog", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "msg / s", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 50, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 0, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "0 - 0.5 ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#2F575E", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "0.5 - 1 ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#3F6833", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "1 - 5 ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#629E51", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "10 - 20 ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#E5A8E2", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "100 - 200 ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#EF843C", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "20 - 50 ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#65C5DB", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "200 ms - 1 s" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#EA6460", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "5 - 10 ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#1F78C1", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "50 - 100 ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#E5AC0E", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "< +Inf ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#BF1B00", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "< 0.5 ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#508642", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "> 1 s" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#BF1B00", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 21 + }, + "id": 3, + "options": { + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_storage_write_latency_le_0_5{cluster=~\"$cluster\", namespace=~\"$tenant/.*\"}) / 60.0", + "format": "time_series", + "interval": "", + "intervalFactor": 2, + "legendFormat": "0 - 0.5 ms", + "metric": "pulsar_add_entry_latency_le_0_5", + "refId": "A", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_storage_write_latency_le_1{cluster=~\"$cluster\", namespace=~\"$tenant/.*\"}) / 60.0", + "format": "time_series", + "interval": "", + "intervalFactor": 2, + "legendFormat": "0.5 - 1 ms", + "metric": "pulsar_add_entry_latency_le_1", + "refId": "B", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_storage_write_latency_le_5{cluster=~\"$cluster\", namespace=~\"$tenant/.*\"}) / 60.0", + "format": "time_series", + "interval": "", + "intervalFactor": 2, + "legendFormat": "1 - 5 ms", + "metric": "pulsar_add_entry_latency_le_5", + "refId": "C", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_storage_write_latency_le_10{cluster=~\"$cluster\", namespace=~\"$namespace\"}) / 60.0", + "format": "time_series", + "interval": "", + "intervalFactor": 2, + "legendFormat": "5 - 10 ms", + "metric": "pulsar_add_entry_latency_le_10", + "refId": "D", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_storage_write_latency_le_20{cluster=~\"$cluster\", namespace=~\"$namespace\"}) / 60.0", + "format": "time_series", + "interval": "", + "intervalFactor": 2, + "legendFormat": "10 - 20 ms", + "metric": "pulsar_add_entry_latency_le_20", + "refId": "E", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_storage_write_latency_le_50{cluster=~\"$cluster\", namespace=~\"$namespace\"}) / 60.0", + "format": "time_series", + "interval": "", + "intervalFactor": 2, + "legendFormat": "20 - 50 ms", + "metric": "pulsar_add_entry_latency_le_50", + "refId": "F", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_storage_write_latency_le_100{cluster=~\"$cluster\", namespace=~\"$namespace\"}) / 60.0", + "format": "time_series", + "hide": false, + "interval": "", + "intervalFactor": 2, + "legendFormat": "50 - 100 ms", + "metric": "pulsar_add_entry_latency_le_100", + "refId": "G", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_storage_write_latency_le_200{cluster=~\"$cluster\", namespace=~\"$namespace\"}) / 60.0", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "100 - 200 ms", + "metric": "pulsar_add_entry_latency_le_200", + "refId": "H", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_storage_write_latency_le_1000{cluster=~\"$cluster\", namespace=~\"$namespace\"}) / 60.0", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "200 ms - 1 s", + "metric": "pulsar_add_entry_latency_le_1000", + "refId": "I", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_storage_write_latency_overflow{cluster=~\"$cluster\", namespace=~\"$namespace\"}) / 60.0", + "format": "time_series", + "interval": "", + "intervalFactor": 2, + "legendFormat": "> 1 s", + "metric": "pulsar_add_entry_latency_overflow", + "refId": "J", + "step": 10 + } + ], + "title": "Storage Write Latency", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 21 + }, + "id": 9, + "options": { + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "editorMode": "code", + "expr": "sum(pulsar_storage_size{cluster=~\"$cluster\", namespace=~\"$tenant/.*\"}) by (cluster)", + "format": "time_series", + "interval": "", + "intervalFactor": 2, + "legendFormat": "{{cluster}}", + "metric": "pulsar_storage_size", + "range": true, + "refId": "A", + "step": 10 + } + ], + "title": "Storage Size", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "msg / s", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 60, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 0, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 28 + }, + "id": 12, + "options": { + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_entry_size_le_128{cluster=~\"$cluster\", namespace=~\"$tenant/.*\"}) / 60.0", + "interval": "", + "intervalFactor": 2, + "legendFormat": "< 128 bytes", + "metric": "pulsar_entry_size_le_128", + "refId": "A", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_entry_size_le_512{cluster=~\"$cluster\", namespace=~\"$tenant/.*\"}) / 60.0", + "interval": "", + "intervalFactor": 2, + "legendFormat": "< 512 bytes", + "metric": "pulsar_entry_size_le_512", + "refId": "B", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_entry_size_le_1_kb{cluster=~\"$cluster\", namespace=~\"$tenant/.*\"}) / 60.0", + "interval": "", + "intervalFactor": 2, + "legendFormat": "< 1 KB", + "metric": "pulsar_entry_size_le_1_kb", + "refId": "C", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_entry_size_le_2_kb{cluster=~\"$cluster\", namespace=~\"$tenant/.*\"}) / 60.0", + "interval": "", + "intervalFactor": 2, + "legendFormat": "< 2 KB", + "metric": "pulsar_entry_size_le_2_kb", + "refId": "D", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_entry_size_le_4_kb{cluster=~\"$cluster\", namespace=~\"$tenant/.*\"}) / 60.0", + "interval": "", + "intervalFactor": 2, + "legendFormat": "< 4 KB", + "metric": "pulsar_entry_size_le_4_kb", + "refId": "E", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_entry_size_le_16_kb{cluster=~\"$cluster\", namespace=~\"$tenant/.*\"}) / 60.0", + "interval": "", + "intervalFactor": 2, + "legendFormat": "< 16 KB", + "metric": "pulsar_entry_size_le_16_kb", + "refId": "F", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_entry_size_le_100_kb{cluster=~\"$cluster\", namespace=~\"$tenant/.*\"}) / 60.0", + "interval": "", + "intervalFactor": 2, + "legendFormat": "< 100 KB", + "metric": "pulsar_entry_size_le_100_kb", + "refId": "G", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_entry_size_le_1_mb{cluster=~\"$cluster\", namespace=~\"$tenant/.*\"}) / 60.0", + "interval": "", + "intervalFactor": 2, + "legendFormat": "< 1 MB", + "metric": "pulsar_entry_size_le_1_mb", + "refId": "H", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_entry_size_overflow{cluster=~\"$cluster\", namespace=~\"$tenant/.*\"}) / 60.0", + "interval": "", + "intervalFactor": 2, + "legendFormat": "> 1 MB", + "metric": "pulsar_entry_size_le_overflow", + "refId": "I", + "step": 10 + } + ], + "title": "Storage entry size", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "msg / s", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 28 + }, + "id": 11, + "options": { + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_replication_rate_out{cluster=~\"$cluster\", namespace=~\"$tenant/.*\"})", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{cluster}} → {{remote_cluster}}", + "metric": "pulsar_rate", + "refId": "A", + "step": 10 + } + ], + "title": "Outgoing replication rate | $cluster → any", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 35 + }, + "id": 10, + "options": { + "alertThreshold": true + }, + "pluginVersion": "8.5.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_replication_rate_in{cluster=~\"$cluster\", namespace=~\"$tenant/.*\", remote_cluster!=\"local\"}) by (cluster, remote_cluster)", + "format": "time_series", + "interval": "", + "intervalFactor": 2, + "legendFormat": "{{remote_cluster}} → {{cluster}}", + "metric": "pulsar_rate_in", + "refId": "A", + "step": 10 + } + ], + "title": "Incoming replication rate | any → $cluster", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 35 + }, + "id": 15, + "options": { + "alertThreshold": true + }, + "pluginVersion": "8.5.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(pulsar_replication_backlog{cluster=~\"$cluster\", namespace=~\"$tenant/.*\"}) by (cluster, remote_cluster)", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{cluster}} → {{remote_cluster}}", + "metric": "pulsar_replication_backlog", + "refId": "A", + "step": 10 + } + ], + "title": "Replication backlog | $cluster → any", + "type": "timeseries" + } + ], + "preload": false, + "refresh": "1m", + "schemaVersion": 41, + "tags": [], + "templating": { + "list": [ + { + "current": { + "text": "pulsar", + "value": "pulsar" + }, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "definition": "pulsar_producers_count{cluster=~\".+\"}", + "includeAll": false, + "label": "Cluster", + "name": "cluster", + "options": [], + "query": { + "query": "pulsar_producers_count{cluster=~\".+\"}", + "refId": "Prometheus-cluster-Variable-Query" + }, + "refresh": 1, + "regex": "/.*[^_]cluster=\\\"([^\\\"]+)\\\".*/", + "sort": 1, + "type": "query" + }, + { + "current": { + "text": [ + "pulsar/pulsar" + ], + "value": [ + "pulsar/pulsar" + ] + }, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "definition": "pulsar_producers_count{cluster=\"$cluster\"}", + "includeAll": false, + "label": "Tenant", + "multi": true, + "name": "tenant", + "options": [], + "query": { + "query": "pulsar_producers_count{cluster=\"$cluster\"}", + "refId": "Prometheus-namespace-Variable-Query" + }, + "refresh": 2, + "regex": "/.*,namespace=\\\"([^\\\"]+)/.*\\\".*/", + "sort": 1, + "type": "query" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ] + }, + "timezone": "browser", + "title": "Pulsar / Tenant", + "uid": "69344d62-a2d7-47f8-b71b-d9da7a82df5c", + "version": 1 +} diff --git a/helm/kaap-stack/grafana-dashboards/topic.json b/helm/kaap-stack/grafana-dashboards/topic.json index 53e92288..90cc5a6c 100644 --- a/helm/kaap-stack/grafana-dashboards/topic.json +++ b/helm/kaap-stack/grafana-dashboards/topic.json @@ -3,7 +3,10 @@ "list": [ { "builtIn": 1, - "datasource": "-- Grafana --", + "datasource": { + "type": "datasource", + "uid": "grafana" + }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", @@ -13,62 +16,100 @@ ] }, "editable": true, - "gnetId": null, + "fiscalYearStartMonth": 0, "graphTooltip": 0, - "iteration": 1631132284400, + "id": 25, "links": [], "panels": [ { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {}, - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "msg/s", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 0 }, - "hiddenSeries": false, "id": 16, - "legend": { - "avg": false, - "current": false, - "hideEmpty": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "pulsar_rate_in{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}", "format": "time_series", "hide": false, @@ -80,99 +121,101 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Local publish rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "msg/s", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {}, - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "msg / s", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 0 }, - "hiddenSeries": false, "id": 2, - "legend": { - "alignAsTable": false, - "avg": false, - "current": true, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [ + "lastNotNull" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "pulsar_subscription_msg_rate_out{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}", "format": "time_series", "interval": "", @@ -183,97 +226,98 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Local delivery rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "msg / s", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {}, - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "Bps" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 7 }, - "hiddenSeries": false, "id": 5, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "pulsar_throughput_in{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}", "format": "time_series", "interval": "", @@ -284,102 +328,102 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Local publish throughput (bytes/s)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:448", - "format": "Bps", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:449", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { - "custom": {}, - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "Bps" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 7 }, - "hiddenSeries": false, "id": 8, - "legend": { - "alignAsTable": false, - "avg": false, - "current": true, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [ + "lastNotNull" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "pulsar_subscription_msg_throughput_out{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}", "format": "time_series", "interval": "", @@ -390,100 +434,100 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Local delivery throughput (bytes/s)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "Bps", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 0, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {}, - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "count", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 14 }, - "hiddenSeries": false, "id": 7, - "legend": { - "alignAsTable": false, - "avg": false, - "current": true, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [ + "lastNotNull" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_producers_count{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"})", "format": "time_series", "interval": "", @@ -494,6 +538,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_subscriptions_count{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"})", "format": "time_series", "interval": "", @@ -504,6 +552,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_consumers_count{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"})", "format": "time_series", "interval": "", @@ -514,101 +566,101 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Topics - Producers - Subscriptions - Consumers", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [ - "current" - ] - }, - "yaxes": [ - { - "format": "short", - "label": "count", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {}, - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "Messages", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 14 }, - "hiddenSeries": false, "id": 4, - "legend": { - "alignAsTable": false, - "avg": false, - "current": true, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [ + "lastNotNull" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "pulsar_subscription_back_log{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}", "format": "time_series", "interval": "", @@ -619,115 +671,279 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Local backlog", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "Messages", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": { - "0 - 0.5 ms": "#2F575E", - "0.5 - 1 ms": "#3F6833", - "1 - 5 ms": "#629E51", - "10 - 20 ms": "#E5A8E2", - "100 - 200 ms": "#EF843C", - "20 - 50 ms": "#65C5DB", - "200 ms - 1 s": "#EA6460", - "5 - 10 ms": "#1F78C1", - "50 - 100 ms": "#E5AC0E", - "< +Inf ms": "#BF1B00", - "< 0.5 ms": "#508642", - "> 1 s": "#BF1B00" - }, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {}, - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "msg / s", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 50, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 0, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "0 - 0.5 ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#2F575E", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "0.5 - 1 ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#3F6833", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "1 - 5 ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#629E51", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "10 - 20 ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#E5A8E2", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "100 - 200 ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#EF843C", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "20 - 50 ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#65C5DB", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "200 ms - 1 s" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#EA6460", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "5 - 10 ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#1F78C1", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "50 - 100 ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#E5AC0E", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "< +Inf ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#BF1B00", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "< 0.5 ms" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#508642", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "> 1 s" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#BF1B00", + "mode": "fixed" + } + } + ] + } + ] }, - "fill": 5, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 21 }, - "hiddenSeries": false, "id": 3, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 0, - "links": [], - "nullPointMode": "null", "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [ - { - "alias": "< 100 ms", - "yaxis": 1 + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" } - ], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + }, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_le_0_5{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}) / 60.0", "format": "time_series", "interval": "", @@ -738,6 +954,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_le_1{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}) / 60.0", "format": "time_series", "interval": "", @@ -748,6 +968,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_le_5{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}) / 60.0", "format": "time_series", "interval": "", @@ -758,6 +982,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_le_10{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}) / 60.0", "format": "time_series", "interval": "", @@ -768,6 +996,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_le_20{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}) / 60.0", "format": "time_series", "interval": "", @@ -778,6 +1010,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_le_50{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}) / 60.0", "format": "time_series", "interval": "", @@ -788,6 +1024,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_le_100{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}) / 60.0", "format": "time_series", "hide": false, @@ -799,6 +1039,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_le_200{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}) / 60.0", "format": "time_series", "interval": "", @@ -809,6 +1053,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_le_1000{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}) / 60.0", "format": "time_series", "interval": "", @@ -819,6 +1067,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_write_latency_overflow{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}) / 60.0", "format": "time_series", "interval": "", @@ -829,99 +1081,101 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Storage Write Latency", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "msg / s", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {}, - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "Messages", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 21 }, - "hiddenSeries": false, "id": 17, - "legend": { - "alignAsTable": false, - "avg": false, - "current": true, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [ + "lastNotNull" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "pulsar_subscription_unacked_messages{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"} ", "format": "time_series", "interval": "", @@ -932,102 +1186,98 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Unacked Messages", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "Messages", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {}, - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "msg / s", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 60, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 0, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 6, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 28 }, - "hiddenSeries": false, "id": 12, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 0, - "links": [], - "nullPointMode": "null", "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [ - { - "alias": "< 2 KB", - "yaxis": 1 + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" } - ], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + }, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_entry_size_le_128{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}) / 60.0", "format": "time_series", "interval": "", @@ -1038,6 +1288,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_entry_size_le_512{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}) / 60.0", "format": "time_series", "interval": "", @@ -1048,6 +1302,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_entry_size_le_1_kb{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}) / 60.0", "format": "time_series", "interval": "", @@ -1058,6 +1316,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_entry_size_le_2_kb{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}) / 60.0", "format": "time_series", "interval": "", @@ -1068,6 +1330,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_entry_size_le_4_kb{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}) / 60.0", "format": "time_series", "interval": "", @@ -1078,6 +1344,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_entry_size_le_16_kb{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}) / 60.0", "format": "time_series", "interval": "", @@ -1088,6 +1358,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_entry_size_le_100_kb{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}) / 60.0", "format": "time_series", "interval": "", @@ -1098,6 +1372,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_entry_size_le_1_mb{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}) / 60.0", "format": "time_series", "interval": "", @@ -1108,6 +1386,10 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_entry_size_overflow{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}) / 60.0", "format": "time_series", "interval": "", @@ -1118,97 +1400,98 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Storage entry size", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "msg / s", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { - "custom": {}, - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 28 }, - "hiddenSeries": false, "id": 9, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { - "alertThreshold": true + "alertThreshold": true, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } }, - "percentage": false, - "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "11.6.1", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "sum(pulsar_storage_size{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"})", "format": "time_series", "interval": "", @@ -1219,53 +1502,14 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Storage Size", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {}, @@ -1273,43 +1517,23 @@ }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 35 }, - "hiddenSeries": false, "id": 18, - "legend": { - "avg": false, - "current": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "alertThreshold": true }, - "percentage": false, "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "pulsar_subscription_msg_rate_redeliver{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}", "format": "time_series", "interval": "", @@ -1320,53 +1544,14 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Subscription Redeliver Rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "msgs/s", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "fieldConfig": { "defaults": { "custom": {}, @@ -1374,43 +1559,23 @@ }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 35 }, - "hiddenSeries": false, "id": 19, - "legend": { - "avg": false, - "current": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "alertThreshold": true }, - "percentage": false, "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "pulsar_subscription_msg_rate_redeliver{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}", "format": "time_series", "interval": "", @@ -1421,53 +1586,14 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Consumer Redeliver Rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "msgs/s", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { @@ -1476,43 +1602,23 @@ }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 42 }, - "hiddenSeries": false, "id": 23, - "legend": { - "avg": false, - "current": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "alertThreshold": true }, - "percentage": false, "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "pulsar_replication_rate_in{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}", "format": "time_series", "interval": "", @@ -1523,56 +1629,21 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "refId": "B" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Replication Rate In", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "msgs/s", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { @@ -1581,43 +1652,23 @@ }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 42 }, - "hiddenSeries": false, "id": 22, - "legend": { - "avg": false, - "current": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "alertThreshold": true }, - "percentage": false, "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "pulsar_replication_rate_out{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}", "format": "time_series", "interval": "", @@ -1628,56 +1679,21 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "refId": "B" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Replication Rate Out", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "msgs/s", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { @@ -1686,43 +1702,23 @@ }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 49 }, - "hiddenSeries": false, "id": 20, - "legend": { - "avg": false, - "current": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "alertThreshold": true }, - "percentage": false, "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "pulsar_replication_throughput_in{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}", "format": "time_series", "interval": "", @@ -1733,61 +1729,24 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "", "interval": "", "legendFormat": "", "refId": "B" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Replication Throughput In (bytes/s)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:382", - "format": "binBps", - "label": "bytes/s", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:383", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { @@ -1796,43 +1755,23 @@ }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 49 }, - "hiddenSeries": false, "id": 24, - "legend": { - "avg": false, - "current": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "alertThreshold": true }, - "percentage": false, "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "pulsar_replication_throughput_out{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}", "format": "time_series", "interval": "", @@ -1843,58 +1782,21 @@ "step": 10 }, { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "refId": "B" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Replication Rate Out (bytes/s)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:594", - "format": "binBps", - "label": "bytes/s", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "$$hashKey": "object:595", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "description": "", "fieldConfig": { "defaults": { @@ -1903,43 +1805,23 @@ }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 56 }, - "hiddenSeries": false, "id": 21, - "legend": { - "avg": false, - "current": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", "options": { "alertThreshold": true }, - "percentage": false, "pluginVersion": "7.3.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, "expr": "pulsar_replication_backlog{cluster=~\"$cluster\", namespace=~\"$tenant.+\", namespace=~\"$namespace\", topic=~\"$topic\"}", "format": "time_series", "interval": "", @@ -1950,163 +1832,85 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, "title": "Replication Backlog", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "msgs/s", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" } ], + "preload": false, "refresh": "30s", - "schemaVersion": 26, - "style": "dark", + "schemaVersion": 41, "tags": [ "pulsar" ], "templating": { "list": [ { - "allValue": null, "current": { - "selected": false, - "text": "koddi-prod-euwest3-aws", - "value": "koddi-prod-euwest3-aws" + "text": "pulsar", + "value": "pulsar" }, "datasource": "Prometheus", "definition": "pulsar_producers_count", - "error": null, - "hide": 0, "includeAll": false, "label": "Cluster", - "multi": false, "name": "cluster", "options": [], "query": "pulsar_producers_count", "refresh": 1, "regex": "/.*[^_]cluster=\\\"([^\\\"]+)\\\".*/", - "skipUrlSync": false, "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false + "type": "query" }, { - "allValue": null, "current": { - "selected": false, - "text": "replicated-tenant", - "value": "replicated-tenant" + "text": "pulsar", + "value": "pulsar" }, "datasource": "Prometheus", "definition": "pulsar_producers_count{cluster=\"$cluster\"}", - "error": null, - "hide": 0, "includeAll": false, "label": "Tenant", - "multi": false, "name": "tenant", "options": [], "query": "pulsar_producers_count{cluster=\"$cluster\"}", "refresh": 2, "regex": "/[\\s,{]namespace=\\\"([^\\/]+)\\/.*/", - "skipUrlSync": false, "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false + "type": "query" }, { - "allValue": null, "current": { - "selected": false, - "text": "replicated-tenant/gns", - "value": "replicated-tenant/gns" + "text": "pulsar/pulsar/pulsar-broker-0.pulsar-broker.default.svc.cluster.local:8080", + "value": "pulsar/pulsar/pulsar-broker-0.pulsar-broker.default.svc.cluster.local:8080" }, "datasource": "Prometheus", "definition": "pulsar_producers_count{namespace=~\"$tenant.+\"}", - "error": null, - "hide": 0, "includeAll": false, "label": "Namespace", - "multi": false, "name": "namespace", "options": [], "query": "pulsar_producers_count{namespace=~\"$tenant.+\"}", "refresh": 2, "regex": "/[\\s,{]namespace=\\\"([^\\\"]+)\\\".*/", - "skipUrlSync": false, "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false + "type": "query" }, { - "allValue": null, "current": { - "selected": false, - "text": "persistent://replicated-tenant/gns/koddi.bid_automation.automatedbidrequests", - "value": "persistent://replicated-tenant/gns/koddi.bid_automation.automatedbidrequests" + "text": "persistent://pulsar/pulsar/pulsar-broker-0.pulsar-broker.default.svc.cluster.local:8080/healthcheck", + "value": "persistent://pulsar/pulsar/pulsar-broker-0.pulsar-broker.default.svc.cluster.local:8080/healthcheck" }, "datasource": "Prometheus", "definition": "pulsar_producers_count{namespace=\"$namespace\"}", - "error": null, - "hide": 0, "includeAll": false, "label": "Topic", - "multi": false, "name": "topic", "options": [], "query": "pulsar_producers_count{namespace=\"$namespace\"}", "refresh": 2, "regex": "/.*topic=\\\"([^\\\"]+)\\\".*/", - "skipUrlSync": false, "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false + "type": "query" } ] }, @@ -2125,21 +1929,10 @@ "1h", "2h", "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" ] }, "timezone": "browser", "title": "Pulsar / Topic", "uid": "3xEtii5ml", - "version": 2 + "version": 1 } diff --git a/helm/kaap-stack/grafana-dashboards/zookeeper.json b/helm/kaap-stack/grafana-dashboards/zookeeper.json index bb2946df..45492d0a 100644 --- a/helm/kaap-stack/grafana-dashboards/zookeeper.json +++ b/helm/kaap-stack/grafana-dashboards/zookeeper.json @@ -3,1540 +3,4454 @@ "list": [ { "builtIn": 1, - "datasource": "Prometheus", + "datasource": { + "type": "datasource", + "uid": "grafana" + }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", - "limit": 100, "name": "Annotations & Alerts", - "showIn": 0, "type": "dashboard" } ] }, - "description": "Metrics about ZooKeeper Service", + "description": "ZooKeeper Dashboard for Prometheus metrics scraper", "editable": true, - "gnetId": null, + "fiscalYearStartMonth": 0, "graphTooltip": 0, - "iteration": 1601335452155, + "id": 26, "links": [], "panels": [ { - "datasource": null, + "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 0 }, - "id": 15, - "title": "Row title", + "id": 14, + "panels": [], + "title": "Overall", "type": "row" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": "Prometheus", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, "gridPos": { - "h": 6, - "w": 4, + "h": 8, + "w": 12, "x": 0, "y": 1 }, - "id": 17, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 + "id": 224, + "options": { + "legend": { + "calcs": [ + "lastNotNull", + "max", + "min" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": false }, - { - "name": "range to text", - "value": 2 + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false - }, - "tableColumn": "znode count", + }, + "pluginVersion": "11.6.1", "targets": [ { - "expr": "sum(zookeeper_server_znode_count{job=~\"$job\", instance=~\"$instance\"})", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "znode_count{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", "format": "time_series", - "intervalFactor": 1, - "legendFormat": "znode count", + "instant": false, + "interval": "", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} znode_count", "refId": "A" - } - ], - "thresholds": "", - "title": "znode", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ + }, { - "op": "=", - "text": "N/A", - "value": "null" + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "ephemerals_count{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "instant": false, + "interval": "", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} ephemerals", + "refId": "B" } ], - "valueName": "avg" + "title": "znode_count", + "type": "timeseries" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": "Prometheus", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "ops" }, "overrides": [] }, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, "gridPos": { - "h": 6, - "w": 5, - "x": 4, + "h": 8, + "w": 12, + "x": 12, "y": 1 }, - "id": 19, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 + "id": 4, + "options": { + "legend": { + "calcs": [ + "lastNotNull", + "max", + "min" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": false }, - { - "name": "range to text", - "value": 2 + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false - }, - "tableColumn": "", + }, + "pluginVersion": "11.6.1", "targets": [ { - "expr": "sum(zookeeper_server_watches_count{job=~\"$job\", instance=~\"$instance\"})", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(znode_count{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", "format": "time_series", - "intervalFactor": 1, + "instant": false, + "interval": "", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} znode_count_rate", "refId": "A" - } - ], - "thresholds": "", - "title": "watches", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ + }, { - "op": "=", - "text": "N/A", - "value": "null" + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(ephemerals_count{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "instant": false, + "interval": "", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} ephemerals_rate", + "refId": "B" } ], - "valueName": "avg" + "title": "znode_count_rate", + "type": "timeseries" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": "Prometheus", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "thresholds" + }, + "displayName": "", + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "index": 0 + }, + { + "color": "red", + "index": 1, + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, "gridPos": { - "h": 6, - "w": 5, - "x": 9, - "y": 1 + "h": 8, + "w": 12, + "x": 0, + "y": 9 }, - "id": 20, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 + "id": 48, + "options": { + "displayMode": "lcd", + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false - }, - "tableColumn": "", + "maxVizHeight": 300, + "minVizHeight": 16, + "minVizWidth": 8, + "namePlacement": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "last" + ], + "fields": "", + "values": false + }, + "showUnfilled": true, + "sizing": "auto", + "valueMode": "color" + }, + "pluginVersion": "11.6.1", "targets": [ { - "expr": "sum(zookeeper_server_ephemerals_count{job=~\"$job\", instance=~\"$instance\"})", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "global_sessions{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", "format": "time_series", - "intervalFactor": 1, + "instant": false, + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}}", "refId": "A" } ], - "thresholds": "", - "title": "ephemerals", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "avg" + "title": "global_sessions", + "type": "bargauge" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": "Prometheus", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "index": 0 + }, + { + "color": "red", + "index": 1, + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "format": "decbytes", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, "gridPos": { - "h": 6, - "w": 5, - "x": 14, - "y": 1 + "h": 8, + "w": 12, + "x": 12, + "y": 9 }, - "id": 21, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 + "id": 52, + "options": { + "displayMode": "lcd", + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false - }, - "tableColumn": "", + "maxVizHeight": 300, + "minVizHeight": 16, + "minVizWidth": 8, + "namePlacement": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "last" + ], + "fields": "", + "values": false + }, + "showUnfilled": true, + "sizing": "auto", + "valueMode": "color" + }, + "pluginVersion": "11.6.1", "targets": [ { - "expr": "sum(zookeeper_server_data_size_bytes{job=~\"$job\", instance=~\"$instance\"})", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "local_sessions{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", "format": "time_series", - "intervalFactor": 1, + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}}", "refId": "A" } ], - "thresholds": "", - "title": "data size", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "avg" + "title": "local_sessions ", + "type": "bargauge" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": "Prometheus", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" }, "overrides": [] }, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, "gridPos": { - "h": 6, - "w": 5, - "x": 19, - "y": 1 + "h": 8, + "w": 12, + "x": 0, + "y": 17 }, - "id": 22, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 + "id": 168, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false }, - { - "name": "range to text", - "value": 2 + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false - }, - "tableColumn": "", + }, + "pluginVersion": "11.6.1", "targets": [ { - "expr": "sum(zookeeper_server_connections{job=~\"$job\", instance=~\"$instance\"})", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "write_per_namespace_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", "format": "time_series", - "intervalFactor": 1, - "refId": "A" - } - ], - "thresholds": "", - "title": "connections", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} write_per_namespace:{{key}}", + "refId": "C" } ], - "valueName": "avg" + "title": "write_per_namespace", + "type": "timeseries" }, { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 7 + "datasource": { + "uid": "$DS_PROMETHEUS" }, - "id": 13, - "panels": [], - "title": "Details", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, - "description": "All write operations (create / setData / ...)", "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { - "h": 6, + "h": 8, "w": 12, - "x": 0, - "y": 8 - }, - "hiddenSeries": false, - "id": 1, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", + "x": 12, + "y": 17 + }, + "id": 200, "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", "targets": [ { - "expr": "irate(zookeeper_server_requests_latency_ms_count{job=~\"$job\", instance=~\"$instance\", type=\"write\"}[60s])", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "read_per_namespace_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", "format": "time_series", + "hide": false, "intervalFactor": 2, - "legendFormat": "{{ instance }}", - "refId": "B" + "legendFormat": "{{kubernetes_pod_name}} read_per_namespace:{{key}}", + "refId": "C" } ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Write Requests", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "writes / s", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "title": "read_per_namespace", + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "description": "All read operations (getData / getChildren / ...)", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { - "h": 6, - "w": 12, - "x": 12, - "y": 8 + "h": 8, + "w": 8, + "x": 0, + "y": 25 }, - "hiddenSeries": false, - "id": 2, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", + "id": 132, "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", "targets": [ { - "expr": "irate(zookeeper_server_requests_latency_ms_count{job=~\"$job\", instance=~\"$instance\", type=\"read\"}[60s])", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "approximate_data_size{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", "format": "time_series", - "interval": "", - "intervalFactor": 2, - "legendFormat": "{{ instance }}", - "metric": "zookeeper_server_requests_latency_ms_count", - "refId": "A", - "step": 10 - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Read Requests", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "reads / s", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "intervalFactor": 1, + "legendFormat": "{{kubernetes_pod_name}} approximate_data_size", + "refId": "A" + } + ], + "title": "approximate_data_size", + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "description": "All write operations (create / setData / ...)", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 14 + "h": 8, + "w": 8, + "x": 8, + "y": 25 }, - "hiddenSeries": false, - "id": 4, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null as zero", + "id": 90, "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", "targets": [ { - "expr": "zookeeper_server_requests_latency_ms{job=~\"$job\", instance=~\"$instance\", type=\"write\", quantile=\"0.99\"}", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "packets_received{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", "format": "time_series", - "interval": "", "intervalFactor": 2, - "legendFormat": "{{instance}}", - "metric": "zookeeper_server_requests_latency_ms_count", - "refId": "A", - "step": 10 - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Write Latency - 99pct", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "legendFormat": "{{kubernetes_pod_name}} packets_received", + "refId": "A" + } + ], + "title": "packets_received", + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, - "description": "All write operations (create / setData / ...)", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, "fieldConfig": { "defaults": { - "custom": {} + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 14 - }, - "hiddenSeries": false, - "id": 5, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", + "h": 8, + "w": 8, + "x": 16, + "y": 25 + }, + "id": 56, "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "11.6.1", "targets": [ { - "expr": "zookeeper_server_requests_latency_ms{job=~\"$job\", instance=~\"$instance\", type=\"read\", quantile=\"0.99\"}", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "packets_sent{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", "format": "time_series", - "interval": "", "intervalFactor": 2, - "legendFormat": "{{instance}}", - "metric": "zookeeper_server_requests_latency_ms_count", - "refId": "A", - "step": 10 - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Read Latency - 99pct", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "legendFormat": "{{kubernetes_pod_name}} packets_sent", + "refId": "A" + } + ], + "title": "packets_sent", + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "decimals": 1, - "description": "Request Throughput (break down by type)", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, "fieldConfig": { - "defaults": { - "custom": {} - }, + "defaults": {}, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { - "h": 7, - "w": 24, + "h": 8, + "w": 8, "x": 0, - "y": 21 - }, - "hiddenSeries": false, - "id": 6, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + "y": 33 + }, + "id": 184, + "options": {}, "targets": [ { - "expr": "sum(irate(zookeeper_server_requests{job=~\"$job\", instance=~\"$instance\"}[60s])) by (type)", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "response_packet_cache_misses{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", "format": "time_series", - "interval": "", "intervalFactor": 2, - "legendFormat": "{{type}}", - "metric": "zookeeper_server_requests_latency_ms_count", - "refId": "A", - "step": 4 - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Request Throughput", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "legendFormat": "{{kubernetes_pod_name}} response_packet_cache_misses", + "refId": "A" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "response_packet_cache_hits{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} response_packet_cache_hits", + "refId": "B" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "response_packet_get_children_cache_misses{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} response_packet_get_children_cache_misses", + "refId": "C" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "response_packet_get_children_cache_hits{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} response_packet_get_children_cache_hits", + "refId": "D" + } + ], + "title": "response_packet_cache", + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "description": "", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, "fieldConfig": { - "defaults": { - "custom": {} - }, + "defaults": {}, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 28 - }, - "hiddenSeries": false, - "id": 7, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "h": 8, + "w": 8, + "x": 8, + "y": 33 + }, + "id": 120, + "options": {}, "targets": [ { - "expr": "zookeeper_server_znode_count{job=~\"$job\", instance=~\"$instance\"}", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "unrecoverable_error_count{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", "format": "time_series", - "interval": "", "intervalFactor": 2, - "legendFormat": "{{ instance }}", - "metric": "zookeeper_server_requests_latency_ms_count", - "refId": "A", - "step": 10 - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Z-Nodes count", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "legendFormat": "{{kubernetes_pod_name}} unrecoverable_error_count", + "refId": "A" + } + ], + "title": "unrecoverable_error_count", + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "description": "Size of the data stored in a ZK server", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, "fieldConfig": { - "defaults": { - "custom": {} - }, + "defaults": {}, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 28 - }, - "hiddenSeries": false, - "id": 8, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "h": 8, + "w": 8, + "x": 16, + "y": 33 + }, + "id": 235, + "options": {}, "targets": [ { - "expr": "zookeeper_server_data_size_bytes{job=~\"$job\", instance=~\"$instance\"}", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "digest_mismatches_count{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", "format": "time_series", - "interval": "", "intervalFactor": 2, - "legendFormat": "{{ instance }}", - "metric": "zookeeper_server_requests_latency_ms_count", - "refId": "A", - "step": 10 - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Data set size", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "legendFormat": "{{kubernetes_pod_name}} digest_mismatches_count", + "refId": "C" + } + ], + "title": "digest_mismatches_count", + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "description": "Number of opened connections", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, "fieldConfig": { - "defaults": { - "custom": {} - }, + "defaults": {}, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { - "h": 7, + "h": 8, "w": 8, "x": 0, - "y": 35 - }, - "hiddenSeries": false, - "id": 9, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + "y": 41 + }, + "id": 140, + "options": {}, "targets": [ { - "expr": "zookeeper_server_connections{job=~\"$job\", instance=~\"$instance\"}", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "startup_snap_load_time", "format": "time_series", - "interval": "", + "hide": true, "intervalFactor": 2, - "legendFormat": "{{ instance }}", - "metric": "zookeeper_server_requests_latency_ms_count", - "refId": "A", - "step": 10 - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Connections", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "legendFormat": "{{kubernetes_pod_name}} startup_snap_load_time-{{quantile}}", + "refId": "A" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "startup_snap_load_time_count", + "format": "time_series", + "hide": true, + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} startup_snap_load_time_count", + "refId": "B" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "startup_snap_load_time_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} startup_snap_load_time", + "refId": "C" + } + ], + "title": "startup_snap_load_time", + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "description": "", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, "fieldConfig": { - "defaults": { - "custom": {} - }, + "defaults": {}, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { - "h": 7, + "h": 8, "w": 8, "x": 8, - "y": 35 - }, - "hiddenSeries": false, - "id": 10, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, + "y": 41 + }, + "id": 192, + "options": {}, "targets": [ { - "expr": "zookeeper_server_watches_count{job=~\"$job\", instance=~\"$instance\"}", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "startup_txns_loaded", "format": "time_series", - "interval": "", + "hide": true, "intervalFactor": 2, - "legendFormat": "{{ instance }}", - "metric": "zookeeper_server_requests_latency_ms_count", - "refId": "A", - "step": 10 - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Number of watches", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "legendFormat": "{{kubernetes_pod_name}} startup_txns_loaded-{{quantile}}", + "refId": "A" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "startup_txns_loaded_count", + "format": "time_series", + "hide": true, + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} startup_txns_loaded_count", + "refId": "B" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "startup_txns_loaded_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} startup_txns_loaded", + "refId": "C" + } + ], + "title": "startup_txns_loaded", + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "description": "", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, "fieldConfig": { - "defaults": { - "custom": {} - }, + "defaults": {}, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { - "h": 7, + "h": 8, "w": 8, "x": 16, - "y": 35 - }, - "hiddenSeries": false, - "id": 11, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "y": 41 + }, + "id": 210, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "dbinittime", + "format": "time_series", + "hide": true, + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} dbinittime-{{quantile}}", + "refId": "A" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "dbinittime_count", + "format": "time_series", + "hide": true, + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} dbinittime_count", + "refId": "B" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "dbinittime_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} db_init_time", + "refId": "C" + } + ], + "title": "db_init_time", + "type": "timeseries" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 49 + }, + "id": 82, + "panels": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 2 + }, + "id": 124, + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "max(quorum_size{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"})", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "quorum_size", + "refId": "A" + } + ], + "title": "quorum_size", + "type": "stat" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 2 + }, + "id": 225, + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "leader_uptime{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{kubernetes_pod_name}}", + "refId": "A" + } + ], + "title": "leader", + "type": "stat" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 2 + }, + "id": 222, + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.6.1", + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "leader_uptime{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{kubernetes_pod_name}} leader_uptime", + "refId": "A" + } + ], + "title": "leader_uptime", + "type": "stat" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 10 + }, + "id": 215, + "options": { + "displayMode": "lcd", + "fieldOptions": { + "calcs": [ + "last" + ], + "defaults": { + "max": 100, + "min": 0 + }, + "mappings": [], + "override": {}, + "thresholds": [ + { + "color": "green", + "index": 0 + }, + { + "color": "red", + "index": 1, + "value": 80 + } + ], + "values": false + }, + "orientation": "vertical" + }, + "pluginVersion": "6.2.2", + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "max(learners{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"})", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "learners", + "refId": "B" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "max(synced_non_voting_followers{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"})", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "synced_non_voting_followers", + "refId": "C" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "max(synced_observers{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"})", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "synced_observers", + "refId": "D" + } + ], + "title": "learner/observer", + "type": "bargauge" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 18 + }, + "id": 70, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "election_time", + "format": "time_series", + "hide": true, + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} election_time", + "refId": "A" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "election_time_count{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} election_time_count", + "refId": "B" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "election_time_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} election_time_sum(ms)", + "refId": "C" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "election_time_sum/election_time_count{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} election_avg_time(ms)", + "refId": "D" + } + ], + "title": "election_time", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 26 + }, + "id": 144, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "uptime{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{kubernetes_pod_name}} uptime", + "refId": "B" + } + ], + "title": "quorum uptime", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 26 + }, + "id": 130, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "learner_commit_received_count{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} learner_commit_received_count", + "refId": "A" + } + ], + "title": "learner_commit_received_count", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 0, + "y": 34 + }, + "id": 148, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "commit_count{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} commit_count", + "refId": "A" + } + ], + "title": "commit_count", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 6, + "y": 34 + }, + "id": 166, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "snap_count{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} snap_count", + "refId": "A" + } + ], + "title": "snap_count", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 12, + "y": 34 + }, + "id": 186, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "diff_count{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} diff_count", + "refId": "A" + } + ], + "title": "diff_count", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 18, + "y": 34 + }, + "id": 206, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "looking_count{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} looking_count", + "refId": "A" + } + ], + "title": "looking_count", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 42 + }, + "id": 154, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "proposal_count{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} proposal_count", + "refId": "A" + } + ], + "title": "proposal_count", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 42 + }, + "id": 214, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "last_proposal_size{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} last_proposal_size", + "refId": "A" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "max_proposal_size{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} max_proposal_size", + "refId": "B" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "min_proposal_size{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} min_proposal_size", + "refId": "C" + } + ], + "title": "proposal_size", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 42 + }, + "id": 202, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(follower_sync_time_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[1m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} follower_sync_time", + "refId": "C" + } + ], + "title": "follower_sync_time", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 50 + }, + "id": 217, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "learner_handler_qp_size_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} learner_handler_qp_size_sum sid:{{key}}", + "refId": "C" + } + ], + "title": "learner_handler_qp_size", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 50 + }, + "id": 208, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "quit_leading_due_to_disloyal_voter{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} quit_leading_due_to_disloyal_voter", + "refId": "A" + } + ], + "title": "quit_leading_due_to_disloyal_voter", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 50 + }, + "id": 219, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(om_commit_process_time_ms_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} om_commit_process_time", + "refId": "C" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(om_proposal_process_time_ms_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} om_proposal_process_time", + "refId": "A" + } + ], + "title": "Observer Master", + "type": "timeseries" + } + ], + "title": "Quorum/Leader Election", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 50 + }, + "id": 36, + "panels": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 3 + }, + "id": 212, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "watch_count{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} watch_count", + "refId": "A" + } + ], + "title": "watch_count", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 3 + }, + "id": 178, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "node_changed_watch_count_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} node_changed_watch_count", + "refId": "C" + } + ], + "title": "node_changed_watch_count", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 3 + }, + "id": 174, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "node_children_watch_count_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} node_children_watch_count", + "refId": "C" + } + ], + "title": "node_children_watch_count", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 11 + }, + "id": 150, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "node_deleted_watch_count_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} node_deleted_watch_count", + "refId": "C" + } + ], + "title": "node_deleted_watch_count", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 11 + }, + "id": 96, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "node_created_watch_count_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} node_created_watch_count", + "refId": "A" + } + ], + "title": "node_created_watch_count", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 11 + }, + "id": 223, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "revalidate_count{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} revalidate_count", + "refId": "A" + } + ], + "title": "revalidate_count", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 19 + }, + "id": 46, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "stale_sessions_expired{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{kubernetes_pod_name}} stale_sessions_expired", + "refId": "A" + } + ], + "title": "stale_sessions_expired", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 19 + }, + "id": 194, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "dead_watchers_cleared{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} dead_watchers_cleared", + "refId": "A" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "dead_watchers_queued{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} dead_watchers_queued", + "refId": "B" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(dead_watchers_cleaner_latency_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} dead_watchers_cleaner_latency", + "refId": "C" + } + ], + "title": "dead_watchers", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 19 + }, + "id": 62, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "add_dead_watcher_stall_time{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} add_dead_watcher_stall_time", + "refId": "A" + } + ], + "title": "add_dead_watcher_stall_time", + "type": "timeseries" + } + ], + "title": "Session/Watch", + "type": "row" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 51 + }, + "id": 102, + "panels": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 4 + }, + "id": 66, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "outstanding_requests{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} outstanding_requests", + "refId": "A" + } + ], + "title": "outstanding_requests", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 4 + }, + "id": 104, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "last_client_response_size{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} last_client_response_size", + "refId": "A" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "min_client_response_size{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} min_client_response_size", + "refId": "B" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "max_client_response_size{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} max_client_response_size", + "refId": "C" + } + ], + "title": "client_response_size", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 4 + }, + "id": 146, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "bytes_received_count{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} bytes_received_count", + "refId": "A" + } + ], + "title": "bytes_received_count", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 12 + }, + "id": 176, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "connection_request_count{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} connection_request_count", + "refId": "A" + } + ], + "title": "connection_request_count", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 12 + }, + "id": 190, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "num_alive_connections{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{kubernetes_pod_name}} num_alive_connections", + "refId": "A" + } + ], + "title": "num_alive_connections", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 12 + }, + "id": 86, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "connection_rejected{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} connection_rejected", + "refId": "A" + } + ], + "title": "connection_rejected", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 20 + }, + "id": 128, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "connection_drop_count{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} connection_drop_count", + "refId": "A" + } + ], + "title": "connection_drop_count", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 20 + }, + "id": 60, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "connection_drop_probability{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} connection_drop_probability", + "refId": "A" + } + ], + "title": "connection_drop_probability", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 20 + }, + "id": 54, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "sessionless_connections_expired{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} sessionless_connections_expired", + "refId": "A" + } + ], + "title": "sessionless_connections_expired", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 28 + }, + "id": 180, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(connection_token_deficit_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} connection_token_deficit", + "refId": "C" + } + ], + "title": "connection_token_deficit", + "type": "timeseries" + } + ], + "title": "Client/Connection", + "type": "row" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 52 + }, + "id": 112, + "panels": [], + "title": "Disk/Snapshot", + "type": "row" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 53 + }, + "id": 122, + "options": { + "fieldOptions": { + "calcs": [ + "last" + ], + "defaults": { + "max": 1024, + "min": 0, + "unit": "short" + }, + "mappings": [], + "override": {}, + "thresholds": [ + { + "color": "green", + "index": 0 + }, + { + "color": "red", + "index": 1, + "value": 800 + } + ], + "values": false + }, + "orientation": "horizontal", + "showThresholdLabels": false, + "showThresholdMarkers": true + }, + "pluginVersion": "6.2.2", + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "open_file_descriptor_count{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}}", + "refId": "A" + } + ], + "title": "open_file_descriptor", + "type": "gauge" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 61 + }, + "id": 114, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "fsynctime{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "hide": true, + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} fsynctime", + "refId": "A" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "fsynctime_count{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "hide": true, + "interval": "", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} fsynctime_count", + "refId": "B" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "fsynctime_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "hide": true, + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} fsynctime_sum(ms)", + "refId": "C" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "fsynctime_sum * 1000 /fsynctime_count{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} fsynctime_avg(μs)", + "refId": "D" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "irate(fsynctime_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[1m])", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} fsynctime_rate", + "refId": "E" + } + ], + "title": "fsync_time", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 69 + }, + "id": 88, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(snapshottime_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} snapshot_time_rate", + "refId": "C" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "snapshottime_count{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "hide": true, + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} snapshottime_count", + "refId": "A" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "snapshottime_sum / snapshottime_count{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "hide": true, + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} snapshottime_avg(ms)", + "refId": "B" + } + ], + "title": "snapshot_time", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 77 + }, + "id": 136, + "panels": [], + "title": "Prep_Processor", + "type": "row" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 78 + }, + "id": 158, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(prep_process_time_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{kubernetes_pod_name}} prep_process_time", + "refId": "A" + } + ], + "title": "prep_process_time", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 78 + }, + "id": 138, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(prep_processor_queue_time_ms_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{kubernetes_pod_name}} prep_processor_queue_time_ms", + "refId": "C" + } + ], + "title": "prep_processor_queue_time", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 78 + }, + "id": 156, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(prep_processor_queue_size_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} prep_processor_queue_size", + "refId": "C" + } + ], + "title": "prep_processor_queue_size", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 86 + }, + "id": 160, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "prep_processor_request_queued{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} prep_processor_request_queued", + "refId": "A" + } + ], + "title": "prep_processor_request_queued", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 86 + }, + "id": 92, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "outstanding_changes_queued{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} outstanding_changes_queued", + "refId": "A" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "outstanding_changes_removed{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} outstanding_changes_removed", + "refId": "B" + } + ], + "title": "outstanding_changes_queued", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 86 + }, + "id": 32, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(close_session_prep_time_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} close_session_prep_time", + "refId": "A" + } + ], + "title": "close_session_prep_time", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 94 + }, + "id": 2, + "panels": [], + "title": "Sync_Processor", + "type": "row" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 95 + }, + "id": 142, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(sync_process_time_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} sync_process_time", + "refId": "C" + } + ], + "title": "sync_process_time", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 95 + }, + "id": 18, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(sync_processor_queue_flush_time_ms_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} sync_processor_queue_flush_time", + "refId": "A" + } + ], + "title": "sync_processor_queue_flush_time", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 95 + }, + "id": 26, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(sync_processor_queue_size_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} sync_processor_queue_size", + "refId": "C" + } + ], + "title": "sync_processor_queue_size", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 103 + }, + "id": 16, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "sync_processor_request_queued{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} sync_processor_request_queued", + "refId": "A" + } + ], + "title": "sync_processor_request_queued", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 103 + }, + "id": 24, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(sync_processor_batch_size_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} sync_processor_batch_size", + "refId": "C" + } + ], + "title": "sync_processor_batch_size", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 111 + }, + "id": 108, + "panels": [], + "title": "Commit_Processor", + "type": "row" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 112 + }, + "id": 118, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(commit_process_time_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} commit_process_time", + "refId": "C" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(read_commitproc_time_ms_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} read_commitproc_time", + "refId": "A" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(write_commitproc_time_ms_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} write_commitproc_time", + "refId": "B" + } + ], + "title": "commit_process_time", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 112 + }, + "id": 72, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(write_commit_proc_req_queued_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} write_commit_proc_req_queued", + "refId": "C" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(read_commit_proc_req_queued_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} read_commit_proc_req_queued", + "refId": "A" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(commit_commit_proc_req_queued_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} commit_commit_proc_req_queued", + "refId": "B" + } + ], + "title": "commit_proc_req_queued", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 112 + }, + "id": 44, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(requests_in_session_queue_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} requests_in_session_queue", + "refId": "C" + } + ], + "title": "requests_in_session_queue", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 120 + }, + "id": 58, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(read_commit_proc_issued_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} read_commit_proc_issued", + "refId": "C" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(write_commit_proc_issued_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} write_commit_proc_issued", + "refId": "A" + } + ], + "title": "commit_proc_issued", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 120 + }, + "id": 164, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(concurrent_request_processing_in_commit_processor_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} concurrent_request_processing_in_commit_processor", + "refId": "C" + } + ], + "title": "concurrent_request_processing_in_commit_processor", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 120 + }, + "id": 188, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(time_waiting_empty_pool_in_commit_processor_read_ms_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} time_waiting_empty_pool_in_commit_processor_read", + "refId": "C" + } + ], + "title": "time_waiting_empty_pool_in_commit_processor_read", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 128 + }, + "id": 30, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(pending_session_queue_size_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} pending_session_queue_size", + "refId": "B" + } + ], + "title": "pending_session_queue_size", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 128 + }, + "id": 94, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(local_write_committed_time_ms_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} local_write_committed_time_ms", + "refId": "C" + } + ], + "title": "local_write_committed_time", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 128 + }, + "id": 74, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(server_write_committed_time_ms_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} server_write_committed_time", + "refId": "A" + } + ], + "title": "server_write_committed_time", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 136 + }, + "id": 106, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(write_batch_time_in_commit_processor_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} write_batch_time_in_commit_processor", + "refId": "A" + } + ], + "title": "write_batch_time_in_commit_processor", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 136 + }, + "id": 34, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(reads_after_write_in_session_queue_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{kubernetes_pod_name}} reads_after_write_in_session_queue", + "refId": "B" + } + ], + "title": "reads_after_write_in_session_queue", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 136 + }, + "id": 50, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(session_queues_drained_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} session_queues_drained", + "refId": "C" + } + ], + "title": "session_queues_drained", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 144 + }, + "id": 38, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(reads_issued_from_session_queue_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} reads_issued_from_session_queue", + "refId": "C" + } + ], + "title": "reads_issued_from_session_queue", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 144 + }, + "id": 152, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "request_commit_queued{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{kubernetes_pod_name}} request_commit_queued", + "refId": "A" + } + ], + "title": "request_commit_queued", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 152 + }, + "id": 170, + "panels": [], + "title": "Final_Processor", + "type": "row" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 153 + }, + "id": 172, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(write_final_proc_time_ms_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} write_final_proc_time_ms", + "refId": "C" + } + ], + "title": "write_final_proc_time_ms", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 153 + }, + "id": 228, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(read_final_proc_time_ms_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} read_final_proc_time_ms", + "refId": "C" + } + ], + "title": "read_final_proc_time_ms", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 161 + }, + "id": 80, + "panels": [], + "title": "Latency", + "type": "row" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 162 + }, + "id": 198, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(readlatency_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} readlatency", + "refId": "C" + } + ], + "title": "read_latency", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 162 + }, + "id": 78, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(updatelatency_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} updatelatency", + "refId": "C" + } + ], + "title": "update_latency", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 170 + }, + "id": 100, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "max_latency{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} max_latency", + "refId": "A" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "min_latency{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "interval": "", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} min_latency", + "refId": "B" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "avg_latency{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} avg_latency", + "refId": "C" + } + ], + "title": "max_min_avg_latency", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 170 + }, + "id": 134, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(proposal_latency_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} proposal_latency", + "refId": "C" + } + ], + "title": "proposal_latency", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 178 + }, + "id": 162, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(quorum_ack_latency_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} quorum_ack_latency", + "refId": "C" + } + ], + "title": "quorum_ack_latency", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 178 + }, + "id": 126, + "options": {}, "targets": [ { - "expr": "zookeeper_server_ephemerals_count{job=~\"$job\", instance=~\"$instance\"}", + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(ack_latency_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", "format": "time_series", - "interval": "", "intervalFactor": 2, - "legendFormat": "{{ instance }}", - "metric": "zookeeper_server_requests_latency_ms_count", - "refId": "A", - "step": 10 - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Number of ephemerals", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "legendFormat": "{{kubernetes_pod_name}} ack_latency_sum", + "refId": "C" + } + ], + "title": "ack_latency", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 186 + }, + "id": 196, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(propagation_latency_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} propagation_latency", + "refId": "C" + } + ], + "title": "propagation_latency", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 186 + }, + "id": 182, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(commit_propagation_latency_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} commit_propagation_latency", + "refId": "C" + } + ], + "title": "commit_propagation_latency", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 194 + }, + "id": 42, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "proposal_ack_creation_latency{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} proposal_ack_creation_latency-{{quantile}}", + "refId": "A" + } + ], + "title": "proposal_ack_creation_latency", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 202 + }, + "id": 238, + "panels": [], + "title": "Security", + "type": "row" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 203 + }, + "id": 236, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "tls_handshake_exceeded{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} tls_handshake_exceeded", + "refId": "C" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "outstanding_tls_handshake{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} outstanding_tls_handshake", + "refId": "A" + } + ], + "title": "tls_handshake", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 203 + }, + "id": 64, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "ensemble_auth_fail{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} ensemble_auth_fail", + "refId": "A" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "ensemble_auth_success{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} ensemble_auth_success", + "refId": "B" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "ensemble_auth_skip{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} ensemble_auth_skip", + "refId": "C" + } + ], + "title": "ensemble_auth", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 211 + }, + "id": 227, + "panels": [], + "title": "JVM", + "type": "row" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 212 + }, + "id": 204, + "maxDataPoints": 100, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "max(jvm_classes_loaded{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"})", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "", + "refId": "C" + } + ], + "title": "jvm_classes_loaded", + "type": "stat" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 212 + }, + "id": 229, + "maxDataPoints": 100, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "max(jvm_threads_current{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"})", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "", + "refId": "C" + } + ], + "title": "jvm_threads_current", + "type": "stat" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 212 + }, + "id": 230, + "maxDataPoints": 100, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "max(jvm_threads_deadlocked{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"})", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "", + "refId": "C" + } + ], + "title": "jvm_threads_deadlocked", + "type": "stat" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 220 + }, + "id": 231, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(jvm_pause_time_ms_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} jvm_pause_time_ms", + "refId": "C" + } + ], + "title": "jvm_pause_time_ms", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 220 + }, + "id": 232, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "rate(jvm_gc_collection_seconds_sum{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}[5m])", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} gc:{{gc}}", + "refId": "C" + } + ], + "title": "jvm_gc_collection_seconds", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 220 + }, + "id": 233, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "jvm_threads_state{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} state:{{state}}", + "refId": "C" + } + ], + "title": "jvm_threads_state", + "type": "timeseries" + }, + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 228 + }, + "id": 234, + "options": {}, + "targets": [ + { + "datasource": { + "uid": "$DS_PROMETHEUS" + }, + "expr": "jvm_memory_pool_bytes_used{kubernetes_pod_name=~\"$kubernetes_pod_name\",job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{kubernetes_pod_name}} pool:{{pool}}", + "refId": "C" + } + ], + "title": "jvm_memory_pool_bytes_used", + "type": "timeseries" } ], - "schemaVersion": 25, - "style": "dark", + "preload": false, + "refresh": "5s", + "schemaVersion": 41, "tags": [ - "pulsar" + "v4" ], "templating": { "list": [ { - "allValue": null, "current": { - "selected": true, + "text": "Prometheus", + "value": "prometheus" + }, + "includeAll": false, + "label": "Datasource", + "name": "DS_PROMETHEUS", + "options": [], + "query": "prometheus", + "refresh": 1, + "regex": "", + "type": "datasource" + }, + { + "current": { "text": "zookeeper", "value": "zookeeper" }, - "datasource": "Prometheus", - "definition": "zookeeper_server_requests{job=~\".+\"}", - "hide": 0, - "includeAll": true, + "hide": 2, "label": "job", - "multi": false, "name": "job", - "options": [], - "query": "zookeeper_server_requests{job=~\".+\"}", - "refresh": 1, - "regex": "/.*[^_]job=\\\"(zookeeper)\\\".*/", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false + "query": "zookeeper", + "skipUrlSync": true, + "type": "constant" }, { - "allValue": null, "current": { - "selected": false, - "text": "All", - "value": "$__all" + "text": [ + "All" + ], + "value": [ + "$__all" + ] }, - "datasource": "Prometheus", - "definition": "zookeeper_server_requests{job=~\"$job\", instance=~\".+\"}", - "hide": 0, + "datasource": "$DS_PROMETHEUS", + "definition": "label_values({job=~\"$job\"}, kubernetes_pod_name)", "includeAll": true, - "label": "zookeeper server", - "multi": false, - "name": "instance", + "label": "Pod", + "multi": true, + "name": "kubernetes_pod_name", "options": [], - "query": "zookeeper_server_requests{job=~\"$job\", instance=~\".+\"}", - "refresh": 2, - "regex": "/.*[^_]instance=\\\"([^\\\"]+)\\\".*/", - "skipUrlSync": false, + "query": "label_values({job=~\"$job\"}, kubernetes_pod_name)", + "refresh": 1, + "regex": "", "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false + "type": "query" } ] }, @@ -1544,32 +4458,9 @@ "from": "now-1h", "to": "now" }, - "timepicker": { - "refresh_intervals": [ - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" - ] - }, + "timepicker": {}, "timezone": "browser", "title": "Pulsar / ZooKeeper", - "uid": "16iR0-EZk", + "uid": "df7w3bhgumu4gf", "version": 1 } diff --git a/helm/kaap-stack/values.yaml b/helm/kaap-stack/values.yaml index 0e4490c3..5c69ed1a 100644 --- a/helm/kaap-stack/values.yaml +++ b/helm/kaap-stack/values.yaml @@ -397,3 +397,5 @@ bkvm: value: pulsar - name: BKVM_user.1.role value: Admin + - name: JAVA_OPTS + value: "-Xmx3g -Xms3g" diff --git a/helm/kaap/Chart.yaml b/helm/kaap/Chart.yaml index 3a76e637..90af78fe 100644 --- a/helm/kaap/Chart.yaml +++ b/helm/kaap/Chart.yaml @@ -19,4 +19,4 @@ apiVersion: v2 name: kaap description: Kubernetes Autoscaling for Apache Pulsar Stack -version: 0.3.0 +version: 0.4.4 diff --git a/helm/kaap/crds/autorecoveries.kaap.oss.datastax.com-v1.yml b/helm/kaap/crds/autorecoveries.kaap.oss.datastax.com-v1.yml index 51d4d45a..81c23db3 100644 --- a/helm/kaap/crds/autorecoveries.kaap.oss.datastax.com-v1.yml +++ b/helm/kaap/crds/autorecoveries.kaap.oss.datastax.com-v1.yml @@ -1,20 +1,20 @@ # Generated by Fabric8 CRDGenerator, manual edits might get overwritten! -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition +apiVersion: "apiextensions.k8s.io/v1" +kind: "CustomResourceDefinition" metadata: - name: autorecoveries.kaap.oss.datastax.com + name: "autorecoveries.kaap.oss.datastax.com" spec: - group: kaap.oss.datastax.com + group: "kaap.oss.datastax.com" names: - kind: Autorecovery - plural: autorecoveries + kind: "Autorecovery" + plural: "autorecoveries" shortNames: - - au - - aur - singular: autorecovery - scope: Namespaced + - "au" + - "aur" + singular: "autorecovery" + scope: "Namespaced" versions: - - name: v1beta1 + - name: "v1beta1" schema: openAPIV3Schema: properties: @@ -22,1264 +22,1447 @@ spec: properties: autorecovery: properties: + annotations: + additionalProperties: + type: "string" + description: "Annotations to add to each resource (except pods)." + type: "object" + antiAffinity: + description: "Pod anti-affinity configuration. This override the\ + \ global value if set." + properties: + host: + description: "Indicates the reclaimPolicy property for the\ + \ StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + zone: + description: "Indicates the provisioner property for the StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + type: "object" config: - description: Configuration. + description: "Configuration." x-kubernetes-preserve-unknown-fields: true + env: + description: "Additional container env variables." + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" gracePeriod: - description: Termination grace period in seconds. + description: "Termination grace period in seconds." minimum: 0.0 - type: integer + type: "integer" + image: + description: "Override Pulsar image." + type: "string" + imagePullPolicy: + description: "Override image pull policy." + type: "string" imagePullSecrets: - description: Image pull secrets. + description: "Image pull secrets." items: properties: name: - type: string - type: object - type: array - image: - description: Override Pulsar image. - type: string - annotations: - additionalProperties: - type: string - description: Annotations to add to each resource (except pods). - type: object - podAnnotations: - additionalProperties: - type: string - description: Annotations to add to pod. - type: object - sidecars: - description: Sidecar containers + type: "string" + type: "object" + type: "array" + initContainers: + description: "Init containers" items: properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" lifecycle: properties: postStart: properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + type: "object" + preStop: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" livenessProbe: properties: - periodSeconds: - type: integer + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" failureThreshold: - type: integer - initialDelaySeconds: - type: integer + type: "integer" grpc: properties: port: - type: integer + type: "integer" service: - type: string - type: object + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer + type: "integer" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" timeoutSeconds: - type: integer + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer + scheme: + type: "string" + type: "object" initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object + type: "integer" + periodSeconds: + type: "integer" successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer + type: "integer" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" timeoutSeconds: - type: integer + type: "integer" + type: "object" + resizePolicy: + items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: + 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer + scheme: + type: "string" + type: "object" initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object + type: "integer" + periodSeconds: + type: "integer" successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer + type: "integer" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object + type: "integer" + type: "object" + stdin: + type: "boolean" stdinOnce: - type: boolean - ports: + type: "boolean" + terminationMessagePath: + type: "string" + terminationMessagePolicy: + type: "string" + tty: + type: "boolean" + volumeDevices: items: properties: - containerPort: - type: integer - hostPort: - type: integer + devicePath: + type: "string" name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: - properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: - properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array + type: "string" + type: "object" + type: "array" volumeMounts: items: properties: - readOnly: - type: boolean - subPathExpr: - type: string mountPath: - type: string + type: "string" mountPropagation: - type: string - subPath: - type: string + type: "string" name: - type: string - type: object - type: array - securityContext: + 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" + labels: + additionalProperties: + type: "string" + description: "Labels to add to each resource (except pods)." + type: "object" + matchLabels: + additionalProperties: + type: "string" + description: "Match labels selectors to add to each pod." + type: "object" + minReadySeconds: + description: "Min seconds to wait before considering the pod as\ + \ ready." + type: "integer" + nodeAffinity: + description: "Node affinity configuration." + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: + preference: properties: - add: + matchExpressions: items: - type: string - type: array - drop: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: items: - type: string - type: array - type: object - seLinuxOptions: - properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: + 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" + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + type: "object" + type: "array" + type: "object" + type: "object" + nodeSelectors: + additionalProperties: + type: "string" + description: "Additional node selectors." + type: "object" + podAnnotations: + additionalProperties: + type: "string" + description: "Annotations to add to pod." + type: "object" + podLabels: + additionalProperties: + type: "string" + description: "Labels to add to each pod." + type: "object" + replicas: + description: "Number of desired replicas." + type: "integer" + resources: + description: "Resources requirements." + properties: + claims: + items: properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + securityContext: + description: "Subset of PodSecurityContext for basic UID, GID,\ + \ and volume access control." + properties: + fsGroup: + type: "integer" + fsGroupChangePolicy: + type: "string" + runAsGroup: + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + type: "integer" + supplementalGroups: + items: + type: "integer" + type: "array" + type: "object" + serviceAccountName: + description: "Service account name for the resource." + type: "string" + sidecars: + description: "Sidecar containers" + items: + properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: items: properties: - devicePath: - type: string name: - type: string - type: object - type: array - type: object - type: array - env: - description: Additional container env variables. - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - labels: - additionalProperties: - type: string - description: Labels to add to each resource (except pods). - type: object - initContainers: - description: Init containers - items: - properties: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" lifecycle: properties: postStart: properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + type: "object" + preStop: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" livenessProbe: properties: - periodSeconds: - type: integer + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" failureThreshold: - type: integer - initialDelaySeconds: - type: integer + type: "integer" grpc: properties: port: - type: integer + type: "integer" service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer + scheme: + type: "string" + type: "object" initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object + type: "integer" + periodSeconds: + type: "integer" successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer + type: "integer" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" timeoutSeconds: - type: integer + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer + scheme: + type: "string" + type: "object" initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object + type: "integer" + periodSeconds: + type: "integer" successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer + type: "integer" tcpSocket: properties: host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: - properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: - properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array - volumeMounts: + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: items: properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" securityContext: properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object allowPrivilegeEscalation: - type: boolean + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" capabilities: properties: add: items: - type: string - type: array + type: "string" + type: "array" drop: items: - type: string - type: array - type: object + 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: properties: + level: + type: "string" role: - type: string + type: "string" type: - type: string + type: "string" user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string + type: "string" + type: "object" seccompProfile: properties: - type: - type: string localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: properties: devicePath: - type: string + type: "string" + name: + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + properties: + mountPath: + type: "string" + mountPropagation: + type: "string" name: - type: string - type: object - type: array - type: object - type: array + 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" tolerations: - description: Pod tolerations. + description: "Pod tolerations." items: properties: + effect: + type: "string" key: - type: string + type: "string" operator: - type: string + type: "string" tolerationSeconds: - type: integer + type: "integer" value: - type: string - effect: - type: string - type: object - type: array - replicas: - description: Number of desired replicas. - type: integer - nodeAffinity: - description: Node affinity configuration. - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - weight: - type: integer - preference: - properties: - matchFields: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchFields: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: array - type: object - type: object - nodeSelectors: - additionalProperties: - type: string - description: Additional node selectors. - type: object - resources: - description: Resources requirements. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object + type: "string" + type: "object" + type: "array" + type: "object" + global: + properties: antiAffinity: - description: Pod anti-affinity configuration. This override the - global value if set. + description: "Pod anti affinity configuration." properties: host: - description: Indicates the reclaimPolicy property for the - StorageClass. + description: "Indicates the reclaimPolicy property for the\ + \ StorageClass." properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" zone: - description: Indicates the provisioner property for the StorageClass. + description: "Indicates the provisioner property for the StorageClass." properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - type: object - imagePullPolicy: - description: Override image pull policy. - type: string - podLabels: - additionalProperties: - type: string - description: Labels to add to each pod. - type: object - matchLabels: - additionalProperties: - type: string - description: Match labels selectors to add to each pod. - type: object - serviceAccountName: - description: Service account name for the resource. - type: string - type: object - global: - properties: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + type: "object" + auth: + description: | + Authentication and authorization configuration. + properties: + enabled: + description: "Enable authentication in the cluster. Default\ + \ is 'false'." + type: "boolean" + token: + description: "Token based authentication configuration." + properties: + initialize: + description: "Initialize Secrets with new pair of keys\ + \ and tokens for the super user roles. The generated\ + \ Secret name is 'token-'." + type: "boolean" + privateKeyFile: + description: "Private key file name stored in the Secret.\ + \ Default is 'my-private.key'" + type: "string" + proxyRoles: + description: "Proxy roles." + items: + type: "string" + type: "array" + publicKeyFile: + description: "Public key file name stored in the Secret.\ + \ Default is 'my-public.key'" + type: "string" + superUserRoles: + description: "Super user roles." + items: + type: "string" + type: "array" + type: "object" + type: "object" + clusterName: + description: "Corresponds to the 'clusterName' field in the broker.conf.\ + \ Defaults to the value of the 'name' field" + type: "string" components: - description: Pulsar cluster components names. + description: "Pulsar cluster components names." properties: - brokerBaseName: - description: Broker base name. Default value is 'broker'. - type: string - zookeeperBaseName: - description: Zookeeper base name. Default value is 'zookeeper'. - type: string - functionsWorkerBaseName: - description: Functions Worker base name. Default value is - 'function'. - type: string autorecoveryBaseName: - description: Autorecovery base name. Default value is 'autorecovery'. - type: string - bookkeeperBaseName: - description: BookKeeper base name. Default value is 'bookkeeper'. - type: string + description: "Autorecovery base name. Default value is 'autorecovery'." + type: "string" bastionBaseName: - description: Bastion base name. Default value is 'bastion'. - type: string + description: "Bastion base name. Default value is 'bastion'." + type: "string" + bookkeeperBaseName: + description: "BookKeeper base name. Default value is 'bookkeeper'." + type: "string" + brokerBaseName: + description: "Broker base name. Default value is 'broker'." + type: "string" + functionsWorkerBaseName: + description: "Functions Worker base name. Default value is\ + \ 'function'." + type: "string" proxyBaseName: - description: Proxy base name. Default value is 'proxy'. - type: string - type: object + description: "Proxy base name. Default value is 'proxy'." + type: "string" + zookeeperBaseName: + description: "Zookeeper base name. Default value is 'zookeeper'." + type: "string" + type: "object" dnsConfig: description: | Override default DNS config for each pod. Note that because we use fully qualified service names for intra @@ -1291,565 +1474,814 @@ spec: properties: nameservers: items: - type: string - type: array - searches: - items: - type: string - type: array + type: "string" + type: "array" options: items: properties: - value: - type: string name: - type: string - type: object - type: array - type: object + type: "string" + value: + type: "string" + type: "object" + type: "array" + searches: + items: + type: "string" + type: "array" + type: "object" dnsName: - description: Public dns name for the cluster's load balancer. - type: string + description: "Public dns name for the cluster's load balancer." + type: "string" + image: + description: "Default Pulsar image to use. Any components can\ + \ be configured to use a different image." + type: "string" + imagePullPolicy: + description: "Default Pulsar image pull policy to use. Any components\ + \ can be configured to use a different image pull policy. Default\ + \ value is 'IfNotPresent'." + type: "string" kubernetesClusterDomain: description: | - The domain name for your kubernetes cluster. - This domain is documented here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#a-aaaa-records-1 . - It's used to fully qualify service names when configuring Pulsar. - The default value is 'cluster.local'. - type: string - priorityClassName: - description: Priority class name to attach to each pod. - type: string - name: - description: Name of the Pulsar cluster spec. This is used as - a prefix for managed Kubernetes resources. - type: string + The domain name for your kubernetes cluster. + This domain is documented here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#a-aaaa-records-1 . + It's used to fully qualify service names when configuring Pulsar. + The default value is 'cluster.local'. + type: "string" + name: + description: "Name of the Pulsar cluster spec. This is used as\ + \ a prefix for managed Kubernetes resources." + type: "string" + nodeSelectors: + additionalProperties: + type: "string" + description: "Global node selector. If set, this will apply to\ + \ all the components." + type: "object" + persistence: + description: | + If persistence is enabled, components that has state will be deployed with PersistentVolumeClaims, otherwise, for test purposes, they will be deployed with emptyDir + type: "boolean" + priorityClassName: + description: "Priority class name to attach to each pod." + type: "string" + racks: + additionalProperties: + properties: + host: + description: "Enable rack rules based on the hostname of\ + \ the node." + properties: + enabled: + description: "Enable the rack affinity rules." + type: "boolean" + requireRackAffinity: + description: "Indicates if the podAffinity rules will\ + \ be enforced. Default is false. If required, the\ + \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + requireRackAntiAffinity: + description: "Indicates if the podAntiAffinity rules\ + \ will be enforced. Default is true. If required,\ + \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + type: "object" + zone: + description: "Enable rack rules based on the failure domain\ + \ (availability zone) of the node." + properties: + enableHostAntiAffinity: + description: "Enable the host anti affinity. If set,\ + \ all the pods of the same rack will deployed on different\ + \ nodes of the same zone.Default is true." + type: "boolean" + enabled: + description: "Enable the rack affinity rules." + type: "boolean" + requireRackAffinity: + description: "Indicates if the podAffinity rules will\ + \ be enforced. Default is false. If required, the\ + \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + requireRackAntiAffinity: + description: "Indicates if the podAntiAffinity rules\ + \ will be enforced. Default is true. If required,\ + \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + requireRackHostAntiAffinity: + description: "Indicates if the podAntiAffinity rules\ + \ will be enforced for the host. Default is true.\ + \ If required, the affinity rule will be enforced\ + \ using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + type: "object" + type: "object" + description: "Racks configuration." + type: "object" + resourceSets: + additionalProperties: + properties: + rack: + description: "Place this resource set to a specific rack,\ + \ defined at .global.racks." + type: "string" + type: "object" + description: "Resource sets." + type: "object" + restartOnConfigMapChange: + description: | + By default, Kubernetes will not restart pods when only their configmap is changed. This setting will restart pods when their configmap is changed using an annotation that calculates the checksum of the configmap. + type: "boolean" storage: - description: Storage configuration. + description: "Storage configuration." properties: + existingStorageClassName: + description: "Indicates if an already existing storage class\ + \ should be used." + type: "string" storageClass: - description: Indicates if a StorageClass is used. The operator - will create the StorageClass if needed. + description: "Indicates if a StorageClass is used. The operator\ + \ will create the StorageClass if needed." properties: extraParams: additionalProperties: - type: string - description: Adds extra parameters for the StorageClass. - type: object - provisioner: - description: Indicates the provisioner property for the - StorageClass. - type: string - type: - description: Indicates the 'type' parameter for the StorageClass. - type: string + type: "string" + description: "Adds extra parameters for the StorageClass." + type: "object" fsType: - description: Indicates the 'fsType' parameter for the - StorageClass. - type: string + description: "Indicates the 'fsType' parameter for the\ + \ StorageClass." + type: "string" + provisioner: + description: "Indicates the provisioner property for the\ + \ StorageClass." + type: "string" reclaimPolicy: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: string - type: object - existingStorageClassName: - description: Indicates if an already existing storage class - should be used. - type: string - type: object + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "string" + type: + description: "Indicates the 'type' parameter for the StorageClass." + type: "string" + type: "object" + type: "object" tls: - description: TLS configuration for the cluster. + description: "TLS configuration for the cluster." properties: - ssCa: - description: "TLS configurations used by additional components,\ - \ such as the Bastion component." + autorecovery: + description: "TLS configurations related to the Autorecovery\ + \ component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + bookkeeper: + description: "TLS configurations related to the BookKeeper\ + \ component." properties: + enabled: + description: "Enable TLS." + type: "boolean" secretName: - description: Override the default secret name from where - to load the certificates. - type: string + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + broker: + description: "TLS configurations related to the Broker component." + properties: enabled: - description: Enable TLS. - type: boolean - type: object + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + brokerResourceSets: + additionalProperties: + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from\ + \ where to load the certificates." + type: "string" + type: "object" + description: "TLS configurations related to the Broker resource\ + \ sets." + type: "object" + caPath: + description: "Path in the container filesystem where the TLS\ + \ CA certificates are retrieved. It has to point to a certificate\ + \ file. The default value is /etc/ssl/certs/ca-certificates.crt." + type: "string" certProvisioner: - description: Certificate provisioner configuration. + description: "Certificate provisioner configuration." properties: - selfSigned: - description: Self signed certificate provisioner configuration. + acme: + description: "ACME certificate provisioner configuration." properties: - functionsWorker: - description: Functions worker self signed certificate - config. + broker: + description: "Broker self signed certificate config." properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" privateKey: - description: Cert-manager options for generating - the private key. + description: "Cert-manager options for generating\ + \ the private key." properties: - rotationPolicy: - type: string - encoding: - type: string algorithm: - type: string + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - includeDns: - description: Include dns name in the DNS names covered - by the certificate. - type: boolean + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + enabled: + description: "Generate self signed certificates for\ + \ broker, proxy and functions worker." + type: "boolean" + external: + additionalProperties: + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject\ + \ Alternative Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key\ + \ will be stored whe perComponent is enabled.\ + \ Required for external services. Internal\ + \ services pick up the secret name from the\ + \ tls config if not specified" + type: "string" + type: "object" + description: "External services self signed certificate\ + \ config (e.g., admin console, grafana). The key\ + \ is the service name, and the value contains generation\ + \ config" + type: "object" + issuer: + description: "ACME issuer configuration." + properties: + email: + description: "Email used for ACME registration." + type: "string" + name: + description: "Name of the Issuer resource." + type: "string" + privateKeySecretName: + description: "Secret storing the ACME account\ + \ private key." + type: "string" + server: + description: "ACME server URL." + type: "string" + solvers: + description: "ACME challenge solvers. Solvers\ + \ are evaluated in order; no domain-based routing" + items: + properties: + dns01: + description: "DNS01 solver configuration." + properties: + cloudDNS: + properties: + project: + type: "string" + serviceAccountSecretKey: + type: "string" + serviceAccountSecretName: + type: "string" + type: "object" + cloudflare: + properties: + apiTokenSecretKey: + type: "string" + apiTokenSecretName: + type: "string" + email: + type: "string" + type: "object" + route53: + properties: + hostedZoneId: + type: "string" + region: + type: "string" + type: "object" + type: "object" + http01: + description: "HTTP01 solver configuration." + properties: + ingressClass: + description: "Ingress class used for\ + \ HTTP01 challenge." + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" privateKey: - description: Cert-manager options for generating the - private key. + description: "Cert-manager options for generating\ + \ the private key." properties: - rotationPolicy: - type: string - encoding: - type: string algorithm: - type: string + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" size: - type: integer - type: object - autorecovery: - description: Autorecovery self signed certificate - config. + type: "integer" + type: "object" + proxy: + description: "Proxy self signed certificate config." properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" privateKey: - description: Cert-manager options for generating - the private key. + description: "Cert-manager options for generating\ + \ the private key." properties: - rotationPolicy: - type: string - encoding: - type: string algorithm: - type: string + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" size: - type: integer - type: object + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + type: "object" + selfSigned: + description: "Self signed certificate provisioner configuration." + properties: + autorecovery: + description: "Autorecovery self signed certificate\ + \ config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" bookkeeper: - description: Bookkeeper self signed certificate config. + description: "Bookkeeper self signed certificate config." properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" privateKey: - description: Cert-manager options for generating - the private key. + description: "Cert-manager options for generating\ + \ the private key." properties: - rotationPolicy: - type: string - encoding: - type: string algorithm: - type: string + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - proxy: - description: Proxy self signed certificate config. + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + broker: + description: "Broker self signed certificate config." properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" privateKey: - description: Cert-manager options for generating - the private key. + description: "Cert-manager options for generating\ + \ the private key." properties: - rotationPolicy: - type: string - encoding: - type: string algorithm: - type: string + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - zookeeper: - description: Zookeeper self signed certificate config. + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + caSecretName: + description: "Secret where to store the root CA certificate." + type: "string" + enabled: + description: "Generate self signed certificates for\ + \ broker, proxy and functions worker." + type: "boolean" + external: + additionalProperties: + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject\ + \ Alternative Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key\ + \ will be stored whe perComponent is enabled.\ + \ Required for external services. Internal\ + \ services pick up the secret name from the\ + \ tls config if not specified" + type: "string" + type: "object" + description: "External services self signed certificate\ + \ config (e.g., admin console, grafana). The key\ + \ is the service name, and the value contains generation\ + \ config" + type: "object" + functionsWorker: + description: "Functions worker self signed certificate\ + \ config." properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" privateKey: - description: Cert-manager options for generating - the private key. + description: "Cert-manager options for generating\ + \ the private key." properties: - rotationPolicy: - type: string - encoding: - type: string algorithm: - type: string + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - broker: - description: Broker self signed certificate config. + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + includeDns: + description: "Include dns name in the DNS names covered\ + \ by the certificate." + type: "boolean" + perComponent: + description: "Generate a different certificate for\ + \ each component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + proxy: + description: "Proxy self signed certificate config." properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" privateKey: - description: Cert-manager options for generating - the private key. + description: "Cert-manager options for generating\ + \ the private key." properties: - rotationPolicy: - type: string - encoding: - type: string algorithm: - type: string + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" size: - type: integer - type: object + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + zookeeper: + description: "Zookeeper self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - perComponent: - description: Generate a different certificate for - each component. - type: boolean - enabled: - description: "Generate self signed certificates for\ - \ broker, proxy and functions worker." - type: boolean - caSecretName: - description: Secret where to store the root CA certificate. - type: string - type: object - type: object - autorecovery: - description: TLS configurations related to the Autorecovery - component. - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - proxyResourceSets: - additionalProperties: - properties: - enabledWithBroker: - description: Enable TLS for the proxy to broker connections. - type: boolean - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - description: TLS configurations related to the Proxy resource - sets. - type: object + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + type: "object" + type: "object" defaultSecretName: - description: Secret name used by each component to load TLS - certificates. Each component can load a different secret - by setting the 'secretName' entry in the tls component spec. - type: string + description: "Secret name used by each component to load TLS\ + \ certificates. Each component can load a different secret\ + \ by setting the 'secretName' entry in the tls component\ + \ spec." + type: "string" enabled: - description: Deprecated. Use the 'enabled' field in each component - spec instead. - type: boolean - caPath: - description: Path in the container filesystem where the TLS - CA certificates are retrieved. It has to point to a certificate - file. The default value is /etc/ssl/certs/ca-certificates.crt. - type: string - zookeeper: - description: TLS configurations related to the ZooKeeper component. - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - brokerResourceSets: - additionalProperties: - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - description: TLS configurations related to the Broker resource - sets. - type: object + description: "Deprecated. Use the 'enabled' field in each\ + \ component spec instead." + type: "boolean" functionsWorker: - description: TLS configurations related to the Functions worker - component. + description: "TLS configurations related to the Functions\ + \ worker component." properties: - enabledWithBroker: - description: Enable TLS for the functions worker to broker - connections. - type: boolean - secretName: - description: Override the default secret name from where - to load the certificates. - type: string enabled: - description: Enable TLS. - type: boolean - type: object - broker: - description: TLS configurations related to the Broker component. - properties: + description: "Enable TLS." + type: "boolean" + enabledWithBroker: + description: "Enable TLS for the functions worker to broker\ + \ connections." + type: "boolean" secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" proxy: - description: TLS configurations related to the Proxy component. + description: "TLS configurations related to the Proxy component." properties: - enabledWithBroker: - description: Enable TLS for the proxy to broker connections. - type: boolean - secretName: - description: Override the default secret name from where - to load the certificates. - type: string enabled: - description: Enable TLS. - type: boolean - type: object - bookkeeper: - description: TLS configurations related to the BookKeeper - component. - properties: + description: "Enable TLS." + type: "boolean" + enabledWithBroker: + description: "Enable TLS for the proxy to broker connections." + type: "boolean" secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - type: object - clusterName: - description: Corresponds to the 'clusterName' field in the broker.conf. Defaults - to the value of the 'name' field - type: string - restartOnConfigMapChange: - description: | - By default, Kubernetes will not restart pods when only their configmap is changed. This setting will restart pods when their configmap is changed using an annotation that calculates the checksum of the configmap. - type: boolean - image: - description: Default Pulsar image to use. Any components can be - configured to use a different image. - type: string - auth: - description: | - Authentication and authorization configuration. - properties: - token: - description: Token based authentication configuration. - properties: - privateKeyFile: - description: Private key file name stored in the Secret. - Default is 'my-private.key' - type: string - initialize: - description: Initialize Secrets with new pair of keys - and tokens for the super user roles. The generated Secret - name is 'token-'. - type: boolean - superUserRoles: - description: Super user roles. - items: - type: string - type: array - proxyRoles: - description: Proxy roles. - items: - type: string - type: array - publicKeyFile: - description: Public key file name stored in the Secret. - Default is 'my-public.key' - type: string - type: object - enabled: - description: Enable authentication in the cluster. Default - is 'false'. - type: boolean - type: object - persistence: - description: | - If persistence is enabled, components that has state will be deployed with PersistentVolumeClaims, otherwise, for test purposes, they will be deployed with emptyDir - type: boolean - racks: - additionalProperties: - properties: - host: - description: Enable rack rules based on the hostname of - the node. - properties: - enabled: - description: Enable the rack affinity rules. - type: boolean - requireRackAntiAffinity: - description: "Indicates if the podAntiAffinity rules\ - \ will be enforced. Default is true. If required,\ - \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - requireRackAffinity: - description: "Indicates if the podAffinity rules will\ - \ be enforced. Default is false. If required, the\ - \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - type: object - zone: - description: Enable rack rules based on the failure domain - (availability zone) of the node. + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + proxyResourceSets: + additionalProperties: properties: - enableHostAntiAffinity: - description: "Enable the host anti affinity. If set,\ - \ all the pods of the same rack will deployed on different\ - \ nodes of the same zone.Default is true." - type: boolean - requireRackHostAntiAffinity: - description: "Indicates if the podAntiAffinity rules\ - \ will be enforced for the host. Default is true.\ - \ If required, the affinity rule will be enforced\ - \ using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean enabled: - description: Enable the rack affinity rules. - type: boolean - requireRackAntiAffinity: - description: "Indicates if the podAntiAffinity rules\ - \ will be enforced. Default is true. If required,\ - \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - requireRackAffinity: - description: "Indicates if the podAffinity rules will\ - \ be enforced. Default is false. If required, the\ - \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - type: object - type: object - description: Racks configuration. - type: object - resourceSets: - additionalProperties: - properties: - rack: - description: "Place this resource set to a specific rack,\ - \ defined at .global.racks." - type: string - type: object - description: Resource sets. - type: object - nodeSelectors: - additionalProperties: - type: string - description: "Global node selector. If set, this will apply to\ - \ all the components." - type: object - antiAffinity: - description: Pod anti affinity configuration. - properties: - host: - description: Indicates the reclaimPolicy property for the - StorageClass. + description: "Enable TLS." + type: "boolean" + enabledWithBroker: + description: "Enable TLS for the proxy to broker connections." + type: "boolean" + secretName: + description: "Override the default secret name from\ + \ where to load the certificates." + type: "string" + type: "object" + description: "TLS configurations related to the Proxy resource\ + \ sets." + type: "object" + ssCa: + description: "TLS configurations used by additional components,\ + \ such as the Bastion component." properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - zone: - description: Indicates the provisioner property for the StorageClass. + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + zookeeper: + description: "TLS configurations related to the ZooKeeper\ + \ component." properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - type: object + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + type: "object" zookeeperPlainSslStorePassword: description: "Use plain password in zookeeper server and client\ \ configuration. Default is false. Old versions of Apache Zookeeper\ \ (<3.8.0) does not support getting password from file. In that\ \ case, set this to true." - type: boolean - imagePullPolicy: - description: Default Pulsar image pull policy to use. Any components - can be configured to use a different image pull policy. Default - value is 'IfNotPresent'. - type: string + type: "boolean" required: - - name - type: object - type: object + - "name" + type: "object" + type: "object" status: properties: - lastApplied: - description: Last spec applied. - type: string conditions: description: |- Conditions: 1. Condition Ready: possible status are True or False. If False, the reason contains the error message. items: properties: - status: - type: string - reason: - type: string lastTransitionTime: - type: string + type: "string" + message: + type: "string" observedGeneration: - type: integer + type: "integer" + reason: + type: "string" + status: + type: "string" type: - type: string - message: - type: string - type: object - type: array - type: object - type: object + type: "string" + type: "object" + type: "array" + lastApplied: + description: "Last spec applied." + type: "string" + type: "object" + type: "object" served: true storage: true subresources: diff --git a/helm/kaap/crds/bastions.kaap.oss.datastax.com-v1.yml b/helm/kaap/crds/bastions.kaap.oss.datastax.com-v1.yml index dd18549e..19cbb512 100644 --- a/helm/kaap/crds/bastions.kaap.oss.datastax.com-v1.yml +++ b/helm/kaap/crds/bastions.kaap.oss.datastax.com-v1.yml @@ -1,20 +1,20 @@ # Generated by Fabric8 CRDGenerator, manual edits might get overwritten! -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition +apiVersion: "apiextensions.k8s.io/v1" +kind: "CustomResourceDefinition" metadata: - name: bastions.kaap.oss.datastax.com + name: "bastions.kaap.oss.datastax.com" spec: - group: kaap.oss.datastax.com + group: "kaap.oss.datastax.com" names: - kind: Bastion - plural: bastions + kind: "Bastion" + plural: "bastions" shortNames: - - ba - - bs - singular: bastion - scope: Namespaced + - "ba" + - "bs" + singular: "bastion" + scope: "Namespaced" versions: - - name: v1beta1 + - name: "v1beta1" schema: openAPIV3Schema: properties: @@ -22,1268 +22,1451 @@ spec: properties: bastion: properties: + annotations: + additionalProperties: + type: "string" + description: "Annotations to add to each resource (except pods)." + type: "object" + antiAffinity: + description: "Pod anti-affinity configuration. This override the\ + \ global value if set." + properties: + host: + description: "Indicates the reclaimPolicy property for the\ + \ StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + zone: + description: "Indicates the provisioner property for the StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + type: "object" config: - description: Configuration. + description: "Configuration." x-kubernetes-preserve-unknown-fields: true + env: + description: "Additional container env variables." + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" gracePeriod: - description: Termination grace period in seconds. + description: "Termination grace period in seconds." minimum: 0.0 - type: integer + type: "integer" + image: + description: "Override Pulsar image." + type: "string" + imagePullPolicy: + description: "Override image pull policy." + type: "string" imagePullSecrets: - description: Image pull secrets. + description: "Image pull secrets." items: properties: name: - type: string - type: object - type: array - image: - description: Override Pulsar image. - type: string - annotations: - additionalProperties: - type: string - description: Annotations to add to each resource (except pods). - type: object - podAnnotations: - additionalProperties: - type: string - description: Annotations to add to pod. - type: object - sidecars: - description: Sidecar containers + type: "string" + type: "object" + type: "array" + initContainers: + description: "Init containers" items: properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" lifecycle: properties: postStart: properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + type: "object" + preStop: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" livenessProbe: properties: - periodSeconds: - type: integer + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" failureThreshold: - type: integer - initialDelaySeconds: - type: integer + type: "integer" grpc: properties: port: - type: integer + type: "integer" service: - type: string - type: object + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer + type: "integer" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" timeoutSeconds: - type: integer + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer + scheme: + type: "string" + type: "object" initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object + type: "integer" + periodSeconds: + type: "integer" successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer + type: "integer" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" timeoutSeconds: - type: integer + type: "integer" + type: "object" + resizePolicy: + items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: + 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer + scheme: + type: "string" + type: "object" initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object + type: "integer" + periodSeconds: + type: "integer" successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer + type: "integer" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object + type: "integer" + type: "object" + stdin: + type: "boolean" stdinOnce: - type: boolean - ports: + type: "boolean" + terminationMessagePath: + type: "string" + terminationMessagePolicy: + type: "string" + tty: + type: "boolean" + volumeDevices: items: properties: - containerPort: - type: integer - hostPort: - type: integer + devicePath: + type: "string" name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: - properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: - properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array + type: "string" + type: "object" + type: "array" volumeMounts: items: properties: - readOnly: - type: boolean - subPathExpr: - type: string mountPath: - type: string + type: "string" mountPropagation: - type: string - subPath: - type: string + type: "string" name: - type: string - type: object - type: array - securityContext: + 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" + labels: + additionalProperties: + type: "string" + description: "Labels to add to each resource (except pods)." + type: "object" + matchLabels: + additionalProperties: + type: "string" + description: "Match labels selectors to add to each pod." + type: "object" + minReadySeconds: + description: "Min seconds to wait before considering the pod as\ + \ ready." + type: "integer" + nodeAffinity: + description: "Node affinity configuration." + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: + preference: properties: - add: + matchExpressions: items: - type: string - type: array - drop: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: items: - type: string - type: array - type: object - seLinuxOptions: - properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: + 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" + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + type: "object" + type: "array" + type: "object" + type: "object" + nodeSelectors: + additionalProperties: + type: "string" + description: "Additional node selectors." + type: "object" + podAnnotations: + additionalProperties: + type: "string" + description: "Annotations to add to pod." + type: "object" + podLabels: + additionalProperties: + type: "string" + description: "Labels to add to each pod." + type: "object" + replicas: + description: "Number of desired replicas." + type: "integer" + resources: + description: "Resources requirements." + properties: + claims: + items: properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + securityContext: + description: "Subset of PodSecurityContext for basic UID, GID,\ + \ and volume access control." + properties: + fsGroup: + type: "integer" + fsGroupChangePolicy: + type: "string" + runAsGroup: + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + type: "integer" + supplementalGroups: + items: + type: "integer" + type: "array" + type: "object" + serviceAccountName: + description: "Service account name for the resource." + type: "string" + sidecars: + description: "Sidecar containers" + items: + properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: items: properties: - devicePath: - type: string name: - type: string - type: object - type: array - type: object - type: array - env: - description: Additional container env variables. - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - labels: - additionalProperties: - type: string - description: Labels to add to each resource (except pods). - type: object - initContainers: - description: Init containers - items: - properties: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" lifecycle: properties: postStart: properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + type: "object" + preStop: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" livenessProbe: properties: - periodSeconds: - type: integer + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" failureThreshold: - type: integer - initialDelaySeconds: - type: integer + type: "integer" grpc: properties: port: - type: integer + type: "integer" service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer + scheme: + type: "string" + type: "object" initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object + type: "integer" + periodSeconds: + type: "integer" successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer + type: "integer" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" timeoutSeconds: - type: integer + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer + scheme: + type: "string" + type: "object" initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object + type: "integer" + periodSeconds: + type: "integer" successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer + type: "integer" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: + type: "integer" + type: "object" + resizePolicy: items: properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: - properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: properties: - optional: - type: boolean name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" securityContext: properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object allowPrivilegeEscalation: - type: boolean + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" capabilities: properties: add: items: - type: string - type: array + type: "string" + type: "array" drop: items: - type: string - type: array - type: object + 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: properties: + level: + type: "string" role: - type: string + type: "string" type: - type: string + type: "string" user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string + type: "string" + type: "object" seccompProfile: properties: - type: - type: string localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: properties: devicePath: - type: string + type: "string" + name: + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + properties: + mountPath: + type: "string" + mountPropagation: + type: "string" name: - type: string - type: object - type: array - type: object - type: array + 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" + targetProxy: + description: "Indicates to connect to proxy or the broker. The\ + \ default value depends whether Proxy is deployed or not." + type: "boolean" tolerations: - description: Pod tolerations. + description: "Pod tolerations." items: properties: + effect: + type: "string" key: - type: string + type: "string" operator: - type: string + type: "string" tolerationSeconds: - type: integer + type: "integer" value: - type: string - effect: - type: string - type: object - type: array - replicas: - description: Number of desired replicas. - type: integer - nodeAffinity: - description: Node affinity configuration. - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - weight: - type: integer - preference: - properties: - matchFields: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchFields: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: array - type: object - type: object - nodeSelectors: - additionalProperties: - type: string - description: Additional node selectors. - type: object - resources: - description: Resources requirements. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - targetProxy: - description: Indicates to connect to proxy or the broker. The - default value depends whether Proxy is deployed or not. - type: boolean + type: "string" + type: "object" + type: "array" + type: "object" + global: + properties: antiAffinity: - description: Pod anti-affinity configuration. This override the - global value if set. + description: "Pod anti affinity configuration." properties: host: - description: Indicates the reclaimPolicy property for the - StorageClass. + description: "Indicates the reclaimPolicy property for the\ + \ StorageClass." properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" zone: - description: Indicates the provisioner property for the StorageClass. + description: "Indicates the provisioner property for the StorageClass." properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - type: object - imagePullPolicy: - description: Override image pull policy. - type: string - podLabels: - additionalProperties: - type: string - description: Labels to add to each pod. - type: object - matchLabels: - additionalProperties: - type: string - description: Match labels selectors to add to each pod. - type: object - serviceAccountName: - description: Service account name for the resource. - type: string - type: object - global: - properties: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + type: "object" + auth: + description: | + Authentication and authorization configuration. + properties: + enabled: + description: "Enable authentication in the cluster. Default\ + \ is 'false'." + type: "boolean" + token: + description: "Token based authentication configuration." + properties: + initialize: + description: "Initialize Secrets with new pair of keys\ + \ and tokens for the super user roles. The generated\ + \ Secret name is 'token-'." + type: "boolean" + privateKeyFile: + description: "Private key file name stored in the Secret.\ + \ Default is 'my-private.key'" + type: "string" + proxyRoles: + description: "Proxy roles." + items: + type: "string" + type: "array" + publicKeyFile: + description: "Public key file name stored in the Secret.\ + \ Default is 'my-public.key'" + type: "string" + superUserRoles: + description: "Super user roles." + items: + type: "string" + type: "array" + type: "object" + type: "object" + clusterName: + description: "Corresponds to the 'clusterName' field in the broker.conf.\ + \ Defaults to the value of the 'name' field" + type: "string" components: - description: Pulsar cluster components names. + description: "Pulsar cluster components names." properties: - brokerBaseName: - description: Broker base name. Default value is 'broker'. - type: string - zookeeperBaseName: - description: Zookeeper base name. Default value is 'zookeeper'. - type: string - functionsWorkerBaseName: - description: Functions Worker base name. Default value is - 'function'. - type: string autorecoveryBaseName: - description: Autorecovery base name. Default value is 'autorecovery'. - type: string - bookkeeperBaseName: - description: BookKeeper base name. Default value is 'bookkeeper'. - type: string + description: "Autorecovery base name. Default value is 'autorecovery'." + type: "string" bastionBaseName: - description: Bastion base name. Default value is 'bastion'. - type: string + description: "Bastion base name. Default value is 'bastion'." + type: "string" + bookkeeperBaseName: + description: "BookKeeper base name. Default value is 'bookkeeper'." + type: "string" + brokerBaseName: + description: "Broker base name. Default value is 'broker'." + type: "string" + functionsWorkerBaseName: + description: "Functions Worker base name. Default value is\ + \ 'function'." + type: "string" proxyBaseName: - description: Proxy base name. Default value is 'proxy'. - type: string - type: object + description: "Proxy base name. Default value is 'proxy'." + type: "string" + zookeeperBaseName: + description: "Zookeeper base name. Default value is 'zookeeper'." + type: "string" + type: "object" dnsConfig: description: | Override default DNS config for each pod. Note that because we use fully qualified service names for intra @@ -1295,565 +1478,814 @@ spec: properties: nameservers: items: - type: string - type: array - searches: - items: - type: string - type: array + type: "string" + type: "array" options: items: properties: - value: - type: string name: - type: string - type: object - type: array - type: object + type: "string" + value: + type: "string" + type: "object" + type: "array" + searches: + items: + type: "string" + type: "array" + type: "object" dnsName: - description: Public dns name for the cluster's load balancer. - type: string + description: "Public dns name for the cluster's load balancer." + type: "string" + image: + description: "Default Pulsar image to use. Any components can\ + \ be configured to use a different image." + type: "string" + imagePullPolicy: + description: "Default Pulsar image pull policy to use. Any components\ + \ can be configured to use a different image pull policy. Default\ + \ value is 'IfNotPresent'." + type: "string" kubernetesClusterDomain: description: | - The domain name for your kubernetes cluster. - This domain is documented here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#a-aaaa-records-1 . - It's used to fully qualify service names when configuring Pulsar. - The default value is 'cluster.local'. - type: string - priorityClassName: - description: Priority class name to attach to each pod. - type: string - name: - description: Name of the Pulsar cluster spec. This is used as - a prefix for managed Kubernetes resources. - type: string + The domain name for your kubernetes cluster. + This domain is documented here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#a-aaaa-records-1 . + It's used to fully qualify service names when configuring Pulsar. + The default value is 'cluster.local'. + type: "string" + name: + description: "Name of the Pulsar cluster spec. This is used as\ + \ a prefix for managed Kubernetes resources." + type: "string" + nodeSelectors: + additionalProperties: + type: "string" + description: "Global node selector. If set, this will apply to\ + \ all the components." + type: "object" + persistence: + description: | + If persistence is enabled, components that has state will be deployed with PersistentVolumeClaims, otherwise, for test purposes, they will be deployed with emptyDir + type: "boolean" + priorityClassName: + description: "Priority class name to attach to each pod." + type: "string" + racks: + additionalProperties: + properties: + host: + description: "Enable rack rules based on the hostname of\ + \ the node." + properties: + enabled: + description: "Enable the rack affinity rules." + type: "boolean" + requireRackAffinity: + description: "Indicates if the podAffinity rules will\ + \ be enforced. Default is false. If required, the\ + \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + requireRackAntiAffinity: + description: "Indicates if the podAntiAffinity rules\ + \ will be enforced. Default is true. If required,\ + \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + type: "object" + zone: + description: "Enable rack rules based on the failure domain\ + \ (availability zone) of the node." + properties: + enableHostAntiAffinity: + description: "Enable the host anti affinity. If set,\ + \ all the pods of the same rack will deployed on different\ + \ nodes of the same zone.Default is true." + type: "boolean" + enabled: + description: "Enable the rack affinity rules." + type: "boolean" + requireRackAffinity: + description: "Indicates if the podAffinity rules will\ + \ be enforced. Default is false. If required, the\ + \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + requireRackAntiAffinity: + description: "Indicates if the podAntiAffinity rules\ + \ will be enforced. Default is true. If required,\ + \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + requireRackHostAntiAffinity: + description: "Indicates if the podAntiAffinity rules\ + \ will be enforced for the host. Default is true.\ + \ If required, the affinity rule will be enforced\ + \ using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + type: "object" + type: "object" + description: "Racks configuration." + type: "object" + resourceSets: + additionalProperties: + properties: + rack: + description: "Place this resource set to a specific rack,\ + \ defined at .global.racks." + type: "string" + type: "object" + description: "Resource sets." + type: "object" + restartOnConfigMapChange: + description: | + By default, Kubernetes will not restart pods when only their configmap is changed. This setting will restart pods when their configmap is changed using an annotation that calculates the checksum of the configmap. + type: "boolean" storage: - description: Storage configuration. + description: "Storage configuration." properties: + existingStorageClassName: + description: "Indicates if an already existing storage class\ + \ should be used." + type: "string" storageClass: - description: Indicates if a StorageClass is used. The operator - will create the StorageClass if needed. + description: "Indicates if a StorageClass is used. The operator\ + \ will create the StorageClass if needed." properties: extraParams: additionalProperties: - type: string - description: Adds extra parameters for the StorageClass. - type: object - provisioner: - description: Indicates the provisioner property for the - StorageClass. - type: string - type: - description: Indicates the 'type' parameter for the StorageClass. - type: string + type: "string" + description: "Adds extra parameters for the StorageClass." + type: "object" fsType: - description: Indicates the 'fsType' parameter for the - StorageClass. - type: string + description: "Indicates the 'fsType' parameter for the\ + \ StorageClass." + type: "string" + provisioner: + description: "Indicates the provisioner property for the\ + \ StorageClass." + type: "string" reclaimPolicy: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: string - type: object - existingStorageClassName: - description: Indicates if an already existing storage class - should be used. - type: string - type: object + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "string" + type: + description: "Indicates the 'type' parameter for the StorageClass." + type: "string" + type: "object" + type: "object" tls: - description: TLS configuration for the cluster. + description: "TLS configuration for the cluster." properties: - ssCa: - description: "TLS configurations used by additional components,\ - \ such as the Bastion component." + autorecovery: + description: "TLS configurations related to the Autorecovery\ + \ component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + bookkeeper: + description: "TLS configurations related to the BookKeeper\ + \ component." properties: + enabled: + description: "Enable TLS." + type: "boolean" secretName: - description: Override the default secret name from where - to load the certificates. - type: string + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + broker: + description: "TLS configurations related to the Broker component." + properties: enabled: - description: Enable TLS. - type: boolean - type: object + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + brokerResourceSets: + additionalProperties: + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from\ + \ where to load the certificates." + type: "string" + type: "object" + description: "TLS configurations related to the Broker resource\ + \ sets." + type: "object" + caPath: + description: "Path in the container filesystem where the TLS\ + \ CA certificates are retrieved. It has to point to a certificate\ + \ file. The default value is /etc/ssl/certs/ca-certificates.crt." + type: "string" certProvisioner: - description: Certificate provisioner configuration. + description: "Certificate provisioner configuration." properties: - selfSigned: - description: Self signed certificate provisioner configuration. + acme: + description: "ACME certificate provisioner configuration." properties: - functionsWorker: - description: Functions worker self signed certificate - config. + broker: + description: "Broker self signed certificate config." properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" privateKey: - description: Cert-manager options for generating - the private key. + description: "Cert-manager options for generating\ + \ the private key." properties: - rotationPolicy: - type: string - encoding: - type: string algorithm: - type: string + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - includeDns: - description: Include dns name in the DNS names covered - by the certificate. - type: boolean + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + enabled: + description: "Generate self signed certificates for\ + \ broker, proxy and functions worker." + type: "boolean" + external: + additionalProperties: + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject\ + \ Alternative Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key\ + \ will be stored whe perComponent is enabled.\ + \ Required for external services. Internal\ + \ services pick up the secret name from the\ + \ tls config if not specified" + type: "string" + type: "object" + description: "External services self signed certificate\ + \ config (e.g., admin console, grafana). The key\ + \ is the service name, and the value contains generation\ + \ config" + type: "object" + issuer: + description: "ACME issuer configuration." + properties: + email: + description: "Email used for ACME registration." + type: "string" + name: + description: "Name of the Issuer resource." + type: "string" + privateKeySecretName: + description: "Secret storing the ACME account\ + \ private key." + type: "string" + server: + description: "ACME server URL." + type: "string" + solvers: + description: "ACME challenge solvers. Solvers\ + \ are evaluated in order; no domain-based routing" + items: + properties: + dns01: + description: "DNS01 solver configuration." + properties: + cloudDNS: + properties: + project: + type: "string" + serviceAccountSecretKey: + type: "string" + serviceAccountSecretName: + type: "string" + type: "object" + cloudflare: + properties: + apiTokenSecretKey: + type: "string" + apiTokenSecretName: + type: "string" + email: + type: "string" + type: "object" + route53: + properties: + hostedZoneId: + type: "string" + region: + type: "string" + type: "object" + type: "object" + http01: + description: "HTTP01 solver configuration." + properties: + ingressClass: + description: "Ingress class used for\ + \ HTTP01 challenge." + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" privateKey: - description: Cert-manager options for generating the - private key. + description: "Cert-manager options for generating\ + \ the private key." properties: - rotationPolicy: - type: string - encoding: - type: string algorithm: - type: string + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" size: - type: integer - type: object - autorecovery: - description: Autorecovery self signed certificate - config. + type: "integer" + type: "object" + proxy: + description: "Proxy self signed certificate config." properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" privateKey: - description: Cert-manager options for generating - the private key. + description: "Cert-manager options for generating\ + \ the private key." properties: - rotationPolicy: - type: string - encoding: - type: string algorithm: - type: string + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" size: - type: integer - type: object + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + type: "object" + selfSigned: + description: "Self signed certificate provisioner configuration." + properties: + autorecovery: + description: "Autorecovery self signed certificate\ + \ config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" bookkeeper: - description: Bookkeeper self signed certificate config. + description: "Bookkeeper self signed certificate config." properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" privateKey: - description: Cert-manager options for generating - the private key. + description: "Cert-manager options for generating\ + \ the private key." properties: - rotationPolicy: - type: string - encoding: - type: string algorithm: - type: string + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - proxy: - description: Proxy self signed certificate config. + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + broker: + description: "Broker self signed certificate config." properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" privateKey: - description: Cert-manager options for generating - the private key. + description: "Cert-manager options for generating\ + \ the private key." properties: - rotationPolicy: - type: string - encoding: - type: string algorithm: - type: string + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - zookeeper: - description: Zookeeper self signed certificate config. + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + caSecretName: + description: "Secret where to store the root CA certificate." + type: "string" + enabled: + description: "Generate self signed certificates for\ + \ broker, proxy and functions worker." + type: "boolean" + external: + additionalProperties: + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject\ + \ Alternative Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key\ + \ will be stored whe perComponent is enabled.\ + \ Required for external services. Internal\ + \ services pick up the secret name from the\ + \ tls config if not specified" + type: "string" + type: "object" + description: "External services self signed certificate\ + \ config (e.g., admin console, grafana). The key\ + \ is the service name, and the value contains generation\ + \ config" + type: "object" + functionsWorker: + description: "Functions worker self signed certificate\ + \ config." properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" privateKey: - description: Cert-manager options for generating - the private key. + description: "Cert-manager options for generating\ + \ the private key." properties: - rotationPolicy: - type: string - encoding: - type: string algorithm: - type: string + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - broker: - description: Broker self signed certificate config. + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + includeDns: + description: "Include dns name in the DNS names covered\ + \ by the certificate." + type: "boolean" + perComponent: + description: "Generate a different certificate for\ + \ each component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + proxy: + description: "Proxy self signed certificate config." properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" privateKey: - description: Cert-manager options for generating - the private key. + description: "Cert-manager options for generating\ + \ the private key." properties: - rotationPolicy: - type: string - encoding: - type: string algorithm: - type: string + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" size: - type: integer - type: object + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + zookeeper: + description: "Zookeeper self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - perComponent: - description: Generate a different certificate for - each component. - type: boolean - enabled: - description: "Generate self signed certificates for\ - \ broker, proxy and functions worker." - type: boolean - caSecretName: - description: Secret where to store the root CA certificate. - type: string - type: object - type: object - autorecovery: - description: TLS configurations related to the Autorecovery - component. - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - proxyResourceSets: - additionalProperties: - properties: - enabledWithBroker: - description: Enable TLS for the proxy to broker connections. - type: boolean - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - description: TLS configurations related to the Proxy resource - sets. - type: object + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + type: "object" + type: "object" defaultSecretName: - description: Secret name used by each component to load TLS - certificates. Each component can load a different secret - by setting the 'secretName' entry in the tls component spec. - type: string + description: "Secret name used by each component to load TLS\ + \ certificates. Each component can load a different secret\ + \ by setting the 'secretName' entry in the tls component\ + \ spec." + type: "string" enabled: - description: Deprecated. Use the 'enabled' field in each component - spec instead. - type: boolean - caPath: - description: Path in the container filesystem where the TLS - CA certificates are retrieved. It has to point to a certificate - file. The default value is /etc/ssl/certs/ca-certificates.crt. - type: string - zookeeper: - description: TLS configurations related to the ZooKeeper component. - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - brokerResourceSets: - additionalProperties: - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - description: TLS configurations related to the Broker resource - sets. - type: object + description: "Deprecated. Use the 'enabled' field in each\ + \ component spec instead." + type: "boolean" functionsWorker: - description: TLS configurations related to the Functions worker - component. + description: "TLS configurations related to the Functions\ + \ worker component." properties: - enabledWithBroker: - description: Enable TLS for the functions worker to broker - connections. - type: boolean - secretName: - description: Override the default secret name from where - to load the certificates. - type: string enabled: - description: Enable TLS. - type: boolean - type: object - broker: - description: TLS configurations related to the Broker component. - properties: + description: "Enable TLS." + type: "boolean" + enabledWithBroker: + description: "Enable TLS for the functions worker to broker\ + \ connections." + type: "boolean" secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" proxy: - description: TLS configurations related to the Proxy component. + description: "TLS configurations related to the Proxy component." properties: - enabledWithBroker: - description: Enable TLS for the proxy to broker connections. - type: boolean - secretName: - description: Override the default secret name from where - to load the certificates. - type: string enabled: - description: Enable TLS. - type: boolean - type: object - bookkeeper: - description: TLS configurations related to the BookKeeper - component. - properties: + description: "Enable TLS." + type: "boolean" + enabledWithBroker: + description: "Enable TLS for the proxy to broker connections." + type: "boolean" secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - type: object - clusterName: - description: Corresponds to the 'clusterName' field in the broker.conf. Defaults - to the value of the 'name' field - type: string - restartOnConfigMapChange: - description: | - By default, Kubernetes will not restart pods when only their configmap is changed. This setting will restart pods when their configmap is changed using an annotation that calculates the checksum of the configmap. - type: boolean - image: - description: Default Pulsar image to use. Any components can be - configured to use a different image. - type: string - auth: - description: | - Authentication and authorization configuration. - properties: - token: - description: Token based authentication configuration. - properties: - privateKeyFile: - description: Private key file name stored in the Secret. - Default is 'my-private.key' - type: string - initialize: - description: Initialize Secrets with new pair of keys - and tokens for the super user roles. The generated Secret - name is 'token-'. - type: boolean - superUserRoles: - description: Super user roles. - items: - type: string - type: array - proxyRoles: - description: Proxy roles. - items: - type: string - type: array - publicKeyFile: - description: Public key file name stored in the Secret. - Default is 'my-public.key' - type: string - type: object - enabled: - description: Enable authentication in the cluster. Default - is 'false'. - type: boolean - type: object - persistence: - description: | - If persistence is enabled, components that has state will be deployed with PersistentVolumeClaims, otherwise, for test purposes, they will be deployed with emptyDir - type: boolean - racks: - additionalProperties: - properties: - host: - description: Enable rack rules based on the hostname of - the node. - properties: - enabled: - description: Enable the rack affinity rules. - type: boolean - requireRackAntiAffinity: - description: "Indicates if the podAntiAffinity rules\ - \ will be enforced. Default is true. If required,\ - \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - requireRackAffinity: - description: "Indicates if the podAffinity rules will\ - \ be enforced. Default is false. If required, the\ - \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - type: object - zone: - description: Enable rack rules based on the failure domain - (availability zone) of the node. + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + proxyResourceSets: + additionalProperties: properties: - enableHostAntiAffinity: - description: "Enable the host anti affinity. If set,\ - \ all the pods of the same rack will deployed on different\ - \ nodes of the same zone.Default is true." - type: boolean - requireRackHostAntiAffinity: - description: "Indicates if the podAntiAffinity rules\ - \ will be enforced for the host. Default is true.\ - \ If required, the affinity rule will be enforced\ - \ using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean enabled: - description: Enable the rack affinity rules. - type: boolean - requireRackAntiAffinity: - description: "Indicates if the podAntiAffinity rules\ - \ will be enforced. Default is true. If required,\ - \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - requireRackAffinity: - description: "Indicates if the podAffinity rules will\ - \ be enforced. Default is false. If required, the\ - \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - type: object - type: object - description: Racks configuration. - type: object - resourceSets: - additionalProperties: - properties: - rack: - description: "Place this resource set to a specific rack,\ - \ defined at .global.racks." - type: string - type: object - description: Resource sets. - type: object - nodeSelectors: - additionalProperties: - type: string - description: "Global node selector. If set, this will apply to\ - \ all the components." - type: object - antiAffinity: - description: Pod anti affinity configuration. - properties: - host: - description: Indicates the reclaimPolicy property for the - StorageClass. + description: "Enable TLS." + type: "boolean" + enabledWithBroker: + description: "Enable TLS for the proxy to broker connections." + type: "boolean" + secretName: + description: "Override the default secret name from\ + \ where to load the certificates." + type: "string" + type: "object" + description: "TLS configurations related to the Proxy resource\ + \ sets." + type: "object" + ssCa: + description: "TLS configurations used by additional components,\ + \ such as the Bastion component." properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - zone: - description: Indicates the provisioner property for the StorageClass. + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + zookeeper: + description: "TLS configurations related to the ZooKeeper\ + \ component." properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - type: object + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + type: "object" zookeeperPlainSslStorePassword: description: "Use plain password in zookeeper server and client\ \ configuration. Default is false. Old versions of Apache Zookeeper\ \ (<3.8.0) does not support getting password from file. In that\ \ case, set this to true." - type: boolean - imagePullPolicy: - description: Default Pulsar image pull policy to use. Any components - can be configured to use a different image pull policy. Default - value is 'IfNotPresent'. - type: string + type: "boolean" required: - - name - type: object - type: object + - "name" + type: "object" + type: "object" status: properties: - lastApplied: - description: Last spec applied. - type: string conditions: description: |- Conditions: 1. Condition Ready: possible status are True or False. If False, the reason contains the error message. items: properties: - status: - type: string - reason: - type: string lastTransitionTime: - type: string + type: "string" + message: + type: "string" observedGeneration: - type: integer + type: "integer" + reason: + type: "string" + status: + type: "string" type: - type: string - message: - type: string - type: object - type: array - type: object - type: object + type: "string" + type: "object" + type: "array" + lastApplied: + description: "Last spec applied." + type: "string" + type: "object" + type: "object" served: true storage: true subresources: diff --git a/helm/kaap/crds/bookkeepers.kaap.oss.datastax.com-v1.yml b/helm/kaap/crds/bookkeepers.kaap.oss.datastax.com-v1.yml index 70f13a8d..9a6899bc 100644 --- a/helm/kaap/crds/bookkeepers.kaap.oss.datastax.com-v1.yml +++ b/helm/kaap/crds/bookkeepers.kaap.oss.datastax.com-v1.yml @@ -1,4994 +1,5638 @@ # Generated by Fabric8 CRDGenerator, manual edits might get overwritten! -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition +apiVersion: "apiextensions.k8s.io/v1" +kind: "CustomResourceDefinition" metadata: - name: bookkeepers.kaap.oss.datastax.com + name: "bookkeepers.kaap.oss.datastax.com" spec: - group: kaap.oss.datastax.com + group: "kaap.oss.datastax.com" names: - kind: BookKeeper - plural: bookkeepers + kind: "BookKeeper" + plural: "bookkeepers" shortNames: - - bk - singular: bookkeeper - scope: Namespaced + - "bk" + singular: "bookkeeper" + scope: "Namespaced" versions: - - name: v1beta1 + - name: "v1beta1" schema: openAPIV3Schema: properties: spec: properties: - global: + bookkeeper: properties: - components: - description: Pulsar cluster components names. - properties: - brokerBaseName: - description: Broker base name. Default value is 'broker'. - type: string - zookeeperBaseName: - description: Zookeeper base name. Default value is 'zookeeper'. - type: string - functionsWorkerBaseName: - description: Functions Worker base name. Default value is - 'function'. - type: string - autorecoveryBaseName: - description: Autorecovery base name. Default value is 'autorecovery'. - type: string - bookkeeperBaseName: - description: BookKeeper base name. Default value is 'bookkeeper'. - type: string - bastionBaseName: - description: Bastion base name. Default value is 'bastion'. - type: string - proxyBaseName: - description: Proxy base name. Default value is 'proxy'. - type: string - type: object - dnsConfig: - description: | - Override default DNS config for each pod. Note that because we use fully qualified service names for intra - cluster networking with Pulsar components, we set the ndots value to 4 (the default is 5). This prevents - unnecessary DNS lookups for the fully qualified service names that would be guaranteed to result in NXDOMAIN. - For example, the name 'pulsar-broker.pulsar.svc.cluster.local' has 4 dots, so it would be resolved directly - instead of appending the configured search domains. - More info here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config. + additionalVolumes: + description: "Mount additional volumes to the pod." properties: - nameservers: - items: - type: string - type: array - searches: - items: - type: string - type: array - options: + mounts: + description: "Mount points for the additional volumes" items: properties: - value: - type: string + mountPath: + type: "string" + mountPropagation: + type: "string" name: - type: string - type: object - type: array - type: object - dnsName: - description: Public dns name for the cluster's load balancer. - type: string - kubernetesClusterDomain: - description: | - The domain name for your kubernetes cluster. - This domain is documented here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#a-aaaa-records-1 . - It's used to fully qualify service names when configuring Pulsar. - The default value is 'cluster.local'. - type: string - priorityClassName: - description: Priority class name to attach to each pod. - type: string - name: - description: Name of the Pulsar cluster spec. This is used as - a prefix for managed Kubernetes resources. - type: string - storage: - description: Storage configuration. - properties: - storageClass: - description: Indicates if a StorageClass is used. The operator - will create the StorageClass if needed. - properties: - extraParams: - additionalProperties: - type: string - description: Adds extra parameters for the StorageClass. - type: object - provisioner: - description: Indicates the provisioner property for the - StorageClass. - type: string - type: - description: Indicates the 'type' parameter for the StorageClass. - type: string - fsType: - description: Indicates the 'fsType' parameter for the - StorageClass. - type: string - reclaimPolicy: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: string - type: object - existingStorageClassName: - description: Indicates if an already existing storage class - should be used. - type: string - type: object - tls: - description: TLS configuration for the cluster. - properties: - ssCa: - description: "TLS configurations used by additional components,\ - \ such as the Bastion component." - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - certProvisioner: - description: Certificate provisioner configuration. - properties: - selfSigned: - description: Self signed certificate provisioner configuration. - properties: - functionsWorker: - description: Functions worker self signed certificate - config. - properties: - privateKey: - description: Cert-manager options for generating - the private key. - properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - includeDns: - description: Include dns name in the DNS names covered - by the certificate. - type: boolean - privateKey: - description: Cert-manager options for generating the - private key. - properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - autorecovery: - description: Autorecovery self signed certificate - config. - properties: - privateKey: - description: Cert-manager options for generating - the private key. - properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - bookkeeper: - description: Bookkeeper self signed certificate config. - properties: - privateKey: - description: Cert-manager options for generating - the private key. - properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - proxy: - description: Proxy self signed certificate config. - properties: - privateKey: - description: Cert-manager options for generating - the private key. - properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - zookeeper: - description: Zookeeper self signed certificate config. - properties: - privateKey: - description: Cert-manager options for generating - the private key. + type: "string" + readOnly: + type: "boolean" + recursiveReadOnly: + type: "string" + subPath: + type: "string" + subPathExpr: + type: "string" + type: "object" + type: "array" + volumes: + description: "Additional volumes to be mounted to the pod" + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: "string" + partition: + type: "integer" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + azureDisk: + properties: + cachingMode: + type: "string" + diskName: + type: "string" + diskURI: + type: "string" + fsType: + type: "string" + kind: + type: "string" + readOnly: + type: "boolean" + type: "object" + azureFile: + properties: + readOnly: + type: "boolean" + secretName: + type: "string" + shareName: + type: "string" + type: "object" + cephfs: + properties: + monitors: + items: + type: "string" + type: "array" + path: + type: "string" + readOnly: + type: "boolean" + secretFile: + type: "string" + secretRef: + properties: + name: + type: "string" + type: "object" + user: + type: "string" + type: "object" + cinder: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + volumeID: + type: "string" + type: "object" + configMap: + properties: + defaultMode: + type: "integer" + items: + items: properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - broker: - description: Broker self signed certificate config. - properties: - privateKey: - description: Cert-manager options for generating - the private key. + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + csi: + properties: + driver: + type: "string" + fsType: + type: "string" + nodePublishSecretRef: + properties: + name: + type: "string" + type: "object" + readOnly: + type: "boolean" + volumeAttributes: + additionalProperties: + type: "string" + type: "object" + type: "object" + downwardAPI: + properties: + defaultMode: + type: "integer" + items: + items: properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - perComponent: - description: Generate a different certificate for - each component. - type: boolean - enabled: - description: "Generate self signed certificates for\ - \ broker, proxy and functions worker." - type: boolean - caSecretName: - description: Secret where to store the root CA certificate. - type: string - type: object - type: object - autorecovery: - description: TLS configurations related to the Autorecovery - component. - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - proxyResourceSets: - additionalProperties: - properties: - enabledWithBroker: - description: Enable TLS for the proxy to broker connections. - type: boolean - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - description: TLS configurations related to the Proxy resource - sets. - type: object - defaultSecretName: - description: Secret name used by each component to load TLS - certificates. Each component can load a different secret - by setting the 'secretName' entry in the tls component spec. - type: string - enabled: - description: Deprecated. Use the 'enabled' field in each component - spec instead. - type: boolean - caPath: - description: Path in the container filesystem where the TLS - CA certificates are retrieved. It has to point to a certificate - file. The default value is /etc/ssl/certs/ca-certificates.crt. - type: string - zookeeper: - description: TLS configurations related to the ZooKeeper component. - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - brokerResourceSets: - additionalProperties: - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - description: TLS configurations related to the Broker resource - sets. - type: object - functionsWorker: - description: TLS configurations related to the Functions worker - component. - properties: - enabledWithBroker: - description: Enable TLS for the functions worker to broker - connections. - type: boolean - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - broker: - description: TLS configurations related to the Broker component. - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - proxy: - description: TLS configurations related to the Proxy component. - properties: - enabledWithBroker: - description: Enable TLS for the proxy to broker connections. - type: boolean - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - bookkeeper: - description: TLS configurations related to the BookKeeper - component. - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - type: object - clusterName: - description: Corresponds to the 'clusterName' field in the broker.conf. Defaults - to the value of the 'name' field - type: string - restartOnConfigMapChange: - description: | - By default, Kubernetes will not restart pods when only their configmap is changed. This setting will restart pods when their configmap is changed using an annotation that calculates the checksum of the configmap. - type: boolean - image: - description: Default Pulsar image to use. Any components can be - configured to use a different image. - type: string - auth: - description: | - Authentication and authorization configuration. - properties: - token: - description: Token based authentication configuration. - properties: - privateKeyFile: - description: Private key file name stored in the Secret. - Default is 'my-private.key' - type: string - initialize: - description: Initialize Secrets with new pair of keys - and tokens for the super user roles. The generated Secret - name is 'token-'. - type: boolean - superUserRoles: - description: Super user roles. - items: - type: string - type: array - proxyRoles: - description: Proxy roles. - items: - type: string - type: array - publicKeyFile: - description: Public key file name stored in the Secret. - Default is 'my-public.key' - type: string - type: object - enabled: - description: Enable authentication in the cluster. Default - is 'false'. - type: boolean - type: object - persistence: - description: | - If persistence is enabled, components that has state will be deployed with PersistentVolumeClaims, otherwise, for test purposes, they will be deployed with emptyDir - type: boolean - racks: - additionalProperties: - properties: - host: - description: Enable rack rules based on the hostname of - the node. - properties: - enabled: - description: Enable the rack affinity rules. - type: boolean - requireRackAntiAffinity: - description: "Indicates if the podAntiAffinity rules\ - \ will be enforced. Default is true. If required,\ - \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - requireRackAffinity: - description: "Indicates if the podAffinity rules will\ - \ be enforced. Default is false. If required, the\ - \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - type: object - zone: - description: Enable rack rules based on the failure domain - (availability zone) of the node. - properties: - enableHostAntiAffinity: - description: "Enable the host anti affinity. If set,\ - \ all the pods of the same rack will deployed on different\ - \ nodes of the same zone.Default is true." - type: boolean - requireRackHostAntiAffinity: - description: "Indicates if the podAntiAffinity rules\ - \ will be enforced for the host. Default is true.\ - \ If required, the affinity rule will be enforced\ - \ using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - enabled: - description: Enable the rack affinity rules. - type: boolean - requireRackAntiAffinity: - description: "Indicates if the podAntiAffinity rules\ - \ will be enforced. Default is true. If required,\ - \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - requireRackAffinity: - description: "Indicates if the podAffinity rules will\ - \ be enforced. Default is false. If required, the\ - \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - type: object - type: object - description: Racks configuration. - type: object - resourceSets: - additionalProperties: - properties: - rack: - description: "Place this resource set to a specific rack,\ - \ defined at .global.racks." - type: string - type: object - description: Resource sets. - type: object - nodeSelectors: - additionalProperties: - type: string - description: "Global node selector. If set, this will apply to\ - \ all the components." - type: object - antiAffinity: - description: Pod anti affinity configuration. - properties: - host: - description: Indicates the reclaimPolicy property for the - StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - zone: - description: Indicates the provisioner property for the StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - type: object - zookeeperPlainSslStorePassword: - description: "Use plain password in zookeeper server and client\ - \ configuration. Default is false. Old versions of Apache Zookeeper\ - \ (<3.8.0) does not support getting password from file. In that\ - \ case, set this to true." - type: boolean - imagePullPolicy: - description: Default Pulsar image pull policy to use. Any components - can be configured to use a different image pull policy. Default - value is 'IfNotPresent'. - type: string - required: - - name - type: object - bookkeeper: - properties: - autoRackConfig: - description: Configuration for the rack auto configuration. - properties: - periodMs: - description: Period for the schedule of the monitoring thread. - minimum: 1000.0 - type: integer - additionalZookeeperClientConfig: - description: Additional configuration for the zookeeper client. - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Enable rack configuration monitoring. - type: boolean - type: object - sets: - additionalProperties: - properties: - cleanUpPvcs: - description: Cleanup PVCs after the bookie has been removed. - type: boolean - updateStrategy: - description: Update strategy for the StatefulSet. Default - value is rolling update. - properties: - type: - type: string - rollingUpdate: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + emptyDir: properties: - maxUnavailable: + medium: + type: "string" + sizeLimit: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true + type: "object" + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: "string" + type: "object" + creationTimestamp: + type: "string" + deletionGracePeriodSeconds: + type: "integer" + deletionTimestamp: + type: "string" + finalizers: + items: + type: "string" + type: "array" + generateName: + type: "string" + generation: + type: "integer" + labels: + additionalProperties: + type: "string" + type: "object" + managedFields: + items: + properties: + apiVersion: + type: "string" + fieldsType: + type: "string" + fieldsV1: + type: "object" + manager: + type: "string" + operation: + type: "string" + subresource: + type: "string" + time: + type: "string" + type: "object" + type: "array" + name: + type: "string" + namespace: + type: "string" + ownerReferences: + items: + 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: + properties: + accessModes: + items: + type: "string" + type: "array" + dataSource: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + type: "object" + dataSourceRef: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + namespace: + type: "string" + type: "object" + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + selector: + properties: + matchExpressions: + items: + 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: + 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: + properties: + driver: + type: "string" + fsType: + type: "string" + options: + additionalProperties: + type: "string" + type: "object" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + type: "object" + flocker: + properties: + datasetName: + type: "string" + datasetUUID: + type: "string" + type: "object" + gcePersistentDisk: + properties: + fsType: + type: "string" partition: - type: integer - type: object - type: object - config: - description: Configuration. - x-kubernetes-preserve-unknown-fields: true - gracePeriod: - description: Termination grace period in seconds. - minimum: 0.0 - type: integer - probes: - description: Liveness and readiness probes configuration. - properties: - liveness: - description: Liveness probe configuration. + type: "integer" + pdName: + type: "string" + readOnly: + type: "boolean" + type: "object" + gitRepo: properties: - periodSeconds: - description: Indicates the period (in seconds) for - the probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period - (in seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) - for the probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - readiness: - description: Readiness probe configuration. + directory: + type: "string" + repository: + type: "string" + revision: + type: "string" + type: "object" + glusterfs: properties: - periodSeconds: - description: Indicates the period (in seconds) for - the probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period - (in seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) - for the probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - type: object - service: - description: Service configuration. - properties: - additionalPorts: - description: Additional ports to add to the Service. - items: - properties: - targetPort: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - port: - type: integer - nodePort: - type: integer - name: - type: string - appProtocol: - type: string - protocol: - type: string - type: object - type: array - annotations: - additionalProperties: - type: string - description: Additional annotations to add to the Service. - type: object - type: object - podManagementPolicy: - description: Pod management policy. Default value is 'Parallel'. - type: string - autoscaler: - description: Autoscaling config. - properties: - periodMs: - description: The interval in milliseconds between two - consecutive autoscaling checks. - minimum: 1000.0 - type: integer - diskUsageToleranceLwm: - description: The threshold to trigger a scale down. - The autoscaler will scale down if all the bookies' - disk usage is lower than this threshold. Default is - '0.75' - maximum: 1.0 - minimum: 0.0 - type: number - scaleUpMaxLimit: - description: "Max number of bookies. If the number of\ - \ bookies is equals to this value, the autoscaler\ - \ will never scale up." - minimum: 1.0 - type: integer - diskUsageToleranceHwm: - description: The threshold to trigger a scale up. The - autoscaler will scale up if any of thebookie's disk - usage is higher than or equal to this threshold. Default - is '0.92' - maximum: 1.0 - minimum: 0.0 - type: number - enabled: - description: Enable autoscaling for bookies. - type: boolean - minWritableBookies: - description: "Min number of writable bookies. The autoscaler\ - \ will scale up if not enough writable bookies are\ - \ detected. For instance, if a bookie went to read-only\ - \ mode, the autoscaler will scale up to replace it.\ - \ Default is '3'." - minimum: 1.0 - type: integer - scaleUpBy: - description: The number of bookies to add at each scale - up. Default is '1' - minimum: 1.0 - type: integer - stabilizationWindowMs: - description: The stabilization window is used to restrict - the flapping of replica count when the metrics used - for scaling keep fluctuating. The autoscaling algorithm - uses this window to infer a previous desired state - and avoid unwanted changes to workload scale.Default - value is 5 minutes after the pod readiness. - minimum: 1.0 - type: integer - scaleDownBy: - description: The number of bookies to remove at each - scale down. Default is '1' - minimum: 1.0 - type: integer - type: object - resources: - description: Resources requirements. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - overrideResourceName: - description: Override the resource names generated by the - operator. - type: string - pvcPrefix: - description: Prefix for each PVC created. - type: string - volumes: - description: Volumes configuration. - properties: - journal: - description: Config for the journal volume. + endpoints: + type: "string" + path: + type: "string" + readOnly: + type: "boolean" + type: "object" + hostPath: properties: - storageClass: - description: Indicates if a StorageClass is used. - The operator will create the StorageClass if needed. - properties: - extraParams: - additionalProperties: - type: string - description: Adds extra parameters for the StorageClass. - type: object - provisioner: - description: Indicates the provisioner property - for the StorageClass. - type: string - type: - description: Indicates the 'type' parameter - for the StorageClass. - type: string - fsType: - description: Indicates the 'fsType' parameter - for the StorageClass. - type: string - reclaimPolicy: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: string - type: object - size: - description: Indicates the requested size for the - volume. The format follows the Kubernetes' Quantity. - type: string - name: - description: Indicates the suffix for the volume. - Default value is 'data'. - type: string - existingStorageClassName: - description: Indicates if an already existing storage - class should be used. - type: string - type: object - ledgers: - description: Config for the ledgers volume. + path: + type: "string" + type: + type: "string" + type: "object" + image: properties: - storageClass: - description: Indicates if a StorageClass is used. - The operator will create the StorageClass if needed. + pullPolicy: + type: "string" + reference: + type: "string" + type: "object" + iscsi: + 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: properties: - extraParams: - additionalProperties: - type: string - description: Adds extra parameters for the StorageClass. - type: object - provisioner: - description: Indicates the provisioner property - for the StorageClass. - type: string - type: - description: Indicates the 'type' parameter - for the StorageClass. - type: string - fsType: - description: Indicates the 'fsType' parameter - for the StorageClass. - type: string - reclaimPolicy: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: string - type: object - size: - description: Indicates the requested size for the - volume. The format follows the Kubernetes' Quantity. - type: string - name: - description: Indicates the suffix for the volume. - Default value is 'data'. - type: string - existingStorageClassName: - description: Indicates if an already existing storage - class should be used. - type: string - type: object - type: object - imagePullSecrets: - description: Image pull secrets. - items: - properties: - name: - type: string - type: object - type: array - image: - description: Override Pulsar image. - type: string - annotations: - additionalProperties: - type: string - description: Annotations to add to each resource (except - pods). - type: object - podAnnotations: - additionalProperties: - type: string - description: Annotations to add to pod. - type: object - sidecars: - description: Sidecar containers - items: - properties: - lifecycle: - properties: - postStart: + name: + type: "string" + type: "object" + targetPortal: + type: "string" + type: "object" + name: + type: "string" + nfs: + properties: + path: + type: "string" + readOnly: + type: "boolean" + server: + type: "string" + type: "object" + persistentVolumeClaim: + properties: + claimName: + type: "string" + readOnly: + type: "boolean" + type: "object" + photonPersistentDisk: + properties: + fsType: + type: "string" + pdID: + type: "string" + type: "object" + portworxVolume: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + projected: + properties: + defaultMode: + type: "integer" + sources: + items: properties: - tcpSocket: + clusterTrustBundle: properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: + labelSelector: + properties: + matchExpressions: + items: + 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: properties: - command: + items: items: - type: string - type: array - type: object - httpGet: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + downwardAPI: properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: + items: items: properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + secret: properties: - command: + items: items: - type: string - type: array - type: object - httpGet: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + serviceAccountToken: properties: + audience: + type: "string" + expirationSeconds: + type: "integer" path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + quobyte: + properties: + group: + type: "string" + readOnly: + type: "boolean" + registry: + type: "string" + tenant: + type: "string" + user: + type: "string" + volume: + type: "string" + type: "object" + rbd: + properties: + fsType: + type: "string" + image: + type: "string" + keyring: + type: "string" + monitors: + items: + type: "string" + type: "array" + pool: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + user: + type: "string" + type: "object" + scaleIO: + properties: + fsType: + type: "string" + gateway: + type: "string" + protectionDomain: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + sslEnabled: + type: "boolean" + storageMode: + type: "string" + storagePool: + type: "string" + system: + type: "string" + volumeName: + type: "string" + type: "object" + secret: + properties: + defaultMode: + type: "integer" items: - type: string - type: array - livenessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: + items: properties: + key: + type: "string" + mode: + type: "integer" path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: + type: "string" + type: "object" + type: "array" + optional: + type: "boolean" + secretName: + type: "string" + type: "object" + storageos: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + secretRef: properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: + type: "string" + type: "object" + volumeName: + type: "string" + volumeNamespace: + type: "string" + type: "object" + vsphereVolume: + properties: + fsType: + type: "string" + storagePolicyID: + type: "string" + storagePolicyName: + type: "string" + volumePath: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + annotations: + additionalProperties: + type: "string" + description: "Annotations to add to each resource (except pods)." + type: "object" + antiAffinity: + description: "Pod anti-affinity configuration. This override the\ + \ global value if set." + properties: + host: + description: "Indicates the reclaimPolicy property for the\ + \ StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + zone: + description: "Indicates the provisioner property for the StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + type: "object" + autoRackConfig: + description: "Configuration for the rack auto configuration." + properties: + additionalZookeeperClientConfig: + description: "Additional configuration for the zookeeper client." + x-kubernetes-preserve-unknown-fields: true + enabled: + description: "Enable rack configuration monitoring." + type: "boolean" + periodMs: + description: "Period for the schedule of the monitoring thread." + minimum: 1000.0 + type: "integer" + type: "object" + autoscaler: + description: "Autoscaling config." + properties: + diskUsageToleranceHwm: + description: "The threshold to trigger a scale up. The autoscaler\ + \ will scale up if any of thebookie's disk usage is higher\ + \ than or equal to this threshold. Default is '0.92'" + maximum: 1.0 + minimum: 0.0 + type: "number" + diskUsageToleranceLwm: + description: "The threshold to trigger a scale down. The autoscaler\ + \ will scale down if all the bookies' disk usage is lower\ + \ than this threshold. Default is '0.75'" + maximum: 1.0 + minimum: 0.0 + type: "number" + enabled: + description: "Enable autoscaling for bookies." + type: "boolean" + minWritableBookies: + description: "Min number of writable bookies. The autoscaler\ + \ will scale up if not enough writable bookies are detected.\ + \ For instance, if a bookie went to read-only mode, the\ + \ autoscaler will scale up to replace it. Default is '3'." + minimum: 1.0 + type: "integer" + periodMs: + description: "The interval in milliseconds between two consecutive\ + \ autoscaling checks." + minimum: 1000.0 + type: "integer" + scaleDownBy: + description: "The number of bookies to remove at each scale\ + \ down. Default is '1'" + minimum: 1.0 + type: "integer" + scaleUpBy: + description: "The number of bookies to add at each scale up.\ + \ Default is '1'" + minimum: 1.0 + type: "integer" + scaleUpMaxLimit: + description: "Max number of bookies. If the number of bookies\ + \ is equals to this value, the autoscaler will never scale\ + \ up." + minimum: 1.0 + type: "integer" + stabilizationWindowMs: + description: "The stabilization window is used to restrict\ + \ the flapping of replica count when the metrics used for\ + \ scaling keep fluctuating. The autoscaling algorithm uses\ + \ this window to infer a previous desired state and avoid\ + \ unwanted changes to workload scale.Default value is 5\ + \ minutes after the pod readiness." + minimum: 1.0 + type: "integer" + type: "object" + cleanUpPvcs: + description: "Cleanup PVCs after the bookie has been removed." + type: "boolean" + config: + description: "Configuration." + x-kubernetes-preserve-unknown-fields: true + env: + description: "Additional container env variables." + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + gracePeriod: + description: "Termination grace period in seconds." + minimum: 0.0 + type: "integer" + image: + description: "Override Pulsar image." + type: "string" + imagePullPolicy: + description: "Override image pull policy." + type: "string" + imagePullSecrets: + description: "Image pull secrets." + items: + properties: + name: + type: "string" + type: "object" + type: "array" + initContainers: + description: "Init containers" + items: + properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: + configMapKeyRef: properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: properties: - command: - items: - type: string - type: array - type: object - httpGet: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: + containerName: + type: "string" + divisor: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: - properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: - properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - securityContext: - properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: - properties: - add: - items: - type: string - type: array - drop: - items: - type: string - type: array - type: object - seLinuxOptions: - properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: + resource: + type: "string" + type: "object" + secretKeyRef: properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: properties: - limits: - additionalProperties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: - items: + type: "object" + type: "object" + preStop: + properties: + exec: properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array - additionalVolumes: - description: Mount additional volumes to the pod. - properties: - volumes: - description: Additional volumes to be mounted to the - pod - items: - properties: - hostPath: - properties: - path: - type: string - type: - type: string - type: object - flexVolume: - properties: - readOnly: - type: boolean - options: - additionalProperties: - type: string - type: object - secretRef: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: properties: name: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - gcePersistentDisk: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" + livenessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: properties: - readOnly: - type: boolean - pdName: - type: string - partition: - type: integer - fsType: - type: string - type: object - ephemeral: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: properties: - volumeClaimTemplate: - properties: - metadata: - properties: - generateName: - type: string - deletionGracePeriodSeconds: - type: integer - deletionTimestamp: - type: string - resourceVersion: - type: string - annotations: - additionalProperties: - type: string - type: object - selfLink: - type: string - creationTimestamp: - type: string - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - ownerReferences: - items: - properties: - blockOwnerDeletion: - type: boolean - uid: - type: string - apiVersion: - type: string - name: - type: string - kind: - type: string - controller: - type: boolean - type: object - type: array - uid: - type: string - generation: - type: integer - name: - type: string - managedFields: - items: - properties: - time: - type: string - apiVersion: - type: string - fieldsV1: - type: object - fieldsType: - type: string - manager: - type: string - operation: - type: string - subresource: - type: string - type: object - type: array - namespace: - type: string - type: object - spec: - properties: - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string - dataSource: - properties: - name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - dataSourceRef: - properties: - name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - accessModes: - items: - type: string - type: array - volumeMode: - type: string - volumeName: - type: string - type: object - type: object - type: object - scaleIO: - properties: - readOnly: - type: boolean - storageMode: - type: string - storagePool: - type: string - system: - type: string - gateway: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - sslEnabled: - type: boolean - volumeName: - type: string - protectionDomain: - type: string - type: object - csi: - properties: - nodePublishSecretRef: - properties: - name: - type: string - type: object - readOnly: - type: boolean - volumeAttributes: - additionalProperties: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - secret: - properties: - optional: - type: boolean - secretName: - type: string - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: + items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: + properties: name: - type: string - vsphereVolume: - properties: - storagePolicyName: - type: string - storagePolicyID: - type: string - volumePath: - type: string - fsType: - type: string - type: object - gitRepo: - properties: - revision: - type: string - repository: - type: string - directory: - type: string - type: object - glusterfs: - properties: - path: - type: string - readOnly: - type: boolean - endpoints: - type: string - type: object - nfs: - properties: - path: - type: string - readOnly: - type: boolean - server: - type: string - type: object - cinder: - properties: - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - volumeID: - type: string - type: object - flocker: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: + 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: properties: - datasetUUID: - type: string - datasetName: - type: string - type: object - quobyte: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: + properties: + devicePath: + type: "string" + name: + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + 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" + labels: + additionalProperties: + type: "string" + description: "Labels to add to each resource (except pods)." + type: "object" + matchLabels: + additionalProperties: + type: "string" + description: "Match labels selectors to add to each pod." + type: "object" + minReadySeconds: + description: "Min seconds to wait before considering the pod as\ + \ ready." + type: "integer" + nodeAffinity: + description: "Node affinity configuration." + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: properties: - group: - type: string - readOnly: - type: boolean - volume: - type: string - user: - type: string - registry: - type: string - tenant: - type: string - type: object - photonPersistentDisk: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: + items: properties: - pdID: - type: string - fsType: - type: string - type: object - persistentVolumeClaim: + 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" + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: properties: - readOnly: - type: boolean - claimName: - type: string - type: object - awsElasticBlockStore: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: + items: properties: - readOnly: - type: boolean - partition: - type: integer - fsType: - type: string - volumeID: - type: string - type: object - configMap: - properties: - optional: - type: boolean - items: + key: + type: "string" + operator: + type: "string" + values: items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - name: - type: string - type: object - storageos: + type: "string" + type: "array" + type: "object" + type: "array" + type: "object" + type: "array" + type: "object" + type: "object" + nodeSelectors: + additionalProperties: + type: "string" + description: "Additional node selectors." + type: "object" + overrideResourceName: + description: "Override the resource names generated by the operator." + type: "string" + pdb: + description: "Pod disruption budget configuration." + properties: + enabled: + description: "Enable Pdb policy." + type: "boolean" + maxUnavailable: + description: "Number of maxUnavailable pods." + type: "integer" + minAvailable: + description: "Number of minAvailable pods." + type: "integer" + type: "object" + podAnnotations: + additionalProperties: + type: "string" + description: "Annotations to add to pod." + type: "object" + podLabels: + additionalProperties: + type: "string" + description: "Labels to add to each pod." + type: "object" + podManagementPolicy: + description: "Pod management policy. Default value is 'Parallel'." + type: "string" + probes: + description: "Liveness and readiness probes configuration." + properties: + liveness: + description: "Liveness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds) for the\ + \ probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period (in\ + \ seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds) for the\ + \ probe." + type: "integer" + type: "object" + readiness: + description: "Readiness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds) for the\ + \ probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period (in\ + \ seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds) for the\ + \ probe." + type: "integer" + type: "object" + type: "object" + pvcPrefix: + description: "Prefix for each PVC created." + type: "string" + replicas: + description: "Number of desired replicas." + type: "integer" + resources: + description: "Resources requirements." + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + securityContext: + description: "Subset of PodSecurityContext for basic UID, GID,\ + \ and volume access control." + properties: + fsGroup: + type: "integer" + fsGroupChangePolicy: + type: "string" + runAsGroup: + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + type: "integer" + supplementalGroups: + items: + type: "integer" + type: "array" + type: "object" + service: + description: "Service configuration." + properties: + additionalPorts: + description: "Additional ports to add to the Service." + items: + properties: + appProtocol: + type: "string" + name: + type: "string" + nodePort: + type: "integer" + port: + type: "integer" + protocol: + type: "string" + targetPort: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "array" + annotations: + additionalProperties: + type: "string" + description: "Additional annotations to add to the Service." + type: "object" + type: "object" + serviceAccountName: + description: "Service account name for the resource." + type: "string" + sets: + additionalProperties: + properties: + additionalVolumes: + description: "Mount additional volumes to the pod." + properties: + mounts: + description: "Mount points for the additional volumes" + items: + 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" + volumes: + description: "Additional volumes to be mounted to the\ + \ pod" + items: + properties: + awsElasticBlockStore: properties: - readOnly: - type: boolean - volumeNamespace: - type: string - secretRef: - properties: - name: - type: string - type: object fsType: - type: string - volumeName: - type: string - type: object - portworxVolume: - properties: + type: "string" + partition: + type: "integer" readOnly: - type: boolean - fsType: - type: string + type: "boolean" volumeID: - type: string - type: object - iscsi: + type: "string" + type: "object" + azureDisk: properties: + cachingMode: + type: "string" + diskName: + type: "string" + diskURI: + type: "string" + fsType: + type: "string" + kind: + type: "string" readOnly: - type: boolean - chapAuthSession: - type: boolean - lun: - type: integer - targetPortal: - type: string - iscsiInterface: - type: string - portals: + type: "boolean" + type: "object" + azureFile: + properties: + readOnly: + type: "boolean" + secretName: + type: "string" + shareName: + type: "string" + type: "object" + cephfs: + properties: + monitors: items: - type: string - type: array - initiatorName: - type: string + type: "string" + type: "array" + path: + type: "string" + readOnly: + type: "boolean" + secretFile: + type: "string" secretRef: properties: name: - type: string - type: object - fsType: - type: string - iqn: - type: string - chapAuthDiscovery: - type: boolean - type: object - rbd: + type: "string" + type: "object" + user: + type: "string" + type: "object" + cinder: properties: + fsType: + type: "string" readOnly: - type: boolean - pool: - type: string - keyring: - type: string - image: - type: string + type: "boolean" secretRef: properties: name: - type: string - type: object - monitors: + type: "string" + type: "object" + volumeID: + type: "string" + type: "object" + configMap: + properties: + defaultMode: + type: "integer" + items: items: - type: string - type: array - fsType: - type: string - user: - type: string - type: object - azureFile: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + csi: properties: + driver: + type: "string" + fsType: + type: "string" + nodePublishSecretRef: + properties: + name: + type: "string" + type: "object" readOnly: - type: boolean - secretName: - type: string - shareName: - type: string - type: object + type: "boolean" + volumeAttributes: + additionalProperties: + type: "string" + type: "object" + type: "object" downwardAPI: properties: + defaultMode: + type: "integer" items: items: properties: - path: - type: string fieldRef: properties: apiVersion: - type: string + type: "string" fieldPath: - type: string - type: object + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" resourceFieldRef: properties: containerName: - type: string + type: "string" divisor: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true resource: - type: string - type: object - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - projected: - properties: - defaultMode: - type: integer - sources: - items: - properties: - secret: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - name: - type: string - type: object - configMap: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - name: - type: string - type: object - serviceAccountToken: - properties: - path: - type: string - audience: - type: string - expirationSeconds: - type: integer - type: object - downwardAPI: - properties: - items: - items: - properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - type: object - type: object - type: array - type: object - azureDisk: - properties: - readOnly: - type: boolean - diskName: - type: string - cachingMode: - type: string - fsType: - type: string - kind: - type: string - diskURI: - type: string - type: object - cephfs: - properties: - path: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - monitors: - items: - type: string - type: array - secretFile: - type: string - user: - type: string - type: object + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" emptyDir: properties: + medium: + type: "string" sizeLimit: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - medium: - type: string - type: object - fc: + type: "object" + ephemeral: properties: - readOnly: - type: boolean - lun: - type: integer - wwids: - items: - type: string - type: array - targetWWNs: - items: - type: string - type: array - fsType: - type: string - type: object - type: object - type: array - mounts: - description: Mount points for the additional volumes - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - type: object - env: - description: Additional container env variables. - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: + volumeClaimTemplate: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: "string" + type: "object" + creationTimestamp: + type: "string" + deletionGracePeriodSeconds: + type: "integer" + deletionTimestamp: + type: "string" + finalizers: + items: + type: "string" + type: "array" + generateName: + type: "string" + generation: + type: "integer" + labels: + additionalProperties: + type: "string" + type: "object" + managedFields: + items: + properties: + apiVersion: + type: "string" + fieldsType: + type: "string" + fieldsV1: + type: "object" + manager: + type: "string" + operation: + type: "string" + subresource: + type: "string" + time: + type: "string" + type: "object" + type: "array" + name: + type: "string" + namespace: + type: "string" + ownerReferences: + items: + 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: + properties: + accessModes: + items: + type: "string" + type: "array" + dataSource: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + type: "object" + dataSourceRef: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + namespace: + type: "string" + type: "object" + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + selector: + properties: + matchExpressions: + items: + 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: properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: + fsType: + type: "string" + lun: + type: "integer" + readOnly: + type: "boolean" + targetWWNs: + items: + type: "string" + type: "array" + wwids: + items: + type: "string" + type: "array" + type: "object" + flexVolume: properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: + driver: + type: "string" + fsType: + type: "string" + options: + additionalProperties: + type: "string" + type: "object" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + type: "object" + flocker: properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: + datasetName: + type: "string" + datasetUUID: + type: "string" + type: "object" + gcePersistentDisk: properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - labels: - additionalProperties: - type: string - description: Labels to add to each resource (except pods). - type: object - initContainers: - description: Init containers - items: - properties: - lifecycle: - properties: - postStart: + fsType: + type: "string" + partition: + type: "integer" + pdName: + type: "string" + readOnly: + type: "boolean" + type: "object" + gitRepo: properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - preStop: + directory: + type: "string" + repository: + type: "string" + revision: + type: "string" + type: "object" + glusterfs: properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array - livenessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: + endpoints: + type: "string" + path: + type: "string" + readOnly: + type: "boolean" + type: "object" + hostPath: properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: + path: + type: "string" + type: + type: "string" + type: "object" + image: properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: + pullPolicy: + type: "string" + reference: + type: "string" + type: "object" + iscsi: properties: - command: + 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 - type: object - httpGet: + type: "string" + type: "array" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + targetPortal: + type: "string" + type: "object" + name: + type: "string" + nfs: properties: path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: + type: "string" + readOnly: + type: "boolean" + server: + type: "string" + type: "object" + persistentVolumeClaim: properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: + claimName: + type: "string" + readOnly: + type: "boolean" + type: "object" + photonPersistentDisk: properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: + fsType: + type: "string" + pdID: + type: "string" + type: "object" + portworxVolume: properties: - command: - items: - type: string - type: array - type: object - httpGet: + fsType: + type: "string" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + projected: properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: + defaultMode: + type: "integer" + sources: items: properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: - properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: - properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - securityContext: - properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + 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: + properties: + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + secret: + properties: + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + serviceAccountToken: + properties: + audience: + type: "string" + expirationSeconds: + type: "integer" + path: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + quobyte: properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: + group: + type: "string" + readOnly: + type: "boolean" + registry: + type: "string" + tenant: + type: "string" + user: + type: "string" + volume: + type: "string" + type: "object" + rbd: properties: - add: - items: - type: string - type: array - drop: + fsType: + type: "string" + image: + type: "string" + keyring: + type: "string" + monitors: items: - type: string - type: array - type: object - seLinuxOptions: - properties: - role: - type: string - type: - type: string + type: "string" + type: "array" + pool: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: - properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array - pdb: - description: Pod disruption budget configuration. - properties: - maxUnavailable: - description: Number of maxUnavailable pods. - type: integer - enabled: - description: Enable Pdb policy. - type: boolean - type: object - tolerations: - description: Pod tolerations. - items: - properties: - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - effect: - type: string - type: object - type: array - replicas: - description: Number of desired replicas. - type: integer - nodeAffinity: - description: Node affinity configuration. - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - weight: - type: integer - preference: - properties: - matchFields: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchFields: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: array - type: object - type: object - nodeSelectors: - additionalProperties: - type: string - description: Additional node selectors. - type: object - antiAffinity: - description: Pod anti-affinity configuration. This override - the global value if set. - properties: - host: - description: Indicates the reclaimPolicy property for - the StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: boolean - type: object - zone: - description: Indicates the provisioner property for - the StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: boolean - type: object - type: object - imagePullPolicy: - description: Override image pull policy. - type: string - podLabels: - additionalProperties: - type: string - description: Labels to add to each pod. - type: object - matchLabels: - additionalProperties: - type: string - description: Match labels selectors to add to each pod. - type: object - serviceAccountName: - description: Service account name for the resource. - type: string - type: object - description: Bookie sets. - type: object - setsUpdateStrategy: - description: Sets update strategy. 'RollingUpdate' or 'Parallel'. - Default is 'RollingUpdate'. - type: string - cleanUpPvcs: - description: Cleanup PVCs after the bookie has been removed. - type: boolean - updateStrategy: - description: Update strategy for the StatefulSet. Default value - is rolling update. - properties: - type: - type: string - rollingUpdate: - properties: - maxUnavailable: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - partition: - type: integer - type: object - type: object - config: - description: Configuration. - x-kubernetes-preserve-unknown-fields: true - gracePeriod: - description: Termination grace period in seconds. - minimum: 0.0 - type: integer - probes: - description: Liveness and readiness probes configuration. - properties: - liveness: - description: Liveness probe configuration. - properties: - periodSeconds: - description: Indicates the period (in seconds) for the - probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period (in - seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) for the - probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - readiness: - description: Readiness probe configuration. - properties: - periodSeconds: - description: Indicates the period (in seconds) for the - probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period (in - seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) for the - probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - type: object - service: - description: Service configuration. - properties: - additionalPorts: - description: Additional ports to add to the Service. - items: - properties: - targetPort: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - port: - type: integer - nodePort: - type: integer - name: - type: string - appProtocol: - type: string - protocol: - type: string - type: object - type: array - annotations: - additionalProperties: - type: string - description: Additional annotations to add to the Service. - type: object - type: object - podManagementPolicy: - description: Pod management policy. Default value is 'Parallel'. - type: string - autoscaler: - description: Autoscaling config. - properties: - periodMs: - description: The interval in milliseconds between two consecutive - autoscaling checks. - minimum: 1000.0 - type: integer - diskUsageToleranceLwm: - description: The threshold to trigger a scale down. The autoscaler - will scale down if all the bookies' disk usage is lower - than this threshold. Default is '0.75' - maximum: 1.0 - minimum: 0.0 - type: number - scaleUpMaxLimit: - description: "Max number of bookies. If the number of bookies\ - \ is equals to this value, the autoscaler will never scale\ - \ up." - minimum: 1.0 - type: integer - diskUsageToleranceHwm: - description: The threshold to trigger a scale up. The autoscaler - will scale up if any of thebookie's disk usage is higher - than or equal to this threshold. Default is '0.92' - maximum: 1.0 - minimum: 0.0 - type: number - enabled: - description: Enable autoscaling for bookies. - type: boolean - minWritableBookies: - description: "Min number of writable bookies. The autoscaler\ - \ will scale up if not enough writable bookies are detected.\ - \ For instance, if a bookie went to read-only mode, the\ - \ autoscaler will scale up to replace it. Default is '3'." - minimum: 1.0 - type: integer - scaleUpBy: - description: The number of bookies to add at each scale up. - Default is '1' - minimum: 1.0 - type: integer - stabilizationWindowMs: - description: The stabilization window is used to restrict - the flapping of replica count when the metrics used for - scaling keep fluctuating. The autoscaling algorithm uses - this window to infer a previous desired state and avoid - unwanted changes to workload scale.Default value is 5 minutes - after the pod readiness. - minimum: 1.0 - type: integer - scaleDownBy: - description: The number of bookies to remove at each scale - down. Default is '1' - minimum: 1.0 - type: integer - type: object - resources: - description: Resources requirements. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - overrideResourceName: - description: Override the resource names generated by the operator. - type: string - pvcPrefix: - description: Prefix for each PVC created. - type: string - volumes: - description: Volumes configuration. - properties: - journal: - description: Config for the journal volume. - properties: - storageClass: - description: Indicates if a StorageClass is used. The - operator will create the StorageClass if needed. - properties: - extraParams: - additionalProperties: - type: string - description: Adds extra parameters for the StorageClass. - type: object - provisioner: - description: Indicates the provisioner property for - the StorageClass. - type: string - type: - description: Indicates the 'type' parameter for the - StorageClass. - type: string - fsType: - description: Indicates the 'fsType' parameter for - the StorageClass. - type: string - reclaimPolicy: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: string - type: object - size: - description: Indicates the requested size for the volume. - The format follows the Kubernetes' Quantity. - type: string - name: - description: Indicates the suffix for the volume. Default - value is 'data'. - type: string - existingStorageClassName: - description: Indicates if an already existing storage - class should be used. - type: string - type: object - ledgers: - description: Config for the ledgers volume. - properties: - storageClass: - description: Indicates if a StorageClass is used. The - operator will create the StorageClass if needed. - properties: - extraParams: - additionalProperties: - type: string - description: Adds extra parameters for the StorageClass. - type: object - provisioner: - description: Indicates the provisioner property for - the StorageClass. - type: string - type: - description: Indicates the 'type' parameter for the - StorageClass. - type: string - fsType: - description: Indicates the 'fsType' parameter for - the StorageClass. - type: string - reclaimPolicy: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: string - type: object - size: - description: Indicates the requested size for the volume. - The format follows the Kubernetes' Quantity. - type: string - name: - description: Indicates the suffix for the volume. Default - value is 'data'. - type: string - existingStorageClassName: - description: Indicates if an already existing storage - class should be used. - type: string - type: object - type: object - imagePullSecrets: - description: Image pull secrets. - items: - properties: - name: - type: string - type: object - type: array - image: - description: Override Pulsar image. - type: string - annotations: - additionalProperties: - type: string - description: Annotations to add to each resource (except pods). - type: object - podAnnotations: - additionalProperties: - type: string - description: Annotations to add to pod. - type: object - sidecars: - description: Sidecar containers - items: - properties: - lifecycle: - properties: - postStart: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array - livenessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: + type: "string" + type: "object" + scaleIO: properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: + fsType: + type: "string" + gateway: + type: "string" + protectionDomain: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + sslEnabled: + type: "boolean" + storageMode: + type: "string" + storagePool: + type: "string" + system: + type: "string" + volumeName: + type: "string" + type: "object" + secret: + properties: + defaultMode: + type: "integer" + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + optional: + type: "boolean" + secretName: + type: "string" + type: "object" + storageos: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + volumeName: + type: "string" + volumeNamespace: + type: "string" + type: "object" + vsphereVolume: + properties: + fsType: + type: "string" + storagePolicyID: + type: "string" + storagePolicyName: + type: "string" + volumePath: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + annotations: + additionalProperties: + type: "string" + description: "Annotations to add to each resource (except\ + \ pods)." + type: "object" + antiAffinity: + description: "Pod anti-affinity configuration. This override\ + \ the global value if set." properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: + host: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." properties: - command: - items: - type: string - type: array - type: object - httpGet: + enabled: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "boolean" + type: "object" + zone: + description: "Indicates the provisioner property for\ + \ the StorageClass." properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string + enabled: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "boolean" + type: "object" + type: "object" + autoscaler: + description: "Autoscaling config." + properties: + diskUsageToleranceHwm: + description: "The threshold to trigger a scale up. The\ + \ autoscaler will scale up if any of thebookie's disk\ + \ usage is higher than or equal to this threshold.\ + \ Default is '0.92'" + maximum: 1.0 + minimum: 0.0 + type: "number" + diskUsageToleranceLwm: + description: "The threshold to trigger a scale down.\ + \ The autoscaler will scale down if all the bookies'\ + \ disk usage is lower than this threshold. Default\ + \ is '0.75'" + maximum: 1.0 + minimum: 0.0 + type: "number" + enabled: + description: "Enable autoscaling for bookies." + type: "boolean" + minWritableBookies: + description: "Min number of writable bookies. The autoscaler\ + \ will scale up if not enough writable bookies are\ + \ detected. For instance, if a bookie went to read-only\ + \ mode, the autoscaler will scale up to replace it.\ + \ Default is '3'." + minimum: 1.0 + type: "integer" + periodMs: + description: "The interval in milliseconds between two\ + \ consecutive autoscaling checks." + minimum: 1000.0 + type: "integer" + scaleDownBy: + description: "The number of bookies to remove at each\ + \ scale down. Default is '1'" + minimum: 1.0 + type: "integer" + scaleUpBy: + description: "The number of bookies to add at each scale\ + \ up. Default is '1'" + minimum: 1.0 + type: "integer" + scaleUpMaxLimit: + description: "Max number of bookies. If the number of\ + \ bookies is equals to this value, the autoscaler\ + \ will never scale up." + minimum: 1.0 + type: "integer" + stabilizationWindowMs: + description: "The stabilization window is used to restrict\ + \ the flapping of replica count when the metrics used\ + \ for scaling keep fluctuating. The autoscaling algorithm\ + \ uses this window to infer a previous desired state\ + \ and avoid unwanted changes to workload scale.Default\ + \ value is 5 minutes after the pod readiness." + minimum: 1.0 + type: "integer" + type: "object" + cleanUpPvcs: + description: "Cleanup PVCs after the bookie has been removed." + type: "boolean" + config: + description: "Configuration." + x-kubernetes-preserve-unknown-fields: true env: + description: "Additional container env variables." items: properties: + name: + type: "string" value: - type: string + type: "string" valueFrom: properties: - configMapKeyRef: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + gracePeriod: + description: "Termination grace period in seconds." + minimum: 0.0 + type: "integer" + image: + description: "Override Pulsar image." + type: "string" + imagePullPolicy: + description: "Override image pull policy." + type: "string" + imagePullSecrets: + description: "Image pull secrets." + items: + properties: + name: + type: "string" + type: "object" + type: "array" + initContainers: + description: "Init containers" + items: + properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + preStop: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" + livenessProbe: + properties: + exec: properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: properties: - containerName: - type: string - divisor: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: + exec: properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: - properties: - prefix: - type: string - configMapRef: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: + items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - securityContext: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: + 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: + properties: + devicePath: + type: "string" + name: + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + 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" + labels: + additionalProperties: + type: "string" + description: "Labels to add to each resource (except pods)." + type: "object" + matchLabels: + additionalProperties: + type: "string" + description: "Match labels selectors to add to each pod." + type: "object" + minReadySeconds: + description: "Min seconds to wait before considering the\ + \ pod as ready." + type: "integer" + nodeAffinity: + description: "Node affinity configuration." properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: + items: + 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" + requiredDuringSchedulingIgnoredDuringExecution: properties: - add: - items: - type: string - type: array - drop: + nodeSelectorTerms: items: - type: string - type: array - type: object - seLinuxOptions: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + type: "object" + type: "array" + type: "object" + type: "object" + nodeSelectors: + additionalProperties: + type: "string" + description: "Additional node selectors." + type: "object" + overrideResourceName: + description: "Override the resource names generated by the\ + \ operator." + type: "string" + pdb: + description: "Pod disruption budget configuration." + properties: + enabled: + description: "Enable Pdb policy." + type: "boolean" + maxUnavailable: + description: "Number of maxUnavailable pods." + type: "integer" + minAvailable: + description: "Number of minAvailable pods." + type: "integer" + type: "object" + podAnnotations: + additionalProperties: + type: "string" + description: "Annotations to add to pod." + type: "object" + podLabels: + additionalProperties: + type: "string" + description: "Labels to add to each pod." + type: "object" + podManagementPolicy: + description: "Pod management policy. Default value is 'Parallel'." + type: "string" + probes: + description: "Liveness and readiness probes configuration." + properties: + liveness: + description: "Liveness probe configuration." properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds)\ + \ for the probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period\ + \ (in seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds)\ + \ for the probe." + type: "integer" + type: "object" + readiness: + description: "Readiness probe configuration." properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds)\ + \ for the probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period\ + \ (in seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds)\ + \ for the probe." + type: "integer" + type: "object" + type: "object" + pvcPrefix: + description: "Prefix for each PVC created." + type: "string" + replicas: + description: "Number of desired replicas." + type: "integer" resources: + description: "Resources requirements." properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" limits: additionalProperties: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" requests: additionalProperties: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: + type: "object" + type: "object" + securityContext: + description: "Subset of PodSecurityContext for basic UID,\ + \ GID, and volume access control." + properties: + fsGroup: + type: "integer" + fsGroupChangePolicy: + type: "string" + runAsGroup: + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + type: "integer" + supplementalGroups: + items: + type: "integer" + type: "array" + type: "object" + service: + description: "Service configuration." + properties: + additionalPorts: + description: "Additional ports to add to the Service." + items: + properties: + appProtocol: + type: "string" + name: + type: "string" + nodePort: + type: "integer" + port: + type: "integer" + protocol: + type: "string" + targetPort: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "array" + annotations: + additionalProperties: + type: "string" + description: "Additional annotations to add to the Service." + type: "object" + type: "object" + serviceAccountName: + description: "Service account name for the resource." + type: "string" + sidecars: + description: "Sidecar containers" items: properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array - additionalVolumes: - description: Mount additional volumes to the pod. - properties: - volumes: - description: Additional volumes to be mounted to the pod - items: - properties: - hostPath: - properties: - path: - type: string - type: - type: string - type: object - flexVolume: - properties: - readOnly: - type: boolean - options: - additionalProperties: - type: string - type: object - secretRef: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: properties: name: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - gcePersistentDisk: - properties: - readOnly: - type: boolean - pdName: - type: string - partition: - type: integer - fsType: - type: string - type: object - ephemeral: - properties: - volumeClaimTemplate: - properties: - metadata: - properties: - generateName: - type: string - deletionGracePeriodSeconds: - type: integer - deletionTimestamp: - type: string - resourceVersion: - type: string - annotations: - additionalProperties: - type: string - type: object - selfLink: - type: string - creationTimestamp: - type: string - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - ownerReferences: - items: - properties: - blockOwnerDeletion: - type: boolean - uid: - type: string - apiVersion: - type: string - name: - type: string - kind: - type: string - controller: - type: boolean - type: object - type: array - uid: - type: string - generation: - type: integer - name: - type: string - managedFields: - items: - properties: - time: - type: string - apiVersion: - type: string - fieldsV1: - type: object - fieldsType: - type: string - manager: - type: string - operation: - type: string - subresource: - type: string - type: object - type: array - namespace: - type: string - type: object - spec: + type: "string" + value: + type: "string" + valueFrom: properties: - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string - dataSource: + configMapKeyRef: properties: + key: + type: "string" name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - resources: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - dataSourceRef: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + preStop: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" + livenessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: properties: name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - accessModes: - items: - type: string - type: array - volumeMode: - type: string - volumeName: - type: string - type: object - type: object - type: object - scaleIO: - properties: - readOnly: - type: boolean - storageMode: - type: string - storagePool: - type: string - system: - type: string - gateway: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - sslEnabled: - type: boolean - volumeName: - type: string - protectionDomain: - type: string - type: object - csi: - properties: - nodePublishSecretRef: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + name: + type: "string" + ports: + items: properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" name: - type: string - type: object - readOnly: - type: boolean - volumeAttributes: - additionalProperties: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - secret: - properties: - optional: - type: boolean - secretName: - type: string - items: - items: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - name: - type: string - vsphereVolume: - properties: - storagePolicyName: - type: string - storagePolicyID: - type: string - volumePath: - type: string - fsType: - type: string - type: object - gitRepo: - properties: - revision: - type: string - repository: - type: string - directory: - type: string - type: object - glusterfs: - properties: - path: - type: string - readOnly: - type: boolean - endpoints: - type: string - type: object - nfs: - properties: - path: - type: string - readOnly: - type: boolean - server: - type: string - type: object - cinder: - properties: - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - volumeID: - type: string - type: object - flocker: - properties: - datasetUUID: - type: string - datasetName: - type: string - type: object - quobyte: - properties: - group: - type: string - readOnly: - type: boolean - volume: - type: string - user: - type: string - registry: - type: string - tenant: - type: string - type: object - photonPersistentDisk: - properties: - pdID: - type: string - fsType: - type: string - type: object - persistentVolumeClaim: - properties: - readOnly: - type: boolean - claimName: - type: string - type: object - awsElasticBlockStore: - properties: - readOnly: - type: boolean - partition: - type: integer - fsType: - type: string - volumeID: - type: string - type: object - configMap: - properties: - optional: - type: boolean + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: items: - items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: + 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: properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - name: - type: string - type: object - storageos: - properties: - readOnly: - type: boolean - volumeNamespace: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - volumeName: - type: string - type: object - portworxVolume: - properties: - readOnly: - type: boolean - fsType: - type: string - volumeID: - type: string - type: object - iscsi: - properties: - readOnly: - type: boolean - chapAuthSession: - type: boolean - lun: - type: integer - targetPortal: - type: string - iscsiInterface: - type: string - portals: - items: - type: string - type: array - initiatorName: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - iqn: - type: string - chapAuthDiscovery: - type: boolean - type: object - rbd: - properties: - readOnly: - type: boolean - pool: - type: string - keyring: - type: string - image: - type: string - secretRef: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: properties: + devicePath: + type: "string" name: - type: string - type: object - monitors: - items: - type: string - type: array - fsType: - type: string - user: - type: string - type: object - azureFile: - properties: - readOnly: - type: boolean - secretName: - type: string - shareName: - type: string - type: object - downwardAPI: - properties: + type: "string" + type: "object" + type: "array" + volumeMounts: items: - items: - properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - projected: - properties: - defaultMode: - type: integer - sources: - items: - properties: - secret: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - name: - type: string - type: object - configMap: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - name: - type: string - type: object - serviceAccountToken: - properties: - path: - type: string - audience: - type: string - expirationSeconds: - type: integer - type: object - downwardAPI: - properties: - items: - items: - properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - type: object - type: object - type: array - type: object - azureDisk: - properties: - readOnly: - type: boolean - diskName: - type: string - cachingMode: - type: string - fsType: - type: string - kind: - type: string - diskURI: - type: string - type: object - cephfs: - properties: - path: - type: string - readOnly: - type: boolean - secretRef: properties: + mountPath: + type: "string" + mountPropagation: + type: "string" name: - type: string - type: object - monitors: - items: - type: string - type: array - secretFile: - type: string - user: - type: string - type: object - emptyDir: - properties: - sizeLimit: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - medium: - type: string - type: object - fc: - properties: - readOnly: - type: boolean - lun: - type: integer - wwids: - items: - type: string - type: array - targetWWNs: - items: - type: string - type: array - fsType: - type: string - type: object - type: object - type: array - mounts: - description: Mount points for the additional volumes - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - type: object - env: - description: Additional container env variables. - items: - properties: - value: - type: string - valueFrom: + 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" + tolerations: + description: "Pod tolerations." + items: + properties: + effect: + type: "string" + key: + type: "string" + operator: + type: "string" + tolerationSeconds: + type: "integer" + value: + type: "string" + type: "object" + type: "array" + updateStrategy: + description: "Update strategy for the StatefulSet. Default\ + \ value is rolling update." properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: + rollingUpdate: properties: - containerName: - type: string - divisor: + maxUnavailable: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: + partition: + type: "integer" + type: "object" + type: + type: "string" + type: "object" + volumes: + description: "Volumes configuration." + properties: + journal: + description: "Config for the journal volume." properties: - optional: - type: boolean - key: - type: string + existingStorageClassName: + description: "Indicates if an already existing storage\ + \ class should be used." + type: "string" name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - labels: - additionalProperties: - type: string - description: Labels to add to each resource (except pods). - type: object - initContainers: - description: Init containers + description: "Indicates the suffix for the volume.\ + \ Default value is 'data'." + type: "string" + size: + description: "Indicates the requested size for the\ + \ volume. The format follows the Kubernetes' Quantity." + type: "string" + storageClass: + description: "Indicates if a StorageClass is used.\ + \ The operator will create the StorageClass if\ + \ needed." + properties: + extraParams: + additionalProperties: + type: "string" + description: "Adds extra parameters for the\ + \ StorageClass." + type: "object" + fsType: + description: "Indicates the 'fsType' parameter\ + \ for the StorageClass." + type: "string" + provisioner: + description: "Indicates the provisioner property\ + \ for the StorageClass." + type: "string" + reclaimPolicy: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "string" + type: + description: "Indicates the 'type' parameter\ + \ for the StorageClass." + type: "string" + type: "object" + type: "object" + ledgers: + description: "Config for the ledgers volume." + properties: + existingStorageClassName: + description: "Indicates if an already existing storage\ + \ class should be used." + type: "string" + name: + description: "Indicates the suffix for the volume.\ + \ Default value is 'data'." + type: "string" + size: + description: "Indicates the requested size for the\ + \ volume. The format follows the Kubernetes' Quantity." + type: "string" + storageClass: + description: "Indicates if a StorageClass is used.\ + \ The operator will create the StorageClass if\ + \ needed." + properties: + extraParams: + additionalProperties: + type: "string" + description: "Adds extra parameters for the\ + \ StorageClass." + type: "object" + fsType: + description: "Indicates the 'fsType' parameter\ + \ for the StorageClass." + type: "string" + provisioner: + description: "Indicates the provisioner property\ + \ for the StorageClass." + type: "string" + reclaimPolicy: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "string" + type: + description: "Indicates the 'type' parameter\ + \ for the StorageClass." + type: "string" + type: "object" + type: "object" + type: "object" + type: "object" + description: "Bookie sets." + type: "object" + setsUpdateStrategy: + description: "Sets update strategy. 'RollingUpdate' or 'Parallel'.\ + \ Default is 'RollingUpdate'." + type: "string" + sidecars: + description: "Sidecar containers" items: properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" lifecycle: properties: postStart: properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + type: "object" + preStop: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" livenessProbe: properties: - periodSeconds: - type: integer + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" failureThreshold: - type: integer - initialDelaySeconds: - type: integer + type: "integer" grpc: properties: port: - type: integer + type: "integer" service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer + scheme: + type: "string" + type: "object" initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object + type: "integer" + periodSeconds: + type: "integer" successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer + type: "integer" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" timeoutSeconds: - type: integer + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer + scheme: + type: "string" + type: "object" initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object + type: "integer" + periodSeconds: + type: "integer" successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer + type: "integer" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" timeoutSeconds: - type: integer + type: "integer" + type: "object" + resizePolicy: + items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: + 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + stdin: + type: "boolean" stdinOnce: - type: boolean - ports: + type: "boolean" + terminationMessagePath: + type: "string" + terminationMessagePolicy: + type: "string" + tty: + type: "boolean" + volumeDevices: items: properties: - containerPort: - type: integer - hostPort: - type: integer + devicePath: + type: "string" name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: + type: "string" + type: "object" + type: "array" + volumeMounts: items: properties: - prefix: - type: string - configMapRef: + 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" + tolerations: + description: "Pod tolerations." + items: + properties: + effect: + type: "string" + key: + type: "string" + operator: + type: "string" + tolerationSeconds: + type: "integer" + value: + type: "string" + type: "object" + type: "array" + updateStrategy: + description: "Update strategy for the StatefulSet. Default value\ + \ is rolling update." + properties: + rollingUpdate: + properties: + maxUnavailable: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + partition: + type: "integer" + type: "object" + type: + type: "string" + type: "object" + volumes: + description: "Volumes configuration." + properties: + journal: + description: "Config for the journal volume." + properties: + existingStorageClassName: + description: "Indicates if an already existing storage\ + \ class should be used." + type: "string" + name: + description: "Indicates the suffix for the volume. Default\ + \ value is 'data'." + type: "string" + size: + description: "Indicates the requested size for the volume.\ + \ The format follows the Kubernetes' Quantity." + type: "string" + storageClass: + description: "Indicates if a StorageClass is used. The\ + \ operator will create the StorageClass if needed." + properties: + extraParams: + additionalProperties: + type: "string" + description: "Adds extra parameters for the StorageClass." + type: "object" + fsType: + description: "Indicates the 'fsType' parameter for\ + \ the StorageClass." + type: "string" + provisioner: + description: "Indicates the provisioner property for\ + \ the StorageClass." + type: "string" + reclaimPolicy: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "string" + type: + description: "Indicates the 'type' parameter for the\ + \ StorageClass." + type: "string" + type: "object" + type: "object" + ledgers: + description: "Config for the ledgers volume." + properties: + existingStorageClassName: + description: "Indicates if an already existing storage\ + \ class should be used." + type: "string" + name: + description: "Indicates the suffix for the volume. Default\ + \ value is 'data'." + type: "string" + size: + description: "Indicates the requested size for the volume.\ + \ The format follows the Kubernetes' Quantity." + type: "string" + storageClass: + description: "Indicates if a StorageClass is used. The\ + \ operator will create the StorageClass if needed." + properties: + extraParams: + additionalProperties: + type: "string" + description: "Adds extra parameters for the StorageClass." + type: "object" + fsType: + description: "Indicates the 'fsType' parameter for\ + \ the StorageClass." + type: "string" + provisioner: + description: "Indicates the provisioner property for\ + \ the StorageClass." + type: "string" + reclaimPolicy: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "string" + type: + description: "Indicates the 'type' parameter for the\ + \ StorageClass." + type: "string" + type: "object" + type: "object" + type: "object" + type: "object" + global: + properties: + antiAffinity: + description: "Pod anti affinity configuration." + properties: + host: + description: "Indicates the reclaimPolicy property for the\ + \ StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + zone: + description: "Indicates the provisioner property for the StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + type: "object" + auth: + description: | + Authentication and authorization configuration. + properties: + enabled: + description: "Enable authentication in the cluster. Default\ + \ is 'false'." + type: "boolean" + token: + description: "Token based authentication configuration." + properties: + initialize: + description: "Initialize Secrets with new pair of keys\ + \ and tokens for the super user roles. The generated\ + \ Secret name is 'token-'." + type: "boolean" + privateKeyFile: + description: "Private key file name stored in the Secret.\ + \ Default is 'my-private.key'" + type: "string" + proxyRoles: + description: "Proxy roles." + items: + type: "string" + type: "array" + publicKeyFile: + description: "Public key file name stored in the Secret.\ + \ Default is 'my-public.key'" + type: "string" + superUserRoles: + description: "Super user roles." + items: + type: "string" + type: "array" + type: "object" + type: "object" + clusterName: + description: "Corresponds to the 'clusterName' field in the broker.conf.\ + \ Defaults to the value of the 'name' field" + type: "string" + components: + description: "Pulsar cluster components names." + properties: + autorecoveryBaseName: + description: "Autorecovery base name. Default value is 'autorecovery'." + type: "string" + bastionBaseName: + description: "Bastion base name. Default value is 'bastion'." + type: "string" + bookkeeperBaseName: + description: "BookKeeper base name. Default value is 'bookkeeper'." + type: "string" + brokerBaseName: + description: "Broker base name. Default value is 'broker'." + type: "string" + functionsWorkerBaseName: + description: "Functions Worker base name. Default value is\ + \ 'function'." + type: "string" + proxyBaseName: + description: "Proxy base name. Default value is 'proxy'." + type: "string" + zookeeperBaseName: + description: "Zookeeper base name. Default value is 'zookeeper'." + type: "string" + type: "object" + dnsConfig: + description: | + Override default DNS config for each pod. Note that because we use fully qualified service names for intra + cluster networking with Pulsar components, we set the ndots value to 4 (the default is 5). This prevents + unnecessary DNS lookups for the fully qualified service names that would be guaranteed to result in NXDOMAIN. + For example, the name 'pulsar-broker.pulsar.svc.cluster.local' has 4 dots, so it would be resolved directly + instead of appending the configured search domains. + More info here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config. + properties: + nameservers: + items: + type: "string" + type: "array" + options: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + searches: + items: + type: "string" + type: "array" + type: "object" + dnsName: + description: "Public dns name for the cluster's load balancer." + type: "string" + image: + description: "Default Pulsar image to use. Any components can\ + \ be configured to use a different image." + type: "string" + imagePullPolicy: + description: "Default Pulsar image pull policy to use. Any components\ + \ can be configured to use a different image pull policy. Default\ + \ value is 'IfNotPresent'." + type: "string" + kubernetesClusterDomain: + description: | + The domain name for your kubernetes cluster. + This domain is documented here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#a-aaaa-records-1 . + It's used to fully qualify service names when configuring Pulsar. + The default value is 'cluster.local'. + type: "string" + name: + description: "Name of the Pulsar cluster spec. This is used as\ + \ a prefix for managed Kubernetes resources." + type: "string" + nodeSelectors: + additionalProperties: + type: "string" + description: "Global node selector. If set, this will apply to\ + \ all the components." + type: "object" + persistence: + description: | + If persistence is enabled, components that has state will be deployed with PersistentVolumeClaims, otherwise, for test purposes, they will be deployed with emptyDir + type: "boolean" + priorityClassName: + description: "Priority class name to attach to each pod." + type: "string" + racks: + additionalProperties: + properties: + host: + description: "Enable rack rules based on the hostname of\ + \ the node." + properties: + enabled: + description: "Enable the rack affinity rules." + type: "boolean" + requireRackAffinity: + description: "Indicates if the podAffinity rules will\ + \ be enforced. Default is false. If required, the\ + \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + requireRackAntiAffinity: + description: "Indicates if the podAntiAffinity rules\ + \ will be enforced. Default is true. If required,\ + \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + type: "object" + zone: + description: "Enable rack rules based on the failure domain\ + \ (availability zone) of the node." + properties: + enableHostAntiAffinity: + description: "Enable the host anti affinity. If set,\ + \ all the pods of the same rack will deployed on different\ + \ nodes of the same zone.Default is true." + type: "boolean" + enabled: + description: "Enable the rack affinity rules." + type: "boolean" + requireRackAffinity: + description: "Indicates if the podAffinity rules will\ + \ be enforced. Default is false. If required, the\ + \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + requireRackAntiAffinity: + description: "Indicates if the podAntiAffinity rules\ + \ will be enforced. Default is true. If required,\ + \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + requireRackHostAntiAffinity: + description: "Indicates if the podAntiAffinity rules\ + \ will be enforced for the host. Default is true.\ + \ If required, the affinity rule will be enforced\ + \ using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + type: "object" + type: "object" + description: "Racks configuration." + type: "object" + resourceSets: + additionalProperties: + properties: + rack: + description: "Place this resource set to a specific rack,\ + \ defined at .global.racks." + type: "string" + type: "object" + description: "Resource sets." + type: "object" + restartOnConfigMapChange: + description: | + By default, Kubernetes will not restart pods when only their configmap is changed. This setting will restart pods when their configmap is changed using an annotation that calculates the checksum of the configmap. + type: "boolean" + storage: + description: "Storage configuration." + properties: + existingStorageClassName: + description: "Indicates if an already existing storage class\ + \ should be used." + type: "string" + storageClass: + description: "Indicates if a StorageClass is used. The operator\ + \ will create the StorageClass if needed." + properties: + extraParams: + additionalProperties: + type: "string" + description: "Adds extra parameters for the StorageClass." + type: "object" + fsType: + description: "Indicates the 'fsType' parameter for the\ + \ StorageClass." + type: "string" + provisioner: + description: "Indicates the provisioner property for the\ + \ StorageClass." + type: "string" + reclaimPolicy: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "string" + type: + description: "Indicates the 'type' parameter for the StorageClass." + type: "string" + type: "object" + type: "object" + tls: + description: "TLS configuration for the cluster." + properties: + autorecovery: + description: "TLS configurations related to the Autorecovery\ + \ component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + bookkeeper: + description: "TLS configurations related to the BookKeeper\ + \ component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + broker: + description: "TLS configurations related to the Broker component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + brokerResourceSets: + additionalProperties: + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from\ + \ where to load the certificates." + type: "string" + type: "object" + description: "TLS configurations related to the Broker resource\ + \ sets." + type: "object" + caPath: + description: "Path in the container filesystem where the TLS\ + \ CA certificates are retrieved. It has to point to a certificate\ + \ file. The default value is /etc/ssl/certs/ca-certificates.crt." + type: "string" + certProvisioner: + description: "Certificate provisioner configuration." + properties: + acme: + description: "ACME certificate provisioner configuration." + properties: + broker: + description: "Broker self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + enabled: + description: "Generate self signed certificates for\ + \ broker, proxy and functions worker." + type: "boolean" + external: + additionalProperties: + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject\ + \ Alternative Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key\ + \ will be stored whe perComponent is enabled.\ + \ Required for external services. Internal\ + \ services pick up the secret name from the\ + \ tls config if not specified" + type: "string" + type: "object" + description: "External services self signed certificate\ + \ config (e.g., admin console, grafana). The key\ + \ is the service name, and the value contains generation\ + \ config" + type: "object" + issuer: + description: "ACME issuer configuration." properties: - optional: - type: boolean + email: + description: "Email used for ACME registration." + type: "string" name: - type: string - type: object - secretRef: + description: "Name of the Issuer resource." + type: "string" + privateKeySecretName: + description: "Secret storing the ACME account\ + \ private key." + type: "string" + server: + description: "ACME server URL." + type: "string" + solvers: + description: "ACME challenge solvers. Solvers\ + \ are evaluated in order; no domain-based routing" + items: + properties: + dns01: + description: "DNS01 solver configuration." + properties: + cloudDNS: + properties: + project: + type: "string" + serviceAccountSecretKey: + type: "string" + serviceAccountSecretName: + type: "string" + type: "object" + cloudflare: + properties: + apiTokenSecretKey: + type: "string" + apiTokenSecretName: + type: "string" + email: + type: "string" + type: "object" + route53: + properties: + hostedZoneId: + type: "string" + region: + type: "string" + type: "object" + type: "object" + http01: + description: "HTTP01 solver configuration." + properties: + ingressClass: + description: "Ingress class used for\ + \ HTTP01 challenge." + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - securityContext: - properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: - properties: - add: - items: - type: string - type: array - drop: - items: - type: string - type: array - type: object - seLinuxOptions: - properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: - properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: - items: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + proxy: + description: "Proxy self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + type: "object" + selfSigned: + description: "Self signed certificate provisioner configuration." properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array - pdb: - description: Pod disruption budget configuration. - properties: - maxUnavailable: - description: Number of maxUnavailable pods. - type: integer - enabled: - description: Enable Pdb policy. - type: boolean - type: object - tolerations: - description: Pod tolerations. - items: - properties: - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - effect: - type: string - type: object - type: array - replicas: - description: Number of desired replicas. - type: integer - nodeAffinity: - description: Node affinity configuration. - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - weight: - type: integer - preference: - properties: - matchFields: - items: + autorecovery: + description: "Autorecovery self signed certificate\ + \ config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + bookkeeper: + description: "Bookkeeper self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchFields: - items: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + broker: + description: "Broker self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + caSecretName: + description: "Secret where to store the root CA certificate." + type: "string" + enabled: + description: "Generate self signed certificates for\ + \ broker, proxy and functions worker." + type: "boolean" + external: + additionalProperties: + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject\ + \ Alternative Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key\ + \ will be stored whe perComponent is enabled.\ + \ Required for external services. Internal\ + \ services pick up the secret name from the\ + \ tls config if not specified" + type: "string" + type: "object" + description: "External services self signed certificate\ + \ config (e.g., admin console, grafana). The key\ + \ is the service name, and the value contains generation\ + \ config" + type: "object" + functionsWorker: + description: "Functions worker self signed certificate\ + \ config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: array - type: object - type: object - nodeSelectors: - additionalProperties: - type: string - description: Additional node selectors. - type: object - antiAffinity: - description: Pod anti-affinity configuration. This override the - global value if set. - properties: - host: - description: Indicates the reclaimPolicy property for the - StorageClass. + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + includeDns: + description: "Include dns name in the DNS names covered\ + \ by the certificate." + type: "boolean" + perComponent: + description: "Generate a different certificate for\ + \ each component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + proxy: + description: "Proxy self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + zookeeper: + description: "Zookeeper self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + type: "object" + type: "object" + defaultSecretName: + description: "Secret name used by each component to load TLS\ + \ certificates. Each component can load a different secret\ + \ by setting the 'secretName' entry in the tls component\ + \ spec." + type: "string" + enabled: + description: "Deprecated. Use the 'enabled' field in each\ + \ component spec instead." + type: "boolean" + functionsWorker: + description: "TLS configurations related to the Functions\ + \ worker component." properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - zone: - description: Indicates the provisioner property for the StorageClass. + description: "Enable TLS." + type: "boolean" + enabledWithBroker: + description: "Enable TLS for the functions worker to broker\ + \ connections." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + proxy: + description: "TLS configurations related to the Proxy component." properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - type: object - imagePullPolicy: - description: Override image pull policy. - type: string - podLabels: - additionalProperties: - type: string - description: Labels to add to each pod. - type: object - matchLabels: - additionalProperties: - type: string - description: Match labels selectors to add to each pod. - type: object - serviceAccountName: - description: Service account name for the resource. - type: string - type: object - type: object + description: "Enable TLS." + type: "boolean" + enabledWithBroker: + description: "Enable TLS for the proxy to broker connections." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + proxyResourceSets: + additionalProperties: + properties: + enabled: + description: "Enable TLS." + type: "boolean" + enabledWithBroker: + description: "Enable TLS for the proxy to broker connections." + type: "boolean" + secretName: + description: "Override the default secret name from\ + \ where to load the certificates." + type: "string" + type: "object" + description: "TLS configurations related to the Proxy resource\ + \ sets." + type: "object" + ssCa: + description: "TLS configurations used by additional components,\ + \ such as the Bastion component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + zookeeper: + description: "TLS configurations related to the ZooKeeper\ + \ component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + type: "object" + zookeeperPlainSslStorePassword: + description: "Use plain password in zookeeper server and client\ + \ configuration. Default is false. Old versions of Apache Zookeeper\ + \ (<3.8.0) does not support getting password from file. In that\ + \ case, set this to true." + type: "boolean" + required: + - "name" + type: "object" + type: "object" status: properties: - lastApplied: - description: Last spec applied. - type: string conditions: description: |- Conditions: 1. Condition Ready: possible status are True or False. If False, the reason contains the error message. items: properties: - status: - type: string - reason: - type: string lastTransitionTime: - type: string + type: "string" + message: + type: "string" observedGeneration: - type: integer + type: "integer" + reason: + type: "string" + status: + type: "string" type: - type: string - message: - type: string - type: object - type: array - type: object - type: object + type: "string" + type: "object" + type: "array" + lastApplied: + description: "Last spec applied." + type: "string" + type: "object" + type: "object" served: true storage: true subresources: diff --git a/helm/kaap/crds/brokers.kaap.oss.datastax.com-v1.yml b/helm/kaap/crds/brokers.kaap.oss.datastax.com-v1.yml index 0f0b6e98..761b69be 100644 --- a/helm/kaap/crds/brokers.kaap.oss.datastax.com-v1.yml +++ b/helm/kaap/crds/brokers.kaap.oss.datastax.com-v1.yml @@ -1,4911 +1,5570 @@ # Generated by Fabric8 CRDGenerator, manual edits might get overwritten! -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition +apiVersion: "apiextensions.k8s.io/v1" +kind: "CustomResourceDefinition" metadata: - name: brokers.kaap.oss.datastax.com + name: "brokers.kaap.oss.datastax.com" spec: - group: kaap.oss.datastax.com + group: "kaap.oss.datastax.com" names: - kind: Broker - plural: brokers + kind: "Broker" + plural: "brokers" shortNames: - - br - singular: broker - scope: Namespaced + - "br" + singular: "broker" + scope: "Namespaced" versions: - - name: v1beta1 + - name: "v1beta1" schema: openAPIV3Schema: properties: spec: properties: - global: + broker: properties: - components: - description: Pulsar cluster components names. - properties: - brokerBaseName: - description: Broker base name. Default value is 'broker'. - type: string - zookeeperBaseName: - description: Zookeeper base name. Default value is 'zookeeper'. - type: string - functionsWorkerBaseName: - description: Functions Worker base name. Default value is - 'function'. - type: string - autorecoveryBaseName: - description: Autorecovery base name. Default value is 'autorecovery'. - type: string - bookkeeperBaseName: - description: BookKeeper base name. Default value is 'bookkeeper'. - type: string - bastionBaseName: - description: Bastion base name. Default value is 'bastion'. - type: string - proxyBaseName: - description: Proxy base name. Default value is 'proxy'. - type: string - type: object - dnsConfig: - description: | - Override default DNS config for each pod. Note that because we use fully qualified service names for intra - cluster networking with Pulsar components, we set the ndots value to 4 (the default is 5). This prevents - unnecessary DNS lookups for the fully qualified service names that would be guaranteed to result in NXDOMAIN. - For example, the name 'pulsar-broker.pulsar.svc.cluster.local' has 4 dots, so it would be resolved directly - instead of appending the configured search domains. - More info here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config. + additionalVolumes: + description: "Mount additional volumes to the pod." properties: - nameservers: - items: - type: string - type: array - searches: - items: - type: string - type: array - options: + mounts: + description: "Mount points for the additional volumes" items: properties: - value: - type: string + mountPath: + type: "string" + mountPropagation: + type: "string" name: - type: string - type: object - type: array - type: object - dnsName: - description: Public dns name for the cluster's load balancer. - type: string - kubernetesClusterDomain: - description: | - The domain name for your kubernetes cluster. - This domain is documented here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#a-aaaa-records-1 . - It's used to fully qualify service names when configuring Pulsar. - The default value is 'cluster.local'. - type: string - priorityClassName: - description: Priority class name to attach to each pod. - type: string - name: - description: Name of the Pulsar cluster spec. This is used as - a prefix for managed Kubernetes resources. - type: string - storage: - description: Storage configuration. - properties: - storageClass: - description: Indicates if a StorageClass is used. The operator - will create the StorageClass if needed. - properties: - extraParams: - additionalProperties: - type: string - description: Adds extra parameters for the StorageClass. - type: object - provisioner: - description: Indicates the provisioner property for the - StorageClass. - type: string - type: - description: Indicates the 'type' parameter for the StorageClass. - type: string - fsType: - description: Indicates the 'fsType' parameter for the - StorageClass. - type: string - reclaimPolicy: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: string - type: object - existingStorageClassName: - description: Indicates if an already existing storage class - should be used. - type: string - type: object - tls: - description: TLS configuration for the cluster. - properties: - ssCa: - description: "TLS configurations used by additional components,\ - \ such as the Bastion component." - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - certProvisioner: - description: Certificate provisioner configuration. - properties: - selfSigned: - description: Self signed certificate provisioner configuration. - properties: - functionsWorker: - description: Functions worker self signed certificate - config. - properties: - privateKey: - description: Cert-manager options for generating - the private key. - properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - includeDns: - description: Include dns name in the DNS names covered - by the certificate. - type: boolean - privateKey: - description: Cert-manager options for generating the - private key. - properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - autorecovery: - description: Autorecovery self signed certificate - config. - properties: - privateKey: - description: Cert-manager options for generating - the private key. - properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - bookkeeper: - description: Bookkeeper self signed certificate config. - properties: - privateKey: - description: Cert-manager options for generating - the private key. - properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - proxy: - description: Proxy self signed certificate config. - properties: - privateKey: - description: Cert-manager options for generating - the private key. - properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - zookeeper: - description: Zookeeper self signed certificate config. - properties: - privateKey: - description: Cert-manager options for generating - the private key. + type: "string" + readOnly: + type: "boolean" + recursiveReadOnly: + type: "string" + subPath: + type: "string" + subPathExpr: + type: "string" + type: "object" + type: "array" + volumes: + description: "Additional volumes to be mounted to the pod" + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: "string" + partition: + type: "integer" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + azureDisk: + properties: + cachingMode: + type: "string" + diskName: + type: "string" + diskURI: + type: "string" + fsType: + type: "string" + kind: + type: "string" + readOnly: + type: "boolean" + type: "object" + azureFile: + properties: + readOnly: + type: "boolean" + secretName: + type: "string" + shareName: + type: "string" + type: "object" + cephfs: + properties: + monitors: + items: + type: "string" + type: "array" + path: + type: "string" + readOnly: + type: "boolean" + secretFile: + type: "string" + secretRef: + properties: + name: + type: "string" + type: "object" + user: + type: "string" + type: "object" + cinder: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + volumeID: + type: "string" + type: "object" + configMap: + properties: + defaultMode: + type: "integer" + items: + items: properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - broker: - description: Broker self signed certificate config. - properties: - privateKey: - description: Cert-manager options for generating - the private key. + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + csi: + properties: + driver: + type: "string" + fsType: + type: "string" + nodePublishSecretRef: + properties: + name: + type: "string" + type: "object" + readOnly: + type: "boolean" + volumeAttributes: + additionalProperties: + type: "string" + type: "object" + type: "object" + downwardAPI: + properties: + defaultMode: + type: "integer" + items: + items: properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - perComponent: - description: Generate a different certificate for - each component. - type: boolean - enabled: - description: "Generate self signed certificates for\ - \ broker, proxy and functions worker." - type: boolean - caSecretName: - description: Secret where to store the root CA certificate. - type: string - type: object - type: object - autorecovery: - description: TLS configurations related to the Autorecovery - component. - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - proxyResourceSets: - additionalProperties: - properties: - enabledWithBroker: - description: Enable TLS for the proxy to broker connections. - type: boolean - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - description: TLS configurations related to the Proxy resource - sets. - type: object - defaultSecretName: - description: Secret name used by each component to load TLS - certificates. Each component can load a different secret - by setting the 'secretName' entry in the tls component spec. - type: string - enabled: - description: Deprecated. Use the 'enabled' field in each component - spec instead. - type: boolean - caPath: - description: Path in the container filesystem where the TLS - CA certificates are retrieved. It has to point to a certificate - file. The default value is /etc/ssl/certs/ca-certificates.crt. - type: string - zookeeper: - description: TLS configurations related to the ZooKeeper component. - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - brokerResourceSets: - additionalProperties: - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - description: TLS configurations related to the Broker resource - sets. - type: object - functionsWorker: - description: TLS configurations related to the Functions worker - component. - properties: - enabledWithBroker: - description: Enable TLS for the functions worker to broker - connections. - type: boolean - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - broker: - description: TLS configurations related to the Broker component. - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - proxy: - description: TLS configurations related to the Proxy component. - properties: - enabledWithBroker: - description: Enable TLS for the proxy to broker connections. - type: boolean - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - bookkeeper: - description: TLS configurations related to the BookKeeper - component. - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - type: object - clusterName: - description: Corresponds to the 'clusterName' field in the broker.conf. Defaults - to the value of the 'name' field - type: string - restartOnConfigMapChange: - description: | - By default, Kubernetes will not restart pods when only their configmap is changed. This setting will restart pods when their configmap is changed using an annotation that calculates the checksum of the configmap. - type: boolean - image: - description: Default Pulsar image to use. Any components can be - configured to use a different image. - type: string - auth: - description: | - Authentication and authorization configuration. - properties: - token: - description: Token based authentication configuration. - properties: - privateKeyFile: - description: Private key file name stored in the Secret. - Default is 'my-private.key' - type: string - initialize: - description: Initialize Secrets with new pair of keys - and tokens for the super user roles. The generated Secret - name is 'token-'. - type: boolean - superUserRoles: - description: Super user roles. - items: - type: string - type: array - proxyRoles: - description: Proxy roles. - items: - type: string - type: array - publicKeyFile: - description: Public key file name stored in the Secret. - Default is 'my-public.key' - type: string - type: object - enabled: - description: Enable authentication in the cluster. Default - is 'false'. - type: boolean - type: object - persistence: - description: | - If persistence is enabled, components that has state will be deployed with PersistentVolumeClaims, otherwise, for test purposes, they will be deployed with emptyDir - type: boolean - racks: - additionalProperties: - properties: - host: - description: Enable rack rules based on the hostname of - the node. - properties: - enabled: - description: Enable the rack affinity rules. - type: boolean - requireRackAntiAffinity: - description: "Indicates if the podAntiAffinity rules\ - \ will be enforced. Default is true. If required,\ - \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - requireRackAffinity: - description: "Indicates if the podAffinity rules will\ - \ be enforced. Default is false. If required, the\ - \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - type: object - zone: - description: Enable rack rules based on the failure domain - (availability zone) of the node. - properties: - enableHostAntiAffinity: - description: "Enable the host anti affinity. If set,\ - \ all the pods of the same rack will deployed on different\ - \ nodes of the same zone.Default is true." - type: boolean - requireRackHostAntiAffinity: - description: "Indicates if the podAntiAffinity rules\ - \ will be enforced for the host. Default is true.\ - \ If required, the affinity rule will be enforced\ - \ using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - enabled: - description: Enable the rack affinity rules. - type: boolean - requireRackAntiAffinity: - description: "Indicates if the podAntiAffinity rules\ - \ will be enforced. Default is true. If required,\ - \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - requireRackAffinity: - description: "Indicates if the podAffinity rules will\ - \ be enforced. Default is false. If required, the\ - \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - type: object - type: object - description: Racks configuration. - type: object - resourceSets: - additionalProperties: - properties: - rack: - description: "Place this resource set to a specific rack,\ - \ defined at .global.racks." - type: string - type: object - description: Resource sets. - type: object - nodeSelectors: - additionalProperties: - type: string - description: "Global node selector. If set, this will apply to\ - \ all the components." - type: object - antiAffinity: - description: Pod anti affinity configuration. - properties: - host: - description: Indicates the reclaimPolicy property for the - StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - zone: - description: Indicates the provisioner property for the StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - type: object - zookeeperPlainSslStorePassword: - description: "Use plain password in zookeeper server and client\ - \ configuration. Default is false. Old versions of Apache Zookeeper\ - \ (<3.8.0) does not support getting password from file. In that\ - \ case, set this to true." - type: boolean - imagePullPolicy: - description: Default Pulsar image pull policy to use. Any components - can be configured to use a different image pull policy. Default - value is 'IfNotPresent'. - type: string - required: - - name - type: object - broker: - properties: - sets: - additionalProperties: - properties: - updateStrategy: - description: Update strategy for the StatefulSet. - properties: - type: - type: string - rollingUpdate: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + emptyDir: properties: - maxUnavailable: + medium: + type: "string" + sizeLimit: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true + type: "object" + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: "string" + type: "object" + creationTimestamp: + type: "string" + deletionGracePeriodSeconds: + type: "integer" + deletionTimestamp: + type: "string" + finalizers: + items: + type: "string" + type: "array" + generateName: + type: "string" + generation: + type: "integer" + labels: + additionalProperties: + type: "string" + type: "object" + managedFields: + items: + properties: + apiVersion: + type: "string" + fieldsType: + type: "string" + fieldsV1: + type: "object" + manager: + type: "string" + operation: + type: "string" + subresource: + type: "string" + time: + type: "string" + type: "object" + type: "array" + name: + type: "string" + namespace: + type: "string" + ownerReferences: + items: + 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: + properties: + accessModes: + items: + type: "string" + type: "array" + dataSource: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + type: "object" + dataSourceRef: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + namespace: + type: "string" + type: "object" + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + selector: + properties: + matchExpressions: + items: + 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: + 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: + properties: + driver: + type: "string" + fsType: + type: "string" + options: + additionalProperties: + type: "string" + type: "object" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + type: "object" + flocker: + properties: + datasetName: + type: "string" + datasetUUID: + type: "string" + type: "object" + gcePersistentDisk: + properties: + fsType: + type: "string" partition: - type: integer - type: object - type: object - config: - description: Configuration. - x-kubernetes-preserve-unknown-fields: true - probes: - description: Liveness and readiness probes configuration. - properties: - useHealthCheckForReadiness: - description: "Use healthcheck for the readiness probe.\ - \ If false, the /metrics endpoint will be used." - type: boolean - useHealthCheckForLiveness: - description: "Use healthcheck for the liveness probe.\ - \ If false, the /metrics endpoint will be used." - type: boolean - liveness: - description: Liveness probe configuration. + type: "integer" + pdName: + type: "string" + readOnly: + type: "boolean" + type: "object" + gitRepo: properties: - periodSeconds: - description: Indicates the period (in seconds) for - the probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period - (in seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) - for the probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - readiness: - description: Readiness probe configuration. + directory: + type: "string" + repository: + type: "string" + revision: + type: "string" + type: "object" + glusterfs: properties: - periodSeconds: - description: Indicates the period (in seconds) for - the probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period - (in seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) - for the probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - type: object - gracePeriod: - description: Termination grace period in seconds. - minimum: 0.0 - type: integer - functionsWorkerEnabled: - description: Enable functions worker embedded in the broker. - type: boolean - transactions: - description: Enable transactions in the broker. - properties: - initJob: - description: Config for the init job. + endpoints: + type: "string" + path: + type: "string" + readOnly: + type: "boolean" + type: "object" + hostPath: properties: - resources: - description: Resources requirements. + path: + type: "string" + type: + type: "string" + type: "object" + image: + properties: + pullPolicy: + type: "string" + reference: + type: "string" + type: "object" + iscsi: + 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: properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - partitions: - description: Number of coordinators to create. - type: integer - enabled: - description: Initialize the transaction coordinator - if it's not yet and configure the broker to accept - transactions. - type: boolean - type: object - service: - description: Service configuration. - properties: - additionalPorts: - description: Additional ports to add to the Service. - items: - properties: - targetPort: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - port: - type: integer - nodePort: - type: integer - name: - type: string - appProtocol: - type: string - protocol: - type: string - type: object - type: array - annotations: - additionalProperties: - type: string - description: Additional annotations to add to the Service. - type: object - type: - description: Service type. Default value is 'ClusterIP' - type: string - type: object - autoscaler: - description: Autoscaling config. - properties: - periodMs: - description: The interval in milliseconds between two - consecutive autoscaling checks. - minimum: 1000.0 - type: integer - resourcesUsageSource: - description: Source for getting the brokers resources - usage. Possible values are 'PulsarLBReport' and 'K8SMetrics'. - Default is 'PulsarLBReport' - type: string - max: - description: "Max number of brokers. If the number of\ - \ brokers is equals to this value, the autoscaler\ - \ will never scale up." - type: integer - higherCpuThreshold: - description: The threshold to trigger a scale up. The - autoscaler will scale up if all the brokers cpu usage - is higher than this threshold. Default is '0.8' - maximum: 1.0 - minimum: 0.0 - type: number - enabled: - description: Enable autoscaling for brokers. - type: boolean - min: - description: "Min number of brokers. If the number of\ - \ brokers is equals to this value, the autoscaler\ - \ will never scale down." - minimum: 1.0 - type: integer - scaleUpBy: - description: The number of brokers to add at each scale - up. Default is '1' - minimum: 1.0 - type: integer - stabilizationWindowMs: - description: The stabilization window is used to restrict - the flapping of replica count when the metrics used - for scaling keep fluctuating. The autoscaling algorithm - uses this window to infer a previous desired state - and avoid unwanted changes to workload scale.Default - value is 5 minutes after the pod readiness. - minimum: 1.0 - type: integer - lowerCpuThreshold: - description: The threshold to trigger a scale down. - The autoscaler will scale down if all the brokers - cpu usage is lower than this threshold. Default is - '0.4' - maximum: 1.0 - minimum: 0.0 - type: number - scaleDownBy: - description: The number of brokers to remove at each - scale down. Default is '1' - minimum: 1.0 - type: integer - type: object - podManagementPolicy: - description: Pod management policy. - type: string - resources: - description: Resources requirements. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - overrideResourceName: - description: Override the resource names generated by the - operator. - type: string - kafka: - description: Enable Kafka protocol. - properties: - exposePorts: - description: Expose the kafka protocol port. - type: boolean - enabled: - description: Allow the cluster to accept Kafka protocol. - Default is 'false'. - type: boolean - type: object - imagePullSecrets: - description: Image pull secrets. - items: - properties: - name: - type: string - type: object - type: array - image: - description: Override Pulsar image. - type: string - annotations: - additionalProperties: - type: string - description: Annotations to add to each resource (except - pods). - type: object - podAnnotations: - additionalProperties: - type: string - description: Annotations to add to pod. - type: object - sidecars: - description: Sidecar containers - items: - properties: - lifecycle: - properties: - postStart: + name: + type: "string" + type: "object" + targetPortal: + type: "string" + type: "object" + name: + type: "string" + nfs: + properties: + path: + type: "string" + readOnly: + type: "boolean" + server: + type: "string" + type: "object" + persistentVolumeClaim: + properties: + claimName: + type: "string" + readOnly: + type: "boolean" + type: "object" + photonPersistentDisk: + properties: + fsType: + type: "string" + pdID: + type: "string" + type: "object" + portworxVolume: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + projected: + properties: + defaultMode: + type: "integer" + sources: + items: properties: - tcpSocket: + clusterTrustBundle: properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: + labelSelector: + properties: + matchExpressions: + items: + 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: properties: - command: + items: items: - type: string - type: array - type: object - httpGet: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + downwardAPI: properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: + items: items: properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + secret: properties: - command: + items: items: - type: string - type: array - type: object - httpGet: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + serviceAccountToken: properties: + audience: + type: "string" + expirationSeconds: + type: "integer" path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + quobyte: + properties: + group: + type: "string" + readOnly: + type: "boolean" + registry: + type: "string" + tenant: + type: "string" + user: + type: "string" + volume: + type: "string" + type: "object" + rbd: + properties: + fsType: + type: "string" + image: + type: "string" + keyring: + type: "string" + monitors: + items: + type: "string" + type: "array" + pool: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + user: + type: "string" + type: "object" + scaleIO: + properties: + fsType: + type: "string" + gateway: + type: "string" + protectionDomain: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + sslEnabled: + type: "boolean" + storageMode: + type: "string" + storagePool: + type: "string" + system: + type: "string" + volumeName: + type: "string" + type: "object" + secret: + properties: + defaultMode: + type: "integer" items: - type: string - type: array - livenessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: + items: properties: + key: + type: "string" + mode: + type: "integer" path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: + type: "string" + type: "object" + type: "array" + optional: + type: "boolean" + secretName: + type: "string" + type: "object" + storageos: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + secretRef: properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: + type: "string" + type: "object" + volumeName: + type: "string" + volumeNamespace: + type: "string" + type: "object" + vsphereVolume: + properties: + fsType: + type: "string" + storagePolicyID: + type: "string" + storagePolicyName: + type: "string" + volumePath: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + annotations: + additionalProperties: + type: "string" + description: "Annotations to add to each resource (except pods)." + type: "object" + antiAffinity: + description: "Pod anti-affinity configuration. This override the\ + \ global value if set." + properties: + host: + description: "Indicates the reclaimPolicy property for the\ + \ StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + zone: + description: "Indicates the provisioner property for the StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + type: "object" + autoscaler: + description: "Autoscaling config." + properties: + enabled: + description: "Enable autoscaling for brokers." + type: "boolean" + higherCpuThreshold: + description: "The threshold to trigger a scale up. The autoscaler\ + \ will scale up if all the brokers cpu usage is higher than\ + \ this threshold. Default is '0.8'" + maximum: 1.0 + minimum: 0.0 + type: "number" + lowerCpuThreshold: + description: "The threshold to trigger a scale down. The autoscaler\ + \ will scale down if all the brokers cpu usage is lower\ + \ than this threshold. Default is '0.4'" + maximum: 1.0 + minimum: 0.0 + type: "number" + max: + description: "Max number of brokers. If the number of brokers\ + \ is equals to this value, the autoscaler will never scale\ + \ up." + type: "integer" + min: + description: "Min number of brokers. If the number of brokers\ + \ is equals to this value, the autoscaler will never scale\ + \ down." + minimum: 1.0 + type: "integer" + periodMs: + description: "The interval in milliseconds between two consecutive\ + \ autoscaling checks." + minimum: 1000.0 + type: "integer" + resourcesUsageSource: + description: "Source for getting the brokers resources usage.\ + \ Possible values are 'PulsarLBReport' and 'K8SMetrics'.\ + \ Default is 'PulsarLBReport'" + type: "string" + scaleDownBy: + description: "The number of brokers to remove at each scale\ + \ down. Default is '1'" + minimum: 1.0 + type: "integer" + scaleUpBy: + description: "The number of brokers to add at each scale up.\ + \ Default is '1'" + minimum: 1.0 + type: "integer" + stabilizationWindowMs: + description: "The stabilization window is used to restrict\ + \ the flapping of replica count when the metrics used for\ + \ scaling keep fluctuating. The autoscaling algorithm uses\ + \ this window to infer a previous desired state and avoid\ + \ unwanted changes to workload scale.Default value is 5\ + \ minutes after the pod readiness." + minimum: 1.0 + type: "integer" + type: "object" + config: + description: "Configuration." + x-kubernetes-preserve-unknown-fields: true + env: + description: "Additional container env variables." + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + functionsWorkerEnabled: + description: "Enable functions worker embedded in the broker." + type: "boolean" + gracePeriod: + description: "Termination grace period in seconds." + minimum: 0.0 + type: "integer" + image: + description: "Override Pulsar image." + type: "string" + imagePullPolicy: + description: "Override image pull policy." + type: "string" + imagePullSecrets: + description: "Image pull secrets." + items: + properties: + name: + type: "string" + type: "object" + type: "array" + initContainers: + description: "Init containers" + items: + properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: + configMapKeyRef: properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: properties: - command: - items: - type: string - type: array - type: object - httpGet: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: + containerName: + type: "string" + divisor: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" + lifecycle: + properties: + postStart: + properties: + exec: properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: - properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array - volumeMounts: - items: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - securityContext: - properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: - properties: - add: - items: - type: string - type: array - drop: - items: - type: string - type: array - type: object - seLinuxOptions: - properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: - properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: - properties: - limits: - additionalProperties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: + type: "object" + type: "object" + preStop: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: - items: + scheme: + type: "string" + type: "object" + sleep: properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array - additionalVolumes: - description: Mount additional volumes to the pod. + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" + livenessProbe: properties: - volumes: - description: Additional volumes to be mounted to the - pod - items: - properties: - hostPath: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: properties: - path: - type: string - type: - type: string - type: object - flexVolume: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: properties: - readOnly: - type: boolean - options: - additionalProperties: - type: string - type: object - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - gcePersistentDisk: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: + items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: + 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: properties: - readOnly: - type: boolean - pdName: - type: string - partition: - type: integer - fsType: - type: string - type: object - ephemeral: - properties: - volumeClaimTemplate: - properties: - metadata: - properties: - generateName: - type: string - deletionGracePeriodSeconds: - type: integer - deletionTimestamp: - type: string - resourceVersion: - type: string - annotations: - additionalProperties: - type: string - type: object - selfLink: - type: string - creationTimestamp: - type: string - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - ownerReferences: - items: - properties: - blockOwnerDeletion: - type: boolean - uid: - type: string - apiVersion: - type: string - name: - type: string - kind: - type: string - controller: - type: boolean - type: object - type: array - uid: - type: string - generation: - type: integer - name: - type: string - managedFields: - items: - properties: - time: - type: string - apiVersion: - type: string - fieldsV1: - type: object - fieldsType: - type: string - manager: - type: string - operation: - type: string - subresource: - type: string - type: object - type: array - namespace: - type: string - type: object - spec: - properties: - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string - dataSource: - properties: - name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - dataSourceRef: - properties: - name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - accessModes: - items: - type: string - type: array - volumeMode: - type: string - volumeName: - type: string - type: object - type: object - type: object - scaleIO: - properties: - readOnly: - type: boolean - storageMode: - type: string - storagePool: - type: string - system: - type: string - gateway: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - sslEnabled: - type: boolean - volumeName: - type: string - protectionDomain: - type: string - type: object - csi: - properties: - nodePublishSecretRef: - properties: - name: - type: string - type: object - readOnly: - type: boolean - volumeAttributes: - additionalProperties: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - secret: - properties: - optional: - type: boolean - secretName: - type: string - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - name: - type: string - vsphereVolume: - properties: - storagePolicyName: - type: string - storagePolicyID: - type: string - volumePath: - type: string - fsType: - type: string - type: object - gitRepo: - properties: - revision: - type: string - repository: - type: string - directory: - type: string - type: object - glusterfs: - properties: - path: - type: string - readOnly: - type: boolean - endpoints: - type: string - type: object - nfs: - properties: - path: - type: string - readOnly: - type: boolean - server: - type: string - type: object - cinder: - properties: - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - volumeID: - type: string - type: object - flocker: - properties: - datasetUUID: - type: string - datasetName: - type: string - type: object - quobyte: - properties: - group: - type: string - readOnly: - type: boolean - volume: - type: string - user: - type: string - registry: - type: string - tenant: - type: string - type: object - photonPersistentDisk: - properties: - pdID: - type: string - fsType: - type: string - type: object - persistentVolumeClaim: - properties: - readOnly: - type: boolean - claimName: - type: string - type: object - awsElasticBlockStore: - properties: - readOnly: - type: boolean - partition: - type: integer - fsType: - type: string - volumeID: - type: string - type: object - configMap: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer name: - type: string - type: object - storageos: - properties: - readOnly: - type: boolean - volumeNamespace: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - volumeName: - type: string - type: object - portworxVolume: - properties: - readOnly: - type: boolean - fsType: - type: string - volumeID: - type: string - type: object - iscsi: - properties: - readOnly: - type: boolean - chapAuthSession: - type: boolean - lun: - type: integer - targetPortal: - type: string - iscsiInterface: - type: string - portals: - items: - type: string - type: array - initiatorName: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - iqn: - type: string - chapAuthDiscovery: - type: boolean - type: object - rbd: - properties: - readOnly: - type: boolean - pool: - type: string - keyring: - type: string - image: - type: string - secretRef: - properties: - name: - type: string - type: object - monitors: - items: - type: string - type: array - fsType: - type: string - user: - type: string - type: object - azureFile: - properties: - readOnly: - type: boolean - secretName: - type: string - shareName: - type: string - type: object - downwardAPI: - properties: - items: - items: - properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - projected: - properties: - defaultMode: - type: integer - sources: - items: - properties: - secret: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - name: - type: string - type: object - configMap: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - name: - type: string - type: object - serviceAccountToken: - properties: - path: - type: string - audience: - type: string - expirationSeconds: - type: integer - type: object - downwardAPI: - properties: - items: - items: - properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - type: object - type: object - type: array - type: object - azureDisk: - properties: - readOnly: - type: boolean - diskName: - type: string - cachingMode: - type: string - fsType: - type: string - kind: - type: string - diskURI: - type: string - type: object - cephfs: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: + properties: + devicePath: + type: "string" + name: + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + 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" + kafka: + description: "Enable Kafka protocol." + properties: + enabled: + description: "Allow the cluster to accept Kafka protocol.\ + \ Default is 'false'." + type: "boolean" + exposePorts: + description: "Expose the kafka protocol port." + type: "boolean" + type: "object" + labels: + additionalProperties: + type: "string" + description: "Labels to add to each resource (except pods)." + type: "object" + matchLabels: + additionalProperties: + type: "string" + description: "Match labels selectors to add to each pod." + type: "object" + minReadySeconds: + description: "Min seconds to wait before considering the pod as\ + \ ready." + type: "integer" + nodeAffinity: + description: "Node affinity configuration." + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: properties: - path: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - monitors: + key: + type: "string" + operator: + type: "string" + values: items: - type: string - type: array - secretFile: - type: string - user: - type: string - type: object - emptyDir: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: + items: properties: - sizeLimit: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - medium: - type: string - type: object - fc: + 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" + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: properties: - readOnly: - type: boolean - lun: - type: integer - wwids: + key: + type: "string" + operator: + type: "string" + values: items: - type: string - type: array - targetWWNs: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: items: - type: string - type: array - fsType: - type: string - type: object - type: object - type: array + type: "string" + type: "array" + type: "object" + type: "array" + type: "object" + type: "array" + type: "object" + type: "object" + nodeSelectors: + additionalProperties: + type: "string" + description: "Additional node selectors." + type: "object" + overrideResourceName: + description: "Override the resource names generated by the operator." + type: "string" + pdb: + description: "Pod disruption budget configuration." + properties: + enabled: + description: "Enable Pdb policy." + type: "boolean" + maxUnavailable: + description: "Number of maxUnavailable pods." + type: "integer" + minAvailable: + description: "Number of minAvailable pods." + type: "integer" + type: "object" + podAnnotations: + additionalProperties: + type: "string" + description: "Annotations to add to pod." + type: "object" + podLabels: + additionalProperties: + type: "string" + description: "Labels to add to each pod." + type: "object" + podManagementPolicy: + description: "Pod management policy." + type: "string" + probes: + description: "Liveness and readiness probes configuration." + properties: + liveness: + description: "Liveness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds) for the\ + \ probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period (in\ + \ seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds) for the\ + \ probe." + type: "integer" + type: "object" + readiness: + description: "Readiness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds) for the\ + \ probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period (in\ + \ seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds) for the\ + \ probe." + type: "integer" + type: "object" + useHealthCheckForLiveness: + description: "Use healthcheck for the liveness probe. If false,\ + \ the /metrics endpoint will be used." + type: "boolean" + useHealthCheckForReadiness: + description: "Use healthcheck for the readiness probe. If\ + \ false, the /metrics endpoint will be used." + type: "boolean" + type: "object" + replicas: + description: "Number of desired replicas." + type: "integer" + resources: + description: "Resources requirements." + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + securityContext: + description: "Subset of PodSecurityContext for basic UID, GID,\ + \ and volume access control." + properties: + fsGroup: + type: "integer" + fsGroupChangePolicy: + type: "string" + runAsGroup: + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + type: "integer" + supplementalGroups: + items: + type: "integer" + type: "array" + type: "object" + service: + description: "Service configuration." + properties: + additionalPorts: + description: "Additional ports to add to the Service." + items: + properties: + appProtocol: + type: "string" + name: + type: "string" + nodePort: + type: "integer" + port: + type: "integer" + protocol: + type: "string" + targetPort: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "array" + annotations: + additionalProperties: + type: "string" + description: "Additional annotations to add to the Service." + type: "object" + type: + description: "Service type. Default value is 'ClusterIP'" + type: "string" + type: "object" + serviceAccountName: + description: "Service account name for the resource." + type: "string" + sets: + additionalProperties: + properties: + additionalVolumes: + description: "Mount additional volumes to the pod." + properties: mounts: - description: Mount points for the additional volumes + description: "Mount points for the additional volumes" items: properties: - readOnly: - type: boolean - subPathExpr: - type: string mountPath: - type: string + type: "string" mountPropagation: - type: string - subPath: - type: string + type: "string" name: - type: string - type: object - type: array - type: object - env: - description: Additional container env variables. - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - labels: - additionalProperties: - type: string - description: Labels to add to each resource (except pods). - type: object - initContainers: - description: Init containers - items: - properties: - lifecycle: - properties: - postStart: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array - livenessProbe: + type: "string" + readOnly: + type: "boolean" + recursiveReadOnly: + type: "string" + subPath: + type: "string" + subPathExpr: + type: "string" + type: "object" + type: "array" + volumes: + description: "Additional volumes to be mounted to the\ + \ pod" + items: properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: + awsElasticBlockStore: properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: + fsType: + type: "string" + partition: + type: "integer" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + azureDisk: properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: + cachingMode: + type: "string" + diskName: + type: "string" + diskURI: + type: "string" + fsType: + type: "string" + kind: + type: "string" + readOnly: + type: "boolean" + type: "object" + azureFile: properties: - command: - items: - type: string - type: array - type: object - httpGet: + readOnly: + type: "boolean" + secretName: + type: "string" + shareName: + type: "string" + type: "object" + cephfs: properties: + monitors: + items: + type: "string" + type: "array" path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: + type: "string" + readOnly: + type: "boolean" + secretFile: + type: "string" + secretRef: + properties: + name: + type: "string" + type: "object" + user: + type: "string" + type: "object" + cinder: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + volumeID: + type: "string" + type: "object" + configMap: + properties: + defaultMode: + type: "integer" + items: items: properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + csi: properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: + driver: + type: "string" + fsType: + type: "string" + nodePublishSecretRef: + properties: + name: + type: "string" + type: "object" + readOnly: + type: "boolean" + volumeAttributes: + additionalProperties: + type: "string" + type: "object" + type: "object" + downwardAPI: properties: - host: - type: string - port: + defaultMode: + type: "integer" + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + emptyDir: + properties: + medium: + type: "string" + sizeLimit: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: + type: "object" + ephemeral: properties: - command: - items: - type: string - type: array - type: object - httpGet: + volumeClaimTemplate: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: "string" + type: "object" + creationTimestamp: + type: "string" + deletionGracePeriodSeconds: + type: "integer" + deletionTimestamp: + type: "string" + finalizers: + items: + type: "string" + type: "array" + generateName: + type: "string" + generation: + type: "integer" + labels: + additionalProperties: + type: "string" + type: "object" + managedFields: + items: + properties: + apiVersion: + type: "string" + fieldsType: + type: "string" + fieldsV1: + type: "object" + manager: + type: "string" + operation: + type: "string" + subresource: + type: "string" + time: + type: "string" + type: "object" + type: "array" + name: + type: "string" + namespace: + type: "string" + ownerReferences: + items: + 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: + properties: + accessModes: + items: + type: "string" + type: "array" + dataSource: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + type: "object" + dataSourceRef: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + namespace: + type: "string" + type: "object" + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + selector: + properties: + matchExpressions: + items: + 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: properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: + fsType: + type: "string" + lun: + type: "integer" + readOnly: + type: "boolean" + targetWWNs: items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: + type: "string" + type: "array" + wwids: + items: + type: "string" + type: "array" + type: "object" + flexVolume: properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: + driver: + type: "string" + fsType: + type: "string" + options: + additionalProperties: + type: "string" + type: "object" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + type: "object" + flocker: properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: + datasetName: + type: "string" + datasetUUID: + type: "string" + type: "object" + gcePersistentDisk: properties: - command: - items: - type: string - type: array - type: object - httpGet: + fsType: + type: "string" + partition: + type: "integer" + pdName: + type: "string" + readOnly: + type: "boolean" + type: "object" + gitRepo: + properties: + directory: + type: "string" + repository: + type: "string" + revision: + type: "string" + type: "object" + glusterfs: properties: + endpoints: + type: "string" path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: - properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: - properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - securityContext: - properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: + type: "string" + readOnly: + type: "boolean" + type: "object" + hostPath: properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: + path: + type: "string" + type: + type: "string" + type: "object" + image: properties: - add: - items: - type: string - type: array - drop: + pullPolicy: + type: "string" + reference: + type: "string" + type: "object" + iscsi: + 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 - type: object - seLinuxOptions: + type: "string" + type: "array" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + targetPortal: + type: "string" + type: "object" + name: + type: "string" + nfs: properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: + path: + type: "string" + readOnly: + type: "boolean" + server: + type: "string" + type: "object" + persistentVolumeClaim: properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array - pdb: - description: Pod disruption budget configuration. - properties: - maxUnavailable: - description: Number of maxUnavailable pods. - type: integer - enabled: - description: Enable Pdb policy. - type: boolean - type: object - tolerations: - description: Pod tolerations. - items: - properties: - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - effect: - type: string - type: object - type: array - replicas: - description: Number of desired replicas. - type: integer - nodeAffinity: - description: Node affinity configuration. - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - weight: - type: integer - preference: + claimName: + type: "string" + readOnly: + type: "boolean" + type: "object" + photonPersistentDisk: properties: - matchFields: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: + fsType: + type: "string" + pdID: + type: "string" + type: "object" + portworxVolume: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + projected: + properties: + defaultMode: + type: "integer" + sources: items: properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + 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: + properties: + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + secret: + properties: + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + serviceAccountToken: + properties: + audience: + type: "string" + expirationSeconds: + type: "integer" + path: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + quobyte: + properties: + group: + type: "string" + readOnly: + type: "boolean" + registry: + type: "string" + tenant: + type: "string" + user: + type: "string" + volume: + type: "string" + type: "object" + rbd: properties: - matchFields: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: + fsType: + type: "string" + image: + type: "string" + keyring: + type: "string" + monitors: items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: array - type: object - type: object - nodeSelectors: - additionalProperties: - type: string - description: Additional node selectors. - type: object - antiAffinity: - description: Pod anti-affinity configuration. This override - the global value if set. - properties: - host: - description: Indicates the reclaimPolicy property for - the StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: boolean - type: object - zone: - description: Indicates the provisioner property for - the StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: boolean - type: object - type: object - imagePullPolicy: - description: Override image pull policy. - type: string - podLabels: - additionalProperties: - type: string - description: Labels to add to each pod. - type: object - matchLabels: - additionalProperties: - type: string - description: Match labels selectors to add to each pod. - type: object - serviceAccountName: - description: Service account name for the resource. - type: string - type: object - description: Broker sets. - type: object - setsUpdateStrategy: - description: Sets update strategy. 'RollingUpdate' or 'Parallel'. - Default is 'RollingUpdate'. - type: string - updateStrategy: - description: Update strategy for the StatefulSet. - properties: - type: - type: string - rollingUpdate: - properties: - maxUnavailable: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - partition: - type: integer - type: object - type: object - config: - description: Configuration. - x-kubernetes-preserve-unknown-fields: true - probes: - description: Liveness and readiness probes configuration. - properties: - useHealthCheckForReadiness: - description: "Use healthcheck for the readiness probe. If\ - \ false, the /metrics endpoint will be used." - type: boolean - useHealthCheckForLiveness: - description: "Use healthcheck for the liveness probe. If false,\ - \ the /metrics endpoint will be used." - type: boolean - liveness: - description: Liveness probe configuration. - properties: - periodSeconds: - description: Indicates the period (in seconds) for the - probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period (in - seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) for the - probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - readiness: - description: Readiness probe configuration. - properties: - periodSeconds: - description: Indicates the period (in seconds) for the - probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period (in - seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) for the - probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - type: object - gracePeriod: - description: Termination grace period in seconds. - minimum: 0.0 - type: integer - functionsWorkerEnabled: - description: Enable functions worker embedded in the broker. - type: boolean - transactions: - description: Enable transactions in the broker. - properties: - initJob: - description: Config for the init job. - properties: - resources: - description: Resources requirements. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - partitions: - description: Number of coordinators to create. - type: integer - enabled: - description: Initialize the transaction coordinator if it's - not yet and configure the broker to accept transactions. - type: boolean - type: object - service: - description: Service configuration. - properties: - additionalPorts: - description: Additional ports to add to the Service. - items: - properties: - targetPort: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - port: - type: integer - nodePort: - type: integer - name: - type: string - appProtocol: - type: string - protocol: - type: string - type: object - type: array - annotations: - additionalProperties: - type: string - description: Additional annotations to add to the Service. - type: object - type: - description: Service type. Default value is 'ClusterIP' - type: string - type: object - autoscaler: - description: Autoscaling config. - properties: - periodMs: - description: The interval in milliseconds between two consecutive - autoscaling checks. - minimum: 1000.0 - type: integer - resourcesUsageSource: - description: Source for getting the brokers resources usage. - Possible values are 'PulsarLBReport' and 'K8SMetrics'. Default - is 'PulsarLBReport' - type: string - max: - description: "Max number of brokers. If the number of brokers\ - \ is equals to this value, the autoscaler will never scale\ - \ up." - type: integer - higherCpuThreshold: - description: The threshold to trigger a scale up. The autoscaler - will scale up if all the brokers cpu usage is higher than - this threshold. Default is '0.8' - maximum: 1.0 - minimum: 0.0 - type: number - enabled: - description: Enable autoscaling for brokers. - type: boolean - min: - description: "Min number of brokers. If the number of brokers\ - \ is equals to this value, the autoscaler will never scale\ - \ down." - minimum: 1.0 - type: integer - scaleUpBy: - description: The number of brokers to add at each scale up. - Default is '1' - minimum: 1.0 - type: integer - stabilizationWindowMs: - description: The stabilization window is used to restrict - the flapping of replica count when the metrics used for - scaling keep fluctuating. The autoscaling algorithm uses - this window to infer a previous desired state and avoid - unwanted changes to workload scale.Default value is 5 minutes - after the pod readiness. - minimum: 1.0 - type: integer - lowerCpuThreshold: - description: The threshold to trigger a scale down. The autoscaler - will scale down if all the brokers cpu usage is lower than - this threshold. Default is '0.4' - maximum: 1.0 - minimum: 0.0 - type: number - scaleDownBy: - description: The number of brokers to remove at each scale - down. Default is '1' - minimum: 1.0 - type: integer - type: object - podManagementPolicy: - description: Pod management policy. - type: string - resources: - description: Resources requirements. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - overrideResourceName: - description: Override the resource names generated by the operator. - type: string - kafka: - description: Enable Kafka protocol. - properties: - exposePorts: - description: Expose the kafka protocol port. - type: boolean - enabled: - description: Allow the cluster to accept Kafka protocol. Default - is 'false'. - type: boolean - type: object - imagePullSecrets: - description: Image pull secrets. - items: - properties: - name: - type: string - type: object - type: array - image: - description: Override Pulsar image. - type: string - annotations: - additionalProperties: - type: string - description: Annotations to add to each resource (except pods). - type: object - podAnnotations: - additionalProperties: - type: string - description: Annotations to add to pod. - type: object - sidecars: - description: Sidecar containers - items: - properties: - lifecycle: - properties: - postStart: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: + type: "string" + type: "array" + pool: + type: "string" + readOnly: + type: "boolean" + secretRef: properties: - value: - type: string name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: + type: "string" + type: "object" + user: + type: "string" + type: "object" + scaleIO: + properties: + fsType: + type: "string" + gateway: + type: "string" + protectionDomain: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + sslEnabled: + type: "boolean" + storageMode: + type: "string" + storagePool: + type: "string" + system: + type: "string" + volumeName: + type: "string" + type: "object" + secret: + properties: + defaultMode: + type: "integer" items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + optional: + type: "boolean" + secretName: + type: "string" + type: "object" + storageos: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + secretRef: properties: - value: - type: string name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array - livenessProbe: + type: "string" + type: "object" + volumeName: + type: "string" + volumeNamespace: + type: "string" + type: "object" + vsphereVolume: + properties: + fsType: + type: "string" + storagePolicyID: + type: "string" + storagePolicyName: + type: "string" + volumePath: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + annotations: + additionalProperties: + type: "string" + description: "Annotations to add to each resource (except\ + \ pods)." + type: "object" + antiAffinity: + description: "Pod anti-affinity configuration. This override\ + \ the global value if set." properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: + host: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." properties: - command: - items: - type: string - type: array - type: object - httpGet: + enabled: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "boolean" + type: "object" + zone: + description: "Indicates the provisioner property for\ + \ the StorageClass." properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: + enabled: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "boolean" + type: "object" + type: "object" + autoscaler: + description: "Autoscaling config." + properties: + enabled: + description: "Enable autoscaling for brokers." + type: "boolean" + higherCpuThreshold: + description: "The threshold to trigger a scale up. The\ + \ autoscaler will scale up if all the brokers cpu\ + \ usage is higher than this threshold. Default is\ + \ '0.8'" + maximum: 1.0 + minimum: 0.0 + type: "number" + lowerCpuThreshold: + description: "The threshold to trigger a scale down.\ + \ The autoscaler will scale down if all the brokers\ + \ cpu usage is lower than this threshold. Default\ + \ is '0.4'" + maximum: 1.0 + minimum: 0.0 + type: "number" + max: + description: "Max number of brokers. If the number of\ + \ brokers is equals to this value, the autoscaler\ + \ will never scale up." + type: "integer" + min: + description: "Min number of brokers. If the number of\ + \ brokers is equals to this value, the autoscaler\ + \ will never scale down." + minimum: 1.0 + type: "integer" + periodMs: + description: "The interval in milliseconds between two\ + \ consecutive autoscaling checks." + minimum: 1000.0 + type: "integer" + resourcesUsageSource: + description: "Source for getting the brokers resources\ + \ usage. Possible values are 'PulsarLBReport' and\ + \ 'K8SMetrics'. Default is 'PulsarLBReport'" + type: "string" + scaleDownBy: + description: "The number of brokers to remove at each\ + \ scale down. Default is '1'" + minimum: 1.0 + type: "integer" + scaleUpBy: + description: "The number of brokers to add at each scale\ + \ up. Default is '1'" + minimum: 1.0 + type: "integer" + stabilizationWindowMs: + description: "The stabilization window is used to restrict\ + \ the flapping of replica count when the metrics used\ + \ for scaling keep fluctuating. The autoscaling algorithm\ + \ uses this window to infer a previous desired state\ + \ and avoid unwanted changes to workload scale.Default\ + \ value is 5 minutes after the pod readiness." + minimum: 1.0 + type: "integer" + type: "object" + config: + description: "Configuration." + x-kubernetes-preserve-unknown-fields: true + env: + description: "Additional container env variables." + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: properties: - value: - type: string + key: + type: "string" name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + functionsWorkerEnabled: + description: "Enable functions worker embedded in the broker." + type: "boolean" + gracePeriod: + description: "Termination grace period in seconds." + minimum: 0.0 + type: "integer" image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: + description: "Override Pulsar image." + type: "string" + imagePullPolicy: + description: "Override image pull policy." + type: "string" + imagePullSecrets: + description: "Image pull secrets." + items: + properties: + name: + type: "string" + type: "object" + type: "array" + initContainers: + description: "Init containers" + items: + properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + preStop: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" + livenessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: - properties: - value: - type: string - valueFrom: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: properties: - configMapKeyRef: + exec: properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: properties: - containerName: - type: string - divisor: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: - properties: - prefix: - type: string - configMapRef: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: + items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - securityContext: - properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: + 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: + properties: + devicePath: + type: "string" + name: + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + 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" + kafka: + description: "Enable Kafka protocol." + properties: + enabled: + description: "Allow the cluster to accept Kafka protocol.\ + \ Default is 'false'." + type: "boolean" + exposePorts: + description: "Expose the kafka protocol port." + type: "boolean" + type: "object" + labels: + additionalProperties: + type: "string" + description: "Labels to add to each resource (except pods)." + type: "object" + matchLabels: + additionalProperties: + type: "string" + description: "Match labels selectors to add to each pod." + type: "object" + minReadySeconds: + description: "Min seconds to wait before considering the\ + \ pod as ready." + type: "integer" + nodeAffinity: + description: "Node affinity configuration." + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: + items: + 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" + requiredDuringSchedulingIgnoredDuringExecution: properties: - add: - items: - type: string - type: array - drop: + nodeSelectorTerms: items: - type: string - type: array - type: object - seLinuxOptions: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + type: "object" + type: "array" + type: "object" + type: "object" + nodeSelectors: + additionalProperties: + type: "string" + description: "Additional node selectors." + type: "object" + overrideResourceName: + description: "Override the resource names generated by the\ + \ operator." + type: "string" + pdb: + description: "Pod disruption budget configuration." + properties: + enabled: + description: "Enable Pdb policy." + type: "boolean" + maxUnavailable: + description: "Number of maxUnavailable pods." + type: "integer" + minAvailable: + description: "Number of minAvailable pods." + type: "integer" + type: "object" + podAnnotations: + additionalProperties: + type: "string" + description: "Annotations to add to pod." + type: "object" + podLabels: + additionalProperties: + type: "string" + description: "Labels to add to each pod." + type: "object" + podManagementPolicy: + description: "Pod management policy." + type: "string" + probes: + description: "Liveness and readiness probes configuration." + properties: + liveness: + description: "Liveness probe configuration." properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds)\ + \ for the probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period\ + \ (in seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds)\ + \ for the probe." + type: "integer" + type: "object" + readiness: + description: "Readiness probe configuration." properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds)\ + \ for the probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period\ + \ (in seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds)\ + \ for the probe." + type: "integer" + type: "object" + useHealthCheckForLiveness: + description: "Use healthcheck for the liveness probe.\ + \ If false, the /metrics endpoint will be used." + type: "boolean" + useHealthCheckForReadiness: + description: "Use healthcheck for the readiness probe.\ + \ If false, the /metrics endpoint will be used." + type: "boolean" + type: "object" + replicas: + description: "Number of desired replicas." + type: "integer" resources: + description: "Resources requirements." properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" limits: additionalProperties: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" requests: additionalProperties: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: + type: "object" + type: "object" + securityContext: + description: "Subset of PodSecurityContext for basic UID,\ + \ GID, and volume access control." + properties: + fsGroup: + type: "integer" + fsGroupChangePolicy: + type: "string" + runAsGroup: + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + type: "integer" + supplementalGroups: + items: + type: "integer" + type: "array" + type: "object" + service: + description: "Service configuration." + properties: + additionalPorts: + description: "Additional ports to add to the Service." + items: + properties: + appProtocol: + type: "string" + name: + type: "string" + nodePort: + type: "integer" + port: + type: "integer" + protocol: + type: "string" + targetPort: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "array" + annotations: + additionalProperties: + type: "string" + description: "Additional annotations to add to the Service." + type: "object" + type: + description: "Service type. Default value is 'ClusterIP'" + type: "string" + type: "object" + serviceAccountName: + description: "Service account name for the resource." + type: "string" + sidecars: + description: "Sidecar containers" items: properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array - additionalVolumes: - description: Mount additional volumes to the pod. - properties: - volumes: - description: Additional volumes to be mounted to the pod - items: - properties: - hostPath: - properties: - path: - type: string - type: - type: string - type: object - flexVolume: - properties: - readOnly: - type: boolean - options: - additionalProperties: - type: string - type: object - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - gcePersistentDisk: - properties: - readOnly: - type: boolean - pdName: - type: string - partition: - type: integer - fsType: - type: string - type: object - ephemeral: - properties: - volumeClaimTemplate: - properties: - metadata: - properties: - generateName: - type: string - deletionGracePeriodSeconds: - type: integer - deletionTimestamp: - type: string - resourceVersion: - type: string - annotations: - additionalProperties: - type: string - type: object - selfLink: - type: string - creationTimestamp: - type: string - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - ownerReferences: - items: - properties: - blockOwnerDeletion: - type: boolean - uid: - type: string - apiVersion: - type: string - name: - type: string - kind: - type: string - controller: - type: boolean - type: object - type: array - uid: - type: string - generation: - type: integer - name: - type: string - managedFields: - items: - properties: - time: - type: string - apiVersion: - type: string - fieldsV1: - type: object - fieldsType: - type: string - manager: - type: string - operation: - type: string - subresource: - type: string - type: object - type: array - namespace: - type: string - type: object - spec: - properties: - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string - dataSource: - properties: - name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - dataSourceRef: - properties: - name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - accessModes: - items: - type: string - type: array - volumeMode: - type: string - volumeName: - type: string - type: object - type: object - type: object - scaleIO: - properties: - readOnly: - type: boolean - storageMode: - type: string - storagePool: - type: string - system: - type: string - gateway: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - sslEnabled: - type: boolean - volumeName: - type: string - protectionDomain: - type: string - type: object - csi: - properties: - nodePublishSecretRef: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: properties: name: - type: string - type: object - readOnly: - type: boolean - volumeAttributes: - additionalProperties: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - secret: - properties: - optional: - type: boolean - secretName: - type: string + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: items: - items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + preStop: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" + livenessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - name: - type: string - vsphereVolume: - properties: - storagePolicyName: - type: string - storagePolicyID: - type: string - volumePath: - type: string - fsType: - type: string - type: object - gitRepo: - properties: - revision: - type: string - repository: - type: string - directory: - type: string - type: object - glusterfs: - properties: - path: - type: string - readOnly: - type: boolean - endpoints: - type: string - type: object - nfs: - properties: - path: - type: string - readOnly: - type: boolean - server: - type: string - type: object - cinder: - properties: - readOnly: - type: boolean - secretRef: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + name: + type: "string" + ports: + items: properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" name: - type: string - type: object - fsType: - type: string - volumeID: - type: string - type: object - flocker: - properties: - datasetUUID: - type: string - datasetName: - type: string - type: object - quobyte: - properties: - group: - type: string - readOnly: - type: boolean - volume: - type: string - user: - type: string - registry: - type: string - tenant: - type: string - type: object - photonPersistentDisk: - properties: - pdID: - type: string - fsType: - type: string - type: object - persistentVolumeClaim: - properties: - readOnly: - type: boolean - claimName: - type: string - type: object - awsElasticBlockStore: - properties: - readOnly: - type: boolean - partition: - type: integer - fsType: - type: string - volumeID: - type: string - type: object - configMap: - properties: - optional: - type: boolean + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: items: - items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: + 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: + properties: + exec: properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - name: - type: string - type: object - storageos: - properties: - readOnly: - type: boolean - volumeNamespace: - type: string - secretRef: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: properties: + devicePath: + type: "string" name: - type: string - type: object - fsType: - type: string - volumeName: - type: string - type: object - portworxVolume: - properties: - readOnly: - type: boolean - fsType: - type: string - volumeID: - type: string - type: object - iscsi: - properties: - readOnly: - type: boolean - chapAuthSession: - type: boolean - lun: - type: integer - targetPortal: - type: string - iscsiInterface: - type: string - portals: - items: - type: string - type: array - initiatorName: - type: string - secretRef: + type: "string" + type: "object" + type: "array" + volumeMounts: + items: properties: + mountPath: + type: "string" + mountPropagation: + type: "string" name: - type: string - type: object - fsType: - type: string - iqn: - type: string - chapAuthDiscovery: - type: boolean - type: object - rbd: + 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" + tolerations: + description: "Pod tolerations." + items: + properties: + effect: + type: "string" + key: + type: "string" + operator: + type: "string" + tolerationSeconds: + type: "integer" + value: + type: "string" + type: "object" + type: "array" + transactions: + description: "Enable transactions in the broker." + properties: + enabled: + description: "Initialize the transaction coordinator\ + \ if it's not yet and configure the broker to accept\ + \ transactions." + type: "boolean" + initJob: + description: "Config for the init job." properties: - readOnly: - type: boolean - pool: - type: string - keyring: - type: string - image: - type: string - secretRef: + resources: + description: "Resources requirements." properties: - name: - type: string - type: object - monitors: - items: - type: string - type: array - fsType: - type: string - user: - type: string - type: object - azureFile: - properties: - readOnly: - type: boolean - secretName: - type: string - shareName: - type: string - type: object - downwardAPI: - properties: - items: - items: - properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - projected: - properties: - defaultMode: - type: integer - sources: - items: - properties: - secret: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - name: - type: string - type: object - configMap: + claims: + items: properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array name: - type: string - type: object - serviceAccountToken: - properties: - path: - type: string - audience: - type: string - expirationSeconds: - type: integer - type: object - downwardAPI: - properties: - items: - items: - properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - type: object - type: object - type: array - type: object - azureDisk: - properties: - readOnly: - type: boolean - diskName: - type: string - cachingMode: - type: string - fsType: - type: string - kind: - type: string - diskURI: - type: string - type: object - cephfs: - properties: - path: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - monitors: - items: - type: string - type: array - secretFile: - type: string - user: - type: string - type: object - emptyDir: - properties: - sizeLimit: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - medium: - type: string - type: object - fc: - properties: - readOnly: - type: boolean - lun: - type: integer - wwids: - items: - type: string - type: array - targetWWNs: - items: - type: string - type: array - fsType: - type: string - type: object - type: object - type: array - mounts: - description: Mount points for the additional volumes - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - type: object - env: - description: Additional container env variables. - items: - properties: - value: - type: string - valueFrom: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + type: "object" + partitions: + description: "Number of coordinators to create." + type: "integer" + type: "object" + updateStrategy: + description: "Update strategy for the StatefulSet." properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: + rollingUpdate: properties: - containerName: - type: string - divisor: + maxUnavailable: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - labels: - additionalProperties: - type: string - description: Labels to add to each resource (except pods). - type: object - initContainers: - description: Init containers + partition: + type: "integer" + type: "object" + type: + type: "string" + type: "object" + type: "object" + description: "Broker sets." + type: "object" + setsUpdateStrategy: + description: "Sets update strategy. 'RollingUpdate' or 'Parallel'.\ + \ Default is 'RollingUpdate'." + type: "string" + sidecars: + description: "Sidecar containers" items: properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" lifecycle: properties: postStart: properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + type: "object" + preStop: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" livenessProbe: properties: - periodSeconds: - type: integer + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" failureThreshold: - type: integer - initialDelaySeconds: - type: integer + type: "integer" grpc: properties: port: - type: integer + type: "integer" service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer + scheme: + type: "string" + type: "object" initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object + type: "integer" + periodSeconds: + type: "integer" successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer + type: "integer" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" timeoutSeconds: - type: integer + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: items: properties: - value: - type: string - valueFrom: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: + 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" startupProbe: properties: - periodSeconds: - type: integer + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" failureThreshold: - type: integer - initialDelaySeconds: - type: integer + type: "integer" grpc: properties: port: - type: integer + type: "integer" service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + stdin: + type: "boolean" stdinOnce: - type: boolean - ports: + type: "boolean" + terminationMessagePath: + type: "string" + terminationMessagePolicy: + type: "string" + tty: + type: "boolean" + volumeDevices: items: properties: - containerPort: - type: integer - hostPort: - type: integer + devicePath: + type: "string" name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: + type: "string" + type: "object" + type: "array" + volumeMounts: items: properties: - prefix: - type: string - configMapRef: + 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" + tolerations: + description: "Pod tolerations." + items: + properties: + effect: + type: "string" + key: + type: "string" + operator: + type: "string" + tolerationSeconds: + type: "integer" + value: + type: "string" + type: "object" + type: "array" + transactions: + description: "Enable transactions in the broker." + properties: + enabled: + description: "Initialize the transaction coordinator if it's\ + \ not yet and configure the broker to accept transactions." + type: "boolean" + initJob: + description: "Config for the init job." + properties: + resources: + description: "Resources requirements." + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + type: "object" + partitions: + description: "Number of coordinators to create." + type: "integer" + type: "object" + updateStrategy: + description: "Update strategy for the StatefulSet." + properties: + rollingUpdate: + properties: + maxUnavailable: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + partition: + type: "integer" + type: "object" + type: + type: "string" + type: "object" + type: "object" + global: + properties: + antiAffinity: + description: "Pod anti affinity configuration." + properties: + host: + description: "Indicates the reclaimPolicy property for the\ + \ StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + zone: + description: "Indicates the provisioner property for the StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + type: "object" + auth: + description: | + Authentication and authorization configuration. + properties: + enabled: + description: "Enable authentication in the cluster. Default\ + \ is 'false'." + type: "boolean" + token: + description: "Token based authentication configuration." + properties: + initialize: + description: "Initialize Secrets with new pair of keys\ + \ and tokens for the super user roles. The generated\ + \ Secret name is 'token-'." + type: "boolean" + privateKeyFile: + description: "Private key file name stored in the Secret.\ + \ Default is 'my-private.key'" + type: "string" + proxyRoles: + description: "Proxy roles." + items: + type: "string" + type: "array" + publicKeyFile: + description: "Public key file name stored in the Secret.\ + \ Default is 'my-public.key'" + type: "string" + superUserRoles: + description: "Super user roles." + items: + type: "string" + type: "array" + type: "object" + type: "object" + clusterName: + description: "Corresponds to the 'clusterName' field in the broker.conf.\ + \ Defaults to the value of the 'name' field" + type: "string" + components: + description: "Pulsar cluster components names." + properties: + autorecoveryBaseName: + description: "Autorecovery base name. Default value is 'autorecovery'." + type: "string" + bastionBaseName: + description: "Bastion base name. Default value is 'bastion'." + type: "string" + bookkeeperBaseName: + description: "BookKeeper base name. Default value is 'bookkeeper'." + type: "string" + brokerBaseName: + description: "Broker base name. Default value is 'broker'." + type: "string" + functionsWorkerBaseName: + description: "Functions Worker base name. Default value is\ + \ 'function'." + type: "string" + proxyBaseName: + description: "Proxy base name. Default value is 'proxy'." + type: "string" + zookeeperBaseName: + description: "Zookeeper base name. Default value is 'zookeeper'." + type: "string" + type: "object" + dnsConfig: + description: | + Override default DNS config for each pod. Note that because we use fully qualified service names for intra + cluster networking with Pulsar components, we set the ndots value to 4 (the default is 5). This prevents + unnecessary DNS lookups for the fully qualified service names that would be guaranteed to result in NXDOMAIN. + For example, the name 'pulsar-broker.pulsar.svc.cluster.local' has 4 dots, so it would be resolved directly + instead of appending the configured search domains. + More info here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config. + properties: + nameservers: + items: + type: "string" + type: "array" + options: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + searches: + items: + type: "string" + type: "array" + type: "object" + dnsName: + description: "Public dns name for the cluster's load balancer." + type: "string" + image: + description: "Default Pulsar image to use. Any components can\ + \ be configured to use a different image." + type: "string" + imagePullPolicy: + description: "Default Pulsar image pull policy to use. Any components\ + \ can be configured to use a different image pull policy. Default\ + \ value is 'IfNotPresent'." + type: "string" + kubernetesClusterDomain: + description: | + The domain name for your kubernetes cluster. + This domain is documented here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#a-aaaa-records-1 . + It's used to fully qualify service names when configuring Pulsar. + The default value is 'cluster.local'. + type: "string" + name: + description: "Name of the Pulsar cluster spec. This is used as\ + \ a prefix for managed Kubernetes resources." + type: "string" + nodeSelectors: + additionalProperties: + type: "string" + description: "Global node selector. If set, this will apply to\ + \ all the components." + type: "object" + persistence: + description: | + If persistence is enabled, components that has state will be deployed with PersistentVolumeClaims, otherwise, for test purposes, they will be deployed with emptyDir + type: "boolean" + priorityClassName: + description: "Priority class name to attach to each pod." + type: "string" + racks: + additionalProperties: + properties: + host: + description: "Enable rack rules based on the hostname of\ + \ the node." + properties: + enabled: + description: "Enable the rack affinity rules." + type: "boolean" + requireRackAffinity: + description: "Indicates if the podAffinity rules will\ + \ be enforced. Default is false. If required, the\ + \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + requireRackAntiAffinity: + description: "Indicates if the podAntiAffinity rules\ + \ will be enforced. Default is true. If required,\ + \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + type: "object" + zone: + description: "Enable rack rules based on the failure domain\ + \ (availability zone) of the node." + properties: + enableHostAntiAffinity: + description: "Enable the host anti affinity. If set,\ + \ all the pods of the same rack will deployed on different\ + \ nodes of the same zone.Default is true." + type: "boolean" + enabled: + description: "Enable the rack affinity rules." + type: "boolean" + requireRackAffinity: + description: "Indicates if the podAffinity rules will\ + \ be enforced. Default is false. If required, the\ + \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + requireRackAntiAffinity: + description: "Indicates if the podAntiAffinity rules\ + \ will be enforced. Default is true. If required,\ + \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + requireRackHostAntiAffinity: + description: "Indicates if the podAntiAffinity rules\ + \ will be enforced for the host. Default is true.\ + \ If required, the affinity rule will be enforced\ + \ using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + type: "object" + type: "object" + description: "Racks configuration." + type: "object" + resourceSets: + additionalProperties: + properties: + rack: + description: "Place this resource set to a specific rack,\ + \ defined at .global.racks." + type: "string" + type: "object" + description: "Resource sets." + type: "object" + restartOnConfigMapChange: + description: | + By default, Kubernetes will not restart pods when only their configmap is changed. This setting will restart pods when their configmap is changed using an annotation that calculates the checksum of the configmap. + type: "boolean" + storage: + description: "Storage configuration." + properties: + existingStorageClassName: + description: "Indicates if an already existing storage class\ + \ should be used." + type: "string" + storageClass: + description: "Indicates if a StorageClass is used. The operator\ + \ will create the StorageClass if needed." + properties: + extraParams: + additionalProperties: + type: "string" + description: "Adds extra parameters for the StorageClass." + type: "object" + fsType: + description: "Indicates the 'fsType' parameter for the\ + \ StorageClass." + type: "string" + provisioner: + description: "Indicates the provisioner property for the\ + \ StorageClass." + type: "string" + reclaimPolicy: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "string" + type: + description: "Indicates the 'type' parameter for the StorageClass." + type: "string" + type: "object" + type: "object" + tls: + description: "TLS configuration for the cluster." + properties: + autorecovery: + description: "TLS configurations related to the Autorecovery\ + \ component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + bookkeeper: + description: "TLS configurations related to the BookKeeper\ + \ component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + broker: + description: "TLS configurations related to the Broker component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + brokerResourceSets: + additionalProperties: + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from\ + \ where to load the certificates." + type: "string" + type: "object" + description: "TLS configurations related to the Broker resource\ + \ sets." + type: "object" + caPath: + description: "Path in the container filesystem where the TLS\ + \ CA certificates are retrieved. It has to point to a certificate\ + \ file. The default value is /etc/ssl/certs/ca-certificates.crt." + type: "string" + certProvisioner: + description: "Certificate provisioner configuration." + properties: + acme: + description: "ACME certificate provisioner configuration." + properties: + broker: + description: "Broker self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + enabled: + description: "Generate self signed certificates for\ + \ broker, proxy and functions worker." + type: "boolean" + external: + additionalProperties: + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject\ + \ Alternative Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key\ + \ will be stored whe perComponent is enabled.\ + \ Required for external services. Internal\ + \ services pick up the secret name from the\ + \ tls config if not specified" + type: "string" + type: "object" + description: "External services self signed certificate\ + \ config (e.g., admin console, grafana). The key\ + \ is the service name, and the value contains generation\ + \ config" + type: "object" + issuer: + description: "ACME issuer configuration." properties: - optional: - type: boolean + email: + description: "Email used for ACME registration." + type: "string" name: - type: string - type: object - secretRef: + description: "Name of the Issuer resource." + type: "string" + privateKeySecretName: + description: "Secret storing the ACME account\ + \ private key." + type: "string" + server: + description: "ACME server URL." + type: "string" + solvers: + description: "ACME challenge solvers. Solvers\ + \ are evaluated in order; no domain-based routing" + items: + properties: + dns01: + description: "DNS01 solver configuration." + properties: + cloudDNS: + properties: + project: + type: "string" + serviceAccountSecretKey: + type: "string" + serviceAccountSecretName: + type: "string" + type: "object" + cloudflare: + properties: + apiTokenSecretKey: + type: "string" + apiTokenSecretName: + type: "string" + email: + type: "string" + type: "object" + route53: + properties: + hostedZoneId: + type: "string" + region: + type: "string" + type: "object" + type: "object" + http01: + description: "HTTP01 solver configuration." + properties: + ingressClass: + description: "Ingress class used for\ + \ HTTP01 challenge." + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - securityContext: - properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: - properties: - add: - items: - type: string - type: array - drop: - items: - type: string - type: array - type: object - seLinuxOptions: - properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: - properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: - items: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + proxy: + description: "Proxy self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + type: "object" + selfSigned: + description: "Self signed certificate provisioner configuration." properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array - pdb: - description: Pod disruption budget configuration. - properties: - maxUnavailable: - description: Number of maxUnavailable pods. - type: integer - enabled: - description: Enable Pdb policy. - type: boolean - type: object - tolerations: - description: Pod tolerations. - items: - properties: - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - effect: - type: string - type: object - type: array - replicas: - description: Number of desired replicas. - type: integer - nodeAffinity: - description: Node affinity configuration. - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - weight: - type: integer - preference: - properties: - matchFields: - items: + autorecovery: + description: "Autorecovery self signed certificate\ + \ config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + bookkeeper: + description: "Bookkeeper self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchFields: - items: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + broker: + description: "Broker self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + caSecretName: + description: "Secret where to store the root CA certificate." + type: "string" + enabled: + description: "Generate self signed certificates for\ + \ broker, proxy and functions worker." + type: "boolean" + external: + additionalProperties: + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject\ + \ Alternative Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key\ + \ will be stored whe perComponent is enabled.\ + \ Required for external services. Internal\ + \ services pick up the secret name from the\ + \ tls config if not specified" + type: "string" + type: "object" + description: "External services self signed certificate\ + \ config (e.g., admin console, grafana). The key\ + \ is the service name, and the value contains generation\ + \ config" + type: "object" + functionsWorker: + description: "Functions worker self signed certificate\ + \ config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: array - type: object - type: object - nodeSelectors: - additionalProperties: - type: string - description: Additional node selectors. - type: object - antiAffinity: - description: Pod anti-affinity configuration. This override the - global value if set. - properties: - host: - description: Indicates the reclaimPolicy property for the - StorageClass. + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + includeDns: + description: "Include dns name in the DNS names covered\ + \ by the certificate." + type: "boolean" + perComponent: + description: "Generate a different certificate for\ + \ each component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + proxy: + description: "Proxy self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + zookeeper: + description: "Zookeeper self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + type: "object" + type: "object" + defaultSecretName: + description: "Secret name used by each component to load TLS\ + \ certificates. Each component can load a different secret\ + \ by setting the 'secretName' entry in the tls component\ + \ spec." + type: "string" + enabled: + description: "Deprecated. Use the 'enabled' field in each\ + \ component spec instead." + type: "boolean" + functionsWorker: + description: "TLS configurations related to the Functions\ + \ worker component." properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - zone: - description: Indicates the provisioner property for the StorageClass. + description: "Enable TLS." + type: "boolean" + enabledWithBroker: + description: "Enable TLS for the functions worker to broker\ + \ connections." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + proxy: + description: "TLS configurations related to the Proxy component." properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - type: object - imagePullPolicy: - description: Override image pull policy. - type: string - podLabels: - additionalProperties: - type: string - description: Labels to add to each pod. - type: object - matchLabels: - additionalProperties: - type: string - description: Match labels selectors to add to each pod. - type: object - serviceAccountName: - description: Service account name for the resource. - type: string - type: object - type: object + description: "Enable TLS." + type: "boolean" + enabledWithBroker: + description: "Enable TLS for the proxy to broker connections." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + proxyResourceSets: + additionalProperties: + properties: + enabled: + description: "Enable TLS." + type: "boolean" + enabledWithBroker: + description: "Enable TLS for the proxy to broker connections." + type: "boolean" + secretName: + description: "Override the default secret name from\ + \ where to load the certificates." + type: "string" + type: "object" + description: "TLS configurations related to the Proxy resource\ + \ sets." + type: "object" + ssCa: + description: "TLS configurations used by additional components,\ + \ such as the Bastion component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + zookeeper: + description: "TLS configurations related to the ZooKeeper\ + \ component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + type: "object" + zookeeperPlainSslStorePassword: + description: "Use plain password in zookeeper server and client\ + \ configuration. Default is false. Old versions of Apache Zookeeper\ + \ (<3.8.0) does not support getting password from file. In that\ + \ case, set this to true." + type: "boolean" + required: + - "name" + type: "object" + type: "object" status: properties: - lastApplied: - description: Last spec applied. - type: string conditions: description: |- Conditions: 1. Condition Ready: possible status are True or False. If False, the reason contains the error message. items: properties: - status: - type: string - reason: - type: string lastTransitionTime: - type: string + type: "string" + message: + type: "string" observedGeneration: - type: integer + type: "integer" + reason: + type: "string" + status: + type: "string" type: - type: string - message: - type: string - type: object - type: array - type: object - type: object + type: "string" + type: "object" + type: "array" + lastApplied: + description: "Last spec applied." + type: "string" + type: "object" + type: "object" served: true storage: true subresources: diff --git a/helm/kaap/crds/functionsworkers.kaap.oss.datastax.com-v1.yml b/helm/kaap/crds/functionsworkers.kaap.oss.datastax.com-v1.yml index a5ff149e..2c332546 100644 --- a/helm/kaap/crds/functionsworkers.kaap.oss.datastax.com-v1.yml +++ b/helm/kaap/crds/functionsworkers.kaap.oss.datastax.com-v1.yml @@ -1,2698 +1,3177 @@ # Generated by Fabric8 CRDGenerator, manual edits might get overwritten! -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition +apiVersion: "apiextensions.k8s.io/v1" +kind: "CustomResourceDefinition" metadata: - name: functionsworkers.kaap.oss.datastax.com + name: "functionsworkers.kaap.oss.datastax.com" spec: - group: kaap.oss.datastax.com + group: "kaap.oss.datastax.com" names: - kind: FunctionsWorker - plural: functionsworkers + kind: "FunctionsWorker" + plural: "functionsworkers" shortNames: - - fn - - fnw - - fw - singular: functionsworker - scope: Namespaced + - "fn" + - "fnw" + - "fw" + singular: "functionsworker" + scope: "Namespaced" versions: - - name: v1beta1 + - name: "v1beta1" schema: openAPIV3Schema: properties: spec: properties: - global: + functionsWorker: properties: - components: - description: Pulsar cluster components names. - properties: - brokerBaseName: - description: Broker base name. Default value is 'broker'. - type: string - zookeeperBaseName: - description: Zookeeper base name. Default value is 'zookeeper'. - type: string - functionsWorkerBaseName: - description: Functions Worker base name. Default value is - 'function'. - type: string - autorecoveryBaseName: - description: Autorecovery base name. Default value is 'autorecovery'. - type: string - bookkeeperBaseName: - description: BookKeeper base name. Default value is 'bookkeeper'. - type: string - bastionBaseName: - description: Bastion base name. Default value is 'bastion'. - type: string - proxyBaseName: - description: Proxy base name. Default value is 'proxy'. - type: string - type: object - dnsConfig: - description: | - Override default DNS config for each pod. Note that because we use fully qualified service names for intra - cluster networking with Pulsar components, we set the ndots value to 4 (the default is 5). This prevents - unnecessary DNS lookups for the fully qualified service names that would be guaranteed to result in NXDOMAIN. - For example, the name 'pulsar-broker.pulsar.svc.cluster.local' has 4 dots, so it would be resolved directly - instead of appending the configured search domains. - More info here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config. + additionalVolumes: + description: "Mount additional volumes to the pod." properties: - nameservers: - items: - type: string - type: array - searches: - items: - type: string - type: array - options: + mounts: + description: "Mount points for the additional volumes" items: properties: - value: - type: string + mountPath: + type: "string" + mountPropagation: + type: "string" name: - type: string - type: object - type: array - type: object - dnsName: - description: Public dns name for the cluster's load balancer. - type: string - kubernetesClusterDomain: - description: | - The domain name for your kubernetes cluster. - This domain is documented here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#a-aaaa-records-1 . - It's used to fully qualify service names when configuring Pulsar. - The default value is 'cluster.local'. - type: string - priorityClassName: - description: Priority class name to attach to each pod. - type: string - name: - description: Name of the Pulsar cluster spec. This is used as - a prefix for managed Kubernetes resources. - type: string - storage: - description: Storage configuration. - properties: - storageClass: - description: Indicates if a StorageClass is used. The operator - will create the StorageClass if needed. - properties: - extraParams: - additionalProperties: - type: string - description: Adds extra parameters for the StorageClass. - type: object - provisioner: - description: Indicates the provisioner property for the - StorageClass. - type: string - type: - description: Indicates the 'type' parameter for the StorageClass. - type: string - fsType: - description: Indicates the 'fsType' parameter for the - StorageClass. - type: string - reclaimPolicy: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: string - type: object - existingStorageClassName: - description: Indicates if an already existing storage class - should be used. - type: string - type: object - tls: - description: TLS configuration for the cluster. - properties: - ssCa: - description: "TLS configurations used by additional components,\ - \ such as the Bastion component." - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - certProvisioner: - description: Certificate provisioner configuration. - properties: - selfSigned: - description: Self signed certificate provisioner configuration. - properties: - functionsWorker: - description: Functions worker self signed certificate - config. - properties: - privateKey: - description: Cert-manager options for generating - the private key. - properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - includeDns: - description: Include dns name in the DNS names covered - by the certificate. - type: boolean - privateKey: - description: Cert-manager options for generating the - private key. - properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - autorecovery: - description: Autorecovery self signed certificate - config. - properties: - privateKey: - description: Cert-manager options for generating - the private key. - properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - bookkeeper: - description: Bookkeeper self signed certificate config. - properties: - privateKey: - description: Cert-manager options for generating - the private key. - properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - proxy: - description: Proxy self signed certificate config. - properties: - privateKey: - description: Cert-manager options for generating - the private key. - properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - zookeeper: - description: Zookeeper self signed certificate config. - properties: - privateKey: - description: Cert-manager options for generating - the private key. + type: "string" + readOnly: + type: "boolean" + recursiveReadOnly: + type: "string" + subPath: + type: "string" + subPathExpr: + type: "string" + type: "object" + type: "array" + volumes: + description: "Additional volumes to be mounted to the pod" + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: "string" + partition: + type: "integer" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + azureDisk: + properties: + cachingMode: + type: "string" + diskName: + type: "string" + diskURI: + type: "string" + fsType: + type: "string" + kind: + type: "string" + readOnly: + type: "boolean" + type: "object" + azureFile: + properties: + readOnly: + type: "boolean" + secretName: + type: "string" + shareName: + type: "string" + type: "object" + cephfs: + properties: + monitors: + items: + type: "string" + type: "array" + path: + type: "string" + readOnly: + type: "boolean" + secretFile: + type: "string" + secretRef: + properties: + name: + type: "string" + type: "object" + user: + type: "string" + type: "object" + cinder: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + volumeID: + type: "string" + type: "object" + configMap: + properties: + defaultMode: + type: "integer" + items: + items: properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - broker: - description: Broker self signed certificate config. - properties: - privateKey: - description: Cert-manager options for generating - the private key. + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + csi: + properties: + driver: + type: "string" + fsType: + type: "string" + nodePublishSecretRef: + properties: + name: + type: "string" + type: "object" + readOnly: + type: "boolean" + volumeAttributes: + additionalProperties: + type: "string" + type: "object" + type: "object" + downwardAPI: + properties: + defaultMode: + type: "integer" + items: + items: properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - perComponent: - description: Generate a different certificate for - each component. - type: boolean - enabled: - description: "Generate self signed certificates for\ - \ broker, proxy and functions worker." - type: boolean - caSecretName: - description: Secret where to store the root CA certificate. - type: string - type: object - type: object - autorecovery: - description: TLS configurations related to the Autorecovery - component. - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - proxyResourceSets: - additionalProperties: - properties: - enabledWithBroker: - description: Enable TLS for the proxy to broker connections. - type: boolean - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - description: TLS configurations related to the Proxy resource - sets. - type: object - defaultSecretName: - description: Secret name used by each component to load TLS - certificates. Each component can load a different secret - by setting the 'secretName' entry in the tls component spec. - type: string - enabled: - description: Deprecated. Use the 'enabled' field in each component - spec instead. - type: boolean - caPath: - description: Path in the container filesystem where the TLS - CA certificates are retrieved. It has to point to a certificate - file. The default value is /etc/ssl/certs/ca-certificates.crt. - type: string - zookeeper: - description: TLS configurations related to the ZooKeeper component. - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - brokerResourceSets: - additionalProperties: - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - description: TLS configurations related to the Broker resource - sets. - type: object - functionsWorker: - description: TLS configurations related to the Functions worker - component. - properties: - enabledWithBroker: - description: Enable TLS for the functions worker to broker - connections. - type: boolean - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - broker: - description: TLS configurations related to the Broker component. - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - proxy: - description: TLS configurations related to the Proxy component. - properties: - enabledWithBroker: - description: Enable TLS for the proxy to broker connections. - type: boolean - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - bookkeeper: - description: TLS configurations related to the BookKeeper - component. - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - type: object - clusterName: - description: Corresponds to the 'clusterName' field in the broker.conf. Defaults - to the value of the 'name' field - type: string - restartOnConfigMapChange: - description: | - By default, Kubernetes will not restart pods when only their configmap is changed. This setting will restart pods when their configmap is changed using an annotation that calculates the checksum of the configmap. - type: boolean - image: - description: Default Pulsar image to use. Any components can be - configured to use a different image. - type: string - auth: - description: | - Authentication and authorization configuration. - properties: - token: - description: Token based authentication configuration. - properties: - privateKeyFile: - description: Private key file name stored in the Secret. - Default is 'my-private.key' - type: string - initialize: - description: Initialize Secrets with new pair of keys - and tokens for the super user roles. The generated Secret - name is 'token-'. - type: boolean - superUserRoles: - description: Super user roles. - items: - type: string - type: array - proxyRoles: - description: Proxy roles. - items: - type: string - type: array - publicKeyFile: - description: Public key file name stored in the Secret. - Default is 'my-public.key' - type: string - type: object - enabled: - description: Enable authentication in the cluster. Default - is 'false'. - type: boolean - type: object - persistence: - description: | - If persistence is enabled, components that has state will be deployed with PersistentVolumeClaims, otherwise, for test purposes, they will be deployed with emptyDir - type: boolean - racks: - additionalProperties: - properties: - host: - description: Enable rack rules based on the hostname of - the node. - properties: - enabled: - description: Enable the rack affinity rules. - type: boolean - requireRackAntiAffinity: - description: "Indicates if the podAntiAffinity rules\ - \ will be enforced. Default is true. If required,\ - \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - requireRackAffinity: - description: "Indicates if the podAffinity rules will\ - \ be enforced. Default is false. If required, the\ - \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - type: object - zone: - description: Enable rack rules based on the failure domain - (availability zone) of the node. - properties: - enableHostAntiAffinity: - description: "Enable the host anti affinity. If set,\ - \ all the pods of the same rack will deployed on different\ - \ nodes of the same zone.Default is true." - type: boolean - requireRackHostAntiAffinity: - description: "Indicates if the podAntiAffinity rules\ - \ will be enforced for the host. Default is true.\ - \ If required, the affinity rule will be enforced\ - \ using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - enabled: - description: Enable the rack affinity rules. - type: boolean - requireRackAntiAffinity: - description: "Indicates if the podAntiAffinity rules\ - \ will be enforced. Default is true. If required,\ - \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - requireRackAffinity: - description: "Indicates if the podAffinity rules will\ - \ be enforced. Default is false. If required, the\ - \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - type: object - type: object - description: Racks configuration. - type: object - resourceSets: - additionalProperties: - properties: - rack: - description: "Place this resource set to a specific rack,\ - \ defined at .global.racks." - type: string - type: object - description: Resource sets. - type: object - nodeSelectors: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + emptyDir: + properties: + medium: + type: "string" + sizeLimit: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: "string" + type: "object" + creationTimestamp: + type: "string" + deletionGracePeriodSeconds: + type: "integer" + deletionTimestamp: + type: "string" + finalizers: + items: + type: "string" + type: "array" + generateName: + type: "string" + generation: + type: "integer" + labels: + additionalProperties: + type: "string" + type: "object" + managedFields: + items: + properties: + apiVersion: + type: "string" + fieldsType: + type: "string" + fieldsV1: + type: "object" + manager: + type: "string" + operation: + type: "string" + subresource: + type: "string" + time: + type: "string" + type: "object" + type: "array" + name: + type: "string" + namespace: + type: "string" + ownerReferences: + items: + 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: + properties: + accessModes: + items: + type: "string" + type: "array" + dataSource: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + type: "object" + dataSourceRef: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + namespace: + type: "string" + type: "object" + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + selector: + properties: + matchExpressions: + items: + 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: + 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: + properties: + driver: + type: "string" + fsType: + type: "string" + options: + additionalProperties: + type: "string" + type: "object" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + type: "object" + flocker: + properties: + datasetName: + type: "string" + datasetUUID: + type: "string" + type: "object" + gcePersistentDisk: + properties: + fsType: + type: "string" + partition: + type: "integer" + pdName: + type: "string" + readOnly: + type: "boolean" + type: "object" + gitRepo: + properties: + directory: + type: "string" + repository: + type: "string" + revision: + type: "string" + type: "object" + glusterfs: + properties: + endpoints: + type: "string" + path: + type: "string" + readOnly: + type: "boolean" + type: "object" + hostPath: + properties: + path: + type: "string" + type: + type: "string" + type: "object" + image: + properties: + pullPolicy: + type: "string" + reference: + type: "string" + type: "object" + iscsi: + 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: + properties: + name: + type: "string" + type: "object" + targetPortal: + type: "string" + type: "object" + name: + type: "string" + nfs: + properties: + path: + type: "string" + readOnly: + type: "boolean" + server: + type: "string" + type: "object" + persistentVolumeClaim: + properties: + claimName: + type: "string" + readOnly: + type: "boolean" + type: "object" + photonPersistentDisk: + properties: + fsType: + type: "string" + pdID: + type: "string" + type: "object" + portworxVolume: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + projected: + properties: + defaultMode: + type: "integer" + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + 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: + properties: + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + secret: + properties: + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + serviceAccountToken: + properties: + audience: + type: "string" + expirationSeconds: + type: "integer" + path: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + quobyte: + properties: + group: + type: "string" + readOnly: + type: "boolean" + registry: + type: "string" + tenant: + type: "string" + user: + type: "string" + volume: + type: "string" + type: "object" + rbd: + properties: + fsType: + type: "string" + image: + type: "string" + keyring: + type: "string" + monitors: + items: + type: "string" + type: "array" + pool: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + user: + type: "string" + type: "object" + scaleIO: + properties: + fsType: + type: "string" + gateway: + type: "string" + protectionDomain: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + sslEnabled: + type: "boolean" + storageMode: + type: "string" + storagePool: + type: "string" + system: + type: "string" + volumeName: + type: "string" + type: "object" + secret: + properties: + defaultMode: + type: "integer" + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + optional: + type: "boolean" + secretName: + type: "string" + type: "object" + storageos: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + volumeName: + type: "string" + volumeNamespace: + type: "string" + type: "object" + vsphereVolume: + properties: + fsType: + type: "string" + storagePolicyID: + type: "string" + storagePolicyName: + type: "string" + volumePath: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + annotations: additionalProperties: - type: string - description: "Global node selector. If set, this will apply to\ - \ all the components." - type: object + type: "string" + description: "Annotations to add to each resource (except pods)." + type: "object" antiAffinity: - description: Pod anti affinity configuration. + description: "Pod anti-affinity configuration. This override the\ + \ global value if set." properties: host: - description: Indicates the reclaimPolicy property for the - StorageClass. + description: "Indicates the reclaimPolicy property for the\ + \ StorageClass." properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" zone: - description: Indicates the provisioner property for the StorageClass. + description: "Indicates the provisioner property for the StorageClass." properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - type: object - zookeeperPlainSslStorePassword: - description: "Use plain password in zookeeper server and client\ - \ configuration. Default is false. Old versions of Apache Zookeeper\ - \ (<3.8.0) does not support getting password from file. In that\ - \ case, set this to true." - type: boolean - imagePullPolicy: - description: Default Pulsar image pull policy to use. Any components - can be configured to use a different image pull policy. Default - value is 'IfNotPresent'. - type: string - required: - - name - type: object - functionsWorker: - properties: - updateStrategy: - description: Update strategy for the StatefulSet. - properties: - type: - type: string - rollingUpdate: - properties: - maxUnavailable: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - partition: - type: integer - type: object - type: object + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + type: "object" config: - description: Configuration. + description: "Configuration." x-kubernetes-preserve-unknown-fields: true - gracePeriod: - description: Termination grace period in seconds. - minimum: 0.0 - type: integer - probes: - description: Liveness and readiness probes configuration. - properties: - liveness: - description: Liveness probe configuration. - properties: - periodSeconds: - description: Indicates the period (in seconds) for the - probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period (in - seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) for the - probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - readiness: - description: Readiness probe configuration. - properties: - periodSeconds: - description: Indicates the period (in seconds) for the - probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period (in - seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) for the - probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - type: object - service: - description: Service configuration. - properties: - additionalPorts: - description: Additional ports to add to the Service. - items: - properties: - targetPort: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - port: - type: integer - nodePort: - type: integer - name: - type: string - appProtocol: - type: string - protocol: - type: string - type: object - type: array - annotations: - additionalProperties: - type: string - description: Additional annotations to add to the Service. - type: object - type: - description: Service type. Default value is 'ClusterIP' - type: string - type: object - rbac: - description: RBAC config. - properties: - namespaced: - description: Whether or not the RBAC is created per-namespace - or cluster-wise. - type: boolean - create: - description: Create needed RBAC to run the Functions Worker. - type: boolean - type: object - podManagementPolicy: - description: Pod management policy. - type: string - resources: - description: Resources requirements. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - runtime: - description: Runtime mode for functions. - type: string - logsVolume: - description: Volume configuration for export function logs. - properties: - storageClass: - description: Indicates if a StorageClass is used. The operator - will create the StorageClass if needed. - properties: - extraParams: - additionalProperties: - type: string - description: Adds extra parameters for the StorageClass. - type: object - provisioner: - description: Indicates the provisioner property for the - StorageClass. - type: string - type: - description: Indicates the 'type' parameter for the StorageClass. - type: string - fsType: - description: Indicates the 'fsType' parameter for the - StorageClass. - type: string - reclaimPolicy: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: string - type: object - size: - description: Indicates the requested size for the volume. - The format follows the Kubernetes' Quantity. - type: string - name: - description: Indicates the suffix for the volume. Default - value is 'data'. - type: string - existingStorageClassName: - description: Indicates if an already existing storage class - should be used. - type: string - type: object - imagePullSecrets: - description: Image pull secrets. + env: + description: "Additional container env variables." items: properties: name: - type: string - type: object - type: array - image: - description: Override Pulsar image. - type: string - annotations: - additionalProperties: - type: string - description: Annotations to add to each resource (except pods). - type: object - podAnnotations: - additionalProperties: - type: string - description: Annotations to add to pod. - type: object - sidecars: - description: Sidecar containers - items: - properties: - lifecycle: - properties: - postStart: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array - livenessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: + type: "string" + value: + type: "string" + valueFrom: properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: + configMapKeyRef: properties: - command: - items: - type: string - type: array - type: object - httpGet: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + gracePeriod: + description: "Termination grace period in seconds." + minimum: 0.0 + type: "integer" + image: + description: "Override Pulsar image." + type: "string" + imagePullPolicy: + description: "Override image pull policy." + type: "string" + imagePullSecrets: + description: "Image pull secrets." + items: + properties: + name: + type: "string" + type: "object" + type: "array" + initContainers: + description: "Init containers" + items: + properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" env: items: properties: + name: + type: "string" value: - type: string + type: "string" valueFrom: properties: configMapKeyRef: properties: - optional: - type: boolean key: - type: string + type: "string" name: - type: string - type: object + type: "string" + optional: + type: "boolean" + type: "object" fieldRef: properties: apiVersion: - type: string + type: "string" fieldPath: - type: string - type: object + type: "string" + type: "object" resourceFieldRef: properties: containerName: - type: string + type: "string" divisor: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true resource: - type: string - type: object + type: "string" + type: "object" secretKeyRef: properties: - optional: - type: boolean key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string + type: "string" name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" envFrom: items: properties: - prefix: - type: string configMapRef: properties: - optional: - type: boolean name: - type: string - type: object + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" secretRef: properties: - optional: - type: boolean name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - securityContext: - properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: - properties: - add: - items: - type: string - type: array - drop: - items: - type: string - type: array - type: object - seLinuxOptions: - properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: - properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" imagePullPolicy: - type: string - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array - additionalVolumes: - description: Mount additional volumes to the pod. - properties: - volumes: - description: Additional volumes to be mounted to the pod - items: + type: "string" + lifecycle: properties: - hostPath: - properties: - path: - type: string - type: - type: string - type: object - flexVolume: - properties: - readOnly: - type: boolean - options: - additionalProperties: - type: string - type: object - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - gcePersistentDisk: - properties: - readOnly: - type: boolean - pdName: - type: string - partition: - type: integer - fsType: - type: string - type: object - ephemeral: + postStart: properties: - volumeClaimTemplate: + exec: properties: - metadata: - properties: - generateName: - type: string - deletionGracePeriodSeconds: - type: integer - deletionTimestamp: - type: string - resourceVersion: - type: string - annotations: - additionalProperties: - type: string - type: object - selfLink: - type: string - creationTimestamp: - type: string - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - ownerReferences: - items: - properties: - blockOwnerDeletion: - type: boolean - uid: - type: string - apiVersion: - type: string - name: - type: string - kind: - type: string - controller: - type: boolean - type: object - type: array - uid: - type: string - generation: - type: integer - name: - type: string - managedFields: - items: - properties: - time: - type: string - apiVersion: - type: string - fieldsV1: - type: object - fieldsType: - type: string - manager: - type: string - operation: - type: string - subresource: - type: string - type: object - type: array - namespace: - type: string - type: object - spec: - properties: - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string - dataSource: - properties: - name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - dataSourceRef: - properties: - name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - accessModes: - items: - type: string - type: array - volumeMode: - type: string - volumeName: - type: string - type: object - type: object - type: object - scaleIO: - properties: - readOnly: - type: boolean - storageMode: - type: string - storagePool: - type: string - system: - type: string - gateway: - type: string - secretRef: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: properties: - name: - type: string - type: object - fsType: - type: string - sslEnabled: - type: boolean - volumeName: - type: string - protectionDomain: - type: string - type: object - csi: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + preStop: properties: - nodePublishSecretRef: + exec: properties: - name: - type: string - type: object - readOnly: - type: boolean - volumeAttributes: - additionalProperties: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - secret: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" + livenessProbe: + properties: + exec: properties: - optional: - type: boolean - secretName: - type: string - items: + command: items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - name: - type: string - vsphereVolume: - properties: - storagePolicyName: - type: string - storagePolicyID: - type: string - volumePath: - type: string - fsType: - type: string - type: object - gitRepo: - properties: - revision: - type: string - repository: - type: string - directory: - type: string - type: object - glusterfs: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: properties: - path: - type: string - readOnly: - type: boolean - endpoints: - type: string - type: object - nfs: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" path: - type: string - readOnly: - type: boolean - server: - type: string - type: object - cinder: - properties: - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - volumeID: - type: string - type: object - flocker: - properties: - datasetUUID: - type: string - datasetName: - type: string - type: object - quobyte: - properties: - group: - type: string - readOnly: - type: boolean - volume: - type: string - user: - type: string - registry: - type: string - tenant: - type: string - type: object - photonPersistentDisk: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: properties: - pdID: - type: string - fsType: - type: string - type: object - persistentVolumeClaim: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: + exec: properties: - readOnly: - type: boolean - claimName: - type: string - type: object - awsElasticBlockStore: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: properties: - readOnly: - type: boolean - partition: - type: integer - fsType: - type: string - volumeID: - type: string - type: object - configMap: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: properties: - optional: - type: boolean - items: + host: + type: "string" + httpHeaders: items: properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - name: - type: string - type: object - storageos: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: properties: - readOnly: - type: boolean - volumeNamespace: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - volumeName: - type: string - type: object - portworxVolume: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: + items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: properties: - readOnly: - type: boolean - fsType: - type: string - volumeID: - type: string - type: object - iscsi: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: properties: - readOnly: - type: boolean - chapAuthSession: - type: boolean - lun: - type: integer - targetPortal: - type: string - iscsiInterface: - type: string - portals: + add: items: - type: string - type: array - initiatorName: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - iqn: - type: string - chapAuthDiscovery: - type: boolean - type: object - rbd: - properties: - readOnly: - type: boolean - pool: - type: string - keyring: - type: string - image: - type: string - secretRef: - properties: - name: - type: string - type: object - monitors: + type: "string" + type: "array" + drop: items: - type: string - type: array - fsType: - type: string + 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" user: - type: string - type: object - azureFile: + type: "string" + type: "object" + seccompProfile: properties: - readOnly: - type: boolean - secretName: - type: string - shareName: - type: string - type: object - downwardAPI: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: properties: - items: - items: - properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - projected: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: + properties: + exec: properties: - defaultMode: - type: integer - sources: + command: items: - properties: - secret: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - name: - type: string - type: object - configMap: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - name: - type: string - type: object - serviceAccountToken: - properties: - path: - type: string - audience: - type: string - expirationSeconds: - type: integer - type: object - downwardAPI: - properties: - items: - items: - properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - type: object - type: object - type: array - type: object - azureDisk: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: properties: - readOnly: - type: boolean - diskName: - type: string - cachingMode: - type: string - fsType: - type: string - kind: - type: string - diskURI: - type: string - type: object - cephfs: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: properties: - path: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - monitors: + host: + type: "string" + httpHeaders: items: - type: string - type: array - secretFile: - type: string - user: - type: string - type: object - emptyDir: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: properties: - sizeLimit: + host: + type: "string" + port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - medium: - type: string - type: object - fc: + 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: + properties: + devicePath: + type: "string" + name: + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + 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" + labels: + additionalProperties: + type: "string" + description: "Labels to add to each resource (except pods)." + type: "object" + logsVolume: + description: "Volume configuration for export function logs." + properties: + existingStorageClassName: + description: "Indicates if an already existing storage class\ + \ should be used." + type: "string" + name: + description: "Indicates the suffix for the volume. Default\ + \ value is 'data'." + type: "string" + size: + description: "Indicates the requested size for the volume.\ + \ The format follows the Kubernetes' Quantity." + type: "string" + storageClass: + description: "Indicates if a StorageClass is used. The operator\ + \ will create the StorageClass if needed." + properties: + extraParams: + additionalProperties: + type: "string" + description: "Adds extra parameters for the StorageClass." + type: "object" + fsType: + description: "Indicates the 'fsType' parameter for the\ + \ StorageClass." + type: "string" + provisioner: + description: "Indicates the provisioner property for the\ + \ StorageClass." + type: "string" + reclaimPolicy: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "string" + type: + description: "Indicates the 'type' parameter for the StorageClass." + type: "string" + type: "object" + type: "object" + matchLabels: + additionalProperties: + type: "string" + description: "Match labels selectors to add to each pod." + type: "object" + minReadySeconds: + description: "Min seconds to wait before considering the pod as\ + \ ready." + type: "integer" + nodeAffinity: + description: "Node affinity configuration." + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: properties: - readOnly: - type: boolean - lun: - type: integer - wwids: + matchExpressions: items: - type: string - type: array - targetWWNs: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: items: - type: string - type: array - fsType: - type: string - type: object - type: object - type: array - mounts: - description: Mount points for the additional volumes + 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" + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + type: "object" + type: "array" + type: "object" + type: "object" + nodeSelectors: + additionalProperties: + type: "string" + description: "Additional node selectors." + type: "object" + pdb: + description: "Pod disruption budget configuration." + properties: + enabled: + description: "Enable Pdb policy." + type: "boolean" + maxUnavailable: + description: "Number of maxUnavailable pods." + type: "integer" + minAvailable: + description: "Number of minAvailable pods." + type: "integer" + type: "object" + podAnnotations: + additionalProperties: + type: "string" + description: "Annotations to add to pod." + type: "object" + podLabels: + additionalProperties: + type: "string" + description: "Labels to add to each pod." + type: "object" + podManagementPolicy: + description: "Pod management policy." + type: "string" + probes: + description: "Liveness and readiness probes configuration." + properties: + liveness: + description: "Liveness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds) for the\ + \ probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period (in\ + \ seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds) for the\ + \ probe." + type: "integer" + type: "object" + readiness: + description: "Readiness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds) for the\ + \ probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period (in\ + \ seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds) for the\ + \ probe." + type: "integer" + type: "object" + type: "object" + rbac: + description: "RBAC config." + properties: + create: + description: "Create needed RBAC to run the Functions Worker." + type: "boolean" + namespaced: + description: "Whether or not the RBAC is created per-namespace\ + \ or cluster-wise." + type: "boolean" + type: "object" + replicas: + description: "Number of desired replicas." + type: "integer" + resources: + description: "Resources requirements." + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + runtime: + description: "Runtime mode for functions." + type: "string" + securityContext: + description: "Subset of PodSecurityContext for basic UID, GID,\ + \ and volume access control." + properties: + fsGroup: + type: "integer" + fsGroupChangePolicy: + type: "string" + runAsGroup: + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + type: "integer" + supplementalGroups: + items: + type: "integer" + type: "array" + type: "object" + service: + description: "Service configuration." + properties: + additionalPorts: + description: "Additional ports to add to the Service." items: properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string + appProtocol: + type: "string" name: - type: string - type: object - type: array - type: object - env: - description: Additional container env variables. - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - labels: - additionalProperties: - type: string - description: Labels to add to each resource (except pods). - type: object - initContainers: - description: Init containers + type: "string" + nodePort: + type: "integer" + port: + type: "integer" + protocol: + type: "string" + targetPort: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "array" + annotations: + additionalProperties: + type: "string" + description: "Additional annotations to add to the Service." + type: "object" + type: + description: "Service type. Default value is 'ClusterIP'" + type: "string" + type: "object" + serviceAccountName: + description: "Service account name for the resource." + type: "string" + sidecars: + description: "Sidecar containers" items: properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" lifecycle: properties: postStart: properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + type: "object" + preStop: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" livenessProbe: properties: - periodSeconds: - type: integer + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" failureThreshold: - type: integer - initialDelaySeconds: - type: integer + type: "integer" grpc: properties: port: - type: integer + type: "integer" service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer + scheme: + type: "string" + type: "object" initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object + type: "integer" + periodSeconds: + type: "integer" successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer + type: "integer" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" timeoutSeconds: - type: integer + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: items: properties: - value: - type: string - valueFrom: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: + 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" startupProbe: properties: - periodSeconds: - type: integer + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" failureThreshold: - type: integer - initialDelaySeconds: - type: integer + type: "integer" grpc: properties: port: - type: integer + type: "integer" service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + stdin: + type: "boolean" stdinOnce: - type: boolean - ports: + type: "boolean" + terminationMessagePath: + type: "string" + terminationMessagePolicy: + type: "string" + tty: + type: "boolean" + volumeDevices: items: properties: - containerPort: - type: integer - hostPort: - type: integer + devicePath: + type: "string" name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: + type: "string" + type: "object" + type: "array" + volumeMounts: items: properties: - prefix: - type: string - configMapRef: + 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" + tolerations: + description: "Pod tolerations." + items: + properties: + effect: + type: "string" + key: + type: "string" + operator: + type: "string" + tolerationSeconds: + type: "integer" + value: + type: "string" + type: "object" + type: "array" + updateStrategy: + description: "Update strategy for the StatefulSet." + properties: + rollingUpdate: + properties: + maxUnavailable: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + partition: + type: "integer" + type: "object" + type: + type: "string" + type: "object" + type: "object" + global: + properties: + antiAffinity: + description: "Pod anti affinity configuration." + properties: + host: + description: "Indicates the reclaimPolicy property for the\ + \ StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + zone: + description: "Indicates the provisioner property for the StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + type: "object" + auth: + description: | + Authentication and authorization configuration. + properties: + enabled: + description: "Enable authentication in the cluster. Default\ + \ is 'false'." + type: "boolean" + token: + description: "Token based authentication configuration." + properties: + initialize: + description: "Initialize Secrets with new pair of keys\ + \ and tokens for the super user roles. The generated\ + \ Secret name is 'token-'." + type: "boolean" + privateKeyFile: + description: "Private key file name stored in the Secret.\ + \ Default is 'my-private.key'" + type: "string" + proxyRoles: + description: "Proxy roles." + items: + type: "string" + type: "array" + publicKeyFile: + description: "Public key file name stored in the Secret.\ + \ Default is 'my-public.key'" + type: "string" + superUserRoles: + description: "Super user roles." + items: + type: "string" + type: "array" + type: "object" + type: "object" + clusterName: + description: "Corresponds to the 'clusterName' field in the broker.conf.\ + \ Defaults to the value of the 'name' field" + type: "string" + components: + description: "Pulsar cluster components names." + properties: + autorecoveryBaseName: + description: "Autorecovery base name. Default value is 'autorecovery'." + type: "string" + bastionBaseName: + description: "Bastion base name. Default value is 'bastion'." + type: "string" + bookkeeperBaseName: + description: "BookKeeper base name. Default value is 'bookkeeper'." + type: "string" + brokerBaseName: + description: "Broker base name. Default value is 'broker'." + type: "string" + functionsWorkerBaseName: + description: "Functions Worker base name. Default value is\ + \ 'function'." + type: "string" + proxyBaseName: + description: "Proxy base name. Default value is 'proxy'." + type: "string" + zookeeperBaseName: + description: "Zookeeper base name. Default value is 'zookeeper'." + type: "string" + type: "object" + dnsConfig: + description: | + Override default DNS config for each pod. Note that because we use fully qualified service names for intra + cluster networking with Pulsar components, we set the ndots value to 4 (the default is 5). This prevents + unnecessary DNS lookups for the fully qualified service names that would be guaranteed to result in NXDOMAIN. + For example, the name 'pulsar-broker.pulsar.svc.cluster.local' has 4 dots, so it would be resolved directly + instead of appending the configured search domains. + More info here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config. + properties: + nameservers: + items: + type: "string" + type: "array" + options: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + searches: + items: + type: "string" + type: "array" + type: "object" + dnsName: + description: "Public dns name for the cluster's load balancer." + type: "string" + image: + description: "Default Pulsar image to use. Any components can\ + \ be configured to use a different image." + type: "string" + imagePullPolicy: + description: "Default Pulsar image pull policy to use. Any components\ + \ can be configured to use a different image pull policy. Default\ + \ value is 'IfNotPresent'." + type: "string" + kubernetesClusterDomain: + description: | + The domain name for your kubernetes cluster. + This domain is documented here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#a-aaaa-records-1 . + It's used to fully qualify service names when configuring Pulsar. + The default value is 'cluster.local'. + type: "string" + name: + description: "Name of the Pulsar cluster spec. This is used as\ + \ a prefix for managed Kubernetes resources." + type: "string" + nodeSelectors: + additionalProperties: + type: "string" + description: "Global node selector. If set, this will apply to\ + \ all the components." + type: "object" + persistence: + description: | + If persistence is enabled, components that has state will be deployed with PersistentVolumeClaims, otherwise, for test purposes, they will be deployed with emptyDir + type: "boolean" + priorityClassName: + description: "Priority class name to attach to each pod." + type: "string" + racks: + additionalProperties: + properties: + host: + description: "Enable rack rules based on the hostname of\ + \ the node." + properties: + enabled: + description: "Enable the rack affinity rules." + type: "boolean" + requireRackAffinity: + description: "Indicates if the podAffinity rules will\ + \ be enforced. Default is false. If required, the\ + \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + requireRackAntiAffinity: + description: "Indicates if the podAntiAffinity rules\ + \ will be enforced. Default is true. If required,\ + \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + type: "object" + zone: + description: "Enable rack rules based on the failure domain\ + \ (availability zone) of the node." + properties: + enableHostAntiAffinity: + description: "Enable the host anti affinity. If set,\ + \ all the pods of the same rack will deployed on different\ + \ nodes of the same zone.Default is true." + type: "boolean" + enabled: + description: "Enable the rack affinity rules." + type: "boolean" + requireRackAffinity: + description: "Indicates if the podAffinity rules will\ + \ be enforced. Default is false. If required, the\ + \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + requireRackAntiAffinity: + description: "Indicates if the podAntiAffinity rules\ + \ will be enforced. Default is true. If required,\ + \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + requireRackHostAntiAffinity: + description: "Indicates if the podAntiAffinity rules\ + \ will be enforced for the host. Default is true.\ + \ If required, the affinity rule will be enforced\ + \ using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + type: "object" + type: "object" + description: "Racks configuration." + type: "object" + resourceSets: + additionalProperties: + properties: + rack: + description: "Place this resource set to a specific rack,\ + \ defined at .global.racks." + type: "string" + type: "object" + description: "Resource sets." + type: "object" + restartOnConfigMapChange: + description: | + By default, Kubernetes will not restart pods when only their configmap is changed. This setting will restart pods when their configmap is changed using an annotation that calculates the checksum of the configmap. + type: "boolean" + storage: + description: "Storage configuration." + properties: + existingStorageClassName: + description: "Indicates if an already existing storage class\ + \ should be used." + type: "string" + storageClass: + description: "Indicates if a StorageClass is used. The operator\ + \ will create the StorageClass if needed." + properties: + extraParams: + additionalProperties: + type: "string" + description: "Adds extra parameters for the StorageClass." + type: "object" + fsType: + description: "Indicates the 'fsType' parameter for the\ + \ StorageClass." + type: "string" + provisioner: + description: "Indicates the provisioner property for the\ + \ StorageClass." + type: "string" + reclaimPolicy: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "string" + type: + description: "Indicates the 'type' parameter for the StorageClass." + type: "string" + type: "object" + type: "object" + tls: + description: "TLS configuration for the cluster." + properties: + autorecovery: + description: "TLS configurations related to the Autorecovery\ + \ component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + bookkeeper: + description: "TLS configurations related to the BookKeeper\ + \ component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + broker: + description: "TLS configurations related to the Broker component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + brokerResourceSets: + additionalProperties: + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from\ + \ where to load the certificates." + type: "string" + type: "object" + description: "TLS configurations related to the Broker resource\ + \ sets." + type: "object" + caPath: + description: "Path in the container filesystem where the TLS\ + \ CA certificates are retrieved. It has to point to a certificate\ + \ file. The default value is /etc/ssl/certs/ca-certificates.crt." + type: "string" + certProvisioner: + description: "Certificate provisioner configuration." + properties: + acme: + description: "ACME certificate provisioner configuration." + properties: + broker: + description: "Broker self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + enabled: + description: "Generate self signed certificates for\ + \ broker, proxy and functions worker." + type: "boolean" + external: + additionalProperties: + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject\ + \ Alternative Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key\ + \ will be stored whe perComponent is enabled.\ + \ Required for external services. Internal\ + \ services pick up the secret name from the\ + \ tls config if not specified" + type: "string" + type: "object" + description: "External services self signed certificate\ + \ config (e.g., admin console, grafana). The key\ + \ is the service name, and the value contains generation\ + \ config" + type: "object" + issuer: + description: "ACME issuer configuration." properties: - optional: - type: boolean + email: + description: "Email used for ACME registration." + type: "string" name: - type: string - type: object - secretRef: + description: "Name of the Issuer resource." + type: "string" + privateKeySecretName: + description: "Secret storing the ACME account\ + \ private key." + type: "string" + server: + description: "ACME server URL." + type: "string" + solvers: + description: "ACME challenge solvers. Solvers\ + \ are evaluated in order; no domain-based routing" + items: + properties: + dns01: + description: "DNS01 solver configuration." + properties: + cloudDNS: + properties: + project: + type: "string" + serviceAccountSecretKey: + type: "string" + serviceAccountSecretName: + type: "string" + type: "object" + cloudflare: + properties: + apiTokenSecretKey: + type: "string" + apiTokenSecretName: + type: "string" + email: + type: "string" + type: "object" + route53: + properties: + hostedZoneId: + type: "string" + region: + type: "string" + type: "object" + type: "object" + http01: + description: "HTTP01 solver configuration." + properties: + ingressClass: + description: "Ingress class used for\ + \ HTTP01 challenge." + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - securityContext: - properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: - properties: - add: - items: - type: string - type: array - drop: - items: - type: string - type: array - type: object - seLinuxOptions: - properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: - properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: - items: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + proxy: + description: "Proxy self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + type: "object" + selfSigned: + description: "Self signed certificate provisioner configuration." properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array - pdb: - description: Pod disruption budget configuration. - properties: - maxUnavailable: - description: Number of maxUnavailable pods. - type: integer - enabled: - description: Enable Pdb policy. - type: boolean - type: object - tolerations: - description: Pod tolerations. - items: - properties: - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - effect: - type: string - type: object - type: array - replicas: - description: Number of desired replicas. - type: integer - nodeAffinity: - description: Node affinity configuration. - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - weight: - type: integer - preference: - properties: - matchFields: - items: + autorecovery: + description: "Autorecovery self signed certificate\ + \ config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + bookkeeper: + description: "Bookkeeper self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchFields: - items: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + broker: + description: "Broker self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + caSecretName: + description: "Secret where to store the root CA certificate." + type: "string" + enabled: + description: "Generate self signed certificates for\ + \ broker, proxy and functions worker." + type: "boolean" + external: + additionalProperties: + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject\ + \ Alternative Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key\ + \ will be stored whe perComponent is enabled.\ + \ Required for external services. Internal\ + \ services pick up the secret name from the\ + \ tls config if not specified" + type: "string" + type: "object" + description: "External services self signed certificate\ + \ config (e.g., admin console, grafana). The key\ + \ is the service name, and the value contains generation\ + \ config" + type: "object" + functionsWorker: + description: "Functions worker self signed certificate\ + \ config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: array - type: object - type: object - nodeSelectors: - additionalProperties: - type: string - description: Additional node selectors. - type: object - antiAffinity: - description: Pod anti-affinity configuration. This override the - global value if set. - properties: - host: - description: Indicates the reclaimPolicy property for the - StorageClass. + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + includeDns: + description: "Include dns name in the DNS names covered\ + \ by the certificate." + type: "boolean" + perComponent: + description: "Generate a different certificate for\ + \ each component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + proxy: + description: "Proxy self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + zookeeper: + description: "Zookeeper self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + type: "object" + type: "object" + defaultSecretName: + description: "Secret name used by each component to load TLS\ + \ certificates. Each component can load a different secret\ + \ by setting the 'secretName' entry in the tls component\ + \ spec." + type: "string" + enabled: + description: "Deprecated. Use the 'enabled' field in each\ + \ component spec instead." + type: "boolean" + functionsWorker: + description: "TLS configurations related to the Functions\ + \ worker component." properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - zone: - description: Indicates the provisioner property for the StorageClass. + description: "Enable TLS." + type: "boolean" + enabledWithBroker: + description: "Enable TLS for the functions worker to broker\ + \ connections." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + proxy: + description: "TLS configurations related to the Proxy component." properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - type: object - imagePullPolicy: - description: Override image pull policy. - type: string - podLabels: - additionalProperties: - type: string - description: Labels to add to each pod. - type: object - matchLabels: - additionalProperties: - type: string - description: Match labels selectors to add to each pod. - type: object - serviceAccountName: - description: Service account name for the resource. - type: string - type: object - type: object + description: "Enable TLS." + type: "boolean" + enabledWithBroker: + description: "Enable TLS for the proxy to broker connections." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + proxyResourceSets: + additionalProperties: + properties: + enabled: + description: "Enable TLS." + type: "boolean" + enabledWithBroker: + description: "Enable TLS for the proxy to broker connections." + type: "boolean" + secretName: + description: "Override the default secret name from\ + \ where to load the certificates." + type: "string" + type: "object" + description: "TLS configurations related to the Proxy resource\ + \ sets." + type: "object" + ssCa: + description: "TLS configurations used by additional components,\ + \ such as the Bastion component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + zookeeper: + description: "TLS configurations related to the ZooKeeper\ + \ component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + type: "object" + zookeeperPlainSslStorePassword: + description: "Use plain password in zookeeper server and client\ + \ configuration. Default is false. Old versions of Apache Zookeeper\ + \ (<3.8.0) does not support getting password from file. In that\ + \ case, set this to true." + type: "boolean" + required: + - "name" + type: "object" + type: "object" status: properties: - lastApplied: - description: Last spec applied. - type: string conditions: description: |- Conditions: 1. Condition Ready: possible status are True or False. If False, the reason contains the error message. items: properties: - status: - type: string - reason: - type: string lastTransitionTime: - type: string + type: "string" + message: + type: "string" observedGeneration: - type: integer + type: "integer" + reason: + type: "string" + status: + type: "string" type: - type: string - message: - type: string - type: object - type: array - type: object - type: object + type: "string" + type: "object" + type: "array" + lastApplied: + description: "Last spec applied." + type: "string" + type: "object" + type: "object" served: true storage: true subresources: diff --git a/helm/kaap/crds/proxies.kaap.oss.datastax.com-v1.yml b/helm/kaap/crds/proxies.kaap.oss.datastax.com-v1.yml index 6d6ca6ab..0aa0f9e1 100644 --- a/helm/kaap/crds/proxies.kaap.oss.datastax.com-v1.yml +++ b/helm/kaap/crds/proxies.kaap.oss.datastax.com-v1.yml @@ -1,19 +1,19 @@ # Generated by Fabric8 CRDGenerator, manual edits might get overwritten! -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition +apiVersion: "apiextensions.k8s.io/v1" +kind: "CustomResourceDefinition" metadata: - name: proxies.kaap.oss.datastax.com + name: "proxies.kaap.oss.datastax.com" spec: - group: kaap.oss.datastax.com + group: "kaap.oss.datastax.com" names: - kind: Proxy - plural: proxies + kind: "Proxy" + plural: "proxies" shortNames: - - pr - singular: proxy - scope: Namespaced + - "pr" + singular: "proxy" + scope: "Namespaced" versions: - - name: v1beta1 + - name: "v1beta1" schema: openAPIV3Schema: properties: @@ -21,32 +21,101 @@ spec: properties: global: properties: + antiAffinity: + description: "Pod anti affinity configuration." + properties: + host: + description: "Indicates the reclaimPolicy property for the\ + \ StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + zone: + description: "Indicates the provisioner property for the StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + type: "object" + auth: + description: | + Authentication and authorization configuration. + properties: + enabled: + description: "Enable authentication in the cluster. Default\ + \ is 'false'." + type: "boolean" + token: + description: "Token based authentication configuration." + properties: + initialize: + description: "Initialize Secrets with new pair of keys\ + \ and tokens for the super user roles. The generated\ + \ Secret name is 'token-'." + type: "boolean" + privateKeyFile: + description: "Private key file name stored in the Secret.\ + \ Default is 'my-private.key'" + type: "string" + proxyRoles: + description: "Proxy roles." + items: + type: "string" + type: "array" + publicKeyFile: + description: "Public key file name stored in the Secret.\ + \ Default is 'my-public.key'" + type: "string" + superUserRoles: + description: "Super user roles." + items: + type: "string" + type: "array" + type: "object" + type: "object" + clusterName: + description: "Corresponds to the 'clusterName' field in the broker.conf.\ + \ Defaults to the value of the 'name' field" + type: "string" components: - description: Pulsar cluster components names. + description: "Pulsar cluster components names." properties: - brokerBaseName: - description: Broker base name. Default value is 'broker'. - type: string - zookeeperBaseName: - description: Zookeeper base name. Default value is 'zookeeper'. - type: string - functionsWorkerBaseName: - description: Functions Worker base name. Default value is - 'function'. - type: string autorecoveryBaseName: - description: Autorecovery base name. Default value is 'autorecovery'. - type: string - bookkeeperBaseName: - description: BookKeeper base name. Default value is 'bookkeeper'. - type: string + description: "Autorecovery base name. Default value is 'autorecovery'." + type: "string" bastionBaseName: - description: Bastion base name. Default value is 'bastion'. - type: string + description: "Bastion base name. Default value is 'bastion'." + type: "string" + bookkeeperBaseName: + description: "BookKeeper base name. Default value is 'bookkeeper'." + type: "string" + brokerBaseName: + description: "Broker base name. Default value is 'broker'." + type: "string" + functionsWorkerBaseName: + description: "Functions Worker base name. Default value is\ + \ 'function'." + type: "string" proxyBaseName: - description: Proxy base name. Default value is 'proxy'. - type: string - type: object + description: "Proxy base name. Default value is 'proxy'." + type: "string" + zookeeperBaseName: + description: "Zookeeper base name. Default value is 'zookeeper'." + type: "string" + type: "object" dnsConfig: description: | Override default DNS config for each pod. Note that because we use fully qualified service names for intra @@ -58,4846 +127,5441 @@ spec: properties: nameservers: items: - type: string - type: array - searches: - items: - type: string - type: array + type: "string" + type: "array" options: items: properties: - value: - type: string name: - type: string - type: object - type: array - type: object + type: "string" + value: + type: "string" + type: "object" + type: "array" + searches: + items: + type: "string" + type: "array" + type: "object" dnsName: - description: Public dns name for the cluster's load balancer. - type: string + description: "Public dns name for the cluster's load balancer." + type: "string" + image: + description: "Default Pulsar image to use. Any components can\ + \ be configured to use a different image." + type: "string" + imagePullPolicy: + description: "Default Pulsar image pull policy to use. Any components\ + \ can be configured to use a different image pull policy. Default\ + \ value is 'IfNotPresent'." + type: "string" kubernetesClusterDomain: description: | The domain name for your kubernetes cluster. This domain is documented here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#a-aaaa-records-1 . It's used to fully qualify service names when configuring Pulsar. The default value is 'cluster.local'. - type: string - priorityClassName: - description: Priority class name to attach to each pod. - type: string + type: "string" name: - description: Name of the Pulsar cluster spec. This is used as - a prefix for managed Kubernetes resources. - type: string + description: "Name of the Pulsar cluster spec. This is used as\ + \ a prefix for managed Kubernetes resources." + type: "string" + nodeSelectors: + additionalProperties: + type: "string" + description: "Global node selector. If set, this will apply to\ + \ all the components." + type: "object" + persistence: + description: | + If persistence is enabled, components that has state will be deployed with PersistentVolumeClaims, otherwise, for test purposes, they will be deployed with emptyDir + type: "boolean" + priorityClassName: + description: "Priority class name to attach to each pod." + type: "string" + racks: + additionalProperties: + properties: + host: + description: "Enable rack rules based on the hostname of\ + \ the node." + properties: + enabled: + description: "Enable the rack affinity rules." + type: "boolean" + requireRackAffinity: + description: "Indicates if the podAffinity rules will\ + \ be enforced. Default is false. If required, the\ + \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + requireRackAntiAffinity: + description: "Indicates if the podAntiAffinity rules\ + \ will be enforced. Default is true. If required,\ + \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + type: "object" + zone: + description: "Enable rack rules based on the failure domain\ + \ (availability zone) of the node." + properties: + enableHostAntiAffinity: + description: "Enable the host anti affinity. If set,\ + \ all the pods of the same rack will deployed on different\ + \ nodes of the same zone.Default is true." + type: "boolean" + enabled: + description: "Enable the rack affinity rules." + type: "boolean" + requireRackAffinity: + description: "Indicates if the podAffinity rules will\ + \ be enforced. Default is false. If required, the\ + \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + requireRackAntiAffinity: + description: "Indicates if the podAntiAffinity rules\ + \ will be enforced. Default is true. If required,\ + \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + requireRackHostAntiAffinity: + description: "Indicates if the podAntiAffinity rules\ + \ will be enforced for the host. Default is true.\ + \ If required, the affinity rule will be enforced\ + \ using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + type: "object" + type: "object" + description: "Racks configuration." + type: "object" + resourceSets: + additionalProperties: + properties: + rack: + description: "Place this resource set to a specific rack,\ + \ defined at .global.racks." + type: "string" + type: "object" + description: "Resource sets." + type: "object" + restartOnConfigMapChange: + description: | + By default, Kubernetes will not restart pods when only their configmap is changed. This setting will restart pods when their configmap is changed using an annotation that calculates the checksum of the configmap. + type: "boolean" storage: - description: Storage configuration. + description: "Storage configuration." properties: + existingStorageClassName: + description: "Indicates if an already existing storage class\ + \ should be used." + type: "string" storageClass: - description: Indicates if a StorageClass is used. The operator - will create the StorageClass if needed. + description: "Indicates if a StorageClass is used. The operator\ + \ will create the StorageClass if needed." properties: extraParams: additionalProperties: - type: string - description: Adds extra parameters for the StorageClass. - type: object - provisioner: - description: Indicates the provisioner property for the - StorageClass. - type: string - type: - description: Indicates the 'type' parameter for the StorageClass. - type: string + type: "string" + description: "Adds extra parameters for the StorageClass." + type: "object" fsType: - description: Indicates the 'fsType' parameter for the - StorageClass. - type: string + description: "Indicates the 'fsType' parameter for the\ + \ StorageClass." + type: "string" + provisioner: + description: "Indicates the provisioner property for the\ + \ StorageClass." + type: "string" reclaimPolicy: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: string - type: object - existingStorageClassName: - description: Indicates if an already existing storage class - should be used. - type: string - type: object + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "string" + type: + description: "Indicates the 'type' parameter for the StorageClass." + type: "string" + type: "object" + type: "object" tls: - description: TLS configuration for the cluster. + description: "TLS configuration for the cluster." properties: - ssCa: - description: "TLS configurations used by additional components,\ - \ such as the Bastion component." + autorecovery: + description: "TLS configurations related to the Autorecovery\ + \ component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + bookkeeper: + description: "TLS configurations related to the BookKeeper\ + \ component." properties: + enabled: + description: "Enable TLS." + type: "boolean" secretName: - description: Override the default secret name from where - to load the certificates. - type: string + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + broker: + description: "TLS configurations related to the Broker component." + properties: enabled: - description: Enable TLS. - type: boolean - type: object + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + brokerResourceSets: + additionalProperties: + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from\ + \ where to load the certificates." + type: "string" + type: "object" + description: "TLS configurations related to the Broker resource\ + \ sets." + type: "object" + caPath: + description: "Path in the container filesystem where the TLS\ + \ CA certificates are retrieved. It has to point to a certificate\ + \ file. The default value is /etc/ssl/certs/ca-certificates.crt." + type: "string" certProvisioner: - description: Certificate provisioner configuration. + description: "Certificate provisioner configuration." properties: - selfSigned: - description: Self signed certificate provisioner configuration. + acme: + description: "ACME certificate provisioner configuration." properties: - functionsWorker: - description: Functions worker self signed certificate - config. + broker: + description: "Broker self signed certificate config." properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" privateKey: - description: Cert-manager options for generating - the private key. + description: "Cert-manager options for generating\ + \ the private key." properties: - rotationPolicy: - type: string - encoding: - type: string algorithm: - type: string + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - includeDns: - description: Include dns name in the DNS names covered - by the certificate. - type: boolean + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + enabled: + description: "Generate self signed certificates for\ + \ broker, proxy and functions worker." + type: "boolean" + external: + additionalProperties: + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject\ + \ Alternative Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key\ + \ will be stored whe perComponent is enabled.\ + \ Required for external services. Internal\ + \ services pick up the secret name from the\ + \ tls config if not specified" + type: "string" + type: "object" + description: "External services self signed certificate\ + \ config (e.g., admin console, grafana). The key\ + \ is the service name, and the value contains generation\ + \ config" + type: "object" + issuer: + description: "ACME issuer configuration." + properties: + email: + description: "Email used for ACME registration." + type: "string" + name: + description: "Name of the Issuer resource." + type: "string" + privateKeySecretName: + description: "Secret storing the ACME account\ + \ private key." + type: "string" + server: + description: "ACME server URL." + type: "string" + solvers: + description: "ACME challenge solvers. Solvers\ + \ are evaluated in order; no domain-based routing" + items: + properties: + dns01: + description: "DNS01 solver configuration." + properties: + cloudDNS: + properties: + project: + type: "string" + serviceAccountSecretKey: + type: "string" + serviceAccountSecretName: + type: "string" + type: "object" + cloudflare: + properties: + apiTokenSecretKey: + type: "string" + apiTokenSecretName: + type: "string" + email: + type: "string" + type: "object" + route53: + properties: + hostedZoneId: + type: "string" + region: + type: "string" + type: "object" + type: "object" + http01: + description: "HTTP01 solver configuration." + properties: + ingressClass: + description: "Ingress class used for\ + \ HTTP01 challenge." + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" privateKey: - description: Cert-manager options for generating the - private key. + description: "Cert-manager options for generating\ + \ the private key." properties: - rotationPolicy: - type: string - encoding: - type: string algorithm: - type: string + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" size: - type: integer - type: object - autorecovery: - description: Autorecovery self signed certificate - config. + type: "integer" + type: "object" + proxy: + description: "Proxy self signed certificate config." properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" privateKey: - description: Cert-manager options for generating - the private key. + description: "Cert-manager options for generating\ + \ the private key." properties: - rotationPolicy: - type: string - encoding: - type: string algorithm: - type: string + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" size: - type: integer - type: object + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + type: "object" + selfSigned: + description: "Self signed certificate provisioner configuration." + properties: + autorecovery: + description: "Autorecovery self signed certificate\ + \ config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" bookkeeper: - description: Bookkeeper self signed certificate config. + description: "Bookkeeper self signed certificate config." properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" privateKey: - description: Cert-manager options for generating - the private key. + description: "Cert-manager options for generating\ + \ the private key." properties: - rotationPolicy: - type: string - encoding: - type: string algorithm: - type: string + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - proxy: - description: Proxy self signed certificate config. + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + broker: + description: "Broker self signed certificate config." properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" privateKey: - description: Cert-manager options for generating - the private key. + description: "Cert-manager options for generating\ + \ the private key." properties: - rotationPolicy: - type: string - encoding: - type: string algorithm: - type: string + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - zookeeper: - description: Zookeeper self signed certificate config. + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + caSecretName: + description: "Secret where to store the root CA certificate." + type: "string" + enabled: + description: "Generate self signed certificates for\ + \ broker, proxy and functions worker." + type: "boolean" + external: + additionalProperties: + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject\ + \ Alternative Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key\ + \ will be stored whe perComponent is enabled.\ + \ Required for external services. Internal\ + \ services pick up the secret name from the\ + \ tls config if not specified" + type: "string" + type: "object" + description: "External services self signed certificate\ + \ config (e.g., admin console, grafana). The key\ + \ is the service name, and the value contains generation\ + \ config" + type: "object" + functionsWorker: + description: "Functions worker self signed certificate\ + \ config." properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" privateKey: - description: Cert-manager options for generating - the private key. + description: "Cert-manager options for generating\ + \ the private key." properties: - rotationPolicy: - type: string - encoding: - type: string algorithm: - type: string + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - broker: - description: Broker self signed certificate config. + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + includeDns: + description: "Include dns name in the DNS names covered\ + \ by the certificate." + type: "boolean" + perComponent: + description: "Generate a different certificate for\ + \ each component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + proxy: + description: "Proxy self signed certificate config." properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" privateKey: - description: Cert-manager options for generating - the private key. + description: "Cert-manager options for generating\ + \ the private key." properties: - rotationPolicy: - type: string - encoding: - type: string algorithm: - type: string + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" size: - type: integer - type: object + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + zookeeper: + description: "Zookeeper self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - perComponent: - description: Generate a different certificate for - each component. - type: boolean - enabled: - description: "Generate self signed certificates for\ - \ broker, proxy and functions worker." - type: boolean - caSecretName: - description: Secret where to store the root CA certificate. - type: string - type: object - type: object - autorecovery: - description: TLS configurations related to the Autorecovery - component. + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + type: "object" + type: "object" + defaultSecretName: + description: "Secret name used by each component to load TLS\ + \ certificates. Each component can load a different secret\ + \ by setting the 'secretName' entry in the tls component\ + \ spec." + type: "string" + enabled: + description: "Deprecated. Use the 'enabled' field in each\ + \ component spec instead." + type: "boolean" + functionsWorker: + description: "TLS configurations related to the Functions\ + \ worker component." properties: + enabled: + description: "Enable TLS." + type: "boolean" + enabledWithBroker: + description: "Enable TLS for the functions worker to broker\ + \ connections." + type: "boolean" secretName: - description: Override the default secret name from where - to load the certificates. - type: string + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + proxy: + description: "TLS configurations related to the Proxy component." + properties: enabled: - description: Enable TLS. - type: boolean - type: object + description: "Enable TLS." + type: "boolean" + enabledWithBroker: + description: "Enable TLS for the proxy to broker connections." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" proxyResourceSets: additionalProperties: properties: + enabled: + description: "Enable TLS." + type: "boolean" enabledWithBroker: - description: Enable TLS for the proxy to broker connections. - type: boolean + description: "Enable TLS for the proxy to broker connections." + type: "boolean" secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - description: TLS configurations related to the Proxy resource - sets. - type: object - defaultSecretName: - description: Secret name used by each component to load TLS - certificates. Each component can load a different secret - by setting the 'secretName' entry in the tls component spec. - type: string - enabled: - description: Deprecated. Use the 'enabled' field in each component - spec instead. - type: boolean - caPath: - description: Path in the container filesystem where the TLS - CA certificates are retrieved. It has to point to a certificate - file. The default value is /etc/ssl/certs/ca-certificates.crt. - type: string - zookeeper: - description: TLS configurations related to the ZooKeeper component. + description: "Override the default secret name from\ + \ where to load the certificates." + type: "string" + type: "object" + description: "TLS configurations related to the Proxy resource\ + \ sets." + type: "object" + ssCa: + description: "TLS configurations used by additional components,\ + \ such as the Bastion component." properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string enabled: - description: Enable TLS. - type: boolean - type: object - brokerResourceSets: - additionalProperties: - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - description: TLS configurations related to the Broker resource - sets. - type: object - functionsWorker: - description: TLS configurations related to the Functions worker - component. - properties: - enabledWithBroker: - description: Enable TLS for the functions worker to broker - connections. - type: boolean + description: "Enable TLS." + type: "boolean" secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - broker: - description: TLS configurations related to the Broker component. + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + zookeeper: + description: "TLS configurations related to the ZooKeeper\ + \ component." properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string enabled: - description: Enable TLS. - type: boolean - type: object - proxy: - description: TLS configurations related to the Proxy component. - properties: - enabledWithBroker: - description: Enable TLS for the proxy to broker connections. - type: boolean + description: "Enable TLS." + type: "boolean" secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - bookkeeper: - description: TLS configurations related to the BookKeeper - component. - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - type: object - clusterName: - description: Corresponds to the 'clusterName' field in the broker.conf. Defaults - to the value of the 'name' field - type: string - restartOnConfigMapChange: - description: | - By default, Kubernetes will not restart pods when only their configmap is changed. This setting will restart pods when their configmap is changed using an annotation that calculates the checksum of the configmap. - type: boolean - image: - description: Default Pulsar image to use. Any components can be - configured to use a different image. - type: string - auth: - description: | - Authentication and authorization configuration. - properties: - token: - description: Token based authentication configuration. - properties: - privateKeyFile: - description: Private key file name stored in the Secret. - Default is 'my-private.key' - type: string - initialize: - description: Initialize Secrets with new pair of keys - and tokens for the super user roles. The generated Secret - name is 'token-'. - type: boolean - superUserRoles: - description: Super user roles. - items: - type: string - type: array - proxyRoles: - description: Proxy roles. - items: - type: string - type: array - publicKeyFile: - description: Public key file name stored in the Secret. - Default is 'my-public.key' - type: string - type: object - enabled: - description: Enable authentication in the cluster. Default - is 'false'. - type: boolean - type: object - persistence: - description: | - If persistence is enabled, components that has state will be deployed with PersistentVolumeClaims, otherwise, for test purposes, they will be deployed with emptyDir - type: boolean - racks: - additionalProperties: - properties: - host: - description: Enable rack rules based on the hostname of - the node. - properties: - enabled: - description: Enable the rack affinity rules. - type: boolean - requireRackAntiAffinity: - description: "Indicates if the podAntiAffinity rules\ - \ will be enforced. Default is true. If required,\ - \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - requireRackAffinity: - description: "Indicates if the podAffinity rules will\ - \ be enforced. Default is false. If required, the\ - \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - type: object - zone: - description: Enable rack rules based on the failure domain - (availability zone) of the node. - properties: - enableHostAntiAffinity: - description: "Enable the host anti affinity. If set,\ - \ all the pods of the same rack will deployed on different\ - \ nodes of the same zone.Default is true." - type: boolean - requireRackHostAntiAffinity: - description: "Indicates if the podAntiAffinity rules\ - \ will be enforced for the host. Default is true.\ - \ If required, the affinity rule will be enforced\ - \ using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - enabled: - description: Enable the rack affinity rules. - type: boolean - requireRackAntiAffinity: - description: "Indicates if the podAntiAffinity rules\ - \ will be enforced. Default is true. If required,\ - \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - requireRackAffinity: - description: "Indicates if the podAffinity rules will\ - \ be enforced. Default is false. If required, the\ - \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - type: object - type: object - description: Racks configuration. - type: object - resourceSets: - additionalProperties: - properties: - rack: - description: "Place this resource set to a specific rack,\ - \ defined at .global.racks." - type: string - type: object - description: Resource sets. - type: object - nodeSelectors: - additionalProperties: - type: string - description: "Global node selector. If set, this will apply to\ - \ all the components." - type: object - antiAffinity: - description: Pod anti affinity configuration. - properties: - host: - description: Indicates the reclaimPolicy property for the - StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - zone: - description: Indicates the provisioner property for the StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - type: object + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + type: "object" zookeeperPlainSslStorePassword: description: "Use plain password in zookeeper server and client\ \ configuration. Default is false. Old versions of Apache Zookeeper\ \ (<3.8.0) does not support getting password from file. In that\ \ case, set this to true." - type: boolean - imagePullPolicy: - description: Default Pulsar image pull policy to use. Any components - can be configured to use a different image pull policy. Default - value is 'IfNotPresent'. - type: string + type: "boolean" required: - - name - type: object + - "name" + type: "object" proxy: properties: - sets: - additionalProperties: - properties: - webSocket: - description: WebSocket configuration. + additionalVolumes: + description: "Mount additional volumes to the pod." + properties: + mounts: + description: "Mount points for the additional volumes" + items: properties: - config: - description: Configuration. - x-kubernetes-preserve-unknown-fields: true - probes: - description: Liveness and readiness probes configuration. + 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" + volumes: + description: "Additional volumes to be mounted to the pod" + items: + properties: + awsElasticBlockStore: properties: - liveness: - description: Liveness probe configuration. + fsType: + type: "string" + partition: + type: "integer" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + azureDisk: + properties: + cachingMode: + type: "string" + diskName: + type: "string" + diskURI: + type: "string" + fsType: + type: "string" + kind: + type: "string" + readOnly: + type: "boolean" + type: "object" + azureFile: + properties: + readOnly: + type: "boolean" + secretName: + type: "string" + shareName: + type: "string" + type: "object" + cephfs: + properties: + monitors: + items: + type: "string" + type: "array" + path: + type: "string" + readOnly: + type: "boolean" + secretFile: + type: "string" + secretRef: properties: - periodSeconds: - description: Indicates the period (in seconds) - for the probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in - seconds) for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace - period (in seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) - for the probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - readiness: - description: Readiness probe configuration. + name: + type: "string" + type: "object" + user: + type: "string" + type: "object" + cinder: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + secretRef: properties: - periodSeconds: - description: Indicates the period (in seconds) - for the probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in - seconds) for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace - period (in seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) - for the probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - type: object - resources: - description: Resources requirements. + name: + type: "string" + type: "object" + volumeID: + type: "string" + type: "object" + configMap: properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - enabled: - description: Enable WebSocket standalone as container - in the proxy pod. - type: boolean - type: object - config: - description: Configuration. - x-kubernetes-preserve-unknown-fields: true - gracePeriod: - description: Termination grace period in seconds. - minimum: 0.0 - type: integer - standaloneFunctionsWorker: - description: Whether or not the functions worker is in standalone - mode. - type: boolean - service: - description: Service configuration. - properties: - additionalPorts: - description: Additional ports to add to the Service. - items: - properties: - targetPort: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - port: - type: integer - nodePort: - type: integer - name: - type: string - appProtocol: - type: string - protocol: - type: string - type: object - type: array - loadBalancerIP: - description: Assign a load balancer IP. - type: string - annotations: - additionalProperties: - type: string - description: Additional annotations to add to the Service. - type: object - type: - description: Service type. Default value is 'ClusterIP' - type: string - enablePlainTextWithTLS: - description: Enable plain text connections even if TLS - is enabled. - type: boolean - type: object - probes: - description: Liveness and readiness probes configuration. - properties: - liveness: - description: Liveness probe configuration. + defaultMode: + type: "integer" + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + csi: properties: - periodSeconds: - description: Indicates the period (in seconds) for - the probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period - (in seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) - for the probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - readiness: - description: Readiness probe configuration. + driver: + type: "string" + fsType: + type: "string" + nodePublishSecretRef: + properties: + name: + type: "string" + type: "object" + readOnly: + type: "boolean" + volumeAttributes: + additionalProperties: + type: "string" + type: "object" + type: "object" + downwardAPI: properties: - periodSeconds: - description: Indicates the period (in seconds) for - the probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period - (in seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) - for the probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - type: object - updateStrategy: - description: Strategy for the proxy deployment. - properties: - rollingUpdate: + defaultMode: + type: "integer" + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + emptyDir: properties: - maxUnavailable: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - maxSurge: + medium: + type: "string" + sizeLimit: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: - type: string - type: object - resources: - description: Resources requirements. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - overrideResourceName: - description: Override the resource names generated by the - operator. - type: string - kafka: - description: Enable Kafka protocol. - properties: - exposePorts: - description: Expose the kafka protocol port. - type: boolean - enabled: - description: Allow the cluster to accept Kafka protocol. - Default is 'false'. - type: boolean - type: object - imagePullSecrets: - description: Image pull secrets. - items: - properties: - name: - type: string - type: object - type: array - image: - description: Override Pulsar image. - type: string - annotations: - additionalProperties: - type: string - description: Annotations to add to each resource (except - pods). - type: object - podAnnotations: - additionalProperties: - type: string - description: Annotations to add to pod. - type: object - sidecars: - description: Sidecar containers - items: - properties: - lifecycle: - properties: - postStart: + type: "object" + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: "string" + type: "object" + creationTimestamp: + type: "string" + deletionGracePeriodSeconds: + type: "integer" + deletionTimestamp: + type: "string" + finalizers: + items: + type: "string" + type: "array" + generateName: + type: "string" + generation: + type: "integer" + labels: + additionalProperties: + type: "string" + type: "object" + managedFields: + items: + properties: + apiVersion: + type: "string" + fieldsType: + type: "string" + fieldsV1: + type: "object" + manager: + type: "string" + operation: + type: "string" + subresource: + type: "string" + time: + type: "string" + type: "object" + type: "array" + name: + type: "string" + namespace: + type: "string" + ownerReferences: + items: + 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: + properties: + accessModes: + items: + type: "string" + type: "array" + dataSource: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + type: "object" + dataSourceRef: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + namespace: + type: "string" + type: "object" + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + selector: + properties: + matchExpressions: + items: + 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: + 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: + properties: + driver: + type: "string" + fsType: + type: "string" + options: + additionalProperties: + type: "string" + type: "object" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + type: "object" + flocker: + properties: + datasetName: + type: "string" + datasetUUID: + type: "string" + type: "object" + gcePersistentDisk: + properties: + fsType: + type: "string" + partition: + type: "integer" + pdName: + type: "string" + readOnly: + type: "boolean" + type: "object" + gitRepo: + properties: + directory: + type: "string" + repository: + type: "string" + revision: + type: "string" + type: "object" + glusterfs: + properties: + endpoints: + type: "string" + path: + type: "string" + readOnly: + type: "boolean" + type: "object" + hostPath: + properties: + path: + type: "string" + type: + type: "string" + type: "object" + image: + properties: + pullPolicy: + type: "string" + reference: + type: "string" + type: "object" + iscsi: + 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: + properties: + name: + type: "string" + type: "object" + targetPortal: + type: "string" + type: "object" + name: + type: "string" + nfs: + properties: + path: + type: "string" + readOnly: + type: "boolean" + server: + type: "string" + type: "object" + persistentVolumeClaim: + properties: + claimName: + type: "string" + readOnly: + type: "boolean" + type: "object" + photonPersistentDisk: + properties: + fsType: + type: "string" + pdID: + type: "string" + type: "object" + portworxVolume: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + projected: + properties: + defaultMode: + type: "integer" + sources: + items: properties: - tcpSocket: + clusterTrustBundle: properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: + labelSelector: + properties: + matchExpressions: + items: + 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: properties: - command: + items: items: - type: string - type: array - type: object - httpGet: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + downwardAPI: properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: + items: items: properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + secret: properties: - command: + items: items: - type: string - type: array - type: object - httpGet: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + serviceAccountToken: properties: + audience: + type: "string" + expirationSeconds: + type: "integer" path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + quobyte: + properties: + group: + type: "string" + readOnly: + type: "boolean" + registry: + type: "string" + tenant: + type: "string" + user: + type: "string" + volume: + type: "string" + type: "object" + rbd: + properties: + fsType: + type: "string" + image: + type: "string" + keyring: + type: "string" + monitors: + items: + type: "string" + type: "array" + pool: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + user: + type: "string" + type: "object" + scaleIO: + properties: + fsType: + type: "string" + gateway: + type: "string" + protectionDomain: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + sslEnabled: + type: "boolean" + storageMode: + type: "string" + storagePool: + type: "string" + system: + type: "string" + volumeName: + type: "string" + type: "object" + secret: + properties: + defaultMode: + type: "integer" items: - type: string - type: array - livenessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: + items: properties: + key: + type: "string" + mode: + type: "integer" path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: + type: "string" + type: "object" + type: "array" + optional: + type: "boolean" + secretName: + type: "string" + type: "object" + storageos: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + secretRef: properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: + type: "string" + type: "object" + volumeName: + type: "string" + volumeNamespace: + type: "string" + type: "object" + vsphereVolume: + properties: + fsType: + type: "string" + storagePolicyID: + type: "string" + storagePolicyName: + type: "string" + volumePath: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + annotations: + additionalProperties: + type: "string" + description: "Annotations to add to each resource (except pods)." + type: "object" + antiAffinity: + description: "Pod anti-affinity configuration. This override the\ + \ global value if set." + properties: + host: + description: "Indicates the reclaimPolicy property for the\ + \ StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + zone: + description: "Indicates the provisioner property for the StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + type: "object" + config: + description: "Configuration." + x-kubernetes-preserve-unknown-fields: true + env: + description: "Additional container env variables." + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + gracePeriod: + description: "Termination grace period in seconds." + minimum: 0.0 + type: "integer" + image: + description: "Override Pulsar image." + type: "string" + imagePullPolicy: + description: "Override image pull policy." + type: "string" + imagePullSecrets: + description: "Image pull secrets." + items: + properties: + name: + type: "string" + type: "object" + type: "array" + initContainers: + description: "Init containers" + items: + properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: + configMapKeyRef: properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: properties: - host: - type: string - port: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: + resource: + type: "string" + type: "object" + secretKeyRef: properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: - properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: - properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - securityContext: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: - properties: - add: - items: - type: string - type: array - drop: - items: - type: string - type: array - type: object - seLinuxOptions: - properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: - properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: properties: - limits: - additionalProperties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: - items: + type: "object" + type: "object" + preStop: + properties: + exec: properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array - additionalVolumes: - description: Mount additional volumes to the pod. - properties: - volumes: - description: Additional volumes to be mounted to the - pod - items: - properties: - hostPath: - properties: - path: - type: string - type: - type: string - type: object - flexVolume: - properties: - readOnly: - type: boolean - options: - additionalProperties: - type: string - type: object - secretRef: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: properties: name: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - gcePersistentDisk: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" + livenessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: properties: - readOnly: - type: boolean - pdName: - type: string - partition: - type: integer - fsType: - type: string - type: object - ephemeral: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: properties: - volumeClaimTemplate: - properties: - metadata: - properties: - generateName: - type: string - deletionGracePeriodSeconds: - type: integer - deletionTimestamp: - type: string - resourceVersion: - type: string - annotations: - additionalProperties: - type: string - type: object - selfLink: - type: string - creationTimestamp: - type: string - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - ownerReferences: - items: - properties: - blockOwnerDeletion: - type: boolean - uid: - type: string - apiVersion: - type: string - name: - type: string - kind: - type: string - controller: - type: boolean - type: object - type: array - uid: - type: string - generation: - type: integer - name: - type: string - managedFields: - items: - properties: - time: - type: string - apiVersion: - type: string - fieldsV1: - type: object - fieldsType: - type: string - manager: - type: string - operation: - type: string - subresource: - type: string - type: object - type: array - namespace: - type: string - type: object - spec: - properties: - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string - dataSource: - properties: - name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - dataSourceRef: - properties: - name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - accessModes: - items: - type: string - type: array - volumeMode: - type: string - volumeName: - type: string - type: object - type: object - type: object - scaleIO: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: + items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: + 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: properties: - readOnly: - type: boolean - storageMode: - type: string - storagePool: - type: string - system: - type: string - gateway: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - sslEnabled: - type: boolean - volumeName: - type: string - protectionDomain: - type: string - type: object - csi: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: + properties: + devicePath: + type: "string" + name: + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + 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" + kafka: + description: "Enable Kafka protocol." + properties: + enabled: + description: "Allow the cluster to accept Kafka protocol.\ + \ Default is 'false'." + type: "boolean" + exposePorts: + description: "Expose the kafka protocol port." + type: "boolean" + type: "object" + labels: + additionalProperties: + type: "string" + description: "Labels to add to each resource (except pods)." + type: "object" + matchLabels: + additionalProperties: + type: "string" + description: "Match labels selectors to add to each pod." + type: "object" + minReadySeconds: + description: "Min seconds to wait before considering the pod as\ + \ ready." + type: "integer" + nodeAffinity: + description: "Node affinity configuration." + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: properties: - nodePublishSecretRef: - properties: - name: - type: string - type: object - readOnly: - type: boolean - volumeAttributes: - additionalProperties: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - secret: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: + items: properties: - optional: - type: boolean - secretName: - type: string - items: + key: + type: "string" + operator: + type: "string" + values: items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - name: - type: string - vsphereVolume: + type: "string" + type: "array" + type: "object" + type: "array" + type: "object" + weight: + type: "integer" + type: "object" + type: "array" + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: properties: - storagePolicyName: - type: string - storagePolicyID: - type: string - volumePath: - type: string - fsType: - type: string - type: object - gitRepo: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: + items: properties: - revision: - type: string - repository: - type: string - directory: - type: string - type: object - glusterfs: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + type: "object" + type: "array" + type: "object" + type: "object" + nodeSelectors: + additionalProperties: + type: "string" + description: "Additional node selectors." + type: "object" + overrideResourceName: + description: "Override the resource names generated by the operator." + type: "string" + pdb: + description: "Pod disruption budget configuration." + properties: + enabled: + description: "Enable Pdb policy." + type: "boolean" + maxUnavailable: + description: "Number of maxUnavailable pods." + type: "integer" + minAvailable: + description: "Number of minAvailable pods." + type: "integer" + type: "object" + podAnnotations: + additionalProperties: + type: "string" + description: "Annotations to add to pod." + type: "object" + podLabels: + additionalProperties: + type: "string" + description: "Labels to add to each pod." + type: "object" + probes: + description: "Liveness and readiness probes configuration." + properties: + liveness: + description: "Liveness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds) for the\ + \ probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period (in\ + \ seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds) for the\ + \ probe." + type: "integer" + type: "object" + readiness: + description: "Readiness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds) for the\ + \ probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period (in\ + \ seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds) for the\ + \ probe." + type: "integer" + type: "object" + type: "object" + replicas: + description: "Number of desired replicas." + type: "integer" + resources: + description: "Resources requirements." + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + securityContext: + description: "Subset of PodSecurityContext for basic UID, GID,\ + \ and volume access control." + properties: + fsGroup: + type: "integer" + fsGroupChangePolicy: + type: "string" + runAsGroup: + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + type: "integer" + supplementalGroups: + items: + type: "integer" + type: "array" + type: "object" + service: + description: "Service configuration." + properties: + additionalPorts: + description: "Additional ports to add to the Service." + items: + properties: + appProtocol: + type: "string" + name: + type: "string" + nodePort: + type: "integer" + port: + type: "integer" + protocol: + type: "string" + targetPort: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "array" + annotations: + additionalProperties: + type: "string" + description: "Additional annotations to add to the Service." + type: "object" + enablePlainTextWithTLS: + description: "Enable plain text connections even if TLS is\ + \ enabled." + type: "boolean" + loadBalancerClass: + description: "Assign a load balancer class." + type: "string" + loadBalancerIP: + description: "Assign a load balancer IP." + type: "string" + type: + description: "Service type. Default value is 'ClusterIP'" + type: "string" + type: "object" + serviceAccountName: + description: "Service account name for the resource." + type: "string" + sets: + additionalProperties: + properties: + additionalVolumes: + description: "Mount additional volumes to the pod." + properties: + mounts: + description: "Mount points for the additional volumes" + items: + 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" + volumes: + description: "Additional volumes to be mounted to the\ + \ pod" + items: + properties: + awsElasticBlockStore: properties: - path: - type: string + fsType: + type: "string" + partition: + type: "integer" readOnly: - type: boolean - endpoints: - type: string - type: object - nfs: + type: "boolean" + volumeID: + type: "string" + type: "object" + azureDisk: properties: - path: - type: string + cachingMode: + type: "string" + diskName: + type: "string" + diskURI: + type: "string" + fsType: + type: "string" + kind: + type: "string" readOnly: - type: boolean - server: - type: string - type: object - cinder: + type: "boolean" + type: "object" + azureFile: + properties: + readOnly: + type: "boolean" + secretName: + type: "string" + shareName: + type: "string" + type: "object" + cephfs: properties: + monitors: + items: + type: "string" + type: "array" + path: + type: "string" readOnly: - type: boolean + type: "boolean" + secretFile: + type: "string" secretRef: properties: name: - type: string - type: object - fsType: - type: string - volumeID: - type: string - type: object - flocker: - properties: - datasetUUID: - type: string - datasetName: - type: string - type: object - quobyte: - properties: - group: - type: string - readOnly: - type: boolean - volume: - type: string + type: "string" + type: "object" user: - type: string - registry: - type: string - tenant: - type: string - type: object - photonPersistentDisk: + type: "string" + type: "object" + cinder: properties: - pdID: - type: string fsType: - type: string - type: object - persistentVolumeClaim: - properties: - readOnly: - type: boolean - claimName: - type: string - type: object - awsElasticBlockStore: - properties: + type: "string" readOnly: - type: boolean - partition: - type: integer - fsType: - type: string + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" volumeID: - type: string - type: object + type: "string" + type: "object" configMap: properties: - optional: - type: boolean + defaultMode: + type: "integer" items: items: properties: - path: - type: string key: - type: string + type: "string" mode: - type: integer - type: object - type: array - defaultMode: - type: integer + type: "integer" + path: + type: "string" + type: "object" + type: "array" name: - type: string - type: object - storageos: - properties: - readOnly: - type: boolean - volumeNamespace: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - volumeName: - type: string - type: object - portworxVolume: - properties: - readOnly: - type: boolean - fsType: - type: string - volumeID: - type: string - type: object - iscsi: + type: "string" + optional: + type: "boolean" + type: "object" + csi: properties: - readOnly: - type: boolean - chapAuthSession: - type: boolean - lun: - type: integer - targetPortal: - type: string - iscsiInterface: - type: string - portals: - items: - type: string - type: array - initiatorName: - type: string - secretRef: - properties: - name: - type: string - type: object + driver: + type: "string" fsType: - type: string - iqn: - type: string - chapAuthDiscovery: - type: boolean - type: object - rbd: - properties: - readOnly: - type: boolean - pool: - type: string - keyring: - type: string - image: - type: string - secretRef: + type: "string" + nodePublishSecretRef: properties: name: - type: string - type: object - monitors: - items: - type: string - type: array - fsType: - type: string - user: - type: string - type: object - azureFile: - properties: + type: "string" + type: "object" readOnly: - type: boolean - secretName: - type: string - shareName: - type: string - type: object + type: "boolean" + volumeAttributes: + additionalProperties: + type: "string" + type: "object" + type: "object" downwardAPI: properties: + defaultMode: + type: "integer" items: items: properties: - path: - type: string fieldRef: properties: apiVersion: - type: string + type: "string" fieldPath: - type: string - type: object + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" resourceFieldRef: properties: containerName: - type: string + type: "string" divisor: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true resource: - type: string - type: object - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - projected: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + emptyDir: properties: - defaultMode: - type: integer - sources: - items: - properties: - secret: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - name: - type: string - type: object - configMap: - properties: - optional: - type: boolean + medium: + type: "string" + sizeLimit: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: "string" + type: "object" + creationTimestamp: + type: "string" + deletionGracePeriodSeconds: + type: "integer" + deletionTimestamp: + type: "string" + finalizers: items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - name: - type: string - type: object - serviceAccountToken: - properties: - path: - type: string - audience: - type: string - expirationSeconds: - type: integer - type: object - downwardAPI: - properties: + type: "string" + type: "array" + generateName: + type: "string" + generation: + type: "integer" + labels: + additionalProperties: + type: "string" + type: "object" + managedFields: items: - items: - properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - type: object - type: object - type: array - type: object - azureDisk: + properties: + apiVersion: + type: "string" + fieldsType: + type: "string" + fieldsV1: + type: "object" + manager: + type: "string" + operation: + type: "string" + subresource: + type: "string" + time: + type: "string" + type: "object" + type: "array" + name: + type: "string" + namespace: + type: "string" + ownerReferences: + items: + 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: + properties: + accessModes: + items: + type: "string" + type: "array" + dataSource: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + type: "object" + dataSourceRef: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + namespace: + type: "string" + type: "object" + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + selector: + properties: + matchExpressions: + items: + 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: properties: - readOnly: - type: boolean - diskName: - type: string - cachingMode: - type: string fsType: - type: string - kind: - type: string - diskURI: - type: string - type: object - cephfs: + type: "string" + lun: + type: "integer" + readOnly: + type: "boolean" + targetWWNs: + items: + type: "string" + type: "array" + wwids: + items: + type: "string" + type: "array" + type: "object" + flexVolume: properties: - path: - type: string + driver: + type: "string" + fsType: + type: "string" + options: + additionalProperties: + type: "string" + type: "object" readOnly: - type: boolean + type: "boolean" secretRef: properties: name: - type: string - type: object - monitors: - items: - type: string - type: array - secretFile: - type: string - user: - type: string - type: object - emptyDir: + type: "string" + type: "object" + type: "object" + flocker: properties: - sizeLimit: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - medium: - type: string - type: object - fc: + datasetName: + type: "string" + datasetUUID: + type: "string" + type: "object" + gcePersistentDisk: + properties: + fsType: + type: "string" + partition: + type: "integer" + pdName: + type: "string" + readOnly: + type: "boolean" + type: "object" + gitRepo: + properties: + directory: + type: "string" + repository: + type: "string" + revision: + type: "string" + type: "object" + glusterfs: properties: + endpoints: + type: "string" + path: + type: "string" readOnly: - type: boolean + type: "boolean" + type: "object" + hostPath: + properties: + path: + type: "string" + type: + type: "string" + type: "object" + image: + properties: + pullPolicy: + type: "string" + reference: + type: "string" + type: "object" + iscsi: + properties: + chapAuthDiscovery: + type: "boolean" + chapAuthSession: + type: "boolean" + fsType: + type: "string" + initiatorName: + type: "string" + iqn: + type: "string" + iscsiInterface: + type: "string" lun: - type: integer - wwids: - items: - type: string - type: array - targetWWNs: + type: "integer" + portals: items: - type: string - type: array - fsType: - type: string - type: object - type: object - type: array - mounts: - description: Mount points for the additional volumes - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string + type: "string" + type: "array" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + targetPortal: + type: "string" + type: "object" name: - type: string - type: object - type: array - type: object - env: - description: Additional container env variables. - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: + type: "string" + nfs: properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: + path: + type: "string" + readOnly: + type: "boolean" + server: + type: "string" + type: "object" + persistentVolumeClaim: properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: + claimName: + type: "string" + readOnly: + type: "boolean" + type: "object" + photonPersistentDisk: properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: + fsType: + type: "string" + pdID: + type: "string" + type: "object" + portworxVolume: properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - labels: - additionalProperties: - type: string - description: Labels to add to each resource (except pods). - type: object - initContainers: - description: Init containers - items: - properties: - lifecycle: - properties: - postStart: + fsType: + type: "string" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + projected: properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: + defaultMode: + type: "integer" + sources: + items: + properties: + clusterTrustBundle: properties: - value: - type: string + labelSelector: + properties: + matchExpressions: + items: + 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 - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: + type: "string" + optional: + type: "boolean" + path: + type: "string" + signerName: + type: "string" + type: "object" + configMap: properties: - value: - type: string + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array - livenessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: - properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: - properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - securityContext: - properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: - properties: - add: - items: - type: string - type: array - drop: - items: - type: string - type: array - type: object - seLinuxOptions: + type: "string" + optional: + type: "boolean" + type: "object" + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + secret: + properties: + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + serviceAccountToken: + properties: + audience: + type: "string" + expirationSeconds: + type: "integer" + path: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + quobyte: properties: - role: - type: string - type: - type: string + group: + type: "string" + readOnly: + type: "boolean" + registry: + type: "string" + tenant: + type: "string" user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: - properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array - pdb: - description: Pod disruption budget configuration. - properties: - maxUnavailable: - description: Number of maxUnavailable pods. - type: integer - enabled: - description: Enable Pdb policy. - type: boolean - type: object - tolerations: - description: Pod tolerations. - items: - properties: - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - effect: - type: string - type: object - type: array - replicas: - description: Number of desired replicas. - type: integer - nodeAffinity: - description: Node affinity configuration. - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - weight: - type: integer - preference: - properties: - matchFields: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: + type: "string" + volume: + type: "string" + type: "object" + rbd: properties: - matchFields: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: + fsType: + type: "string" + image: + type: "string" + keyring: + type: "string" + monitors: items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: array - type: object - type: object - nodeSelectors: - additionalProperties: - type: string - description: Additional node selectors. - type: object - antiAffinity: - description: Pod anti-affinity configuration. This override - the global value if set. - properties: - host: - description: Indicates the reclaimPolicy property for - the StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: boolean - type: object - zone: - description: Indicates the provisioner property for - the StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: boolean - type: object - type: object - imagePullPolicy: - description: Override image pull policy. - type: string - podLabels: - additionalProperties: - type: string - description: Labels to add to each pod. - type: object - matchLabels: - additionalProperties: - type: string - description: Match labels selectors to add to each pod. - type: object - serviceAccountName: - description: Service account name for the resource. - type: string - type: object - description: Proxy sets. - type: object - setsUpdateStrategy: - description: Sets update strategy. 'RollingUpdate' or 'Parallel'. - Default is 'RollingUpdate'. - type: string - webSocket: - description: WebSocket configuration. - properties: - config: - description: Configuration. - x-kubernetes-preserve-unknown-fields: true - probes: - description: Liveness and readiness probes configuration. - properties: - liveness: - description: Liveness probe configuration. - properties: - periodSeconds: - description: Indicates the period (in seconds) for - the probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period - (in seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) for - the probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - readiness: - description: Readiness probe configuration. - properties: - periodSeconds: - description: Indicates the period (in seconds) for - the probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period - (in seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) for - the probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - type: object - resources: - description: Resources requirements. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - enabled: - description: Enable WebSocket standalone as container in the - proxy pod. - type: boolean - type: object - config: - description: Configuration. - x-kubernetes-preserve-unknown-fields: true - gracePeriod: - description: Termination grace period in seconds. - minimum: 0.0 - type: integer - standaloneFunctionsWorker: - description: Whether or not the functions worker is in standalone - mode. - type: boolean - service: - description: Service configuration. - properties: - additionalPorts: - description: Additional ports to add to the Service. - items: - properties: - targetPort: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - port: - type: integer - nodePort: - type: integer - name: - type: string - appProtocol: - type: string - protocol: - type: string - type: object - type: array - loadBalancerIP: - description: Assign a load balancer IP. - type: string - annotations: - additionalProperties: - type: string - description: Additional annotations to add to the Service. - type: object - type: - description: Service type. Default value is 'ClusterIP' - type: string - enablePlainTextWithTLS: - description: Enable plain text connections even if TLS is - enabled. - type: boolean - type: object - probes: - description: Liveness and readiness probes configuration. - properties: - liveness: - description: Liveness probe configuration. - properties: - periodSeconds: - description: Indicates the period (in seconds) for the - probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period (in - seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) for the - probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - readiness: - description: Readiness probe configuration. - properties: - periodSeconds: - description: Indicates the period (in seconds) for the - probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period (in - seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) for the - probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - type: object - updateStrategy: - description: Strategy for the proxy deployment. - properties: - rollingUpdate: - properties: - maxUnavailable: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - maxSurge: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: - type: string - type: object - resources: - description: Resources requirements. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - overrideResourceName: - description: Override the resource names generated by the operator. - type: string - kafka: - description: Enable Kafka protocol. - properties: - exposePorts: - description: Expose the kafka protocol port. - type: boolean - enabled: - description: Allow the cluster to accept Kafka protocol. Default - is 'false'. - type: boolean - type: object - imagePullSecrets: - description: Image pull secrets. - items: - properties: - name: - type: string - type: object - type: array - image: - description: Override Pulsar image. - type: string - annotations: - additionalProperties: - type: string - description: Annotations to add to each resource (except pods). - type: object - podAnnotations: - additionalProperties: - type: string - description: Annotations to add to pod. - type: object - sidecars: - description: Sidecar containers - items: - properties: - lifecycle: - properties: - postStart: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: + type: "string" + type: "array" + pool: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + user: + type: "string" + type: "object" + scaleIO: + properties: + fsType: + type: "string" + gateway: + type: "string" + protectionDomain: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + sslEnabled: + type: "boolean" + storageMode: + type: "string" + storagePool: + type: "string" + system: + type: "string" + volumeName: + type: "string" + type: "object" + secret: + properties: + defaultMode: + type: "integer" items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + optional: + type: "boolean" + secretName: + type: "string" + type: "object" + storageos: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + secretRef: properties: - value: - type: string name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array - livenessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: + type: "string" + type: "object" + volumeName: + type: "string" + volumeNamespace: + type: "string" + type: "object" + vsphereVolume: properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: + fsType: + type: "string" + storagePolicyID: + type: "string" + storagePolicyName: + type: "string" + volumePath: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + annotations: + additionalProperties: + type: "string" + description: "Annotations to add to each resource (except\ + \ pods)." + type: "object" + antiAffinity: + description: "Pod anti-affinity configuration. This override\ + \ the global value if set." properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: + host: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." properties: - command: - items: - type: string - type: array - type: object - httpGet: + enabled: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "boolean" + type: "object" + zone: + description: "Indicates the provisioner property for\ + \ the StorageClass." properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string + enabled: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "boolean" + type: "object" + type: "object" + config: + description: "Configuration." + x-kubernetes-preserve-unknown-fields: true env: + description: "Additional container env variables." items: properties: + name: + type: "string" value: - type: string + type: "string" valueFrom: properties: - configMapKeyRef: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + gracePeriod: + description: "Termination grace period in seconds." + minimum: 0.0 + type: "integer" + image: + description: "Override Pulsar image." + type: "string" + imagePullPolicy: + description: "Override image pull policy." + type: "string" + imagePullSecrets: + description: "Image pull secrets." + items: + properties: + name: + type: "string" + type: "object" + type: "array" + initContainers: + description: "Init containers" + items: + properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + preStop: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" + livenessProbe: + properties: + exec: properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: properties: - containerName: - type: string - divisor: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: + exec: properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: - properties: - prefix: - type: string - configMapRef: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: + items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - securityContext: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: + 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: + properties: + devicePath: + type: "string" + name: + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + 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" + kafka: + description: "Enable Kafka protocol." properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: + enabled: + description: "Allow the cluster to accept Kafka protocol.\ + \ Default is 'false'." + type: "boolean" + exposePorts: + description: "Expose the kafka protocol port." + type: "boolean" + type: "object" + labels: + additionalProperties: + type: "string" + description: "Labels to add to each resource (except pods)." + type: "object" + matchLabels: + additionalProperties: + type: "string" + description: "Match labels selectors to add to each pod." + type: "object" + minReadySeconds: + description: "Min seconds to wait before considering the\ + \ pod as ready." + type: "integer" + nodeAffinity: + description: "Node affinity configuration." + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: + items: + 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" + requiredDuringSchedulingIgnoredDuringExecution: properties: - add: - items: - type: string - type: array - drop: + nodeSelectorTerms: items: - type: string - type: array - type: object - seLinuxOptions: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + type: "object" + type: "array" + type: "object" + type: "object" + nodeSelectors: + additionalProperties: + type: "string" + description: "Additional node selectors." + type: "object" + overrideResourceName: + description: "Override the resource names generated by the\ + \ operator." + type: "string" + pdb: + description: "Pod disruption budget configuration." + properties: + enabled: + description: "Enable Pdb policy." + type: "boolean" + maxUnavailable: + description: "Number of maxUnavailable pods." + type: "integer" + minAvailable: + description: "Number of minAvailable pods." + type: "integer" + type: "object" + podAnnotations: + additionalProperties: + type: "string" + description: "Annotations to add to pod." + type: "object" + podLabels: + additionalProperties: + type: "string" + description: "Labels to add to each pod." + type: "object" + probes: + description: "Liveness and readiness probes configuration." + properties: + liveness: + description: "Liveness probe configuration." properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds)\ + \ for the probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period\ + \ (in seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds)\ + \ for the probe." + type: "integer" + type: "object" + readiness: + description: "Readiness probe configuration." properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds)\ + \ for the probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period\ + \ (in seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds)\ + \ for the probe." + type: "integer" + type: "object" + type: "object" + replicas: + description: "Number of desired replicas." + type: "integer" resources: + description: "Resources requirements." properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" limits: additionalProperties: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" requests: additionalProperties: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: + type: "object" + type: "object" + securityContext: + description: "Subset of PodSecurityContext for basic UID,\ + \ GID, and volume access control." + properties: + fsGroup: + type: "integer" + fsGroupChangePolicy: + type: "string" + runAsGroup: + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + type: "integer" + supplementalGroups: + items: + type: "integer" + type: "array" + type: "object" + service: + description: "Service configuration." + properties: + additionalPorts: + description: "Additional ports to add to the Service." + items: + properties: + appProtocol: + type: "string" + name: + type: "string" + nodePort: + type: "integer" + port: + type: "integer" + protocol: + type: "string" + targetPort: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "array" + annotations: + additionalProperties: + type: "string" + description: "Additional annotations to add to the Service." + type: "object" + enablePlainTextWithTLS: + description: "Enable plain text connections even if\ + \ TLS is enabled." + type: "boolean" + loadBalancerClass: + description: "Assign a load balancer class." + type: "string" + loadBalancerIP: + description: "Assign a load balancer IP." + type: "string" + type: + description: "Service type. Default value is 'ClusterIP'" + type: "string" + type: "object" + serviceAccountName: + description: "Service account name for the resource." + type: "string" + sidecars: + description: "Sidecar containers" items: properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array - additionalVolumes: - description: Mount additional volumes to the pod. - properties: - volumes: - description: Additional volumes to be mounted to the pod - items: - properties: - hostPath: - properties: - path: - type: string - type: - type: string - type: object - flexVolume: - properties: - readOnly: - type: boolean - options: - additionalProperties: - type: string - type: object - secretRef: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: properties: name: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - gcePersistentDisk: - properties: - readOnly: - type: boolean - pdName: - type: string - partition: - type: integer - fsType: - type: string - type: object - ephemeral: - properties: - volumeClaimTemplate: - properties: - metadata: - properties: - generateName: - type: string - deletionGracePeriodSeconds: - type: integer - deletionTimestamp: - type: string - resourceVersion: - type: string - annotations: - additionalProperties: - type: string - type: object - selfLink: - type: string - creationTimestamp: - type: string - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - ownerReferences: - items: - properties: - blockOwnerDeletion: - type: boolean - uid: - type: string - apiVersion: - type: string - name: - type: string - kind: - type: string - controller: - type: boolean - type: object - type: array - uid: - type: string - generation: - type: integer - name: - type: string - managedFields: - items: - properties: - time: - type: string - apiVersion: - type: string - fieldsV1: - type: object - fieldsType: - type: string - manager: - type: string - operation: - type: string - subresource: - type: string - type: object - type: array - namespace: - type: string - type: object - spec: + type: "string" + value: + type: "string" + valueFrom: properties: - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string - dataSource: + configMapKeyRef: properties: + key: + type: "string" name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - resources: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - dataSourceRef: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + preStop: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" + livenessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: properties: name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - accessModes: - items: - type: string - type: array - volumeMode: - type: string - volumeName: - type: string - type: object - type: object - type: object - scaleIO: - properties: - readOnly: - type: boolean - storageMode: - type: string - storagePool: - type: string - system: - type: string - gateway: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - sslEnabled: - type: boolean - volumeName: - type: string - protectionDomain: - type: string - type: object - csi: - properties: - nodePublishSecretRef: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + name: + type: "string" + ports: + items: properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" name: - type: string - type: object - readOnly: - type: boolean - volumeAttributes: - additionalProperties: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - secret: - properties: - optional: - type: boolean - secretName: - type: string - items: - items: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - name: - type: string - vsphereVolume: - properties: - storagePolicyName: - type: string - storagePolicyID: - type: string - volumePath: - type: string - fsType: - type: string - type: object - gitRepo: - properties: - revision: - type: string - repository: - type: string - directory: - type: string - type: object - glusterfs: - properties: - path: - type: string - readOnly: - type: boolean - endpoints: - type: string - type: object - nfs: - properties: - path: - type: string - readOnly: - type: boolean - server: - type: string - type: object - cinder: - properties: - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - volumeID: - type: string - type: object - flocker: - properties: - datasetUUID: - type: string - datasetName: - type: string - type: object - quobyte: - properties: - group: - type: string - readOnly: - type: boolean - volume: - type: string - user: - type: string - registry: - type: string - tenant: - type: string - type: object - photonPersistentDisk: - properties: - pdID: - type: string - fsType: - type: string - type: object - persistentVolumeClaim: - properties: - readOnly: - type: boolean - claimName: - type: string - type: object - awsElasticBlockStore: - properties: - readOnly: - type: boolean - partition: - type: integer - fsType: - type: string - volumeID: - type: string - type: object - configMap: - properties: - optional: - type: boolean + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: items: - items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - name: - type: string - type: object - storageos: - properties: - readOnly: - type: boolean - volumeNamespace: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - volumeName: - type: string - type: object - portworxVolume: - properties: - readOnly: - type: boolean - fsType: - type: string - volumeID: - type: string - type: object - iscsi: - properties: - readOnly: - type: boolean - chapAuthSession: - type: boolean - lun: - type: integer - targetPortal: - type: string - iscsiInterface: - type: string - portals: - items: - type: string - type: array - initiatorName: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - iqn: - type: string - chapAuthDiscovery: - type: boolean - type: object - rbd: - properties: - readOnly: - type: boolean - pool: - type: string - keyring: - type: string - image: - type: string - secretRef: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: properties: + devicePath: + type: "string" name: - type: string - type: object - monitors: - items: - type: string - type: array - fsType: - type: string - user: - type: string - type: object - azureFile: - properties: - readOnly: - type: boolean - secretName: - type: string - shareName: - type: string - type: object - downwardAPI: - properties: + type: "string" + type: "object" + type: "array" + volumeMounts: items: - items: - properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - projected: - properties: - defaultMode: - type: integer - sources: - items: - properties: - secret: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - name: - type: string - type: object - configMap: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - name: - type: string - type: object - serviceAccountToken: - properties: - path: - type: string - audience: - type: string - expirationSeconds: - type: integer - type: object - downwardAPI: - properties: - items: - items: - properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - type: object - type: object - type: array - type: object - azureDisk: - properties: - readOnly: - type: boolean - diskName: - type: string - cachingMode: - type: string - fsType: - type: string - kind: - type: string - diskURI: - type: string - type: object - cephfs: - properties: - path: - type: string - readOnly: - type: boolean - secretRef: properties: + mountPath: + type: "string" + mountPropagation: + type: "string" name: - type: string - type: object - monitors: - items: - type: string - type: array - secretFile: - type: string - user: - type: string - type: object - emptyDir: - properties: - sizeLimit: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - medium: - type: string - type: object - fc: - properties: - readOnly: - type: boolean - lun: - type: integer - wwids: - items: - type: string - type: array - targetWWNs: - items: - type: string - type: array - fsType: - type: string - type: object - type: object - type: array - mounts: - description: Mount points for the additional volumes - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - type: object - env: - description: Additional container env variables. - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: + 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" + standaloneFunctionsWorker: + description: "Whether or not the functions worker is in\ + \ standalone mode." + type: "boolean" + tolerations: + description: "Pod tolerations." + items: + properties: + effect: + type: "string" + key: + type: "string" + operator: + type: "string" + tolerationSeconds: + type: "integer" + value: + type: "string" + type: "object" + type: "array" + updateStrategy: + description: "Strategy for the proxy deployment." + properties: + rollingUpdate: properties: - containerName: - type: string - divisor: + maxSurge: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: + maxUnavailable: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: + type: "string" + type: "object" + webSocket: + description: "WebSocket configuration." + properties: + config: + description: "Configuration." + x-kubernetes-preserve-unknown-fields: true + enabled: + description: "Enable WebSocket standalone as container\ + \ in the proxy pod." + type: "boolean" + probes: + description: "Liveness and readiness probes configuration." properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - labels: - additionalProperties: - type: string - description: Labels to add to each resource (except pods). - type: object - initContainers: - description: Init containers + liveness: + description: "Liveness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in\ + \ seconds) for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds)\ + \ for the probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace\ + \ period (in seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds)\ + \ for the probe." + type: "integer" + type: "object" + readiness: + description: "Readiness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in\ + \ seconds) for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds)\ + \ for the probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace\ + \ period (in seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds)\ + \ for the probe." + type: "integer" + type: "object" + type: "object" + resources: + description: "Resources requirements." + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + type: "object" + type: "object" + description: "Proxy sets." + type: "object" + setsUpdateStrategy: + description: "Sets update strategy. 'RollingUpdate' or 'Parallel'.\ + \ Default is 'RollingUpdate'." + type: "string" + sidecars: + description: "Sidecar containers" items: properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" lifecycle: properties: postStart: properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + type: "object" + preStop: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" livenessProbe: properties: - periodSeconds: - type: integer + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" failureThreshold: - type: integer - initialDelaySeconds: - type: integer + type: "integer" grpc: properties: port: - type: integer + type: "integer" service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer + scheme: + type: "string" + type: "object" initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object + type: "integer" + periodSeconds: + type: "integer" successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer + type: "integer" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: + type: "integer" + type: "object" + name: + type: "string" + ports: items: properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: properties: - periodSeconds: - type: integer + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" failureThreshold: - type: integer - initialDelaySeconds: - type: integer + type: "integer" grpc: properties: port: - type: integer + type: "integer" service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: + type: "string" + type: "object" + httpGet: properties: host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: + type: "string" + httpHeaders: items: - type: string - type: array - type: object - httpGet: - properties: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" path: - type: string + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true scheme: - type: string + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: items: properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: properties: - optional: - type: boolean name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" securityContext: properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object allowPrivilegeEscalation: - type: boolean + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" capabilities: properties: add: items: - type: string - type: array + type: "string" + type: "array" drop: items: - type: string - type: array - type: object + 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: properties: + level: + type: "string" role: - type: string + type: "string" type: - type: string + type: "string" user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string + type: "string" + type: "object" seccompProfile: properties: - type: - type: string localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: properties: devicePath: - type: string + type: "string" name: - type: string - type: object - type: array - type: object - type: array - pdb: - description: Pod disruption budget configuration. - properties: - maxUnavailable: - description: Number of maxUnavailable pods. - type: integer - enabled: - description: Enable Pdb policy. - type: boolean - type: object + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + 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" + standaloneFunctionsWorker: + description: "Whether or not the functions worker is in standalone\ + \ mode." + type: "boolean" tolerations: - description: Pod tolerations. + description: "Pod tolerations." items: properties: + effect: + type: "string" key: - type: string + type: "string" operator: - type: string + type: "string" tolerationSeconds: - type: integer + type: "integer" value: - type: string - effect: - type: string - type: object - type: array - replicas: - description: Number of desired replicas. - type: integer - nodeAffinity: - description: Node affinity configuration. + type: "string" + type: "object" + type: "array" + updateStrategy: + description: "Strategy for the proxy deployment." properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - weight: - type: integer - preference: - properties: - matchFields: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: + rollingUpdate: properties: - nodeSelectorTerms: - items: - properties: - matchFields: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: array - type: object - type: object - nodeSelectors: - additionalProperties: - type: string - description: Additional node selectors. - type: object - antiAffinity: - description: Pod anti-affinity configuration. This override the - global value if set. + maxSurge: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + maxUnavailable: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: + type: "string" + type: "object" + webSocket: + description: "WebSocket configuration." properties: - host: - description: Indicates the reclaimPolicy property for the - StorageClass. + config: + description: "Configuration." + x-kubernetes-preserve-unknown-fields: true + enabled: + description: "Enable WebSocket standalone as container in\ + \ the proxy pod." + type: "boolean" + probes: + description: "Liveness and readiness probes configuration." properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - zone: - description: Indicates the provisioner property for the StorageClass. + liveness: + description: "Liveness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds) for\ + \ the probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period\ + \ (in seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds) for\ + \ the probe." + type: "integer" + type: "object" + readiness: + description: "Readiness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds) for\ + \ the probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period\ + \ (in seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds) for\ + \ the probe." + type: "integer" + type: "object" + type: "object" + resources: + description: "Resources requirements." properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - type: object - imagePullPolicy: - description: Override image pull policy. - type: string - podLabels: - additionalProperties: - type: string - description: Labels to add to each pod. - type: object - matchLabels: - additionalProperties: - type: string - description: Match labels selectors to add to each pod. - type: object - serviceAccountName: - description: Service account name for the resource. - type: string - type: object - type: object + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + type: "object" + type: "object" + type: "object" status: properties: - lastApplied: - description: Last spec applied. - type: string conditions: description: |- Conditions: 1. Condition Ready: possible status are True or False. If False, the reason contains the error message. items: properties: - status: - type: string - reason: - type: string lastTransitionTime: - type: string + type: "string" + message: + type: "string" observedGeneration: - type: integer + type: "integer" + reason: + type: "string" + status: + type: "string" type: - type: string - message: - type: string - type: object - type: array - type: object - type: object + type: "string" + type: "object" + type: "array" + lastApplied: + description: "Last spec applied." + type: "string" + type: "object" + type: "object" served: true storage: true subresources: diff --git a/helm/kaap/crds/pulsarclusters.kaap.oss.datastax.com-v1.yml b/helm/kaap/crds/pulsarclusters.kaap.oss.datastax.com-v1.yml index 416bfbcc..150c32a1 100644 --- a/helm/kaap/crds/pulsarclusters.kaap.oss.datastax.com-v1.yml +++ b/helm/kaap/crds/pulsarclusters.kaap.oss.datastax.com-v1.yml @@ -1,20191 +1,22081 @@ # Generated by Fabric8 CRDGenerator, manual edits might get overwritten! -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition +apiVersion: "apiextensions.k8s.io/v1" +kind: "CustomResourceDefinition" metadata: - name: pulsarclusters.kaap.oss.datastax.com + name: "pulsarclusters.kaap.oss.datastax.com" spec: - group: kaap.oss.datastax.com + group: "kaap.oss.datastax.com" names: - kind: PulsarCluster - plural: pulsarclusters + kind: "PulsarCluster" + plural: "pulsarclusters" shortNames: - - pulsar - singular: pulsarcluster - scope: Namespaced + - "pulsar" + singular: "pulsarcluster" + scope: "Namespaced" versions: - - name: v1beta1 + - name: "v1beta1" schema: openAPIV3Schema: properties: spec: properties: - global: + autorecovery: properties: - components: - description: Pulsar cluster components names. - properties: - brokerBaseName: - description: Broker base name. Default value is 'broker'. - type: string - zookeeperBaseName: - description: Zookeeper base name. Default value is 'zookeeper'. - type: string - functionsWorkerBaseName: - description: Functions Worker base name. Default value is - 'function'. - type: string - autorecoveryBaseName: - description: Autorecovery base name. Default value is 'autorecovery'. - type: string - bookkeeperBaseName: - description: BookKeeper base name. Default value is 'bookkeeper'. - type: string - bastionBaseName: - description: Bastion base name. Default value is 'bastion'. - type: string - proxyBaseName: - description: Proxy base name. Default value is 'proxy'. - type: string - type: object - dnsConfig: - description: | - Override default DNS config for each pod. Note that because we use fully qualified service names for intra - cluster networking with Pulsar components, we set the ndots value to 4 (the default is 5). This prevents - unnecessary DNS lookups for the fully qualified service names that would be guaranteed to result in NXDOMAIN. - For example, the name 'pulsar-broker.pulsar.svc.cluster.local' has 4 dots, so it would be resolved directly - instead of appending the configured search domains. - More info here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config. - properties: - nameservers: - items: - type: string - type: array - searches: - items: - type: string - type: array - options: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - type: object - dnsName: - description: Public dns name for the cluster's load balancer. - type: string - kubernetesClusterDomain: - description: | - The domain name for your kubernetes cluster. - This domain is documented here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#a-aaaa-records-1 . - It's used to fully qualify service names when configuring Pulsar. - The default value is 'cluster.local'. - type: string - priorityClassName: - description: Priority class name to attach to each pod. - type: string - name: - description: Name of the Pulsar cluster spec. This is used as - a prefix for managed Kubernetes resources. - type: string - storage: - description: Storage configuration. - properties: - storageClass: - description: Indicates if a StorageClass is used. The operator - will create the StorageClass if needed. - properties: - extraParams: - additionalProperties: - type: string - description: Adds extra parameters for the StorageClass. - type: object - provisioner: - description: Indicates the provisioner property for the - StorageClass. - type: string - type: - description: Indicates the 'type' parameter for the StorageClass. - type: string - fsType: - description: Indicates the 'fsType' parameter for the - StorageClass. - type: string - reclaimPolicy: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: string - type: object - existingStorageClassName: - description: Indicates if an already existing storage class - should be used. - type: string - type: object - tls: - description: TLS configuration for the cluster. + annotations: + additionalProperties: + type: "string" + description: "Annotations to add to each resource (except pods)." + type: "object" + antiAffinity: + description: "Pod anti-affinity configuration. This override the\ + \ global value if set." properties: - ssCa: - description: "TLS configurations used by additional components,\ - \ such as the Bastion component." + host: + description: "Indicates the reclaimPolicy property for the\ + \ StorageClass." properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string enabled: - description: Enable TLS. - type: boolean - type: object - certProvisioner: - description: Certificate provisioner configuration. + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + zone: + description: "Indicates the provisioner property for the StorageClass." properties: - selfSigned: - description: Self signed certificate provisioner configuration. + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + type: "object" + config: + description: "Configuration." + x-kubernetes-preserve-unknown-fields: true + env: + description: "Additional container env variables." + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + gracePeriod: + description: "Termination grace period in seconds." + minimum: 0.0 + type: "integer" + image: + description: "Override Pulsar image." + type: "string" + imagePullPolicy: + description: "Override image pull policy." + type: "string" + imagePullSecrets: + description: "Image pull secrets." + items: + properties: + name: + type: "string" + type: "object" + type: "array" + initContainers: + description: "Init containers" + items: + properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: properties: - functionsWorker: - description: Functions worker self signed certificate - config. + name: + type: "string" + value: + type: "string" + valueFrom: properties: - privateKey: - description: Cert-manager options for generating - the private key. + configMapKeyRef: properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - includeDns: - description: Include dns name in the DNS names covered - by the certificate. - type: boolean - privateKey: - description: Cert-manager options for generating the - private key. - properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - autorecovery: - description: Autorecovery self signed certificate - config. - properties: - privateKey: - description: Cert-manager options for generating - the private key. + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - bookkeeper: - description: Bookkeeper self signed certificate config. - properties: - privateKey: - description: Cert-manager options for generating - the private key. + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - proxy: - description: Proxy self signed certificate config. - properties: - privateKey: - description: Cert-manager options for generating - the private key. + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - zookeeper: - description: Zookeeper self signed certificate config. + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: properties: - privateKey: - description: Cert-manager options for generating - the private key. - properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - broker: - description: Broker self signed certificate config. + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: properties: - privateKey: - description: Cert-manager options for generating - the private key. - properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - perComponent: - description: Generate a different certificate for - each component. - type: boolean - enabled: - description: "Generate self signed certificates for\ - \ broker, proxy and functions worker." - type: boolean - caSecretName: - description: Secret where to store the root CA certificate. - type: string - type: object - type: object - autorecovery: - description: TLS configurations related to the Autorecovery - component. - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - proxyResourceSets: - additionalProperties: - properties: - enabledWithBroker: - description: Enable TLS for the proxy to broker connections. - type: boolean - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - description: TLS configurations related to the Proxy resource - sets. - type: object - defaultSecretName: - description: Secret name used by each component to load TLS - certificates. Each component can load a different secret - by setting the 'secretName' entry in the tls component spec. - type: string - enabled: - description: Deprecated. Use the 'enabled' field in each component - spec instead. - type: boolean - caPath: - description: Path in the container filesystem where the TLS - CA certificates are retrieved. It has to point to a certificate - file. The default value is /etc/ssl/certs/ca-certificates.crt. - type: string - zookeeper: - description: TLS configurations related to the ZooKeeper component. - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - brokerResourceSets: - additionalProperties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" + lifecycle: properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - description: TLS configurations related to the Broker resource - sets. - type: object - functionsWorker: - description: TLS configurations related to the Functions worker - component. - properties: - enabledWithBroker: - description: Enable TLS for the functions worker to broker - connections. - type: boolean - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - broker: - description: TLS configurations related to the Broker component. - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - proxy: - description: TLS configurations related to the Proxy component. - properties: - enabledWithBroker: - description: Enable TLS for the proxy to broker connections. - type: boolean - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - bookkeeper: - description: TLS configurations related to the BookKeeper - component. - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - type: object - clusterName: - description: Corresponds to the 'clusterName' field in the broker.conf. Defaults - to the value of the 'name' field - type: string - restartOnConfigMapChange: - description: | - By default, Kubernetes will not restart pods when only their configmap is changed. This setting will restart pods when their configmap is changed using an annotation that calculates the checksum of the configmap. - type: boolean - image: - description: Default Pulsar image to use. Any components can be - configured to use a different image. - type: string - auth: - description: | - Authentication and authorization configuration. - properties: - token: - description: Token based authentication configuration. - properties: - privateKeyFile: - description: Private key file name stored in the Secret. - Default is 'my-private.key' - type: string - initialize: - description: Initialize Secrets with new pair of keys - and tokens for the super user roles. The generated Secret - name is 'token-'. - type: boolean - superUserRoles: - description: Super user roles. - items: - type: string - type: array - proxyRoles: - description: Proxy roles. - items: - type: string - type: array - publicKeyFile: - description: Public key file name stored in the Secret. - Default is 'my-public.key' - type: string - type: object - enabled: - description: Enable authentication in the cluster. Default - is 'false'. - type: boolean - type: object - persistence: - description: | - If persistence is enabled, components that has state will be deployed with PersistentVolumeClaims, otherwise, for test purposes, they will be deployed with emptyDir - type: boolean - racks: - additionalProperties: - properties: - host: - description: Enable rack rules based on the hostname of - the node. - properties: - enabled: - description: Enable the rack affinity rules. - type: boolean - requireRackAntiAffinity: - description: "Indicates if the podAntiAffinity rules\ - \ will be enforced. Default is true. If required,\ - \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - requireRackAffinity: - description: "Indicates if the podAffinity rules will\ - \ be enforced. Default is false. If required, the\ - \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - type: object - zone: - description: Enable rack rules based on the failure domain - (availability zone) of the node. - properties: - enableHostAntiAffinity: - description: "Enable the host anti affinity. If set,\ - \ all the pods of the same rack will deployed on different\ - \ nodes of the same zone.Default is true." - type: boolean - requireRackHostAntiAffinity: - description: "Indicates if the podAntiAffinity rules\ - \ will be enforced for the host. Default is true.\ - \ If required, the affinity rule will be enforced\ - \ using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - enabled: - description: Enable the rack affinity rules. - type: boolean - requireRackAntiAffinity: - description: "Indicates if the podAntiAffinity rules\ - \ will be enforced. Default is true. If required,\ - \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - requireRackAffinity: - description: "Indicates if the podAffinity rules will\ - \ be enforced. Default is false. If required, the\ - \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - type: object - type: object - description: Racks configuration. - type: object - resourceSets: - additionalProperties: - properties: - rack: - description: "Place this resource set to a specific rack,\ - \ defined at .global.racks." - type: string - type: object - description: Resource sets. - type: object - nodeSelectors: - additionalProperties: - type: string - description: "Global node selector. If set, this will apply to\ - \ all the components." - type: object - antiAffinity: - description: Pod anti affinity configuration. - properties: - host: - description: Indicates the reclaimPolicy property for the - StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - zone: - description: Indicates the provisioner property for the StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - type: object - zookeeperPlainSslStorePassword: - description: "Use plain password in zookeeper server and client\ - \ configuration. Default is false. Old versions of Apache Zookeeper\ - \ (<3.8.0) does not support getting password from file. In that\ - \ case, set this to true." - type: boolean - imagePullPolicy: - description: Default Pulsar image pull policy to use. Any components - can be configured to use a different image pull policy. Default - value is 'IfNotPresent'. - type: string - required: - - name - type: object - proxy: - properties: - sets: - additionalProperties: - properties: - webSocket: - description: WebSocket configuration. - properties: - config: - description: Configuration. - x-kubernetes-preserve-unknown-fields: true - probes: - description: Liveness and readiness probes configuration. + postStart: properties: - liveness: - description: Liveness probe configuration. + exec: properties: - periodSeconds: - description: Indicates the period (in seconds) - for the probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in - seconds) for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace - period (in seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) - for the probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - readiness: - description: Readiness probe configuration. + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: properties: - periodSeconds: - description: Indicates the period (in seconds) - for the probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in - seconds) for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace - period (in seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) - for the probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - type: object - resources: - description: Resources requirements. + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + preStop: properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - enabled: - description: Enable WebSocket standalone as container - in the proxy pod. - type: boolean - type: object - config: - description: Configuration. - x-kubernetes-preserve-unknown-fields: true - gracePeriod: - description: Termination grace period in seconds. - minimum: 0.0 - type: integer - standaloneFunctionsWorker: - description: Whether or not the functions worker is in standalone - mode. - type: boolean - service: - description: Service configuration. - properties: - additionalPorts: - description: Additional ports to add to the Service. - items: - properties: - targetPort: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - port: - type: integer - nodePort: - type: integer - name: - type: string - appProtocol: - type: string - protocol: - type: string - type: object - type: array - loadBalancerIP: - description: Assign a load balancer IP. - type: string - annotations: - additionalProperties: - type: string - description: Additional annotations to add to the Service. - type: object - type: - description: Service type. Default value is 'ClusterIP' - type: string - enablePlainTextWithTLS: - description: Enable plain text connections even if TLS - is enabled. - type: boolean - type: object - probes: - description: Liveness and readiness probes configuration. + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" + livenessProbe: properties: - liveness: - description: Liveness probe configuration. + exec: properties: - periodSeconds: - description: Indicates the period (in seconds) for - the probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period - (in seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) - for the probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - readiness: - description: Readiness probe configuration. + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: properties: - periodSeconds: - description: Indicates the period (in seconds) for - the probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period - (in seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) - for the probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - type: object - updateStrategy: - description: Strategy for the proxy deployment. - properties: - rollingUpdate: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: properties: - maxUnavailable: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - maxSurge: + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: - type: string - type: object - resources: - description: Resources requirements. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - overrideResourceName: - description: Override the resource names generated by the - operator. - type: string - kafka: - description: Enable Kafka protocol. - properties: - exposePorts: - description: Expose the kafka protocol port. - type: boolean - enabled: - description: Allow the cluster to accept Kafka protocol. - Default is 'false'. - type: boolean - type: object - imagePullSecrets: - description: Image pull secrets. + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + name: + type: "string" + ports: items: properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" name: - type: string - type: object - type: array - image: - description: Override Pulsar image. - type: string - annotations: - additionalProperties: - type: string - description: Annotations to add to each resource (except - pods). - type: object - podAnnotations: - additionalProperties: - type: string - description: Annotations to add to pod. - type: object - sidecars: - description: Sidecar containers - items: - properties: - lifecycle: - properties: - postStart: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - preStop: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array - livenessProbe: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: + items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: + 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: + properties: + devicePath: + type: "string" + name: + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + 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" + labels: + additionalProperties: + type: "string" + description: "Labels to add to each resource (except pods)." + type: "object" + matchLabels: + additionalProperties: + type: "string" + description: "Match labels selectors to add to each pod." + type: "object" + minReadySeconds: + description: "Min seconds to wait before considering the pod as\ + \ ready." + type: "integer" + nodeAffinity: + description: "Node affinity configuration." + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: properties: - command: + key: + type: "string" + operator: + type: "string" + values: items: - type: string - type: array - type: object - httpGet: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: + items: properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: + key: + type: "string" + operator: + type: "string" + values: items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: + type: "string" + type: "array" + type: "object" + type: "array" + type: "object" + weight: + type: "integer" + type: "object" + type: "array" + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: + key: + type: "string" + operator: + type: "string" + values: items: - type: string - type: array - type: object - httpGet: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: + items: properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: + key: + type: "string" + operator: + type: "string" + values: items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: + type: "string" + type: "array" + type: "object" + type: "array" + type: "object" + type: "array" + type: "object" + type: "object" + nodeSelectors: + additionalProperties: + type: "string" + description: "Additional node selectors." + type: "object" + podAnnotations: + additionalProperties: + type: "string" + description: "Annotations to add to pod." + type: "object" + podLabels: + additionalProperties: + type: "string" + description: "Labels to add to each pod." + type: "object" + replicas: + description: "Number of desired replicas." + type: "integer" + resources: + description: "Resources requirements." + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + securityContext: + description: "Subset of PodSecurityContext for basic UID, GID,\ + \ and volume access control." + properties: + fsGroup: + type: "integer" + fsGroupChangePolicy: + type: "string" + runAsGroup: + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + type: "integer" + supplementalGroups: + items: + type: "integer" + type: "array" + type: "object" + serviceAccountName: + description: "Service account name for the resource." + type: "string" + sidecars: + description: "Sidecar containers" + items: + properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: + configMapKeyRef: properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: properties: - command: - items: - type: string - type: array - type: object - httpGet: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: + containerName: + type: "string" + divisor: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: - properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: - properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - securityContext: - properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: - properties: - add: - items: - type: string - type: array - drop: - items: - type: string - type: array - type: object - seLinuxOptions: - properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: + resource: + type: "string" + type: "object" + secretKeyRef: properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: properties: - limits: - additionalProperties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: - items: + type: "object" + type: "object" + preStop: + properties: + exec: properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array - additionalVolumes: - description: Mount additional volumes to the pod. - properties: - volumes: - description: Additional volumes to be mounted to the - pod - items: - properties: - hostPath: - properties: - path: - type: string - type: - type: string - type: object - flexVolume: - properties: - readOnly: - type: boolean - options: - additionalProperties: - type: string - type: object - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - gcePersistentDisk: - properties: - readOnly: - type: boolean - pdName: - type: string - partition: - type: integer - fsType: - type: string - type: object - ephemeral: - properties: - volumeClaimTemplate: - properties: - metadata: - properties: - generateName: - type: string - deletionGracePeriodSeconds: - type: integer - deletionTimestamp: - type: string - resourceVersion: - type: string - annotations: - additionalProperties: - type: string - type: object - selfLink: - type: string - creationTimestamp: - type: string - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - ownerReferences: - items: - properties: - blockOwnerDeletion: - type: boolean - uid: - type: string - apiVersion: - type: string - name: - type: string - kind: - type: string - controller: - type: boolean - type: object - type: array - uid: - type: string - generation: - type: integer - name: - type: string - managedFields: - items: - properties: - time: - type: string - apiVersion: - type: string - fieldsV1: - type: object - fieldsType: - type: string - manager: - type: string - operation: - type: string - subresource: - type: string - type: object - type: array - namespace: - type: string - type: object - spec: - properties: - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string - dataSource: - properties: - name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - dataSourceRef: - properties: - name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - accessModes: - items: - type: string - type: array - volumeMode: - type: string - volumeName: - type: string - type: object - type: object - type: object - scaleIO: - properties: - readOnly: - type: boolean - storageMode: - type: string - storagePool: - type: string - system: - type: string - gateway: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - sslEnabled: - type: boolean - volumeName: - type: string - protectionDomain: - type: string - type: object - csi: - properties: - nodePublishSecretRef: - properties: - name: - type: string - type: object - readOnly: - type: boolean - volumeAttributes: - additionalProperties: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - secret: - properties: - optional: - type: boolean - secretName: - type: string + command: items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - name: - type: string - vsphereVolume: - properties: - storagePolicyName: - type: string - storagePolicyID: - type: string - volumePath: - type: string - fsType: - type: string - type: object - gitRepo: - properties: - revision: - type: string - repository: - type: string - directory: - type: string - type: object - glusterfs: - properties: - path: - type: string - readOnly: - type: boolean - endpoints: - type: string - type: object - nfs: - properties: - path: - type: string - readOnly: - type: boolean - server: - type: string - type: object - cinder: - properties: - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - volumeID: - type: string - type: object - flocker: - properties: - datasetUUID: - type: string - datasetName: - type: string - type: object - quobyte: - properties: - group: - type: string - readOnly: - type: boolean - volume: - type: string - user: - type: string - registry: - type: string - tenant: - type: string - type: object - photonPersistentDisk: - properties: - pdID: - type: string - fsType: - type: string - type: object - persistentVolumeClaim: - properties: - readOnly: - type: boolean - claimName: - type: string - type: object - awsElasticBlockStore: - properties: - readOnly: - type: boolean - partition: - type: integer - fsType: - type: string - volumeID: - type: string - type: object - configMap: - properties: - optional: - type: boolean + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - name: - type: string - type: object - storageos: - properties: - readOnly: - type: boolean - volumeNamespace: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - volumeName: - type: string - type: object - portworxVolume: - properties: - readOnly: - type: boolean - fsType: - type: string - volumeID: - type: string - type: object - iscsi: - properties: - readOnly: - type: boolean - chapAuthSession: - type: boolean - lun: - type: integer - targetPortal: - type: string - iscsiInterface: - type: string - portals: - items: - type: string - type: array - initiatorName: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - iqn: - type: string - chapAuthDiscovery: - type: boolean - type: object - rbd: - properties: - readOnly: - type: boolean - pool: - type: string - keyring: - type: string - image: - type: string - secretRef: properties: name: - type: string - type: object - monitors: - items: - type: string - type: array - fsType: - type: string - user: - type: string - type: object - azureFile: - properties: - readOnly: - type: boolean - secretName: - type: string - shareName: - type: string - type: object - downwardAPI: - properties: - items: - items: - properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - projected: - properties: - defaultMode: - type: integer - sources: - items: - properties: - secret: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - name: - type: string - type: object - configMap: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - name: - type: string - type: object - serviceAccountToken: - properties: - path: - type: string - audience: - type: string - expirationSeconds: - type: integer - type: object - downwardAPI: - properties: - items: - items: - properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - type: object - type: object - type: array - type: object - azureDisk: - properties: - readOnly: - type: boolean - diskName: - type: string - cachingMode: - type: string - fsType: - type: string - kind: - type: string - diskURI: - type: string - type: object - cephfs: - properties: - path: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - monitors: - items: - type: string - type: array - secretFile: - type: string - user: - type: string - type: object - emptyDir: - properties: - sizeLimit: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - medium: - type: string - type: object - fc: - properties: - readOnly: - type: boolean - lun: - type: integer - wwids: - items: - type: string - type: array - targetWWNs: - items: - type: string - type: array - fsType: - type: string - type: object - type: object - type: array - mounts: - description: Mount points for the additional volumes - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - type: object - env: - description: Additional container env variables. - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - labels: - additionalProperties: - type: string - description: Labels to add to each resource (except pods). - type: object - initContainers: - description: Init containers - items: - properties: - lifecycle: - properties: - postStart: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array - livenessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: - properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: - properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - securityContext: - properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: - properties: - add: - items: - type: string - type: array - drop: - items: - type: string - type: array - type: object - seLinuxOptions: - properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: - properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array - pdb: - description: Pod disruption budget configuration. - properties: - maxUnavailable: - description: Number of maxUnavailable pods. - type: integer - enabled: - description: Enable Pdb policy. - type: boolean - type: object - tolerations: - description: Pod tolerations. - items: - properties: - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - effect: - type: string - type: object - type: array - replicas: - description: Number of desired replicas. - type: integer - nodeAffinity: - description: Node affinity configuration. - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - weight: - type: integer - preference: - properties: - matchFields: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchFields: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: array - type: object - type: object - nodeSelectors: - additionalProperties: - type: string - description: Additional node selectors. - type: object - antiAffinity: - description: Pod anti-affinity configuration. This override - the global value if set. - properties: - host: - description: Indicates the reclaimPolicy property for - the StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: boolean - type: object - zone: - description: Indicates the provisioner property for - the StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: boolean - type: object - type: object - imagePullPolicy: - description: Override image pull policy. - type: string - podLabels: - additionalProperties: - type: string - description: Labels to add to each pod. - type: object - matchLabels: - additionalProperties: - type: string - description: Match labels selectors to add to each pod. - type: object - serviceAccountName: - description: Service account name for the resource. - type: string - type: object - description: Proxy sets. - type: object - setsUpdateStrategy: - description: Sets update strategy. 'RollingUpdate' or 'Parallel'. - Default is 'RollingUpdate'. - type: string - webSocket: - description: WebSocket configuration. - properties: - config: - description: Configuration. - x-kubernetes-preserve-unknown-fields: true - probes: - description: Liveness and readiness probes configuration. - properties: - liveness: - description: Liveness probe configuration. - properties: - periodSeconds: - description: Indicates the period (in seconds) for - the probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period - (in seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) for - the probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - readiness: - description: Readiness probe configuration. - properties: - periodSeconds: - description: Indicates the period (in seconds) for - the probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period - (in seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) for - the probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - type: object - resources: - description: Resources requirements. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - enabled: - description: Enable WebSocket standalone as container in the - proxy pod. - type: boolean - type: object - config: - description: Configuration. - x-kubernetes-preserve-unknown-fields: true - gracePeriod: - description: Termination grace period in seconds. - minimum: 0.0 - type: integer - standaloneFunctionsWorker: - description: Whether or not the functions worker is in standalone - mode. - type: boolean - service: - description: Service configuration. - properties: - additionalPorts: - description: Additional ports to add to the Service. - items: - properties: - targetPort: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - port: - type: integer - nodePort: - type: integer - name: - type: string - appProtocol: - type: string - protocol: - type: string - type: object - type: array - loadBalancerIP: - description: Assign a load balancer IP. - type: string - annotations: - additionalProperties: - type: string - description: Additional annotations to add to the Service. - type: object - type: - description: Service type. Default value is 'ClusterIP' - type: string - enablePlainTextWithTLS: - description: Enable plain text connections even if TLS is - enabled. - type: boolean - type: object - probes: - description: Liveness and readiness probes configuration. - properties: - liveness: - description: Liveness probe configuration. - properties: - periodSeconds: - description: Indicates the period (in seconds) for the - probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period (in - seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) for the - probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - readiness: - description: Readiness probe configuration. - properties: - periodSeconds: - description: Indicates the period (in seconds) for the - probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period (in - seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) for the - probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - type: object - updateStrategy: - description: Strategy for the proxy deployment. - properties: - rollingUpdate: - properties: - maxUnavailable: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - maxSurge: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: - type: string - type: object - resources: - description: Resources requirements. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - overrideResourceName: - description: Override the resource names generated by the operator. - type: string - kafka: - description: Enable Kafka protocol. - properties: - exposePorts: - description: Expose the kafka protocol port. - type: boolean - enabled: - description: Allow the cluster to accept Kafka protocol. Default - is 'false'. - type: boolean - type: object - imagePullSecrets: - description: Image pull secrets. - items: - properties: - name: - type: string - type: object - type: array - image: - description: Override Pulsar image. - type: string - annotations: - additionalProperties: - type: string - description: Annotations to add to each resource (except pods). - type: object - podAnnotations: - additionalProperties: - type: string - description: Annotations to add to pod. - type: object - sidecars: - description: Sidecar containers - items: - properties: - lifecycle: - properties: - postStart: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array - livenessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: - properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: - properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - securityContext: - properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: - properties: - add: - items: - type: string - type: array - drop: - items: - type: string - type: array - type: object - seLinuxOptions: - properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: - properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array - additionalVolumes: - description: Mount additional volumes to the pod. - properties: - volumes: - description: Additional volumes to be mounted to the pod - items: - properties: - hostPath: - properties: - path: - type: string - type: - type: string - type: object - flexVolume: - properties: - readOnly: - type: boolean - options: - additionalProperties: - type: string - type: object - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - gcePersistentDisk: - properties: - readOnly: - type: boolean - pdName: - type: string - partition: - type: integer - fsType: - type: string - type: object - ephemeral: - properties: - volumeClaimTemplate: - properties: - metadata: - properties: - generateName: - type: string - deletionGracePeriodSeconds: - type: integer - deletionTimestamp: - type: string - resourceVersion: - type: string - annotations: - additionalProperties: - type: string - type: object - selfLink: - type: string - creationTimestamp: - type: string - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - ownerReferences: - items: - properties: - blockOwnerDeletion: - type: boolean - uid: - type: string - apiVersion: - type: string - name: - type: string - kind: - type: string - controller: - type: boolean - type: object - type: array - uid: - type: string - generation: - type: integer - name: - type: string - managedFields: - items: - properties: - time: - type: string - apiVersion: - type: string - fieldsV1: - type: object - fieldsType: - type: string - manager: - type: string - operation: - type: string - subresource: - type: string - type: object - type: array - namespace: - type: string - type: object - spec: - properties: - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string - dataSource: - properties: - name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - dataSourceRef: - properties: - name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - accessModes: - items: - type: string - type: array - volumeMode: - type: string - volumeName: - type: string - type: object - type: object - type: object - scaleIO: - properties: - readOnly: - type: boolean - storageMode: - type: string - storagePool: - type: string - system: - type: string - gateway: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - sslEnabled: - type: boolean - volumeName: - type: string - protectionDomain: - type: string - type: object - csi: - properties: - nodePublishSecretRef: - properties: - name: - type: string - type: object - readOnly: - type: boolean - volumeAttributes: - additionalProperties: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - secret: - properties: - optional: - type: boolean - secretName: - type: string - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - name: - type: string - vsphereVolume: - properties: - storagePolicyName: - type: string - storagePolicyID: - type: string - volumePath: - type: string - fsType: - type: string - type: object - gitRepo: - properties: - revision: - type: string - repository: - type: string - directory: - type: string - type: object - glusterfs: - properties: - path: - type: string - readOnly: - type: boolean - endpoints: - type: string - type: object - nfs: - properties: - path: - type: string - readOnly: - type: boolean - server: - type: string - type: object - cinder: - properties: - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - volumeID: - type: string - type: object - flocker: - properties: - datasetUUID: - type: string - datasetName: - type: string - type: object - quobyte: - properties: - group: - type: string - readOnly: - type: boolean - volume: - type: string - user: - type: string - registry: - type: string - tenant: - type: string - type: object - photonPersistentDisk: - properties: - pdID: - type: string - fsType: - type: string - type: object - persistentVolumeClaim: - properties: - readOnly: - type: boolean - claimName: - type: string - type: object - awsElasticBlockStore: - properties: - readOnly: - type: boolean - partition: - type: integer - fsType: - type: string - volumeID: - type: string - type: object - configMap: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - name: - type: string - type: object - storageos: - properties: - readOnly: - type: boolean - volumeNamespace: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - volumeName: - type: string - type: object - portworxVolume: - properties: - readOnly: - type: boolean - fsType: - type: string - volumeID: - type: string - type: object - iscsi: - properties: - readOnly: - type: boolean - chapAuthSession: - type: boolean - lun: - type: integer - targetPortal: - type: string - iscsiInterface: - type: string - portals: - items: - type: string - type: array - initiatorName: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - iqn: - type: string - chapAuthDiscovery: - type: boolean - type: object - rbd: - properties: - readOnly: - type: boolean - pool: - type: string - keyring: - type: string - image: - type: string - secretRef: - properties: - name: - type: string - type: object - monitors: - items: - type: string - type: array - fsType: - type: string - user: - type: string - type: object - azureFile: - properties: - readOnly: - type: boolean - secretName: - type: string - shareName: - type: string - type: object - downwardAPI: - properties: - items: - items: - properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - projected: - properties: - defaultMode: - type: integer - sources: - items: - properties: - secret: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - name: - type: string - type: object - configMap: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - name: - type: string - type: object - serviceAccountToken: - properties: - path: - type: string - audience: - type: string - expirationSeconds: - type: integer - type: object - downwardAPI: - properties: - items: - items: - properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - type: object - type: object - type: array - type: object - azureDisk: - properties: - readOnly: - type: boolean - diskName: - type: string - cachingMode: - type: string - fsType: - type: string - kind: - type: string - diskURI: - type: string - type: object - cephfs: - properties: - path: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - monitors: - items: - type: string - type: array - secretFile: - type: string - user: - type: string - type: object - emptyDir: - properties: - sizeLimit: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - medium: - type: string - type: object - fc: - properties: - readOnly: - type: boolean - lun: - type: integer - wwids: - items: - type: string - type: array - targetWWNs: - items: - type: string - type: array - fsType: - type: string - type: object - type: object - type: array - mounts: - description: Mount points for the additional volumes - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - type: object - env: - description: Additional container env variables. - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - labels: - additionalProperties: - type: string - description: Labels to add to each resource (except pods). - type: object - initContainers: - description: Init containers - items: - properties: - lifecycle: - properties: - postStart: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array - livenessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: - properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: - properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - securityContext: - properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: - properties: - add: - items: - type: string - type: array - drop: - items: - type: string - type: array - type: object - seLinuxOptions: - properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: - properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array - pdb: - description: Pod disruption budget configuration. - properties: - maxUnavailable: - description: Number of maxUnavailable pods. - type: integer - enabled: - description: Enable Pdb policy. - type: boolean - type: object - tolerations: - description: Pod tolerations. - items: - properties: - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - effect: - type: string - type: object - type: array - replicas: - description: Number of desired replicas. - type: integer - nodeAffinity: - description: Node affinity configuration. - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - weight: - type: integer - preference: - properties: - matchFields: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchFields: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: array - type: object - type: object - nodeSelectors: - additionalProperties: - type: string - description: Additional node selectors. - type: object - antiAffinity: - description: Pod anti-affinity configuration. This override the - global value if set. - properties: - host: - description: Indicates the reclaimPolicy property for the - StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - zone: - description: Indicates the provisioner property for the StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - type: object - imagePullPolicy: - description: Override image pull policy. - type: string - podLabels: - additionalProperties: - type: string - description: Labels to add to each pod. - type: object - matchLabels: - additionalProperties: - type: string - description: Match labels selectors to add to each pod. - type: object - serviceAccountName: - description: Service account name for the resource. - type: string - type: object - zookeeper: - properties: - updateStrategy: - description: Update strategy for the StatefulSet. Default value - is rolling update. - properties: - type: - type: string - rollingUpdate: - properties: - maxUnavailable: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - partition: - type: integer - type: object - type: object - config: - description: Configuration. - x-kubernetes-preserve-unknown-fields: true - gracePeriod: - description: Termination grace period in seconds. - minimum: 0.0 - type: integer - metadataInitializationJob: - description: Configuration about the job that initializes the - Pulsar cluster creating the needed ZooKeeper nodes. - properties: - resources: - description: Resources requirements. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - timeout: - description: Timeout (in seconds) for the metadata initialization - execution. Default value is 60. - type: integer - type: object - probes: - description: Liveness probe configuration. - properties: - liveness: - description: Liveness probe configuration. - properties: - periodSeconds: - description: Indicates the period (in seconds) for the - probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period (in - seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) for the - probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - readiness: - description: Readiness probe configuration. - properties: - periodSeconds: - description: Indicates the period (in seconds) for the - probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period (in - seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) for the - probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - type: object - podManagementPolicy: - description: Pod management policy. Default value is 'Parallel'. - type: string - service: - description: Service configuration. - properties: - additionalPorts: - description: Additional ports to add to the Service. - items: - properties: - targetPort: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - port: - type: integer - nodePort: - type: integer - name: - type: string - appProtocol: - type: string - protocol: - type: string - type: object - type: array - annotations: - additionalProperties: - type: string - description: Additional annotations to add to the Service. - type: object - type: object - resources: - description: Resources requirements. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - dataVolume: - description: Volume configuration for ZooKeeper data. - properties: - storageClass: - description: Indicates if a StorageClass is used. The operator - will create the StorageClass if needed. - properties: - extraParams: - additionalProperties: - type: string - description: Adds extra parameters for the StorageClass. - type: object - provisioner: - description: Indicates the provisioner property for the - StorageClass. - type: string - type: - description: Indicates the 'type' parameter for the StorageClass. - type: string - fsType: - description: Indicates the 'fsType' parameter for the - StorageClass. - type: string - reclaimPolicy: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: string - type: object - size: - description: Indicates the requested size for the volume. - The format follows the Kubernetes' Quantity. - type: string - name: - description: Indicates the suffix for the volume. Default - value is 'data'. - type: string - existingStorageClassName: - description: Indicates if an already existing storage class - should be used. - type: string - type: object - imagePullSecrets: - description: Image pull secrets. - items: - properties: - name: - type: string - type: object - type: array - image: - description: Override Pulsar image. - type: string - annotations: - additionalProperties: - type: string - description: Annotations to add to each resource (except pods). - type: object - podAnnotations: - additionalProperties: - type: string - description: Annotations to add to pod. - type: object - sidecars: - description: Sidecar containers - items: - properties: - lifecycle: - properties: - postStart: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array - livenessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: - properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: - properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - securityContext: - properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: - properties: - add: - items: - type: string - type: array - drop: - items: - type: string - type: array - type: object - seLinuxOptions: - properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: - properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array - additionalVolumes: - description: Mount additional volumes to the pod. - properties: - volumes: - description: Additional volumes to be mounted to the pod - items: - properties: - hostPath: - properties: - path: - type: string - type: - type: string - type: object - flexVolume: - properties: - readOnly: - type: boolean - options: - additionalProperties: - type: string - type: object - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - gcePersistentDisk: - properties: - readOnly: - type: boolean - pdName: - type: string - partition: - type: integer - fsType: - type: string - type: object - ephemeral: - properties: - volumeClaimTemplate: - properties: - metadata: - properties: - generateName: - type: string - deletionGracePeriodSeconds: - type: integer - deletionTimestamp: - type: string - resourceVersion: - type: string - annotations: - additionalProperties: - type: string - type: object - selfLink: - type: string - creationTimestamp: - type: string - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - ownerReferences: - items: - properties: - blockOwnerDeletion: - type: boolean - uid: - type: string - apiVersion: - type: string - name: - type: string - kind: - type: string - controller: - type: boolean - type: object - type: array - uid: - type: string - generation: - type: integer - name: - type: string - managedFields: - items: - properties: - time: - type: string - apiVersion: - type: string - fieldsV1: - type: object - fieldsType: - type: string - manager: - type: string - operation: - type: string - subresource: - type: string - type: object - type: array - namespace: - type: string - type: object - spec: - properties: - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string - dataSource: - properties: - name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - dataSourceRef: - properties: - name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - accessModes: - items: - type: string - type: array - volumeMode: - type: string - volumeName: - type: string - type: object - type: object - type: object - scaleIO: - properties: - readOnly: - type: boolean - storageMode: - type: string - storagePool: - type: string - system: - type: string - gateway: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - sslEnabled: - type: boolean - volumeName: - type: string - protectionDomain: - type: string - type: object - csi: - properties: - nodePublishSecretRef: - properties: - name: - type: string - type: object - readOnly: - type: boolean - volumeAttributes: - additionalProperties: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - secret: - properties: - optional: - type: boolean - secretName: - type: string - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - name: - type: string - vsphereVolume: - properties: - storagePolicyName: - type: string - storagePolicyID: - type: string - volumePath: - type: string - fsType: - type: string - type: object - gitRepo: - properties: - revision: - type: string - repository: - type: string - directory: - type: string - type: object - glusterfs: - properties: - path: - type: string - readOnly: - type: boolean - endpoints: - type: string - type: object - nfs: - properties: - path: - type: string - readOnly: - type: boolean - server: - type: string - type: object - cinder: - properties: - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - volumeID: - type: string - type: object - flocker: - properties: - datasetUUID: - type: string - datasetName: - type: string - type: object - quobyte: - properties: - group: - type: string - readOnly: - type: boolean - volume: - type: string - user: - type: string - registry: - type: string - tenant: - type: string - type: object - photonPersistentDisk: - properties: - pdID: - type: string - fsType: - type: string - type: object - persistentVolumeClaim: - properties: - readOnly: - type: boolean - claimName: - type: string - type: object - awsElasticBlockStore: - properties: - readOnly: - type: boolean - partition: - type: integer - fsType: - type: string - volumeID: - type: string - type: object - configMap: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - name: - type: string - type: object - storageos: - properties: - readOnly: - type: boolean - volumeNamespace: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - volumeName: - type: string - type: object - portworxVolume: - properties: - readOnly: - type: boolean - fsType: - type: string - volumeID: - type: string - type: object - iscsi: - properties: - readOnly: - type: boolean - chapAuthSession: - type: boolean - lun: - type: integer - targetPortal: - type: string - iscsiInterface: - type: string - portals: - items: - type: string - type: array - initiatorName: - type: string - secretRef: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: properties: - name: - type: string - type: object - fsType: - type: string - iqn: - type: string - chapAuthDiscovery: - type: boolean - type: object - rbd: - properties: - readOnly: - type: boolean - pool: - type: string - keyring: - type: string - image: - type: string - secretRef: + seconds: + type: "integer" + type: "object" + tcpSocket: properties: - name: - type: string - type: object - monitors: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" + livenessProbe: + properties: + exec: + properties: + command: items: - type: string - type: array - fsType: - type: string - user: - type: string - type: object - azureFile: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: properties: - readOnly: - type: boolean - secretName: - type: string - shareName: - type: string - type: object - downwardAPI: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: properties: - items: + host: + type: "string" + httpHeaders: items: properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - projected: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: properties: - defaultMode: - type: integer - sources: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: + exec: + properties: + command: items: - properties: - secret: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - name: - type: string - type: object - configMap: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - name: - type: string - type: object - serviceAccountToken: - properties: - path: - type: string - audience: - type: string - expirationSeconds: - type: integer - type: object - downwardAPI: - properties: - items: - items: - properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - type: object - type: object - type: array - type: object - azureDisk: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: properties: - readOnly: - type: boolean - diskName: - type: string - cachingMode: - type: string - fsType: - type: string - kind: - type: string - diskURI: - type: string - type: object - cephfs: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: properties: - path: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - monitors: + host: + type: "string" + httpHeaders: items: - type: string - type: array - secretFile: - type: string - user: - type: string - type: object - emptyDir: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: properties: - sizeLimit: + host: + type: "string" + port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - medium: - type: string - type: object - fc: + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: + items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: properties: - readOnly: - type: boolean - lun: - type: integer - wwids: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: + properties: + add: items: - type: string - type: array - targetWWNs: + type: "string" + type: "array" + drop: items: - type: string - type: array - fsType: - type: string - type: object - type: object - type: array - mounts: - description: Mount points for the additional volumes - 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - type: object + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: + properties: + devicePath: + type: "string" + name: + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + 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" + tolerations: + description: "Pod tolerations." + items: + properties: + effect: + type: "string" + key: + type: "string" + operator: + type: "string" + tolerationSeconds: + type: "integer" + value: + type: "string" + type: "object" + type: "array" + type: "object" + bastion: + properties: + annotations: + additionalProperties: + type: "string" + description: "Annotations to add to each resource (except pods)." + type: "object" + antiAffinity: + description: "Pod anti-affinity configuration. This override the\ + \ global value if set." + properties: + host: + description: "Indicates the reclaimPolicy property for the\ + \ StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + zone: + description: "Indicates the provisioner property for the StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + type: "object" + config: + description: "Configuration." + x-kubernetes-preserve-unknown-fields: true env: - description: Additional container env variables. + description: "Additional container env variables." items: properties: + name: + type: "string" value: - type: string + type: "string" valueFrom: properties: configMapKeyRef: properties: - optional: - type: boolean key: - type: string + type: "string" name: - type: string - type: object + type: "string" + optional: + type: "boolean" + type: "object" fieldRef: properties: apiVersion: - type: string + type: "string" fieldPath: - type: string - type: object + type: "string" + type: "object" resourceFieldRef: properties: containerName: - type: string + type: "string" divisor: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true resource: - type: string - type: object + type: "string" + type: "object" secretKeyRef: properties: - optional: - type: boolean key: - type: string + type: "string" name: - type: string - type: object - type: object + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + gracePeriod: + description: "Termination grace period in seconds." + minimum: 0.0 + type: "integer" + image: + description: "Override Pulsar image." + type: "string" + imagePullPolicy: + description: "Override image pull policy." + type: "string" + imagePullSecrets: + description: "Image pull secrets." + items: + properties: name: - type: string - type: object - type: array - labels: - additionalProperties: - type: string - description: Labels to add to each resource (except pods). - type: object + type: "string" + type: "object" + type: "array" initContainers: - description: Init containers + description: "Init containers" items: properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" lifecycle: properties: postStart: properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + type: "object" + preStop: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" livenessProbe: properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer exec: properties: command: items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer + type: "string" + type: "array" + type: "object" failureThreshold: - type: integer - initialDelaySeconds: - type: integer + type: "integer" grpc: properties: port: - type: integer + type: "integer" service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer + scheme: + type: "string" + type: "object" initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object + type: "integer" + periodSeconds: + type: "integer" successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer + type: "integer" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" timeoutSeconds: - type: integer + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: items: properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: properties: - optional: - type: boolean name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" securityContext: properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object allowPrivilegeEscalation: - type: boolean + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" capabilities: properties: add: items: - type: string - type: array + type: "string" + type: "array" drop: items: - type: string - type: array - type: object + 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: properties: + level: + type: "string" role: - type: string + type: "string" type: - type: string + type: "string" user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string + type: "string" + type: "object" seccompProfile: properties: - type: - type: string localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: properties: devicePath: - type: string + type: "string" name: - type: string - type: object - type: array - type: object - type: array - pdb: - description: Pod disruption budget configuration. - properties: - maxUnavailable: - description: Number of maxUnavailable pods. - type: integer - enabled: - description: Enable Pdb policy. - type: boolean - type: object - tolerations: - description: Pod tolerations. - items: - properties: - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - effect: - type: string - type: object - type: array - replicas: - description: Number of desired replicas. - type: integer + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + 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" + labels: + additionalProperties: + type: "string" + description: "Labels to add to each resource (except pods)." + type: "object" + matchLabels: + additionalProperties: + type: "string" + description: "Match labels selectors to add to each pod." + type: "object" + minReadySeconds: + description: "Min seconds to wait before considering the pod as\ + \ ready." + type: "integer" nodeAffinity: - description: Node affinity configuration. + description: "Node affinity configuration." properties: preferredDuringSchedulingIgnoredDuringExecution: items: properties: - weight: - type: integer preference: properties: - matchFields: + matchExpressions: items: properties: key: - type: string + type: "string" + operator: + type: "string" values: items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: items: properties: key: - type: string + type: "string" + operator: + type: "string" values: items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: object - type: array + type: "string" + type: "array" + type: "object" + type: "array" + type: "object" + weight: + type: "integer" + type: "object" + type: "array" requiredDuringSchedulingIgnoredDuringExecution: properties: nodeSelectorTerms: items: properties: - matchFields: + matchExpressions: items: properties: key: - type: string + type: "string" + operator: + type: "string" values: items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: items: properties: key: - type: string + type: "string" + operator: + type: "string" values: items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: array - type: object - type: object + type: "string" + type: "array" + type: "object" + type: "array" + type: "object" + type: "array" + type: "object" + type: "object" nodeSelectors: additionalProperties: - type: string - description: Additional node selectors. - type: object - antiAffinity: - description: Pod anti-affinity configuration. This override the - global value if set. - properties: - host: - description: Indicates the reclaimPolicy property for the - StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - zone: - description: Indicates the provisioner property for the StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - type: object - imagePullPolicy: - description: Override image pull policy. - type: string - podLabels: + type: "string" + description: "Additional node selectors." + type: "object" + podAnnotations: additionalProperties: - type: string - description: Labels to add to each pod. - type: object - matchLabels: + type: "string" + description: "Annotations to add to pod." + type: "object" + podLabels: additionalProperties: - type: string - description: Match labels selectors to add to each pod. - type: object + type: "string" + description: "Labels to add to each pod." + type: "object" + replicas: + description: "Number of desired replicas." + type: "integer" + resources: + description: "Resources requirements." + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + securityContext: + description: "Subset of PodSecurityContext for basic UID, GID,\ + \ and volume access control." + properties: + fsGroup: + type: "integer" + fsGroupChangePolicy: + type: "string" + runAsGroup: + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + type: "integer" + supplementalGroups: + items: + type: "integer" + type: "array" + type: "object" serviceAccountName: - description: Service account name for the resource. - type: string - type: object - autorecovery: - properties: - config: - description: Configuration. - x-kubernetes-preserve-unknown-fields: true - gracePeriod: - description: Termination grace period in seconds. - minimum: 0.0 - type: integer - imagePullSecrets: - description: Image pull secrets. - items: - properties: - name: - type: string - type: object - type: array - image: - description: Override Pulsar image. - type: string - annotations: - additionalProperties: - type: string - description: Annotations to add to each resource (except pods). - type: object - podAnnotations: - additionalProperties: - type: string - description: Annotations to add to pod. - type: object + description: "Service account name for the resource." + type: "string" sidecars: - description: Sidecar containers + description: "Sidecar containers" items: properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" lifecycle: properties: postStart: properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + type: "object" + preStop: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" livenessProbe: properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" periodSeconds: - type: integer + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" failureThreshold: - type: integer + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" initialDelaySeconds: - type: integer + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: + items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: + 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" grpc: properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: + properties: + devicePath: + type: "string" + name: + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + 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" + targetProxy: + description: "Indicates to connect to proxy or the broker. The\ + \ default value depends whether Proxy is deployed or not." + type: "boolean" + tolerations: + description: "Pod tolerations." + items: + properties: + effect: + type: "string" + key: + type: "string" + operator: + type: "string" + tolerationSeconds: + type: "integer" + value: + type: "string" + type: "object" + type: "array" + type: "object" + bookkeeper: + properties: + additionalVolumes: + description: "Mount additional volumes to the pod." + properties: + mounts: + description: "Mount points for the additional volumes" + items: + 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" + volumes: + description: "Additional volumes to be mounted to the pod" + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: "string" + partition: + type: "integer" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + azureDisk: properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: + cachingMode: + type: "string" + diskName: + type: "string" + diskURI: + type: "string" + fsType: + type: "string" + kind: + type: "string" + readOnly: + type: "boolean" + type: "object" + azureFile: properties: - command: - items: - type: string - type: array - type: object - httpGet: + readOnly: + type: "boolean" + secretName: + type: "string" + shareName: + type: "string" + type: "object" + cephfs: properties: + monitors: + items: + type: "string" + type: "array" path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: + type: "string" + readOnly: + type: "boolean" + secretFile: + type: "string" + secretRef: + properties: + name: + type: "string" + type: "object" + user: + type: "string" + type: "object" + cinder: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + volumeID: + type: "string" + type: "object" + configMap: + properties: + defaultMode: + type: "integer" + items: items: properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + csi: properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: + driver: + type: "string" + fsType: + type: "string" + nodePublishSecretRef: + properties: + name: + type: "string" + type: "object" + readOnly: + type: "boolean" + volumeAttributes: + additionalProperties: + type: "string" + type: "object" + type: "object" + downwardAPI: properties: - host: - type: string - port: + defaultMode: + type: "integer" + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + emptyDir: + properties: + medium: + type: "string" + sizeLimit: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: + type: "object" + ephemeral: properties: - command: - items: - type: string - type: array - type: object - httpGet: + volumeClaimTemplate: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: "string" + type: "object" + creationTimestamp: + type: "string" + deletionGracePeriodSeconds: + type: "integer" + deletionTimestamp: + type: "string" + finalizers: + items: + type: "string" + type: "array" + generateName: + type: "string" + generation: + type: "integer" + labels: + additionalProperties: + type: "string" + type: "object" + managedFields: + items: + properties: + apiVersion: + type: "string" + fieldsType: + type: "string" + fieldsV1: + type: "object" + manager: + type: "string" + operation: + type: "string" + subresource: + type: "string" + time: + type: "string" + type: "object" + type: "array" + name: + type: "string" + namespace: + type: "string" + ownerReferences: + items: + 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: + properties: + accessModes: + items: + type: "string" + type: "array" + dataSource: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + type: "object" + dataSourceRef: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + namespace: + type: "string" + type: "object" + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + selector: + properties: + matchExpressions: + items: + 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: properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: + fsType: + type: "string" + lun: + type: "integer" + readOnly: + type: "boolean" + targetWWNs: items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: + type: "string" + type: "array" + wwids: + items: + type: "string" + type: "array" + type: "object" + flexVolume: + properties: + driver: + type: "string" + fsType: + type: "string" + options: + additionalProperties: + type: "string" + type: "object" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + type: "object" + flocker: properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: + datasetName: + type: "string" + datasetUUID: + type: "string" + type: "object" + gcePersistentDisk: properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: + fsType: + type: "string" + partition: + type: "integer" + pdName: + type: "string" + readOnly: + type: "boolean" + type: "object" + gitRepo: properties: - command: + directory: + type: "string" + repository: + type: "string" + revision: + type: "string" + type: "object" + glusterfs: + properties: + endpoints: + type: "string" + path: + type: "string" + readOnly: + type: "boolean" + type: "object" + hostPath: + properties: + path: + type: "string" + type: + type: "string" + type: "object" + image: + properties: + pullPolicy: + type: "string" + reference: + type: "string" + type: "object" + iscsi: + 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 - type: object - httpGet: + type: "string" + type: "array" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + targetPortal: + type: "string" + type: "object" + name: + type: "string" + nfs: properties: path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: + type: "string" + readOnly: + type: "boolean" + server: + type: "string" + type: "object" + persistentVolumeClaim: + properties: + claimName: + type: "string" + readOnly: + type: "boolean" + type: "object" + photonPersistentDisk: + properties: + fsType: + type: "string" + pdID: + type: "string" + type: "object" + portworxVolume: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + projected: + properties: + defaultMode: + type: "integer" + sources: items: properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: - properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: - properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - securityContext: - properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + 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: + properties: + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + secret: + properties: + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + serviceAccountToken: + properties: + audience: + type: "string" + expirationSeconds: + type: "integer" + path: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + quobyte: properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: + group: + type: "string" + readOnly: + type: "boolean" + registry: + type: "string" + tenant: + type: "string" + user: + type: "string" + volume: + type: "string" + type: "object" + rbd: properties: - add: - items: - type: string - type: array - drop: + fsType: + type: "string" + image: + type: "string" + keyring: + type: "string" + monitors: items: - type: string - type: array - type: object - seLinuxOptions: - properties: - role: - type: string - type: - type: string + type: "string" + type: "array" + pool: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: + type: "string" + type: "object" + scaleIO: properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array + fsType: + type: "string" + gateway: + type: "string" + protectionDomain: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + sslEnabled: + type: "boolean" + storageMode: + type: "string" + storagePool: + type: "string" + system: + type: "string" + volumeName: + type: "string" + type: "object" + secret: + properties: + defaultMode: + type: "integer" + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + optional: + type: "boolean" + secretName: + type: "string" + type: "object" + storageos: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + volumeName: + type: "string" + volumeNamespace: + type: "string" + type: "object" + vsphereVolume: + properties: + fsType: + type: "string" + storagePolicyID: + type: "string" + storagePolicyName: + type: "string" + volumePath: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + annotations: + additionalProperties: + type: "string" + description: "Annotations to add to each resource (except pods)." + type: "object" + antiAffinity: + description: "Pod anti-affinity configuration. This override the\ + \ global value if set." + properties: + host: + description: "Indicates the reclaimPolicy property for the\ + \ StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + zone: + description: "Indicates the provisioner property for the StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + type: "object" + autoRackConfig: + description: "Configuration for the rack auto configuration." + properties: + additionalZookeeperClientConfig: + description: "Additional configuration for the zookeeper client." + x-kubernetes-preserve-unknown-fields: true + enabled: + description: "Enable rack configuration monitoring." + type: "boolean" + periodMs: + description: "Period for the schedule of the monitoring thread." + minimum: 1000.0 + type: "integer" + type: "object" + autoscaler: + description: "Autoscaling config." + properties: + diskUsageToleranceHwm: + description: "The threshold to trigger a scale up. The autoscaler\ + \ will scale up if any of thebookie's disk usage is higher\ + \ than or equal to this threshold. Default is '0.92'" + maximum: 1.0 + minimum: 0.0 + type: "number" + diskUsageToleranceLwm: + description: "The threshold to trigger a scale down. The autoscaler\ + \ will scale down if all the bookies' disk usage is lower\ + \ than this threshold. Default is '0.75'" + maximum: 1.0 + minimum: 0.0 + type: "number" + enabled: + description: "Enable autoscaling for bookies." + type: "boolean" + minWritableBookies: + description: "Min number of writable bookies. The autoscaler\ + \ will scale up if not enough writable bookies are detected.\ + \ For instance, if a bookie went to read-only mode, the\ + \ autoscaler will scale up to replace it. Default is '3'." + minimum: 1.0 + type: "integer" + periodMs: + description: "The interval in milliseconds between two consecutive\ + \ autoscaling checks." + minimum: 1000.0 + type: "integer" + scaleDownBy: + description: "The number of bookies to remove at each scale\ + \ down. Default is '1'" + minimum: 1.0 + type: "integer" + scaleUpBy: + description: "The number of bookies to add at each scale up.\ + \ Default is '1'" + minimum: 1.0 + type: "integer" + scaleUpMaxLimit: + description: "Max number of bookies. If the number of bookies\ + \ is equals to this value, the autoscaler will never scale\ + \ up." + minimum: 1.0 + type: "integer" + stabilizationWindowMs: + description: "The stabilization window is used to restrict\ + \ the flapping of replica count when the metrics used for\ + \ scaling keep fluctuating. The autoscaling algorithm uses\ + \ this window to infer a previous desired state and avoid\ + \ unwanted changes to workload scale.Default value is 5\ + \ minutes after the pod readiness." + minimum: 1.0 + type: "integer" + type: "object" + cleanUpPvcs: + description: "Cleanup PVCs after the bookie has been removed." + type: "boolean" + config: + description: "Configuration." + x-kubernetes-preserve-unknown-fields: true env: - description: Additional container env variables. + description: "Additional container env variables." items: properties: + name: + type: "string" value: - type: string + type: "string" valueFrom: properties: configMapKeyRef: properties: - optional: - type: boolean key: - type: string + type: "string" name: - type: string - type: object + type: "string" + optional: + type: "boolean" + type: "object" fieldRef: properties: apiVersion: - type: string + type: "string" fieldPath: - type: string - type: object + type: "string" + type: "object" resourceFieldRef: properties: containerName: - type: string + type: "string" divisor: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true resource: - type: string - type: object + type: "string" + type: "object" secretKeyRef: properties: - optional: - type: boolean key: - type: string + type: "string" name: - type: string - type: object - type: object + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + gracePeriod: + description: "Termination grace period in seconds." + minimum: 0.0 + type: "integer" + image: + description: "Override Pulsar image." + type: "string" + imagePullPolicy: + description: "Override image pull policy." + type: "string" + imagePullSecrets: + description: "Image pull secrets." + items: + properties: name: - type: string - type: object - type: array - labels: - additionalProperties: - type: string - description: Labels to add to each resource (except pods). - type: object + type: "string" + type: "object" + type: "array" initContainers: - description: Init containers + description: "Init containers" items: properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" lifecycle: properties: postStart: properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + type: "object" + preStop: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array - livenessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" + livenessProbe: properties: - periodSeconds: - type: integer + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" failureThreshold: - type: integer - initialDelaySeconds: - type: integer + type: "integer" grpc: properties: port: - type: integer + type: "integer" service: - type: string - type: object + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer + type: "integer" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" timeoutSeconds: - type: integer + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: items: properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: properties: - optional: - type: boolean name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" securityContext: properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object allowPrivilegeEscalation: - type: boolean + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" capabilities: properties: add: items: - type: string - type: array + type: "string" + type: "array" drop: items: - type: string - type: array - type: object + 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: properties: + level: + type: "string" role: - type: string + type: "string" type: - type: string + type: "string" user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string + type: "string" + type: "object" seccompProfile: properties: - type: - type: string localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: properties: devicePath: - type: string + type: "string" name: - type: string - type: object - type: array - type: object - type: array - tolerations: - description: Pod tolerations. - items: - properties: - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - effect: - type: string - type: object - type: array - replicas: - description: Number of desired replicas. - type: integer + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + 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" + labels: + additionalProperties: + type: "string" + description: "Labels to add to each resource (except pods)." + type: "object" + matchLabels: + additionalProperties: + type: "string" + description: "Match labels selectors to add to each pod." + type: "object" + minReadySeconds: + description: "Min seconds to wait before considering the pod as\ + \ ready." + type: "integer" nodeAffinity: - description: Node affinity configuration. + description: "Node affinity configuration." properties: preferredDuringSchedulingIgnoredDuringExecution: items: properties: - weight: - type: integer preference: properties: - matchFields: + matchExpressions: items: properties: key: - type: string + type: "string" + operator: + type: "string" values: items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: items: properties: key: - type: string + type: "string" + operator: + type: "string" values: items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: object - type: array + type: "string" + type: "array" + type: "object" + type: "array" + type: "object" + weight: + type: "integer" + type: "object" + type: "array" requiredDuringSchedulingIgnoredDuringExecution: properties: nodeSelectorTerms: items: properties: - matchFields: + matchExpressions: items: properties: key: - type: string + type: "string" + operator: + type: "string" values: items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: items: properties: key: - type: string + type: "string" + operator: + type: "string" values: items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: array - type: object - type: object + type: "string" + type: "array" + type: "object" + type: "array" + type: "object" + type: "array" + type: "object" + type: "object" nodeSelectors: additionalProperties: - type: string - description: Additional node selectors. - type: object + type: "string" + description: "Additional node selectors." + type: "object" + overrideResourceName: + description: "Override the resource names generated by the operator." + type: "string" + pdb: + description: "Pod disruption budget configuration." + properties: + enabled: + description: "Enable Pdb policy." + type: "boolean" + maxUnavailable: + description: "Number of maxUnavailable pods." + type: "integer" + minAvailable: + description: "Number of minAvailable pods." + type: "integer" + type: "object" + podAnnotations: + additionalProperties: + type: "string" + description: "Annotations to add to pod." + type: "object" + podLabels: + additionalProperties: + type: "string" + description: "Labels to add to each pod." + type: "object" + podManagementPolicy: + description: "Pod management policy. Default value is 'Parallel'." + type: "string" + probes: + description: "Liveness and readiness probes configuration." + properties: + liveness: + description: "Liveness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds) for the\ + \ probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period (in\ + \ seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds) for the\ + \ probe." + type: "integer" + type: "object" + readiness: + description: "Readiness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds) for the\ + \ probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period (in\ + \ seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds) for the\ + \ probe." + type: "integer" + type: "object" + type: "object" + pvcPrefix: + description: "Prefix for each PVC created." + type: "string" + replicas: + description: "Number of desired replicas." + type: "integer" resources: - description: Resources requirements. + description: "Resources requirements." properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" limits: additionalProperties: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" requests: additionalProperties: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - antiAffinity: - description: Pod anti-affinity configuration. This override the - global value if set. + type: "object" + type: "object" + securityContext: + description: "Subset of PodSecurityContext for basic UID, GID,\ + \ and volume access control." properties: - host: - description: Indicates the reclaimPolicy property for the - StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - zone: - description: Indicates the provisioner property for the StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - type: object - imagePullPolicy: - description: Override image pull policy. - type: string - podLabels: - additionalProperties: - type: string - description: Labels to add to each pod. - type: object - matchLabels: - additionalProperties: - type: string - description: Match labels selectors to add to each pod. - type: object + fsGroup: + type: "integer" + fsGroupChangePolicy: + type: "string" + runAsGroup: + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + type: "integer" + supplementalGroups: + items: + type: "integer" + type: "array" + type: "object" + service: + description: "Service configuration." + properties: + additionalPorts: + description: "Additional ports to add to the Service." + items: + properties: + appProtocol: + type: "string" + name: + type: "string" + nodePort: + type: "integer" + port: + type: "integer" + protocol: + type: "string" + targetPort: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "array" + annotations: + additionalProperties: + type: "string" + description: "Additional annotations to add to the Service." + type: "object" + type: "object" serviceAccountName: - description: Service account name for the resource. - type: string - type: object - bastion: - properties: - config: - description: Configuration. - x-kubernetes-preserve-unknown-fields: true - gracePeriod: - description: Termination grace period in seconds. - minimum: 0.0 - type: integer - imagePullSecrets: - description: Image pull secrets. - items: - properties: - name: - type: string - type: object - type: array - image: - description: Override Pulsar image. - type: string - annotations: - additionalProperties: - type: string - description: Annotations to add to each resource (except pods). - type: object - podAnnotations: + description: "Service account name for the resource." + type: "string" + sets: additionalProperties: - type: string - description: Annotations to add to pod. - type: object - sidecars: - description: Sidecar containers - items: properties: - lifecycle: + additionalVolumes: + description: "Mount additional volumes to the pod." properties: - postStart: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: + mounts: + description: "Mount points for the additional volumes" + items: + 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" + volumes: + description: "Additional volumes to be mounted to the\ + \ pod" + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: "string" + partition: + type: "integer" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + azureDisk: + properties: + cachingMode: + type: "string" + diskName: + type: "string" + diskURI: + type: "string" + fsType: + type: "string" + kind: + type: "string" + readOnly: + type: "boolean" + type: "object" + azureFile: + properties: + readOnly: + type: "boolean" + secretName: + type: "string" + shareName: + type: "string" + type: "object" + cephfs: + properties: + monitors: + items: + type: "string" + type: "array" + path: + type: "string" + readOnly: + type: "boolean" + secretFile: + type: "string" + secretRef: + properties: + name: + type: "string" + type: "object" + user: + type: "string" + type: "object" + cinder: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + volumeID: + type: "string" + type: "object" + configMap: + properties: + defaultMode: + type: "integer" items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + csi: + properties: + driver: + type: "string" + fsType: + type: "string" + nodePublishSecretRef: + properties: + name: + type: "string" + type: "object" + readOnly: + type: "boolean" + volumeAttributes: + additionalProperties: + type: "string" + type: "object" + type: "object" + downwardAPI: + properties: + defaultMode: + type: "integer" items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + emptyDir: + properties: + medium: + type: "string" + sizeLimit: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: "string" + type: "object" + creationTimestamp: + type: "string" + deletionGracePeriodSeconds: + type: "integer" + deletionTimestamp: + type: "string" + finalizers: + items: + type: "string" + type: "array" + generateName: + type: "string" + generation: + type: "integer" + labels: + additionalProperties: + type: "string" + type: "object" + managedFields: + items: + properties: + apiVersion: + type: "string" + fieldsType: + type: "string" + fieldsV1: + type: "object" + manager: + type: "string" + operation: + type: "string" + subresource: + type: "string" + time: + type: "string" + type: "object" + type: "array" + name: + type: "string" + namespace: + type: "string" + ownerReferences: + items: + 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: + properties: + accessModes: + items: + type: "string" + type: "array" + dataSource: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + type: "object" + dataSourceRef: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + namespace: + type: "string" + type: "object" + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + selector: + properties: + matchExpressions: + items: + 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: + 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: + properties: + driver: + type: "string" + fsType: + type: "string" + options: + additionalProperties: + type: "string" + type: "object" + readOnly: + type: "boolean" + secretRef: properties: - value: - type: string name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: + type: "string" + type: "object" + type: "object" + flocker: + properties: + datasetName: + type: "string" + datasetUUID: + type: "string" + type: "object" + gcePersistentDisk: + properties: + fsType: + type: "string" + partition: + type: "integer" + pdName: + type: "string" + readOnly: + type: "boolean" + type: "object" + gitRepo: + properties: + directory: + type: "string" + repository: + type: "string" + revision: + type: "string" + type: "object" + glusterfs: + properties: + endpoints: + type: "string" + path: + type: "string" + readOnly: + type: "boolean" + type: "object" + hostPath: + properties: + path: + type: "string" + type: + type: "string" + type: "object" + image: + properties: + pullPolicy: + type: "string" + reference: + type: "string" + type: "object" + iscsi: + 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: properties: - value: - type: string name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array - livenessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: + type: "string" + type: "object" + targetPortal: + type: "string" + type: "object" + name: + type: "string" + nfs: properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: + path: + type: "string" + readOnly: + type: "boolean" + server: + type: "string" + type: "object" + persistentVolumeClaim: properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: + claimName: + type: "string" + readOnly: + type: "boolean" + type: "object" + photonPersistentDisk: properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: + fsType: + type: "string" + pdID: + type: "string" + type: "object" + portworxVolume: properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: + fsType: + type: "string" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + projected: properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: + defaultMode: + type: "integer" + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + 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: + properties: + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + secret: + properties: + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + serviceAccountToken: + properties: + audience: + type: "string" + expirationSeconds: + type: "integer" + path: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + quobyte: properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: - properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: - properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - securityContext: - properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: - properties: - add: - items: - type: string - type: array - drop: - items: - type: string - type: array - type: object - seLinuxOptions: - properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: - properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array - env: - description: Additional container env variables. - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - labels: - additionalProperties: - type: string - description: Labels to add to each resource (except pods). - type: object - initContainers: - description: Init containers - items: - properties: - lifecycle: - properties: - postStart: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: + group: + type: "string" + readOnly: + type: "boolean" + registry: + type: "string" + tenant: + type: "string" + user: + type: "string" + volume: + type: "string" + type: "object" + rbd: + properties: + fsType: + type: "string" + image: + type: "string" + keyring: + type: "string" + monitors: + items: + type: "string" + type: "array" + pool: + type: "string" + readOnly: + type: "boolean" + secretRef: properties: - value: - type: string name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: + type: "string" + type: "object" + user: + type: "string" + type: "object" + scaleIO: + properties: + fsType: + type: "string" + gateway: + type: "string" + protectionDomain: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + sslEnabled: + type: "boolean" + storageMode: + type: "string" + storagePool: + type: "string" + system: + type: "string" + volumeName: + type: "string" + type: "object" + secret: + properties: + defaultMode: + type: "integer" items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + optional: + type: "boolean" + secretName: + type: "string" + type: "object" + storageos: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + secretRef: properties: - value: - type: string name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array - livenessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: + type: "string" + type: "object" + volumeName: + type: "string" + volumeNamespace: + type: "string" + type: "object" + vsphereVolume: + properties: + fsType: + type: "string" + storagePolicyID: + type: "string" + storagePolicyName: + type: "string" + volumePath: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + annotations: + additionalProperties: + type: "string" + description: "Annotations to add to each resource (except\ + \ pods)." + type: "object" + antiAffinity: + description: "Pod anti-affinity configuration. This override\ + \ the global value if set." + properties: + host: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." properties: - command: - items: - type: string - type: array - type: object - httpGet: + enabled: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "boolean" + type: "object" + zone: + description: "Indicates the provisioner property for\ + \ the StorageClass." properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: + enabled: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "boolean" + type: "object" + type: "object" + autoscaler: + description: "Autoscaling config." + properties: + diskUsageToleranceHwm: + description: "The threshold to trigger a scale up. The\ + \ autoscaler will scale up if any of thebookie's disk\ + \ usage is higher than or equal to this threshold.\ + \ Default is '0.92'" + maximum: 1.0 + minimum: 0.0 + type: "number" + diskUsageToleranceLwm: + description: "The threshold to trigger a scale down.\ + \ The autoscaler will scale down if all the bookies'\ + \ disk usage is lower than this threshold. Default\ + \ is '0.75'" + maximum: 1.0 + minimum: 0.0 + type: "number" + enabled: + description: "Enable autoscaling for bookies." + type: "boolean" + minWritableBookies: + description: "Min number of writable bookies. The autoscaler\ + \ will scale up if not enough writable bookies are\ + \ detected. For instance, if a bookie went to read-only\ + \ mode, the autoscaler will scale up to replace it.\ + \ Default is '3'." + minimum: 1.0 + type: "integer" + periodMs: + description: "The interval in milliseconds between two\ + \ consecutive autoscaling checks." + minimum: 1000.0 + type: "integer" + scaleDownBy: + description: "The number of bookies to remove at each\ + \ scale down. Default is '1'" + minimum: 1.0 + type: "integer" + scaleUpBy: + description: "The number of bookies to add at each scale\ + \ up. Default is '1'" + minimum: 1.0 + type: "integer" + scaleUpMaxLimit: + description: "Max number of bookies. If the number of\ + \ bookies is equals to this value, the autoscaler\ + \ will never scale up." + minimum: 1.0 + type: "integer" + stabilizationWindowMs: + description: "The stabilization window is used to restrict\ + \ the flapping of replica count when the metrics used\ + \ for scaling keep fluctuating. The autoscaling algorithm\ + \ uses this window to infer a previous desired state\ + \ and avoid unwanted changes to workload scale.Default\ + \ value is 5 minutes after the pod readiness." + minimum: 1.0 + type: "integer" + type: "object" + cleanUpPvcs: + description: "Cleanup PVCs after the bookie has been removed." + type: "boolean" + config: + description: "Configuration." + x-kubernetes-preserve-unknown-fields: true + env: + description: "Additional container env variables." + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: properties: - value: - type: string + key: + type: "string" name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + gracePeriod: + description: "Termination grace period in seconds." + minimum: 0.0 + type: "integer" image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: + description: "Override Pulsar image." + type: "string" + imagePullPolicy: + description: "Override image pull policy." + type: "string" + imagePullSecrets: + description: "Image pull secrets." + items: + properties: + name: + type: "string" + type: "object" + type: "array" + initContainers: + description: "Init containers" + items: + properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + preStop: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" + livenessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: - properties: - value: - type: string - valueFrom: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: properties: - configMapKeyRef: + exec: properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: properties: - containerName: - type: string - divisor: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: - properties: - prefix: - type: string - configMapRef: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: + items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - securityContext: - properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: + 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: + properties: + devicePath: + type: "string" + name: + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + 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" + labels: + additionalProperties: + type: "string" + description: "Labels to add to each resource (except pods)." + type: "object" + matchLabels: + additionalProperties: + type: "string" + description: "Match labels selectors to add to each pod." + type: "object" + minReadySeconds: + description: "Min seconds to wait before considering the\ + \ pod as ready." + type: "integer" + nodeAffinity: + description: "Node affinity configuration." + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: + items: + 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" + requiredDuringSchedulingIgnoredDuringExecution: properties: - add: - items: - type: string - type: array - drop: + nodeSelectorTerms: items: - type: string - type: array - type: object - seLinuxOptions: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + type: "object" + type: "array" + type: "object" + type: "object" + nodeSelectors: + additionalProperties: + type: "string" + description: "Additional node selectors." + type: "object" + overrideResourceName: + description: "Override the resource names generated by the\ + \ operator." + type: "string" + pdb: + description: "Pod disruption budget configuration." + properties: + enabled: + description: "Enable Pdb policy." + type: "boolean" + maxUnavailable: + description: "Number of maxUnavailable pods." + type: "integer" + minAvailable: + description: "Number of minAvailable pods." + type: "integer" + type: "object" + podAnnotations: + additionalProperties: + type: "string" + description: "Annotations to add to pod." + type: "object" + podLabels: + additionalProperties: + type: "string" + description: "Labels to add to each pod." + type: "object" + podManagementPolicy: + description: "Pod management policy. Default value is 'Parallel'." + type: "string" + probes: + description: "Liveness and readiness probes configuration." + properties: + liveness: + description: "Liveness probe configuration." properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds)\ + \ for the probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period\ + \ (in seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds)\ + \ for the probe." + type: "integer" + type: "object" + readiness: + description: "Readiness probe configuration." properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds)\ + \ for the probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period\ + \ (in seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds)\ + \ for the probe." + type: "integer" + type: "object" + type: "object" + pvcPrefix: + description: "Prefix for each PVC created." + type: "string" + replicas: + description: "Number of desired replicas." + type: "integer" resources: + description: "Resources requirements." properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" limits: additionalProperties: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" requests: additionalProperties: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: + type: "object" + type: "object" + securityContext: + description: "Subset of PodSecurityContext for basic UID,\ + \ GID, and volume access control." + properties: + fsGroup: + type: "integer" + fsGroupChangePolicy: + type: "string" + runAsGroup: + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + type: "integer" + supplementalGroups: + items: + type: "integer" + type: "array" + type: "object" + service: + description: "Service configuration." + properties: + additionalPorts: + description: "Additional ports to add to the Service." + items: + properties: + appProtocol: + type: "string" + name: + type: "string" + nodePort: + type: "integer" + port: + type: "integer" + protocol: + type: "string" + targetPort: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "array" + annotations: + additionalProperties: + type: "string" + description: "Additional annotations to add to the Service." + type: "object" + type: "object" + serviceAccountName: + description: "Service account name for the resource." + type: "string" + sidecars: + description: "Sidecar containers" items: properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array - tolerations: - description: Pod tolerations. - items: - properties: - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - effect: - type: string - type: object - type: array - replicas: - description: Number of desired replicas. - type: integer - nodeAffinity: - description: Node affinity configuration. - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - weight: - type: integer - preference: - properties: - matchFields: - items: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + preStop: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" + livenessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: properties: - key: - type: string - values: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: + exec: + properties: + command: items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: properties: - key: - type: string - values: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchFields: - items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: properties: - key: - type: string - values: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: + items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: + properties: + add: items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - 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: properties: - key: - type: string - values: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: + properties: + exec: + properties: + command: items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: array - type: object - type: object - nodeSelectors: - additionalProperties: - type: string - description: Additional node selectors. - type: object - resources: - description: Resources requirements. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - targetProxy: - description: Indicates to connect to proxy or the broker. The - default value depends whether Proxy is deployed or not. - type: boolean - antiAffinity: - description: Pod anti-affinity configuration. This override the - global value if set. - properties: - host: - description: Indicates the reclaimPolicy property for the - StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - zone: - description: Indicates the provisioner property for the StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - type: object - imagePullPolicy: - description: Override image pull policy. - type: string - podLabels: - additionalProperties: - type: string - description: Labels to add to each pod. - type: object - matchLabels: - additionalProperties: - type: string - description: Match labels selectors to add to each pod. - type: object - serviceAccountName: - description: Service account name for the resource. - type: string - type: object - functionsWorker: - properties: - updateStrategy: - description: Update strategy for the StatefulSet. - properties: - type: - type: string - rollingUpdate: - properties: - maxUnavailable: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - partition: - type: integer - type: object - type: object - config: - description: Configuration. - x-kubernetes-preserve-unknown-fields: true - gracePeriod: - description: Termination grace period in seconds. - minimum: 0.0 - type: integer - probes: - description: Liveness and readiness probes configuration. - properties: - liveness: - description: Liveness probe configuration. - properties: - periodSeconds: - description: Indicates the period (in seconds) for the - probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period (in - seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) for the - probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - readiness: - description: Readiness probe configuration. - properties: - periodSeconds: - description: Indicates the period (in seconds) for the - probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period (in - seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) for the - probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - type: object - service: - description: Service configuration. - properties: - additionalPorts: - description: Additional ports to add to the Service. - items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: + properties: + devicePath: + type: "string" + name: + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + 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" + tolerations: + description: "Pod tolerations." + items: + properties: + effect: + type: "string" + key: + type: "string" + operator: + type: "string" + tolerationSeconds: + type: "integer" + value: + type: "string" + type: "object" + type: "array" + updateStrategy: + description: "Update strategy for the StatefulSet. Default\ + \ value is rolling update." + properties: + rollingUpdate: + properties: + maxUnavailable: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + partition: + type: "integer" + type: "object" + type: + type: "string" + type: "object" + volumes: + description: "Volumes configuration." properties: - targetPort: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - port: - type: integer - nodePort: - type: integer - name: - type: string - appProtocol: - type: string - protocol: - type: string - type: object - type: array - annotations: - additionalProperties: - type: string - description: Additional annotations to add to the Service. - type: object - type: - description: Service type. Default value is 'ClusterIP' - type: string - type: object - rbac: - description: RBAC config. - properties: - namespaced: - description: Whether or not the RBAC is created per-namespace - or cluster-wise. - type: boolean - create: - description: Create needed RBAC to run the Functions Worker. - type: boolean - type: object - podManagementPolicy: - description: Pod management policy. - type: string - resources: - description: Resources requirements. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - runtime: - description: Runtime mode for functions. - type: string - logsVolume: - description: Volume configuration for export function logs. - properties: - storageClass: - description: Indicates if a StorageClass is used. The operator - will create the StorageClass if needed. - properties: - extraParams: - additionalProperties: - type: string - description: Adds extra parameters for the StorageClass. - type: object - provisioner: - description: Indicates the provisioner property for the - StorageClass. - type: string - type: - description: Indicates the 'type' parameter for the StorageClass. - type: string - fsType: - description: Indicates the 'fsType' parameter for the - StorageClass. - type: string - reclaimPolicy: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: string - type: object - size: - description: Indicates the requested size for the volume. - The format follows the Kubernetes' Quantity. - type: string - name: - description: Indicates the suffix for the volume. Default - value is 'data'. - type: string - existingStorageClassName: - description: Indicates if an already existing storage class - should be used. - type: string - type: object - imagePullSecrets: - description: Image pull secrets. - items: - properties: - name: - type: string - type: object - type: array - image: - description: Override Pulsar image. - type: string - annotations: - additionalProperties: - type: string - description: Annotations to add to each resource (except pods). - type: object - podAnnotations: - additionalProperties: - type: string - description: Annotations to add to pod. - type: object + journal: + description: "Config for the journal volume." + properties: + existingStorageClassName: + description: "Indicates if an already existing storage\ + \ class should be used." + type: "string" + name: + description: "Indicates the suffix for the volume.\ + \ Default value is 'data'." + type: "string" + size: + description: "Indicates the requested size for the\ + \ volume. The format follows the Kubernetes' Quantity." + type: "string" + storageClass: + description: "Indicates if a StorageClass is used.\ + \ The operator will create the StorageClass if\ + \ needed." + properties: + extraParams: + additionalProperties: + type: "string" + description: "Adds extra parameters for the\ + \ StorageClass." + type: "object" + fsType: + description: "Indicates the 'fsType' parameter\ + \ for the StorageClass." + type: "string" + provisioner: + description: "Indicates the provisioner property\ + \ for the StorageClass." + type: "string" + reclaimPolicy: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "string" + type: + description: "Indicates the 'type' parameter\ + \ for the StorageClass." + type: "string" + type: "object" + type: "object" + ledgers: + description: "Config for the ledgers volume." + properties: + existingStorageClassName: + description: "Indicates if an already existing storage\ + \ class should be used." + type: "string" + name: + description: "Indicates the suffix for the volume.\ + \ Default value is 'data'." + type: "string" + size: + description: "Indicates the requested size for the\ + \ volume. The format follows the Kubernetes' Quantity." + type: "string" + storageClass: + description: "Indicates if a StorageClass is used.\ + \ The operator will create the StorageClass if\ + \ needed." + properties: + extraParams: + additionalProperties: + type: "string" + description: "Adds extra parameters for the\ + \ StorageClass." + type: "object" + fsType: + description: "Indicates the 'fsType' parameter\ + \ for the StorageClass." + type: "string" + provisioner: + description: "Indicates the provisioner property\ + \ for the StorageClass." + type: "string" + reclaimPolicy: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "string" + type: + description: "Indicates the 'type' parameter\ + \ for the StorageClass." + type: "string" + type: "object" + type: "object" + type: "object" + type: "object" + description: "Bookie sets." + type: "object" + setsUpdateStrategy: + description: "Sets update strategy. 'RollingUpdate' or 'Parallel'.\ + \ Default is 'RollingUpdate'." + type: "string" sidecars: - description: Sidecar containers + description: "Sidecar containers" items: properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" lifecycle: properties: postStart: properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + type: "object" + preStop: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" livenessProbe: properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer exec: properties: command: items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer + type: "string" + type: "array" + type: "object" failureThreshold: - type: integer - initialDelaySeconds: - type: integer + type: "integer" grpc: properties: port: - type: integer + type: "integer" service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer + type: "integer" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" timeoutSeconds: - type: integer + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: items: properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: properties: - optional: - type: boolean name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" securityContext: properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object allowPrivilegeEscalation: - type: boolean + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" capabilities: properties: add: items: - type: string - type: array + type: "string" + type: "array" drop: items: - type: string - type: array - type: object + 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: properties: + level: + type: "string" role: - type: string + type: "string" type: - type: string + type: "string" user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string + type: "string" + type: "object" seccompProfile: properties: - type: - type: string localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: properties: devicePath: - type: string + type: "string" + name: + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + properties: + mountPath: + type: "string" + mountPropagation: + type: "string" name: - type: string - type: object - type: array - type: object - type: array + 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" + tolerations: + description: "Pod tolerations." + items: + properties: + effect: + type: "string" + key: + type: "string" + operator: + type: "string" + tolerationSeconds: + type: "integer" + value: + type: "string" + type: "object" + type: "array" + updateStrategy: + description: "Update strategy for the StatefulSet. Default value\ + \ is rolling update." + properties: + rollingUpdate: + properties: + maxUnavailable: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + partition: + type: "integer" + type: "object" + type: + type: "string" + type: "object" + volumes: + description: "Volumes configuration." + properties: + journal: + description: "Config for the journal volume." + properties: + existingStorageClassName: + description: "Indicates if an already existing storage\ + \ class should be used." + type: "string" + name: + description: "Indicates the suffix for the volume. Default\ + \ value is 'data'." + type: "string" + size: + description: "Indicates the requested size for the volume.\ + \ The format follows the Kubernetes' Quantity." + type: "string" + storageClass: + description: "Indicates if a StorageClass is used. The\ + \ operator will create the StorageClass if needed." + properties: + extraParams: + additionalProperties: + type: "string" + description: "Adds extra parameters for the StorageClass." + type: "object" + fsType: + description: "Indicates the 'fsType' parameter for\ + \ the StorageClass." + type: "string" + provisioner: + description: "Indicates the provisioner property for\ + \ the StorageClass." + type: "string" + reclaimPolicy: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "string" + type: + description: "Indicates the 'type' parameter for the\ + \ StorageClass." + type: "string" + type: "object" + type: "object" + ledgers: + description: "Config for the ledgers volume." + properties: + existingStorageClassName: + description: "Indicates if an already existing storage\ + \ class should be used." + type: "string" + name: + description: "Indicates the suffix for the volume. Default\ + \ value is 'data'." + type: "string" + size: + description: "Indicates the requested size for the volume.\ + \ The format follows the Kubernetes' Quantity." + type: "string" + storageClass: + description: "Indicates if a StorageClass is used. The\ + \ operator will create the StorageClass if needed." + properties: + extraParams: + additionalProperties: + type: "string" + description: "Adds extra parameters for the StorageClass." + type: "object" + fsType: + description: "Indicates the 'fsType' parameter for\ + \ the StorageClass." + type: "string" + provisioner: + description: "Indicates the provisioner property for\ + \ the StorageClass." + type: "string" + reclaimPolicy: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "string" + type: + description: "Indicates the 'type' parameter for the\ + \ StorageClass." + type: "string" + type: "object" + type: "object" + type: "object" + type: "object" + broker: + properties: additionalVolumes: - description: Mount additional volumes to the pod. + description: "Mount additional volumes to the pod." properties: + mounts: + description: "Mount points for the additional volumes" + items: + 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" volumes: - description: Additional volumes to be mounted to the pod + description: "Additional volumes to be mounted to the pod" items: properties: - hostPath: + awsElasticBlockStore: + properties: + fsType: + type: "string" + partition: + type: "integer" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + azureDisk: + properties: + cachingMode: + type: "string" + diskName: + type: "string" + diskURI: + type: "string" + fsType: + type: "string" + kind: + type: "string" + readOnly: + type: "boolean" + type: "object" + azureFile: properties: + readOnly: + type: "boolean" + secretName: + type: "string" + shareName: + type: "string" + type: "object" + cephfs: + properties: + monitors: + items: + type: "string" + type: "array" path: - type: string - type: - type: string - type: object - flexVolume: + type: "string" + readOnly: + type: "boolean" + secretFile: + type: "string" + secretRef: + properties: + name: + type: "string" + type: "object" + user: + type: "string" + type: "object" + cinder: properties: + fsType: + type: "string" readOnly: - type: boolean - options: - additionalProperties: - type: string - type: object + type: "boolean" secretRef: properties: name: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - gcePersistentDisk: + type: "string" + type: "object" + volumeID: + type: "string" + type: "object" + configMap: properties: - readOnly: - type: boolean - pdName: - type: string - partition: - type: integer + defaultMode: + type: "integer" + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + csi: + properties: + driver: + type: "string" fsType: - type: string - type: object + type: "string" + nodePublishSecretRef: + properties: + name: + type: "string" + type: "object" + readOnly: + type: "boolean" + volumeAttributes: + additionalProperties: + type: "string" + type: "object" + type: "object" + downwardAPI: + properties: + defaultMode: + type: "integer" + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + emptyDir: + properties: + medium: + type: "string" + sizeLimit: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" ephemeral: properties: volumeClaimTemplate: properties: metadata: properties: - generateName: - type: string - deletionGracePeriodSeconds: - type: integer - deletionTimestamp: - type: string - resourceVersion: - type: string annotations: additionalProperties: - type: string - type: object - selfLink: - type: string + type: "string" + type: "object" creationTimestamp: - type: string + type: "string" + deletionGracePeriodSeconds: + type: "integer" + deletionTimestamp: + type: "string" finalizers: items: - type: string - type: array + type: "string" + type: "array" + generateName: + type: "string" + generation: + type: "integer" labels: additionalProperties: - type: string - type: object - ownerReferences: - items: - properties: - blockOwnerDeletion: - type: boolean - uid: - type: string - apiVersion: - type: string - name: - type: string - kind: - type: string - controller: - type: boolean - type: object - type: array - uid: - type: string - generation: - type: integer - name: - type: string + type: "string" + type: "object" managedFields: items: properties: - time: - type: string apiVersion: - type: string - fieldsV1: - type: object + type: "string" fieldsType: - type: string + type: "string" + fieldsV1: + type: "object" manager: - type: string + type: "string" operation: - type: string + type: "string" subresource: - type: string - type: object - type: array + type: "string" + time: + type: "string" + type: "object" + type: "array" + name: + type: "string" namespace: - type: string - type: object + type: "string" + ownerReferences: + items: + 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: properties: - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string + accessModes: + items: + type: "string" + type: "array" dataSource: properties: - name: - type: string + apiGroup: + type: "string" kind: - type: string + type: "string" + name: + type: "string" + type: "object" + dataSourceRef: + properties: apiGroup: - type: string - type: object + type: "string" + kind: + type: "string" + name: + type: "string" + namespace: + type: "string" + type: "object" resources: properties: limits: additionalProperties: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" requests: additionalProperties: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - dataSourceRef: + type: "object" + type: "object" + selector: properties: - name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - accessModes: - items: - type: string - type: array + matchExpressions: + items: + 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 + type: "string" volumeName: - type: string - type: object - type: object - type: object - scaleIO: + type: "string" + type: "object" + type: "object" + type: "object" + fc: + 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: + properties: + driver: + type: "string" + fsType: + type: "string" + options: + additionalProperties: + type: "string" + type: "object" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + type: "object" + flocker: + properties: + datasetName: + type: "string" + datasetUUID: + type: "string" + type: "object" + gcePersistentDisk: + properties: + fsType: + type: "string" + partition: + type: "integer" + pdName: + type: "string" + readOnly: + type: "boolean" + type: "object" + gitRepo: + properties: + directory: + type: "string" + repository: + type: "string" + revision: + type: "string" + type: "object" + glusterfs: + properties: + endpoints: + type: "string" + path: + type: "string" + readOnly: + type: "boolean" + type: "object" + hostPath: + properties: + path: + type: "string" + type: + type: "string" + type: "object" + image: + properties: + pullPolicy: + type: "string" + reference: + type: "string" + type: "object" + iscsi: + 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: + properties: + name: + type: "string" + type: "object" + targetPortal: + type: "string" + type: "object" + name: + type: "string" + nfs: + properties: + path: + type: "string" + readOnly: + type: "boolean" + server: + type: "string" + type: "object" + persistentVolumeClaim: + properties: + claimName: + type: "string" + readOnly: + type: "boolean" + type: "object" + photonPersistentDisk: + properties: + fsType: + type: "string" + pdID: + type: "string" + type: "object" + portworxVolume: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + projected: + properties: + defaultMode: + type: "integer" + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + 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: + properties: + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + secret: + properties: + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + serviceAccountToken: + properties: + audience: + type: "string" + expirationSeconds: + type: "integer" + path: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + quobyte: properties: + group: + type: "string" readOnly: - type: boolean - storageMode: - type: string - storagePool: - type: string - system: - type: string - gateway: - type: string + type: "boolean" + registry: + type: "string" + tenant: + type: "string" + user: + type: "string" + volume: + type: "string" + type: "object" + rbd: + properties: + fsType: + type: "string" + image: + type: "string" + keyring: + type: "string" + monitors: + items: + type: "string" + type: "array" + pool: + type: "string" + readOnly: + type: "boolean" secretRef: properties: name: - type: string - type: object + type: "string" + type: "object" + user: + type: "string" + type: "object" + scaleIO: + properties: fsType: - type: string - sslEnabled: - type: boolean - volumeName: - type: string + type: "string" + gateway: + type: "string" protectionDomain: - type: string - type: object - csi: - properties: - nodePublishSecretRef: + type: "string" + readOnly: + type: "boolean" + secretRef: properties: name: - type: string - type: object - readOnly: - type: boolean - volumeAttributes: - additionalProperties: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object + type: "string" + type: "object" + sslEnabled: + type: "boolean" + storageMode: + type: "string" + storagePool: + type: "string" + system: + type: "string" + volumeName: + type: "string" + type: "object" secret: properties: - optional: - type: boolean - secretName: - type: string + defaultMode: + type: "integer" items: items: properties: - path: - type: string key: - type: string + type: "string" mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - name: - type: string + type: "integer" + path: + type: "string" + type: "object" + type: "array" + optional: + type: "boolean" + secretName: + type: "string" + type: "object" + storageos: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + volumeName: + type: "string" + volumeNamespace: + type: "string" + type: "object" vsphereVolume: properties: - storagePolicyName: - type: string + fsType: + type: "string" storagePolicyID: - type: string + type: "string" + storagePolicyName: + type: "string" volumePath: - type: string - fsType: - type: string - type: object - gitRepo: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + annotations: + additionalProperties: + type: "string" + description: "Annotations to add to each resource (except pods)." + type: "object" + antiAffinity: + description: "Pod anti-affinity configuration. This override the\ + \ global value if set." + properties: + host: + description: "Indicates the reclaimPolicy property for the\ + \ StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + zone: + description: "Indicates the provisioner property for the StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + type: "object" + autoscaler: + description: "Autoscaling config." + properties: + enabled: + description: "Enable autoscaling for brokers." + type: "boolean" + higherCpuThreshold: + description: "The threshold to trigger a scale up. The autoscaler\ + \ will scale up if all the brokers cpu usage is higher than\ + \ this threshold. Default is '0.8'" + maximum: 1.0 + minimum: 0.0 + type: "number" + lowerCpuThreshold: + description: "The threshold to trigger a scale down. The autoscaler\ + \ will scale down if all the brokers cpu usage is lower\ + \ than this threshold. Default is '0.4'" + maximum: 1.0 + minimum: 0.0 + type: "number" + max: + description: "Max number of brokers. If the number of brokers\ + \ is equals to this value, the autoscaler will never scale\ + \ up." + type: "integer" + min: + description: "Min number of brokers. If the number of brokers\ + \ is equals to this value, the autoscaler will never scale\ + \ down." + minimum: 1.0 + type: "integer" + periodMs: + description: "The interval in milliseconds between two consecutive\ + \ autoscaling checks." + minimum: 1000.0 + type: "integer" + resourcesUsageSource: + description: "Source for getting the brokers resources usage.\ + \ Possible values are 'PulsarLBReport' and 'K8SMetrics'.\ + \ Default is 'PulsarLBReport'" + type: "string" + scaleDownBy: + description: "The number of brokers to remove at each scale\ + \ down. Default is '1'" + minimum: 1.0 + type: "integer" + scaleUpBy: + description: "The number of brokers to add at each scale up.\ + \ Default is '1'" + minimum: 1.0 + type: "integer" + stabilizationWindowMs: + description: "The stabilization window is used to restrict\ + \ the flapping of replica count when the metrics used for\ + \ scaling keep fluctuating. The autoscaling algorithm uses\ + \ this window to infer a previous desired state and avoid\ + \ unwanted changes to workload scale.Default value is 5\ + \ minutes after the pod readiness." + minimum: 1.0 + type: "integer" + type: "object" + config: + description: "Configuration." + x-kubernetes-preserve-unknown-fields: true + env: + description: "Additional container env variables." + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: properties: - revision: - type: string - repository: - type: string - directory: - type: string - type: object - glusterfs: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: properties: - path: - type: string - readOnly: - type: boolean - endpoints: - type: string - type: object - nfs: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: properties: - path: - type: string - readOnly: - type: boolean - server: - type: string - type: object - cinder: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: properties: - readOnly: - type: boolean - secretRef: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + functionsWorkerEnabled: + description: "Enable functions worker embedded in the broker." + type: "boolean" + gracePeriod: + description: "Termination grace period in seconds." + minimum: 0.0 + type: "integer" + image: + description: "Override Pulsar image." + type: "string" + imagePullPolicy: + description: "Override image pull policy." + type: "string" + imagePullSecrets: + description: "Image pull secrets." + items: + properties: + name: + type: "string" + type: "object" + type: "array" + initContainers: + description: "Init containers" + items: + properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + preStop: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: properties: - name: - type: string - type: object - fsType: - type: string - volumeID: - type: string - type: object - flocker: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" + livenessProbe: + properties: + exec: properties: - datasetUUID: - type: string - datasetName: - type: string - type: object - quobyte: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: properties: - group: - type: string - readOnly: - type: boolean - volume: - type: string - user: - type: string - registry: - type: string - tenant: - type: string - type: object - photonPersistentDisk: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: properties: - pdID: - type: string - fsType: - type: string - type: object - persistentVolumeClaim: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: properties: - readOnly: - type: boolean - claimName: - type: string - type: object - awsElasticBlockStore: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: + exec: properties: - readOnly: - type: boolean - partition: - type: integer - fsType: - type: string - volumeID: - type: string - type: object - configMap: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: properties: - optional: - type: boolean - items: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: items: properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - name: - type: string - type: object - storageos: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: properties: - readOnly: - type: boolean - volumeNamespace: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - volumeName: - type: string - type: object - portworxVolume: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: + items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: properties: - readOnly: - type: boolean - fsType: - type: string - volumeID: - type: string - type: object - iscsi: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: properties: - readOnly: - type: boolean - chapAuthSession: - type: boolean - lun: - type: integer - targetPortal: - type: string - iscsiInterface: - type: string - portals: + add: items: - type: string - type: array - initiatorName: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - iqn: - type: string - chapAuthDiscovery: - type: boolean - type: object - rbd: - properties: - readOnly: - type: boolean - pool: - type: string - keyring: - type: string - image: - type: string - secretRef: - properties: - name: - type: string - type: object - monitors: + type: "string" + type: "array" + drop: items: - type: string - type: array - fsType: - type: string - user: - type: string - type: object - azureFile: + 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: properties: - readOnly: - type: boolean - secretName: - type: string - shareName: - type: string - type: object - downwardAPI: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: properties: - items: - items: - properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - projected: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: properties: - defaultMode: - type: integer - sources: - items: - properties: - secret: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - name: - type: string - type: object - configMap: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - name: - type: string - type: object - serviceAccountToken: - properties: - path: - type: string - audience: - type: string - expirationSeconds: - type: integer - type: object - downwardAPI: - properties: - items: - items: - properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - type: object - type: object - type: array - type: object - azureDisk: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: + properties: + exec: properties: - readOnly: - type: boolean - diskName: - type: string - cachingMode: - type: string - fsType: - type: string - kind: - type: string - diskURI: - type: string - type: object - cephfs: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: properties: - path: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - monitors: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: items: - type: string - type: array - secretFile: - type: string - user: - type: string - type: object - emptyDir: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: properties: - sizeLimit: + host: + type: "string" + port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - medium: - type: string - type: object - fc: + 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: + properties: + devicePath: + type: "string" + name: + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + 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" + kafka: + description: "Enable Kafka protocol." + properties: + enabled: + description: "Allow the cluster to accept Kafka protocol.\ + \ Default is 'false'." + type: "boolean" + exposePorts: + description: "Expose the kafka protocol port." + type: "boolean" + type: "object" + labels: + additionalProperties: + type: "string" + description: "Labels to add to each resource (except pods)." + type: "object" + matchLabels: + additionalProperties: + type: "string" + description: "Match labels selectors to add to each pod." + type: "object" + minReadySeconds: + description: "Min seconds to wait before considering the pod as\ + \ ready." + type: "integer" + nodeAffinity: + description: "Node affinity configuration." + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: properties: - readOnly: - type: boolean - lun: - type: integer - wwids: + matchExpressions: items: - type: string - type: array - targetWWNs: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: items: - type: string - type: array - fsType: - type: string - type: object - type: object - type: array - mounts: - description: Mount points for the additional volumes + 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" + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + type: "object" + type: "array" + type: "object" + type: "object" + nodeSelectors: + additionalProperties: + type: "string" + description: "Additional node selectors." + type: "object" + overrideResourceName: + description: "Override the resource names generated by the operator." + type: "string" + pdb: + description: "Pod disruption budget configuration." + properties: + enabled: + description: "Enable Pdb policy." + type: "boolean" + maxUnavailable: + description: "Number of maxUnavailable pods." + type: "integer" + minAvailable: + description: "Number of minAvailable pods." + type: "integer" + type: "object" + podAnnotations: + additionalProperties: + type: "string" + description: "Annotations to add to pod." + type: "object" + podLabels: + additionalProperties: + type: "string" + description: "Labels to add to each pod." + type: "object" + podManagementPolicy: + description: "Pod management policy." + type: "string" + probes: + description: "Liveness and readiness probes configuration." + properties: + liveness: + description: "Liveness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds) for the\ + \ probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period (in\ + \ seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds) for the\ + \ probe." + type: "integer" + type: "object" + readiness: + description: "Readiness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds) for the\ + \ probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period (in\ + \ seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds) for the\ + \ probe." + type: "integer" + type: "object" + useHealthCheckForLiveness: + description: "Use healthcheck for the liveness probe. If false,\ + \ the /metrics endpoint will be used." + type: "boolean" + useHealthCheckForReadiness: + description: "Use healthcheck for the readiness probe. If\ + \ false, the /metrics endpoint will be used." + type: "boolean" + type: "object" + replicas: + description: "Number of desired replicas." + type: "integer" + resources: + description: "Resources requirements." + properties: + claims: items: properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string name: - type: string - type: object - type: array - type: object - env: - description: Additional container env variables. - items: - properties: - value: - type: string - valueFrom: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + securityContext: + description: "Subset of PodSecurityContext for basic UID, GID,\ + \ and volume access control." + properties: + fsGroup: + type: "integer" + fsGroupChangePolicy: + type: "string" + runAsGroup: + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + type: "integer" + supplementalGroups: + items: + type: "integer" + type: "array" + type: "object" + service: + description: "Service configuration." + properties: + additionalPorts: + description: "Additional ports to add to the Service." + items: properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - labels: + appProtocol: + type: "string" + name: + type: "string" + nodePort: + type: "integer" + port: + type: "integer" + protocol: + type: "string" + targetPort: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "array" + annotations: + additionalProperties: + type: "string" + description: "Additional annotations to add to the Service." + type: "object" + type: + description: "Service type. Default value is 'ClusterIP'" + type: "string" + type: "object" + serviceAccountName: + description: "Service account name for the resource." + type: "string" + sets: additionalProperties: - type: string - description: Labels to add to each resource (except pods). - type: object - initContainers: - description: Init containers - items: properties: - lifecycle: + additionalVolumes: + description: "Mount additional volumes to the pod." properties: - postStart: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: + mounts: + description: "Mount points for the additional volumes" + items: + 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" + volumes: + description: "Additional volumes to be mounted to the\ + \ pod" + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: "string" + partition: + type: "integer" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + azureDisk: + properties: + cachingMode: + type: "string" + diskName: + type: "string" + diskURI: + type: "string" + fsType: + type: "string" + kind: + type: "string" + readOnly: + type: "boolean" + type: "object" + azureFile: + properties: + readOnly: + type: "boolean" + secretName: + type: "string" + shareName: + type: "string" + type: "object" + cephfs: + properties: + monitors: + items: + type: "string" + type: "array" + path: + type: "string" + readOnly: + type: "boolean" + secretFile: + type: "string" + secretRef: properties: - value: - type: string name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: + type: "string" + type: "object" + user: + type: "string" + type: "object" + cinder: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + secretRef: properties: - value: - type: string name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array - livenessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: + type: "string" + type: "object" + volumeID: + type: "string" + type: "object" + configMap: properties: - value: - type: string + defaultMode: + type: "integer" + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: + type: "string" + optional: + type: "boolean" + type: "object" + csi: + properties: + driver: + type: "string" + fsType: + type: "string" + nodePublishSecretRef: + properties: + name: + type: "string" + type: "object" + readOnly: + type: "boolean" + volumeAttributes: + additionalProperties: + type: "string" + type: "object" + type: "object" + downwardAPI: + properties: + defaultMode: + type: "integer" + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + emptyDir: + properties: + medium: + type: "string" + sizeLimit: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: "string" + type: "object" + creationTimestamp: + type: "string" + deletionGracePeriodSeconds: + type: "integer" + deletionTimestamp: + type: "string" + finalizers: + items: + type: "string" + type: "array" + generateName: + type: "string" + generation: + type: "integer" + labels: + additionalProperties: + type: "string" + type: "object" + managedFields: + items: + properties: + apiVersion: + type: "string" + fieldsType: + type: "string" + fieldsV1: + type: "object" + manager: + type: "string" + operation: + type: "string" + subresource: + type: "string" + time: + type: "string" + type: "object" + type: "array" + name: + type: "string" + namespace: + type: "string" + ownerReferences: + items: + 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: + properties: + accessModes: + items: + type: "string" + type: "array" + dataSource: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + type: "object" + dataSourceRef: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + namespace: + type: "string" + type: "object" + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + selector: + properties: + matchExpressions: + items: + 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: properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: + fsType: + type: "string" + lun: + type: "integer" + readOnly: + type: "boolean" + targetWWNs: + items: + type: "string" + type: "array" + wwids: + items: + type: "string" + type: "array" + type: "object" + flexVolume: properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: + driver: + type: "string" + fsType: + type: "string" + options: + additionalProperties: + type: "string" + type: "object" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + type: "object" + flocker: properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: + datasetName: + type: "string" + datasetUUID: + type: "string" + type: "object" + gcePersistentDisk: properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: + fsType: + type: "string" + partition: + type: "integer" + pdName: + type: "string" + readOnly: + type: "boolean" + type: "object" + gitRepo: properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: + directory: + type: "string" + repository: + type: "string" + revision: + type: "string" + type: "object" + glusterfs: properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: - properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: - properties: - optional: - type: boolean + endpoints: + type: "string" + path: + type: "string" + readOnly: + type: "boolean" + type: "object" + hostPath: + properties: + path: + type: "string" + type: + type: "string" + type: "object" + image: + properties: + pullPolicy: + type: "string" + reference: + type: "string" + type: "object" + iscsi: + 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: + properties: + name: + type: "string" + type: "object" + targetPortal: + type: "string" + type: "object" name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - securityContext: - properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: - properties: - add: - items: - type: string - type: array - drop: - items: - type: string - type: array - type: object - seLinuxOptions: - properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: - properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array - pdb: - description: Pod disruption budget configuration. - properties: - maxUnavailable: - description: Number of maxUnavailable pods. - type: integer - enabled: - description: Enable Pdb policy. - type: boolean - type: object - tolerations: - description: Pod tolerations. - items: - properties: - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - effect: - type: string - type: object - type: array - replicas: - description: Number of desired replicas. - type: integer - nodeAffinity: - description: Node affinity configuration. - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - weight: - type: integer - preference: - properties: - matchFields: - items: + type: "string" + nfs: + properties: + path: + type: "string" + readOnly: + type: "boolean" + server: + type: "string" + type: "object" + persistentVolumeClaim: + properties: + claimName: + type: "string" + readOnly: + type: "boolean" + type: "object" + photonPersistentDisk: + properties: + fsType: + type: "string" + pdID: + type: "string" + type: "object" + portworxVolume: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + projected: + properties: + defaultMode: + type: "integer" + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + 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: + properties: + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + secret: + properties: + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + serviceAccountToken: + properties: + audience: + type: "string" + expirationSeconds: + type: "integer" + path: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + quobyte: properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: + group: + type: "string" + readOnly: + type: "boolean" + registry: + type: "string" + tenant: + type: "string" + user: + type: "string" + volume: + type: "string" + type: "object" + rbd: properties: - key: - type: string - values: + fsType: + type: "string" + image: + type: "string" + keyring: + type: "string" + monitors: items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchFields: - items: + type: "string" + type: "array" + pool: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + user: + type: "string" + type: "object" + scaleIO: properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: + fsType: + type: "string" + gateway: + type: "string" + protectionDomain: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + sslEnabled: + type: "boolean" + storageMode: + type: "string" + storagePool: + type: "string" + system: + type: "string" + volumeName: + type: "string" + type: "object" + secret: properties: - key: - type: string - values: + defaultMode: + type: "integer" + items: items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: array - type: object - type: object - nodeSelectors: - additionalProperties: - type: string - description: Additional node selectors. - type: object - antiAffinity: - description: Pod anti-affinity configuration. This override the - global value if set. - properties: - host: - description: Indicates the reclaimPolicy property for the - StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - zone: - description: Indicates the provisioner property for the StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - type: object - imagePullPolicy: - description: Override image pull policy. - type: string - podLabels: - additionalProperties: - type: string - description: Labels to add to each pod. - type: object - matchLabels: - additionalProperties: - type: string - description: Match labels selectors to add to each pod. - type: object - serviceAccountName: - description: Service account name for the resource. - type: string - type: object - broker: - properties: - sets: - additionalProperties: - properties: - updateStrategy: - description: Update strategy for the StatefulSet. - properties: - type: - type: string - rollingUpdate: - properties: - maxUnavailable: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - partition: - type: integer - type: object - type: object - config: - description: Configuration. - x-kubernetes-preserve-unknown-fields: true - probes: - description: Liveness and readiness probes configuration. + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + optional: + type: "boolean" + secretName: + type: "string" + type: "object" + storageos: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + volumeName: + type: "string" + volumeNamespace: + type: "string" + type: "object" + vsphereVolume: + properties: + fsType: + type: "string" + storagePolicyID: + type: "string" + storagePolicyName: + type: "string" + volumePath: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + annotations: + additionalProperties: + type: "string" + description: "Annotations to add to each resource (except\ + \ pods)." + type: "object" + antiAffinity: + description: "Pod anti-affinity configuration. This override\ + \ the global value if set." properties: - useHealthCheckForReadiness: - description: "Use healthcheck for the readiness probe.\ - \ If false, the /metrics endpoint will be used." - type: boolean - useHealthCheckForLiveness: - description: "Use healthcheck for the liveness probe.\ - \ If false, the /metrics endpoint will be used." - type: boolean - liveness: - description: Liveness probe configuration. + host: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." properties: - periodSeconds: - description: Indicates the period (in seconds) for - the probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period - (in seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) - for the probe. - type: integer enabled: - description: Enables the probe. - type: boolean - type: object - readiness: - description: Readiness probe configuration. + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "boolean" + type: "object" + zone: + description: "Indicates the provisioner property for\ + \ the StorageClass." properties: - periodSeconds: - description: Indicates the period (in seconds) for - the probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period - (in seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) - for the probe. - type: integer enabled: - description: Enables the probe. - type: boolean - type: object - type: object - gracePeriod: - description: Termination grace period in seconds. - minimum: 0.0 - type: integer - functionsWorkerEnabled: - description: Enable functions worker embedded in the broker. - type: boolean - transactions: - description: Enable transactions in the broker. - properties: - initJob: - description: Config for the init job. - properties: - resources: - description: Resources requirements. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - partitions: - description: Number of coordinators to create. - type: integer - enabled: - description: Initialize the transaction coordinator - if it's not yet and configure the broker to accept - transactions. - type: boolean - type: object - service: - description: Service configuration. - properties: - additionalPorts: - description: Additional ports to add to the Service. - items: - properties: - targetPort: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - port: - type: integer - nodePort: - type: integer - name: - type: string - appProtocol: - type: string - protocol: - type: string - type: object - type: array - annotations: - additionalProperties: - type: string - description: Additional annotations to add to the Service. - type: object - type: - description: Service type. Default value is 'ClusterIP' - type: string - type: object + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "boolean" + type: "object" + type: "object" autoscaler: - description: Autoscaling config. + description: "Autoscaling config." properties: - periodMs: - description: The interval in milliseconds between two - consecutive autoscaling checks. - minimum: 1000.0 - type: integer - resourcesUsageSource: - description: Source for getting the brokers resources - usage. Possible values are 'PulsarLBReport' and 'K8SMetrics'. - Default is 'PulsarLBReport' - type: string + enabled: + description: "Enable autoscaling for brokers." + type: "boolean" + higherCpuThreshold: + description: "The threshold to trigger a scale up. The\ + \ autoscaler will scale up if all the brokers cpu\ + \ usage is higher than this threshold. Default is\ + \ '0.8'" + maximum: 1.0 + minimum: 0.0 + type: "number" + lowerCpuThreshold: + description: "The threshold to trigger a scale down.\ + \ The autoscaler will scale down if all the brokers\ + \ cpu usage is lower than this threshold. Default\ + \ is '0.4'" + maximum: 1.0 + minimum: 0.0 + type: "number" max: description: "Max number of brokers. If the number of\ \ brokers is equals to this value, the autoscaler\ \ will never scale up." - type: integer - higherCpuThreshold: - description: The threshold to trigger a scale up. The - autoscaler will scale up if all the brokers cpu usage - is higher than this threshold. Default is '0.8' - maximum: 1.0 - minimum: 0.0 - type: number - enabled: - description: Enable autoscaling for brokers. - type: boolean + type: "integer" min: description: "Min number of brokers. If the number of\ \ brokers is equals to this value, the autoscaler\ \ will never scale down." minimum: 1.0 - type: integer - scaleUpBy: - description: The number of brokers to add at each scale - up. Default is '1' - minimum: 1.0 - type: integer - stabilizationWindowMs: - description: The stabilization window is used to restrict - the flapping of replica count when the metrics used - for scaling keep fluctuating. The autoscaling algorithm - uses this window to infer a previous desired state - and avoid unwanted changes to workload scale.Default - value is 5 minutes after the pod readiness. - minimum: 1.0 - type: integer - lowerCpuThreshold: - description: The threshold to trigger a scale down. - The autoscaler will scale down if all the brokers - cpu usage is lower than this threshold. Default is - '0.4' - maximum: 1.0 - minimum: 0.0 - type: number + type: "integer" + periodMs: + description: "The interval in milliseconds between two\ + \ consecutive autoscaling checks." + minimum: 1000.0 + type: "integer" + resourcesUsageSource: + description: "Source for getting the brokers resources\ + \ usage. Possible values are 'PulsarLBReport' and\ + \ 'K8SMetrics'. Default is 'PulsarLBReport'" + type: "string" scaleDownBy: - description: The number of brokers to remove at each - scale down. Default is '1' + description: "The number of brokers to remove at each\ + \ scale down. Default is '1'" minimum: 1.0 - type: integer - type: object - podManagementPolicy: - description: Pod management policy. - type: string - resources: - description: Resources requirements. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - overrideResourceName: - description: Override the resource names generated by the - operator. - type: string - kafka: - description: Enable Kafka protocol. - properties: - exposePorts: - description: Expose the kafka protocol port. - type: boolean - enabled: - description: Allow the cluster to accept Kafka protocol. - Default is 'false'. - type: boolean - type: object - imagePullSecrets: - description: Image pull secrets. + type: "integer" + scaleUpBy: + description: "The number of brokers to add at each scale\ + \ up. Default is '1'" + minimum: 1.0 + type: "integer" + stabilizationWindowMs: + description: "The stabilization window is used to restrict\ + \ the flapping of replica count when the metrics used\ + \ for scaling keep fluctuating. The autoscaling algorithm\ + \ uses this window to infer a previous desired state\ + \ and avoid unwanted changes to workload scale.Default\ + \ value is 5 minutes after the pod readiness." + minimum: 1.0 + type: "integer" + type: "object" + config: + description: "Configuration." + x-kubernetes-preserve-unknown-fields: true + env: + description: "Additional container env variables." items: properties: name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + functionsWorkerEnabled: + description: "Enable functions worker embedded in the broker." + type: "boolean" + gracePeriod: + description: "Termination grace period in seconds." + minimum: 0.0 + type: "integer" image: - description: Override Pulsar image. - type: string - annotations: - additionalProperties: - type: string - description: Annotations to add to each resource (except - pods). - type: object - podAnnotations: - additionalProperties: - type: string - description: Annotations to add to pod. - type: object - sidecars: - description: Sidecar containers + description: "Override Pulsar image." + type: "string" + imagePullPolicy: + description: "Override image pull policy." + type: "string" + imagePullSecrets: + description: "Image pull secrets." items: properties: + name: + type: "string" + type: "object" + type: "array" + initContainers: + description: "Init containers" + items: + properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" lifecycle: properties: postStart: properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + type: "object" + preStop: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" livenessProbe: properties: - periodSeconds: - type: integer + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" failureThreshold: - type: integer - initialDelaySeconds: - type: integer + type: "integer" grpc: properties: port: - type: integer + type: "integer" service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer + scheme: + type: "string" + type: "object" initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object + type: "integer" + periodSeconds: + type: "integer" successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer + type: "integer" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" timeoutSeconds: - type: integer + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: items: properties: - value: - type: string - valueFrom: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: + 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" startupProbe: properties: - periodSeconds: - type: integer + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" failureThreshold: - type: integer - initialDelaySeconds: - type: integer + type: "integer" grpc: properties: port: - type: integer + type: "integer" service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + stdin: + type: "boolean" stdinOnce: - type: boolean - ports: + type: "boolean" + terminationMessagePath: + type: "string" + terminationMessagePolicy: + type: "string" + tty: + type: "boolean" + volumeDevices: items: properties: - containerPort: - type: integer - hostPort: - type: integer + devicePath: + type: "string" name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: - properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: - properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array + type: "string" + type: "object" + type: "array" volumeMounts: items: properties: - readOnly: - type: boolean - subPathExpr: - type: string mountPath: - type: string + type: "string" mountPropagation: - type: string - subPath: - type: string + type: "string" name: - type: string - type: object - type: array - securityContext: + 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" + kafka: + description: "Enable Kafka protocol." + properties: + enabled: + description: "Allow the cluster to accept Kafka protocol.\ + \ Default is 'false'." + type: "boolean" + exposePorts: + description: "Expose the kafka protocol port." + type: "boolean" + type: "object" + labels: + additionalProperties: + type: "string" + description: "Labels to add to each resource (except pods)." + type: "object" + matchLabels: + additionalProperties: + type: "string" + description: "Match labels selectors to add to each pod." + type: "object" + minReadySeconds: + description: "Min seconds to wait before considering the\ + \ pod as ready." + type: "integer" + nodeAffinity: + description: "Node affinity configuration." + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: + preference: properties: - add: + matchExpressions: items: - type: string - type: array - drop: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: items: - type: string - type: array - type: object - seLinuxOptions: - properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: + 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" + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + type: "object" + type: "array" + type: "object" + type: "object" + nodeSelectors: + additionalProperties: + type: "string" + description: "Additional node selectors." + type: "object" + overrideResourceName: + description: "Override the resource names generated by the\ + \ operator." + type: "string" + pdb: + description: "Pod disruption budget configuration." + properties: + enabled: + description: "Enable Pdb policy." + type: "boolean" + maxUnavailable: + description: "Number of maxUnavailable pods." + type: "integer" + minAvailable: + description: "Number of minAvailable pods." + type: "integer" + type: "object" + podAnnotations: + additionalProperties: + type: "string" + description: "Annotations to add to pod." + type: "object" + podLabels: + additionalProperties: + type: "string" + description: "Labels to add to each pod." + type: "object" + podManagementPolicy: + description: "Pod management policy." + type: "string" + probes: + description: "Liveness and readiness probes configuration." + properties: + liveness: + description: "Liveness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds)\ + \ for the probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period\ + \ (in seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds)\ + \ for the probe." + type: "integer" + type: "object" + readiness: + description: "Readiness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds)\ + \ for the probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period\ + \ (in seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds)\ + \ for the probe." + type: "integer" + type: "object" + useHealthCheckForLiveness: + description: "Use healthcheck for the liveness probe.\ + \ If false, the /metrics endpoint will be used." + type: "boolean" + useHealthCheckForReadiness: + description: "Use healthcheck for the readiness probe.\ + \ If false, the /metrics endpoint will be used." + type: "boolean" + type: "object" + replicas: + description: "Number of desired replicas." + type: "integer" + resources: + description: "Resources requirements." + properties: + claims: + items: properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + securityContext: + description: "Subset of PodSecurityContext for basic UID,\ + \ GID, and volume access control." + properties: + fsGroup: + type: "integer" + fsGroupChangePolicy: + type: "string" + runAsGroup: + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + type: "integer" + supplementalGroups: + items: + type: "integer" + type: "array" + type: "object" + service: + description: "Service configuration." + properties: + additionalPorts: + description: "Additional ports to add to the Service." + items: + properties: + appProtocol: + type: "string" + name: + type: "string" + nodePort: + type: "integer" + port: + type: "integer" + protocol: + type: "string" + targetPort: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "array" + annotations: + additionalProperties: + type: "string" + description: "Additional annotations to add to the Service." + type: "object" + type: + description: "Service type. Default value is 'ClusterIP'" + type: "string" + type: "object" + serviceAccountName: + description: "Service account name for the resource." + type: "string" + sidecars: + description: "Sidecar containers" + items: + properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: items: properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array - additionalVolumes: - description: Mount additional volumes to the pod. - properties: - volumes: - description: Additional volumes to be mounted to the - pod - items: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" + lifecycle: properties: - hostPath: - properties: - path: - type: string - type: - type: string - type: object - flexVolume: + postStart: properties: - readOnly: - type: boolean - options: - additionalProperties: - type: string - type: object - secretRef: + exec: properties: - name: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - gcePersistentDisk: - properties: - readOnly: - type: boolean - pdName: - type: string - partition: - type: integer - fsType: - type: string - type: object - ephemeral: - properties: - volumeClaimTemplate: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: properties: - metadata: - properties: - generateName: - type: string - deletionGracePeriodSeconds: - type: integer - deletionTimestamp: - type: string - resourceVersion: - type: string - annotations: - additionalProperties: - type: string - type: object - selfLink: - type: string - creationTimestamp: - type: string - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - ownerReferences: - items: - properties: - blockOwnerDeletion: - type: boolean - uid: - type: string - apiVersion: - type: string - name: - type: string - kind: - type: string - controller: - type: boolean - type: object - type: array - uid: - type: string - generation: - type: integer - name: - type: string - managedFields: - items: - properties: - time: - type: string - apiVersion: - type: string - fieldsV1: - type: object - fieldsType: - type: string - manager: - type: string - operation: - type: string - subresource: - type: string - type: object - type: array - namespace: - type: string - type: object - spec: - properties: - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string - dataSource: - properties: - name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - dataSourceRef: - properties: - name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - accessModes: - items: - type: string - type: array - volumeMode: - type: string - volumeName: - type: string - type: object - type: object - type: object - scaleIO: - properties: - readOnly: - type: boolean - storageMode: - type: string - storagePool: - type: string - system: - type: string - gateway: - type: string - secretRef: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: properties: - name: - type: string - type: object - fsType: - type: string - sslEnabled: - type: boolean - volumeName: - type: string - protectionDomain: - type: string - type: object - csi: - properties: - nodePublishSecretRef: + seconds: + type: "integer" + type: "object" + tcpSocket: properties: - name: - type: string - type: object - readOnly: - type: boolean - volumeAttributes: - additionalProperties: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - secret: - properties: - optional: - type: boolean - secretName: - type: string - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - name: - type: string - vsphereVolume: - properties: - storagePolicyName: - type: string - storagePolicyID: - type: string - volumePath: - type: string - fsType: - type: string - type: object - gitRepo: - properties: - revision: - type: string - repository: - type: string - directory: - type: string - type: object - glusterfs: - properties: - path: - type: string - readOnly: - type: boolean - endpoints: - type: string - type: object - nfs: - properties: - path: - type: string - readOnly: - type: boolean - server: - type: string - type: object - cinder: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + preStop: properties: - readOnly: - type: boolean - secretRef: + exec: properties: - name: - type: string - type: object - fsType: - type: string - volumeID: - type: string - type: object - flocker: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" + livenessProbe: + properties: + exec: properties: - datasetUUID: - type: string - datasetName: - type: string - type: object - quobyte: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: properties: - group: - type: string - readOnly: - type: boolean - volume: - type: string - user: - type: string - registry: - type: string - tenant: - type: string - type: object - photonPersistentDisk: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: properties: - pdID: - type: string - fsType: - type: string - type: object - persistentVolumeClaim: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: properties: - readOnly: - type: boolean - claimName: - type: string - type: object - awsElasticBlockStore: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: + exec: properties: - readOnly: - type: boolean - partition: - type: integer - fsType: - type: string - volumeID: - type: string - type: object - configMap: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: properties: - optional: - type: boolean - items: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: items: properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - name: - type: string - type: object - storageos: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: properties: - readOnly: - type: boolean - volumeNamespace: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - volumeName: - type: string - type: object - portworxVolume: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: + items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: properties: - readOnly: - type: boolean - fsType: - type: string - volumeID: - type: string - type: object - iscsi: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: properties: - readOnly: - type: boolean - chapAuthSession: - type: boolean - lun: - type: integer - targetPortal: - type: string - iscsiInterface: - type: string - portals: + add: items: - type: string - type: array - initiatorName: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - iqn: - type: string - chapAuthDiscovery: - type: boolean - type: object - rbd: - properties: - readOnly: - type: boolean - pool: - type: string - keyring: - type: string - image: - type: string - secretRef: - properties: - name: - type: string - type: object - monitors: + type: "string" + type: "array" + drop: items: - type: string - type: array - fsType: - type: string + 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" user: - type: string - type: object - azureFile: + type: "string" + type: "object" + seccompProfile: properties: - readOnly: - type: boolean - secretName: - type: string - shareName: - type: string - type: object - downwardAPI: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: properties: - items: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: + properties: + exec: + properties: + command: items: - properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - projected: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: properties: - defaultMode: - type: integer - sources: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: items: properties: - secret: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - name: - type: string - type: object - configMap: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - name: - type: string - type: object - serviceAccountToken: - properties: - path: - type: string - audience: - type: string - expirationSeconds: - type: integer - type: object - downwardAPI: - properties: - items: - items: - properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - type: object - type: object - type: array - type: object - azureDisk: - properties: - readOnly: - type: boolean - diskName: - type: string - cachingMode: - type: string - fsType: - type: string - kind: - type: string - diskURI: - type: string - type: object - cephfs: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: properties: - path: - type: string - readOnly: - type: boolean - secretRef: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: + properties: + devicePath: + type: "string" + name: + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + 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" + tolerations: + description: "Pod tolerations." + items: + properties: + effect: + type: "string" + key: + type: "string" + operator: + type: "string" + tolerationSeconds: + type: "integer" + value: + type: "string" + type: "object" + type: "array" + transactions: + description: "Enable transactions in the broker." + properties: + enabled: + description: "Initialize the transaction coordinator\ + \ if it's not yet and configure the broker to accept\ + \ transactions." + type: "boolean" + initJob: + description: "Config for the init job." + properties: + resources: + description: "Resources requirements." + properties: + claims: + items: properties: name: - type: string - type: object - monitors: - items: - type: string - type: array - secretFile: - type: string - user: - type: string - type: object - emptyDir: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + type: "object" + partitions: + description: "Number of coordinators to create." + type: "integer" + type: "object" + updateStrategy: + description: "Update strategy for the StatefulSet." + properties: + rollingUpdate: + properties: + maxUnavailable: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + partition: + type: "integer" + type: "object" + type: + type: "string" + type: "object" + type: "object" + description: "Broker sets." + type: "object" + setsUpdateStrategy: + description: "Sets update strategy. 'RollingUpdate' or 'Parallel'.\ + \ Default is 'RollingUpdate'." + type: "string" + sidecars: + description: "Sidecar containers" + items: + properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: properties: - sizeLimit: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - medium: - type: string - type: object - fc: + resource: + type: "string" + type: "object" + secretKeyRef: properties: - readOnly: - type: boolean - lun: - type: integer - wwids: - items: - type: string - type: array - targetWWNs: - items: - type: string - type: array - fsType: - type: string - type: object - type: object - type: array - mounts: - description: Mount points for the additional volumes - items: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string name: - type: string - type: object - type: array - type: object - env: - description: Additional container env variables. + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + preStop: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" + livenessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: items: properties: - value: - type: string - valueFrom: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: + 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: properties: - optional: - type: boolean - key: - type: string name: - type: string - type: object - type: object + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: + properties: + devicePath: + type: "string" name: - type: string - type: object - type: array - labels: - additionalProperties: - type: string - description: Labels to add to each resource (except pods). - type: object - initContainers: - description: Init containers + type: "string" + type: "object" + type: "array" + volumeMounts: items: properties: - lifecycle: - properties: - postStart: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: + 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" + tolerations: + description: "Pod tolerations." + items: + properties: + effect: + type: "string" + key: + type: "string" + operator: + type: "string" + tolerationSeconds: + type: "integer" + value: + type: "string" + type: "object" + type: "array" + transactions: + description: "Enable transactions in the broker." + properties: + enabled: + description: "Initialize the transaction coordinator if it's\ + \ not yet and configure the broker to accept transactions." + type: "boolean" + initJob: + description: "Config for the init job." + properties: + resources: + description: "Resources requirements." + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + type: "object" + partitions: + description: "Number of coordinators to create." + type: "integer" + type: "object" + updateStrategy: + description: "Update strategy for the StatefulSet." + properties: + rollingUpdate: + properties: + maxUnavailable: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + partition: + type: "integer" + type: "object" + type: + type: "string" + type: "object" + type: "object" + functionsWorker: + properties: + additionalVolumes: + description: "Mount additional volumes to the pod." + properties: + mounts: + description: "Mount points for the additional volumes" + items: + 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" + volumes: + description: "Additional volumes to be mounted to the pod" + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: "string" + partition: + type: "integer" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + azureDisk: + properties: + cachingMode: + type: "string" + diskName: + type: "string" + diskURI: + type: "string" + fsType: + type: "string" + kind: + type: "string" + readOnly: + type: "boolean" + type: "object" + azureFile: + properties: + readOnly: + type: "boolean" + secretName: + type: "string" + shareName: + type: "string" + type: "object" + cephfs: + properties: + monitors: + items: + type: "string" + type: "array" + path: + type: "string" + readOnly: + type: "boolean" + secretFile: + type: "string" + secretRef: + properties: + name: + type: "string" + type: "object" + user: + type: "string" + type: "object" + cinder: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + volumeID: + type: "string" + type: "object" + configMap: + properties: + defaultMode: + type: "integer" items: - type: string - type: array - livenessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: + items: properties: + key: + type: "string" + mode: + type: "integer" path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + csi: + properties: + driver: + type: "string" + fsType: + type: "string" + nodePublishSecretRef: + properties: + name: + type: "string" + type: "object" + readOnly: + type: "boolean" + volumeAttributes: + additionalProperties: + type: "string" + type: "object" + type: "object" + downwardAPI: + properties: + defaultMode: + type: "integer" + items: + items: properties: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + emptyDir: + properties: + medium: + type: "string" + sizeLimit: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + ephemeral: + properties: + volumeClaimTemplate: properties: - value: - type: string - valueFrom: + metadata: properties: - configMapKeyRef: + annotations: + additionalProperties: + type: "string" + type: "object" + creationTimestamp: + type: "string" + deletionGracePeriodSeconds: + type: "integer" + deletionTimestamp: + type: "string" + finalizers: + items: + type: "string" + type: "array" + generateName: + type: "string" + generation: + type: "integer" + labels: + additionalProperties: + type: "string" + type: "object" + managedFields: + items: + properties: + apiVersion: + type: "string" + fieldsType: + type: "string" + fieldsV1: + type: "object" + manager: + type: "string" + operation: + type: "string" + subresource: + type: "string" + time: + type: "string" + type: "object" + type: "array" + name: + type: "string" + namespace: + type: "string" + ownerReferences: + items: + 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: + properties: + accessModes: + items: + type: "string" + type: "array" + dataSource: properties: - optional: - type: boolean - key: - type: string + apiGroup: + type: "string" + kind: + type: "string" name: - type: string - type: object - fieldRef: + type: "string" + type: "object" + dataSourceRef: properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + namespace: + type: "string" + type: "object" + resources: properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + selector: properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object + matchExpressions: + items: + 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: + 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: + properties: + driver: + type: "string" + fsType: + type: "string" + options: + additionalProperties: + type: "string" + type: "object" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + type: "object" + flocker: + properties: + datasetName: + type: "string" + datasetUUID: + type: "string" + type: "object" + gcePersistentDisk: + properties: + fsType: + type: "string" + partition: + type: "integer" + pdName: + type: "string" + readOnly: + type: "boolean" + type: "object" + gitRepo: + properties: + directory: + type: "string" + repository: + type: "string" + revision: + type: "string" + type: "object" + glusterfs: + properties: + endpoints: + type: "string" + path: + type: "string" + readOnly: + type: "boolean" + type: "object" + hostPath: + properties: + path: + type: "string" + type: + type: "string" + type: "object" + image: + properties: + pullPolicy: + type: "string" + reference: + type: "string" + type: "object" + iscsi: + 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: + properties: name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: + type: "string" + type: "object" + targetPortal: + type: "string" + type: "object" + name: + type: "string" + nfs: + properties: + path: + type: "string" + readOnly: + type: "boolean" + server: + type: "string" + type: "object" + persistentVolumeClaim: + properties: + claimName: + type: "string" + readOnly: + type: "boolean" + type: "object" + photonPersistentDisk: + properties: + fsType: + type: "string" + pdID: + type: "string" + type: "object" + portworxVolume: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + projected: + properties: + defaultMode: + type: "integer" + sources: + items: properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + 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: + properties: + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + secret: + properties: + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + serviceAccountToken: + properties: + audience: + type: "string" + expirationSeconds: + type: "integer" + path: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + quobyte: + properties: + group: + type: "string" + readOnly: + type: "boolean" + registry: + type: "string" + tenant: + type: "string" + user: + type: "string" + volume: + type: "string" + type: "object" + rbd: + properties: + fsType: + type: "string" + image: + type: "string" + keyring: + type: "string" + monitors: + items: + type: "string" + type: "array" + pool: + type: "string" + readOnly: + type: "boolean" + secretRef: properties: - containerPort: - type: integer - hostPort: - type: integer name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: + type: "string" + type: "object" + user: + type: "string" + type: "object" + scaleIO: + properties: + fsType: + type: "string" + gateway: + type: "string" + protectionDomain: + type: "string" + readOnly: + type: "boolean" + secretRef: properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: - properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array - volumeMounts: + name: + type: "string" + type: "object" + sslEnabled: + type: "boolean" + storageMode: + type: "string" + storagePool: + type: "string" + system: + type: "string" + volumeName: + type: "string" + type: "object" + secret: + properties: + defaultMode: + type: "integer" items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + optional: + type: "boolean" + secretName: + type: "string" + type: "object" + storageos: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + secretRef: properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string name: - type: string - type: object - type: array - securityContext: + type: "string" + type: "object" + volumeName: + type: "string" + volumeNamespace: + type: "string" + type: "object" + vsphereVolume: + properties: + fsType: + type: "string" + storagePolicyID: + type: "string" + storagePolicyName: + type: "string" + volumePath: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + annotations: + additionalProperties: + type: "string" + description: "Annotations to add to each resource (except pods)." + type: "object" + antiAffinity: + description: "Pod anti-affinity configuration. This override the\ + \ global value if set." + properties: + host: + description: "Indicates the reclaimPolicy property for the\ + \ StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + zone: + description: "Indicates the provisioner property for the StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + type: "object" + config: + description: "Configuration." + x-kubernetes-preserve-unknown-fields: true + env: + description: "Additional container env variables." + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + gracePeriod: + description: "Termination grace period in seconds." + minimum: 0.0 + type: "integer" + image: + description: "Override Pulsar image." + type: "string" + imagePullPolicy: + description: "Override image pull policy." + type: "string" + imagePullSecrets: + description: "Image pull secrets." + items: + properties: + name: + type: "string" + type: "object" + type: "array" + initContainers: + description: "Init containers" + items: + properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: + configMapKeyRef: properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: properties: - add: - items: - type: string - type: array - drop: - items: - type: string - type: array - type: object - seLinuxOptions: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: properties: - limits: - additionalProperties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: - items: + type: "object" + type: "object" + preStop: + properties: + exec: properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array - pdb: - description: Pod disruption budget configuration. + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" + livenessProbe: properties: - maxUnavailable: - description: Number of maxUnavailable pods. - type: integer - enabled: - description: Enable Pdb policy. - type: boolean - type: object - tolerations: - description: Pod tolerations. + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + name: + type: "string" + ports: items: properties: - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - effect: - type: string - type: object - type: array - replicas: - description: Number of desired replicas. - type: integer - nodeAffinity: - description: Node affinity configuration. + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: properties: - preferredDuringSchedulingIgnoredDuringExecution: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: + items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: items: properties: - weight: - type: integer - preference: - properties: - matchFields: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: properties: - nodeSelectorTerms: + add: items: - properties: - matchFields: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: array - type: object - type: object - nodeSelectors: - additionalProperties: - type: string - description: Additional node selectors. - type: object - antiAffinity: - description: Pod anti-affinity configuration. This override - the global value if set. + 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: properties: - host: - description: Indicates the reclaimPolicy property for - the StorageClass. + exec: properties: - required: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: boolean - type: object - zone: - description: Indicates the provisioner property for - the StorageClass. + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: properties: - required: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: boolean - type: object - type: object - imagePullPolicy: - description: Override image pull policy. - type: string - podLabels: - additionalProperties: - type: string - description: Labels to add to each pod. - type: object - matchLabels: - additionalProperties: - type: string - description: Match labels selectors to add to each pod. - type: object - serviceAccountName: - description: Service account name for the resource. - type: string - type: object - description: Broker sets. - type: object - setsUpdateStrategy: - description: Sets update strategy. 'RollingUpdate' or 'Parallel'. - Default is 'RollingUpdate'. - type: string - updateStrategy: - description: Update strategy for the StatefulSet. - properties: - type: - type: string - rollingUpdate: - properties: - maxUnavailable: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - partition: - type: integer - type: object - type: object - config: - description: Configuration. - x-kubernetes-preserve-unknown-fields: true - probes: - description: Liveness and readiness probes configuration. - properties: - useHealthCheckForReadiness: - description: "Use healthcheck for the readiness probe. If\ - \ false, the /metrics endpoint will be used." - type: boolean - useHealthCheckForLiveness: - description: "Use healthcheck for the liveness probe. If false,\ - \ the /metrics endpoint will be used." - type: boolean - liveness: - description: Liveness probe configuration. - properties: - periodSeconds: - description: Indicates the period (in seconds) for the - probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period (in - seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) for the - probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - readiness: - description: Readiness probe configuration. - properties: - periodSeconds: - description: Indicates the period (in seconds) for the - probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period (in - seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) for the - probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - type: object - gracePeriod: - description: Termination grace period in seconds. - minimum: 0.0 - type: integer - functionsWorkerEnabled: - description: Enable functions worker embedded in the broker. - type: boolean - transactions: - description: Enable transactions in the broker. - properties: - initJob: - description: Config for the init job. - properties: - resources: - description: Resources requirements. - properties: - limits: - additionalProperties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - type: object - partitions: - description: Number of coordinators to create. - type: integer - enabled: - description: Initialize the transaction coordinator if it's - not yet and configure the broker to accept transactions. - type: boolean - type: object - service: - description: Service configuration. + 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: + properties: + devicePath: + type: "string" + name: + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + 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" + labels: + additionalProperties: + type: "string" + description: "Labels to add to each resource (except pods)." + type: "object" + logsVolume: + description: "Volume configuration for export function logs." properties: - additionalPorts: - description: Additional ports to add to the Service. + existingStorageClassName: + description: "Indicates if an already existing storage class\ + \ should be used." + type: "string" + name: + description: "Indicates the suffix for the volume. Default\ + \ value is 'data'." + type: "string" + size: + description: "Indicates the requested size for the volume.\ + \ The format follows the Kubernetes' Quantity." + type: "string" + storageClass: + description: "Indicates if a StorageClass is used. The operator\ + \ will create the StorageClass if needed." + properties: + extraParams: + additionalProperties: + type: "string" + description: "Adds extra parameters for the StorageClass." + type: "object" + fsType: + description: "Indicates the 'fsType' parameter for the\ + \ StorageClass." + type: "string" + provisioner: + description: "Indicates the provisioner property for the\ + \ StorageClass." + type: "string" + reclaimPolicy: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "string" + type: + description: "Indicates the 'type' parameter for the StorageClass." + type: "string" + type: "object" + type: "object" + matchLabels: + additionalProperties: + type: "string" + description: "Match labels selectors to add to each pod." + type: "object" + minReadySeconds: + description: "Min seconds to wait before considering the pod as\ + \ ready." + type: "integer" + nodeAffinity: + description: "Node affinity configuration." + properties: + preferredDuringSchedulingIgnoredDuringExecution: items: properties: - targetPort: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - port: - type: integer - nodePort: - type: integer - name: - type: string - appProtocol: - type: string - protocol: - type: string - type: object - type: array - annotations: - additionalProperties: - type: string - description: Additional annotations to add to the Service. - type: object - type: - description: Service type. Default value is 'ClusterIP' - type: string - type: object - autoscaler: - description: Autoscaling config. + preference: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: + items: + 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" + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + type: "object" + type: "array" + type: "object" + type: "object" + nodeSelectors: + additionalProperties: + type: "string" + description: "Additional node selectors." + type: "object" + pdb: + description: "Pod disruption budget configuration." properties: - periodMs: - description: The interval in milliseconds between two consecutive - autoscaling checks. - minimum: 1000.0 - type: integer - resourcesUsageSource: - description: Source for getting the brokers resources usage. - Possible values are 'PulsarLBReport' and 'K8SMetrics'. Default - is 'PulsarLBReport' - type: string - max: - description: "Max number of brokers. If the number of brokers\ - \ is equals to this value, the autoscaler will never scale\ - \ up." - type: integer - higherCpuThreshold: - description: The threshold to trigger a scale up. The autoscaler - will scale up if all the brokers cpu usage is higher than - this threshold. Default is '0.8' - maximum: 1.0 - minimum: 0.0 - type: number enabled: - description: Enable autoscaling for brokers. - type: boolean - min: - description: "Min number of brokers. If the number of brokers\ - \ is equals to this value, the autoscaler will never scale\ - \ down." - minimum: 1.0 - type: integer - scaleUpBy: - description: The number of brokers to add at each scale up. - Default is '1' - minimum: 1.0 - type: integer - stabilizationWindowMs: - description: The stabilization window is used to restrict - the flapping of replica count when the metrics used for - scaling keep fluctuating. The autoscaling algorithm uses - this window to infer a previous desired state and avoid - unwanted changes to workload scale.Default value is 5 minutes - after the pod readiness. - minimum: 1.0 - type: integer - lowerCpuThreshold: - description: The threshold to trigger a scale down. The autoscaler - will scale down if all the brokers cpu usage is lower than - this threshold. Default is '0.4' - maximum: 1.0 - minimum: 0.0 - type: number - scaleDownBy: - description: The number of brokers to remove at each scale - down. Default is '1' - minimum: 1.0 - type: integer - type: object + description: "Enable Pdb policy." + type: "boolean" + maxUnavailable: + description: "Number of maxUnavailable pods." + type: "integer" + minAvailable: + description: "Number of minAvailable pods." + type: "integer" + type: "object" + podAnnotations: + additionalProperties: + type: "string" + description: "Annotations to add to pod." + type: "object" + podLabels: + additionalProperties: + type: "string" + description: "Labels to add to each pod." + type: "object" podManagementPolicy: - description: Pod management policy. - type: string + description: "Pod management policy." + type: "string" + probes: + description: "Liveness and readiness probes configuration." + properties: + liveness: + description: "Liveness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds) for the\ + \ probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period (in\ + \ seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds) for the\ + \ probe." + type: "integer" + type: "object" + readiness: + description: "Readiness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds) for the\ + \ probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period (in\ + \ seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds) for the\ + \ probe." + type: "integer" + type: "object" + type: "object" + rbac: + description: "RBAC config." + properties: + create: + description: "Create needed RBAC to run the Functions Worker." + type: "boolean" + namespaced: + description: "Whether or not the RBAC is created per-namespace\ + \ or cluster-wise." + type: "boolean" + type: "object" + replicas: + description: "Number of desired replicas." + type: "integer" resources: - description: Resources requirements. + description: "Resources requirements." properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" limits: additionalProperties: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" requests: additionalProperties: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - overrideResourceName: - description: Override the resource names generated by the operator. - type: string - kafka: - description: Enable Kafka protocol. + type: "object" + type: "object" + runtime: + description: "Runtime mode for functions." + type: "string" + securityContext: + description: "Subset of PodSecurityContext for basic UID, GID,\ + \ and volume access control." properties: - exposePorts: - description: Expose the kafka protocol port. - type: boolean - enabled: - description: Allow the cluster to accept Kafka protocol. Default - is 'false'. - type: boolean - type: object - imagePullSecrets: - description: Image pull secrets. - items: - properties: - name: - type: string - type: object - type: array - image: - description: Override Pulsar image. - type: string - annotations: - additionalProperties: - type: string - description: Annotations to add to each resource (except pods). - type: object - podAnnotations: - additionalProperties: - type: string - description: Annotations to add to pod. - type: object + fsGroup: + type: "integer" + fsGroupChangePolicy: + type: "string" + runAsGroup: + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + type: "integer" + supplementalGroups: + items: + type: "integer" + type: "array" + type: "object" + service: + description: "Service configuration." + properties: + additionalPorts: + description: "Additional ports to add to the Service." + items: + properties: + appProtocol: + type: "string" + name: + type: "string" + nodePort: + type: "integer" + port: + type: "integer" + protocol: + type: "string" + targetPort: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "array" + annotations: + additionalProperties: + type: "string" + description: "Additional annotations to add to the Service." + type: "object" + type: + description: "Service type. Default value is 'ClusterIP'" + type: "string" + type: "object" + serviceAccountName: + description: "Service account name for the resource." + type: "string" sidecars: - description: Sidecar containers + description: "Sidecar containers" items: properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" lifecycle: properties: postStart: properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + type: "object" + preStop: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" livenessProbe: properties: - periodSeconds: - type: integer + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" failureThreshold: - type: integer - initialDelaySeconds: - type: integer + type: "integer" grpc: properties: port: - type: integer + type: "integer" service: - type: string - type: object + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" successThreshold: - type: integer + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" terminationGracePeriodSeconds: - type: integer + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" timeoutSeconds: - type: integer + type: "integer" + type: "object" + resizePolicy: + items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: + 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer + scheme: + type: "string" + type: "object" initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object + type: "integer" + periodSeconds: + type: "integer" successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer + type: "integer" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: + type: "integer" + type: "object" + stdin: + type: "boolean" + stdinOnce: + type: "boolean" + terminationMessagePath: + type: "string" + terminationMessagePolicy: + type: "string" + tty: + type: "boolean" + volumeDevices: + items: + properties: + devicePath: + type: "string" + name: + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + 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" + tolerations: + description: "Pod tolerations." + items: + properties: + effect: + type: "string" + key: + type: "string" + operator: + type: "string" + tolerationSeconds: + type: "integer" + value: + type: "string" + type: "object" + type: "array" + updateStrategy: + description: "Update strategy for the StatefulSet." + properties: + rollingUpdate: + properties: + maxUnavailable: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + partition: + type: "integer" + type: "object" + type: + type: "string" + type: "object" + type: "object" + global: + properties: + antiAffinity: + description: "Pod anti affinity configuration." + properties: + host: + description: "Indicates the reclaimPolicy property for the\ + \ StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + zone: + description: "Indicates the provisioner property for the StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + type: "object" + auth: + description: | + Authentication and authorization configuration. + properties: + enabled: + description: "Enable authentication in the cluster. Default\ + \ is 'false'." + type: "boolean" + token: + description: "Token based authentication configuration." + properties: + initialize: + description: "Initialize Secrets with new pair of keys\ + \ and tokens for the super user roles. The generated\ + \ Secret name is 'token-'." + type: "boolean" + privateKeyFile: + description: "Private key file name stored in the Secret.\ + \ Default is 'my-private.key'" + type: "string" + proxyRoles: + description: "Proxy roles." + items: + type: "string" + type: "array" + publicKeyFile: + description: "Public key file name stored in the Secret.\ + \ Default is 'my-public.key'" + type: "string" + superUserRoles: + description: "Super user roles." + items: + type: "string" + type: "array" + type: "object" + type: "object" + clusterName: + description: "Corresponds to the 'clusterName' field in the broker.conf.\ + \ Defaults to the value of the 'name' field" + type: "string" + components: + description: "Pulsar cluster components names." + properties: + autorecoveryBaseName: + description: "Autorecovery base name. Default value is 'autorecovery'." + type: "string" + bastionBaseName: + description: "Bastion base name. Default value is 'bastion'." + type: "string" + bookkeeperBaseName: + description: "BookKeeper base name. Default value is 'bookkeeper'." + type: "string" + brokerBaseName: + description: "Broker base name. Default value is 'broker'." + type: "string" + functionsWorkerBaseName: + description: "Functions Worker base name. Default value is\ + \ 'function'." + type: "string" + proxyBaseName: + description: "Proxy base name. Default value is 'proxy'." + type: "string" + zookeeperBaseName: + description: "Zookeeper base name. Default value is 'zookeeper'." + type: "string" + type: "object" + dnsConfig: + description: | + Override default DNS config for each pod. Note that because we use fully qualified service names for intra + cluster networking with Pulsar components, we set the ndots value to 4 (the default is 5). This prevents + unnecessary DNS lookups for the fully qualified service names that would be guaranteed to result in NXDOMAIN. + For example, the name 'pulsar-broker.pulsar.svc.cluster.local' has 4 dots, so it would be resolved directly + instead of appending the configured search domains. + More info here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config. + properties: + nameservers: + items: + type: "string" + type: "array" + options: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + searches: + items: + type: "string" + type: "array" + type: "object" + dnsName: + description: "Public dns name for the cluster's load balancer." + type: "string" + image: + description: "Default Pulsar image to use. Any components can\ + \ be configured to use a different image." + type: "string" + imagePullPolicy: + description: "Default Pulsar image pull policy to use. Any components\ + \ can be configured to use a different image pull policy. Default\ + \ value is 'IfNotPresent'." + type: "string" + kubernetesClusterDomain: + description: | + The domain name for your kubernetes cluster. + This domain is documented here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#a-aaaa-records-1 . + It's used to fully qualify service names when configuring Pulsar. + The default value is 'cluster.local'. + type: "string" + name: + description: "Name of the Pulsar cluster spec. This is used as\ + \ a prefix for managed Kubernetes resources." + type: "string" + nodeSelectors: + additionalProperties: + type: "string" + description: "Global node selector. If set, this will apply to\ + \ all the components." + type: "object" + persistence: + description: | + If persistence is enabled, components that has state will be deployed with PersistentVolumeClaims, otherwise, for test purposes, they will be deployed with emptyDir + type: "boolean" + priorityClassName: + description: "Priority class name to attach to each pod." + type: "string" + racks: + additionalProperties: + properties: + host: + description: "Enable rack rules based on the hostname of\ + \ the node." + properties: + enabled: + description: "Enable the rack affinity rules." + type: "boolean" + requireRackAffinity: + description: "Indicates if the podAffinity rules will\ + \ be enforced. Default is false. If required, the\ + \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + requireRackAntiAffinity: + description: "Indicates if the podAntiAffinity rules\ + \ will be enforced. Default is true. If required,\ + \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + type: "object" + zone: + description: "Enable rack rules based on the failure domain\ + \ (availability zone) of the node." + properties: + enableHostAntiAffinity: + description: "Enable the host anti affinity. If set,\ + \ all the pods of the same rack will deployed on different\ + \ nodes of the same zone.Default is true." + type: "boolean" + enabled: + description: "Enable the rack affinity rules." + type: "boolean" + requireRackAffinity: + description: "Indicates if the podAffinity rules will\ + \ be enforced. Default is false. If required, the\ + \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + requireRackAntiAffinity: + description: "Indicates if the podAntiAffinity rules\ + \ will be enforced. Default is true. If required,\ + \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + requireRackHostAntiAffinity: + description: "Indicates if the podAntiAffinity rules\ + \ will be enforced for the host. Default is true.\ + \ If required, the affinity rule will be enforced\ + \ using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + type: "object" + type: "object" + description: "Racks configuration." + type: "object" + resourceSets: + additionalProperties: + properties: + rack: + description: "Place this resource set to a specific rack,\ + \ defined at .global.racks." + type: "string" + type: "object" + description: "Resource sets." + type: "object" + restartOnConfigMapChange: + description: | + By default, Kubernetes will not restart pods when only their configmap is changed. This setting will restart pods when their configmap is changed using an annotation that calculates the checksum of the configmap. + type: "boolean" + storage: + description: "Storage configuration." + properties: + existingStorageClassName: + description: "Indicates if an already existing storage class\ + \ should be used." + type: "string" + storageClass: + description: "Indicates if a StorageClass is used. The operator\ + \ will create the StorageClass if needed." + properties: + extraParams: + additionalProperties: + type: "string" + description: "Adds extra parameters for the StorageClass." + type: "object" + fsType: + description: "Indicates the 'fsType' parameter for the\ + \ StorageClass." + type: "string" + provisioner: + description: "Indicates the provisioner property for the\ + \ StorageClass." + type: "string" + reclaimPolicy: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "string" + type: + description: "Indicates the 'type' parameter for the StorageClass." + type: "string" + type: "object" + type: "object" + tls: + description: "TLS configuration for the cluster." + properties: + autorecovery: + description: "TLS configurations related to the Autorecovery\ + \ component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + bookkeeper: + description: "TLS configurations related to the BookKeeper\ + \ component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + broker: + description: "TLS configurations related to the Broker component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + brokerResourceSets: + additionalProperties: + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from\ + \ where to load the certificates." + type: "string" + type: "object" + description: "TLS configurations related to the Broker resource\ + \ sets." + type: "object" + caPath: + description: "Path in the container filesystem where the TLS\ + \ CA certificates are retrieved. It has to point to a certificate\ + \ file. The default value is /etc/ssl/certs/ca-certificates.crt." + type: "string" + certProvisioner: + description: "Certificate provisioner configuration." + properties: + acme: + description: "ACME certificate provisioner configuration." + properties: + broker: + description: "Broker self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + enabled: + description: "Generate self signed certificates for\ + \ broker, proxy and functions worker." + type: "boolean" + external: + additionalProperties: + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject\ + \ Alternative Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key\ + \ will be stored whe perComponent is enabled.\ + \ Required for external services. Internal\ + \ services pick up the secret name from the\ + \ tls config if not specified" + type: "string" + type: "object" + description: "External services self signed certificate\ + \ config (e.g., admin console, grafana). The key\ + \ is the service name, and the value contains generation\ + \ config" + type: "object" + issuer: + description: "ACME issuer configuration." + properties: + email: + description: "Email used for ACME registration." + type: "string" + name: + description: "Name of the Issuer resource." + type: "string" + privateKeySecretName: + description: "Secret storing the ACME account\ + \ private key." + type: "string" + server: + description: "ACME server URL." + type: "string" + solvers: + description: "ACME challenge solvers. Solvers\ + \ are evaluated in order; no domain-based routing" + items: + properties: + dns01: + description: "DNS01 solver configuration." + properties: + cloudDNS: + properties: + project: + type: "string" + serviceAccountSecretKey: + type: "string" + serviceAccountSecretName: + type: "string" + type: "object" + cloudflare: + properties: + apiTokenSecretKey: + type: "string" + apiTokenSecretName: + type: "string" + email: + type: "string" + type: "object" + route53: + properties: + hostedZoneId: + type: "string" + region: + type: "string" + type: "object" + type: "object" + http01: + description: "HTTP01 solver configuration." + properties: + ingressClass: + description: "Ingress class used for\ + \ HTTP01 challenge." + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + proxy: + description: "Proxy self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + type: "object" + selfSigned: + description: "Self signed certificate provisioner configuration." properties: - value: - type: string - valueFrom: + autorecovery: + description: "Autorecovery self signed certificate\ + \ config." properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + bookkeeper: + description: "Bookkeeper self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + broker: + description: "Broker self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + caSecretName: + description: "Secret where to store the root CA certificate." + type: "string" + enabled: + description: "Generate self signed certificates for\ + \ broker, proxy and functions worker." + type: "boolean" + external: + additionalProperties: + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject\ + \ Alternative Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key\ + \ will be stored whe perComponent is enabled.\ + \ Required for external services. Internal\ + \ services pick up the secret name from the\ + \ tls config if not specified" + type: "string" + type: "object" + description: "External services self signed certificate\ + \ config (e.g., admin console, grafana). The key\ + \ is the service name, and the value contains generation\ + \ config" + type: "object" + functionsWorker: + description: "Functions worker self signed certificate\ + \ config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: - properties: - prefix: - type: string - configMapRef: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + includeDns: + description: "Include dns name in the DNS names covered\ + \ by the certificate." + type: "boolean" + perComponent: + description: "Generate a different certificate for\ + \ each component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + proxy: + description: "Proxy self signed certificate config." properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - securityContext: - properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: - properties: - add: - items: - type: string - type: array - drop: - items: - type: string - type: array - type: object - seLinuxOptions: - properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: - properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + zookeeper: + description: "Zookeeper self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + type: "object" + type: "object" + defaultSecretName: + description: "Secret name used by each component to load TLS\ + \ certificates. Each component can load a different secret\ + \ by setting the 'secretName' entry in the tls component\ + \ spec." + type: "string" + enabled: + description: "Deprecated. Use the 'enabled' field in each\ + \ component spec instead." + type: "boolean" + functionsWorker: + description: "TLS configurations related to the Functions\ + \ worker component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + enabledWithBroker: + description: "Enable TLS for the functions worker to broker\ + \ connections." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + proxy: + description: "TLS configurations related to the Proxy component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + enabledWithBroker: + description: "Enable TLS for the proxy to broker connections." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + proxyResourceSets: + additionalProperties: properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array + enabled: + description: "Enable TLS." + type: "boolean" + enabledWithBroker: + description: "Enable TLS for the proxy to broker connections." + type: "boolean" + secretName: + description: "Override the default secret name from\ + \ where to load the certificates." + type: "string" + type: "object" + description: "TLS configurations related to the Proxy resource\ + \ sets." + type: "object" + ssCa: + description: "TLS configurations used by additional components,\ + \ such as the Bastion component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + zookeeper: + description: "TLS configurations related to the ZooKeeper\ + \ component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + type: "object" + zookeeperPlainSslStorePassword: + description: "Use plain password in zookeeper server and client\ + \ configuration. Default is false. Old versions of Apache Zookeeper\ + \ (<3.8.0) does not support getting password from file. In that\ + \ case, set this to true." + type: "boolean" + required: + - "name" + type: "object" + proxy: + properties: additionalVolumes: - description: Mount additional volumes to the pod. + description: "Mount additional volumes to the pod." properties: + mounts: + description: "Mount points for the additional volumes" + items: + 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" volumes: - description: Additional volumes to be mounted to the pod + description: "Additional volumes to be mounted to the pod" items: properties: - hostPath: + awsElasticBlockStore: properties: - path: - type: string - type: - type: string - type: object - flexVolume: + fsType: + type: "string" + partition: + type: "integer" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + azureDisk: + properties: + cachingMode: + type: "string" + diskName: + type: "string" + diskURI: + type: "string" + fsType: + type: "string" + kind: + type: "string" + readOnly: + type: "boolean" + type: "object" + azureFile: properties: readOnly: - type: boolean - options: - additionalProperties: - type: string - type: object + type: "boolean" + secretName: + type: "string" + shareName: + type: "string" + type: "object" + cephfs: + properties: + monitors: + items: + type: "string" + type: "array" + path: + type: "string" + readOnly: + type: "boolean" + secretFile: + type: "string" secretRef: properties: name: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - gcePersistentDisk: + type: "string" + type: "object" + user: + type: "string" + type: "object" + cinder: properties: + fsType: + type: "string" readOnly: - type: boolean - pdName: - type: string - partition: - type: integer + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + volumeID: + type: "string" + type: "object" + configMap: + properties: + defaultMode: + type: "integer" + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + csi: + properties: + driver: + type: "string" fsType: - type: string - type: object + type: "string" + nodePublishSecretRef: + properties: + name: + type: "string" + type: "object" + readOnly: + type: "boolean" + volumeAttributes: + additionalProperties: + type: "string" + type: "object" + type: "object" + downwardAPI: + properties: + defaultMode: + type: "integer" + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + emptyDir: + properties: + medium: + type: "string" + sizeLimit: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" ephemeral: properties: volumeClaimTemplate: properties: metadata: properties: - generateName: - type: string - deletionGracePeriodSeconds: - type: integer - deletionTimestamp: - type: string - resourceVersion: - type: string annotations: additionalProperties: - type: string - type: object - selfLink: - type: string + type: "string" + type: "object" creationTimestamp: - type: string + type: "string" + deletionGracePeriodSeconds: + type: "integer" + deletionTimestamp: + type: "string" finalizers: items: - type: string - type: array + type: "string" + type: "array" + generateName: + type: "string" + generation: + type: "integer" labels: additionalProperties: - type: string - type: object - ownerReferences: - items: - properties: - blockOwnerDeletion: - type: boolean - uid: - type: string - apiVersion: - type: string - name: - type: string - kind: - type: string - controller: - type: boolean - type: object - type: array - uid: - type: string - generation: - type: integer - name: - type: string + type: "string" + type: "object" managedFields: items: properties: - time: - type: string apiVersion: - type: string - fieldsV1: - type: object + type: "string" fieldsType: - type: string + type: "string" + fieldsV1: + type: "object" manager: - type: string + type: "string" operation: - type: string + type: "string" subresource: - type: string - type: object - type: array + type: "string" + time: + type: "string" + type: "object" + type: "array" + name: + type: "string" namespace: - type: string - type: object + type: "string" + ownerReferences: + items: + 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: properties: - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string + accessModes: + items: + type: "string" + type: "array" dataSource: properties: - name: - type: string + apiGroup: + type: "string" kind: - type: string + type: "string" + name: + type: "string" + type: "object" + dataSourceRef: + properties: apiGroup: - type: string - type: object + type: "string" + kind: + type: "string" + name: + type: "string" + namespace: + type: "string" + type: "object" resources: properties: limits: additionalProperties: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" requests: additionalProperties: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - dataSourceRef: + type: "object" + type: "object" + selector: properties: - name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - accessModes: - items: - type: string - type: array + matchExpressions: + items: + 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 + type: "string" volumeName: - type: string - type: object - type: object - type: object - scaleIO: - properties: - readOnly: - type: boolean - storageMode: - type: string - storagePool: - type: string - system: - type: string - gateway: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - sslEnabled: - type: boolean - volumeName: - type: string - protectionDomain: - type: string - type: object - csi: - properties: - nodePublishSecretRef: - properties: - name: - type: string - type: object - readOnly: - type: boolean - volumeAttributes: - additionalProperties: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - secret: - properties: - optional: - type: boolean - secretName: - type: string - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - name: - type: string - vsphereVolume: - properties: - storagePolicyName: - type: string - storagePolicyID: - type: string - volumePath: - type: string - fsType: - type: string - type: object - gitRepo: - properties: - revision: - type: string - repository: - type: string - directory: - type: string - type: object - glusterfs: - properties: - path: - type: string - readOnly: - type: boolean - endpoints: - type: string - type: object - nfs: - properties: - path: - type: string - readOnly: - type: boolean - server: - type: string - type: object - cinder: - properties: - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - volumeID: - type: string - type: object - flocker: - properties: - datasetUUID: - type: string - datasetName: - type: string - type: object - quobyte: - properties: - group: - type: string - readOnly: - type: boolean - volume: - type: string - user: - type: string - registry: - type: string - tenant: - type: string - type: object - photonPersistentDisk: - properties: - pdID: - type: string - fsType: - type: string - type: object - persistentVolumeClaim: - properties: - readOnly: - type: boolean - claimName: - type: string - type: object - awsElasticBlockStore: - properties: - readOnly: - type: boolean - partition: - type: integer - fsType: - type: string - volumeID: - type: string - type: object - configMap: + type: "string" + type: "object" + type: "object" + type: "object" + fc: properties: - optional: - type: boolean - items: + fsType: + type: "string" + lun: + type: "integer" + readOnly: + type: "boolean" + targetWWNs: items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - name: - type: string - type: object - storageos: + type: "string" + type: "array" + wwids: + items: + type: "string" + type: "array" + type: "object" + flexVolume: properties: + driver: + type: "string" + fsType: + type: "string" + options: + additionalProperties: + type: "string" + type: "object" readOnly: - type: boolean - volumeNamespace: - type: string + type: "boolean" secretRef: properties: name: - type: string - type: object + type: "string" + type: "object" + type: "object" + flocker: + properties: + datasetName: + type: "string" + datasetUUID: + type: "string" + type: "object" + gcePersistentDisk: + properties: fsType: - type: string - volumeName: - type: string - type: object - portworxVolume: + type: "string" + partition: + type: "integer" + pdName: + type: "string" + readOnly: + type: "boolean" + type: "object" + gitRepo: + properties: + directory: + type: "string" + repository: + type: "string" + revision: + type: "string" + type: "object" + glusterfs: properties: + endpoints: + type: "string" + path: + type: "string" readOnly: - type: boolean - fsType: - type: string - volumeID: - type: string - type: object + type: "boolean" + type: "object" + hostPath: + properties: + path: + type: "string" + type: + type: "string" + type: "object" + image: + properties: + pullPolicy: + type: "string" + reference: + type: "string" + type: "object" iscsi: properties: - readOnly: - type: boolean + chapAuthDiscovery: + type: "boolean" chapAuthSession: - type: boolean - lun: - type: integer - targetPortal: - type: string + type: "boolean" + fsType: + type: "string" + initiatorName: + type: "string" + iqn: + type: "string" iscsiInterface: - type: string + type: "string" + lun: + type: "integer" portals: items: - type: string - type: array - initiatorName: - type: string + type: "string" + type: "array" + readOnly: + type: "boolean" secretRef: properties: name: - type: string - type: object - fsType: - type: string - iqn: - type: string - chapAuthDiscovery: - type: boolean - type: object - rbd: + type: "string" + type: "object" + targetPortal: + type: "string" + type: "object" + name: + type: "string" + nfs: + properties: + path: + type: "string" + readOnly: + type: "boolean" + server: + type: "string" + type: "object" + persistentVolumeClaim: properties: + claimName: + type: "string" readOnly: - type: boolean - pool: - type: string - keyring: - type: string - image: - type: string - secretRef: - properties: - name: - type: string - type: object - monitors: - items: - type: string - type: array + type: "boolean" + type: "object" + photonPersistentDisk: + properties: fsType: - type: string - user: - type: string - type: object - azureFile: + type: "string" + pdID: + type: "string" + type: "object" + portworxVolume: properties: + fsType: + type: "string" readOnly: - type: boolean - secretName: - type: string - shareName: - type: string - type: object - downwardAPI: - properties: - items: - items: - properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object + type: "boolean" + volumeID: + type: "string" + type: "object" projected: properties: defaultMode: - type: integer + type: "integer" sources: items: properties: - secret: + clusterTrustBundle: properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array + labelSelector: + properties: + matchExpressions: + items: + 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 - type: object + type: "string" + optional: + type: "boolean" + path: + type: "string" + signerName: + type: "string" + type: "object" configMap: properties: - optional: - type: boolean items: items: properties: - path: - type: string key: - type: string + type: "string" mode: - type: integer - type: object - type: array + type: "integer" + path: + type: "string" + type: "object" + type: "array" name: - type: string - type: object - serviceAccountToken: - properties: - path: - type: string - audience: - type: string - expirationSeconds: - type: integer - type: object + type: "string" + optional: + type: "boolean" + type: "object" downwardAPI: properties: items: items: properties: - path: - type: string fieldRef: properties: apiVersion: - type: string + type: "string" fieldPath: - type: string - type: object + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" resourceFieldRef: properties: containerName: - type: string + type: "string" divisor: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true resource: - type: string - type: object + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + secret: + properties: + items: + items: + properties: + key: + type: "string" mode: - type: integer - type: object - type: array - type: object - type: object - type: array - type: object - azureDisk: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + serviceAccountToken: + properties: + audience: + type: "string" + expirationSeconds: + type: "integer" + path: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + quobyte: properties: + group: + type: "string" readOnly: - type: boolean - diskName: - type: string - cachingMode: - type: string - fsType: - type: string - kind: - type: string - diskURI: - type: string - type: object - cephfs: + type: "boolean" + registry: + type: "string" + tenant: + type: "string" + user: + type: "string" + volume: + type: "string" + type: "object" + rbd: properties: - path: - type: string + fsType: + type: "string" + image: + type: "string" + keyring: + type: "string" + monitors: + items: + type: "string" + type: "array" + pool: + type: "string" readOnly: - type: boolean + type: "boolean" secretRef: properties: name: - type: string - type: object - monitors: - items: - type: string - type: array - secretFile: - type: string + type: "string" + type: "object" user: - type: string - type: object - emptyDir: - properties: - sizeLimit: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - medium: - type: string - type: object - fc: + type: "string" + type: "object" + scaleIO: properties: + fsType: + type: "string" + gateway: + type: "string" + protectionDomain: + type: "string" readOnly: - type: boolean - lun: - type: integer - wwids: - items: - type: string - type: array - targetWWNs: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + sslEnabled: + type: "boolean" + storageMode: + type: "string" + storagePool: + type: "string" + system: + type: "string" + volumeName: + type: "string" + type: "object" + secret: + properties: + defaultMode: + type: "integer" + items: items: - type: string - type: array + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + optional: + type: "boolean" + secretName: + type: "string" + type: "object" + storageos: + properties: fsType: - type: string - type: object - type: object - type: array - mounts: - description: Mount points for the additional volumes - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - type: object + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + volumeName: + type: "string" + volumeNamespace: + type: "string" + type: "object" + vsphereVolume: + properties: + fsType: + type: "string" + storagePolicyID: + type: "string" + storagePolicyName: + type: "string" + volumePath: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + annotations: + additionalProperties: + type: "string" + description: "Annotations to add to each resource (except pods)." + type: "object" + antiAffinity: + description: "Pod anti-affinity configuration. This override the\ + \ global value if set." + properties: + host: + description: "Indicates the reclaimPolicy property for the\ + \ StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + zone: + description: "Indicates the provisioner property for the StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + type: "object" + config: + description: "Configuration." + x-kubernetes-preserve-unknown-fields: true env: - description: Additional container env variables. + description: "Additional container env variables." items: properties: + name: + type: "string" value: - type: string + type: "string" valueFrom: properties: configMapKeyRef: properties: - optional: - type: boolean key: - type: string + type: "string" name: - type: string - type: object + type: "string" + optional: + type: "boolean" + type: "object" fieldRef: properties: apiVersion: - type: string + type: "string" fieldPath: - type: string - type: object + type: "string" + type: "object" resourceFieldRef: properties: containerName: - type: string + type: "string" divisor: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true resource: - type: string - type: object + type: "string" + type: "object" secretKeyRef: properties: - optional: - type: boolean key: - type: string + type: "string" name: - type: string - type: object - type: object + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + gracePeriod: + description: "Termination grace period in seconds." + minimum: 0.0 + type: "integer" + image: + description: "Override Pulsar image." + type: "string" + imagePullPolicy: + description: "Override image pull policy." + type: "string" + imagePullSecrets: + description: "Image pull secrets." + items: + properties: name: - type: string - type: object - type: array - labels: - additionalProperties: - type: string - description: Labels to add to each resource (except pods). - type: object + type: "string" + type: "object" + type: "array" initContainers: - description: Init containers + description: "Init containers" items: properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" lifecycle: properties: postStart: properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + type: "object" + preStop: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" livenessProbe: properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer exec: properties: command: items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer + type: "string" + type: "array" + type: "object" failureThreshold: - type: integer - initialDelaySeconds: - type: integer + type: "integer" grpc: properties: port: - type: integer + type: "integer" service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer + scheme: + type: "string" + type: "object" initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object + type: "integer" + periodSeconds: + type: "integer" successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: - properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: - properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - securityContext: - properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: - properties: - add: - items: - type: string - type: array - drop: - items: - type: string - type: array - type: object - seLinuxOptions: - properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: + type: "integer" + tcpSocket: properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" name: - type: string - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: + type: "string" + ports: items: properties: - devicePath: - type: string + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" name: - type: string - type: object - type: array - type: object - type: array - pdb: - description: Pod disruption budget configuration. - properties: - maxUnavailable: - description: Number of maxUnavailable pods. - type: integer - enabled: - description: Enable Pdb policy. - type: boolean - type: object - tolerations: - description: Pod tolerations. - items: - properties: - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - effect: - type: string - type: object - type: array - replicas: - description: Number of desired replicas. - type: integer - nodeAffinity: - description: Node affinity configuration. - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: properties: - weight: - type: integer - preference: + exec: properties: - matchFields: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: + command: items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: properties: - matchFields: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: items: properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: array - type: object - type: object - nodeSelectors: - additionalProperties: - type: string - description: Additional node selectors. - type: object - antiAffinity: - description: Pod anti-affinity configuration. This override the - global value if set. - properties: - host: - description: Indicates the reclaimPolicy property for the - StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - zone: - description: Indicates the provisioner property for the StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - type: object - imagePullPolicy: - description: Override image pull policy. - type: string - podLabels: - additionalProperties: - type: string - description: Labels to add to each pod. - type: object - matchLabels: - additionalProperties: - type: string - description: Match labels selectors to add to each pod. - type: object - serviceAccountName: - description: Service account name for the resource. - type: string - type: object - bookkeeper: - properties: - autoRackConfig: - description: Configuration for the rack auto configuration. - properties: - periodMs: - description: Period for the schedule of the monitoring thread. - minimum: 1000.0 - type: integer - additionalZookeeperClientConfig: - description: Additional configuration for the zookeeper client. - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Enable rack configuration monitoring. - type: boolean - type: object - sets: - additionalProperties: - properties: - cleanUpPvcs: - description: Cleanup PVCs after the bookie has been removed. - type: boolean - updateStrategy: - description: Update strategy for the StatefulSet. Default - value is rolling update. - properties: - type: - type: string - rollingUpdate: - properties: - maxUnavailable: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - partition: - type: integer - type: object - type: object - config: - description: Configuration. - x-kubernetes-preserve-unknown-fields: true - gracePeriod: - description: Termination grace period in seconds. - minimum: 0.0 - type: integer - probes: - description: Liveness and readiness probes configuration. - properties: - liveness: - description: Liveness probe configuration. - properties: - periodSeconds: - description: Indicates the period (in seconds) for - the probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period - (in seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) - for the probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - readiness: - description: Readiness probe configuration. + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: properties: - periodSeconds: - description: Indicates the period (in seconds) for - the probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period - (in seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) - for the probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - type: object - service: - description: Service configuration. + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: + items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: properties: - additionalPorts: - description: Additional ports to add to the Service. + claims: items: properties: - targetPort: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - port: - type: integer - nodePort: - type: integer name: - type: string - appProtocol: - type: string - protocol: - type: string - type: object - type: array - annotations: - additionalProperties: - type: string - description: Additional annotations to add to the Service. - type: object - type: object - podManagementPolicy: - description: Pod management policy. Default value is 'Parallel'. - type: string - autoscaler: - description: Autoscaling config. - properties: - periodMs: - description: The interval in milliseconds between two - consecutive autoscaling checks. - minimum: 1000.0 - type: integer - diskUsageToleranceLwm: - description: The threshold to trigger a scale down. - The autoscaler will scale down if all the bookies' - disk usage is lower than this threshold. Default is - '0.75' - maximum: 1.0 - minimum: 0.0 - type: number - scaleUpMaxLimit: - description: "Max number of bookies. If the number of\ - \ bookies is equals to this value, the autoscaler\ - \ will never scale up." - minimum: 1.0 - type: integer - diskUsageToleranceHwm: - description: The threshold to trigger a scale up. The - autoscaler will scale up if any of thebookie's disk - usage is higher than or equal to this threshold. Default - is '0.92' - maximum: 1.0 - minimum: 0.0 - type: number - enabled: - description: Enable autoscaling for bookies. - type: boolean - minWritableBookies: - description: "Min number of writable bookies. The autoscaler\ - \ will scale up if not enough writable bookies are\ - \ detected. For instance, if a bookie went to read-only\ - \ mode, the autoscaler will scale up to replace it.\ - \ Default is '3'." - minimum: 1.0 - type: integer - scaleUpBy: - description: The number of bookies to add at each scale - up. Default is '1' - minimum: 1.0 - type: integer - stabilizationWindowMs: - description: The stabilization window is used to restrict - the flapping of replica count when the metrics used - for scaling keep fluctuating. The autoscaling algorithm - uses this window to infer a previous desired state - and avoid unwanted changes to workload scale.Default - value is 5 minutes after the pod readiness. - minimum: 1.0 - type: integer - scaleDownBy: - description: The number of bookies to remove at each - scale down. Default is '1' - minimum: 1.0 - type: integer - type: object - resources: - description: Resources requirements. - properties: + type: "string" + request: + type: "string" + type: "object" + type: "array" limits: additionalProperties: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" requests: additionalProperties: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - overrideResourceName: - description: Override the resource names generated by the - operator. - type: string - pvcPrefix: - description: Prefix for each PVC created. - type: string - volumes: - description: Volumes configuration. + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: properties: - journal: - description: Config for the journal volume. + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: + 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: properties: - storageClass: - description: Indicates if a StorageClass is used. - The operator will create the StorageClass if needed. - properties: - extraParams: - additionalProperties: - type: string - description: Adds extra parameters for the StorageClass. - type: object - provisioner: - description: Indicates the provisioner property - for the StorageClass. - type: string - type: - description: Indicates the 'type' parameter - for the StorageClass. - type: string - fsType: - description: Indicates the 'fsType' parameter - for the StorageClass. - type: string - reclaimPolicy: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: string - type: object - size: - description: Indicates the requested size for the - volume. The format follows the Kubernetes' Quantity. - type: string - name: - description: Indicates the suffix for the volume. - Default value is 'data'. - type: string - existingStorageClassName: - description: Indicates if an already existing storage - class should be used. - type: string - type: object - ledgers: - description: Config for the ledgers volume. + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: properties: - storageClass: - description: Indicates if a StorageClass is used. - The operator will create the StorageClass if needed. - properties: - extraParams: - additionalProperties: - type: string - description: Adds extra parameters for the StorageClass. - type: object - provisioner: - description: Indicates the provisioner property - for the StorageClass. - type: string - type: - description: Indicates the 'type' parameter - for the StorageClass. - type: string - fsType: - description: Indicates the 'fsType' parameter - for the StorageClass. - type: string - reclaimPolicy: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: string - type: object - size: - description: Indicates the requested size for the - volume. The format follows the Kubernetes' Quantity. - type: string - name: - description: Indicates the suffix for the volume. - Default value is 'data'. - type: string - existingStorageClassName: - description: Indicates if an already existing storage - class should be used. - type: string - type: object - type: object - imagePullSecrets: - description: Image pull secrets. + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: properties: + devicePath: + type: "string" name: - type: string - type: object - type: array - image: - description: Override Pulsar image. - type: string - annotations: - additionalProperties: - type: string - description: Annotations to add to each resource (except - pods). - type: object - podAnnotations: - additionalProperties: - type: string - description: Annotations to add to pod. - type: object - sidecars: - description: Sidecar containers + type: "string" + type: "object" + type: "array" + volumeMounts: items: properties: - lifecycle: - properties: - postStart: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array - livenessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: + 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" + kafka: + description: "Enable Kafka protocol." + properties: + enabled: + description: "Allow the cluster to accept Kafka protocol.\ + \ Default is 'false'." + type: "boolean" + exposePorts: + description: "Expose the kafka protocol port." + type: "boolean" + type: "object" + labels: + additionalProperties: + type: "string" + description: "Labels to add to each resource (except pods)." + type: "object" + matchLabels: + additionalProperties: + type: "string" + description: "Match labels selectors to add to each pod." + type: "object" + minReadySeconds: + description: "Min seconds to wait before considering the pod as\ + \ ready." + type: "integer" + nodeAffinity: + description: "Node affinity configuration." + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: properties: - command: + key: + type: "string" + operator: + type: "string" + values: items: - type: string - type: array - type: object - httpGet: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: + items: properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: + key: + type: "string" + operator: + type: "string" + values: items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: - properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: - properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - securityContext: - properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: + type: "string" + type: "array" + type: "object" + type: "array" + type: "object" + weight: + type: "integer" + type: "object" + type: "array" + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: properties: - add: - items: - type: string - type: array - drop: + key: + type: "string" + operator: + type: "string" + values: items: - type: string - type: array - type: object - seLinuxOptions: - properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: + items: properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + type: "object" + type: "array" + type: "object" + type: "object" + nodeSelectors: + additionalProperties: + type: "string" + description: "Additional node selectors." + type: "object" + overrideResourceName: + description: "Override the resource names generated by the operator." + type: "string" + pdb: + description: "Pod disruption budget configuration." + properties: + enabled: + description: "Enable Pdb policy." + type: "boolean" + maxUnavailable: + description: "Number of maxUnavailable pods." + type: "integer" + minAvailable: + description: "Number of minAvailable pods." + type: "integer" + type: "object" + podAnnotations: + additionalProperties: + type: "string" + description: "Annotations to add to pod." + type: "object" + podLabels: + additionalProperties: + type: "string" + description: "Labels to add to each pod." + type: "object" + probes: + description: "Liveness and readiness probes configuration." + properties: + liveness: + description: "Liveness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds) for the\ + \ probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period (in\ + \ seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds) for the\ + \ probe." + type: "integer" + type: "object" + readiness: + description: "Readiness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds) for the\ + \ probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period (in\ + \ seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds) for the\ + \ probe." + type: "integer" + type: "object" + type: "object" + replicas: + description: "Number of desired replicas." + type: "integer" + resources: + description: "Resources requirements." + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + securityContext: + description: "Subset of PodSecurityContext for basic UID, GID,\ + \ and volume access control." + properties: + fsGroup: + type: "integer" + fsGroupChangePolicy: + type: "string" + runAsGroup: + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + type: "integer" + supplementalGroups: + items: + type: "integer" + type: "array" + type: "object" + service: + description: "Service configuration." + properties: + additionalPorts: + description: "Additional ports to add to the Service." + items: + properties: + appProtocol: + type: "string" + name: + type: "string" + nodePort: + type: "integer" + port: + type: "integer" + protocol: + type: "string" + targetPort: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "array" + annotations: + additionalProperties: + type: "string" + description: "Additional annotations to add to the Service." + type: "object" + enablePlainTextWithTLS: + description: "Enable plain text connections even if TLS is\ + \ enabled." + type: "boolean" + loadBalancerClass: + description: "Assign a load balancer class." + type: "string" + loadBalancerIP: + description: "Assign a load balancer IP." + type: "string" + type: + description: "Service type. Default value is 'ClusterIP'" + type: "string" + type: "object" + serviceAccountName: + description: "Service account name for the resource." + type: "string" + sets: + additionalProperties: + properties: additionalVolumes: - description: Mount additional volumes to the pod. + description: "Mount additional volumes to the pod." properties: + mounts: + description: "Mount points for the additional volumes" + items: + 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" volumes: - description: Additional volumes to be mounted to the - pod + description: "Additional volumes to be mounted to the\ + \ pod" items: properties: - hostPath: + awsElasticBlockStore: properties: - path: - type: string - type: - type: string - type: object - flexVolume: + fsType: + type: "string" + partition: + type: "integer" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + azureDisk: + properties: + cachingMode: + type: "string" + diskName: + type: "string" + diskURI: + type: "string" + fsType: + type: "string" + kind: + type: "string" + readOnly: + type: "boolean" + type: "object" + azureFile: properties: readOnly: - type: boolean - options: - additionalProperties: - type: string - type: object + type: "boolean" + secretName: + type: "string" + shareName: + type: "string" + type: "object" + cephfs: + properties: + monitors: + items: + type: "string" + type: "array" + path: + type: "string" + readOnly: + type: "boolean" + secretFile: + type: "string" secretRef: properties: name: - type: string - type: object + type: "string" + type: "object" + user: + type: "string" + type: "object" + cinder: + properties: fsType: - type: string + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + volumeID: + type: "string" + type: "object" + configMap: + properties: + defaultMode: + type: "integer" + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + csi: + properties: driver: - type: string - type: object - gcePersistentDisk: + type: "string" + fsType: + type: "string" + nodePublishSecretRef: + properties: + name: + type: "string" + type: "object" + readOnly: + type: "boolean" + volumeAttributes: + additionalProperties: + type: "string" + type: "object" + type: "object" + downwardAPI: properties: - readOnly: - type: boolean - pdName: - type: string - partition: - type: integer - fsType: - type: string - type: object + defaultMode: + type: "integer" + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + emptyDir: + properties: + medium: + type: "string" + sizeLimit: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" ephemeral: properties: volumeClaimTemplate: properties: metadata: properties: - generateName: - type: string - deletionGracePeriodSeconds: - type: integer - deletionTimestamp: - type: string - resourceVersion: - type: string annotations: additionalProperties: - type: string - type: object - selfLink: - type: string + type: "string" + type: "object" creationTimestamp: - type: string + type: "string" + deletionGracePeriodSeconds: + type: "integer" + deletionTimestamp: + type: "string" finalizers: items: - type: string - type: array + type: "string" + type: "array" + generateName: + type: "string" + generation: + type: "integer" labels: additionalProperties: - type: string - type: object - ownerReferences: - items: - properties: - blockOwnerDeletion: - type: boolean - uid: - type: string - apiVersion: - type: string - name: - type: string - kind: - type: string - controller: - type: boolean - type: object - type: array - uid: - type: string - generation: - type: integer - name: - type: string + type: "string" + type: "object" managedFields: items: properties: - time: - type: string apiVersion: - type: string - fieldsV1: - type: object + type: "string" fieldsType: - type: string + type: "string" + fieldsV1: + type: "object" manager: - type: string + type: "string" operation: - type: string + type: "string" subresource: - type: string - type: object - type: array + type: "string" + time: + type: "string" + type: "object" + type: "array" + name: + type: "string" namespace: - type: string - type: object + type: "string" + ownerReferences: + items: + 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: properties: - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string + accessModes: + items: + type: "string" + type: "array" dataSource: properties: - name: - type: string + apiGroup: + type: "string" kind: - type: string + type: "string" + name: + type: "string" + type: "object" + dataSourceRef: + properties: apiGroup: - type: string - type: object + type: "string" + kind: + type: "string" + name: + type: "string" + namespace: + type: "string" + type: "object" resources: properties: limits: additionalProperties: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" requests: additionalProperties: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - dataSourceRef: + type: "object" + type: "object" + selector: properties: - name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - accessModes: - items: - type: string - type: array + matchExpressions: + items: + 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 + type: "string" volumeName: - type: string - type: object - type: object - type: object - scaleIO: + type: "string" + type: "object" + type: "object" + type: "object" + fc: properties: + fsType: + type: "string" + lun: + type: "integer" readOnly: - type: boolean - storageMode: - type: string - storagePool: - type: string - system: - type: string - gateway: - type: string + type: "boolean" + targetWWNs: + items: + type: "string" + type: "array" + wwids: + items: + type: "string" + type: "array" + type: "object" + flexVolume: + properties: + driver: + type: "string" + fsType: + type: "string" + options: + additionalProperties: + type: "string" + type: "object" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + type: "object" + flocker: + properties: + datasetName: + type: "string" + datasetUUID: + type: "string" + type: "object" + gcePersistentDisk: + properties: + fsType: + type: "string" + partition: + type: "integer" + pdName: + type: "string" + readOnly: + type: "boolean" + type: "object" + gitRepo: + properties: + directory: + type: "string" + repository: + type: "string" + revision: + type: "string" + type: "object" + glusterfs: + properties: + endpoints: + type: "string" + path: + type: "string" + readOnly: + type: "boolean" + type: "object" + hostPath: + properties: + path: + type: "string" + type: + type: "string" + type: "object" + image: + properties: + pullPolicy: + type: "string" + reference: + type: "string" + type: "object" + iscsi: + 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: + properties: + name: + type: "string" + type: "object" + targetPortal: + type: "string" + type: "object" + name: + type: "string" + nfs: + properties: + path: + type: "string" + readOnly: + type: "boolean" + server: + type: "string" + type: "object" + persistentVolumeClaim: + properties: + claimName: + type: "string" + readOnly: + type: "boolean" + type: "object" + photonPersistentDisk: + properties: + fsType: + type: "string" + pdID: + type: "string" + type: "object" + portworxVolume: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + projected: + properties: + defaultMode: + type: "integer" + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + 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: + properties: + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + secret: + properties: + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + serviceAccountToken: + properties: + audience: + type: "string" + expirationSeconds: + type: "integer" + path: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + quobyte: + properties: + group: + type: "string" + readOnly: + type: "boolean" + registry: + type: "string" + tenant: + type: "string" + user: + type: "string" + volume: + type: "string" + type: "object" + rbd: + properties: + fsType: + type: "string" + image: + type: "string" + keyring: + type: "string" + monitors: + items: + type: "string" + type: "array" + pool: + type: "string" + readOnly: + type: "boolean" secretRef: properties: name: - type: string - type: object + type: "string" + type: "object" + user: + type: "string" + type: "object" + scaleIO: + properties: fsType: - type: string - sslEnabled: - type: boolean - volumeName: - type: string + type: "string" + gateway: + type: "string" protectionDomain: - type: string - type: object - csi: - properties: - nodePublishSecretRef: + type: "string" + readOnly: + type: "boolean" + secretRef: properties: name: - type: string - type: object - readOnly: - type: boolean - volumeAttributes: - additionalProperties: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object + type: "string" + type: "object" + sslEnabled: + type: "boolean" + storageMode: + type: "string" + storagePool: + type: "string" + system: + type: "string" + volumeName: + type: "string" + type: "object" secret: properties: - optional: - type: boolean - secretName: - type: string + defaultMode: + type: "integer" items: items: properties: - path: - type: string key: - type: string + type: "string" mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - name: - type: string + type: "integer" + path: + type: "string" + type: "object" + type: "array" + optional: + type: "boolean" + secretName: + type: "string" + type: "object" + storageos: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + volumeName: + type: "string" + volumeNamespace: + type: "string" + type: "object" vsphereVolume: properties: - storagePolicyName: - type: string + fsType: + type: "string" storagePolicyID: - type: string + type: "string" + storagePolicyName: + type: "string" volumePath: - type: string - fsType: - type: string - type: object - gitRepo: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + annotations: + additionalProperties: + type: "string" + description: "Annotations to add to each resource (except\ + \ pods)." + type: "object" + antiAffinity: + description: "Pod anti-affinity configuration. This override\ + \ the global value if set." + properties: + host: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "boolean" + type: "object" + zone: + description: "Indicates the provisioner property for\ + \ the StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property\ + \ for the StorageClass." + type: "boolean" + type: "object" + type: "object" + config: + description: "Configuration." + x-kubernetes-preserve-unknown-fields: true + env: + description: "Additional container env variables." + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: properties: - revision: - type: string - repository: - type: string - directory: - type: string - type: object - glusterfs: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: properties: - path: - type: string - readOnly: - type: boolean - endpoints: - type: string - type: object - nfs: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: properties: - path: - type: string - readOnly: - type: boolean - server: - type: string - type: object - cinder: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: properties: - readOnly: - type: boolean - secretRef: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + gracePeriod: + description: "Termination grace period in seconds." + minimum: 0.0 + type: "integer" + image: + description: "Override Pulsar image." + type: "string" + imagePullPolicy: + description: "Override image pull policy." + type: "string" + imagePullSecrets: + description: "Image pull secrets." + items: + properties: + name: + type: "string" + type: "object" + type: "array" + initContainers: + description: "Init containers" + items: + properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" + lifecycle: + properties: + postStart: + properties: + exec: properties: - name: - type: string - type: object - fsType: - type: string - volumeID: - type: string - type: object - flocker: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + preStop: properties: - datasetUUID: - type: string - datasetName: - type: string - type: object - quobyte: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" + livenessProbe: + properties: + exec: properties: - group: - type: string - readOnly: - type: boolean - volume: - type: string - user: - type: string - registry: - type: string - tenant: - type: string - type: object - photonPersistentDisk: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: properties: - pdID: - type: string - fsType: - type: string - type: object - persistentVolumeClaim: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: + exec: properties: - readOnly: - type: boolean - claimName: - type: string - type: object - awsElasticBlockStore: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: properties: - readOnly: - type: boolean - partition: - type: integer - fsType: - type: string - volumeID: - type: string - type: object - configMap: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: properties: - optional: - type: boolean - items: + host: + type: "string" + httpHeaders: items: properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - name: - type: string - type: object - storageos: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: properties: - readOnly: - type: boolean - volumeNamespace: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - volumeName: - type: string - type: object - portworxVolume: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: + items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: properties: - readOnly: - type: boolean - fsType: - type: string - volumeID: - type: string - type: object - iscsi: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: properties: - readOnly: - type: boolean - chapAuthSession: - type: boolean - lun: - type: integer - targetPortal: - type: string - iscsiInterface: - type: string - portals: + add: items: - type: string - type: array - initiatorName: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - iqn: - type: string - chapAuthDiscovery: - type: boolean - type: object - rbd: - properties: - readOnly: - type: boolean - pool: - type: string - keyring: - type: string - image: - type: string - secretRef: - properties: - name: - type: string - type: object - monitors: + type: "string" + type: "array" + drop: items: - type: string - type: array - fsType: - type: string + 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" user: - type: string - type: object - azureFile: + type: "string" + type: "object" + seccompProfile: properties: - readOnly: - type: boolean - secretName: - type: string - shareName: - type: string - type: object - downwardAPI: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: properties: - items: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: + properties: + exec: + properties: + command: items: - properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - projected: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: properties: - defaultMode: - type: integer - sources: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: items: properties: - secret: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - name: - type: string - type: object - configMap: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - name: - type: string - type: object - serviceAccountToken: - properties: - path: - type: string - audience: - type: string - expirationSeconds: - type: integer - type: object - downwardAPI: - properties: - items: - items: - properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - type: object - type: object - type: array - type: object - azureDisk: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: properties: - readOnly: - type: boolean - diskName: - type: string - cachingMode: - type: string - fsType: - type: string - kind: - type: string - diskURI: - type: string - type: object - cephfs: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: + properties: + devicePath: + type: "string" + name: + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + 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" + kafka: + description: "Enable Kafka protocol." + properties: + enabled: + description: "Allow the cluster to accept Kafka protocol.\ + \ Default is 'false'." + type: "boolean" + exposePorts: + description: "Expose the kafka protocol port." + type: "boolean" + type: "object" + labels: + additionalProperties: + type: "string" + description: "Labels to add to each resource (except pods)." + type: "object" + matchLabels: + additionalProperties: + type: "string" + description: "Match labels selectors to add to each pod." + type: "object" + minReadySeconds: + description: "Min seconds to wait before considering the\ + \ pod as ready." + type: "integer" + nodeAffinity: + description: "Node affinity configuration." + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: properties: - path: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - monitors: + matchExpressions: items: - type: string - type: array - secretFile: - type: string - user: - type: string - type: object - emptyDir: - properties: - sizeLimit: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - medium: - type: string - type: object - fc: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: + items: + 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" + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: properties: - readOnly: - type: boolean - lun: - type: integer - wwids: + matchExpressions: items: - type: string - type: array - targetWWNs: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: items: - type: string - type: array - fsType: - type: string - type: object - type: object - type: array - mounts: - description: Mount points for the additional volumes + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + type: "object" + type: "array" + type: "object" + type: "object" + nodeSelectors: + additionalProperties: + type: "string" + description: "Additional node selectors." + type: "object" + overrideResourceName: + description: "Override the resource names generated by the\ + \ operator." + type: "string" + pdb: + description: "Pod disruption budget configuration." + properties: + enabled: + description: "Enable Pdb policy." + type: "boolean" + maxUnavailable: + description: "Number of maxUnavailable pods." + type: "integer" + minAvailable: + description: "Number of minAvailable pods." + type: "integer" + type: "object" + podAnnotations: + additionalProperties: + type: "string" + description: "Annotations to add to pod." + type: "object" + podLabels: + additionalProperties: + type: "string" + description: "Labels to add to each pod." + type: "object" + probes: + description: "Liveness and readiness probes configuration." + properties: + liveness: + description: "Liveness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds)\ + \ for the probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period\ + \ (in seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds)\ + \ for the probe." + type: "integer" + type: "object" + readiness: + description: "Readiness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds)\ + \ for the probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period\ + \ (in seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds)\ + \ for the probe." + type: "integer" + type: "object" + type: "object" + replicas: + description: "Number of desired replicas." + type: "integer" + resources: + description: "Resources requirements." + properties: + claims: items: properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string name: - type: string - type: object - type: array - type: object - env: - description: Additional container env variables. - items: - properties: - value: - type: string - valueFrom: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + securityContext: + description: "Subset of PodSecurityContext for basic UID,\ + \ GID, and volume access control." + properties: + fsGroup: + type: "integer" + fsGroupChangePolicy: + type: "string" + runAsGroup: + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + type: "integer" + supplementalGroups: + items: + type: "integer" + type: "array" + type: "object" + service: + description: "Service configuration." + properties: + additionalPorts: + description: "Additional ports to add to the Service." + items: properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - labels: - additionalProperties: - type: string - description: Labels to add to each resource (except pods). - type: object - initContainers: - description: Init containers + appProtocol: + type: "string" + name: + type: "string" + nodePort: + type: "integer" + port: + type: "integer" + protocol: + type: "string" + targetPort: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "array" + annotations: + additionalProperties: + type: "string" + description: "Additional annotations to add to the Service." + type: "object" + enablePlainTextWithTLS: + description: "Enable plain text connections even if\ + \ TLS is enabled." + type: "boolean" + loadBalancerClass: + description: "Assign a load balancer class." + type: "string" + loadBalancerIP: + description: "Assign a load balancer IP." + type: "string" + type: + description: "Service type. Default value is 'ClusterIP'" + type: "string" + type: "object" + serviceAccountName: + description: "Service account name for the resource." + type: "string" + sidecars: + description: "Sidecar containers" items: properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" lifecycle: properties: postStart: properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + type: "object" + preStop: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array - livenessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" + livenessProbe: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer + scheme: + type: "string" + type: "object" initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object + type: "integer" + periodSeconds: + type: "integer" successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer + type: "integer" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" timeoutSeconds: - type: integer + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer + scheme: + type: "string" + type: "object" initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object + type: "integer" + periodSeconds: + type: "integer" successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer + type: "integer" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" timeoutSeconds: - type: integer + type: "integer" + type: "object" + resizePolicy: + items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: + 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + stdin: + type: "boolean" stdinOnce: - type: boolean - ports: + type: "boolean" + terminationMessagePath: + type: "string" + terminationMessagePolicy: + type: "string" + tty: + type: "boolean" + volumeDevices: items: properties: - containerPort: - type: integer - hostPort: - type: integer + devicePath: + type: "string" name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: - properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: - properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array + type: "string" + type: "object" + type: "array" volumeMounts: items: properties: - readOnly: - type: boolean - subPathExpr: - type: string mountPath: - type: string + type: "string" mountPropagation: - type: string - subPath: - type: string + type: "string" name: - type: string - type: object - type: array - securityContext: + 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" + standaloneFunctionsWorker: + description: "Whether or not the functions worker is in\ + \ standalone mode." + type: "boolean" + tolerations: + description: "Pod tolerations." + items: + properties: + effect: + type: "string" + key: + type: "string" + operator: + type: "string" + tolerationSeconds: + type: "integer" + value: + type: "string" + type: "object" + type: "array" + updateStrategy: + description: "Strategy for the proxy deployment." + properties: + rollingUpdate: + properties: + maxSurge: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + maxUnavailable: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: + type: "string" + type: "object" + webSocket: + description: "WebSocket configuration." + properties: + config: + description: "Configuration." + x-kubernetes-preserve-unknown-fields: true + enabled: + description: "Enable WebSocket standalone as container\ + \ in the proxy pod." + type: "boolean" + probes: + description: "Liveness and readiness probes configuration." + properties: + liveness: + description: "Liveness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in\ + \ seconds) for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds)\ + \ for the probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace\ + \ period (in seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds)\ + \ for the probe." + type: "integer" + type: "object" + readiness: + description: "Readiness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in\ + \ seconds) for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds)\ + \ for the probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace\ + \ period (in seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds)\ + \ for the probe." + type: "integer" + type: "object" + type: "object" + resources: + description: "Resources requirements." + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + type: "object" + type: "object" + description: "Proxy sets." + type: "object" + setsUpdateStrategy: + description: "Sets update strategy. 'RollingUpdate' or 'Parallel'.\ + \ Default is 'RollingUpdate'." + type: "string" + sidecars: + description: "Sidecar containers" + items: + properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: + configMapKeyRef: properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: properties: - add: - items: - type: string - type: array - drop: - items: - type: string - type: array - type: object - seLinuxOptions: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: properties: - limits: - additionalProperties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: - items: + type: "object" + type: "object" + preStop: + properties: + exec: properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array - pdb: - description: Pod disruption budget configuration. + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" + livenessProbe: properties: - maxUnavailable: - description: Number of maxUnavailable pods. - type: integer - enabled: - description: Enable Pdb policy. - type: boolean - type: object - tolerations: - description: Pod tolerations. + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + name: + type: "string" + ports: items: properties: - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - effect: - type: string - type: object - type: array - replicas: - description: Number of desired replicas. - type: integer - nodeAffinity: - description: Node affinity configuration. + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: properties: - preferredDuringSchedulingIgnoredDuringExecution: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: + items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: items: properties: - weight: - type: integer - preference: - properties: - matchFields: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: properties: - nodeSelectorTerms: + add: items: - properties: - matchFields: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: array - type: object - type: object - nodeSelectors: - additionalProperties: - type: string - description: Additional node selectors. - type: object - antiAffinity: - description: Pod anti-affinity configuration. This override - the global value if set. + 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: properties: - host: - description: Indicates the reclaimPolicy property for - the StorageClass. + exec: properties: - required: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: boolean - type: object - zone: - description: Indicates the provisioner property for - the StorageClass. + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: properties: - required: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: boolean - type: object - type: object - imagePullPolicy: - description: Override image pull policy. - type: string - podLabels: - additionalProperties: - type: string - description: Labels to add to each pod. - type: object - matchLabels: - additionalProperties: - type: string - description: Match labels selectors to add to each pod. - type: object - serviceAccountName: - description: Service account name for the resource. - type: string - type: object - description: Bookie sets. - type: object - setsUpdateStrategy: - description: Sets update strategy. 'RollingUpdate' or 'Parallel'. - Default is 'RollingUpdate'. - type: string - cleanUpPvcs: - description: Cleanup PVCs after the bookie has been removed. - type: boolean + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: + properties: + devicePath: + type: "string" + name: + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + 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" + standaloneFunctionsWorker: + description: "Whether or not the functions worker is in standalone\ + \ mode." + type: "boolean" + tolerations: + description: "Pod tolerations." + items: + properties: + effect: + type: "string" + key: + type: "string" + operator: + type: "string" + tolerationSeconds: + type: "integer" + value: + type: "string" + type: "object" + type: "array" updateStrategy: - description: Update strategy for the StatefulSet. Default value - is rolling update. + description: "Strategy for the proxy deployment." properties: - type: - type: string rollingUpdate: properties: + maxSurge: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true maxUnavailable: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - partition: - type: integer - type: object - type: object - config: - description: Configuration. - x-kubernetes-preserve-unknown-fields: true - gracePeriod: - description: Termination grace period in seconds. - minimum: 0.0 - type: integer - probes: - description: Liveness and readiness probes configuration. - properties: - liveness: - description: Liveness probe configuration. - properties: - periodSeconds: - description: Indicates the period (in seconds) for the - probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period (in - seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) for the - probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - readiness: - description: Readiness probe configuration. - properties: - periodSeconds: - description: Indicates the period (in seconds) for the - probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period (in - seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) for the - probe. - type: integer - enabled: - description: Enables the probe. - type: boolean - type: object - type: object - service: - description: Service configuration. - properties: - additionalPorts: - description: Additional ports to add to the Service. - items: - properties: - targetPort: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - port: - type: integer - nodePort: - type: integer - name: - type: string - appProtocol: - type: string - protocol: - type: string - type: object - type: array - annotations: - additionalProperties: - type: string - description: Additional annotations to add to the Service. - type: object - type: object - podManagementPolicy: - description: Pod management policy. Default value is 'Parallel'. - type: string - autoscaler: - description: Autoscaling config. + type: "object" + type: + type: "string" + type: "object" + webSocket: + description: "WebSocket configuration." properties: - periodMs: - description: The interval in milliseconds between two consecutive - autoscaling checks. - minimum: 1000.0 - type: integer - diskUsageToleranceLwm: - description: The threshold to trigger a scale down. The autoscaler - will scale down if all the bookies' disk usage is lower - than this threshold. Default is '0.75' - maximum: 1.0 - minimum: 0.0 - type: number - scaleUpMaxLimit: - description: "Max number of bookies. If the number of bookies\ - \ is equals to this value, the autoscaler will never scale\ - \ up." - minimum: 1.0 - type: integer - diskUsageToleranceHwm: - description: The threshold to trigger a scale up. The autoscaler - will scale up if any of thebookie's disk usage is higher - than or equal to this threshold. Default is '0.92' - maximum: 1.0 - minimum: 0.0 - type: number + config: + description: "Configuration." + x-kubernetes-preserve-unknown-fields: true enabled: - description: Enable autoscaling for bookies. - type: boolean - minWritableBookies: - description: "Min number of writable bookies. The autoscaler\ - \ will scale up if not enough writable bookies are detected.\ - \ For instance, if a bookie went to read-only mode, the\ - \ autoscaler will scale up to replace it. Default is '3'." - minimum: 1.0 - type: integer - scaleUpBy: - description: The number of bookies to add at each scale up. - Default is '1' - minimum: 1.0 - type: integer - stabilizationWindowMs: - description: The stabilization window is used to restrict - the flapping of replica count when the metrics used for - scaling keep fluctuating. The autoscaling algorithm uses - this window to infer a previous desired state and avoid - unwanted changes to workload scale.Default value is 5 minutes - after the pod readiness. - minimum: 1.0 - type: integer - scaleDownBy: - description: The number of bookies to remove at each scale - down. Default is '1' - minimum: 1.0 - type: integer - type: object - resources: - description: Resources requirements. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - overrideResourceName: - description: Override the resource names generated by the operator. - type: string - pvcPrefix: - description: Prefix for each PVC created. - type: string - volumes: - description: Volumes configuration. - properties: - journal: - description: Config for the journal volume. + description: "Enable WebSocket standalone as container in\ + \ the proxy pod." + type: "boolean" + probes: + description: "Liveness and readiness probes configuration." properties: - storageClass: - description: Indicates if a StorageClass is used. The - operator will create the StorageClass if needed. + liveness: + description: "Liveness probe configuration." properties: - extraParams: - additionalProperties: - type: string - description: Adds extra parameters for the StorageClass. - type: object - provisioner: - description: Indicates the provisioner property for - the StorageClass. - type: string - type: - description: Indicates the 'type' parameter for the - StorageClass. - type: string - fsType: - description: Indicates the 'fsType' parameter for - the StorageClass. - type: string - reclaimPolicy: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: string - type: object - size: - description: Indicates the requested size for the volume. - The format follows the Kubernetes' Quantity. - type: string - name: - description: Indicates the suffix for the volume. Default - value is 'data'. - type: string - existingStorageClassName: - description: Indicates if an already existing storage - class should be used. - type: string - type: object - ledgers: - description: Config for the ledgers volume. - properties: - storageClass: - description: Indicates if a StorageClass is used. The - operator will create the StorageClass if needed. + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds) for\ + \ the probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period\ + \ (in seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds) for\ + \ the probe." + type: "integer" + type: "object" + readiness: + description: "Readiness probe configuration." properties: - extraParams: - additionalProperties: - type: string - description: Adds extra parameters for the StorageClass. - type: object - provisioner: - description: Indicates the provisioner property for - the StorageClass. - type: string - type: - description: Indicates the 'type' parameter for the - StorageClass. - type: string - fsType: - description: Indicates the 'fsType' parameter for - the StorageClass. - type: string - reclaimPolicy: - description: Indicates the reclaimPolicy property - for the StorageClass. - type: string - type: object - size: - description: Indicates the requested size for the volume. - The format follows the Kubernetes' Quantity. - type: string - name: - description: Indicates the suffix for the volume. Default - value is 'data'. - type: string - existingStorageClassName: - description: Indicates if an already existing storage - class should be used. - type: string - type: object - type: object - imagePullSecrets: - description: Image pull secrets. - items: - properties: - name: - type: string - type: object - type: array - image: - description: Override Pulsar image. - type: string - annotations: - additionalProperties: - type: string - description: Annotations to add to each resource (except pods). - type: object - podAnnotations: - additionalProperties: - type: string - description: Annotations to add to pod. - type: object - sidecars: - description: Sidecar containers - items: - properties: - lifecycle: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds) for\ + \ the probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period\ + \ (in seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds) for\ + \ the probe." + type: "integer" + type: "object" + type: "object" + resources: + description: "Resources requirements." + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + type: "object" + type: "object" + zookeeper: + properties: + additionalVolumes: + description: "Mount additional volumes to the pod." + properties: + mounts: + description: "Mount points for the additional volumes" + items: properties: - postStart: + 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" + volumes: + description: "Additional volumes to be mounted to the pod" + items: + properties: + awsElasticBlockStore: properties: - tcpSocket: + fsType: + type: "string" + partition: + type: "integer" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + azureDisk: + properties: + cachingMode: + type: "string" + diskName: + type: "string" + diskURI: + type: "string" + fsType: + type: "string" + kind: + type: "string" + readOnly: + type: "boolean" + type: "object" + azureFile: + properties: + readOnly: + type: "boolean" + secretName: + type: "string" + shareName: + type: "string" + type: "object" + cephfs: + properties: + monitors: + items: + type: "string" + type: "array" + path: + type: "string" + readOnly: + type: "boolean" + secretFile: + type: "string" + secretRef: properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: + name: + type: "string" + type: "object" + user: + type: "string" + type: "object" + cinder: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + secretRef: properties: - command: - items: - type: string - type: array - type: object - httpGet: + name: + type: "string" + type: "object" + volumeID: + type: "string" + type: "object" + configMap: + properties: + defaultMode: + type: "integer" + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + csi: + properties: + driver: + type: "string" + fsType: + type: "string" + nodePublishSecretRef: properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: + name: + type: "string" + type: "object" + readOnly: + type: "boolean" + volumeAttributes: + additionalProperties: + type: "string" + type: "object" + type: "object" + downwardAPI: + properties: + defaultMode: + type: "integer" + items: + items: + properties: + fieldRef: properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - preStop: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + emptyDir: properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: + medium: + type: "string" + sizeLimit: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + ephemeral: + properties: + volumeClaimTemplate: properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array - livenessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: + metadata: + properties: + annotations: + additionalProperties: + type: "string" + type: "object" + creationTimestamp: + type: "string" + deletionGracePeriodSeconds: + type: "integer" + deletionTimestamp: + type: "string" + finalizers: + items: + type: "string" + type: "array" + generateName: + type: "string" + generation: + type: "integer" + labels: + additionalProperties: + type: "string" + type: "object" + managedFields: + items: + properties: + apiVersion: + type: "string" + fieldsType: + type: "string" + fieldsV1: + type: "object" + manager: + type: "string" + operation: + type: "string" + subresource: + type: "string" + time: + type: "string" + type: "object" + type: "array" + name: + type: "string" + namespace: + type: "string" + ownerReferences: + items: + 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: + properties: + accessModes: + items: + type: "string" + type: "array" + dataSource: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + type: "object" + dataSourceRef: + properties: + apiGroup: + type: "string" + kind: + type: "string" + name: + type: "string" + namespace: + type: "string" + type: "object" + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + selector: + properties: + matchExpressions: + items: + 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: + 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: + properties: + driver: + type: "string" + fsType: + type: "string" + options: + additionalProperties: + type: "string" + type: "object" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + type: "object" + flocker: properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: + datasetName: + type: "string" + datasetUUID: + type: "string" + type: "object" + gcePersistentDisk: properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: + fsType: + type: "string" + partition: + type: "integer" + pdName: + type: "string" + readOnly: + type: "boolean" + type: "object" + gitRepo: properties: - command: + directory: + type: "string" + repository: + type: "string" + revision: + type: "string" + type: "object" + glusterfs: + properties: + endpoints: + type: "string" + path: + type: "string" + readOnly: + type: "boolean" + type: "object" + hostPath: + properties: + path: + type: "string" + type: + type: "string" + type: "object" + image: + properties: + pullPolicy: + type: "string" + reference: + type: "string" + type: "object" + iscsi: + 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 - type: object - httpGet: + type: "string" + type: "array" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + targetPortal: + type: "string" + type: "object" + name: + type: "string" + nfs: properties: path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: + type: "string" + readOnly: + type: "boolean" + server: + type: "string" + type: "object" + persistentVolumeClaim: + properties: + claimName: + type: "string" + readOnly: + type: "boolean" + type: "object" + photonPersistentDisk: + properties: + fsType: + type: "string" + pdID: + type: "string" + type: "object" + portworxVolume: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + projected: + properties: + defaultMode: + type: "integer" + sources: items: properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + 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: + properties: + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + secret: + properties: + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + serviceAccountToken: + properties: + audience: + type: "string" + expirationSeconds: + type: "integer" + path: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + quobyte: properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: + group: + type: "string" + readOnly: + type: "boolean" + registry: + type: "string" + tenant: + type: "string" + user: + type: "string" + volume: + type: "string" + type: "object" + rbd: properties: - command: + fsType: + type: "string" + image: + type: "string" + keyring: + type: "string" + monitors: items: - type: string - type: array - type: object - httpGet: + type: "string" + type: "array" + pool: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + user: + type: "string" + type: "object" + scaleIO: properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: + fsType: + type: "string" + gateway: + type: "string" + protectionDomain: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + sslEnabled: + type: "boolean" + storageMode: + type: "string" + storagePool: + type: "string" + system: + type: "string" + volumeName: + type: "string" + type: "object" + secret: + properties: + defaultMode: + type: "integer" + items: items: properties: - value: - type: string - name: - type: string - type: object - type: array - port: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + optional: + type: "boolean" + secretName: + type: "string" + type: "object" + storageos: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + volumeName: + type: "string" + volumeNamespace: + type: "string" + type: "object" + vsphereVolume: + properties: + fsType: + type: "string" + storagePolicyID: + type: "string" + storagePolicyName: + type: "string" + volumePath: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + annotations: + additionalProperties: + type: "string" + description: "Annotations to add to each resource (except pods)." + type: "object" + antiAffinity: + description: "Pod anti-affinity configuration. This override the\ + \ global value if set." + properties: + host: + description: "Indicates the reclaimPolicy property for the\ + \ StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + zone: + description: "Indicates the provisioner property for the StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + type: "object" + config: + description: "Configuration." + x-kubernetes-preserve-unknown-fields: true + dataVolume: + description: "Volume configuration for ZooKeeper data." + properties: + existingStorageClassName: + description: "Indicates if an already existing storage class\ + \ should be used." + type: "string" + name: + description: "Indicates the suffix for the volume. Default\ + \ value is 'data'." + type: "string" + size: + description: "Indicates the requested size for the volume.\ + \ The format follows the Kubernetes' Quantity." + type: "string" + storageClass: + description: "Indicates if a StorageClass is used. The operator\ + \ will create the StorageClass if needed." + properties: + extraParams: + additionalProperties: + type: "string" + description: "Adds extra parameters for the StorageClass." + type: "object" + fsType: + description: "Indicates the 'fsType' parameter for the\ + \ StorageClass." + type: "string" + provisioner: + description: "Indicates the provisioner property for the\ + \ StorageClass." + type: "string" + reclaimPolicy: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "string" + type: + description: "Indicates the 'type' parameter for the StorageClass." + type: "string" + type: "object" + type: "object" + env: + description: "Additional container env variables." + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + gracePeriod: + description: "Termination grace period in seconds." + minimum: 0.0 + type: "integer" + image: + description: "Override Pulsar image." + type: "string" + imagePullPolicy: + description: "Override image pull policy." + type: "string" + imagePullSecrets: + description: "Image pull secrets." + items: + properties: + name: + type: "string" + type: "object" + type: "array" + initContainers: + description: "Init containers" + items: + properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" env: items: properties: + name: + type: "string" value: - type: string + type: "string" valueFrom: properties: configMapKeyRef: properties: - optional: - type: boolean key: - type: string + type: "string" name: - type: string - type: object + type: "string" + optional: + type: "boolean" + type: "object" fieldRef: properties: apiVersion: - type: string + type: "string" fieldPath: - type: string - type: object + type: "string" + type: "object" resourceFieldRef: properties: containerName: - type: string + type: "string" divisor: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true resource: - type: string - type: object + type: "string" + type: "object" secretKeyRef: properties: - optional: - type: boolean key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string + type: "string" name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" envFrom: items: properties: - prefix: - type: string configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: - properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - securityContext: - properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: - properties: - add: - items: - type: string - type: array - drop: - items: - type: string - type: array - type: object - seLinuxOptions: - properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: - properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array - additionalVolumes: - description: Mount additional volumes to the pod. - properties: - volumes: - description: Additional volumes to be mounted to the pod - items: - properties: - hostPath: - properties: - path: - type: string - type: - type: string - type: object - flexVolume: - properties: - readOnly: - type: boolean - options: - additionalProperties: - type: string - type: object - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - gcePersistentDisk: - properties: - readOnly: - type: boolean - pdName: - type: string - partition: - type: integer - fsType: - type: string - type: object - ephemeral: - properties: - volumeClaimTemplate: - properties: - metadata: - properties: - generateName: - type: string - deletionGracePeriodSeconds: - type: integer - deletionTimestamp: - type: string - resourceVersion: - type: string - annotations: - additionalProperties: - type: string - type: object - selfLink: - type: string - creationTimestamp: - type: string - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - ownerReferences: - items: - properties: - blockOwnerDeletion: - type: boolean - uid: - type: string - apiVersion: - type: string - name: - type: string - kind: - type: string - controller: - type: boolean - type: object - type: array - uid: - type: string - generation: - type: integer - name: - type: string - managedFields: - items: - properties: - time: - type: string - apiVersion: - type: string - fieldsV1: - type: object - fieldsType: - type: string - manager: - type: string - operation: - type: string - subresource: - type: string - type: object - type: array - namespace: - type: string - type: object - spec: - properties: - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string - dataSource: - properties: - name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - dataSourceRef: - properties: - name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - accessModes: - items: - type: string - type: array - volumeMode: - type: string - volumeName: - type: string - type: object - type: object - type: object - scaleIO: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" + lifecycle: + properties: + postStart: properties: - readOnly: - type: boolean - storageMode: - type: string - storagePool: - type: string - system: - type: string - gateway: - type: string - secretRef: + exec: properties: - name: - type: string - type: object - fsType: - type: string - sslEnabled: - type: boolean - volumeName: - type: string - protectionDomain: - type: string - type: object - csi: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + preStop: properties: - nodePublishSecretRef: + exec: properties: - name: - type: string - type: object - readOnly: - type: boolean - volumeAttributes: - additionalProperties: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - secret: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" + livenessProbe: + properties: + exec: properties: - optional: - type: boolean - secretName: - type: string - items: + command: items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - name: - type: string - vsphereVolume: - properties: - storagePolicyName: - type: string - storagePolicyID: - type: string - volumePath: - type: string - fsType: - type: string - type: object - gitRepo: - properties: - revision: - type: string - repository: - type: string - directory: - type: string - type: object - glusterfs: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: properties: - path: - type: string - readOnly: - type: boolean - endpoints: - type: string - type: object - nfs: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" path: - type: string - readOnly: - type: boolean - server: - type: string - type: object - cinder: - properties: - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - volumeID: - type: string - type: object - flocker: - properties: - datasetUUID: - type: string - datasetName: - type: string - type: object - quobyte: - properties: - group: - type: string - readOnly: - type: boolean - volume: - type: string - user: - type: string - registry: - type: string - tenant: - type: string - type: object - photonPersistentDisk: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: properties: - pdID: - type: string - fsType: - type: string - type: object - persistentVolumeClaim: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: + exec: properties: - readOnly: - type: boolean - claimName: - type: string - type: object - awsElasticBlockStore: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: properties: - readOnly: - type: boolean - partition: - type: integer - fsType: - type: string - volumeID: - type: string - type: object - configMap: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: properties: - optional: - type: boolean - items: + host: + type: "string" + httpHeaders: items: properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - name: - type: string - type: object - storageos: - properties: - readOnly: - type: boolean - volumeNamespace: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - volumeName: - type: string - type: object - portworxVolume: - properties: - readOnly: - type: boolean - fsType: - type: string - volumeID: - type: string - type: object - iscsi: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: properties: - readOnly: - type: boolean - chapAuthSession: - type: boolean - lun: - type: integer - targetPortal: - type: string - iscsiInterface: - type: string - portals: - items: - type: string - type: array - initiatorName: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - iqn: - type: string - chapAuthDiscovery: - type: boolean - type: object - rbd: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: + items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: + properties: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: properties: - readOnly: - type: boolean - pool: - type: string - keyring: - type: string - image: - type: string - secretRef: - properties: - name: - type: string - type: object - monitors: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: + properties: + add: items: - type: string - type: array - fsType: - type: string + 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" user: - type: string - type: object - azureFile: + type: "string" + type: "object" + seccompProfile: properties: - readOnly: - type: boolean - secretName: - type: string - shareName: - type: string - type: object - downwardAPI: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: properties: - items: - items: - properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - projected: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: + properties: + exec: properties: - defaultMode: - type: integer - sources: + command: items: - properties: - secret: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - name: - type: string - type: object - configMap: - properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - name: - type: string - type: object - serviceAccountToken: - properties: - path: - type: string - audience: - type: string - expirationSeconds: - type: integer - type: object - downwardAPI: - properties: - items: - items: - properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - type: object - type: object - type: array - type: object - azureDisk: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: properties: - readOnly: - type: boolean - diskName: - type: string - cachingMode: - type: string - fsType: - type: string - kind: - type: string - diskURI: - type: string - type: object - cephfs: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: properties: - path: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - monitors: + host: + type: "string" + httpHeaders: items: - type: string - type: array - secretFile: - type: string - user: - type: string - type: object - emptyDir: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: properties: - sizeLimit: + host: + type: "string" + port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - medium: - type: string - type: object - fc: + 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: + properties: + devicePath: + type: "string" + name: + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + 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" + labels: + additionalProperties: + type: "string" + description: "Labels to add to each resource (except pods)." + type: "object" + matchLabels: + additionalProperties: + type: "string" + description: "Match labels selectors to add to each pod." + type: "object" + metadataInitializationJob: + description: "Configuration about the job that initializes the\ + \ Pulsar cluster creating the needed ZooKeeper nodes." + properties: + resources: + description: "Resources requirements." + properties: + claims: + items: properties: - readOnly: - type: boolean - lun: - type: integer - wwids: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + timeout: + description: "Timeout (in seconds) for the metadata initialization\ + \ execution. Default value is 60." + type: "integer" + type: "object" + minReadySeconds: + description: "Min seconds to wait before considering the pod as\ + \ ready." + type: "integer" + nodeAffinity: + description: "Node affinity configuration." + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: items: - type: string - type: array - targetWWNs: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: items: - type: string - type: array - fsType: - type: string - type: object - type: object - type: array - mounts: - description: Mount points for the additional volumes + 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" + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: + items: + properties: + key: + type: "string" + operator: + type: "string" + values: + items: + type: "string" + type: "array" + type: "object" + type: "array" + type: "object" + type: "array" + type: "object" + type: "object" + nodeSelectors: + additionalProperties: + type: "string" + description: "Additional node selectors." + type: "object" + pdb: + description: "Pod disruption budget configuration." + properties: + enabled: + description: "Enable Pdb policy." + type: "boolean" + maxUnavailable: + description: "Number of maxUnavailable pods." + type: "integer" + minAvailable: + description: "Number of minAvailable pods." + type: "integer" + type: "object" + podAnnotations: + additionalProperties: + type: "string" + description: "Annotations to add to pod." + type: "object" + podLabels: + additionalProperties: + type: "string" + description: "Labels to add to each pod." + type: "object" + podManagementPolicy: + description: "Pod management policy. Default value is 'Parallel'." + type: "string" + probes: + description: "Liveness probe configuration." + properties: + liveness: + description: "Liveness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds) for the\ + \ probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period (in\ + \ seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds) for the\ + \ probe." + type: "integer" + type: "object" + readiness: + description: "Readiness probe configuration." + properties: + enabled: + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds) for the\ + \ probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period (in\ + \ seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds) for the\ + \ probe." + type: "integer" + type: "object" + type: "object" + replicas: + description: "Number of desired replicas." + type: "integer" + resources: + description: "Resources requirements." + properties: + claims: items: properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string name: - type: string - type: object - type: array - type: object - env: - description: Additional container env variables. - items: - properties: - value: - type: string - valueFrom: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + securityContext: + description: "Subset of PodSecurityContext for basic UID, GID,\ + \ and volume access control." + properties: + fsGroup: + type: "integer" + fsGroupChangePolicy: + type: "string" + runAsGroup: + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + type: "integer" + supplementalGroups: + items: + type: "integer" + type: "array" + type: "object" + service: + description: "Service configuration." + properties: + additionalPorts: + description: "Additional ports to add to the Service." + items: properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - labels: - additionalProperties: - type: string - description: Labels to add to each resource (except pods). - type: object - initContainers: - description: Init containers + appProtocol: + type: "string" + name: + type: "string" + nodePort: + type: "integer" + port: + type: "integer" + protocol: + type: "string" + targetPort: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "array" + annotations: + additionalProperties: + type: "string" + description: "Additional annotations to add to the Service." + type: "object" + type: "object" + serviceAccountName: + description: "Service account name for the resource." + type: "string" + sidecars: + description: "Sidecar containers" items: properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" lifecycle: properties: postStart: properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + type: "object" + preStop: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" livenessProbe: properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer exec: properties: command: items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer + type: "string" + type: "array" + type: "object" failureThreshold: - type: integer - initialDelaySeconds: - type: integer + type: "integer" grpc: properties: port: - type: integer + type: "integer" service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: - properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: - type: integer - service: - type: string - type: object + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer + type: "integer" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" timeoutSeconds: - type: integer + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: items: properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: properties: - optional: - type: boolean name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" securityContext: properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object allowPrivilegeEscalation: - type: boolean + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" capabilities: properties: add: items: - type: string - type: array + type: "string" + type: "array" drop: items: - type: string - type: array - type: object + 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: properties: + level: + type: "string" role: - type: string + type: "string" type: - type: string + type: "string" user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string + type: "string" + type: "object" seccompProfile: properties: - type: - type: string localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: properties: devicePath: - type: string + type: "string" name: - type: string - type: object - type: array - type: object - type: array - pdb: - description: Pod disruption budget configuration. - properties: - maxUnavailable: - description: Number of maxUnavailable pods. - type: integer - enabled: - description: Enable Pdb policy. - type: boolean - type: object + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + 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" tolerations: - description: Pod tolerations. + description: "Pod tolerations." items: properties: + effect: + type: "string" key: - type: string + type: "string" operator: - type: string + type: "string" tolerationSeconds: - type: integer + type: "integer" value: - type: string - effect: - type: string - type: object - type: array - replicas: - description: Number of desired replicas. - type: integer - nodeAffinity: - description: Node affinity configuration. - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - weight: - type: integer - preference: - properties: - matchFields: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchFields: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: array - type: object - type: object - nodeSelectors: - additionalProperties: - type: string - description: Additional node selectors. - type: object - antiAffinity: - description: Pod anti-affinity configuration. This override the - global value if set. + type: "string" + type: "object" + type: "array" + updateStrategy: + description: "Update strategy for the StatefulSet. Default value\ + \ is rolling update." properties: - host: - description: Indicates the reclaimPolicy property for the - StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - zone: - description: Indicates the provisioner property for the StorageClass. + rollingUpdate: properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - type: object - imagePullPolicy: - description: Override image pull policy. - type: string - podLabels: - additionalProperties: - type: string - description: Labels to add to each pod. - type: object - matchLabels: - additionalProperties: - type: string - description: Match labels selectors to add to each pod. - type: object - serviceAccountName: - description: Service account name for the resource. - type: string - type: object - type: object + maxUnavailable: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + partition: + type: "integer" + type: "object" + type: + type: "string" + type: "object" + type: "object" + type: "object" status: properties: - lastApplied: - description: Last spec applied. - type: string conditions: description: |- Conditions: 1. Condition Ready: possible status are True or False. If False, the reason contains the error message. items: properties: - status: - type: string - reason: - type: string lastTransitionTime: - type: string + type: "string" + message: + type: "string" observedGeneration: - type: integer + type: "integer" + reason: + type: "string" + status: + type: "string" type: - type: string - message: - type: string - type: object - type: array - type: object - type: object + type: "string" + type: "object" + type: "array" + lastApplied: + description: "Last spec applied." + type: "string" + type: "object" + type: "object" served: true storage: true subresources: diff --git a/helm/kaap/crds/zookeepers.kaap.oss.datastax.com-v1.yml b/helm/kaap/crds/zookeepers.kaap.oss.datastax.com-v1.yml index e31ddb88..b32835b5 100644 --- a/helm/kaap/crds/zookeepers.kaap.oss.datastax.com-v1.yml +++ b/helm/kaap/crds/zookeepers.kaap.oss.datastax.com-v1.yml @@ -1,2707 +1,3195 @@ # Generated by Fabric8 CRDGenerator, manual edits might get overwritten! -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition +apiVersion: "apiextensions.k8s.io/v1" +kind: "CustomResourceDefinition" metadata: - name: zookeepers.kaap.oss.datastax.com + name: "zookeepers.kaap.oss.datastax.com" spec: - group: kaap.oss.datastax.com + group: "kaap.oss.datastax.com" names: - kind: ZooKeeper - plural: zookeepers + kind: "ZooKeeper" + plural: "zookeepers" shortNames: - - zk - singular: zookeeper - scope: Namespaced + - "zk" + singular: "zookeeper" + scope: "Namespaced" versions: - - name: v1beta1 + - name: "v1beta1" schema: openAPIV3Schema: properties: spec: properties: - zookeeper: + global: properties: - updateStrategy: - description: Update strategy for the StatefulSet. Default value - is rolling update. - properties: - type: - type: string - rollingUpdate: - properties: - maxUnavailable: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - partition: - type: integer - type: object - type: object - config: - description: Configuration. - x-kubernetes-preserve-unknown-fields: true - gracePeriod: - description: Termination grace period in seconds. - minimum: 0.0 - type: integer - metadataInitializationJob: - description: Configuration about the job that initializes the - Pulsar cluster creating the needed ZooKeeper nodes. - properties: - resources: - description: Resources requirements. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - timeout: - description: Timeout (in seconds) for the metadata initialization - execution. Default value is 60. - type: integer - type: object - probes: - description: Liveness probe configuration. + antiAffinity: + description: "Pod anti affinity configuration." properties: - liveness: - description: Liveness probe configuration. + host: + description: "Indicates the reclaimPolicy property for the\ + \ StorageClass." properties: - periodSeconds: - description: Indicates the period (in seconds) for the - probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period (in - seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) for the - probe. - type: integer enabled: - description: Enables the probe. - type: boolean - type: object - readiness: - description: Readiness probe configuration. + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + zone: + description: "Indicates the provisioner property for the StorageClass." properties: - periodSeconds: - description: Indicates the period (in seconds) for the - probe. - type: integer - initialDelaySeconds: - description: Indicates the initial delay (in seconds) - for the probe. - type: integer - failureThreshold: - description: Failure threshold. - type: integer - successThreshold: - description: Success threshold. - type: integer - terminationGracePeriodSeconds: - description: Indicates the termination grace period (in - seconds) for the probe. - type: integer - timeoutSeconds: - description: Indicates the timeout (in seconds) for the - probe. - type: integer enabled: - description: Enables the probe. - type: boolean - type: object - type: object - podManagementPolicy: - description: Pod management policy. Default value is 'Parallel'. - type: string - service: - description: Service configuration. + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + type: "object" + auth: + description: | + Authentication and authorization configuration. properties: - additionalPorts: - description: Additional ports to add to the Service. + enabled: + description: "Enable authentication in the cluster. Default\ + \ is 'false'." + type: "boolean" + token: + description: "Token based authentication configuration." + properties: + initialize: + description: "Initialize Secrets with new pair of keys\ + \ and tokens for the super user roles. The generated\ + \ Secret name is 'token-'." + type: "boolean" + privateKeyFile: + description: "Private key file name stored in the Secret.\ + \ Default is 'my-private.key'" + type: "string" + proxyRoles: + description: "Proxy roles." + items: + type: "string" + type: "array" + publicKeyFile: + description: "Public key file name stored in the Secret.\ + \ Default is 'my-public.key'" + type: "string" + superUserRoles: + description: "Super user roles." + items: + type: "string" + type: "array" + type: "object" + type: "object" + clusterName: + description: "Corresponds to the 'clusterName' field in the broker.conf.\ + \ Defaults to the value of the 'name' field" + type: "string" + components: + description: "Pulsar cluster components names." + properties: + autorecoveryBaseName: + description: "Autorecovery base name. Default value is 'autorecovery'." + type: "string" + bastionBaseName: + description: "Bastion base name. Default value is 'bastion'." + type: "string" + bookkeeperBaseName: + description: "BookKeeper base name. Default value is 'bookkeeper'." + type: "string" + brokerBaseName: + description: "Broker base name. Default value is 'broker'." + type: "string" + functionsWorkerBaseName: + description: "Functions Worker base name. Default value is\ + \ 'function'." + type: "string" + proxyBaseName: + description: "Proxy base name. Default value is 'proxy'." + type: "string" + zookeeperBaseName: + description: "Zookeeper base name. Default value is 'zookeeper'." + type: "string" + type: "object" + dnsConfig: + description: | + Override default DNS config for each pod. Note that because we use fully qualified service names for intra + cluster networking with Pulsar components, we set the ndots value to 4 (the default is 5). This prevents + unnecessary DNS lookups for the fully qualified service names that would be guaranteed to result in NXDOMAIN. + For example, the name 'pulsar-broker.pulsar.svc.cluster.local' has 4 dots, so it would be resolved directly + instead of appending the configured search domains. + More info here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config. + properties: + nameservers: + items: + type: "string" + type: "array" + options: items: properties: - targetPort: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - port: - type: integer - nodePort: - type: integer name: - type: string - appProtocol: - type: string - protocol: - type: string - type: object - type: array - annotations: - additionalProperties: - type: string - description: Additional annotations to add to the Service. - type: object - type: object - resources: - description: Resources requirements. - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - dataVolume: - description: Volume configuration for ZooKeeper data. + type: "string" + value: + type: "string" + type: "object" + type: "array" + searches: + items: + type: "string" + type: "array" + type: "object" + dnsName: + description: "Public dns name for the cluster's load balancer." + type: "string" + image: + description: "Default Pulsar image to use. Any components can\ + \ be configured to use a different image." + type: "string" + imagePullPolicy: + description: "Default Pulsar image pull policy to use. Any components\ + \ can be configured to use a different image pull policy. Default\ + \ value is 'IfNotPresent'." + type: "string" + kubernetesClusterDomain: + description: | + The domain name for your kubernetes cluster. + This domain is documented here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#a-aaaa-records-1 . + It's used to fully qualify service names when configuring Pulsar. + The default value is 'cluster.local'. + type: "string" + name: + description: "Name of the Pulsar cluster spec. This is used as\ + \ a prefix for managed Kubernetes resources." + type: "string" + nodeSelectors: + additionalProperties: + type: "string" + description: "Global node selector. If set, this will apply to\ + \ all the components." + type: "object" + persistence: + description: | + If persistence is enabled, components that has state will be deployed with PersistentVolumeClaims, otherwise, for test purposes, they will be deployed with emptyDir + type: "boolean" + priorityClassName: + description: "Priority class name to attach to each pod." + type: "string" + racks: + additionalProperties: + properties: + host: + description: "Enable rack rules based on the hostname of\ + \ the node." + properties: + enabled: + description: "Enable the rack affinity rules." + type: "boolean" + requireRackAffinity: + description: "Indicates if the podAffinity rules will\ + \ be enforced. Default is false. If required, the\ + \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + requireRackAntiAffinity: + description: "Indicates if the podAntiAffinity rules\ + \ will be enforced. Default is true. If required,\ + \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + type: "object" + zone: + description: "Enable rack rules based on the failure domain\ + \ (availability zone) of the node." + properties: + enableHostAntiAffinity: + description: "Enable the host anti affinity. If set,\ + \ all the pods of the same rack will deployed on different\ + \ nodes of the same zone.Default is true." + type: "boolean" + enabled: + description: "Enable the rack affinity rules." + type: "boolean" + requireRackAffinity: + description: "Indicates if the podAffinity rules will\ + \ be enforced. Default is false. If required, the\ + \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + requireRackAntiAffinity: + description: "Indicates if the podAntiAffinity rules\ + \ will be enforced. Default is true. If required,\ + \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + requireRackHostAntiAffinity: + description: "Indicates if the podAntiAffinity rules\ + \ will be enforced for the host. Default is true.\ + \ If required, the affinity rule will be enforced\ + \ using 'requiredDuringSchedulingIgnoredDuringExecution'." + type: "boolean" + type: "object" + type: "object" + description: "Racks configuration." + type: "object" + resourceSets: + additionalProperties: + properties: + rack: + description: "Place this resource set to a specific rack,\ + \ defined at .global.racks." + type: "string" + type: "object" + description: "Resource sets." + type: "object" + restartOnConfigMapChange: + description: | + By default, Kubernetes will not restart pods when only their configmap is changed. This setting will restart pods when their configmap is changed using an annotation that calculates the checksum of the configmap. + type: "boolean" + storage: + description: "Storage configuration." properties: + existingStorageClassName: + description: "Indicates if an already existing storage class\ + \ should be used." + type: "string" storageClass: - description: Indicates if a StorageClass is used. The operator - will create the StorageClass if needed. + description: "Indicates if a StorageClass is used. The operator\ + \ will create the StorageClass if needed." properties: extraParams: additionalProperties: - type: string - description: Adds extra parameters for the StorageClass. - type: object - provisioner: - description: Indicates the provisioner property for the - StorageClass. - type: string - type: - description: Indicates the 'type' parameter for the StorageClass. - type: string + type: "string" + description: "Adds extra parameters for the StorageClass." + type: "object" fsType: - description: Indicates the 'fsType' parameter for the - StorageClass. - type: string + description: "Indicates the 'fsType' parameter for the\ + \ StorageClass." + type: "string" + provisioner: + description: "Indicates the provisioner property for the\ + \ StorageClass." + type: "string" reclaimPolicy: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: string - type: object - size: - description: Indicates the requested size for the volume. - The format follows the Kubernetes' Quantity. - type: string - name: - description: Indicates the suffix for the volume. Default - value is 'data'. - type: string - existingStorageClassName: - description: Indicates if an already existing storage class - should be used. - type: string - type: object - imagePullSecrets: - description: Image pull secrets. - items: - properties: - name: - type: string - type: object - type: array - image: - description: Override Pulsar image. - type: string - annotations: - additionalProperties: - type: string - description: Annotations to add to each resource (except pods). - type: object - podAnnotations: - additionalProperties: - type: string - description: Annotations to add to pod. - type: object - sidecars: - description: Sidecar containers - items: - properties: - lifecycle: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "string" + type: + description: "Indicates the 'type' parameter for the StorageClass." + type: "string" + type: "object" + type: "object" + tls: + description: "TLS configuration for the cluster." + properties: + autorecovery: + description: "TLS configurations related to the Autorecovery\ + \ component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + bookkeeper: + description: "TLS configurations related to the BookKeeper\ + \ component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + broker: + description: "TLS configurations related to the Broker component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + brokerResourceSets: + additionalProperties: properties: - postStart: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from\ + \ where to load the certificates." + type: "string" + type: "object" + description: "TLS configurations related to the Broker resource\ + \ sets." + type: "object" + caPath: + description: "Path in the container filesystem where the TLS\ + \ CA certificates are retrieved. It has to point to a certificate\ + \ file. The default value is /etc/ssl/certs/ca-certificates.crt." + type: "string" + certProvisioner: + description: "Certificate provisioner configuration." + properties: + acme: + description: "ACME certificate provisioner configuration." + properties: + broker: + description: "Broker self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + enabled: + description: "Generate self signed certificates for\ + \ broker, proxy and functions worker." + type: "boolean" + external: + additionalProperties: properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject\ + \ Alternative Names (SANs) extension." items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array - livenessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key\ + \ will be stored whe perComponent is enabled.\ + \ Required for external services. Internal\ + \ services pick up the secret name from the\ + \ tls config if not specified" + type: "string" + type: "object" + description: "External services self signed certificate\ + \ config (e.g., admin console, grafana). The key\ + \ is the service name, and the value contains generation\ + \ config" + type: "object" + issuer: + description: "ACME issuer configuration." + properties: + email: + description: "Email used for ACME registration." + type: "string" + name: + description: "Name of the Issuer resource." + type: "string" + privateKeySecretName: + description: "Secret storing the ACME account\ + \ private key." + type: "string" + server: + description: "ACME server URL." + type: "string" + solvers: + description: "ACME challenge solvers. Solvers\ + \ are evaluated in order; no domain-based routing" + items: + properties: + dns01: + description: "DNS01 solver configuration." + properties: + cloudDNS: + properties: + project: + type: "string" + serviceAccountSecretKey: + type: "string" + serviceAccountSecretName: + type: "string" + type: "object" + cloudflare: + properties: + apiTokenSecretKey: + type: "string" + apiTokenSecretName: + type: "string" + email: + type: "string" + type: "object" + route53: + properties: + hostedZoneId: + type: "string" + region: + type: "string" + type: "object" + type: "object" + http01: + description: "HTTP01 solver configuration." + properties: + ingressClass: + description: "Ingress class used for\ + \ HTTP01 challenge." + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + proxy: + description: "Proxy self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: - items: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + type: "object" + selfSigned: + description: "Self signed certificate provisioner configuration." properties: - value: - type: string - valueFrom: + autorecovery: + description: "Autorecovery self signed certificate\ + \ config." properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + bookkeeper: + description: "Bookkeeper self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + broker: + description: "Broker self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object - name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer - initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + caSecretName: + description: "Secret where to store the root CA certificate." + type: "string" + enabled: + description: "Generate self signed certificates for\ + \ broker, proxy and functions worker." + type: "boolean" + external: + additionalProperties: + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject\ + \ Alternative Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key\ + \ will be stored whe perComponent is enabled.\ + \ Required for external services. Internal\ + \ services pick up the secret name from the\ + \ tls config if not specified" + type: "string" + type: "object" + description: "External services self signed certificate\ + \ config (e.g., admin console, grafana). The key\ + \ is the service name, and the value contains generation\ + \ config" + type: "object" + functionsWorker: + description: "Functions worker self signed certificate\ + \ config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: - items: - properties: - prefix: - type: string - configMapRef: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + includeDns: + description: "Include dns name in the DNS names covered\ + \ by the certificate." + type: "boolean" + perComponent: + description: "Generate a different certificate for\ + \ each component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + proxy: + description: "Proxy self signed certificate config." properties: - optional: - type: boolean - name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - securityContext: - properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object - allowPrivilegeEscalation: - type: boolean - capabilities: - properties: - add: - items: - type: string - type: array - drop: - items: - type: string - type: array - type: object - seLinuxOptions: - properties: - role: - type: string - type: - type: string - user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string - seccompProfile: - properties: - type: - type: string - localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + zookeeper: + description: "Zookeeper self signed certificate config." + properties: + dnsNames: + description: "A list of DNS names (and IP addresses)\ + \ to include in the certificate's Subject Alternative\ + \ Names (SANs) extension." + items: + type: "string" + type: "array" + generate: + description: "Generate certificate for the component." + type: "boolean" + privateKey: + description: "Cert-manager options for generating\ + \ the private key." + properties: + algorithm: + type: "string" + encoding: + type: "string" + rotationPolicy: + type: "string" + size: + type: "integer" + type: "object" + secretName: + description: "The name of the Kubernetes Secret\ + \ where the generated certificate and key will\ + \ be stored whe perComponent is enabled. Required\ + \ for external services. Internal services pick\ + \ up the secret name from the tls config if\ + \ not specified" + type: "string" + type: "object" + type: "object" + type: "object" + defaultSecretName: + description: "Secret name used by each component to load TLS\ + \ certificates. Each component can load a different secret\ + \ by setting the 'secretName' entry in the tls component\ + \ spec." + type: "string" + enabled: + description: "Deprecated. Use the 'enabled' field in each\ + \ component spec instead." + type: "boolean" + functionsWorker: + description: "TLS configurations related to the Functions\ + \ worker component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + enabledWithBroker: + description: "Enable TLS for the functions worker to broker\ + \ connections." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + proxy: + description: "TLS configurations related to the Proxy component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + enabledWithBroker: + description: "Enable TLS for the proxy to broker connections." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + proxyResourceSets: + additionalProperties: properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - type: object - type: array + enabled: + description: "Enable TLS." + type: "boolean" + enabledWithBroker: + description: "Enable TLS for the proxy to broker connections." + type: "boolean" + secretName: + description: "Override the default secret name from\ + \ where to load the certificates." + type: "string" + type: "object" + description: "TLS configurations related to the Proxy resource\ + \ sets." + type: "object" + ssCa: + description: "TLS configurations used by additional components,\ + \ such as the Bastion component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + zookeeper: + description: "TLS configurations related to the ZooKeeper\ + \ component." + properties: + enabled: + description: "Enable TLS." + type: "boolean" + secretName: + description: "Override the default secret name from where\ + \ to load the certificates." + type: "string" + type: "object" + type: "object" + zookeeperPlainSslStorePassword: + description: "Use plain password in zookeeper server and client\ + \ configuration. Default is false. Old versions of Apache Zookeeper\ + \ (<3.8.0) does not support getting password from file. In that\ + \ case, set this to true." + type: "boolean" + required: + - "name" + type: "object" + zookeeper: + properties: additionalVolumes: - description: Mount additional volumes to the pod. + description: "Mount additional volumes to the pod." properties: + mounts: + description: "Mount points for the additional volumes" + items: + 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" volumes: - description: Additional volumes to be mounted to the pod + description: "Additional volumes to be mounted to the pod" items: properties: - hostPath: + awsElasticBlockStore: properties: - path: - type: string - type: - type: string - type: object - flexVolume: + fsType: + type: "string" + partition: + type: "integer" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" + azureDisk: + properties: + cachingMode: + type: "string" + diskName: + type: "string" + diskURI: + type: "string" + fsType: + type: "string" + kind: + type: "string" + readOnly: + type: "boolean" + type: "object" + azureFile: properties: readOnly: - type: boolean - options: - additionalProperties: - type: string - type: object + type: "boolean" + secretName: + type: "string" + shareName: + type: "string" + type: "object" + cephfs: + properties: + monitors: + items: + type: "string" + type: "array" + path: + type: "string" + readOnly: + type: "boolean" + secretFile: + type: "string" secretRef: properties: name: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - gcePersistentDisk: + type: "string" + type: "object" + user: + type: "string" + type: "object" + cinder: properties: + fsType: + type: "string" readOnly: - type: boolean - pdName: - type: string - partition: - type: integer + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + volumeID: + type: "string" + type: "object" + configMap: + properties: + defaultMode: + type: "integer" + items: + items: + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + csi: + properties: + driver: + type: "string" fsType: - type: string - type: object + type: "string" + nodePublishSecretRef: + properties: + name: + type: "string" + type: "object" + readOnly: + type: "boolean" + volumeAttributes: + additionalProperties: + type: "string" + type: "object" + type: "object" + downwardAPI: + properties: + defaultMode: + type: "integer" + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + emptyDir: + properties: + medium: + type: "string" + sizeLimit: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" ephemeral: properties: volumeClaimTemplate: properties: metadata: properties: - generateName: - type: string - deletionGracePeriodSeconds: - type: integer - deletionTimestamp: - type: string - resourceVersion: - type: string annotations: additionalProperties: - type: string - type: object - selfLink: - type: string + type: "string" + type: "object" creationTimestamp: - type: string + type: "string" + deletionGracePeriodSeconds: + type: "integer" + deletionTimestamp: + type: "string" finalizers: items: - type: string - type: array + type: "string" + type: "array" + generateName: + type: "string" + generation: + type: "integer" labels: additionalProperties: - type: string - type: object - ownerReferences: - items: - properties: - blockOwnerDeletion: - type: boolean - uid: - type: string - apiVersion: - type: string - name: - type: string - kind: - type: string - controller: - type: boolean - type: object - type: array - uid: - type: string - generation: - type: integer - name: - type: string + type: "string" + type: "object" managedFields: items: properties: - time: - type: string apiVersion: - type: string - fieldsV1: - type: object + type: "string" fieldsType: - type: string + type: "string" + fieldsV1: + type: "object" manager: - type: string + type: "string" operation: - type: string + type: "string" subresource: - type: string - type: object - type: array + type: "string" + time: + type: "string" + type: "object" + type: "array" + name: + type: "string" namespace: - type: string - type: object + type: "string" + ownerReferences: + items: + 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: properties: - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - values: - items: - type: string - type: array - operator: - type: string - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string + accessModes: + items: + type: "string" + type: "array" dataSource: properties: - name: - type: string + apiGroup: + type: "string" kind: - type: string + type: "string" + name: + type: "string" + type: "object" + dataSourceRef: + properties: apiGroup: - type: string - type: object + type: "string" + kind: + type: "string" + name: + type: "string" + namespace: + type: "string" + type: "object" resources: properties: limits: additionalProperties: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" requests: additionalProperties: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - dataSourceRef: + type: "object" + type: "object" + selector: properties: - name: - type: string - kind: - type: string - apiGroup: - type: string - type: object - accessModes: - items: - type: string - type: array - volumeMode: - type: string - volumeName: - type: string - type: object - type: object - type: object - scaleIO: - properties: - readOnly: - type: boolean - storageMode: - type: string - storagePool: - type: string - system: - type: string - gateway: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - sslEnabled: - type: boolean - volumeName: - type: string - protectionDomain: - type: string - type: object - csi: - properties: - nodePublishSecretRef: - properties: - name: - type: string - type: object - readOnly: - type: boolean - volumeAttributes: - additionalProperties: - type: string - type: object - fsType: - type: string - driver: - type: string - type: object - secret: - properties: - optional: - type: boolean - secretName: - type: string - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object - name: - type: string - vsphereVolume: + matchExpressions: + items: + 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: properties: - storagePolicyName: - type: string - storagePolicyID: - type: string - volumePath: - type: string fsType: - type: string - type: object - gitRepo: - properties: - revision: - type: string - repository: - type: string - directory: - type: string - type: object - glusterfs: - properties: - path: - type: string - readOnly: - type: boolean - endpoints: - type: string - type: object - nfs: - properties: - path: - type: string + type: "string" + lun: + type: "integer" readOnly: - type: boolean - server: - type: string - type: object - cinder: + type: "boolean" + targetWWNs: + items: + type: "string" + type: "array" + wwids: + items: + type: "string" + type: "array" + type: "object" + flexVolume: properties: + driver: + type: "string" + fsType: + type: "string" + options: + additionalProperties: + type: "string" + type: "object" readOnly: - type: boolean + type: "boolean" secretRef: properties: name: - type: string - type: object - fsType: - type: string - volumeID: - type: string - type: object + type: "string" + type: "object" + type: "object" flocker: properties: - datasetUUID: - type: string datasetName: - type: string - type: object - quobyte: - properties: - group: - type: string - readOnly: - type: boolean - volume: - type: string - user: - type: string - registry: - type: string - tenant: - type: string - type: object - photonPersistentDisk: + type: "string" + datasetUUID: + type: "string" + type: "object" + gcePersistentDisk: properties: - pdID: - type: string fsType: - type: string - type: object - persistentVolumeClaim: - properties: - readOnly: - type: boolean - claimName: - type: string - type: object - awsElasticBlockStore: - properties: - readOnly: - type: boolean + type: "string" partition: - type: integer - fsType: - type: string - volumeID: - type: string - type: object - configMap: + type: "integer" + pdName: + type: "string" + readOnly: + type: "boolean" + type: "object" + gitRepo: properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - name: - type: string - type: object - storageos: + directory: + type: "string" + repository: + type: "string" + revision: + type: "string" + type: "object" + glusterfs: properties: + endpoints: + type: "string" + path: + type: "string" readOnly: - type: boolean - volumeNamespace: - type: string - secretRef: - properties: - name: - type: string - type: object - fsType: - type: string - volumeName: - type: string - type: object - portworxVolume: + type: "boolean" + type: "object" + hostPath: properties: - readOnly: - type: boolean - fsType: - type: string - volumeID: - type: string - type: object + path: + type: "string" + type: + type: "string" + type: "object" + image: + properties: + pullPolicy: + type: "string" + reference: + type: "string" + type: "object" iscsi: properties: - readOnly: - type: boolean + chapAuthDiscovery: + type: "boolean" chapAuthSession: - type: boolean - lun: - type: integer - targetPortal: - type: string + type: "boolean" + fsType: + type: "string" + initiatorName: + type: "string" + iqn: + type: "string" iscsiInterface: - type: string + type: "string" + lun: + type: "integer" portals: items: - type: string - type: array - initiatorName: - type: string + type: "string" + type: "array" + readOnly: + type: "boolean" secretRef: properties: name: - type: string - type: object - fsType: - type: string - iqn: - type: string - chapAuthDiscovery: - type: boolean - type: object - rbd: + type: "string" + type: "object" + targetPortal: + type: "string" + type: "object" + name: + type: "string" + nfs: properties: + path: + type: "string" readOnly: - type: boolean - pool: - type: string - keyring: - type: string - image: - type: string - secretRef: - properties: - name: - type: string - type: object - monitors: - items: - type: string - type: array - fsType: - type: string - user: - type: string - type: object - azureFile: + type: "boolean" + server: + type: "string" + type: "object" + persistentVolumeClaim: properties: + claimName: + type: "string" readOnly: - type: boolean - secretName: - type: string - shareName: - type: string - type: object - downwardAPI: + type: "boolean" + type: "object" + photonPersistentDisk: properties: - items: - items: - properties: - path: - type: string - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - mode: - type: integer - type: object - type: array - defaultMode: - type: integer - type: object + fsType: + type: "string" + pdID: + type: "string" + type: "object" + portworxVolume: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + volumeID: + type: "string" + type: "object" projected: properties: defaultMode: - type: integer + type: "integer" sources: items: properties: - secret: + clusterTrustBundle: properties: - optional: - type: boolean - items: - items: - properties: - path: - type: string - key: - type: string - mode: - type: integer - type: object - type: array + labelSelector: + properties: + matchExpressions: + items: + 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 - type: object + type: "string" + optional: + type: "boolean" + path: + type: "string" + signerName: + type: "string" + type: "object" configMap: properties: - optional: - type: boolean items: items: properties: - path: - type: string key: - type: string + type: "string" mode: - type: integer - type: object - type: array + type: "integer" + path: + type: "string" + type: "object" + type: "array" name: - type: string - type: object - serviceAccountToken: - properties: - path: - type: string - audience: - type: string - expirationSeconds: - type: integer - type: object + type: "string" + optional: + type: "boolean" + type: "object" downwardAPI: properties: items: items: properties: - path: - type: string fieldRef: properties: apiVersion: - type: string + type: "string" fieldPath: - type: string - type: object + type: "string" + type: "object" + mode: + type: "integer" + path: + type: "string" resourceFieldRef: properties: containerName: - type: string + type: "string" divisor: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true resource: - type: string - type: object + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + secret: + properties: + items: + items: + properties: + key: + type: "string" mode: - type: integer - type: object - type: array - type: object - type: object - type: array - type: object - azureDisk: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + name: + type: "string" + optional: + type: "boolean" + type: "object" + serviceAccountToken: + properties: + audience: + type: "string" + expirationSeconds: + type: "integer" + path: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + quobyte: properties: + group: + type: "string" readOnly: - type: boolean - diskName: - type: string - cachingMode: - type: string - fsType: - type: string - kind: - type: string - diskURI: - type: string - type: object - cephfs: + type: "boolean" + registry: + type: "string" + tenant: + type: "string" + user: + type: "string" + volume: + type: "string" + type: "object" + rbd: properties: - path: - type: string + fsType: + type: "string" + image: + type: "string" + keyring: + type: "string" + monitors: + items: + type: "string" + type: "array" + pool: + type: "string" readOnly: - type: boolean + type: "boolean" secretRef: properties: name: - type: string - type: object - monitors: - items: - type: string - type: array - secretFile: - type: string + type: "string" + type: "object" user: - type: string - type: object - emptyDir: - properties: - sizeLimit: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - medium: - type: string - type: object - fc: + type: "string" + type: "object" + scaleIO: properties: + fsType: + type: "string" + gateway: + type: "string" + protectionDomain: + type: "string" readOnly: - type: boolean - lun: - type: integer - wwids: - items: - type: string - type: array - targetWWNs: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + sslEnabled: + type: "boolean" + storageMode: + type: "string" + storagePool: + type: "string" + system: + type: "string" + volumeName: + type: "string" + type: "object" + secret: + properties: + defaultMode: + type: "integer" + items: items: - type: string - type: array + properties: + key: + type: "string" + mode: + type: "integer" + path: + type: "string" + type: "object" + type: "array" + optional: + type: "boolean" + secretName: + type: "string" + type: "object" + storageos: + properties: + fsType: + type: "string" + readOnly: + type: "boolean" + secretRef: + properties: + name: + type: "string" + type: "object" + volumeName: + type: "string" + volumeNamespace: + type: "string" + type: "object" + vsphereVolume: + properties: fsType: - type: string - type: object - type: object - type: array - mounts: - description: Mount points for the additional volumes - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array - type: object + type: "string" + storagePolicyID: + type: "string" + storagePolicyName: + type: "string" + volumePath: + type: "string" + type: "object" + type: "object" + type: "array" + type: "object" + annotations: + additionalProperties: + type: "string" + description: "Annotations to add to each resource (except pods)." + type: "object" + antiAffinity: + description: "Pod anti-affinity configuration. This override the\ + \ global value if set." + properties: + host: + description: "Indicates the reclaimPolicy property for the\ + \ StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + zone: + description: "Indicates the provisioner property for the StorageClass." + properties: + enabled: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + required: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "boolean" + type: "object" + type: "object" + config: + description: "Configuration." + x-kubernetes-preserve-unknown-fields: true + dataVolume: + description: "Volume configuration for ZooKeeper data." + properties: + existingStorageClassName: + description: "Indicates if an already existing storage class\ + \ should be used." + type: "string" + name: + description: "Indicates the suffix for the volume. Default\ + \ value is 'data'." + type: "string" + size: + description: "Indicates the requested size for the volume.\ + \ The format follows the Kubernetes' Quantity." + type: "string" + storageClass: + description: "Indicates if a StorageClass is used. The operator\ + \ will create the StorageClass if needed." + properties: + extraParams: + additionalProperties: + type: "string" + description: "Adds extra parameters for the StorageClass." + type: "object" + fsType: + description: "Indicates the 'fsType' parameter for the\ + \ StorageClass." + type: "string" + provisioner: + description: "Indicates the provisioner property for the\ + \ StorageClass." + type: "string" + reclaimPolicy: + description: "Indicates the reclaimPolicy property for\ + \ the StorageClass." + type: "string" + type: + description: "Indicates the 'type' parameter for the StorageClass." + type: "string" + type: "object" + type: "object" env: - description: Additional container env variables. + description: "Additional container env variables." items: properties: + name: + type: "string" value: - type: string + type: "string" valueFrom: properties: configMapKeyRef: properties: - optional: - type: boolean key: - type: string + type: "string" name: - type: string - type: object + type: "string" + optional: + type: "boolean" + type: "object" fieldRef: properties: apiVersion: - type: string + type: "string" fieldPath: - type: string - type: object + type: "string" + type: "object" resourceFieldRef: properties: containerName: - type: string + type: "string" divisor: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true resource: - type: string - type: object + type: "string" + type: "object" secretKeyRef: properties: - optional: - type: boolean key: - type: string + type: "string" name: - type: string - type: object - type: object + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + gracePeriod: + description: "Termination grace period in seconds." + minimum: 0.0 + type: "integer" + image: + description: "Override Pulsar image." + type: "string" + imagePullPolicy: + description: "Override image pull policy." + type: "string" + imagePullSecrets: + description: "Image pull secrets." + items: + properties: name: - type: string - type: object - type: array - labels: - additionalProperties: - type: string - description: Labels to add to each resource (except pods). - type: object + type: "string" + type: "object" + type: "array" initContainers: - description: Init containers + description: "Init containers" items: properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: + properties: + name: + type: "string" + value: + type: "string" + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: + properties: + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: + properties: + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: + properties: + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: + properties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" lifecycle: properties: postStart: properties: - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - preStop: - properties: + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + type: "object" + preStop: + properties: exec: properties: command: items: - type: string - type: array - type: object + type: "string" + type: "array" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - type: object - command: - items: - type: string - type: array + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" livenessProbe: properties: - periodSeconds: - type: integer + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" failureThreshold: - type: integer - initialDelaySeconds: - type: integer + type: "integer" grpc: properties: port: - type: integer + type: "integer" service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - stdin: - type: boolean - image: - type: string - terminationMessagePolicy: - type: string - readinessProbe: - properties: - periodSeconds: - type: integer - failureThreshold: - type: integer + scheme: + type: "string" + type: "object" initialDelaySeconds: - type: integer - grpc: - properties: - port: - type: integer - service: - type: string - type: object + type: "integer" + periodSeconds: + type: "integer" successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer + type: "integer" tcpSocket: properties: host: - type: string + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object + type: "object" + terminationGracePeriodSeconds: + type: "integer" timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - path: - type: string - scheme: - type: string - host: - type: string - httpHeaders: - items: - properties: - value: - type: string - name: - type: string - type: object - type: array - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - terminationMessagePath: - type: string - env: + type: "integer" + type: "object" + name: + type: "string" + ports: items: properties: - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - type: string - type: object - secretKeyRef: - properties: - optional: - type: boolean - key: - type: string - name: - type: string - type: object - type: object + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" name: - type: string - type: object - type: array - tty: - type: boolean - args: - items: - type: string - type: array - startupProbe: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: properties: - periodSeconds: - type: integer + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" failureThreshold: - type: integer - initialDelaySeconds: - type: integer + type: "integer" grpc: properties: port: - type: integer + type: "integer" service: - type: string - type: object - successThreshold: - type: integer - terminationGracePeriodSeconds: - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - timeoutSeconds: - type: integer - exec: - properties: - command: - items: - type: string - type: array - type: object + type: "string" + type: "object" httpGet: properties: - path: - type: string - scheme: - type: string host: - type: string + type: "string" httpHeaders: items: properties: - value: - type: string name: - type: string - type: object - type: array + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" port: anyOf: - - type: integer - - type: string + - type: "integer" + - type: "string" x-kubernetes-int-or-string: true - type: object - type: object - stdinOnce: - type: boolean - ports: - items: - properties: - containerPort: - type: integer - hostPort: - type: integer - name: - type: string - protocol: - type: string - hostIP: - type: string - type: object - type: array - workingDir: - type: string - envFrom: + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: items: properties: - prefix: - type: string - configMapRef: - properties: - optional: - type: boolean - name: - type: string - type: object - secretRef: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: + properties: + claims: + items: properties: - optional: - type: boolean name: - type: string - type: object - type: object - type: array - volumeMounts: - items: - properties: - readOnly: - type: boolean - subPathExpr: - type: string - mountPath: - type: string - mountPropagation: - type: string - subPath: - type: string - name: - type: string - type: object - type: array + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" securityContext: properties: - runAsGroup: - type: integer - runAsNonRoot: - type: boolean - windowsOptions: - properties: - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - gmsaCredentialSpec: - type: string - runAsUserName: - type: string - type: object allowPrivilegeEscalation: - type: boolean + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" capabilities: properties: add: items: - type: string - type: array + type: "string" + type: "array" drop: items: - type: string - type: array - type: object + 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: properties: + level: + type: "string" role: - type: string + type: "string" type: - type: string + type: "string" user: - type: string - level: - type: string - type: object - readOnlyRootFilesystem: - type: boolean - privileged: - type: boolean - runAsUser: - type: integer - procMount: - type: string + type: "string" + type: "object" seccompProfile: properties: - type: - type: string localhostProfile: - type: string - type: object - type: object - name: - type: string - resources: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: object - imagePullPolicy: - type: string + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: properties: devicePath: - type: string + type: "string" name: - type: string - type: object - type: array - type: object - type: array - pdb: - description: Pod disruption budget configuration. + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + 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" + labels: + additionalProperties: + type: "string" + description: "Labels to add to each resource (except pods)." + type: "object" + matchLabels: + additionalProperties: + type: "string" + description: "Match labels selectors to add to each pod." + type: "object" + metadataInitializationJob: + description: "Configuration about the job that initializes the\ + \ Pulsar cluster creating the needed ZooKeeper nodes." properties: - maxUnavailable: - description: Number of maxUnavailable pods. - type: integer - enabled: - description: Enable Pdb policy. - type: boolean - type: object - tolerations: - description: Pod tolerations. - items: - properties: - key: - type: string - operator: - type: string - tolerationSeconds: - type: integer - value: - type: string - effect: - type: string - type: object - type: array - replicas: - description: Number of desired replicas. - type: integer + resources: + description: "Resources requirements." + properties: + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + timeout: + description: "Timeout (in seconds) for the metadata initialization\ + \ execution. Default value is 60." + type: "integer" + type: "object" + minReadySeconds: + description: "Min seconds to wait before considering the pod as\ + \ ready." + type: "integer" nodeAffinity: - description: Node affinity configuration. + description: "Node affinity configuration." properties: preferredDuringSchedulingIgnoredDuringExecution: items: properties: - weight: - type: integer preference: properties: - matchFields: + matchExpressions: items: properties: key: - type: string + type: "string" + operator: + type: "string" values: items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: items: properties: key: - type: string + type: "string" + operator: + type: "string" values: items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: object - type: array + type: "string" + type: "array" + type: "object" + type: "array" + type: "object" + weight: + type: "integer" + type: "object" + type: "array" requiredDuringSchedulingIgnoredDuringExecution: properties: nodeSelectorTerms: items: properties: - matchFields: + matchExpressions: items: properties: key: - type: string + type: "string" + operator: + type: "string" values: items: - type: string - type: array - operator: - type: string - type: object - type: array - matchExpressions: + type: "string" + type: "array" + type: "object" + type: "array" + matchFields: items: properties: key: - type: string + type: "string" + operator: + type: "string" values: items: - type: string - type: array - operator: - type: string - type: object - type: array - type: object - type: array - type: object - type: object + type: "string" + type: "array" + type: "object" + type: "array" + type: "object" + type: "array" + type: "object" + type: "object" nodeSelectors: additionalProperties: - type: string - description: Additional node selectors. - type: object - antiAffinity: - description: Pod anti-affinity configuration. This override the - global value if set. + type: "string" + description: "Additional node selectors." + type: "object" + pdb: + description: "Pod disruption budget configuration." properties: - host: - description: Indicates the reclaimPolicy property for the - StorageClass. + enabled: + description: "Enable Pdb policy." + type: "boolean" + maxUnavailable: + description: "Number of maxUnavailable pods." + type: "integer" + minAvailable: + description: "Number of minAvailable pods." + type: "integer" + type: "object" + podAnnotations: + additionalProperties: + type: "string" + description: "Annotations to add to pod." + type: "object" + podLabels: + additionalProperties: + type: "string" + description: "Labels to add to each pod." + type: "object" + podManagementPolicy: + description: "Pod management policy. Default value is 'Parallel'." + type: "string" + probes: + description: "Liveness probe configuration." + properties: + liveness: + description: "Liveness probe configuration." properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - zone: - description: Indicates the provisioner property for the StorageClass. + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds) for the\ + \ probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period (in\ + \ seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds) for the\ + \ probe." + type: "integer" + type: "object" + readiness: + description: "Readiness probe configuration." properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - type: object - imagePullPolicy: - description: Override image pull policy. - type: string - podLabels: - additionalProperties: - type: string - description: Labels to add to each pod. - type: object - matchLabels: - additionalProperties: - type: string - description: Match labels selectors to add to each pod. - type: object - serviceAccountName: - description: Service account name for the resource. - type: string - type: object - global: - properties: - components: - description: Pulsar cluster components names. - properties: - brokerBaseName: - description: Broker base name. Default value is 'broker'. - type: string - zookeeperBaseName: - description: Zookeeper base name. Default value is 'zookeeper'. - type: string - functionsWorkerBaseName: - description: Functions Worker base name. Default value is - 'function'. - type: string - autorecoveryBaseName: - description: Autorecovery base name. Default value is 'autorecovery'. - type: string - bookkeeperBaseName: - description: BookKeeper base name. Default value is 'bookkeeper'. - type: string - bastionBaseName: - description: Bastion base name. Default value is 'bastion'. - type: string - proxyBaseName: - description: Proxy base name. Default value is 'proxy'. - type: string - type: object - dnsConfig: - description: | - Override default DNS config for each pod. Note that because we use fully qualified service names for intra - cluster networking with Pulsar components, we set the ndots value to 4 (the default is 5). This prevents - unnecessary DNS lookups for the fully qualified service names that would be guaranteed to result in NXDOMAIN. - For example, the name 'pulsar-broker.pulsar.svc.cluster.local' has 4 dots, so it would be resolved directly - instead of appending the configured search domains. - More info here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config. + description: "Enables the probe." + type: "boolean" + failureThreshold: + description: "Failure threshold." + type: "integer" + initialDelaySeconds: + description: "Indicates the initial delay (in seconds)\ + \ for the probe." + type: "integer" + periodSeconds: + description: "Indicates the period (in seconds) for the\ + \ probe." + type: "integer" + successThreshold: + description: "Success threshold." + type: "integer" + terminationGracePeriodSeconds: + description: "Indicates the termination grace period (in\ + \ seconds) for the probe." + type: "integer" + timeoutSeconds: + description: "Indicates the timeout (in seconds) for the\ + \ probe." + type: "integer" + type: "object" + type: "object" + replicas: + description: "Number of desired replicas." + type: "integer" + resources: + description: "Resources requirements." properties: - nameservers: + claims: items: - type: string - type: array - searches: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + securityContext: + description: "Subset of PodSecurityContext for basic UID, GID,\ + \ and volume access control." + properties: + fsGroup: + type: "integer" + fsGroupChangePolicy: + type: "string" + runAsGroup: + type: "integer" + runAsNonRoot: + type: "boolean" + runAsUser: + type: "integer" + supplementalGroups: items: - type: string - type: array - options: + type: "integer" + type: "array" + type: "object" + service: + description: "Service configuration." + properties: + additionalPorts: + description: "Additional ports to add to the Service." items: properties: - value: - type: string + appProtocol: + type: "string" name: - type: string - type: object - type: array - type: object - dnsName: - description: Public dns name for the cluster's load balancer. - type: string - kubernetesClusterDomain: - description: | - The domain name for your kubernetes cluster. - This domain is documented here: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#a-aaaa-records-1 . - It's used to fully qualify service names when configuring Pulsar. - The default value is 'cluster.local'. - type: string - priorityClassName: - description: Priority class name to attach to each pod. - type: string - name: - description: Name of the Pulsar cluster spec. This is used as - a prefix for managed Kubernetes resources. - type: string - storage: - description: Storage configuration. - properties: - storageClass: - description: Indicates if a StorageClass is used. The operator - will create the StorageClass if needed. - properties: - extraParams: - additionalProperties: - type: string - description: Adds extra parameters for the StorageClass. - type: object - provisioner: - description: Indicates the provisioner property for the - StorageClass. - type: string - type: - description: Indicates the 'type' parameter for the StorageClass. - type: string - fsType: - description: Indicates the 'fsType' parameter for the - StorageClass. - type: string - reclaimPolicy: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: string - type: object - existingStorageClassName: - description: Indicates if an already existing storage class - should be used. - type: string - type: object - tls: - description: TLS configuration for the cluster. - properties: - ssCa: - description: "TLS configurations used by additional components,\ - \ such as the Bastion component." - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - certProvisioner: - description: Certificate provisioner configuration. - properties: - selfSigned: - description: Self signed certificate provisioner configuration. + type: "string" + nodePort: + type: "integer" + port: + type: "integer" + protocol: + type: "string" + targetPort: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "array" + annotations: + additionalProperties: + type: "string" + description: "Additional annotations to add to the Service." + type: "object" + type: "object" + serviceAccountName: + description: "Service account name for the resource." + type: "string" + sidecars: + description: "Sidecar containers" + items: + properties: + args: + items: + type: "string" + type: "array" + command: + items: + type: "string" + type: "array" + env: + items: properties: - functionsWorker: - description: Functions worker self signed certificate - config. + name: + type: "string" + value: + type: "string" + valueFrom: properties: - privateKey: - description: Cert-manager options for generating - the private key. + configMapKeyRef: properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - includeDns: - description: Include dns name in the DNS names covered - by the certificate. - type: boolean - privateKey: - description: Cert-manager options for generating the - private key. - properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - autorecovery: - description: Autorecovery self signed certificate - config. - properties: - privateKey: - description: Cert-manager options for generating - the private key. + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + fieldRef: properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - bookkeeper: - description: Bookkeeper self signed certificate config. - properties: - privateKey: - description: Cert-manager options for generating - the private key. + apiVersion: + type: "string" + fieldPath: + type: "string" + type: "object" + resourceFieldRef: properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - proxy: - description: Proxy self signed certificate config. - properties: - privateKey: - description: Cert-manager options for generating - the private key. + containerName: + type: "string" + divisor: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + resource: + type: "string" + type: "object" + secretKeyRef: properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - zookeeper: - description: Zookeeper self signed certificate config. + key: + type: "string" + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "object" + type: "array" + envFrom: + items: + properties: + configMapRef: properties: - privateKey: - description: Cert-manager options for generating - the private key. - properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - broker: - description: Broker self signed certificate config. + name: + type: "string" + optional: + type: "boolean" + type: "object" + prefix: + type: "string" + secretRef: properties: - privateKey: - description: Cert-manager options for generating - the private key. - properties: - rotationPolicy: - type: string - encoding: - type: string - algorithm: - type: string - size: - type: integer - type: object - generate: - description: Generate self signed certificates - for the component. - type: boolean - type: object - perComponent: - description: Generate a different certificate for - each component. - type: boolean - enabled: - description: "Generate self signed certificates for\ - \ broker, proxy and functions worker." - type: boolean - caSecretName: - description: Secret where to store the root CA certificate. - type: string - type: object - type: object - autorecovery: - description: TLS configurations related to the Autorecovery - component. - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - proxyResourceSets: - additionalProperties: + name: + type: "string" + optional: + type: "boolean" + type: "object" + type: "object" + type: "array" + image: + type: "string" + imagePullPolicy: + type: "string" + lifecycle: properties: - enabledWithBroker: - description: Enable TLS for the proxy to broker connections. - type: boolean - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - description: TLS configurations related to the Proxy resource - sets. - type: object - defaultSecretName: - description: Secret name used by each component to load TLS - certificates. Each component can load a different secret - by setting the 'secretName' entry in the tls component spec. - type: string - enabled: - description: Deprecated. Use the 'enabled' field in each component - spec instead. - type: boolean - caPath: - description: Path in the container filesystem where the TLS - CA certificates are retrieved. It has to point to a certificate - file. The default value is /etc/ssl/certs/ca-certificates.crt. - type: string - zookeeper: - description: TLS configurations related to the ZooKeeper component. - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - brokerResourceSets: - additionalProperties: + postStart: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + preStop: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + sleep: + properties: + seconds: + type: "integer" + type: "object" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + stopSignal: + type: "string" + type: "object" + livenessProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + name: + type: "string" + ports: + items: + properties: + containerPort: + type: "integer" + hostIP: + type: "string" + hostPort: + type: "integer" + name: + type: "string" + protocol: + type: "string" + type: "object" + type: "array" + readinessProbe: properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - description: TLS configurations related to the Broker resource - sets. - type: object - functionsWorker: - description: TLS configurations related to the Functions worker - component. - properties: - enabledWithBroker: - description: Enable TLS for the functions worker to broker - connections. - type: boolean - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - broker: - description: TLS configurations related to the Broker component. - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - proxy: - description: TLS configurations related to the Proxy component. - properties: - enabledWithBroker: - description: Enable TLS for the proxy to broker connections. - type: boolean - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - bookkeeper: - description: TLS configurations related to the BookKeeper - component. - properties: - secretName: - description: Override the default secret name from where - to load the certificates. - type: string - enabled: - description: Enable TLS. - type: boolean - type: object - type: object - clusterName: - description: Corresponds to the 'clusterName' field in the broker.conf. Defaults - to the value of the 'name' field - type: string - restartOnConfigMapChange: - description: | - By default, Kubernetes will not restart pods when only their configmap is changed. This setting will restart pods when their configmap is changed using an annotation that calculates the checksum of the configmap. - type: boolean - image: - description: Default Pulsar image to use. Any components can be - configured to use a different image. - type: string - auth: - description: | - Authentication and authorization configuration. - properties: - token: - description: Token based authentication configuration. - properties: - privateKeyFile: - description: Private key file name stored in the Secret. - Default is 'my-private.key' - type: string - initialize: - description: Initialize Secrets with new pair of keys - and tokens for the super user roles. The generated Secret - name is 'token-'. - type: boolean - superUserRoles: - description: Super user roles. - items: - type: string - type: array - proxyRoles: - description: Proxy roles. - items: - type: string - type: array - publicKeyFile: - description: Public key file name stored in the Secret. - Default is 'my-public.key' - type: string - type: object - enabled: - description: Enable authentication in the cluster. Default - is 'false'. - type: boolean - type: object - persistence: - description: | - If persistence is enabled, components that has state will be deployed with PersistentVolumeClaims, otherwise, for test purposes, they will be deployed with emptyDir - type: boolean - racks: - additionalProperties: - properties: - host: - description: Enable rack rules based on the hostname of - the node. + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + terminationGracePeriodSeconds: + type: "integer" + timeoutSeconds: + type: "integer" + type: "object" + resizePolicy: + items: + properties: + resourceName: + type: "string" + restartPolicy: + type: "string" + type: "object" + type: "array" + resources: properties: - enabled: - description: Enable the rack affinity rules. - type: boolean - requireRackAntiAffinity: - description: "Indicates if the podAntiAffinity rules\ - \ will be enforced. Default is true. If required,\ - \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - requireRackAffinity: - description: "Indicates if the podAffinity rules will\ - \ be enforced. Default is false. If required, the\ - \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - type: object - zone: - description: Enable rack rules based on the failure domain - (availability zone) of the node. + claims: + items: + properties: + name: + type: "string" + request: + type: "string" + type: "object" + type: "array" + limits: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + requests: + additionalProperties: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + type: "object" + type: "object" + restartPolicy: + type: "string" + securityContext: properties: - enableHostAntiAffinity: - description: "Enable the host anti affinity. If set,\ - \ all the pods of the same rack will deployed on different\ - \ nodes of the same zone.Default is true." - type: boolean - requireRackHostAntiAffinity: - description: "Indicates if the podAntiAffinity rules\ - \ will be enforced for the host. Default is true.\ - \ If required, the affinity rule will be enforced\ - \ using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - enabled: - description: Enable the rack affinity rules. - type: boolean - requireRackAntiAffinity: - description: "Indicates if the podAntiAffinity rules\ - \ will be enforced. Default is true. If required,\ - \ the affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - requireRackAffinity: - description: "Indicates if the podAffinity rules will\ - \ be enforced. Default is false. If required, the\ - \ affinity rule will be enforced using 'requiredDuringSchedulingIgnoredDuringExecution'." - type: boolean - type: object - type: object - description: Racks configuration. - type: object - resourceSets: - additionalProperties: + allowPrivilegeEscalation: + type: "boolean" + appArmorProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + capabilities: + 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: + properties: + level: + type: "string" + role: + type: "string" + type: + type: "string" + user: + type: "string" + type: "object" + seccompProfile: + properties: + localhostProfile: + type: "string" + type: + type: "string" + type: "object" + windowsOptions: + properties: + gmsaCredentialSpec: + type: "string" + gmsaCredentialSpecName: + type: "string" + hostProcess: + type: "boolean" + runAsUserName: + type: "string" + type: "object" + type: "object" + startupProbe: + properties: + exec: + properties: + command: + items: + type: "string" + type: "array" + type: "object" + failureThreshold: + type: "integer" + grpc: + properties: + port: + type: "integer" + service: + type: "string" + type: "object" + httpGet: + properties: + host: + type: "string" + httpHeaders: + items: + properties: + name: + type: "string" + value: + type: "string" + type: "object" + type: "array" + path: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + scheme: + type: "string" + type: "object" + initialDelaySeconds: + type: "integer" + periodSeconds: + type: "integer" + successThreshold: + type: "integer" + tcpSocket: + properties: + host: + type: "string" + port: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + 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: + properties: + devicePath: + type: "string" + name: + type: "string" + type: "object" + type: "array" + volumeMounts: + items: + 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" + tolerations: + description: "Pod tolerations." + items: properties: - rack: - description: "Place this resource set to a specific rack,\ - \ defined at .global.racks." - type: string - type: object - description: Resource sets. - type: object - nodeSelectors: - additionalProperties: - type: string - description: "Global node selector. If set, this will apply to\ - \ all the components." - type: object - antiAffinity: - description: Pod anti affinity configuration. + effect: + type: "string" + key: + type: "string" + operator: + type: "string" + tolerationSeconds: + type: "integer" + value: + type: "string" + type: "object" + type: "array" + updateStrategy: + description: "Update strategy for the StatefulSet. Default value\ + \ is rolling update." properties: - host: - description: Indicates the reclaimPolicy property for the - StorageClass. - properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - zone: - description: Indicates the provisioner property for the StorageClass. + rollingUpdate: properties: - required: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - enabled: - description: Indicates the reclaimPolicy property for - the StorageClass. - type: boolean - type: object - type: object - zookeeperPlainSslStorePassword: - description: "Use plain password in zookeeper server and client\ - \ configuration. Default is false. Old versions of Apache Zookeeper\ - \ (<3.8.0) does not support getting password from file. In that\ - \ case, set this to true." - type: boolean - imagePullPolicy: - description: Default Pulsar image pull policy to use. Any components - can be configured to use a different image pull policy. Default - value is 'IfNotPresent'. - type: string - required: - - name - type: object - type: object + maxUnavailable: + anyOf: + - type: "integer" + - type: "string" + x-kubernetes-int-or-string: true + partition: + type: "integer" + type: "object" + type: + type: "string" + type: "object" + type: "object" + type: "object" status: properties: - lastApplied: - description: Last spec applied. - type: string conditions: description: |- Conditions: 1. Condition Ready: possible status are True or False. If False, the reason contains the error message. items: properties: - status: - type: string - reason: - type: string lastTransitionTime: - type: string + type: "string" + message: + type: "string" observedGeneration: - type: integer + type: "integer" + reason: + type: "string" + status: + type: "string" type: - type: string - message: - type: string - type: object - type: array - type: object - type: object + type: "string" + type: "object" + type: "array" + lastApplied: + description: "Last spec applied." + type: "string" + type: "object" + type: "object" served: true storage: true subresources: diff --git a/helm/kaap/templates/configmap.yaml b/helm/kaap/templates/configmap.yaml index 53c41c72..4b5c29db 100644 --- a/helm/kaap/templates/configmap.yaml +++ b/helm/kaap/templates/configmap.yaml @@ -23,6 +23,9 @@ metadata: labels: {{- include "kaap.labels" . | nindent 4 }} data: +{{- if (not .Values.operator.watchAllNamespaces) }} + QUARKUS_OPERATOR_SDK_NAMESPACES: "JOSDK_WATCH_CURRENT" +{{- end}} QUARKUS_LOG_CATEGORY__COM_DATASTAX_OSS_KAAP__LEVEL: {{ .Values.operator.config.logLevel }} {{- range $key, $val := $.Values.operator.config.quarkus }} {{ printf "QUARKUS_%s" ($key | replace "-" "." | replace "\"" "." | snakecase | upper | replace "." "_" ) }}: {{ $val | toString | replace "\"" "" | trim | quote }} diff --git a/helm/kaap/templates/operator.yaml b/helm/kaap/templates/operator.yaml index 8b2ba748..c6bf391d 100644 --- a/helm/kaap/templates/operator.yaml +++ b/helm/kaap/templates/operator.yaml @@ -48,6 +48,15 @@ spec: {{- include "kaap.selectorLabels" . | nindent 8 }} namespace: {{ .Release.Namespace }} spec: + {{- $nodeSelector := coalesce .Values.operator.nodeSelector .Values.nodeSelector -}} + {{- if $nodeSelector }} + nodeSelector: +{{ toYaml $nodeSelector | indent 8 }} + {{- end }} + {{- if .Values.operator.tolerations }} + tolerations: +{{ toYaml .Values.operator.tolerations | indent 8 }} + {{- end }} containers: - env: - name: KUBERNETES_NAMESPACE diff --git a/helm/kaap/templates/pulsar-cluster.yaml b/helm/kaap/templates/pulsar-cluster.yaml index 480a8363..716c0bb7 100644 --- a/helm/kaap/templates/pulsar-cluster.yaml +++ b/helm/kaap/templates/pulsar-cluster.yaml @@ -21,6 +21,9 @@ apiVersion: kaap.oss.datastax.com/v1beta1 kind: PulsarCluster metadata: name: {{ .Values.cluster.spec.global.name | quote }} +{{- if .Values.cluster.namespace }} + namespace: {{ .Values.cluster.namespace | quote }} +{{- end }} spec: {{- toYaml .Values.cluster.spec | nindent 2 }} {{- end }} \ No newline at end of file diff --git a/helm/kaap/templates/rbac/cluster-scoped.yaml b/helm/kaap/templates/rbac/cluster-scoped.yaml new file mode 100644 index 00000000..f9ef9f3b --- /dev/null +++ b/helm/kaap/templates/rbac/cluster-scoped.yaml @@ -0,0 +1,158 @@ +# +# +# Copyright DataStax, Inc. +# +# 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. +# + +{{- if .Values.operator.watchAllNamespaces }} +{{- if .Values.rbac.create }} +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: {{ include "kaap.roleName" . }} +rules: + - apiGroups: + - "storage.k8s.io" + resources: + - storageclasses + verbs: + - "*" + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - "*" + - apiGroups: + - "" + resources: + - namespaces + verbs: + - get + - watch + - apiGroups: + - "" + resources: + - pods + - configmaps + - services + - serviceaccounts + - secrets + - persistentvolumes + - persistentvolumeclaims + verbs: + - '*' + - apiGroups: + - "" + resources: + - pods/exec + verbs: + - 'get' # java client uses GET before executing to a pod + - 'create' + - apiGroups: + - "batch" + resources: + - jobs + verbs: + - '*' + - apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - "*" + - apiGroups: + - "apiextensions.k8s.io" + resources: + - customresourcedefinitions + verbs: + - '*' + - apiGroups: + - "rbac.authorization.k8s.io" + resources: + - roles + - rolebindings + verbs: + - '*' + - apiGroups: + - "metrics.k8s.io" + resources: + - pods + verbs: + - "*" + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - "*" + - apiGroups: + - kaap.oss.datastax.com + resources: + - pulsarclusters + - pulsarclusters/status + - pulsarclusters/finalizers + - zookeepers + - zookeepers/status + - zookeepers/finalizers + - bookkeepers + - bookkeepers/status + - bookkeepers/finalizers + - brokers + - brokers/status + - brokers/finalizers + - proxies + - proxies/status + - proxies/finalizers + - autorecoveries + - autorecoveries/status + - autorecoveries/finalizers + - bastions + - bastions/status + - bastions/finalizers + - functionsworkers + - functionsworkers/status + - functionsworkers/finalizers + verbs: + - "*" + - apiGroups: + - "cert-manager.io" + resources: + - issuers + - certificates + verbs: + - create + - get + - update + - list + - patch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ include "kaap.roleBindingName" . }} +roleRef: + kind: ClusterRole + apiGroup: rbac.authorization.k8s.io + name: {{ include "kaap.roleName" . }} +subjects: + - kind: ServiceAccount + name: {{ include "kaap.serviceAccountName" . }} + namespace: {{ .Release.Namespace }} +{{- end }} +{{- end }} diff --git a/helm/kaap/templates/rbac.yaml b/helm/kaap/templates/rbac/namespace-scoped.yaml similarity index 98% rename from helm/kaap/templates/rbac.yaml rename to helm/kaap/templates/rbac/namespace-scoped.yaml index 66be411c..033bb26c 100644 --- a/helm/kaap/templates/rbac.yaml +++ b/helm/kaap/templates/rbac/namespace-scoped.yaml @@ -15,6 +15,7 @@ # limitations under the License. # +{{- if (not .Values.operator.watchAllNamespaces) }} {{- if .Values.rbac.create }} --- apiVersion: rbac.authorization.k8s.io/v1 @@ -159,6 +160,7 @@ rules: - get - update - list + - patch --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding @@ -174,3 +176,4 @@ subjects: name: {{ include "kaap.serviceAccountName" . }} namespace: {{ .Release.Namespace }} {{- end }} +{{- end }} diff --git a/helm/kaap/values.yaml b/helm/kaap/values.yaml index 9b266d5f..3b8467df 100644 --- a/helm/kaap/values.yaml +++ b/helm/kaap/values.yaml @@ -37,9 +37,12 @@ fullnameOverride: "" operator: enabled: true - image: datastax/kaap:0.3.0 + watchAllNamespaces: false + image: datastax/kaap:0.4.4 imagePullPolicy: IfNotPresent replicas: 1 + nodeSelector: {} + tolerations: [] livenessProbe: failureThreshold: 3 periodSeconds: 30 @@ -66,6 +69,6 @@ cluster: spec: global: name: pulsar - image: datastax/lunastreaming-all:2.10_3.1 + image: datastax/lunastreaming-all:4.0_3.6 storage: - existingStorageClassName: default \ No newline at end of file + existingStorageClassName: default diff --git a/migration-tool/pom.xml b/migration-tool/pom.xml index ba2674f4..85f835df 100644 --- a/migration-tool/pom.xml +++ b/migration-tool/pom.xml @@ -20,7 +20,7 @@ kaap com.datastax.oss - 0.3.1-SNAPSHOT + 0.4.5-SNAPSHOT 4.0.0 diff --git a/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/diff/DiffChecker.java b/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/diff/DiffChecker.java index 1fe55422..0f0d4f31 100644 --- a/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/diff/DiffChecker.java +++ b/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/diff/DiffChecker.java @@ -383,7 +383,7 @@ private static void adjustTemplateSpec(Map templateSpec) { removeIfMatch(templateSpec, "serviceAccount", templateSpec.get("serviceAccountName")); sortAndReplaceList(templateSpec, "volumes", v -> { final Map secret = getPropAsMap(v, "secret"); - removeIfMatch(secret, "defaultMode", 420); + removeIfMatch(secret, "defaultMode", 416); return v; }); sortAndReplaceList(templateSpec, "containers", container -> { diff --git a/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/AutorecoverySpecGenerator.java b/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/AutorecoverySpecGenerator.java index 14b0f5dc..50522752 100644 --- a/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/AutorecoverySpecGenerator.java +++ b/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/AutorecoverySpecGenerator.java @@ -96,6 +96,7 @@ public void internalGenerateSpec() { .imagePullPolicy(container.getImagePullPolicy()) .nodeSelectors(spec.getNodeSelector()) .replicas(deploymentSpec.getReplicas()) + .minReadySeconds(deploymentSpec.getMinReadySeconds()) .nodeAffinity(nodeAffinity) .labels(deployment.getMetadata().getLabels()) .podLabels(deploymentSpec.getTemplate().getMetadata().getLabels()) diff --git a/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/BaseSpecGenerator.java b/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/BaseSpecGenerator.java index 91982ba5..2582c873 100644 --- a/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/BaseSpecGenerator.java +++ b/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/BaseSpecGenerator.java @@ -286,8 +286,15 @@ protected static PodDisruptionBudgetConfig createPodDisruptionBudgetConfig( if (podDisruptionBudget != null) { podDisruptionBudgetConfig = PodDisruptionBudgetConfig.builder() .enabled(true) - .maxUnavailable(podDisruptionBudget.getSpec().getMaxUnavailable().getIntVal()) .build(); + if (podDisruptionBudget.getSpec().getMaxUnavailable() != null) { + podDisruptionBudgetConfig.setMaxUnavailable(podDisruptionBudget.getSpec() + .getMaxUnavailable().getIntVal()); + } + if (podDisruptionBudget.getSpec().getMinAvailable() != null) { + podDisruptionBudgetConfig.setMinAvailable(podDisruptionBudget.getSpec() + .getMinAvailable().getIntVal()); + } } return podDisruptionBudgetConfig; } diff --git a/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/BastionSpecGenerator.java b/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/BastionSpecGenerator.java index 77cce54d..c9ae3e08 100644 --- a/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/BastionSpecGenerator.java +++ b/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/BastionSpecGenerator.java @@ -98,6 +98,7 @@ public void internalGenerateSpec() { .imagePullPolicy(container.getImagePullPolicy()) .nodeSelectors(spec.getNodeSelector()) .replicas(deploymentSpec.getReplicas()) + .minReadySeconds(deploymentSpec.getMinReadySeconds()) .nodeAffinity(nodeAffinity) .labels(deployment.getMetadata().getLabels()) .podLabels(deploymentSpec.getTemplate().getMetadata().getLabels()) diff --git a/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/BookKeeperSetSpecGenerator.java b/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/BookKeeperSetSpecGenerator.java index 8b191c79..3ebb41a8 100644 --- a/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/BookKeeperSetSpecGenerator.java +++ b/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/BookKeeperSetSpecGenerator.java @@ -117,6 +117,7 @@ public void internalGenerateSpec() { .imagePullPolicy(container.getImagePullPolicy()) .nodeSelectors(spec.getNodeSelector()) .replicas(statefulSetSpec.getReplicas()) + .minReadySeconds(statefulSetSpec.getMinReadySeconds()) .probes(createProbeConfig(container)) .nodeAffinity(nodeAffinity) .pdb(podDisruptionBudgetConfig) diff --git a/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/BrokerSetSpecGenerator.java b/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/BrokerSetSpecGenerator.java index 9b54da5b..4b2a1224 100644 --- a/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/BrokerSetSpecGenerator.java +++ b/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/BrokerSetSpecGenerator.java @@ -120,6 +120,7 @@ public void internalGenerateSpec() { .imagePullPolicy(container.getImagePullPolicy()) .nodeSelectors(spec.getNodeSelector()) .replicas(statefulSetSpec.getReplicas()) + .minReadySeconds(statefulSetSpec.getMinReadySeconds()) .probes(createBrokerProbeConfig(container)) .nodeAffinity(nodeAffinity) .pdb(podDisruptionBudgetConfig) diff --git a/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/FunctionsWorkerSpecGenerator.java b/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/FunctionsWorkerSpecGenerator.java index 137276f9..6a692027 100644 --- a/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/FunctionsWorkerSpecGenerator.java +++ b/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/FunctionsWorkerSpecGenerator.java @@ -121,6 +121,7 @@ public void internalGenerateSpec() { .imagePullPolicy(mainContainer.getImagePullPolicy()) .nodeSelectors(spec.getNodeSelector()) .replicas(statefulSetSpec.getReplicas()) + .minReadySeconds(statefulSetSpec.getMinReadySeconds()) .nodeAffinity(nodeAffinity) .probes(createProbeConfig(mainContainer)) .labels(statefulSet.getMetadata().getLabels()) diff --git a/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/ProxySetSpecGenerator.java b/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/ProxySetSpecGenerator.java index f04803a3..2b14743c 100644 --- a/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/ProxySetSpecGenerator.java +++ b/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/ProxySetSpecGenerator.java @@ -122,6 +122,7 @@ public void internalGenerateSpec() { .imagePullPolicy(mainContainer.getImagePullPolicy()) .nodeSelectors(spec.getNodeSelector()) .replicas(deploymentSpec.getReplicas()) + .minReadySeconds(deploymentSpec.getMinReadySeconds()) .nodeAffinity(nodeAffinity) .probes(createProbeConfig(mainContainer)) .labels(deployment.getMetadata().getLabels()) diff --git a/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/ZooKeeperSpecGenerator.java b/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/ZooKeeperSpecGenerator.java index 3a093c1c..16595f78 100644 --- a/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/ZooKeeperSpecGenerator.java +++ b/migration-tool/src/main/java/com/datastax/oss/kaap/migrationtool/specs/ZooKeeperSpecGenerator.java @@ -114,6 +114,7 @@ public void internalGenerateSpec() { .imagePullPolicy(container.getImagePullPolicy()) .nodeSelectors(spec.getNodeSelector()) .replicas(statefulSetSpec.getReplicas()) + .minReadySeconds(statefulSetSpec.getMinReadySeconds()) .probes(createProbeConfig(container)) .nodeAffinity(nodeAffinity) .pdb(podDisruptionBudgetConfig) diff --git a/migration-tool/src/test/java/com/datastax/oss/kaap/migrationtool/PulsarClusterResourceGeneratorTest.java b/migration-tool/src/test/java/com/datastax/oss/kaap/migrationtool/PulsarClusterResourceGeneratorTest.java index a934e0a4..89bdc5d8 100644 --- a/migration-tool/src/test/java/com/datastax/oss/kaap/migrationtool/PulsarClusterResourceGeneratorTest.java +++ b/migration-tool/src/test/java/com/datastax/oss/kaap/migrationtool/PulsarClusterResourceGeneratorTest.java @@ -58,7 +58,7 @@ public void test() throws Exception { final DiffCollectorOutputWriter diff = generate(client, tmpDir); final File outputDir = new File(tmpDir.toFile(), CONTEXT); assertValue(outputDir); - assertDiff(diff, 159); + assertDiff(diff, 157); } @Test @@ -74,7 +74,7 @@ public void testNoFunctions() throws Exception { final DiffCollectorOutputWriter diff = generate(client, tmpDir); final File outputDir = new File(tmpDir.toFile(), CONTEXT); final PulsarCluster pulsar = getPulsarClusterFromOutputdir(outputDir); - assertDiff(diff, 120); + assertDiff(diff, 118); Assert.assertEquals(pulsar.getSpec().getFunctionsWorker().getReplicas(), 0); } @@ -91,7 +91,7 @@ public void testNoBastion() throws Exception { final DiffCollectorOutputWriter diff = generate(client, tmpDir); final File outputDir = new File(tmpDir.toFile(), CONTEXT); final PulsarCluster pulsar = getPulsarClusterFromOutputdir(outputDir); - assertDiff(diff, 152); + assertDiff(diff, 150); Assert.assertEquals(pulsar.getSpec().getBastion().getReplicas(), 0); } @@ -178,7 +178,6 @@ private void assertValue(File tmpDir) { zookeeper: image: pulsar:latest imagePullPolicy: IfNotPresent - nodeSelectors: {} replicas: 3 pdb: enabled: true @@ -190,6 +189,12 @@ private void assertValue(File tmpDir) { required: true zone: enabled: false + imagePullSecrets: [] + env: [] + sidecars: [] + initContainers: [] + securityContext: + fsGroup: 0 annotations: {} podAnnotations: prometheus.io/port: 8000 @@ -212,10 +217,7 @@ private void assertValue(File tmpDir) { cluster: "" component: zookeeper release: pulsar-cluster - imagePullSecrets: [] - env: [] - sidecars: [] - initContainers: [] + nodeSelectors: {} config: PULSAR_EXTRA_OPTS: -Dpulsar.log.root.level=info PULSAR_GC: -XX:+UseG1GC -XX:MaxGCPauseMillis=10 @@ -260,7 +262,6 @@ private void assertValue(File tmpDir) { bookkeeper: image: pulsar:latest imagePullPolicy: IfNotPresent - nodeSelectors: {} replicas: 3 pdb: enabled: true @@ -272,28 +273,6 @@ private void assertValue(File tmpDir) { required: false zone: enabled: false - annotations: {} - podAnnotations: - prometheus.io/port: 8000 - prometheus.io/scrape: "true" - labels: - app: pulsar - app.kubernetes.io/managed-by: Helm - chart: pulsar-1.0.32 - cluster: pulsar-cluster - component: bookkeeper - heritage: Helm - release: pulsar-cluster - podLabels: - app: pulsar - cluster: pulsar-cluster - component: bookkeeper - release: pulsar-cluster - matchLabels: - app: pulsar - cluster: "" - component: bookkeeper - release: pulsar-cluster imagePullSecrets: [] env: [] sidecars: [] @@ -327,6 +306,31 @@ private void assertValue(File tmpDir) { resources: {} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File + securityContext: + fsGroup: 0 + annotations: {} + podAnnotations: + prometheus.io/port: 8000 + prometheus.io/scrape: "true" + labels: + app: pulsar + app.kubernetes.io/managed-by: Helm + chart: pulsar-1.0.32 + cluster: pulsar-cluster + component: bookkeeper + heritage: Helm + release: pulsar-cluster + podLabels: + app: pulsar + cluster: pulsar-cluster + component: bookkeeper + release: pulsar-cluster + matchLabels: + app: pulsar + cluster: "" + component: bookkeeper + release: pulsar-cluster + nodeSelectors: {} config: BOOKIE_GC: -XX:+UseG1GC -XX:MaxGCPauseMillis=10 BOOKIE_MEM: -Xms4g -Xmx4g -XX:MaxDirectMemorySize=4g -Dio.netty.leakDetectionLevel=disabled -Dio.netty.recycler.linkCapacity=1024 -XX:+ParallelRefProcEnabled -XX:+UnlockExperimentalVMOptions -XX:+AggressiveOpts -XX:+DoEscapeAnalysis -XX:ParallelGCThreads=32 -XX:ConcGCThreads=32 -XX:G1NewSizePercent=50 -XX:+DisableExplicitGC -XX:-ResizePLAB -XX:+ExitOnOutOfMemoryError -XX:+PerfDisableSharedMem @@ -416,7 +420,6 @@ private void assertValue(File tmpDir) { broker: image: pulsar:latest imagePullPolicy: IfNotPresent - nodeSelectors: {} replicas: 3 pdb: enabled: true @@ -428,29 +431,6 @@ private void assertValue(File tmpDir) { required: false zone: enabled: false - annotations: {} - podAnnotations: - prometheus.io/path: /metrics/ - prometheus.io/port: 8080 - prometheus.io/scrape: "true" - labels: - app: pulsar - app.kubernetes.io/managed-by: Helm - chart: pulsar-1.0.32 - cluster: pulsar-cluster - component: broker - heritage: Helm - release: pulsar-cluster - podLabels: - app: pulsar - cluster: pulsar-cluster - component: broker - release: pulsar-cluster - matchLabels: - app: pulsar - cluster: "" - component: broker - release: pulsar-cluster imagePullSecrets: [] env: - name: PULSAR_PREFIX_kafkaAdvertisedListeners @@ -483,6 +463,30 @@ private void assertValue(File tmpDir) { resources: {} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File + annotations: {} + podAnnotations: + prometheus.io/path: /metrics/ + prometheus.io/port: 8080 + prometheus.io/scrape: "true" + labels: + app: pulsar + app.kubernetes.io/managed-by: Helm + chart: pulsar-1.0.32 + cluster: pulsar-cluster + component: broker + heritage: Helm + release: pulsar-cluster + podLabels: + app: pulsar + cluster: pulsar-cluster + component: broker + release: pulsar-cluster + matchLabels: + app: pulsar + cluster: "" + component: broker + release: pulsar-cluster + nodeSelectors: {} config: PF_clientAuthenticationParameters: file:///pulsar/token-superuser/superuser.jwt PF_clientAuthenticationPlugin: org.apache.pulsar.client.impl.auth.AuthenticationToken @@ -549,7 +553,7 @@ private void assertValue(File tmpDir) { superUserRoles: "superuser-backup,create-tenant,admin" tlsCertificateFilePath: /pulsar/certs/tls.crt tlsEnabled: "true" - tlsKeyFilePath: /pulsar/tls-pk8.key + tlsKeyFilePath: /pulsar/certs/tls.key tlsProtocols: "TLSv1.3,TLSv1.2" tlsTrustCertsFilePath: /etc/ssl/certs/ca-certificates.crt tokenPublicKey: file:///pulsar/token-public-key/pulsar-public.key @@ -618,7 +622,6 @@ private void assertValue(File tmpDir) { proxy: image: pulsar:latest imagePullPolicy: IfNotPresent - nodeSelectors: {} replicas: 1 pdb: enabled: true @@ -630,29 +633,6 @@ private void assertValue(File tmpDir) { required: false zone: enabled: false - annotations: {} - podAnnotations: - prometheus.io/path: /metrics/ - prometheus.io/port: 8080 - prometheus.io/scrape: "true" - labels: - app: pulsar - app.kubernetes.io/managed-by: Helm - chart: pulsar-1.0.32 - cluster: pulsar-cluster - component: proxy - heritage: Helm - release: pulsar-cluster - podLabels: - app: pulsar - cluster: pulsar-cluster - component: proxy - release: pulsar-cluster - matchLabels: - app: pulsar - cluster: "" - component: proxy - release: pulsar-cluster imagePullSecrets: [] env: - name: PULSAR_PREFIX_brokerProxyAllowedHostNames @@ -752,6 +732,30 @@ private void assertValue(File tmpDir) { resources: {} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File + annotations: {} + podAnnotations: + prometheus.io/path: /metrics/ + prometheus.io/port: 8080 + prometheus.io/scrape: "true" + labels: + app: pulsar + app.kubernetes.io/managed-by: Helm + chart: pulsar-1.0.32 + cluster: pulsar-cluster + component: proxy + heritage: Helm + release: pulsar-cluster + podLabels: + app: pulsar + cluster: pulsar-cluster + component: proxy + release: pulsar-cluster + matchLabels: + app: pulsar + cluster: "" + component: proxy + release: pulsar-cluster + nodeSelectors: {} config: PULSAR_EXTRA_CLASSPATH: /jars/pulsar-libs/* PULSAR_EXTRA_OPTS: -Dpulsar.log.root.level=info @@ -779,7 +783,7 @@ private void assertValue(File tmpDir) { tlsCertificateFilePath: /pulsar/certs/tls.crt tlsEnabledInProxy: "true" tlsEnabledWithBroker: "false" - tlsKeyFilePath: /pulsar/tls-pk8.key + tlsKeyFilePath: /pulsar/certs/tls.key tlsProtocols: "TLSv1.3,TLSv1.2" tlsTrustCertsFilePath: /etc/ssl/certs/ca-certificates.crt tokenPublicKey: file:///pulsar/token-public-key/pulsar-public.key @@ -867,7 +871,7 @@ private void assertValue(File tmpDir) { superUserRoles: "superuser-backup,create-tenant,admin" tlsCertificateFilePath: /pulsar/certs/tls.crt tlsEnabled: "true" - tlsKeyFilePath: /pulsar/tls-pk8.key + tlsKeyFilePath: /pulsar/certs/tls.key tlsTrustCertsFilePath: /etc/ssl/certs/ca-certificates.crt tokenPublicKey: file:///pulsar/token-public-key/pulsar-public.key webServicePort: 8000 @@ -989,7 +993,6 @@ private void assertValue(File tmpDir) { functionsWorker: image: pulsar:latest imagePullPolicy: IfNotPresent - nodeSelectors: {} replicas: 1 pdb: enabled: true @@ -1001,6 +1004,12 @@ private void assertValue(File tmpDir) { required: true zone: enabled: false + imagePullSecrets: [] + env: [] + sidecars: [] + initContainers: [] + securityContext: + fsGroup: 0 annotations: {} podAnnotations: prometheus.io/port: 6750 @@ -1023,10 +1032,7 @@ private void assertValue(File tmpDir) { cluster: "" component: function release: pulsar-cluster - imagePullSecrets: [] - env: [] - sidecars: [] - initContainers: [] + nodeSelectors: {} config: PF_authenticateMetricsEndpoint: "false" PULSAR_EXTRA_OPTS: -Dpulsar.log.root.level=info @@ -1064,6 +1070,7 @@ private void assertValue(File tmpDir) { instanceLivenessCheckFreqMs: 30000 kubernetesContainerFactory: jobNamespace: pulsar + k8Uri: "" percentMemoryPadding: 50 pulsarAdminUrl: http://pulsar-cluster-function.pulsar:6750/ pulsarDockerImageName: pulsar:latest @@ -1085,6 +1092,7 @@ private void assertValue(File tmpDir) { prometheus.io/path: /metrics prometheus.io/port: 9094 prometheus.io/scrape: "true" + extraLabels: "" jobNamespace: pulsar nodeSelectorLabels: astra-node: functionworker @@ -1099,7 +1107,7 @@ private void assertValue(File tmpDir) { - create-tenant - admin tlsCertificateFilePath: /pulsar/certs/tls.crt - tlsKeyFilePath: /pulsar/tls-pk8.key + tlsKeyFilePath: /pulsar/certs/tls.key tlsTrustCertsFilePath: /etc/ssl/certs/ca-certificates.crt tokenPublicKey: file:///pulsar/token-public-key/pulsar-public.key topicCompactionFrequencySec: 1800 diff --git a/migration-tool/src/test/resources/pulsar-helm-chart/base-release/configmap-pulsar-cluster-broker.yaml b/migration-tool/src/test/resources/pulsar-helm-chart/base-release/configmap-pulsar-cluster-broker.yaml index 57a7a273..b8630aa4 100644 --- a/migration-tool/src/test/resources/pulsar-helm-chart/base-release/configmap-pulsar-cluster-broker.yaml +++ b/migration-tool/src/test/resources/pulsar-helm-chart/base-release/configmap-pulsar-cluster-broker.yaml @@ -81,7 +81,7 @@ data: superUserRoles: superuser-backup,create-tenant,admin tlsCertificateFilePath: /pulsar/certs/tls.crt tlsEnabled: "true" - tlsKeyFilePath: /pulsar/tls-pk8.key + tlsKeyFilePath: /pulsar/certs/tls.key tlsProtocols: TLSv1.3,TLSv1.2 tlsTrustCertsFilePath: /etc/ssl/certs/ca-certificates.crt tokenPublicKey: file:///pulsar/token-public-key/pulsar-public.key diff --git a/migration-tool/src/test/resources/pulsar-helm-chart/base-release/configmap-pulsar-cluster-function.yaml b/migration-tool/src/test/resources/pulsar-helm-chart/base-release/configmap-pulsar-cluster-function.yaml index 6eaa71ad..8d04d42a 100644 --- a/migration-tool/src/test/resources/pulsar-helm-chart/base-release/configmap-pulsar-cluster-function.yaml +++ b/migration-tool/src/test/resources/pulsar-helm-chart/base-release/configmap-pulsar-cluster-function.yaml @@ -21,7 +21,7 @@ data: \"false\"\npulsarFunctionsCluster: \"pulsar-cluster\"\nworkerId: \"pulsar-cluster-function\"\nworkerHostname: \"pulsar-cluster-function\"\nworkerPort: \"6750\"\nworkerPortTls: \"6751\"\ntlsCertificateFilePath: \"/pulsar/certs/tls.crt\"\ntlsTrustCertsFilePath: \"/etc/ssl/certs/ca-certificates.crt\"\nbrokerClientTrustCertsFilePath: - \"/etc/ssl/certs/ca-certificates.crt\"\ntlsKeyFilePath: \"/pulsar/tls-pk8.key\"\npulsarServiceUrl: + \"/etc/ssl/certs/ca-certificates.crt\"\ntlsKeyFilePath: \"/pulsar/certs/tls.key\"\npulsarServiceUrl: \"pulsar://pulsar-cluster-broker:6650\"\npulsarWebServiceUrl: \"http://pulsar-cluster-broker:8080\"\nnumFunctionPackageReplicas: \"2\"\ndownloadDirectory: \"/tmp/pulsar_functions\"\npulsarFunctionsNamespace: \"public/functions\"\nfunctionMetadataTopicName: \"metadata\"\ninstallUserCodeDependencies: diff --git a/migration-tool/src/test/resources/pulsar-helm-chart/base-release/configmap-pulsar-cluster-proxy-ws.yaml b/migration-tool/src/test/resources/pulsar-helm-chart/base-release/configmap-pulsar-cluster-proxy-ws.yaml index 66f3ebf5..669fd0f1 100644 --- a/migration-tool/src/test/resources/pulsar-helm-chart/base-release/configmap-pulsar-cluster-proxy-ws.yaml +++ b/migration-tool/src/test/resources/pulsar-helm-chart/base-release/configmap-pulsar-cluster-proxy-ws.yaml @@ -39,7 +39,7 @@ data: superUserRoles: superuser-backup,create-tenant,admin tlsCertificateFilePath: /pulsar/certs/tls.crt tlsEnabled: "true" - tlsKeyFilePath: /pulsar/tls-pk8.key + tlsKeyFilePath: /pulsar/certs/tls.key tlsTrustCertsFilePath: /etc/ssl/certs/ca-certificates.crt tokenPublicKey: file:///pulsar/token-public-key/pulsar-public.key webServicePort: "8000" diff --git a/migration-tool/src/test/resources/pulsar-helm-chart/base-release/configmap-pulsar-cluster-proxy.yaml b/migration-tool/src/test/resources/pulsar-helm-chart/base-release/configmap-pulsar-cluster-proxy.yaml index 5a84a2cd..a92ca03c 100644 --- a/migration-tool/src/test/resources/pulsar-helm-chart/base-release/configmap-pulsar-cluster-proxy.yaml +++ b/migration-tool/src/test/resources/pulsar-helm-chart/base-release/configmap-pulsar-cluster-proxy.yaml @@ -42,7 +42,7 @@ data: tlsCertificateFilePath: /pulsar/certs/tls.crt tlsEnabledInProxy: "true" tlsEnabledWithBroker: "false" - tlsKeyFilePath: /pulsar/tls-pk8.key + tlsKeyFilePath: /pulsar/certs/tls.key tlsProtocols: TLSv1.3,TLSv1.2 tlsTrustCertsFilePath: /etc/ssl/certs/ca-certificates.crt tokenPublicKey: file:///pulsar/token-public-key/pulsar-public.key diff --git a/migration-tool/src/test/resources/pulsar-helm-chart/base-release/deployment-pulsar-cluster-bastion.yaml b/migration-tool/src/test/resources/pulsar-helm-chart/base-release/deployment-pulsar-cluster-bastion.yaml index 70c02bac..a2642acb 100644 --- a/migration-tool/src/test/resources/pulsar-helm-chart/base-release/deployment-pulsar-cluster-bastion.yaml +++ b/migration-tool/src/test/resources/pulsar-helm-chart/base-release/deployment-pulsar-cluster-bastion.yaml @@ -108,23 +108,23 @@ spec: volumes: - name: token-private-key secret: - defaultMode: 420 + defaultMode: 416 secretName: token-private-key - name: token-public-key secret: - defaultMode: 420 + defaultMode: 416 secretName: token-public-key - name: token-admin secret: - defaultMode: 420 + defaultMode: 416 secretName: token-admin - name: token-superuser secret: - defaultMode: 420 + defaultMode: 416 secretName: token-superuser - name: certs secret: - defaultMode: 420 + defaultMode: 416 secretName: pulsar-tls status: availableReplicas: 1 diff --git a/migration-tool/src/test/resources/pulsar-helm-chart/base-release/deployment-pulsar-cluster-proxy.yaml b/migration-tool/src/test/resources/pulsar-helm-chart/base-release/deployment-pulsar-cluster-proxy.yaml index e34132ff..1c478fca 100644 --- a/migration-tool/src/test/resources/pulsar-helm-chart/base-release/deployment-pulsar-cluster-proxy.yaml +++ b/migration-tool/src/test/resources/pulsar-helm-chart/base-release/deployment-pulsar-cluster-proxy.yaml @@ -281,27 +281,27 @@ spec: volumes: - name: certs secret: - defaultMode: 420 + defaultMode: 416 secretName: pulsar-tls - name: token-public-key secret: - defaultMode: 420 + defaultMode: 416 secretName: token-public-key - name: token-private-key secret: - defaultMode: 420 + defaultMode: 416 secretName: token-private-key - name: token-proxy secret: - defaultMode: 420 + defaultMode: 416 secretName: token-proxy - name: token-websocket secret: - defaultMode: 420 + defaultMode: 416 secretName: token-websocket - name: token-superuser secret: - defaultMode: 420 + defaultMode: 416 secretName: token-superuser status: availableReplicas: 1 diff --git a/migration-tool/src/test/resources/pulsar-helm-chart/base-release/statefulset-pulsar-cluster-bookkeeper.yaml b/migration-tool/src/test/resources/pulsar-helm-chart/base-release/statefulset-pulsar-cluster-bookkeeper.yaml index 926835e6..8ec9f5b6 100644 --- a/migration-tool/src/test/resources/pulsar-helm-chart/base-release/statefulset-pulsar-cluster-bookkeeper.yaml +++ b/migration-tool/src/test/resources/pulsar-helm-chart/base-release/statefulset-pulsar-cluster-bookkeeper.yaml @@ -169,7 +169,7 @@ spec: volumes: - name: certs secret: - defaultMode: 420 + defaultMode: 416 secretName: pulsar-tls updateStrategy: type: RollingUpdate diff --git a/migration-tool/src/test/resources/pulsar-helm-chart/base-release/statefulset-pulsar-cluster-broker.yaml b/migration-tool/src/test/resources/pulsar-helm-chart/base-release/statefulset-pulsar-cluster-broker.yaml index 0bec24a3..0473524f 100644 --- a/migration-tool/src/test/resources/pulsar-helm-chart/base-release/statefulset-pulsar-cluster-broker.yaml +++ b/migration-tool/src/test/resources/pulsar-helm-chart/base-release/statefulset-pulsar-cluster-broker.yaml @@ -184,15 +184,15 @@ spec: name: health - name: certs secret: - defaultMode: 420 + defaultMode: 416 secretName: pulsar-tls - name: token-public-key secret: - defaultMode: 420 + defaultMode: 416 secretName: token-public-key - name: token-superuser secret: - defaultMode: 420 + defaultMode: 416 secretName: token-superuser updateStrategy: rollingUpdate: diff --git a/migration-tool/src/test/resources/pulsar-helm-chart/base-release/statefulset-pulsar-cluster-function.yaml b/migration-tool/src/test/resources/pulsar-helm-chart/base-release/statefulset-pulsar-cluster-function.yaml index c360db7b..95e63d6b 100644 --- a/migration-tool/src/test/resources/pulsar-helm-chart/base-release/statefulset-pulsar-cluster-function.yaml +++ b/migration-tool/src/test/resources/pulsar-helm-chart/base-release/statefulset-pulsar-cluster-function.yaml @@ -157,20 +157,20 @@ spec: terminationGracePeriodSeconds: 60 volumes: - configMap: - defaultMode: 420 + defaultMode: 416 name: pulsar-cluster-function name: config-volume - name: token-superuser secret: - defaultMode: 420 + defaultMode: 416 secretName: token-superuser - name: token-public-key secret: - defaultMode: 420 + defaultMode: 416 secretName: token-public-key - name: certs secret: - defaultMode: 420 + defaultMode: 416 secretName: pulsar-tls updateStrategy: type: RollingUpdate diff --git a/operator-common/pom.xml b/operator-common/pom.xml index 2110ff85..4b6007e9 100644 --- a/operator-common/pom.xml +++ b/operator-common/pom.xml @@ -20,7 +20,7 @@ kaap com.datastax.oss - 0.3.1-SNAPSHOT + 0.4.5-SNAPSHOT 4.0.0 @@ -36,6 +36,11 @@ + + io.fabric8 + kubernetes-server-mock + test + org.skyscreamer jsonassert diff --git a/operator-common/src/test/java/com/datastax/oss/kaap/mocks/MockKubernetesClient.java b/operator-common/src/test/java/com/datastax/oss/kaap/mocks/MockKubernetesClient.java index b56f6269..6c413a1e 100644 --- a/operator-common/src/test/java/com/datastax/oss/kaap/mocks/MockKubernetesClient.java +++ b/operator-common/src/test/java/com/datastax/oss/kaap/mocks/MockKubernetesClient.java @@ -195,11 +195,12 @@ private void mockAndInterceptResourceCreation(String namespace) { final NamespaceableResource interaction = Mockito.mock(NamespaceableResource.class); when(interaction.inNamespace(eq(namespace))).thenReturn(interaction); + when(interaction.forceConflicts()).thenReturn(interaction); when(interaction.create()).thenAnswer(ic1 -> { addCreatedResource(ic); return null; }); - when(interaction.createOrReplace()).thenAnswer(ic1 -> { + when(interaction.serverSideApply()).thenAnswer(ic1 -> { addCreatedResource(ic); return null; }); @@ -211,18 +212,19 @@ private void mockAndInterceptResourceCreation(String namespace) { }); - when(client.resources(any(HasMetadata.class.getClass()))).thenAnswer(ic -> { + when(client.resources(any(Class.class))).thenAnswer(ic -> { final MixedOperation interaction = Mockito.mock(MixedOperation.class); final Resource resourceMock = Mockito.mock(Resource.class); when(interaction.resource(any(HasMetadata.class))).thenAnswer(ic2 -> { final Resource mockedResource = resourceMock; + when(mockedResource.forceConflicts()).thenReturn(mockedResource); when(mockedResource.create()).thenAnswer(ic3 -> { addCreatedResource(ic2); return null; }); - when(mockedResource.createOrReplace()).thenAnswer(ic3 -> { + when(mockedResource.serverSideApply()).thenAnswer(ic3 -> { addCreatedResource(ic2); return null; }); @@ -426,9 +428,4 @@ public ResourceInteraction getDeletedResource(Class T readYaml(String yaml, Class toClass) { - return SerializationUtil.readYaml(yaml, toClass); - } } diff --git a/operator/Dockerfile b/operator/Dockerfile new file mode 100644 index 00000000..a365b28b --- /dev/null +++ b/operator/Dockerfile @@ -0,0 +1,18 @@ +FROM registry.access.redhat.com/ubi8/openjdk-21:latest + +ENV LANGUAGE='en_US:en' + +# We make four distinct layers so if there are application changes the library layers can be re-used +COPY --chown=185 target/quarkus-app/lib/ /deployments/lib/ +COPY --chown=185 target/quarkus-app/*.jar /deployments/ +COPY --chown=185 target/quarkus-app/app/ /deployments/app/ +COPY --chown=185 target/quarkus-app/quarkus/ /deployments/quarkus/ + +EXPOSE 8080 +USER 185 + +ENV JAVA_OPTS_APPEND="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager" +ENV JAVA_APP_JAR="/deployments/quarkus-run.jar" + +WORKDIR /deployments +ENTRYPOINT [ "/bin/java", "-jar", "quarkus-run.jar" ] diff --git a/operator/pom.xml b/operator/pom.xml index 3424c350..d563589b 100644 --- a/operator/pom.xml +++ b/operator/pom.xml @@ -20,17 +20,18 @@ kaap com.datastax.oss - 0.3.1-SNAPSHOT + 0.4.5-SNAPSHOT 4.0.0 kaap-operator + 3.27.0 true - - + true + ${project.groupId} @@ -40,13 +41,11 @@ io.fabric8 crd-generator-api - ${kubernetes-client.version} provided io.fabric8 - certmanager-model-v1 - ${kubernetes-client.version} + certmanager-model io.quarkiverse.operatorsdk @@ -74,14 +73,17 @@ - + + io.fabric8 + kubernetes-httpclient-okhttp + org.bouncycastle - bcprov-jdk15on + bcprov-jdk18on org.bouncycastle - bcpkix-jdk15on + bcpkix-jdk18on @@ -139,14 +141,13 @@ awaitility test - io.quarkus quarkus-maven-plugin - 2.15.1.Final + ${quarkus-platform.version} @@ -157,7 +158,7 @@ maven-resources-plugin - 3.0.2 + 3.3.1 @@ -230,8 +231,9 @@ skip-crds false + false - \ No newline at end of file + diff --git a/operator/src/main/java/com/datastax/oss/kaap/KubernetesClientFactory.java b/operator/src/main/java/com/datastax/oss/kaap/KubernetesClientFactory.java new file mode 100644 index 00000000..22162dc7 --- /dev/null +++ b/operator/src/main/java/com/datastax/oss/kaap/KubernetesClientFactory.java @@ -0,0 +1,32 @@ +/* + * Copyright DataStax, Inc. + * + * 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. + */ +package com.datastax.oss.kaap; + +import io.fabric8.kubernetes.client.KubernetesClient; +import io.fabric8.kubernetes.client.KubernetesClientBuilder; +import io.fabric8.kubernetes.client.okhttp.OkHttpClientFactory; +import jakarta.enterprise.inject.Produces; +import jakarta.inject.Singleton; + +@Singleton +public class KubernetesClientFactory { + @Produces + public KubernetesClient kubernetesClient() { + return new KubernetesClientBuilder() + .withHttpClientFactory(new OkHttpClientFactory()) + .build(); + } +} \ No newline at end of file diff --git a/operator/src/main/java/com/datastax/oss/kaap/LeaderElectionConfig.java b/operator/src/main/java/com/datastax/oss/kaap/LeaderElectionConfig.java index e8d36d5b..0852a7c2 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/LeaderElectionConfig.java +++ b/operator/src/main/java/com/datastax/oss/kaap/LeaderElectionConfig.java @@ -17,7 +17,7 @@ import io.javaoperatorsdk.operator.api.config.LeaderElectionConfiguration; import io.quarkus.arc.Unremovable; -import javax.enterprise.context.ApplicationScoped; +import jakarta.enterprise.context.ApplicationScoped; @ApplicationScoped @Unremovable diff --git a/operator/src/main/java/com/datastax/oss/kaap/autoscaler/BookKeeperSetAutoscaler.java b/operator/src/main/java/com/datastax/oss/kaap/autoscaler/BookKeeperSetAutoscaler.java index 16eb4966..749c79e6 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/autoscaler/BookKeeperSetAutoscaler.java +++ b/operator/src/main/java/com/datastax/oss/kaap/autoscaler/BookKeeperSetAutoscaler.java @@ -28,13 +28,13 @@ import com.datastax.oss.kaap.crds.bookkeeper.BookKeeperSetSpec; import com.datastax.oss.kaap.crds.cluster.PulsarClusterSpec; import io.fabric8.kubernetes.client.KubernetesClient; +import jakarta.validation.Valid; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.TreeMap; import java.util.concurrent.RejectedExecutionException; import java.util.stream.Collectors; -import javax.validation.Valid; import lombok.Data; import lombok.SneakyThrows; import lombok.extern.jbosslog.JBossLog; diff --git a/operator/src/main/java/com/datastax/oss/kaap/controllers/AbstractController.java b/operator/src/main/java/com/datastax/oss/kaap/controllers/AbstractController.java index efaba89a..ea1921aa 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/controllers/AbstractController.java +++ b/operator/src/main/java/com/datastax/oss/kaap/controllers/AbstractController.java @@ -40,17 +40,17 @@ import io.javaoperatorsdk.operator.api.reconciler.Context; import io.javaoperatorsdk.operator.api.reconciler.Reconciler; import io.javaoperatorsdk.operator.api.reconciler.UpdateControl; +import jakarta.inject.Inject; +import jakarta.validation.ConstraintValidator; +import jakarta.validation.ConstraintViolation; +import jakarta.validation.Validation; +import jakarta.validation.Validator; import java.time.Instant; import java.util.ArrayList; import java.util.List; import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; -import javax.inject.Inject; -import javax.validation.ConstraintValidator; -import javax.validation.ConstraintViolation; -import javax.validation.Validation; -import javax.validation.Validator; import lombok.AllArgsConstructor; import lombok.Data; import lombok.SneakyThrows; @@ -128,7 +128,7 @@ public UpdateControl reconcile(T resource, Context context) throws Excepti resource, CRDConstants.CONDITIONS_TYPE_READY_REASON_INVALID_SPEC, validationErrorMessage )), Instant.now()); resource.setStatus(new BaseComponentStatus(conditions, lastApplied)); - return UpdateControl.updateStatus(resource); + return UpdateControl.patchStatus(resource); } @@ -174,7 +174,7 @@ public UpdateControl reconcile(T resource, Context context) throws Excepti time, reschedule + "", conditionsStr); resource.setStatus(new BaseComponentStatus(conditions, lastApplied)); - final UpdateControl update = UpdateControl.updateStatus(resource); + final UpdateControl update = UpdateControl.patchStatus(resource); if (reschedule) { update.rescheduleAfter(operatorRuntimeConfiguration.reconciliationRescheduleSeconds(), TimeUnit.SECONDS); } diff --git a/operator/src/main/java/com/datastax/oss/kaap/controllers/BaseResourcesFactory.java b/operator/src/main/java/com/datastax/oss/kaap/controllers/BaseResourcesFactory.java index 65ac3af7..96cd0d12 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/controllers/BaseResourcesFactory.java +++ b/operator/src/main/java/com/datastax/oss/kaap/controllers/BaseResourcesFactory.java @@ -34,6 +34,7 @@ import io.fabric8.kubernetes.api.model.DeletionPropagation; import io.fabric8.kubernetes.api.model.EnvVar; import io.fabric8.kubernetes.api.model.HasMetadata; +import io.fabric8.kubernetes.api.model.IntOrString; import io.fabric8.kubernetes.api.model.NodeAffinity; import io.fabric8.kubernetes.api.model.OwnerReference; import io.fabric8.kubernetes.api.model.PersistentVolumeClaim; @@ -50,8 +51,6 @@ import io.fabric8.kubernetes.api.model.VolumeMount; import io.fabric8.kubernetes.api.model.VolumeMountBuilder; import io.fabric8.kubernetes.api.model.apps.Deployment; -import io.fabric8.kubernetes.api.model.apps.ReplicaSet; -import io.fabric8.kubernetes.api.model.apps.ReplicaSetStatus; import io.fabric8.kubernetes.api.model.apps.StatefulSet; import io.fabric8.kubernetes.api.model.apps.StatefulSetStatus; import io.fabric8.kubernetes.api.model.batch.v1.Job; @@ -78,6 +77,8 @@ import java.util.Map; import java.util.Objects; import java.util.Optional; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Collectors; import lombok.extern.jbosslog.JBossLog; import org.apache.commons.codec.digest.DigestUtils; @@ -87,6 +88,15 @@ @JBossLog public abstract class BaseResourcesFactory { + // Regex to capture the version string after a colon and optionally extract major version + // This pattern looks for a colon, then captures the entire version string + // The first group (\\d+) specifically captures the major version + public static final Pattern IMAGE_STRING_PATTERN = Pattern.compile( + ":(?(\\d+)(?:\\.\\d+){0,2}(?:[\\-][a-zA-Z0-9\\.]+)?)"); + + public static final Pattern MAJOR_VERSION_PATTERN = Pattern.compile("^(\\d+)"); + + public static final String CONFIG_PULSAR_PREFIX = "PULSAR_PREFIX_"; public static final String DEPLOYMENT_REVISION_ANNOTATION = "deployment.kubernetes.io/revision"; protected final KubernetesClient client; @@ -633,10 +643,18 @@ protected void createPodDisruptionBudgetIfEnabled(PodDisruptionBudgetConfig pdb, .withNewSelector() .withMatchLabels(getMatchLabels(customMatchLabels)) .endSelector() - .withNewMaxUnavailable(pdb.getMaxUnavailable()) .endSpec() .build(); + if (pdb.getMinAvailable() != null) { + pdbResource.getSpec() + .setMinAvailable(new IntOrString(pdb.getMinAvailable())); + } + if (pdb.getMaxUnavailable() != null) { + pdbResource.getSpec() + .setMaxUnavailable(new IntOrString(pdb.getMaxUnavailable())); + } + if (!pdbSupported) { pdbResource.setApiVersion("policy/v1beta1"); } @@ -776,45 +794,17 @@ public static boolean isStatefulSetReady(StatefulSet sts) { return false; } - final int replicas = status.getReplicas().intValue(); - final int ready = status.getReadyReplicas().intValue(); - final int updated = status.getUpdatedReplicas().intValue(); + final int replicas = status.getReplicas(); + final int ready = status.getReadyReplicas(); + final int updated = status.getUpdatedReplicas(); return replicas == ready && updated == ready; } public static boolean isDeploymentReady(Deployment deployment, KubernetesClient client) { - if (deployment == null) { - return false; - } - final String revision = deployment.getMetadata().getAnnotations().get(DEPLOYMENT_REVISION_ANNOTATION); - if (revision == null) { + if ((deployment == null) || (deployment.getStatus() == null)) { return false; } - - final List replicaSets = client.apps().replicaSets() - .inNamespace(deployment.getMetadata().getNamespace()) - .list() - .getItems() - .stream() - .filter(r -> r.getMetadata().getOwnerReferences().get(0).getUid() - .equals(deployment.getMetadata().getUid())) - .filter(r -> revision.equals(r.getMetadata().getAnnotations().get(DEPLOYMENT_REVISION_ANNOTATION))) - .collect(Collectors.toList()); - if (replicaSets.size() != 1) { - log.warnf("Found %d replica sets for deployment %s with revision %s", replicaSets.size(), - deployment.getMetadata().getName(), revision); - return false; - } - final ReplicaSet currentReplicaSet = replicaSets.get(0); - final ReplicaSetStatus status = currentReplicaSet.getStatus(); - if (status.getReplicas() == null || status.getReadyReplicas() == null - || status.getAvailableReplicas() == null) { - return false; - } - final int replicas = status.getReplicas().intValue(); - final int ready = status.getReadyReplicas().intValue(); - final int available = status.getAvailableReplicas().intValue(); - return replicas == ready && available == ready; + return (deployment.getStatus().getAvailableReplicas().equals(deployment.getStatus().getReplicas())); } public static boolean isPodReady(Pod pod) { @@ -966,14 +956,14 @@ protected String generateCertConverterScript() { p12File=/pulsar/tls.p12 keyStoreFile=/pulsar/tls.keystore.jks trustStoreFile=/pulsar/tls.truststore.jks - + head /dev/urandom | base64 | head -c 24 > /pulsar/keystoreSecret.txt export tlsTrustStorePassword=$(cat /pulsar/keystoreSecret.txt) export PF_tlsTrustStorePassword=$(cat /pulsar/keystoreSecret.txt) export tlsKeyStorePassword=$(cat /pulsar/keystoreSecret.txt) export PF_tlsKeyStorePassword=$(cat /pulsar/keystoreSecret.txt) export PULSAR_PREFIX_brokerClientTlsTrustStorePassword=$(cat /pulsar/keystoreSecret.txt) - + openssl pkcs12 \\ -export \\ -in ${crtFile} \\ @@ -981,14 +971,14 @@ protected String generateCertConverterScript() { -out ${p12File} \\ -name ${name} \\ -passout "file:/pulsar/keystoreSecret.txt" - + keytool -importkeystore \\ -srckeystore ${p12File} \\ -srcstoretype PKCS12 -srcstorepass:file "/pulsar/keystoreSecret.txt" \\ -alias ${name} \\ -destkeystore ${keyStoreFile} \\ -deststorepass:file "/pulsar/keystoreSecret.txt" - + keytool -import \\ -file ${caFile} \\ -storetype JKS \\ @@ -1044,12 +1034,12 @@ protected String generateCertConverterScript() { script += """ ( cat >> conf/pulsar_env.sh << EOF - + PULSAR_EXTRA_OPTS="\\${PULSAR_EXTRA_OPTS} %s" EOF ) && ( cat >> conf/bkenv.sh << EOF - + BOOKIE_EXTRA_OPTS="\\${BOOKIE_EXTRA_OPTS} %s" EOF ) && @@ -1128,4 +1118,25 @@ protected static List getSidecars(List containers) { } return containers; } + + public int getPulsarMajorVersion(String imageString) { + int pulsarMajorVersion = 2; + if (imageString == null) { + return pulsarMajorVersion; + } + Matcher imageStringMatcher = IMAGE_STRING_PATTERN.matcher(imageString); + + if (imageStringMatcher.find()) { + String fullVersion = imageStringMatcher.group("fullVersion"); + System.out.println("Full Version: " + fullVersion); + // Extract the major version specifically from the fullVersion string + Matcher majorVersionMatcher = MAJOR_VERSION_PATTERN.matcher(fullVersion); + if (majorVersionMatcher.find()) { + String majorVersionStr = majorVersionMatcher.group(1); + System.out.println("Major Version: " + majorVersionStr); + pulsarMajorVersion = Integer.parseInt(majorVersionStr); + } + } + return pulsarMajorVersion; + } } diff --git a/operator/src/main/java/com/datastax/oss/kaap/controllers/PulsarClusterController.java b/operator/src/main/java/com/datastax/oss/kaap/controllers/PulsarClusterController.java index 67b4e1d5..45e2a58e 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/controllers/PulsarClusterController.java +++ b/operator/src/main/java/com/datastax/oss/kaap/controllers/PulsarClusterController.java @@ -55,20 +55,19 @@ import io.fabric8.kubernetes.client.KubernetesClient; import io.fabric8.kubernetes.client.dsl.MixedOperation; import io.fabric8.kubernetes.client.dsl.Resource; -import io.javaoperatorsdk.operator.api.reconciler.Constants; import io.javaoperatorsdk.operator.api.reconciler.Context; import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration; import io.quarkus.runtime.ShutdownEvent; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.enterprise.event.Observes; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import javax.enterprise.context.ApplicationScoped; -import javax.enterprise.event.Observes; import lombok.SneakyThrows; import lombok.extern.jbosslog.JBossLog; -@ControllerConfiguration(namespaces = Constants.WATCH_CURRENT_NAMESPACE, name = "pulsar-cluster-app") +@ControllerConfiguration(name = "pulsar-cluster-app") @JBossLog @ApplicationScoped public class PulsarClusterController extends AbstractController { diff --git a/operator/src/main/java/com/datastax/oss/kaap/controllers/autorecovery/AutorecoveryController.java b/operator/src/main/java/com/datastax/oss/kaap/controllers/autorecovery/AutorecoveryController.java index 4d428350..dafa9c95 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/controllers/autorecovery/AutorecoveryController.java +++ b/operator/src/main/java/com/datastax/oss/kaap/controllers/autorecovery/AutorecoveryController.java @@ -21,14 +21,13 @@ import com.datastax.oss.kaap.crds.autorecovery.AutorecoveryFullSpec; import io.fabric8.kubernetes.api.model.apps.Deployment; import io.fabric8.kubernetes.client.KubernetesClient; -import io.javaoperatorsdk.operator.api.reconciler.Constants; import io.javaoperatorsdk.operator.api.reconciler.Context; import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration; import java.util.List; import lombok.extern.jbosslog.JBossLog; -@ControllerConfiguration(namespaces = Constants.WATCH_CURRENT_NAMESPACE, name = "pulsar-autorecovery-controller") +@ControllerConfiguration(name = "pulsar-autorecovery-controller") @JBossLog public class AutorecoveryController extends AbstractController { diff --git a/operator/src/main/java/com/datastax/oss/kaap/controllers/autorecovery/AutorecoveryResourcesFactory.java b/operator/src/main/java/com/datastax/oss/kaap/controllers/autorecovery/AutorecoveryResourcesFactory.java index 45603e05..e1335f5e 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/controllers/autorecovery/AutorecoveryResourcesFactory.java +++ b/operator/src/main/java/com/datastax/oss/kaap/controllers/autorecovery/AutorecoveryResourcesFactory.java @@ -98,7 +98,7 @@ public void patchConfigMap() { data.put("tlsProviderFactoryClass", "org.apache.bookkeeper.tls.TLSContextFactory"); data.put("tlsCertificatePath", "/pulsar/certs/tls.crt"); data.put("tlsKeyStoreType", "PEM"); - data.put("tlsKeyStore", "/pulsar/tls-pk8.key"); + data.put("tlsKeyStore", "/pulsar/certs/tls.key"); data.put("tlsTrustStoreType", "PEM"); data.put("tlsClientAuthentication", "true"); data.put("tlsTrustStore", getFullCaPath()); @@ -140,7 +140,15 @@ public void patchDeployment() { addTlsVolumes(volumeMounts, volumes, getTlsSecretNameForAutorecovery()); } String mainArg = "bin/apply-config-from-env.py conf/bookkeeper.conf && "; - if (tlsEnabledOnBookKeeper) { + + int pulsarMajorVersion = getPulsarMajorVersion(spec.getImage()); + if (pulsarMajorVersion >= 4) { + mainArg += "bin/update-ini-from-env.py conf/entry_location_rocksdb.conf PULSAR_PREFIX_entry_location_rocksdb_ && "; + } else if (pulsarMajorVersion >= 3) { + mainArg += "bin/apply-config-from-env.py conf/entry_location_rocksdb.conf --prefix PULSAR_PREFIX_entry_location_rocksdb_TableOptions_ && "; + } + + if (tlsEnabledOnBookKeeper) { mainArg += "openssl pkcs8 -topk8 -inform PEM -outform PEM -in /pulsar/certs/tls.key " + "-out /pulsar/tls-pk8.key -nocrypt && "; } @@ -184,6 +192,7 @@ public void patchDeployment() { .endMetadata() .withNewSpec() .withReplicas(spec.getReplicas()) + .withMinReadySeconds(spec.getMinReadySeconds()) .withNewSelector() .withMatchLabels(getMatchLabels(spec.getMatchLabels())) .endSelector() @@ -208,6 +217,9 @@ public void patchDeployment() { .withContainers(containers) .withInitContainers(getInitContainers(spec.getInitContainers())) .withVolumes(volumes) + .withSecurityContext(spec.getSecurityContext() == null + ? null + : spec.getSecurityContext().toPodSecurityContext()) .endSpec() .endTemplate() .endSpec() diff --git a/operator/src/main/java/com/datastax/oss/kaap/controllers/bastion/BastionController.java b/operator/src/main/java/com/datastax/oss/kaap/controllers/bastion/BastionController.java index 3223f8e3..a1717f23 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/controllers/bastion/BastionController.java +++ b/operator/src/main/java/com/datastax/oss/kaap/controllers/bastion/BastionController.java @@ -21,14 +21,13 @@ import com.datastax.oss.kaap.crds.bastion.BastionFullSpec; import io.fabric8.kubernetes.api.model.apps.Deployment; import io.fabric8.kubernetes.client.KubernetesClient; -import io.javaoperatorsdk.operator.api.reconciler.Constants; import io.javaoperatorsdk.operator.api.reconciler.Context; import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration; import java.util.List; import lombok.extern.jbosslog.JBossLog; -@ControllerConfiguration(namespaces = Constants.WATCH_CURRENT_NAMESPACE, name = "pulsar-bastion-controller") +@ControllerConfiguration(name = "pulsar-bastion-controller") @JBossLog public class BastionController extends AbstractController { diff --git a/operator/src/main/java/com/datastax/oss/kaap/controllers/bastion/BastionResourcesFactory.java b/operator/src/main/java/com/datastax/oss/kaap/controllers/bastion/BastionResourcesFactory.java index af3b07f7..62628c83 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/controllers/bastion/BastionResourcesFactory.java +++ b/operator/src/main/java/com/datastax/oss/kaap/controllers/bastion/BastionResourcesFactory.java @@ -176,6 +176,7 @@ public void patchDeployment() { .endMetadata() .withNewSpec() .withReplicas(spec.getReplicas()) + .withMinReadySeconds(spec.getMinReadySeconds()) .withNewSelector() .withMatchLabels(getMatchLabels(spec.getMatchLabels())) .endSelector() @@ -200,6 +201,9 @@ public void patchDeployment() { .withContainers(containers) .withInitContainers(getInitContainers(spec.getInitContainers())) .withVolumes(volumes) + .withSecurityContext(spec.getSecurityContext() == null + ? null + : spec.getSecurityContext().toPodSecurityContext()) .endSpec() .endTemplate() .endSpec() diff --git a/operator/src/main/java/com/datastax/oss/kaap/controllers/bookkeeper/BookKeeperController.java b/operator/src/main/java/com/datastax/oss/kaap/controllers/bookkeeper/BookKeeperController.java index 6f2f2779..5eaaf219 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/controllers/bookkeeper/BookKeeperController.java +++ b/operator/src/main/java/com/datastax/oss/kaap/controllers/bookkeeper/BookKeeperController.java @@ -34,22 +34,21 @@ import io.fabric8.kubernetes.api.model.OwnerReference; import io.fabric8.kubernetes.api.model.apps.StatefulSet; import io.fabric8.kubernetes.client.KubernetesClient; -import io.javaoperatorsdk.operator.api.reconciler.Constants; import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration; import io.quarkus.runtime.ShutdownEvent; +import jakarta.enterprise.event.Observes; import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import javax.enterprise.event.Observes; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.extern.jbosslog.JBossLog; -@ControllerConfiguration(namespaces = Constants.WATCH_CURRENT_NAMESPACE, name = "pulsar-bk-controller") +@ControllerConfiguration(name = "pulsar-bk-controller") @JBossLog public class BookKeeperController extends AbstractResourceSetsController getInitContainerNames(String clusterName, String baseName) { return List.of(getMainContainerName(clusterName, baseName)); } @@ -180,7 +181,7 @@ public void patchConfigMap() { data.put("tlsProviderFactoryClass", "org.apache.bookkeeper.tls.TLSContextFactory"); data.put("tlsCertificatePath", "/pulsar/certs/tls.crt"); data.put("tlsKeyStoreType", "PEM"); - data.put("tlsKeyStore", "/pulsar/tls-pk8.key"); + data.put("tlsKeyStore", "/pulsar/certs/tls.key"); data.put("tlsTrustStoreType", "PEM"); data.put("tlsHostnameVerificationEnabled", "true"); data.put("bookkeeperTLSClientAuthentication", "true"); @@ -247,6 +248,14 @@ public StatefulSet generateStatefulSet() { ); String mainArg = "bin/apply-config-from-env.py conf/bookkeeper.conf && "; + + int pulsarMajorVersion = getPulsarMajorVersion(spec.getImage()); + if (pulsarMajorVersion >= 4) { + mainArg += "bin/update-ini-from-env.py conf/entry_location_rocksdb.conf PULSAR_PREFIX_entry_location_rocksdb_ && "; + } else if (pulsarMajorVersion >= 3) { + mainArg += "bin/apply-config-from-env.py conf/entry_location_rocksdb.conf --prefix PULSAR_PREFIX_entry_location_rocksdb_TableOptions_ && "; + } + final boolean tlsEnabledOnBookKeeper = isTlsEnabledOnBookKeeper(); if (tlsEnabledOnBookKeeper) { mainArg += @@ -338,6 +347,7 @@ public StatefulSet generateStatefulSet() { .withNewSpec() .withServiceName(resourceName) .withReplicas(spec.getReplicas()) + .withMinReadySeconds(spec.getMinReadySeconds()) .withNewSelector() .withMatchLabels(getMatchLabels(spec.getMatchLabels())) .endSelector() @@ -362,7 +372,9 @@ public StatefulSet generateStatefulSet() { )) .withTerminationGracePeriodSeconds(spec.getGracePeriod().longValue()) .withPriorityClassName(global.getPriorityClassName()) - .withNewSecurityContext().withFsGroup(0L).endSecurityContext() + .withSecurityContext(spec.getSecurityContext() == null + ? null + : spec.getSecurityContext().toPodSecurityContext()) .withInitContainers(initContainers) .withContainers(containers) .withVolumes(volumes) diff --git a/operator/src/main/java/com/datastax/oss/kaap/controllers/broker/BrokerController.java b/operator/src/main/java/com/datastax/oss/kaap/controllers/broker/BrokerController.java index f0916805..6a742565 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/controllers/broker/BrokerController.java +++ b/operator/src/main/java/com/datastax/oss/kaap/controllers/broker/BrokerController.java @@ -28,7 +28,6 @@ import io.fabric8.kubernetes.api.model.OwnerReference; import io.fabric8.kubernetes.api.model.apps.StatefulSet; import io.fabric8.kubernetes.client.KubernetesClient; -import io.javaoperatorsdk.operator.api.reconciler.Constants; import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration; import java.util.ArrayList; import java.util.HashMap; @@ -41,7 +40,7 @@ import lombok.extern.jbosslog.JBossLog; -@ControllerConfiguration(namespaces = Constants.WATCH_CURRENT_NAMESPACE, name = "pulsar-broker-controller") +@ControllerConfiguration(name = "pulsar-broker-controller") @JBossLog public class BrokerController extends AbstractResourceSetsController { diff --git a/operator/src/main/java/com/datastax/oss/kaap/controllers/function/FunctionsWorkerResourcesFactory.java b/operator/src/main/java/com/datastax/oss/kaap/controllers/function/FunctionsWorkerResourcesFactory.java index 8aa4de51..8e1da127 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/controllers/function/FunctionsWorkerResourcesFactory.java +++ b/operator/src/main/java/com/datastax/oss/kaap/controllers/function/FunctionsWorkerResourcesFactory.java @@ -255,7 +255,7 @@ public void patchConfigMap() { final String fullCaPath = getFullCaPath(); data.put("tlsTrustCertsFilePath", fullCaPath); data.put("brokerClientTrustCertsFilePath", fullCaPath); - data.put("tlsKeyFilePath", "/pulsar/tls-pk8.key"); + data.put("tlsKeyFilePath", "/pulsar/certs/tls.key"); } final boolean enabledWithBroker = isTlsEnabledFromFunctionsWorkerToBroker(); if (enabledWithBroker) { @@ -268,8 +268,8 @@ public void patchConfigMap() { if (isTlsEnabledOnBookKeeper()) { data.put("bookkeeperTLSClientAuthentication", "true"); } - final String brokerServiceUrl = getBrokerServiceUrl(); - final String brokerWebServiceUrl = getBrokerWebServiceUrl(); + final String brokerServiceUrl = enabledWithBroker ? getBrokerServiceUrlTls() : getBrokerServiceUrlPlain(); + final String brokerWebServiceUrl = enabledWithBroker ? getBrokerWebServiceUrlTls() : getBrokerWebServiceUrlPlain(); data.put("pulsarServiceUrl", brokerServiceUrl); data.put("pulsarWebServiceUrl", brokerWebServiceUrl); @@ -298,8 +298,7 @@ public void patchConfigMap() { "pulsarRootDir", "/pulsar", "submittingInsidePod", true, "pulsarServiceUrl", brokerServiceUrl, - "pulsarAdminUrl", "https://%s.%s:6750/" - .formatted(resourceName, getServiceDnsSuffix()), + "pulsarAdminUrl", getFunctionsWorkerServiceUrl(), "percentMemoryPadding", 10) ); break; @@ -495,6 +494,7 @@ public StatefulSet generateStatefulSet() { .withNewSpec() .withServiceName(resourceName) .withReplicas(spec.getReplicas()) + .withMinReadySeconds(spec.getMinReadySeconds()) .withNewSelector() .withMatchLabels(getMatchLabels(spec.getMatchLabels())) .endSelector() @@ -519,9 +519,9 @@ public StatefulSet generateStatefulSet() { .withTerminationGracePeriodSeconds(spec.getGracePeriod().longValue()) .withPriorityClassName(global.getPriorityClassName()) .withInitContainers(getInitContainers(spec.getInitContainers())) - .withNewSecurityContext() - .withFsGroup(0L) - .endSecurityContext() + .withSecurityContext(spec.getSecurityContext() == null + ? null + : spec.getSecurityContext().toPodSecurityContext()) .withContainers(containers) .withVolumes(volumes) .endSpec() diff --git a/operator/src/main/java/com/datastax/oss/kaap/controllers/proxy/ProxyController.java b/operator/src/main/java/com/datastax/oss/kaap/controllers/proxy/ProxyController.java index 98ac16bb..2c48f7f4 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/controllers/proxy/ProxyController.java +++ b/operator/src/main/java/com/datastax/oss/kaap/controllers/proxy/ProxyController.java @@ -28,7 +28,6 @@ import io.fabric8.kubernetes.api.model.OwnerReference; import io.fabric8.kubernetes.api.model.apps.Deployment; import io.fabric8.kubernetes.client.KubernetesClient; -import io.javaoperatorsdk.operator.api.reconciler.Constants; import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration; import java.util.ArrayList; import java.util.HashMap; @@ -41,7 +40,7 @@ import lombok.extern.jbosslog.JBossLog; -@ControllerConfiguration(namespaces = Constants.WATCH_CURRENT_NAMESPACE, name = "pulsar-proxy-controller") +@ControllerConfiguration(name = "pulsar-proxy-controller") @JBossLog public class ProxyController extends AbstractResourceSetsController getProxySetSpecs(ProxySpec pro @Data @AllArgsConstructor @NoArgsConstructor - public static class ProxySetsLastApplied implements SetsLastApplied { + public static class ProxySetsLastApplied implements AbstractResourceSetsController.SetsLastApplied { private ProxyFullSpec common; private Map sets = new HashMap<>(); } diff --git a/operator/src/main/java/com/datastax/oss/kaap/controllers/proxy/ProxyResourcesFactory.java b/operator/src/main/java/com/datastax/oss/kaap/controllers/proxy/ProxyResourcesFactory.java index 1aaad3bb..8abf1c01 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/controllers/proxy/ProxyResourcesFactory.java +++ b/operator/src/main/java/com/datastax/oss/kaap/controllers/proxy/ProxyResourcesFactory.java @@ -208,6 +208,11 @@ public void patchService() { .endSpec() .build(); + + if (serviceSpec.getLoadBalancerClass() != null) { + service.getSpec().setLoadBalancerClass(serviceSpec.getLoadBalancerClass()); + } + patchResource(service); } @@ -244,13 +249,12 @@ public void patchConfigMap() { final boolean tlsEnabledOnProxySet = isTlsEnabledOnProxySet(proxySet); final boolean tlsEnabledWithBroker = getTlsConfigForProxySet(proxySet).getEnabledWithBroker(); if (tlsEnabledOnProxySet) { - data.put("tlsEnabledWithKeyStore", "true"); data.put("tlsKeyStore", "/pulsar/tls.keystore.jks"); data.put("tlsTrustStore", "/pulsar/tls.truststore.jks"); data.put("brokerClientTlsTrustStore", "/pulsar/tls.truststore.jks"); data.put("tlsEnabledInProxy", "true"); data.put("tlsCertificateFilePath", "/pulsar/certs/tls.crt"); - data.put("tlsKeyFilePath", "/pulsar/tls-pk8.key"); + data.put("tlsKeyFilePath", "/pulsar/certs/tls.key"); final String fullCaPath = getFullCaPath(); data.put("tlsTrustCertsFilePath", fullCaPath); data.put("brokerClientTrustCertsFilePath", fullCaPath); @@ -335,8 +339,7 @@ public void patchConfigMapWsConfig() { data.put("webServicePortTls", DEFAULT_WSS_PORT + ""); data.put("tlsEnabled", "true"); data.put("tlsCertificateFilePath", "/pulsar/certs/tls.crt"); - data.put("tlsKeyFilePath", "/pulsar/tls-pk8.key"); - data.put("tlsEnabledWithKeyStore", "true"); + data.put("tlsKeyFilePath", "/pulsar/certs/tls.key"); data.put("tlsKeyStore", "/pulsar/tls.keystore.jks"); data.put("tlsTrustStore", "/pulsar/tls.truststore.jks"); if (getTlsConfigForProxySet(proxySet).getEnabledWithBroker()) { @@ -527,6 +530,7 @@ public void patchDeployment() { .endMetadata() .withNewSpec() .withReplicas(spec.getReplicas()) + .withMinReadySeconds(spec.getMinReadySeconds()) .withNewSelector() .withMatchLabels(getMatchLabels(spec.getMatchLabels())) .endSelector() @@ -553,6 +557,9 @@ public void patchDeployment() { .withInitContainers(getInitContainers(spec.getInitContainers())) .withContainers(containers) .withVolumes(volumes) + .withSecurityContext(spec.getSecurityContext() == null + ? null + : spec.getSecurityContext().toPodSecurityContext()) .endSpec() .endTemplate() .endSpec() diff --git a/operator/src/main/java/com/datastax/oss/kaap/controllers/utils/CertManagerCertificatesProvisioner.java b/operator/src/main/java/com/datastax/oss/kaap/controllers/utils/CertManagerCertificatesProvisioner.java index 136e86e5..c66af227 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/controllers/utils/CertManagerCertificatesProvisioner.java +++ b/operator/src/main/java/com/datastax/oss/kaap/controllers/utils/CertManagerCertificatesProvisioner.java @@ -27,6 +27,13 @@ import com.datastax.oss.kaap.crds.GlobalSpec; import com.datastax.oss.kaap.crds.cluster.PulsarClusterSpec; import com.datastax.oss.kaap.crds.configs.tls.TlsConfig; +import com.datastax.oss.kaap.crds.configs.tls.TlsConfig.ComponentCertificateConfig; +import io.fabric8.certmanager.api.model.acme.v1.ACMEChallengeSolver; +import io.fabric8.certmanager.api.model.acme.v1.ACMEChallengeSolverBuilder; +import io.fabric8.certmanager.api.model.acme.v1.ACMEChallengeSolverDNS01Builder; +import io.fabric8.certmanager.api.model.acme.v1.ACMEChallengeSolverHTTP01Builder; +import io.fabric8.certmanager.api.model.acme.v1.ACMEChallengeSolverHTTP01IngressBuilder; +import io.fabric8.certmanager.api.model.acme.v1.ACMEIssuerBuilder; import io.fabric8.certmanager.api.model.v1.Certificate; import io.fabric8.certmanager.api.model.v1.CertificateBuilder; import io.fabric8.certmanager.api.model.v1.CertificatePrivateKey; @@ -35,6 +42,8 @@ import io.fabric8.kubernetes.client.KubernetesClient; import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; import lombok.extern.jbosslog.JBossLog; import org.apache.commons.lang3.ObjectUtils; @@ -46,6 +55,7 @@ public class CertManagerCertificatesProvisioner { private final PulsarClusterSpec pulsarClusterSpec; private final GlobalSpec globalSpec; private final TlsConfig.SelfSignedCertProvisionerConfig selfSigned; + private final TlsConfig.AcmeCertProvisionerConfig acme; private final String clusterSpecName; private final String ssCaSecretName; private final String caIssuerName; @@ -57,48 +67,55 @@ public CertManagerCertificatesProvisioner(KubernetesClient client, String namesp this.namespace = namespace; this.pulsarClusterSpec = pulsarClusterSpec; this.globalSpec = pulsarClusterSpec.getGlobalSpec(); - if (globalSpec.getTls() == null - || !globalSpec.getTls().getEnabled() - || globalSpec.getTls().getCertProvisioner() == null - || globalSpec.getTls().getCertProvisioner().getSelfSigned() == null) { + TlsConfig tls = globalSpec != null ? globalSpec.getTls() : null; + TlsConfig.CertProvisionerConfig provisioner = tls != null ? tls.getCertProvisioner() : null; + if (tls == null || !Boolean.TRUE.equals(tls.getEnabled()) || provisioner == null) { this.selfSigned = null; + this.acme = null; this.clusterSpecName = null; this.caIssuerName = null; this.ssCaSecretName = null; this.serviceDnsSuffix = null; - } else { - this.selfSigned = globalSpec.getTls().getCertProvisioner().getSelfSigned(); - this.clusterSpecName = globalSpec.getName(); - this.caIssuerName = "%s-ca-issuer".formatted(clusterSpecName); - this.ssCaSecretName = BaseResourcesFactory.getTlsSsCaSecretName(globalSpec); - this.serviceDnsSuffix = "%s.svc.%s".formatted(namespace, globalSpec.getKubernetesClusterDomain()); + return; } - + this.selfSigned = provisioner.getSelfSigned(); + this.acme = provisioner.getAcme(); + this.clusterSpecName = globalSpec.getName(); + this.caIssuerName = "%s-ca-issuer".formatted(clusterSpecName); + this.ssCaSecretName = BaseResourcesFactory.getTlsSsCaSecretName(globalSpec); + this.serviceDnsSuffix = "%s.svc.%s".formatted(namespace, globalSpec.getKubernetesClusterDomain()); } public void generateCertificates() { - if (selfSigned == null) { - return; + validateProvisionersConfig(); + if (selfSigned != null && Boolean.TRUE.equals(selfSigned.getEnabled())) { + generateSelfSignedCertificates(); + } + if (acme != null && Boolean.TRUE.equals(acme.getEnabled())) { + generateAcmeCertificates(); } + } + private void generateSelfSignedCertificates() { createRootCACertificate(); if (selfSigned.getPerComponent() == null || !selfSigned.getPerComponent()) { List dnsNames = new ArrayList<>(); if (TlsConfig.TlsEntryConfig.isEnabled(globalSpec.getTls().getBookkeeper())) { - dnsNames.addAll(getBookKeeperDNSNames()); + dnsNames.addAll(getBookKeeperDNSNames(null)); } if (TlsConfig.TlsEntryConfig.isEnabled(globalSpec.getTls().getZookeeper())) { - dnsNames.addAll(getZookeeperDNSNames()); + dnsNames.addAll(getZookeeperDNSNames(null)); } if (TlsConfig.TlsEntryConfig.isEnabled(globalSpec.getTls().getBroker())) { - dnsNames.addAll(getBrokerDNSNames()); + dnsNames.addAll(getBrokerDNSNames(null)); } if (TlsConfig.TlsEntryConfig.isEnabled(globalSpec.getTls().getProxy())) { - dnsNames.addAll(getProxyDNSNames()); + dnsNames.addAll(getProxyDNSNames(null)); } if (TlsConfig.TlsEntryConfig.isEnabled(globalSpec.getTls().getFunctionsWorker())) { - dnsNames.addAll(getFunctionsWorkerDNSNames()); + dnsNames.addAll(getFunctionsWorkerDNSNames(null)); } + dnsNames.addAll(getDnsNamesForExternalServicesForGlobalCert()); if (globalSpec.getDnsName() != null && selfSigned.getIncludeDns() != null && selfSigned.getIncludeDns()) { @@ -109,20 +126,27 @@ public void generateCertificates() { certName, globalSpec.getTls().getDefaultSecretName(), selfSigned.getPrivateKey(), - dnsNames + dnsNames, + caIssuerName ); } else { if (TlsConfig.TlsEntryConfig.isEnabled(globalSpec.getTls().getBroker())) { createCertificatePerComponent(selfSigned.getBroker(), globalSpec.getComponents().getBrokerBaseName(), - globalSpec.getTls().getBroker().getSecretName(), - getBrokerDNSNames()); + ObjectUtils.firstNonNull(selfSigned.getBroker().getSecretName(), + globalSpec.getTls().getBroker().getSecretName()), + getBrokerDNSNames(selfSigned.getBroker()), + caIssuerName, + selfSigned.getPrivateKey()); } if (TlsConfig.TlsEntryConfig.isEnabled(globalSpec.getTls().getBookkeeper())) { createCertificatePerComponent(selfSigned.getBookkeeper(), globalSpec.getComponents().getBookkeeperBaseName(), - globalSpec.getTls().getBookkeeper().getSecretName(), - getBookKeeperDNSNames()); + ObjectUtils.firstNonNull(selfSigned.getBookkeeper().getSecretName(), + globalSpec.getTls().getBookkeeper().getSecretName()), + getBookKeeperDNSNames(selfSigned.getBookkeeper()), + caIssuerName, + selfSigned.getPrivateKey()); } if (TlsConfig.TlsEntryConfig.isEnabled(globalSpec.getTls().getAutorecovery())) { createAutorecoveryCertificate(); @@ -130,28 +154,207 @@ public void generateCertificates() { if (TlsConfig.ProxyTlsEntryConfig.isEnabled(globalSpec.getTls().getProxy())) { createCertificatePerComponent(selfSigned.getProxy(), globalSpec.getComponents().getProxyBaseName(), - globalSpec.getTls().getProxy().getSecretName(), - getProxyDNSNames()); + ObjectUtils.firstNonNull(selfSigned.getProxy().getSecretName(), + globalSpec.getTls().getProxy().getSecretName()), + getProxyDNSNames(selfSigned.getProxy()), + caIssuerName, + selfSigned.getPrivateKey()); } if (TlsConfig.TlsEntryConfig.isEnabled(globalSpec.getTls().getZookeeper())) { createCertificatePerComponent(selfSigned.getZookeeper(), globalSpec.getComponents().getZookeeperBaseName(), - globalSpec.getTls().getZookeeper().getSecretName(), - getZookeeperDNSNames()); + ObjectUtils.firstNonNull(selfSigned.getZookeeper().getSecretName(), + globalSpec.getTls().getZookeeper().getSecretName()), + getZookeeperDNSNames(selfSigned.getZookeeper()), + caIssuerName, + selfSigned.getPrivateKey()); } if (TlsConfig.FunctionsWorkerTlsEntryConfig.isEnabled(globalSpec.getTls().getFunctionsWorker())) { createCertificatePerComponent(selfSigned.getFunctionsWorker(), globalSpec.getComponents().getFunctionsWorkerBaseName(), - globalSpec.getTls().getFunctionsWorker().getSecretName(), - getFunctionsWorkerDNSNames()); + ObjectUtils.firstNonNull(selfSigned.getFunctionsWorker().getSecretName(), + globalSpec.getTls().getFunctionsWorker().getSecretName()), + getFunctionsWorkerDNSNames(selfSigned.getFunctionsWorker()), + caIssuerName, + selfSigned.getPrivateKey()); + } + if (selfSigned.getExternal() != null) { + for (Map.Entry entry + : selfSigned.getExternal().entrySet()) { + final String serviceName = entry.getKey(); + final ComponentCertificateConfig config = entry.getValue(); + + if (config.getGenerate() != null && config.getGenerate()) { + createCertificatePerComponent( + config, + serviceName, + config.getSecretName(), + getBaseK8sDnsNames(config, serviceName), + caIssuerName, + selfSigned.getPrivateKey() + ); + } + } + } + } + } + + private void generateAcmeCertificates() { + createAcmeIssuer(); + String issuerName = acme.getIssuer().getName(); + if (TlsConfig.TlsEntryConfig.isEnabled(globalSpec.getTls().getBroker())) { + createCertificatePerComponent( + acme.getBroker(), + globalSpec.getComponents().getBrokerBaseName(), + ObjectUtils.firstNonNull(acme.getBroker().getSecretName(), + globalSpec.getTls().getBroker().getSecretName()), + mergeDnsNames(null, acme.getBroker()), + issuerName, + acme.getPrivateKey() + ); + } + if (TlsConfig.ProxyTlsEntryConfig.isEnabled(globalSpec.getTls().getProxy())) { + createCertificatePerComponent( + acme.getProxy(), + globalSpec.getComponents().getProxyBaseName(), + ObjectUtils.firstNonNull(acme.getProxy().getSecretName(), + globalSpec.getTls().getProxy().getSecretName()), + mergeDnsNames(null, acme.getProxy()), + issuerName, + acme.getPrivateKey() + ); + } + if (acme.getExternal() != null) { + for (Map.Entry entry : acme.getExternal().entrySet()) { + final String serviceName = entry.getKey(); + final ComponentCertificateConfig config = entry.getValue(); + + if (Boolean.TRUE.equals(config.getGenerate())) { + createCertificatePerComponent( + config, + serviceName, + config.getSecretName(), + mergeDnsNames(null, config), + issuerName, + acme.getPrivateKey() + ); + } } } } + public static void validateAcmeIssuerConfig(TlsConfig.AcmeIssuerConfig config) { + if (config.getSolvers() == null || config.getSolvers().isEmpty()) { + throw new IllegalArgumentException("At least one ACME solver must be configured"); + } + for (TlsConfig.SolverConfig solver : config.getSolvers()) { + int count = 0; + if (solver.getHttp01() != null) { + count++; + } + if (solver.getDns01() != null) { + count++; + } + if (count != 1) { + throw new IllegalArgumentException( + "Exactly one of http01 or dns01 must be configured per solver"); + } + if (solver.getDns01() != null) { + TlsConfig.Dns01Config dns = solver.getDns01(); + int providers = 0; + if (dns.getRoute53() != null) { + providers++; + } + if (dns.getCloudflare() != null) { + providers++; + } + if (dns.getCloudDNS() != null) { + providers++; + } + if (providers != 1) { + throw new IllegalArgumentException( + "Exactly one DNS provider must be configured per solver"); + } + } + } + } + + private void createAcmeIssuer() { + TlsConfig.AcmeIssuerConfig issuerConfig = acme.getIssuer(); + validateAcmeIssuerConfig(issuerConfig); + List solvers = new ArrayList<>(); + + for (TlsConfig.SolverConfig solver : issuerConfig.getSolvers()) { + ACMEChallengeSolverBuilder solverBuilder = new ACMEChallengeSolverBuilder(); + if (solver.getHttp01() != null) { + TlsConfig.Http01Config http = solver.getHttp01(); + solverBuilder.withHttp01( + new ACMEChallengeSolverHTTP01Builder() + .withIngress( + new ACMEChallengeSolverHTTP01IngressBuilder() + .withIngressClassName(http.getIngressClass()) + .build() + ) + .build() + ); + } + + if (solver.getDns01() != null) { + TlsConfig.Dns01Config dns = solver.getDns01(); + ACMEChallengeSolverDNS01Builder dnsBuilder = new ACMEChallengeSolverDNS01Builder(); + if (dns.getRoute53() != null) { + TlsConfig.Route53Config r = dns.getRoute53(); + dnsBuilder + .withNewRoute53() + .withRegion(r.getRegion()) + .withHostedZoneID(r.getHostedZoneId()) + .endRoute53(); + } else if (dns.getCloudflare() != null) { + TlsConfig.CloudflareConfig cf = dns.getCloudflare(); + dnsBuilder + .withNewCloudflare() + .withEmail(cf.getEmail()) + .withNewApiTokenSecretRef(cf.getApiTokenSecretKey(), cf.getApiTokenSecretName()) + .endCloudflare(); + } else if (dns.getCloudDNS() != null) { + TlsConfig.GoogleCloudDnsConfig g = dns.getCloudDNS(); + dnsBuilder + .withNewCloudDNS() + .withProject(g.getProject()) + .withNewServiceAccountSecretRef(g.getServiceAccountSecretKey(), + g.getServiceAccountSecretName()) + .endCloudDNS(); + } + solverBuilder.withDns01(dnsBuilder.build()); + } + solvers.add(solverBuilder.build()); + } + + Issuer issuer = new IssuerBuilder() + .withNewMetadata() + .withName(issuerConfig.getName()) + .withNamespace(namespace) + .endMetadata() + .withNewSpec() + .withAcme( + new ACMEIssuerBuilder() + .withServer(issuerConfig.getServer()) + .withEmail(issuerConfig.getEmail()) + .withNewPrivateKeySecretRef() + .withName(issuerConfig.getPrivateKeySecretName()) + .endPrivateKeySecretRef() + .withSolvers(solvers) + .build() + ) + .endSpec() + .build(); + client.resource(issuer).inNamespace(namespace).forceConflicts().serverSideApply(); + } + private void createAutorecoveryCertificate() { // autorecovery only need to be accessed via the client tls auth, no dns names needed - final TlsConfig.SelfSignedCertificatePerComponentConfig autorecoveryConfig = selfSigned.getAutorecovery(); + final ComponentCertificateConfig autorecoveryConfig = selfSigned.getAutorecovery(); final CertificatePrivateKey privateKey = ObjectUtils .firstNonNull(autorecoveryConfig == null ? null : autorecoveryConfig.getPrivateKey(), @@ -176,71 +379,105 @@ private void createAutorecoveryCertificate() { client.resource(caCertificate) .inNamespace(namespace) - .createOrReplace(); + .forceConflicts() + .serverSideApply(); } - private void createCertificatePerComponent(final TlsConfig.SelfSignedCertificatePerComponentConfig componentConfig, + private void createCertificatePerComponent(final ComponentCertificateConfig componentConfig, final String baseName, final String secretName, - List dnsNames) { - if (componentConfig == null || !componentConfig.getGenerate()) { + List dnsNames, + String issuerName, + CertificatePrivateKey provisionerPrivateKey) { + if (componentConfig == null || !Boolean.TRUE.equals(componentConfig.getGenerate())) { return; } createCertificate( "%s-%s-tls".formatted(clusterSpecName, baseName), secretName, - ObjectUtils.firstNonNull(componentConfig.getPrivateKey(), selfSigned.getPrivateKey()), - dnsNames + ObjectUtils.firstNonNull(componentConfig.getPrivateKey(), provisionerPrivateKey), + dnsNames, + issuerName ); } - private List getBookKeeperDNSNames() { + private List mergeDnsNames(List k8sDnsNames, ComponentCertificateConfig config) { + final List finalDnsNames = new ArrayList<>(ObjectUtils.firstNonNull(k8sDnsNames, new ArrayList<>())); + if (config != null && config.getDnsNames() != null) { + finalDnsNames.addAll(config.getDnsNames()); + } + return finalDnsNames; + } + + private List getDnsNamesForExternalServicesForGlobalCert() { + final List dnsNames = new ArrayList<>(); + if (selfSigned.getExternal() != null) { + for (Map.Entry entry + : selfSigned.getExternal().entrySet()) { + final ComponentCertificateConfig config = entry.getValue(); + if (Boolean.TRUE.equals(config.getGenerate())) { + dnsNames.addAll(getBaseK8sDnsNames(config, entry.getKey())); + } + } + } + return dnsNames; + } + + private List getBaseK8sDnsNames(ComponentCertificateConfig config, String serviceName) { + List k8sDnsNames = enumerateDnsNames(serviceName, true); + return mergeDnsNames(k8sDnsNames, config); + } + + private List getBookKeeperDNSNames(ComponentCertificateConfig config) { final String componentBaseName = BookKeeperResourcesFactory.getComponentBaseName(globalSpec); - return BookKeeperController + List k8sDnsNames = BookKeeperController .enumerateBookKeeperSets(clusterSpecName, componentBaseName, pulsarClusterSpec.getBookkeeper()).stream() .flatMap(set -> enumerateDnsNames(set, true).stream()) .collect(Collectors.toList()); + return mergeDnsNames(k8sDnsNames, config); } - private List getFunctionsWorkerDNSNames() { + private List getFunctionsWorkerDNSNames(ComponentCertificateConfig config) { final String functionsWorkerBase = FunctionsWorkerResourcesFactory.getResourceName(clusterSpecName, FunctionsWorkerResourcesFactory.getComponentBaseName(globalSpec)); - List dnsNames = new ArrayList<>(); + List k8sDnsNames = new ArrayList<>(); // The DNS names ending in "-ca" are meant for client access. The wildcard names are used for zookeeper to // zookeeper networking. - dnsNames.addAll(enumerateDnsNames(functionsWorkerBase, true)); - dnsNames.addAll(enumerateDnsNames(functionsWorkerBase + "-ca", false)); - return dnsNames; + k8sDnsNames.addAll(enumerateDnsNames(functionsWorkerBase, true)); + k8sDnsNames.addAll(enumerateDnsNames(functionsWorkerBase + "-ca", false)); + return mergeDnsNames(k8sDnsNames, config); } - private List getZookeeperDNSNames() { + private List getZookeeperDNSNames(ComponentCertificateConfig config) { final String zookeeperDNSNames = ZooKeeperResourcesFactory.getResourceName(clusterSpecName, ZooKeeperResourcesFactory.getComponentBaseName(globalSpec)); - List dnsNames = new ArrayList<>(); + List k8sDnsNames = new ArrayList<>(); // The DNS names ending in "-ca" are meant for client access. The wildcard names are used for zookeeper to // zookeeper networking. - dnsNames.addAll(enumerateDnsNames(zookeeperDNSNames, true)); - dnsNames.addAll(enumerateDnsNames(zookeeperDNSNames + "-ca", false)); - return dnsNames; + k8sDnsNames.addAll(enumerateDnsNames(zookeeperDNSNames, true)); + k8sDnsNames.addAll(enumerateDnsNames(zookeeperDNSNames + "-ca", false)); + return mergeDnsNames(k8sDnsNames, config); } - private List getProxyDNSNames() { + private List getProxyDNSNames(ComponentCertificateConfig config) { final String componentBaseName = ProxyResourcesFactory.getComponentBaseName(globalSpec); - return ProxyController + List k8sDnsNames = ProxyController .enumerateProxySets(clusterSpecName, componentBaseName, pulsarClusterSpec.getProxy()).stream() .flatMap(set -> enumerateDnsNames(set, false).stream()) .collect(Collectors.toList()); + return mergeDnsNames(k8sDnsNames, config); } - private List getBrokerDNSNames() { + private List getBrokerDNSNames(ComponentCertificateConfig config) { final String componentBaseName = BrokerResourcesFactory.getComponentBaseName(globalSpec); - return BrokerController + List k8sDnsNames = BrokerController .enumerateBrokerSets(clusterSpecName, componentBaseName, pulsarClusterSpec.getBroker()).stream() .flatMap(set -> enumerateDnsNames(set, true).stream()) .collect(Collectors.toList()); + return mergeDnsNames(k8sDnsNames, config); } private List enumerateDnsNames(final String serviceName, boolean wildcard) { @@ -259,8 +496,9 @@ private List enumerateDnsNames(final String serviceName, boolean wildcar private void createCertificate(String name, String secretName, CertificatePrivateKey privateKey, - List dnsNames) { - final Certificate ssCertificate = new CertificateBuilder() + List dnsNames, + String issuerName) { + final Certificate certificate = new CertificateBuilder() .withNewMetadata() .withName(name) .withNamespace(namespace) @@ -269,16 +507,16 @@ private void createCertificate(String name, .withPrivateKey(privateKey) .withSecretName(secretName) .withNewIssuerRef() - .withName(caIssuerName) + .withName(issuerName) .endIssuerRef() .withDnsNames(dnsNames) .endSpec() .build(); - - client.resource(ssCertificate) + client.resource(certificate) .inNamespace(namespace) - .createOrReplace(); - log.debugf("Created self-signed certificate %s mapped to secret %s", name, secretName); + .forceConflicts() + .serverSideApply(); + log.debugf("Created certificate %s mapped to secret %s", name, secretName); } private void createRootCACertificate() { @@ -297,7 +535,8 @@ private void createRootCACertificate() { client.resource(ssIssuer) .inNamespace(namespace) - .createOrReplace(); + .forceConflicts() + .serverSideApply(); final Certificate caCertificate = new CertificateBuilder() .withNewMetadata() @@ -318,7 +557,8 @@ private void createRootCACertificate() { client.resource(caCertificate) .inNamespace(namespace) - .createOrReplace(); + .forceConflicts() + .serverSideApply(); final Issuer caIssuer = new IssuerBuilder() .withNewMetadata() @@ -334,9 +574,92 @@ private void createRootCACertificate() { client.resource(caIssuer) .inNamespace(namespace) - .createOrReplace(); + .forceConflicts() + .serverSideApply(); log.debug("Created self-signed root CA certificate"); } + private void validateProvisionersConfig() { + if (selfSigned == null || acme == null) { + return; + } + validateComponent( + "broker", + selfSigned.getBroker(), + acme.getBroker(), + globalSpec.getTls().getBroker() + ); + validateComponent( + "proxy", + selfSigned.getProxy(), + acme.getProxy(), + globalSpec.getTls().getProxy() + ); + validateExternal(selfSigned.getExternal(), acme.getExternal()); + } + + private void validateComponent( + String componentName, + ComponentCertificateConfig selfSignedConfig, + ComponentCertificateConfig acmeConfig, + TlsConfig.TlsEntryConfig tlsEntryConfig) { + if (selfSignedConfig == null || acmeConfig == null) { + return; + } + + if (Boolean.TRUE.equals(selfSignedConfig.getGenerate()) + && Boolean.TRUE.equals(acmeConfig.getGenerate())) { -} + String ssSecret = ObjectUtils.firstNonNull( + selfSignedConfig.getSecretName(), + tlsEntryConfig.getSecretName() + ); + String acmeSecret = ObjectUtils.firstNonNull( + acmeConfig.getSecretName(), + tlsEntryConfig.getSecretName() + ); + + if (Objects.equals(ssSecret, acmeSecret)) { + throw new IllegalArgumentException( + String.format( + "Invalid TLS configuration: both selfSigned and ACME provisioners generate a %s " + + "certificate using the same secret '%s'. This would cause certificates to " + + "override each other.", componentName, ssSecret + ) + ); + } + } + } + + private void validateExternal(Map selfSignedExternal, + Map acmeExternal) { + + if (selfSignedExternal == null || acmeExternal == null) { + return; + } + for (Map.Entry entry : selfSignedExternal.entrySet()) { + String serviceName = entry.getKey(); + ComponentCertificateConfig ssConfig = entry.getValue(); + ComponentCertificateConfig acmeConfig = acmeExternal.get(serviceName); + if (acmeConfig == null) { + continue; + } + if (Boolean.TRUE.equals(ssConfig.getGenerate()) + && Boolean.TRUE.equals(acmeConfig.getGenerate())) { + + String ssSecret = ssConfig.getSecretName(); + String acmeSecret = acmeConfig.getSecretName(); + + if (Objects.equals(ssSecret, acmeSecret)) { + throw new IllegalArgumentException( + String.format("Invalid TLS configuration: both selfSigned and ACME provisioners generate an" + + " external certificate for service '%s' using the same secret '%s'. " + + "This would cause certificates to override each other.", serviceName, + ssSecret + ) + ); + } + } + } + } +} \ No newline at end of file diff --git a/operator/src/main/java/com/datastax/oss/kaap/controllers/zookeeper/ZooKeeperController.java b/operator/src/main/java/com/datastax/oss/kaap/controllers/zookeeper/ZooKeeperController.java index 2a564d05..36c9406c 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/controllers/zookeeper/ZooKeeperController.java +++ b/operator/src/main/java/com/datastax/oss/kaap/controllers/zookeeper/ZooKeeperController.java @@ -23,14 +23,13 @@ import io.fabric8.kubernetes.api.model.apps.StatefulSet; import io.fabric8.kubernetes.api.model.batch.v1.Job; import io.fabric8.kubernetes.client.KubernetesClient; -import io.javaoperatorsdk.operator.api.reconciler.Constants; import io.javaoperatorsdk.operator.api.reconciler.Context; import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration; import java.util.List; import lombok.extern.jbosslog.JBossLog; -@ControllerConfiguration(namespaces = Constants.WATCH_CURRENT_NAMESPACE, name = "pulsar-zk-controller") +@ControllerConfiguration(name = "pulsar-zk-controller") @JBossLog public class ZooKeeperController extends AbstractController { diff --git a/operator/src/main/java/com/datastax/oss/kaap/controllers/zookeeper/ZooKeeperResourcesFactory.java b/operator/src/main/java/com/datastax/oss/kaap/controllers/zookeeper/ZooKeeperResourcesFactory.java index bac1e156..aeff7cf7 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/controllers/zookeeper/ZooKeeperResourcesFactory.java +++ b/operator/src/main/java/com/datastax/oss/kaap/controllers/zookeeper/ZooKeeperResourcesFactory.java @@ -345,6 +345,7 @@ public void patchStatefulSet() { .withNewSpec() .withServiceName(resourceName) .withReplicas(spec.getReplicas()) + .withMinReadySeconds(spec.getMinReadySeconds()) .withNewSelector() .withMatchLabels(matchLabels) .endSelector() @@ -368,7 +369,9 @@ public void patchStatefulSet() { )) .withTerminationGracePeriodSeconds(gracePeriod) .withPriorityClassName(global.getPriorityClassName()) - .withNewSecurityContext().withFsGroup(0L).endSecurityContext() + .withSecurityContext(spec.getSecurityContext() == null + ? null + : spec.getSecurityContext().toPodSecurityContext()) .withContainers(containers) .withInitContainers(getInitContainers(spec.getInitContainers())) .withVolumes(volumes) diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/BaseComponentSpec.java b/operator/src/main/java/com/datastax/oss/kaap/crds/BaseComponentSpec.java index dbb1af41..b422e66c 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/BaseComponentSpec.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/BaseComponentSpec.java @@ -18,6 +18,7 @@ import com.datastax.oss.kaap.crds.configs.AdditionalVolumesConfig; import com.datastax.oss.kaap.crds.configs.AntiAffinityConfig; import com.datastax.oss.kaap.crds.configs.PodDisruptionBudgetConfig; +import com.datastax.oss.kaap.crds.configs.SecurityContextConfig; import com.datastax.oss.kaap.crds.validation.ValidableSpec; import com.fasterxml.jackson.annotation.JsonPropertyDescription; import io.fabric8.kubernetes.api.model.Container; @@ -26,7 +27,6 @@ import io.fabric8.kubernetes.api.model.NodeAffinity; import io.fabric8.kubernetes.api.model.Toleration; import java.util.List; -import java.util.Map; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -45,30 +45,20 @@ public abstract class BaseComponentSpec extends ValidableSpec implements W protected String image; @JsonPropertyDescription(CRDConstants.DOC_IMAGE_PULL_POLICY) private String imagePullPolicy; - @JsonPropertyDescription(CRDConstants.DOC_NODE_SELECTORS) - protected Map nodeSelectors; @JsonPropertyDescription(CRDConstants.DOC_REPLICAS) protected Integer replicas; @JsonPropertyDescription("Pod disruption budget configuration.") private PodDisruptionBudgetConfig pdb; @JsonPropertyDescription("Mount additional volumes to the pod.") private AdditionalVolumesConfig additionalVolumes; + @JsonPropertyDescription(CRDConstants.DOC_MIN_READY_SECONDS) + private Integer minReadySeconds; @JsonPropertyDescription(CRDConstants.DOC_TOLERATIONS) private List tolerations; @JsonPropertyDescription(CRDConstants.DOC_NODE_AFFINITY) private NodeAffinity nodeAffinity; @JsonPropertyDescription(CRDConstants.DOC_ANTIAFFINITY) private AntiAffinityConfig antiAffinity; - @JsonPropertyDescription(CRDConstants.DOC_ANNOTATIONS) - private Map annotations; - @JsonPropertyDescription(CRDConstants.DOC_POD_ANNOTATIONS) - private Map podAnnotations; - @JsonPropertyDescription(CRDConstants.DOC_LABELS) - private Map labels; - @JsonPropertyDescription(CRDConstants.DOC_POD_LABELS) - private Map podLabels; - @JsonPropertyDescription(CRDConstants.DOC_POD_MATCH_LABELS) - private Map matchLabels; @JsonPropertyDescription(CRDConstants.DOC_IMAGE_PULL_SECRETS) private List imagePullSecrets; @JsonPropertyDescription(CRDConstants.DOC_CONTAINER_ENV) @@ -79,13 +69,14 @@ public abstract class BaseComponentSpec extends ValidableSpec implements W private List initContainers; @JsonPropertyDescription(CRDConstants.DOC_SERVICE_ACCOUNT_NAME) private String serviceAccountName; + @JsonPropertyDescription(CRDConstants.DOC_SECURITY_CONTEXT) + private SecurityContextConfig securityContext; @Override public void applyDefaults(GlobalSpec globalSpec) { if (image == null) { image = globalSpec.getImage(); } - nodeSelectors = ConfigUtil.mergeMaps(globalSpec.getNodeSelectors(), nodeSelectors); if (imagePullPolicy == null) { imagePullPolicy = globalSpec.getImagePullPolicy(); } @@ -96,14 +87,31 @@ public void applyPdbDefault() { PodDisruptionBudgetConfig defaultPdb = getDefaultPdb(); if (pdb != null) { pdb.setEnabled(ObjectUtils.firstNonNull(pdb.getEnabled(), defaultPdb.getEnabled())); - pdb.setMaxUnavailable(ObjectUtils.firstNonNull(pdb.getMaxUnavailable(), + if (defaultPdb.getMinAvailable() != null || pdb.getMinAvailable() != null) { + pdb.setMinAvailable(ObjectUtils.firstNonNull(pdb.getMinAvailable(), + defaultPdb.getMinAvailable())); + pdb.setMaxUnavailable(null); + } else if (defaultPdb.getMaxUnavailable() != null || pdb.getMaxUnavailable() != null) { + pdb.setMaxUnavailable(ObjectUtils.firstNonNull(pdb.getMaxUnavailable(), defaultPdb.getMaxUnavailable())); + pdb.setMinAvailable(null); + } } else { pdb = defaultPdb; } } - + /** + * Default security context used by bookkeeper, zookeeper and functionsWorker + */ + protected void applyFsGroup0IfSecurityContextMissing() { + if (securityContext == null) { + securityContext = SecurityContextConfig + .builder() + .fsGroup(0L) + .build(); + } + } protected abstract PodDisruptionBudgetConfig getDefaultPdb(); } diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/CRDConstants.java b/operator/src/main/java/com/datastax/oss/kaap/crds/CRDConstants.java index aa77414f..dbbd028e 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/CRDConstants.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/CRDConstants.java @@ -46,6 +46,7 @@ public final class CRDConstants { public static final String DOC_POD_MATCH_LABELS = "Match labels selectors to add to each pod."; public static final String DOC_CONFIG = "Configuration."; public static final String DOC_REPLICAS = "Number of desired replicas."; + public static final String DOC_MIN_READY_SECONDS = "Min seconds to wait before considering the pod as ready."; public static final String DOC_GRACE_PERIOD = "Termination grace period in seconds."; public static final String DOC_RESOURCES = "Resources requirements."; public static final String DOC_TOLERATIONS = "Pod tolerations."; @@ -59,6 +60,8 @@ public final class CRDConstants { public static final String DOC_CONTAINER_ENV = "Additional container env variables."; public static final String DOC_SIDECARS = "Sidecar containers"; public static final String DOC_INIT_CONTAINERS = "Init containers"; + public static final String DOC_SECURITY_CONTEXT = + "Subset of PodSecurityContext for basic UID, GID, and volume access control."; public static final String DOC_SERVICE_ACCOUNT_NAME = "Service account name for the resource."; public static final String DOC_SERVICE_ANNOTATIONS = "Additional annotations to add to the Service."; diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/GlobalSpec.java b/operator/src/main/java/com/datastax/oss/kaap/crds/GlobalSpec.java index 179bbdc4..fcc1874c 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/GlobalSpec.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/GlobalSpec.java @@ -27,13 +27,13 @@ import io.fabric8.kubernetes.api.model.PodDNSConfig; import io.fabric8.kubernetes.api.model.PodDNSConfigBuilder; import io.fabric8.kubernetes.api.model.PodDNSConfigOptionBuilder; +import jakarta.validation.ConstraintValidatorContext; +import jakarta.validation.constraints.NotNull; import java.util.Map; import java.util.Set; import java.util.TreeSet; import java.util.function.Supplier; import java.util.stream.Collectors; -import javax.validation.ConstraintValidatorContext; -import javax.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/autorecovery/AutorecoveryFullSpec.java b/operator/src/main/java/com/datastax/oss/kaap/crds/autorecovery/AutorecoveryFullSpec.java index 13509f2e..76d1eb17 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/autorecovery/AutorecoveryFullSpec.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/autorecovery/AutorecoveryFullSpec.java @@ -18,7 +18,7 @@ import com.datastax.oss.kaap.crds.FullSpecWithDefaults; import com.datastax.oss.kaap.crds.GlobalSpec; import com.datastax.oss.kaap.crds.validation.ValidSpec; -import javax.validation.Valid; +import jakarta.validation.Valid; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/autorecovery/AutorecoverySpec.java b/operator/src/main/java/com/datastax/oss/kaap/crds/autorecovery/AutorecoverySpec.java index 3a29a09c..45c51907 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/autorecovery/AutorecoverySpec.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/autorecovery/AutorecoverySpec.java @@ -20,6 +20,7 @@ import com.datastax.oss.kaap.crds.GlobalSpec; import com.datastax.oss.kaap.crds.WithDefaults; import com.datastax.oss.kaap.crds.configs.AntiAffinityConfig; +import com.datastax.oss.kaap.crds.configs.SecurityContextConfig; import com.datastax.oss.kaap.crds.validation.ValidableSpec; import com.fasterxml.jackson.annotation.JsonPropertyDescription; import com.fasterxml.jackson.databind.JsonNode; @@ -32,11 +33,11 @@ import io.fabric8.kubernetes.api.model.ResourceRequirements; import io.fabric8.kubernetes.api.model.ResourceRequirementsBuilder; import io.fabric8.kubernetes.api.model.Toleration; +import jakarta.validation.ConstraintValidatorContext; +import jakarta.validation.constraints.Min; import java.util.List; import java.util.Map; import java.util.function.Supplier; -import javax.validation.ConstraintValidatorContext; -import javax.validation.constraints.Min; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -66,6 +67,8 @@ public class AutorecoverySpec extends ValidableSpec implements protected Map config; @JsonPropertyDescription(CRDConstants.DOC_REPLICAS) protected Integer replicas; + @JsonPropertyDescription(CRDConstants.DOC_MIN_READY_SECONDS) + private Integer minReadySeconds; @JsonPropertyDescription(CRDConstants.DOC_ANNOTATIONS) private Map annotations; @JsonPropertyDescription(CRDConstants.DOC_POD_ANNOTATIONS) @@ -98,6 +101,8 @@ public class AutorecoverySpec extends ValidableSpec implements private List initContainers; @JsonPropertyDescription(CRDConstants.DOC_SERVICE_ACCOUNT_NAME) private String serviceAccountName; + @JsonPropertyDescription(CRDConstants.DOC_SECURITY_CONTEXT) + private SecurityContextConfig securityContext; @Override public void applyDefaults(GlobalSpec globalSpec) { diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/bastion/BastionFullSpec.java b/operator/src/main/java/com/datastax/oss/kaap/crds/bastion/BastionFullSpec.java index af4c91db..3ad43058 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/bastion/BastionFullSpec.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/bastion/BastionFullSpec.java @@ -18,7 +18,7 @@ import com.datastax.oss.kaap.crds.FullSpecWithDefaults; import com.datastax.oss.kaap.crds.GlobalSpec; import com.datastax.oss.kaap.crds.validation.ValidSpec; -import javax.validation.Valid; +import jakarta.validation.Valid; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/bastion/BastionSpec.java b/operator/src/main/java/com/datastax/oss/kaap/crds/bastion/BastionSpec.java index 054c1bc6..71b11d3d 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/bastion/BastionSpec.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/bastion/BastionSpec.java @@ -20,6 +20,7 @@ import com.datastax.oss.kaap.crds.GlobalSpec; import com.datastax.oss.kaap.crds.WithDefaults; import com.datastax.oss.kaap.crds.configs.AntiAffinityConfig; +import com.datastax.oss.kaap.crds.configs.SecurityContextConfig; import com.datastax.oss.kaap.crds.validation.ValidableSpec; import com.fasterxml.jackson.annotation.JsonPropertyDescription; import com.fasterxml.jackson.databind.JsonNode; @@ -32,11 +33,11 @@ import io.fabric8.kubernetes.api.model.ResourceRequirements; import io.fabric8.kubernetes.api.model.ResourceRequirementsBuilder; import io.fabric8.kubernetes.api.model.Toleration; +import jakarta.validation.ConstraintValidatorContext; +import jakarta.validation.constraints.Min; import java.util.List; import java.util.Map; import java.util.function.Supplier; -import javax.validation.ConstraintValidatorContext; -import javax.validation.constraints.Min; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -66,6 +67,8 @@ public class BastionSpec extends ValidableSpec implements WithDefau protected Map config; @JsonPropertyDescription(CRDConstants.DOC_REPLICAS) protected Integer replicas; + @JsonPropertyDescription(CRDConstants.DOC_MIN_READY_SECONDS) + private Integer minReadySeconds; @JsonPropertyDescription(CRDConstants.DOC_ANNOTATIONS) private Map annotations; @JsonPropertyDescription(CRDConstants.DOC_POD_ANNOTATIONS) @@ -100,6 +103,8 @@ public class BastionSpec extends ValidableSpec implements WithDefau private List initContainers; @JsonPropertyDescription(CRDConstants.DOC_SERVICE_ACCOUNT_NAME) private String serviceAccountName; + @JsonPropertyDescription(CRDConstants.DOC_SECURITY_CONTEXT) + private SecurityContextConfig securityContext; @Override public void applyDefaults(GlobalSpec globalSpec) { diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/bookkeeper/BookKeeperAutoRackConfig.java b/operator/src/main/java/com/datastax/oss/kaap/crds/bookkeeper/BookKeeperAutoRackConfig.java index ddf41119..e7e411f4 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/bookkeeper/BookKeeperAutoRackConfig.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/bookkeeper/BookKeeperAutoRackConfig.java @@ -34,7 +34,7 @@ public class BookKeeperAutoRackConfig { @JsonPropertyDescription("Enable rack configuration monitoring.") Boolean enabled; @Min(1000) - @javax.validation.constraints.Min(1000) + @jakarta.validation.constraints.Min(1000) @JsonPropertyDescription("Period for the schedule of the monitoring thread.") Long periodMs; @JsonPropertyDescription("Additional configuration for the zookeeper client.") diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/bookkeeper/BookKeeperAutoscalerSpec.java b/operator/src/main/java/com/datastax/oss/kaap/crds/bookkeeper/BookKeeperAutoscalerSpec.java index 03f590aa..5256e5b2 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/bookkeeper/BookKeeperAutoscalerSpec.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/bookkeeper/BookKeeperAutoscalerSpec.java @@ -33,7 +33,7 @@ public class BookKeeperAutoscalerSpec { Boolean enabled; @Min(1000) - @javax.validation.constraints.Min(1000) + @jakarta.validation.constraints.Min(1000) @JsonPropertyDescription("The interval in milliseconds between two consecutive autoscaling checks.") Long periodMs; @@ -52,7 +52,7 @@ public class BookKeeperAutoscalerSpec { Double diskUsageToleranceLwm; @Min(1) - @javax.validation.constraints.Min(1) + @jakarta.validation.constraints.Min(1) @JsonPropertyDescription( "Min number of writable bookies. The autoscaler will scale up if not enough writable bookies are detected" + ". For instance, if a bookie went to read-only mode, " @@ -60,23 +60,23 @@ public class BookKeeperAutoscalerSpec { Integer minWritableBookies; @Min(1) - @javax.validation.constraints.Min(1) + @jakarta.validation.constraints.Min(1) @JsonPropertyDescription("The number of bookies to add at each scale up. Default is '1'") Integer scaleUpBy; @Min(1) - @javax.validation.constraints.Min(1) + @jakarta.validation.constraints.Min(1) @JsonPropertyDescription("Max number of bookies. If the number of bookies is equals to this value, the " + "autoscaler will never scale up.") Integer scaleUpMaxLimit; @Min(1) - @javax.validation.constraints.Min(1) + @jakarta.validation.constraints.Min(1) @JsonPropertyDescription("The number of bookies to remove at each scale down. Default is '1'") Integer scaleDownBy; @Min(1) - @javax.validation.constraints.Min(1) + @jakarta.validation.constraints.Min(1) @JsonPropertyDescription( "The stabilization window is used to restrict the flapping of replica count when the metrics used for " + "scaling keep fluctuating. " diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/bookkeeper/BookKeeperFullSpec.java b/operator/src/main/java/com/datastax/oss/kaap/crds/bookkeeper/BookKeeperFullSpec.java index 6ed75914..bfd743ad 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/bookkeeper/BookKeeperFullSpec.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/bookkeeper/BookKeeperFullSpec.java @@ -18,7 +18,7 @@ import com.datastax.oss.kaap.crds.FullSpecWithDefaults; import com.datastax.oss.kaap.crds.GlobalSpec; import com.datastax.oss.kaap.crds.validation.ValidSpec; -import javax.validation.Valid; +import jakarta.validation.Valid; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/bookkeeper/BookKeeperSetSpec.java b/operator/src/main/java/com/datastax/oss/kaap/crds/bookkeeper/BookKeeperSetSpec.java index ecbb4f88..ca9fc48f 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/bookkeeper/BookKeeperSetSpec.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/bookkeeper/BookKeeperSetSpec.java @@ -31,13 +31,13 @@ import io.fabric8.kubernetes.api.model.ServicePort; import io.fabric8.kubernetes.api.model.apps.StatefulSetUpdateStrategy; import io.fabric8.kubernetes.api.model.apps.StatefulSetUpdateStrategyBuilder; +import jakarta.validation.ConstraintValidatorContext; +import jakarta.validation.Valid; +import jakarta.validation.constraints.Min; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; import java.util.function.Supplier; -import javax.validation.ConstraintValidatorContext; -import javax.validation.Valid; -import javax.validation.constraints.Min; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -127,6 +127,18 @@ public static class ServiceConfig { } + @JsonPropertyDescription(CRDConstants.DOC_ANNOTATIONS) + private Map annotations; + @JsonPropertyDescription(CRDConstants.DOC_POD_ANNOTATIONS) + private Map podAnnotations; + @JsonPropertyDescription(CRDConstants.DOC_LABELS) + private Map labels; + @JsonPropertyDescription(CRDConstants.DOC_POD_LABELS) + private Map podLabels; + @JsonPropertyDescription(CRDConstants.DOC_POD_MATCH_LABELS) + private Map matchLabels; + @JsonPropertyDescription(CRDConstants.DOC_NODE_SELECTORS) + protected Map nodeSelectors; @JsonPropertyDescription(CRDConstants.DOC_CONFIG) // workaround to generate CRD spec that accepts any type as key @SchemaFrom(type = JsonNode.class) @@ -160,6 +172,8 @@ public static class ServiceConfig { @Override public void applyDefaults(GlobalSpec globalSpec) { super.applyDefaults(globalSpec); + nodeSelectors = ConfigUtil.mergeMaps(globalSpec.getNodeSelectors(), nodeSelectors); + super.applyFsGroup0IfSecurityContextMissing(); if (replicas == null) { replicas = 3; } diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/bookkeeper/BookKeeperSpec.java b/operator/src/main/java/com/datastax/oss/kaap/crds/bookkeeper/BookKeeperSpec.java index 617aea5d..4d748d4d 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/bookkeeper/BookKeeperSpec.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/bookkeeper/BookKeeperSpec.java @@ -20,10 +20,10 @@ import com.datastax.oss.kaap.crds.GlobalSpec; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import jakarta.validation.ConstraintValidatorContext; import java.util.Arrays; import java.util.LinkedHashMap; import java.util.function.Supplier; -import javax.validation.ConstraintValidatorContext; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/broker/BrokerAutoscalerSpec.java b/operator/src/main/java/com/datastax/oss/kaap/crds/broker/BrokerAutoscalerSpec.java index 1ab8afd9..9f246ac5 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/broker/BrokerAutoscalerSpec.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/broker/BrokerAutoscalerSpec.java @@ -35,11 +35,11 @@ public class BrokerAutoscalerSpec { @JsonPropertyDescription("Enable autoscaling for brokers.") Boolean enabled; @Min(1000) - @javax.validation.constraints.Min(1000) + @jakarta.validation.constraints.Min(1000) @JsonPropertyDescription("The interval in milliseconds between two consecutive autoscaling checks.") Long periodMs; @Min(1) - @javax.validation.constraints.Min(1) + @jakarta.validation.constraints.Min(1) @JsonPropertyDescription("Min number of brokers. If the number of brokers is equals to this value, the autoscaler" + " will never scale down.") Integer min; @@ -48,28 +48,28 @@ public class BrokerAutoscalerSpec { Integer max; @Min(0) @Max(1) - @javax.validation.constraints.Min(0) - @javax.validation.constraints.Max(1) + @jakarta.validation.constraints.Min(0) + @jakarta.validation.constraints.Max(1) @JsonPropertyDescription("The threshold to trigger a scale down. The autoscaler will scale down if all the " + "brokers cpu usage is lower than this threshold. Default is '0.4'") Double lowerCpuThreshold; @Min(0) @Max(1) - @javax.validation.constraints.Min(0) - @javax.validation.constraints.Max(1) + @jakarta.validation.constraints.Min(0) + @jakarta.validation.constraints.Max(1) @JsonPropertyDescription("The threshold to trigger a scale up. The autoscaler will scale up if all the " + "brokers cpu usage is higher than this threshold. Default is '0.8'") Double higherCpuThreshold; @Min(1) - @javax.validation.constraints.Min(1) + @jakarta.validation.constraints.Min(1) @JsonPropertyDescription("The number of brokers to add at each scale up. Default is '1'") Integer scaleUpBy; @Min(1) - @javax.validation.constraints.Min(1) + @jakarta.validation.constraints.Min(1) @JsonPropertyDescription("The number of brokers to remove at each scale down. Default is '1'") Integer scaleDownBy; @Min(1) - @javax.validation.constraints.Min(1) + @jakarta.validation.constraints.Min(1) @JsonPropertyDescription("The stabilization window is used to restrict the flapping of replica count when the metrics used for scaling keep fluctuating. " + "The autoscaling algorithm uses this window to infer a previous desired state and avoid unwanted changes to workload scale." + "Default value is 5 minutes after the pod readiness.") diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/broker/BrokerFullSpec.java b/operator/src/main/java/com/datastax/oss/kaap/crds/broker/BrokerFullSpec.java index 8823727d..157b0492 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/broker/BrokerFullSpec.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/broker/BrokerFullSpec.java @@ -18,7 +18,7 @@ import com.datastax.oss.kaap.crds.FullSpecWithDefaults; import com.datastax.oss.kaap.crds.GlobalSpec; import com.datastax.oss.kaap.crds.validation.ValidSpec; -import javax.validation.Valid; +import jakarta.validation.Valid; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/broker/BrokerSetSpec.java b/operator/src/main/java/com/datastax/oss/kaap/crds/broker/BrokerSetSpec.java index 472f7d7d..2a27783d 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/broker/BrokerSetSpec.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/broker/BrokerSetSpec.java @@ -30,13 +30,13 @@ import io.fabric8.kubernetes.api.model.ResourceRequirementsBuilder; import io.fabric8.kubernetes.api.model.ServicePort; import io.fabric8.kubernetes.api.model.apps.StatefulSetUpdateStrategy; +import jakarta.validation.ConstraintValidatorContext; +import jakarta.validation.Valid; +import jakarta.validation.constraints.Min; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; import java.util.function.Supplier; -import javax.validation.ConstraintValidatorContext; -import javax.validation.Valid; -import javax.validation.constraints.Min; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -169,6 +169,18 @@ public static class TransactionCoordinatorInitJobConfig { private ResourceRequirements resources; } + @JsonPropertyDescription(CRDConstants.DOC_ANNOTATIONS) + private Map annotations; + @JsonPropertyDescription(CRDConstants.DOC_POD_ANNOTATIONS) + private Map podAnnotations; + @JsonPropertyDescription(CRDConstants.DOC_LABELS) + private Map labels; + @JsonPropertyDescription(CRDConstants.DOC_POD_LABELS) + private Map podLabels; + @JsonPropertyDescription(CRDConstants.DOC_POD_MATCH_LABELS) + private Map matchLabels; + @JsonPropertyDescription(CRDConstants.DOC_NODE_SELECTORS) + protected Map nodeSelectors; @JsonPropertyDescription(CRDConstants.DOC_CONFIG) // workaround to generate CRD spec that accepts any type as key @SchemaFrom(type = JsonNode.class) @@ -203,6 +215,7 @@ public static class TransactionCoordinatorInitJobConfig { @Override public void applyDefaults(GlobalSpec globalSpec) { super.applyDefaults(globalSpec); + nodeSelectors = ConfigUtil.mergeMaps(globalSpec.getNodeSelectors(), nodeSelectors); if (gracePeriod == null) { gracePeriod = 60; diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/broker/BrokerSpec.java b/operator/src/main/java/com/datastax/oss/kaap/crds/broker/BrokerSpec.java index d5bf5e0e..f234dbe0 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/broker/BrokerSpec.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/broker/BrokerSpec.java @@ -19,9 +19,9 @@ import com.datastax.oss.kaap.crds.GlobalSpec; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import jakarta.validation.ConstraintValidatorContext; import java.util.Arrays; import java.util.LinkedHashMap; -import javax.validation.ConstraintValidatorContext; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/cluster/PulsarClusterSpec.java b/operator/src/main/java/com/datastax/oss/kaap/crds/cluster/PulsarClusterSpec.java index e470369c..cacee678 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/cluster/PulsarClusterSpec.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/cluster/PulsarClusterSpec.java @@ -32,12 +32,12 @@ import com.datastax.oss.kaap.crds.validation.ValidSpec; import com.datastax.oss.kaap.crds.validation.ValidableSpec; import com.datastax.oss.kaap.crds.zookeeper.ZooKeeperSpec; +import jakarta.validation.ConstraintValidatorContext; +import jakarta.validation.Valid; import java.lang.reflect.Field; import java.util.Collections; import java.util.Map; import java.util.Set; -import javax.validation.ConstraintValidatorContext; -import javax.validation.Valid; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/configs/PodDisruptionBudgetConfig.java b/operator/src/main/java/com/datastax/oss/kaap/crds/configs/PodDisruptionBudgetConfig.java index 70765f74..64f4c281 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/configs/PodDisruptionBudgetConfig.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/configs/PodDisruptionBudgetConfig.java @@ -30,4 +30,6 @@ public class PodDisruptionBudgetConfig { private Boolean enabled; @JsonPropertyDescription("Number of maxUnavailable pods.") private Integer maxUnavailable; + @JsonPropertyDescription("Number of minAvailable pods.") + private Integer minAvailable; } diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/configs/SecurityContextConfig.java b/operator/src/main/java/com/datastax/oss/kaap/crds/configs/SecurityContextConfig.java new file mode 100644 index 00000000..9839f375 --- /dev/null +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/configs/SecurityContextConfig.java @@ -0,0 +1,65 @@ +/* + * Copyright DataStax, Inc. + * + * 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. + */ +package com.datastax.oss.kaap.crds.configs; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import io.fabric8.kubernetes.api.model.PodSecurityContext; +import io.fabric8.kubernetes.api.model.PodSecurityContextBuilder; +import java.util.List; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * A minimal wrapper class for Kubernetes {@link io.fabric8.kubernetes.api.model.PodSecurityContext} + * exposing only selected fields required for this CRD for security reasons. + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +@JsonInclude(JsonInclude.Include.NON_NULL) +public class SecurityContextConfig { + @JsonProperty("fsGroup") + private Long fsGroup; + @JsonProperty("fsGroupChangePolicy") + private String fsGroupChangePolicy; + @JsonProperty("runAsGroup") + private Long runAsGroup; + @JsonProperty("runAsNonRoot") + private Boolean runAsNonRoot; + @JsonProperty("runAsUser") + private Long runAsUser; + @JsonProperty("supplementalGroups") + private List supplementalGroups; + + /** + * Converts this wrapper into a full {@link PodSecurityContext} object. + * Only sets the fields that are explicitly provided. + */ + public PodSecurityContext toPodSecurityContext() { + return new PodSecurityContextBuilder() + .withFsGroup(fsGroup) + .withFsGroupChangePolicy(fsGroupChangePolicy) + .withRunAsGroup(runAsGroup) + .withRunAsNonRoot(runAsNonRoot) + .withRunAsUser(runAsUser) + .withSupplementalGroups(supplementalGroups) + .build(); + } +} diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/configs/tls/TlsConfig.java b/operator/src/main/java/com/datastax/oss/kaap/crds/configs/tls/TlsConfig.java index 6767a9e3..0fec85d7 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/configs/tls/TlsConfig.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/configs/tls/TlsConfig.java @@ -17,6 +17,7 @@ import com.fasterxml.jackson.annotation.JsonPropertyDescription; import io.fabric8.certmanager.api.model.v1.CertificatePrivateKey; +import java.util.List; import java.util.Map; import lombok.AllArgsConstructor; import lombok.Builder; @@ -24,6 +25,7 @@ import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.ToString; +import lombok.experimental.SuperBuilder; @Data @NoArgsConstructor @@ -118,47 +120,153 @@ public FunctionsWorkerTlsEntryConfig(Boolean enabled, String secretName, Boolean public static class CertProvisionerConfig { @JsonPropertyDescription("Self signed certificate provisioner configuration.") SelfSignedCertProvisionerConfig selfSigned; - + @JsonPropertyDescription("ACME certificate provisioner configuration.") + AcmeCertProvisionerConfig acme; } @Data @NoArgsConstructor @AllArgsConstructor - @Builder - public static class SelfSignedCertProvisionerConfig { + @SuperBuilder + public static class BaseCertProvisionerConfig { @JsonPropertyDescription("Generate self signed certificates for broker, proxy and functions worker.") Boolean enabled; - @JsonPropertyDescription("Include dns name in the DNS names covered by the certificate.") - Boolean includeDns; @JsonPropertyDescription("Cert-manager options for generating the private key.") CertificatePrivateKey privateKey; + @JsonPropertyDescription("Broker self signed certificate config.") + ComponentCertificateConfig broker; + @JsonPropertyDescription("Proxy self signed certificate config.") + ComponentCertificateConfig proxy; + @JsonPropertyDescription("External services self signed certificate config (e.g., admin console, grafana). " + + "The key is the service name, and the value contains generation config") + Map external; + } + + @Data + @NoArgsConstructor + @AllArgsConstructor + @SuperBuilder + @EqualsAndHashCode(callSuper = true) + @ToString(callSuper = true) + public static class SelfSignedCertProvisionerConfig extends BaseCertProvisionerConfig { + @JsonPropertyDescription("Include dns name in the DNS names covered by the certificate.") + Boolean includeDns; @JsonPropertyDescription("Generate a different certificate for each component.") Boolean perComponent; @JsonPropertyDescription("Secret where to store the root CA certificate.") String caSecretName; - @JsonPropertyDescription("Zookeeper self signed certificate config.") - SelfSignedCertificatePerComponentConfig zookeeper; + ComponentCertificateConfig zookeeper; @JsonPropertyDescription("Bookkeeper self signed certificate config.") - SelfSignedCertificatePerComponentConfig bookkeeper; - @JsonPropertyDescription("Broker self signed certificate config.") - SelfSignedCertificatePerComponentConfig broker; - @JsonPropertyDescription("Proxy self signed certificate config.") - SelfSignedCertificatePerComponentConfig proxy; + ComponentCertificateConfig bookkeeper; @JsonPropertyDescription("Functions worker self signed certificate config.") - SelfSignedCertificatePerComponentConfig functionsWorker; + ComponentCertificateConfig functionsWorker; @JsonPropertyDescription("Autorecovery self signed certificate config.") - SelfSignedCertificatePerComponentConfig autorecovery; + ComponentCertificateConfig autorecovery; + } + + @Data + @NoArgsConstructor + @AllArgsConstructor + @SuperBuilder + @EqualsAndHashCode(callSuper = true) + @ToString(callSuper = true) + public static class AcmeCertProvisionerConfig extends BaseCertProvisionerConfig { + @JsonPropertyDescription("ACME issuer configuration.") + AcmeIssuerConfig issuer; + } + + @Data + @NoArgsConstructor + @AllArgsConstructor + @Builder + public static class AcmeIssuerConfig { + @JsonPropertyDescription("Name of the Issuer resource.") + String name; + @JsonPropertyDescription("ACME server URL.") + String server; + @JsonPropertyDescription("Email used for ACME registration.") + String email; + @JsonPropertyDescription("Secret storing the ACME account private key.") + String privateKeySecretName; + @JsonPropertyDescription("ACME challenge solvers. Solvers are evaluated in order; no domain-based routing") + List solvers; + } + + @Data + @NoArgsConstructor + @AllArgsConstructor + @Builder + public static class SolverConfig { + @JsonPropertyDescription("HTTP01 solver configuration.") + Http01Config http01; + @JsonPropertyDescription("DNS01 solver configuration.") + Dns01Config dns01; + } + + @Data + @NoArgsConstructor + @AllArgsConstructor + @Builder + public static class Http01Config { + @JsonPropertyDescription("Ingress class used for HTTP01 challenge.") + String ingressClass; + } + + @Data + @NoArgsConstructor + @AllArgsConstructor + @Builder + public static class Dns01Config { + Route53Config route53; + CloudflareConfig cloudflare; + GoogleCloudDnsConfig cloudDNS; + } + + @Data + @NoArgsConstructor + @AllArgsConstructor + @Builder + public static class Route53Config { + String region; + String hostedZoneId; } @Data @NoArgsConstructor @AllArgsConstructor @Builder - public static class SelfSignedCertificatePerComponentConfig { - @JsonPropertyDescription("Generate self signed certificates for the component.") + public static class CloudflareConfig { + String email; + String apiTokenSecretName; + String apiTokenSecretKey; + } + + @Data + @NoArgsConstructor + @AllArgsConstructor + @Builder + public static class GoogleCloudDnsConfig { + String project; + String serviceAccountSecretName; + String serviceAccountSecretKey; + } + + @Data + @NoArgsConstructor + @AllArgsConstructor + @Builder + public static class ComponentCertificateConfig { + @JsonPropertyDescription("Generate certificate for the component.") Boolean generate; @JsonPropertyDescription("Cert-manager options for generating the private key.") CertificatePrivateKey privateKey; + @JsonPropertyDescription("A list of DNS names (and IP addresses) to include in the certificate's Subject " + + "Alternative Names (SANs) extension.") + List dnsNames; + @JsonPropertyDescription("The name of the Kubernetes Secret where the generated certificate " + + "and key will be stored whe perComponent is enabled. Required for external services. " + + "Internal services pick up the secret name from the tls config if not specified") + String secretName; } -} +} \ No newline at end of file diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/function/FunctionsWorkerFullSpec.java b/operator/src/main/java/com/datastax/oss/kaap/crds/function/FunctionsWorkerFullSpec.java index 3d0ad50b..485a7667 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/function/FunctionsWorkerFullSpec.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/function/FunctionsWorkerFullSpec.java @@ -18,7 +18,7 @@ import com.datastax.oss.kaap.crds.FullSpecWithDefaults; import com.datastax.oss.kaap.crds.GlobalSpec; import com.datastax.oss.kaap.crds.validation.ValidSpec; -import javax.validation.Valid; +import jakarta.validation.Valid; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/function/FunctionsWorkerSpec.java b/operator/src/main/java/com/datastax/oss/kaap/crds/function/FunctionsWorkerSpec.java index 4ebde435..60c422a4 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/function/FunctionsWorkerSpec.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/function/FunctionsWorkerSpec.java @@ -31,11 +31,11 @@ import io.fabric8.kubernetes.api.model.ServicePort; import io.fabric8.kubernetes.api.model.apps.StatefulSetUpdateStrategy; import io.fabric8.kubernetes.api.model.apps.StatefulSetUpdateStrategyBuilder; +import jakarta.validation.ConstraintValidatorContext; +import jakarta.validation.constraints.Min; import java.util.List; import java.util.Map; import java.util.function.Supplier; -import javax.validation.ConstraintValidatorContext; -import javax.validation.constraints.Min; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -116,6 +116,18 @@ public static class ServiceConfig { private String type; } + @JsonPropertyDescription(CRDConstants.DOC_ANNOTATIONS) + private Map annotations; + @JsonPropertyDescription(CRDConstants.DOC_POD_ANNOTATIONS) + private Map podAnnotations; + @JsonPropertyDescription(CRDConstants.DOC_LABELS) + private Map labels; + @JsonPropertyDescription(CRDConstants.DOC_POD_LABELS) + private Map podLabels; + @JsonPropertyDescription(CRDConstants.DOC_POD_MATCH_LABELS) + private Map matchLabels; + @JsonPropertyDescription(CRDConstants.DOC_NODE_SELECTORS) + protected Map nodeSelectors; @JsonPropertyDescription(CRDConstants.DOC_CONFIG) // workaround to generate CRD spec that accepts any type as key @SchemaFrom(type = JsonNode.class) @@ -144,6 +156,8 @@ public static class ServiceConfig { @Override public void applyDefaults(GlobalSpec globalSpec) { super.applyDefaults(globalSpec); + nodeSelectors = ConfigUtil.mergeMaps(globalSpec.getNodeSelectors(), nodeSelectors); + super.applyFsGroup0IfSecurityContextMissing(); if (replicas == null) { // disabled by default diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/proxy/ProxyFullSpec.java b/operator/src/main/java/com/datastax/oss/kaap/crds/proxy/ProxyFullSpec.java index 93cbb7c9..530f4260 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/proxy/ProxyFullSpec.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/proxy/ProxyFullSpec.java @@ -18,7 +18,7 @@ import com.datastax.oss.kaap.crds.FullSpecWithDefaults; import com.datastax.oss.kaap.crds.GlobalSpec; import com.datastax.oss.kaap.crds.validation.ValidSpec; -import javax.validation.Valid; +import jakarta.validation.Valid; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/proxy/ProxySetSpec.java b/operator/src/main/java/com/datastax/oss/kaap/crds/proxy/ProxySetSpec.java index d747ce71..81708b95 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/proxy/ProxySetSpec.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/proxy/ProxySetSpec.java @@ -31,11 +31,11 @@ import io.fabric8.kubernetes.api.model.ServicePort; import io.fabric8.kubernetes.api.model.apps.DeploymentStrategy; import io.fabric8.kubernetes.api.model.apps.DeploymentStrategyBuilder; +import jakarta.validation.ConstraintValidatorContext; +import jakarta.validation.constraints.Min; import java.util.List; import java.util.Map; import java.util.function.Supplier; -import javax.validation.ConstraintValidatorContext; -import javax.validation.constraints.Min; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -114,6 +114,8 @@ public static class ServiceConfig { private List additionalPorts; @JsonPropertyDescription("Assign a load balancer IP.") private String loadBalancerIP; + @JsonPropertyDescription("Assign a load balancer class.") + private String loadBalancerClass; @JsonPropertyDescription("Service type. Default value is 'ClusterIP'") private String type; @JsonPropertyDescription("Enable plain text connections even if TLS is enabled.") @@ -139,6 +141,18 @@ public static class WebSocketConfig { private ProbesConfig probes; } + @JsonPropertyDescription(CRDConstants.DOC_ANNOTATIONS) + private Map annotations; + @JsonPropertyDescription(CRDConstants.DOC_POD_ANNOTATIONS) + private Map podAnnotations; + @JsonPropertyDescription(CRDConstants.DOC_LABELS) + private Map labels; + @JsonPropertyDescription(CRDConstants.DOC_POD_LABELS) + private Map podLabels; + @JsonPropertyDescription(CRDConstants.DOC_POD_MATCH_LABELS) + private Map matchLabels; + @JsonPropertyDescription(CRDConstants.DOC_NODE_SELECTORS) + protected Map nodeSelectors; @JsonPropertyDescription(CRDConstants.DOC_CONFIG) // workaround to generate CRD spec that accepts any type as key @SchemaFrom(type = JsonNode.class) @@ -167,6 +181,7 @@ public static class WebSocketConfig { @Override public void applyDefaults(GlobalSpec globalSpec) { super.applyDefaults(globalSpec); + nodeSelectors = ConfigUtil.mergeMaps(globalSpec.getNodeSelectors(), nodeSelectors); if (replicas == null) { replicas = 3; } diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/proxy/ProxySpec.java b/operator/src/main/java/com/datastax/oss/kaap/crds/proxy/ProxySpec.java index e3e5c25d..564e49b8 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/proxy/ProxySpec.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/proxy/ProxySpec.java @@ -17,9 +17,9 @@ import com.datastax.oss.kaap.crds.GlobalSpec; import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import jakarta.validation.ConstraintValidatorContext; import java.util.Arrays; import java.util.LinkedHashMap; -import javax.validation.ConstraintValidatorContext; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/validation/ValidSpec.java b/operator/src/main/java/com/datastax/oss/kaap/crds/validation/ValidSpec.java index 36dfb6d0..02afa9e0 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/validation/ValidSpec.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/validation/ValidSpec.java @@ -16,9 +16,9 @@ package com.datastax.oss.kaap.crds.validation; import static java.lang.annotation.RetentionPolicy.RUNTIME; +import jakarta.validation.Constraint; +import jakarta.validation.Payload; import java.lang.annotation.Retention; -import javax.validation.Constraint; -import javax.validation.Payload; @Retention(RUNTIME) @Constraint(validatedBy = {}) diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/validation/ValidableSpec.java b/operator/src/main/java/com/datastax/oss/kaap/crds/validation/ValidableSpec.java index cb307b82..fb2705a0 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/validation/ValidableSpec.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/validation/ValidableSpec.java @@ -15,7 +15,7 @@ */ package com.datastax.oss.kaap.crds.validation; -import javax.validation.ConstraintValidator; +import jakarta.validation.ConstraintValidator; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/zookeeper/ZooKeeperFullSpec.java b/operator/src/main/java/com/datastax/oss/kaap/crds/zookeeper/ZooKeeperFullSpec.java index 468eff33..c5b7410d 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/zookeeper/ZooKeeperFullSpec.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/zookeeper/ZooKeeperFullSpec.java @@ -18,7 +18,7 @@ import com.datastax.oss.kaap.crds.FullSpecWithDefaults; import com.datastax.oss.kaap.crds.GlobalSpec; import com.datastax.oss.kaap.crds.validation.ValidSpec; -import javax.validation.Valid; +import jakarta.validation.Valid; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/operator/src/main/java/com/datastax/oss/kaap/crds/zookeeper/ZooKeeperSpec.java b/operator/src/main/java/com/datastax/oss/kaap/crds/zookeeper/ZooKeeperSpec.java index a50233b0..654d6312 100644 --- a/operator/src/main/java/com/datastax/oss/kaap/crds/zookeeper/ZooKeeperSpec.java +++ b/operator/src/main/java/com/datastax/oss/kaap/crds/zookeeper/ZooKeeperSpec.java @@ -31,11 +31,11 @@ import io.fabric8.kubernetes.api.model.ServicePort; import io.fabric8.kubernetes.api.model.apps.StatefulSetUpdateStrategy; import io.fabric8.kubernetes.api.model.apps.StatefulSetUpdateStrategyBuilder; +import jakarta.validation.ConstraintValidatorContext; +import jakarta.validation.constraints.Min; import java.util.List; import java.util.Map; import java.util.function.Supplier; -import javax.validation.ConstraintValidatorContext; -import javax.validation.constraints.Min; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -110,6 +110,18 @@ public static class MetadataInitializationJobConfig { private int timeout; } + @JsonPropertyDescription(CRDConstants.DOC_ANNOTATIONS) + private Map annotations; + @JsonPropertyDescription(CRDConstants.DOC_POD_ANNOTATIONS) + private Map podAnnotations; + @JsonPropertyDescription(CRDConstants.DOC_LABELS) + private Map labels; + @JsonPropertyDescription(CRDConstants.DOC_POD_LABELS) + private Map podLabels; + @JsonPropertyDescription(CRDConstants.DOC_POD_MATCH_LABELS) + private Map matchLabels; + @JsonPropertyDescription(CRDConstants.DOC_NODE_SELECTORS) + protected Map nodeSelectors; @JsonPropertyDescription(CRDConstants.DOC_CONFIG) // workaround to generate CRD spec that accepts any type as key @SchemaFrom(type = JsonNode.class) @@ -137,6 +149,8 @@ public static class MetadataInitializationJobConfig { @Override public void applyDefaults(GlobalSpec globalSpec) { super.applyDefaults(globalSpec); + nodeSelectors = ConfigUtil.mergeMaps(globalSpec.getNodeSelectors(), nodeSelectors); + super.applyFsGroup0IfSecurityContextMissing(); if (podManagementPolicy == null) { podManagementPolicy = "Parallel"; } diff --git a/operator/src/main/resources/application.properties b/operator/src/main/resources/application.properties index a8e0243d..4faa7947 100644 --- a/operator/src/main/resources/application.properties +++ b/operator/src/main/resources/application.properties @@ -17,6 +17,7 @@ ## quarkus options quarkus.log.console.format=%d{HH:mm:ss} %-5p [%c{3.}] (%t) %s%e%n +quarkus.operator-sdk.fail-on-version-check=true ## container-image options diff --git a/operator/src/test/java/com/datastax/oss/kaap/autoscaler/BookKeeperAutoscalerTest.java b/operator/src/test/java/com/datastax/oss/kaap/autoscaler/BookKeeperAutoscalerTest.java index aac4faea..ad4296f8 100644 --- a/operator/src/test/java/com/datastax/oss/kaap/autoscaler/BookKeeperAutoscalerTest.java +++ b/operator/src/test/java/com/datastax/oss/kaap/autoscaler/BookKeeperAutoscalerTest.java @@ -17,13 +17,13 @@ import com.datastax.oss.kaap.autoscaler.bookkeeper.BookieAdminClient; import com.datastax.oss.kaap.autoscaler.bookkeeper.PodExecBookieAdminClient; +import com.datastax.oss.kaap.common.SerializationUtil; import com.datastax.oss.kaap.controllers.bookkeeper.BookKeeperResourcesFactory; import com.datastax.oss.kaap.crds.GlobalSpec; import com.datastax.oss.kaap.crds.bookkeeper.BookKeeper; import com.datastax.oss.kaap.crds.bookkeeper.BookKeeperFullSpec; import com.datastax.oss.kaap.crds.bookkeeper.BookKeeperSetSpec; import com.datastax.oss.kaap.crds.cluster.PulsarClusterSpec; -import com.datastax.oss.kaap.mocks.MockKubernetesClient; import com.fasterxml.jackson.databind.ObjectMapper; import io.fabric8.kubernetes.api.model.ConfigMapBuilder; import io.fabric8.kubernetes.api.model.ContainerStatusBuilder; @@ -43,10 +43,11 @@ import io.fabric8.kubernetes.api.model.metrics.v1beta1.PodMetricsListBuilder; import io.fabric8.kubernetes.client.KubernetesClient; import io.fabric8.kubernetes.client.dsl.PodResource; -import io.fabric8.kubernetes.client.server.mock.KubernetesServer; +import io.fabric8.kubernetes.client.server.mock.EnableKubernetesMockClient; +import io.fabric8.kubernetes.client.server.mock.KubernetesMockServer; import io.fabric8.kubernetes.client.server.mock.OutputStreamMessage; +import io.fabric8.mockwebserver.http.RecordedRequest; import io.fabric8.mockwebserver.utils.BodyProvider; -import java.io.ByteArrayOutputStream; import java.lang.reflect.Field; import java.net.HttpURLConnection; import java.net.URLEncoder; @@ -61,192 +62,205 @@ import java.util.concurrent.atomic.AtomicLong; import java.util.function.Consumer; import java.util.function.Function; -import lombok.Builder; import lombok.Data; import lombok.SneakyThrows; -import okhttp3.mockwebserver.RecordedRequest; import org.apache.commons.lang3.tuple.Pair; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import org.mockito.Mockito; -import org.testng.Assert; -import org.testng.annotations.Test; +@EnableKubernetesMockClient(https = false) public class BookKeeperAutoscalerTest { private static final String NAMESPACE = "ns"; - @Builder(setterPrefix = "with") - public static class MockServer implements AutoCloseable { + KubernetesMockServer server; + KubernetesClient client; - @FunctionalInterface - public interface PodConsumer { - - void accept(Pod pod, PodMetrics metrics, int index); - } - - private PulsarClusterSpec pulsarClusterSpec; - private PodConsumer podConsumer; - private Consumer stsConsumer; - KubernetesServer server; - - PatchOp patchOp; - - @Data - public static class PatchOp { - String op; - String path; - Object value; - } - - @SneakyThrows - void start() { - pulsarClusterSpec.getGlobal().applyDefaults(null); - pulsarClusterSpec.getBookkeeper().applyDefaults(pulsarClusterSpec.getGlobalSpec()); - - final BookKeeper bkCr = new BookKeeper(); - bkCr.setSpec(BookKeeperFullSpec.builder() - .global(pulsarClusterSpec.getGlobal()) - .bookkeeper(pulsarClusterSpec.getBookkeeper()) - .build()); - - final String clusterSpecName = pulsarClusterSpec.getGlobal().getName(); - - server = new KubernetesServer(false); - server.before(); - - final int replicas = pulsarClusterSpec.getBookkeeper().getReplicas(); - - final BookKeeperResourcesFactory bkResourcesFactory = - new BookKeeperResourcesFactory(null, NAMESPACE, BookKeeperResourcesFactory.BOOKKEEPER_DEFAULT_SET, - pulsarClusterSpec.getBookkeeper(), - pulsarClusterSpec.getGlobal(), null); - - final Field field = bkResourcesFactory.getClass().getDeclaredField("configMap"); - field.setAccessible(true); - field.set(bkResourcesFactory, new ConfigMapBuilder().build()); - final StatefulSet sts = bkResourcesFactory.generateStatefulSet(); - sts.setStatus(new StatefulSetStatusBuilder() - .withReplicas(replicas) - .withReadyReplicas(replicas) - .withUpdatedReplicas(replicas) - .withCurrentRevision("rev") - .withUpdateRevision("rev") - .build()); - - stsConsumer.accept(sts); + @FunctionalInterface + public interface PodConsumer { + void accept(Pod pod, PodMetrics metrics, int index); + } - server.expect() - .get() - .withPath("/apis/apps/v1/namespaces/ns/statefulsets/%s-bookkeeper".formatted(clusterSpecName)) - .andReturn(HttpURLConnection.HTTP_OK, sts) - .once(); + @Data + public static class PatchOp { + String op; + String path; + Object value; + } - server.expect() - .get() - .withPath( - "/apis/kaap.oss.datastax.com/v1beta1/namespaces/ns/bookkeepers/%s-bookkeeper".formatted( - clusterSpecName)) - .andReturn(HttpURLConnection.HTTP_OK, bkCr) - .times(2); - - - List pods = new ArrayList<>(); - List podsMetrics = new ArrayList<>(); - - for (int i = 0; i < replicas; i++) { - final String podName = "%s-bookkeeper-%d".formatted(clusterSpecName, i); - final Pod pod = new PodBuilder() - .withNewMetadata() - .withName(podName) - .endMetadata() - .withSpec(sts.getSpec().getTemplate().getSpec()) - .withStatus( - new PodStatusBuilder() - .withContainerStatuses( - new ContainerStatusBuilder() - .withReady(true) - .build() - ) - // more than default (stabilizationWindowMs) - .withStartTime(Instant.now().minusSeconds(500).toString()) - .build()) - .build(); - - - final PodMetrics podMetrics = new PodMetricsBuilder() - .withNewMetadata() - .withName(podName) - .endMetadata() - .withContainers( - new ContainerMetricsBuilder() - .withUsage(Map.of("cpu", Quantity.parse("300Mi"))) - .build() - ) - .build(); - podConsumer.accept(pod, podMetrics, i); - pods.add(pod); - podsMetrics.add(podMetrics); - - server.expect() - .get() - .withPath("/api/v1/namespaces/ns/pods/%s".formatted(podName)) - .andReturn(HttpURLConnection.HTTP_OK, pod) - .always(); - } - final PodList podList = new PodListBuilder() - .withItems(pods) + @SneakyThrows + private PatchOp setupMocksAndRunAutoscaler( + String spec, + PodConsumer podConf, + Consumer stsConf, + Function> bookieInfofunc, + Consumer mockServerConfigurator) { + + final PulsarClusterSpec pulsarClusterSpec = SerializationUtil.readYaml(spec, PulsarClusterSpec.class); + pulsarClusterSpec.getGlobal().applyDefaults(null); + pulsarClusterSpec.getBookkeeper().applyDefaults(pulsarClusterSpec.getGlobalSpec()); + + final BookKeeper bkCr = new BookKeeper(); + bkCr.setSpec(BookKeeperFullSpec.builder() + .global(pulsarClusterSpec.getGlobal()) + .bookkeeper(pulsarClusterSpec.getBookkeeper()) + .build()); + + final String clusterSpecName = pulsarClusterSpec.getGlobal().getName(); + + final PatchOp[] capturedPatch = new PatchOp[1]; + + final int replicas = pulsarClusterSpec.getBookkeeper().getReplicas(); + + final BookKeeperResourcesFactory bkResourcesFactory = + new BookKeeperResourcesFactory(null, NAMESPACE, BookKeeperResourcesFactory.BOOKKEEPER_DEFAULT_SET, + pulsarClusterSpec.getBookkeeper(), + pulsarClusterSpec.getGlobal(), null); + + final Field field = bkResourcesFactory.getClass().getDeclaredField("configMap"); + field.setAccessible(true); + field.set(bkResourcesFactory, new ConfigMapBuilder().build()); + final StatefulSet sts = bkResourcesFactory.generateStatefulSet(); + sts.setStatus(new StatefulSetStatusBuilder() + .withReplicas(replicas) + .withReadyReplicas(replicas) + .withUpdatedReplicas(replicas) + .withCurrentRevision("rev") + .withUpdateRevision("rev") + .build()); + + stsConf.accept(sts); + + server.expect() + .get() + .withPath("/apis/apps/v1/namespaces/ns/statefulsets/%s-bookkeeper".formatted(clusterSpecName)) + .andReturn(HttpURLConnection.HTTP_OK, sts) + .once(); + + server.expect() + .get() + .withPath( + "/apis/kaap.oss.datastax.com/v1beta1/namespaces/ns/bookkeepers/%s-bookkeeper".formatted( + clusterSpecName)) + .andReturn(HttpURLConnection.HTTP_OK, bkCr) + .times(2); + + + List pods = new ArrayList<>(); + List podsMetrics = new ArrayList<>(); + + for (int i = 0; i < replicas; i++) { + final String podName = "%s-bookkeeper-%d".formatted(clusterSpecName, i); + final Pod pod = new PodBuilder() + .withNewMetadata() + .withName(podName) + .endMetadata() + .withSpec(sts.getSpec().getTemplate().getSpec()) + .withStatus( + new PodStatusBuilder() + .withContainerStatuses( + new ContainerStatusBuilder() + .withReady(true) + .build() + ) + // more than default (stabilizationWindowMs) + .withStartTime(Instant.now().minusSeconds(500).toString()) + .build()) .build(); - server.expect() - .get() - .withPath("/api/v1/namespaces/ns/pods?labelSelector=%s".formatted( - URLEncoder.encode( - "cluster=%s,component=bookkeeper,resource-set=bookkeeper".formatted(clusterSpecName), - StandardCharsets.UTF_8) - ) - ) - .andReturn(HttpURLConnection.HTTP_OK, podList) - .always(); - final PodMetricsList podMetricsList = new PodMetricsListBuilder() - .withItems(podsMetrics) + final PodMetrics podMetrics = new PodMetricsBuilder() + .withNewMetadata() + .withName(podName) + .endMetadata() + .withContainers( + new ContainerMetricsBuilder() + .withUsage(Map.of("cpu", Quantity.parse("300Mi"))) + .build() + ) .build(); + podConf.accept(pod, podMetrics, i); + pods.add(pod); + podsMetrics.add(podMetrics); server.expect() .get() - .withPath("/apis/metrics.k8s.io/v1beta1/namespaces/ns/pods?labelSelector=%s".formatted( - URLEncoder.encode( - "cluster=%s,component=bookkeeper,resource-set=bookkeeper".formatted(clusterSpecName), - StandardCharsets.UTF_8) - ) - ) - .andReturn(HttpURLConnection.HTTP_OK, podMetricsList) - .once(); - - server.expect() - .patch() - .withPath( - "/apis/kaap.oss.datastax.com/v1beta1/namespaces/ns/bookkeepers/%s-bookkeeper".formatted( - clusterSpecName)) - .andReply(HttpURLConnection.HTTP_OK, new BodyProvider() { - @Override - @SneakyThrows - public Object getBody(RecordedRequest recordedRequest) { - final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); - recordedRequest.getBody().copyTo(byteArrayOutputStream); - final ObjectMapper mapper = new ObjectMapper(); - patchOp = mapper.convertValue( - mapper.readValue(byteArrayOutputStream.toByteArray(), List.class).get(0), - PatchOp.class); - return null; - } - }) - .once(); + .withPath("/api/v1/namespaces/ns/pods/%s".formatted(podName)) + .andReturn(HttpURLConnection.HTTP_OK, pod) + .always(); } + final PodList podList = new PodListBuilder() + .withItems(pods) + .build(); + + server.expect() + .get() + .withPath("/api/v1/namespaces/ns/pods?labelSelector=%s".formatted( + URLEncoder.encode( + "cluster=%s,component=bookkeeper,resource-set=bookkeeper".formatted(clusterSpecName), + StandardCharsets.UTF_8) + ) + ) + .andReturn(HttpURLConnection.HTTP_OK, podList) + .always(); + + final PodMetricsList podMetricsList = new PodMetricsListBuilder() + .withItems(podsMetrics) + .build(); + + server.expect() + .get() + .withPath("/apis/metrics.k8s.io/v1beta1/namespaces/ns/pods?labelSelector=%s".formatted( + URLEncoder.encode( + "cluster=%s,component=bookkeeper,resource-set=bookkeeper".formatted(clusterSpecName), + StandardCharsets.UTF_8) + ) + ) + .andReturn(HttpURLConnection.HTTP_OK, podMetricsList) + .once(); + + server.expect() + .patch() + .withPath( + "/apis/kaap.oss.datastax.com/v1beta1/namespaces/ns/bookkeepers/%s-bookkeeper".formatted( + clusterSpecName)) + .andReply(HttpURLConnection.HTTP_OK, new BodyProvider() { + @SneakyThrows + public Object getBody(RecordedRequest recordedRequest) { + final ObjectMapper mapper = new ObjectMapper(); + PatchOp patchOp = mapper.convertValue( + mapper.readValue(recordedRequest.getBody().readByteArray(), List.class).get(0), + PatchOp.class); + capturedPatch[0] = patchOp; + return null; + } + }) + .once(); + + mockServerConfigurator.accept(server); + + BookKeeperSetAutoscaler bkAutoscaler = + new BookKeeperSetAutoscaler( + client, + NAMESPACE, + BookKeeperResourcesFactory.BOOKKEEPER_DEFAULT_SET, + pulsarClusterSpec) { + @Override + protected BookieAdminClient newBookieAdminClient(GlobalSpec currentGlobalSpec, + BookKeeperSetSpec currentBookKeeperSetSpec) { + return new MockBookieAdminClient( + client, + NAMESPACE, + pulsarClusterSpec.getGlobalSpec(), + BookKeeperResourcesFactory.BOOKKEEPER_DEFAULT_SET, + pulsarClusterSpec.getBookkeeper(), + bookieInfofunc); + } + }; + bkAutoscaler.internalRun(); - @Override - public void close() { - server.after(); - } + return capturedPatch[0]; } /** @@ -263,7 +277,7 @@ public void testRestAPIParsing() { enabled: true """; - final MockServer mockServer = runAutoscaler(spec, (pod, metrics, i) -> { + final PatchOp patchOp = runAutoscaler(spec, (pod, metrics, i) -> { }, statefulSet -> { }, null, server -> { @@ -291,7 +305,7 @@ public void testRestAPIParsing() { """; for (int i = 0; i < 3; i++) { // Bookie info - server.server.expect() + server.expect() .get() .withPath(genExpectedUrlForExecInPod("pul-bookkeeper-" + i, "curl -s http://localhost:8000/api/v1/bookie/info")) @@ -302,7 +316,7 @@ public void testRestAPIParsing() { // Bookie state String response = i == 0 ? bookieStateReadOnly : bookieStateOk; - server.server.expect() + server.expect() .get() .withPath(genExpectedUrlForExecInPod("pul-bookkeeper-" + i, "curl -s http://localhost:8000/api/v1/bookie/state")) @@ -311,7 +325,7 @@ public void testRestAPIParsing() { .done() .always(); // AR list under replicated - server.server.expect() + server.expect() .get() .withPath(genExpectedUrlForExecInPod("pul-bookkeeper-" + i, "curl -s http://localhost:8000/api/v1/autorecovery" @@ -322,7 +336,7 @@ public void testRestAPIParsing() { .always(); } }); - Assert.assertEquals(4, mockServer.patchOp.getValue()); + Assertions.assertEquals(4, patchOp.getValue()); } /** @@ -361,11 +375,11 @@ public void testNoScaleUpOrDownNeeded() { ); }; - final MockServer mockServer = runAutoscaler(spec, (pod, metrics, i) -> { + final PatchOp patchOp = runAutoscaler(spec, (pod, metrics, i) -> { }, statefulSet -> { }, bookieInfofunc); - Assert.assertNull(mockServer.patchOp); + Assertions.assertNull(patchOp); } private PodResource getMockPodResource() { @@ -423,11 +437,11 @@ public void testScaleUpReadOnlyBookie() { ); }; - final MockServer mockServer = runAutoscaler(spec, (pod, metrics, i) -> { + final PatchOp patchOp = runAutoscaler(spec, (pod, metrics, i) -> { }, statefulSet -> { }, bookieInfofunc); - Assert.assertEquals(5, mockServer.patchOp.getValue()); + Assertions.assertEquals(5, patchOp.getValue()); } /** @@ -466,11 +480,11 @@ public void testScaleUpFromZeroBookies() { ); }; - final MockServer mockServer = runAutoscaler(spec, (pod, metrics, i) -> { + final PatchOp patchOp = runAutoscaler(spec, (pod, metrics, i) -> { }, statefulSet -> { }, bookieInfofunc); - Assert.assertEquals(3, mockServer.patchOp.getValue()); + Assertions.assertEquals(3, patchOp.getValue()); } /** @@ -510,11 +524,11 @@ public void testScaleUpLowDiskSpaceBookie() { ); }; - final MockServer mockServer = runAutoscaler(spec, (pod, metrics, i) -> { + final PatchOp patchOp = runAutoscaler(spec, (pod, metrics, i) -> { }, statefulSet -> { }, bookieInfofunc); - Assert.assertEquals(4, mockServer.patchOp.getValue()); + Assertions.assertEquals(4, patchOp.getValue()); } /** @@ -562,11 +576,11 @@ public void testScaleUpLowDiskSpaceAndReadOnlyBookies() { ); }; - final MockServer mockServer = runAutoscaler(spec, (pod, metrics, i) -> { + final PatchOp patchOp = runAutoscaler(spec, (pod, metrics, i) -> { }, statefulSet -> { }, bookieInfofunc); - Assert.assertEquals(5, mockServer.patchOp.getValue()); + Assertions.assertEquals(5, patchOp.getValue()); } /** @@ -606,13 +620,13 @@ public void testScaleDownBookie() { ); }; - final MockServer mockServer = runAutoscaler(spec, (pod, metrics, i) -> { + final PatchOp patchOp = runAutoscaler(spec, (pod, metrics, i) -> { }, statefulSet -> { }, bookieInfofunc, server -> { for (int i = 0; i < 4; i++) { // AR list under replicated - server.server.expect() + server.expect() .get() .withPath(genExpectedUrlForExecInPod("pul-bookkeeper-" + i, "curl -s http://localhost:8000/api/v1/autorecovery" @@ -622,7 +636,7 @@ public void testScaleDownBookie() { .done() .always(); - server.server.expect() + server.expect() .get() .withPath(genExpectedUrlForExecInPod("pul-bookkeeper-" + i, "curl -s -X PUT -H \"Content-Type: application/json\" " @@ -635,7 +649,7 @@ public void testScaleDownBookie() { } - server.server.expect() + server.expect() .get() .withPath(genExpectedUrlForExecInPod("pul-bookkeeper-3", "bin/bookkeeper shell recover -f mockId")) @@ -644,7 +658,7 @@ public void testScaleDownBookie() { .done() .always(); - server.server.expect() + server.expect() .get() .withPath(genExpectedUrlForExecInPod("pul-bookkeeper-3", "bin/bookkeeper shell recover -f -d mockId")) @@ -653,7 +667,7 @@ public void testScaleDownBookie() { .done() .always(); - server.server.expect() + server.expect() .get() .withPath(genExpectedUrlForExecInPod("pul-bookkeeper-3", "bin/bookkeeper shell listledgers -meta -bookieid mockId")) @@ -662,7 +676,7 @@ public void testScaleDownBookie() { .done() .always(); - server.server.expect() + server.expect() .get() .withPath(genExpectedUrlForExecInPod("pul-bookkeeper-3", "mv /pulsar/data/bookkeeper/journal/current/VERSION " @@ -673,7 +687,7 @@ public void testScaleDownBookie() { .done() .always(); }); - Assert.assertEquals(3, mockServer.patchOp.getValue()); + Assertions.assertEquals(3, patchOp.getValue()); } /** @@ -714,13 +728,13 @@ public void testNotScaleDownUnderReplicatedCluster() { ); }; - final MockServer mockServer = runAutoscaler(spec, (pod, metrics, i) -> { + final PatchOp patchOp = runAutoscaler(spec, (pod, metrics, i) -> { }, statefulSet -> { }, bookieInfofunc, server -> { for (int i = 0; i < 4; i++) { final String podName = "%s-bookkeeper-%d".formatted("pul", i); - server.server.expect() + server.expect() .get() .withPath(genExpectedUrlForExecInPod(podName, "curl -s http://localhost:8000/api/v1/autorecovery" @@ -731,7 +745,7 @@ public void testNotScaleDownUnderReplicatedCluster() { .always(); } }); - Assert.assertNull(mockServer.patchOp); + Assertions.assertNull(patchOp); } /** @@ -771,11 +785,11 @@ public void testNotScaleDownReadOnlyBookie() { ); }; - final MockServer mockServer = runAutoscaler(spec, (pod, metrics, i) -> { + final PatchOp patchOp = runAutoscaler(spec, (pod, metrics, i) -> { }, statefulSet -> { }, bookieInfofunc); - Assert.assertNull(mockServer.patchOp); + Assertions.assertNull(patchOp); } /** @@ -815,12 +829,12 @@ public void testNotScaleDownFullBookie() { ); }; - final MockServer mockServer = runAutoscaler(spec, (pod, metrics, i) -> { + final PatchOp patchOp = runAutoscaler(spec, (pod, metrics, i) -> { }, statefulSet -> { }, bookieInfofunc); - Assert.assertNull(mockServer.patchOp); + Assertions.assertNull(patchOp); } @Test @@ -855,12 +869,12 @@ public void testStsNotReady() { ); }; - final MockServer mockServer = runAutoscaler(spec, (pod, metrics, i) -> { + final PatchOp patchOp = runAutoscaler(spec, (pod, metrics, i) -> { }, statefulSet -> { statefulSet.getStatus().setReadyReplicas(2); }, bookieInfofunc); - Assert.assertNull(mockServer.patchOp); + Assertions.assertNull(patchOp); } @Test @@ -895,53 +909,32 @@ public void testPodJustStarted() { ); }; - final MockServer mockServer = runAutoscaler(spec, (pod, metrics, i) -> { + final PatchOp patchOp = runAutoscaler(spec, (pod, metrics, i) -> { if (i == 2) { pod.getStatus().setStartTime(Instant.now().minusSeconds(3).toString()); } }, statefulSet -> { }, bookieInfofunc); - Assert.assertNull(mockServer.patchOp); + Assertions.assertNull(patchOp); } - private MockServer runAutoscaler(String spec, MockServer.PodConsumer podConf, Consumer stsConf, - Function> bookieInfofunc) { + private PatchOp runAutoscaler(String spec, PodConsumer podConf, Consumer stsConf, + Function> bookieInfofunc) { return runAutoscaler(spec, podConf, stsConf, bookieInfofunc, x -> { }); } - private MockServer runAutoscaler(String spec, MockServer.PodConsumer podConf, Consumer stsConf, - Function> bookieInfofunc, - Consumer serverAfter) { - final PulsarClusterSpec pulsarClusterSpec = MockKubernetesClient.readYaml(spec, PulsarClusterSpec.class); - try (final MockServer server = MockServer.builder() - .withPulsarClusterSpec(pulsarClusterSpec) - .withPodConsumer(podConf) - .withStsConsumer(stsConf) - .build()) { - server.start(); - serverAfter.accept(server); - - BookKeeperSetAutoscaler bkAutoscaler = - new BookKeeperSetAutoscaler(server.server.getClient(), NAMESPACE, - BookKeeperResourcesFactory.BOOKKEEPER_DEFAULT_SET, pulsarClusterSpec) { - @Override - protected BookieAdminClient newBookieAdminClient(GlobalSpec currentGlobalSpec, - BookKeeperSetSpec currentBookKeeperSetSpec) { - return new MockBookieAdminClient(server.server.getClient(), NAMESPACE, - pulsarClusterSpec.getGlobalSpec(), - BookKeeperResourcesFactory.BOOKKEEPER_DEFAULT_SET, - pulsarClusterSpec.getBookkeeper(), - bookieInfofunc); - } - }; - bkAutoscaler.internalRun(); - return server; + private PatchOp runAutoscaler(String spec, PodConsumer podConf, Consumer stsConf, + Function> bookieInfofunc, + Consumer mockServerConfigurator) { + try { + return setupMocksAndRunAutoscaler(spec, podConf, stsConf, bookieInfofunc, mockServerConfigurator); + } catch (Exception e) { + throw new RuntimeException(e); } - } private static class MockBookieAdminClient extends PodExecBookieAdminClient { @@ -997,4 +990,4 @@ private static String genExpectedUrlForExecInPod(String podName, String cmd) { + URLEncoder.encode(cmd, StandardCharsets.UTF_8).replace("+", "%20") + "&container=pul-bookkeeper&stdout=true&stderr=true"; } -} +} \ No newline at end of file diff --git a/operator/src/test/java/com/datastax/oss/kaap/autoscaler/BrokerAutoscalerTest.java b/operator/src/test/java/com/datastax/oss/kaap/autoscaler/BrokerAutoscalerTest.java index 81725a1b..2f9fa95a 100644 --- a/operator/src/test/java/com/datastax/oss/kaap/autoscaler/BrokerAutoscalerTest.java +++ b/operator/src/test/java/com/datastax/oss/kaap/autoscaler/BrokerAutoscalerTest.java @@ -15,11 +15,11 @@ */ package com.datastax.oss.kaap.autoscaler; +import com.datastax.oss.kaap.common.SerializationUtil; import com.datastax.oss.kaap.controllers.broker.BrokerResourcesFactory; import com.datastax.oss.kaap.crds.broker.Broker; import com.datastax.oss.kaap.crds.broker.BrokerFullSpec; import com.datastax.oss.kaap.crds.cluster.PulsarClusterSpec; -import com.datastax.oss.kaap.mocks.MockKubernetesClient; import com.fasterxml.jackson.databind.ObjectMapper; import io.fabric8.kubernetes.api.model.ConfigMapBuilder; import io.fabric8.kubernetes.api.model.ContainerStatusBuilder; @@ -36,9 +36,11 @@ import io.fabric8.kubernetes.api.model.metrics.v1beta1.PodMetricsBuilder; import io.fabric8.kubernetes.api.model.metrics.v1beta1.PodMetricsList; import io.fabric8.kubernetes.api.model.metrics.v1beta1.PodMetricsListBuilder; -import io.fabric8.kubernetes.client.server.mock.KubernetesServer; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.fabric8.kubernetes.client.server.mock.EnableKubernetesMockClient; +import io.fabric8.kubernetes.client.server.mock.KubernetesMockServer; +import io.fabric8.mockwebserver.http.RecordedRequest; import io.fabric8.mockwebserver.utils.BodyProvider; -import java.io.ByteArrayOutputStream; import java.lang.reflect.Field; import java.net.HttpURLConnection; import java.net.URLEncoder; @@ -48,187 +50,182 @@ import java.util.List; import java.util.Map; import java.util.function.Consumer; -import lombok.Builder; import lombok.Data; import lombok.SneakyThrows; -import okhttp3.mockwebserver.RecordedRequest; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +@EnableKubernetesMockClient(https = false) public class BrokerAutoscalerTest { private static final String NAMESPACE = "ns"; + KubernetesMockServer server; + KubernetesClient client; - @Builder(setterPrefix = "with") - public static class MockServer implements AutoCloseable { + @FunctionalInterface + public interface PodConsumer { - @FunctionalInterface - public interface PodConsumer { - - void accept(Pod pod, PodMetrics metrics, int index); - } - - private PulsarClusterSpec pulsarClusterSpec; - private PodConsumer podConsumer; - private Consumer stsConsumer; - KubernetesServer server; - - PatchOp patchOp; - - @Data - public static class PatchOp { - String op; - String path; - Object value; - } - - @SneakyThrows - void start() { - pulsarClusterSpec.getGlobal().applyDefaults(null); - pulsarClusterSpec.getBroker().applyDefaults(pulsarClusterSpec.getGlobalSpec()); - - final Broker brokerCr = new Broker(); - brokerCr.setSpec(BrokerFullSpec.builder() - .global(pulsarClusterSpec.getGlobal()) - .broker(pulsarClusterSpec.getBroker()) - .build()); - - final String clusterSpecName = pulsarClusterSpec.getGlobal().getName(); - - server = new KubernetesServer(false); - server.before(); - - final int replicas = pulsarClusterSpec.getBroker().getReplicas(); - - final BrokerResourcesFactory brokerResourcesFactory = - new BrokerResourcesFactory(null, NAMESPACE, BrokerResourcesFactory.BROKER_DEFAULT_SET, - pulsarClusterSpec.getBroker(), - pulsarClusterSpec.getGlobal(), null); + void accept(Pod pod, PodMetrics metrics, int index); + } - final Field field = brokerResourcesFactory.getClass().getDeclaredField("configMap"); - field.setAccessible(true); - field.set(brokerResourcesFactory, new ConfigMapBuilder().build()); - final StatefulSet sts = brokerResourcesFactory.generateStatefulSet(); - sts.setStatus(new StatefulSetStatusBuilder() - .withReplicas(replicas) - .withReadyReplicas(replicas) - .withUpdatedReplicas(replicas) - .withCurrentRevision("rev") - .withUpdateRevision("rev") - .build()); + @Data + public static class PatchOp { + String op; + String path; + Object value; + } - stsConsumer.accept(sts); + @SneakyThrows + private PatchOp setupMocksAndRunAutoscaler( + String spec, + PodConsumer podConf, + Consumer stsConf) { + + final PulsarClusterSpec pulsarClusterSpec = SerializationUtil.readYaml(spec, PulsarClusterSpec.class); + pulsarClusterSpec.getGlobal().applyDefaults(null); + pulsarClusterSpec.getBroker().applyDefaults(pulsarClusterSpec.getGlobalSpec()); + + final Broker brokerCr = new Broker(); + brokerCr.setSpec(BrokerFullSpec.builder() + .global(pulsarClusterSpec.getGlobal()) + .broker(pulsarClusterSpec.getBroker()) + .build()); + + final String clusterSpecName = pulsarClusterSpec.getGlobal().getName(); + + final PatchOp[] capturedPatch = new PatchOp[1]; + + final int replicas = pulsarClusterSpec.getBroker().getReplicas(); + + final BrokerResourcesFactory brokerResourcesFactory = + new BrokerResourcesFactory(null, NAMESPACE, BrokerResourcesFactory.BROKER_DEFAULT_SET, + pulsarClusterSpec.getBroker(), + pulsarClusterSpec.getGlobal(), null); + + final Field field = brokerResourcesFactory.getClass().getDeclaredField("configMap"); + field.setAccessible(true); + field.set(brokerResourcesFactory, new ConfigMapBuilder().build()); + final StatefulSet sts = brokerResourcesFactory.generateStatefulSet(); + sts.setStatus(new StatefulSetStatusBuilder() + .withReplicas(replicas) + .withReadyReplicas(replicas) + .withUpdatedReplicas(replicas) + .withCurrentRevision("rev") + .withUpdateRevision("rev") + .build()); + + stsConf.accept(sts); + + server.expect() + .get() + .withPath("/apis/apps/v1/namespaces/ns/statefulsets/%s-broker".formatted(clusterSpecName)) + .andReturn(HttpURLConnection.HTTP_OK, sts) + .once(); + + server.expect() + .get() + .withPath("/apis/kaap.oss.datastax.com/v1beta1/namespaces/ns/brokers/%s-broker".formatted( + clusterSpecName)) + .andReturn(HttpURLConnection.HTTP_OK, brokerCr) + .times(2); + + + List pods = new ArrayList<>(); + List podsMetrics = new ArrayList<>(); + + for (int i = 0; i < replicas; i++) { + final String podName = "%s-broker-%d".formatted(clusterSpecName, i); + final Pod pod = new PodBuilder() + .withNewMetadata() + .withName(podName) + .endMetadata() + .withSpec(sts.getSpec().getTemplate().getSpec()) + .withStatus( + new PodStatusBuilder() + .withContainerStatuses( + new ContainerStatusBuilder() + .withReady(true) + .build() + ) + // more than default (stabilizationWindowMs) + .withStartTime(Instant.now().minusSeconds(500).toString()) + .build()) + .build(); - server.expect() - .get() - .withPath("/apis/apps/v1/namespaces/ns/statefulsets/%s-broker".formatted(clusterSpecName)) - .andReturn(HttpURLConnection.HTTP_OK, sts) - .once(); - server.expect() - .get() - .withPath("/apis/kaap.oss.datastax.com/v1beta1/namespaces/ns/brokers/%s-broker".formatted( - clusterSpecName)) - .andReturn(HttpURLConnection.HTTP_OK, brokerCr) - .times(2); - - - List pods = new ArrayList<>(); - List podsMetrics = new ArrayList<>(); - - for (int i = 0; i < replicas; i++) { - final String podName = "%s-broker-%d".formatted(clusterSpecName, i); - final Pod pod = new PodBuilder() - .withNewMetadata() - .withName(podName) - .endMetadata() - .withSpec(sts.getSpec().getTemplate().getSpec()) - .withStatus( - new PodStatusBuilder() - .withContainerStatuses( - new ContainerStatusBuilder() - .withReady(true) - .build() - ) - // more than default (stabilizationWindowMs) - .withStartTime(Instant.now().minusSeconds(500).toString()) - .build()) - .build(); - - - final PodMetrics podMetrics = new PodMetricsBuilder() - .withNewMetadata() - .withName(podName) - .endMetadata() - .withContainers( - new ContainerMetricsBuilder() - .withUsage(Map.of("cpu", Quantity.parse("300Mi"))) - .build() - ) - .build(); - podConsumer.accept(pod, podMetrics, i); - pods.add(pod); - podsMetrics.add(podMetrics); - - server.expect() - .get() - .withPath("/api/v1/namespaces/ns/pods/%s".formatted(podName)) - .andReturn(HttpURLConnection.HTTP_OK, pod) - .once(); - } - final PodList podList = new PodListBuilder() - .withItems(pods) - .build(); - server.expect() - .get() - .withPath("/api/v1/namespaces/ns/pods?labelSelector=%s".formatted( - URLEncoder.encode("cluster=%s,component=broker,resource-set=broker" - .formatted(clusterSpecName), - StandardCharsets.UTF_8) - ) + final PodMetrics podMetrics = new PodMetricsBuilder() + .withNewMetadata() + .withName(podName) + .endMetadata() + .withContainers( + new ContainerMetricsBuilder() + .withUsage(Map.of("cpu", Quantity.parse("300Mi"))) + .build() ) - .andReturn(HttpURLConnection.HTTP_OK, podList) - .once(); - - final PodMetricsList podMetricsList = new PodMetricsListBuilder() - .withItems(podsMetrics) .build(); + podConf.accept(pod, podMetrics, i); + pods.add(pod); + podsMetrics.add(podMetrics); server.expect() .get() - .withPath("/apis/metrics.k8s.io/v1beta1/namespaces/ns/pods?labelSelector=%s".formatted( - URLEncoder.encode("cluster=%s,component=broker,resource-set=broker".formatted(clusterSpecName), - StandardCharsets.UTF_8) - ) - ) - .andReturn(HttpURLConnection.HTTP_OK, podMetricsList) - .once(); - - server.expect() - .patch() - .withPath("/apis/kaap.oss.datastax.com/v1beta1/namespaces/ns/brokers/%s-broker".formatted( - clusterSpecName)) - .andReply(HttpURLConnection.HTTP_OK, new BodyProvider() { - @Override - @SneakyThrows - public Object getBody(RecordedRequest recordedRequest) { - final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); - recordedRequest.getBody().copyTo(byteArrayOutputStream); - final ObjectMapper mapper = new ObjectMapper(); - patchOp = mapper.convertValue( - mapper.readValue(byteArrayOutputStream.toByteArray(), List.class).get(0), - PatchOp.class); - return null; - } - }) + .withPath("/api/v1/namespaces/ns/pods/%s".formatted(podName)) + .andReturn(HttpURLConnection.HTTP_OK, pod) .once(); } - - @Override - public void close() { - server.after(); - } + final PodList podList = new PodListBuilder() + .withItems(pods) + .build(); + server.expect() + .get() + .withPath("/api/v1/namespaces/ns/pods?labelSelector=%s".formatted( + URLEncoder.encode("cluster=%s,component=broker,resource-set=broker" + .formatted(clusterSpecName), + StandardCharsets.UTF_8) + ) + ) + .andReturn(HttpURLConnection.HTTP_OK, podList) + .once(); + + final PodMetricsList podMetricsList = new PodMetricsListBuilder() + .withItems(podsMetrics) + .build(); + + server.expect() + .get() + .withPath("/apis/metrics.k8s.io/v1beta1/namespaces/ns/pods?labelSelector=%s".formatted( + URLEncoder.encode("cluster=%s,component=broker,resource-set=broker".formatted(clusterSpecName), + StandardCharsets.UTF_8) + ) + ) + .andReturn(HttpURLConnection.HTTP_OK, podMetricsList) + .once(); + + server.expect() + .patch() + .withPath("/apis/kaap.oss.datastax.com/v1beta1/namespaces/ns/brokers/%s-broker".formatted( + clusterSpecName)) + .andReply(HttpURLConnection.HTTP_OK, new BodyProvider() { + @Override + @SneakyThrows + public Object getBody(RecordedRequest recordedRequest) { + final ObjectMapper mapper = new ObjectMapper(); + PatchOp patchOp = mapper.convertValue( + mapper.readValue(recordedRequest.getBody().readByteArray(), List.class).get(0), + PatchOp.class); + capturedPatch[0] = patchOp; + return null; + } + }) + .once(); + + final BrokerSetAutoscaler brokerAutoscaler = + new BrokerSetAutoscaler(client, NAMESPACE, + BrokerResourcesFactory.BROKER_DEFAULT_SET, pulsarClusterSpec); + brokerAutoscaler.internalRun(); + + return capturedPatch[0]; } @Test @@ -245,11 +242,11 @@ public void testScaleUp() { requests: cpu: 1 """; - final MockServer mockServer = runAutoscaler(spec, (pod, metrics, i) -> { + final PatchOp patchOp = runAutoscaler(spec, (pod, metrics, i) -> { metrics.getContainers().get(0).getUsage().put("cpu", Quantity.parse("0.9")); }, statefulSet -> { }); - Assert.assertEquals(4, mockServer.patchOp.getValue()); + Assertions.assertEquals(4, patchOp.getValue()); } @Test @@ -266,11 +263,11 @@ public void testScaleDown() { requests: cpu: 1 """; - final MockServer mockServer = runAutoscaler(spec, (pod, metrics, i) -> { + final PatchOp patchOp = runAutoscaler(spec, (pod, metrics, i) -> { metrics.getContainers().get(0).getUsage().put("cpu", Quantity.parse("0.1")); }, statefulSet -> { }); - Assert.assertEquals(2, mockServer.patchOp.getValue()); + Assertions.assertEquals(2, patchOp.getValue()); } @Test @@ -287,12 +284,12 @@ public void testStsNotReady() { requests: cpu: 1 """; - final MockServer mockServer = runAutoscaler(spec, (pod, metrics, i) -> { + final PatchOp patchOp = runAutoscaler(spec, (pod, metrics, i) -> { metrics.getContainers().get(0).getUsage().put("cpu", Quantity.parse("0.1")); }, statefulSet -> { statefulSet.getStatus().setReadyReplicas(2); }); - Assert.assertNull(mockServer.patchOp); + Assertions.assertNull(patchOp); } @Test @@ -309,14 +306,14 @@ public void testPodJustStarted() { requests: cpu: 1 """; - final MockServer mockServer = runAutoscaler(spec, (pod, metrics, i) -> { + final PatchOp patchOp = runAutoscaler(spec, (pod, metrics, i) -> { metrics.getContainers().get(0).getUsage().put("cpu", Quantity.parse("0.1")); if (i == 2) { pod.getStatus().setStartTime(Instant.now().minusSeconds(3).toString()); } }, statefulSet -> { }); - Assert.assertNull(mockServer.patchOp); + Assertions.assertNull(patchOp); } @@ -334,28 +331,18 @@ public void testDoNotScaleToZero() { requests: cpu: 1 """; - final MockServer mockServer = runAutoscaler(spec, (pod, metrics, i) -> { + final PatchOp patchOp = runAutoscaler(spec, (pod, metrics, i) -> { metrics.getContainers().get(0).getUsage().put("cpu", Quantity.parse("0.1")); }, statefulSet -> { }); - Assert.assertNull(mockServer.patchOp); + Assertions.assertNull(patchOp); } - private MockServer runAutoscaler(String spec, MockServer.PodConsumer podConf, Consumer stsConf) { - final PulsarClusterSpec pulsarClusterSpec = MockKubernetesClient.readYaml(spec, PulsarClusterSpec.class); - try (final MockServer server = MockServer.builder() - .withPulsarClusterSpec(pulsarClusterSpec) - .withPodConsumer(podConf) - .withStsConsumer(stsConf) - .build();) { - server.start(); - - final BrokerSetAutoscaler brokerAutoscaler = - new BrokerSetAutoscaler(server.server.getClient(), NAMESPACE, - BrokerResourcesFactory.BROKER_DEFAULT_SET, pulsarClusterSpec); - brokerAutoscaler.internalRun(); - return server; + private PatchOp runAutoscaler(String spec, PodConsumer podConf, Consumer stsConf) { + try { + return setupMocksAndRunAutoscaler(spec, podConf, stsConf); + } catch (Exception e) { + throw new RuntimeException(e); } - } -} +} \ No newline at end of file diff --git a/operator/src/test/java/com/datastax/oss/kaap/autoscaler/broker/LoadReportResourceUsageSourceTest.java b/operator/src/test/java/com/datastax/oss/kaap/autoscaler/broker/LoadReportResourceUsageSourceTest.java index bb6c0367..c26ff6b9 100644 --- a/operator/src/test/java/com/datastax/oss/kaap/autoscaler/broker/LoadReportResourceUsageSourceTest.java +++ b/operator/src/test/java/com/datastax/oss/kaap/autoscaler/broker/LoadReportResourceUsageSourceTest.java @@ -15,18 +15,20 @@ */ package com.datastax.oss.kaap.autoscaler.broker; +import com.datastax.oss.kaap.common.SerializationUtil; import com.datastax.oss.kaap.controllers.broker.BrokerResourcesFactory; import com.datastax.oss.kaap.crds.broker.Broker; import com.datastax.oss.kaap.crds.broker.BrokerFullSpec; import com.datastax.oss.kaap.crds.cluster.PulsarClusterSpec; -import com.datastax.oss.kaap.mocks.MockKubernetesClient; import io.fabric8.kubernetes.api.model.ConfigMapBuilder; import io.fabric8.kubernetes.api.model.Pod; import io.fabric8.kubernetes.api.model.PodBuilder; import io.fabric8.kubernetes.api.model.PodList; import io.fabric8.kubernetes.api.model.PodListBuilder; import io.fabric8.kubernetes.api.model.apps.StatefulSet; -import io.fabric8.kubernetes.client.server.mock.KubernetesServer; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.fabric8.kubernetes.client.server.mock.EnableKubernetesMockClient; +import io.fabric8.kubernetes.client.server.mock.KubernetesMockServer; import io.fabric8.kubernetes.client.server.mock.OutputStreamMessage; import java.lang.reflect.Field; import java.net.HttpURLConnection; @@ -36,92 +38,87 @@ import java.util.List; import java.util.Map; import java.util.concurrent.ExecutionException; -import java.util.function.BiConsumer; -import lombok.Builder; import lombok.SneakyThrows; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; -public class LoadReportResourceUsageSourceTest { - @Builder(setterPrefix = "with") - public static class MockServer implements AutoCloseable { +@EnableKubernetesMockClient(https = false) +public class LoadReportResourceUsageSourceTest { - private PulsarClusterSpec pulsarClusterSpec; - private BiConsumer podConsumer; + KubernetesMockServer server; + KubernetesClient client; - KubernetesServer server; + @FunctionalInterface + public interface PodConsumer { - @SneakyThrows - void start() { - pulsarClusterSpec.getGlobal().applyDefaults(null); - pulsarClusterSpec.getBroker().applyDefaults(pulsarClusterSpec.getGlobalSpec()); + void accept(Pod pod, KubernetesMockServer server); + } - final Broker brokerCr = new Broker(); - brokerCr.setSpec(BrokerFullSpec.builder() - .global(pulsarClusterSpec.getGlobal()) - .broker(pulsarClusterSpec.getBroker()) - .build()); + @SneakyThrows + private void setupMocks( + PulsarClusterSpec pulsarClusterSpec, + PodConsumer podConsumer) { - final String clusterSpecName = pulsarClusterSpec.getGlobal().getName(); + pulsarClusterSpec.getGlobal().applyDefaults(null); + pulsarClusterSpec.getBroker().applyDefaults(pulsarClusterSpec.getGlobalSpec()); - server = new KubernetesServer(false); - server.before(); + final Broker brokerCr = new Broker(); + brokerCr.setSpec(BrokerFullSpec.builder() + .global(pulsarClusterSpec.getGlobal()) + .broker(pulsarClusterSpec.getBroker()) + .build()); - List pods = new ArrayList<>(); + final String clusterSpecName = pulsarClusterSpec.getGlobal().getName(); - BrokerResourcesFactory brokerResourcesFactory = - new BrokerResourcesFactory(null, "ns", BrokerResourcesFactory.BROKER_DEFAULT_SET, - pulsarClusterSpec.getBroker(), - pulsarClusterSpec.getGlobal(), null); - final Field field = brokerResourcesFactory.getClass().getDeclaredField("configMap"); - field.setAccessible(true); - field.set(brokerResourcesFactory, new ConfigMapBuilder().build()); - final StatefulSet sts = brokerResourcesFactory.generateStatefulSet(); + List pods = new ArrayList<>(); + BrokerResourcesFactory brokerResourcesFactory = + new BrokerResourcesFactory(null, "ns", BrokerResourcesFactory.BROKER_DEFAULT_SET, + pulsarClusterSpec.getBroker(), + pulsarClusterSpec.getGlobal(), null); + final Field field = brokerResourcesFactory.getClass().getDeclaredField("configMap"); + field.setAccessible(true); + field.set(brokerResourcesFactory, new ConfigMapBuilder().build()); + final StatefulSet sts = brokerResourcesFactory.generateStatefulSet(); - final Integer replicas = pulsarClusterSpec.getBroker().getReplicas(); - for (int i = 0; i < replicas; i++) { - final String podName = "%s-broker-%d".formatted(clusterSpecName, i); - final Pod pod = new PodBuilder() - .withNewMetadata() - .withName(podName) - .endMetadata() - .withSpec(sts.getSpec().getTemplate().getSpec()) - .build(); - podConsumer.accept(pod, this); - pods.add(pod); - server.expect() - .get() - .withPath("/api/v1/namespaces/ns/pods/%s".formatted(podName)) - .andReturn(HttpURLConnection.HTTP_OK, pod) - .once(); - } + final Integer replicas = pulsarClusterSpec.getBroker().getReplicas(); - final PodList podList = new PodListBuilder() - .withItems(pods) + for (int i = 0; i < replicas; i++) { + final String podName = "%s-broker-%d".formatted(clusterSpecName, i); + final Pod pod = new PodBuilder() + .withNewMetadata() + .withName(podName) + .endMetadata() + .withSpec(sts.getSpec().getTemplate().getSpec()) .build(); + podConsumer.accept(pod, server); + pods.add(pod); server.expect() .get() - .withPath("/api/v1/namespaces/ns/pods?labelSelector=%s".formatted( - URLEncoder.encode("app=pulsar" - .formatted(clusterSpecName), - StandardCharsets.UTF_8) - ) - ) - .andReturn(HttpURLConnection.HTTP_OK, podList) + .withPath("/api/v1/namespaces/ns/pods/%s".formatted(podName)) + .andReturn(HttpURLConnection.HTTP_OK, pod) .once(); - } - @Override - public void close() { - server.after(); - } + final PodList podList = new PodListBuilder() + .withItems(pods) + .build(); + server.expect() + .get() + .withPath("/api/v1/namespaces/ns/pods?labelSelector=%s".formatted( + URLEncoder.encode("app=pulsar" + .formatted(clusterSpecName), + StandardCharsets.UTF_8) + ) + ) + .andReturn(HttpURLConnection.HTTP_OK, podList) + .once(); + } - @Test(expectedExceptions = ExecutionException.class) + @Test public void testLastFailed() throws Exception { final String spec = """ global: @@ -132,32 +129,44 @@ public void testLastFailed() throws Exception { enabled: true """; - final List brokersResourceUsages = - createLoadReportResourceUsageSource(spec, (pod, server) -> { - final String[] split = pod.getMetadata().getName().split("-"); - int replicaCount = Integer.parseInt(split[split.length - 1]); - final String podExec = genExpectedUrlForExecInPod(pod.getMetadata().getName(), - "curl http://localhost:8080/admin/v2/broker-stats/load-report/"); - if (replicaCount == 0) { - - server.server.expect() - .get() - .withPath(podExec) - .andUpgradeToWebSocket() - .open(new OutputStreamMessage(""" - { - "cpu": { - "usage": %f, - "limit": 8.0 - }, - "other": {} - } - """.formatted(2.33 * (replicaCount + 1)))) - .done() - .always(); - } - - }); + final PulsarClusterSpec pulsarClusterSpec = SerializationUtil.readYaml(spec, PulsarClusterSpec.class); + + setupMocks(pulsarClusterSpec, (pod, mockServer) -> { + final String[] split = pod.getMetadata().getName().split("-"); + int replicaCount = Integer.parseInt(split[split.length - 1]); + final String podExec = genExpectedUrlForExecInPod(pod.getMetadata().getName(), + "curl http://localhost:8080/admin/v2/broker-stats/load-report/"); + if (replicaCount == 0) { + + mockServer.expect() + .get() + .withPath(podExec) + .andUpgradeToWebSocket() + .open(new OutputStreamMessage(""" + { + "cpu": { + "usage": %f, + "limit": 8.0 + }, + "other": {} + } + """.formatted(2.33 * (replicaCount + 1)))) + .done() + .always(); + } + + }); + + final LoadReportResourceUsageSource source = + new LoadReportResourceUsageSource(client, "ns", Map.of("app", "pulsar"), + BrokerResourcesFactory.BROKER_DEFAULT_SET, + pulsarClusterSpec.getBroker(), + pulsarClusterSpec.getGlobalSpec()); + + // FIX: The original test expected ExecutionException, so we use assertThrows + Assertions.assertThrows(ExecutionException.class, () -> { + source.getBrokersResourceUsages(); + }); } @Test @@ -171,57 +180,60 @@ public void testOk() throws Exception { enabled: true """; - final List brokersResourceUsages = - createLoadReportResourceUsageSource(spec, (pod, server) -> { - final String[] split = pod.getMetadata().getName().split("-"); - int replicaCount = Integer.parseInt(split[split.length - 1]); - final String podExec = genExpectedUrlForExecInPod(pod.getMetadata().getName(), - "curl http://localhost:8080/admin/v2/broker-stats/load-report/"); - - server.server.expect() - .get() - .withPath(podExec) - .andUpgradeToWebSocket() - .open(new OutputStreamMessage(""" - { - "cpu": { - "usage": %f, - "limit": 8.0 - }, - "other": {} - } - """.formatted(2.33 * (replicaCount + 1)))) - .done() - .always(); - - }); - - Assert.assertEquals(brokersResourceUsages.size(), 2); - Assert.assertEquals(brokersResourceUsages.get(0).getPod(), "pul-broker-0"); - Assert.assertEquals(brokersResourceUsages.get(0).getPercentCpu() + "", "0.29"); - Assert.assertEquals(brokersResourceUsages.get(1).getPod(), "pul-broker-1"); - Assert.assertEquals(brokersResourceUsages.get(1).getPercentCpu() + "", "0.58"); + final PulsarClusterSpec pulsarClusterSpec = SerializationUtil.readYaml(spec, PulsarClusterSpec.class); + + setupMocks(pulsarClusterSpec, (pod, mockServer) -> { + final String[] split = pod.getMetadata().getName().split("-"); + int replicaCount = Integer.parseInt(split[split.length - 1]); + final String podExec = genExpectedUrlForExecInPod(pod.getMetadata().getName(), + "curl http://localhost:8080/admin/v2/broker-stats/load-report/"); + + mockServer.expect() + .get() + .withPath(podExec) + .andUpgradeToWebSocket() + .open(new OutputStreamMessage(""" + { + "cpu": { + "usage": %f, + "limit": 8.0 + }, + "other": {} + } + """.formatted(2.33 * (replicaCount + 1)))) + .done() + .always(); + + }); + + final LoadReportResourceUsageSource source = + new LoadReportResourceUsageSource(client, "ns", Map.of("app", "pulsar"), + BrokerResourcesFactory.BROKER_DEFAULT_SET, + pulsarClusterSpec.getBroker(), + pulsarClusterSpec.getGlobalSpec()); + + final List brokersResourceUsages = source.getBrokersResourceUsages(); + + Assertions.assertEquals(brokersResourceUsages.size(), 2); + Assertions.assertEquals(brokersResourceUsages.get(0).getPod(), "pul-broker-0"); + Assertions.assertEquals(brokersResourceUsages.get(0).getPercentCpu() + "", "0.29"); + Assertions.assertEquals(brokersResourceUsages.get(1).getPod(), "pul-broker-1"); + Assertions.assertEquals(brokersResourceUsages.get(1).getPercentCpu() + "", "0.58"); } private List createLoadReportResourceUsageSource(String spec, - BiConsumer podConf) { - final PulsarClusterSpec pulsarClusterSpec = MockKubernetesClient.readYaml(spec, PulsarClusterSpec.class); - try (final MockServer server = MockServer.builder() - .withPulsarClusterSpec(pulsarClusterSpec) - .withPodConsumer(podConf) - .build();) { - server.start(); - - - final LoadReportResourceUsageSource source = - new LoadReportResourceUsageSource(server.server.getClient(), "ns", Map.of("app", "pulsar"), - BrokerResourcesFactory.BROKER_DEFAULT_SET, - pulsarClusterSpec.getBroker(), - pulsarClusterSpec.getGlobalSpec()); - return source.getBrokersResourceUsages(); - } + PodConsumer podConf) { + final PulsarClusterSpec pulsarClusterSpec = SerializationUtil.readYaml(spec, PulsarClusterSpec.class); + + setupMocks(pulsarClusterSpec, podConf); + + final LoadReportResourceUsageSource source = + new LoadReportResourceUsageSource(client, "ns", Map.of("app", "pulsar"), + BrokerResourcesFactory.BROKER_DEFAULT_SET, + pulsarClusterSpec.getBroker(), + pulsarClusterSpec.getGlobalSpec()); + return source.getBrokersResourceUsages(); } private static String genExpectedUrlForExecInPod(String podName, String cmd) { @@ -231,6 +243,4 @@ private static String genExpectedUrlForExecInPod(String podName, String cmd) { + URLEncoder.encode(cmd, StandardCharsets.UTF_8).replace("+", "%20") + "&container=pul-broker&stdout=true&stderr=true"; } - - } \ No newline at end of file diff --git a/operator/src/test/java/com/datastax/oss/kaap/controllers/ControllerTestUtil.java b/operator/src/test/java/com/datastax/oss/kaap/controllers/ControllerTestUtil.java index a6b7b17d..5e3bd399 100644 --- a/operator/src/test/java/com/datastax/oss/kaap/controllers/ControllerTestUtil.java +++ b/operator/src/test/java/com/datastax/oss/kaap/controllers/ControllerTestUtil.java @@ -17,6 +17,7 @@ import static org.mockito.Mockito.mock; import com.datastax.oss.kaap.OperatorRuntimeConfiguration; +import com.datastax.oss.kaap.common.SerializationUtil; import com.datastax.oss.kaap.crds.BaseComponentStatus; import com.datastax.oss.kaap.crds.CRDConstants; import com.datastax.oss.kaap.crds.FullSpecWithDefaults; @@ -79,9 +80,9 @@ public void invokeControllerAndAssertError(String spec, String expectedErrorMess final MockKubernetesClient mockKubernetesClient = new MockKubernetesClient(namespace); final UpdateControl result = invokeController(mockKubernetesClient, spec, specClass, fullSpecClass, controllerClass); - Assert.assertTrue(result.isUpdateStatus()); + Assert.assertTrue(result.isPatchStatus()); - final Condition readyCondition = result.getResource().getStatus().getConditions().get(0); + final Condition readyCondition = result.getResource().get().getStatus().getConditions().get(0); Assert.assertEquals(readyCondition.getStatus(), CRDConstants.CONDITIONS_STATUS_FALSE); Assert.assertEquals(readyCondition.getMessage(), expectedErrorMessage); @@ -95,9 +96,9 @@ public MockKubernetesClient invokeController(String spec, Class specClass, Cl final MockKubernetesClient mockKubernetesClient = new MockKubernetesClient(namespace); final UpdateControl result = invokeController(mockKubernetesClient, spec, specClass, fullSpecClass, controllerClass); - Assert.assertTrue(result.isUpdateStatus()); + Assert.assertTrue(result.isPatchStatus()); - final Condition readyCondition = result.getResource().getStatus().getConditions().get(0); + final Condition readyCondition = result.getResource().get().getStatus().getConditions().get(0); Assert.assertEquals(readyCondition.getStatus(), CRDConstants.CONDITIONS_STATUS_FALSE); Assert.assertNull(readyCondition.getMessage()); Assert.assertEquals(readyCondition.getReason(), CRDConstants.CONDITIONS_TYPE_READY_REASON_INITIALIZING); @@ -143,7 +144,7 @@ public R createCustomResource(R cr, Class fullSpecClass, String spec) throws new ObjectMetaBuilder() .withName(clusterName + "-cr").withNamespace(namespace) .build()); - cr.setSpec(MockKubernetesClient.readYaml(spec, fullSpecClass)); + cr.setSpec(SerializationUtil.readYaml(spec, fullSpecClass)); cr.getSpec().getGlobalSpec().applyDefaults(null); cr.getSpec().applyDefaults(cr.getSpec().getGlobalSpec()); return cr; diff --git a/operator/src/test/java/com/datastax/oss/kaap/controllers/KubeTestUtil.java b/operator/src/test/java/com/datastax/oss/kaap/controllers/KubeTestUtil.java index 7d6e4d12..1da2f477 100644 --- a/operator/src/test/java/com/datastax/oss/kaap/controllers/KubeTestUtil.java +++ b/operator/src/test/java/com/datastax/oss/kaap/controllers/KubeTestUtil.java @@ -128,7 +128,7 @@ public static Condition getReadyCondition(BaseComponentStatus status) { public static void assertUpdateControlInitializing( UpdateControl> updateControl) { Assert.assertEquals(updateControl.getScheduleDelay().get().longValue(), 5000L); - Condition readyCondition = getReadyCondition(updateControl.getResource().getStatus()); + Condition readyCondition = getReadyCondition(updateControl.getResource().get().getStatus()); Assert.assertEquals(readyCondition.getStatus(), CRDConstants.CONDITIONS_STATUS_FALSE); Assert.assertEquals(readyCondition.getReason(), CRDConstants.CONDITIONS_TYPE_READY_REASON_INITIALIZING); } @@ -136,7 +136,7 @@ public static void assertUpdateControlInitializing( public static void assertUpdateControlReady( UpdateControl> updateControl) { Assert.assertFalse(updateControl.getScheduleDelay().isPresent()); - Condition readyCondition = getReadyCondition(updateControl.getResource().getStatus()); + Condition readyCondition = getReadyCondition(updateControl.getResource().get().getStatus()); Assert.assertEquals(readyCondition.getStatus(), CRDConstants.CONDITIONS_STATUS_TRUE); } } diff --git a/operator/src/test/java/com/datastax/oss/kaap/controllers/PulsarClusterControllerTest.java b/operator/src/test/java/com/datastax/oss/kaap/controllers/PulsarClusterControllerTest.java index 976c1096..276d5652 100644 --- a/operator/src/test/java/com/datastax/oss/kaap/controllers/PulsarClusterControllerTest.java +++ b/operator/src/test/java/com/datastax/oss/kaap/controllers/PulsarClusterControllerTest.java @@ -18,6 +18,7 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; +import com.datastax.oss.kaap.common.SerializationUtil; import com.datastax.oss.kaap.controllers.utils.TokenAuthProvisioner; import com.datastax.oss.kaap.crds.BaseComponentStatus; import com.datastax.oss.kaap.crds.CRDConstants; @@ -283,7 +284,7 @@ public void testInstallCluster() throws Exception { }); Assert.assertEquals(client.countCreatedResources(), 0); Assert.assertNull(control.getScheduleDelay().orElse(null)); - Condition readyCondition = KubeTestUtil.getReadyCondition(control.getResource().getStatus()); + Condition readyCondition = KubeTestUtil.getReadyCondition(control.getResource().get().getStatus()); Assert.assertEquals(readyCondition.getStatus(), CRDConstants.CONDITIONS_STATUS_TRUE); } @@ -310,6 +311,8 @@ private void assertFnWorkerYaml(MockKubernetesClient client) { pdb: enabled: true maxUnavailable: 1 + securityContext: + fsGroup: 0 probes: readiness: enabled: true @@ -557,6 +560,8 @@ private void assertBkYaml(String yaml) { pdb: enabled: true maxUnavailable: 1 + securityContext: + fsGroup: 0 probes: readiness: enabled: true @@ -628,6 +633,8 @@ private void assertZkYaml(String yaml) { pdb: enabled: true maxUnavailable: 1 + securityContext: + fsGroup: 0 probes: readiness: enabled: true @@ -693,7 +700,7 @@ protected TokenAuthProvisioner getTokenAuthProvisioner(String namespace) { meta.setNamespace(NAMESPACE); cr.setMetadata(meta); - final PulsarClusterSpec fSpec = MockKubernetesClient.readYaml(spec, PulsarClusterSpec.class); + final PulsarClusterSpec fSpec = SerializationUtil.readYaml(spec, PulsarClusterSpec.class); cr.setSpec(fSpec); return controller.reconcile(cr, mock(Context.class)); @@ -755,7 +762,7 @@ public void testResourceSets() throws Exception { """; MockKubernetesClient client = new MockKubernetesClient(NAMESPACE); final UpdateControl status = invokeController(client, spec, r -> null); - final Condition readyCondition = KubeTestUtil.getReadyCondition(status.getResource().getStatus()); + final Condition readyCondition = KubeTestUtil.getReadyCondition(status.getResource().get().getStatus()); Assert.assertEquals(readyCondition.getStatus(), CRDConstants.CONDITIONS_STATUS_FALSE); Assert.assertEquals(readyCondition.getReason(), CRDConstants.CONDITIONS_TYPE_READY_REASON_INITIALIZING); } @@ -776,7 +783,7 @@ public void testBookKeeperResourceSetsNotDefined() throws Exception { """; MockKubernetesClient client = new MockKubernetesClient(NAMESPACE); final UpdateControl status = invokeController(client, spec, r -> null); - final Condition readyCondition = KubeTestUtil.getReadyCondition(status.getResource().getStatus()); + final Condition readyCondition = KubeTestUtil.getReadyCondition(status.getResource().get().getStatus()); Assert.assertEquals(readyCondition.getStatus(), CRDConstants.CONDITIONS_STATUS_FALSE); Assert.assertEquals(readyCondition.getReason(), CRDConstants.CONDITIONS_TYPE_READY_REASON_INVALID_SPEC); Assert.assertTrue(readyCondition.getMessage().contains( @@ -800,7 +807,7 @@ public void testBrokerResourceSetsNotDefined() throws Exception { """; MockKubernetesClient client = new MockKubernetesClient(NAMESPACE); final UpdateControl status = invokeController(client, spec, r -> null); - final Condition readyCondition = KubeTestUtil.getReadyCondition(status.getResource().getStatus()); + final Condition readyCondition = KubeTestUtil.getReadyCondition(status.getResource().get().getStatus()); Assert.assertEquals(readyCondition.getStatus(), CRDConstants.CONDITIONS_STATUS_FALSE); Assert.assertEquals(readyCondition.getReason(), CRDConstants.CONDITIONS_TYPE_READY_REASON_INVALID_SPEC); Assert.assertTrue(readyCondition.getMessage().contains( @@ -824,7 +831,7 @@ public void testProxyResourceSetsNotDefined() throws Exception { """; MockKubernetesClient client = new MockKubernetesClient(NAMESPACE); final UpdateControl status = invokeController(client, spec, r -> null); - final Condition readyCondition = KubeTestUtil.getReadyCondition(status.getResource().getStatus()); + final Condition readyCondition = KubeTestUtil.getReadyCondition(status.getResource().get().getStatus()); Assert.assertEquals(readyCondition.getStatus(), CRDConstants.CONDITIONS_STATUS_FALSE); Assert.assertEquals(readyCondition.getReason(), CRDConstants.CONDITIONS_TYPE_READY_REASON_INVALID_SPEC); Assert.assertTrue(readyCondition.getMessage().contains( @@ -852,7 +859,7 @@ public void testRacksOk() throws Exception { """; MockKubernetesClient client = new MockKubernetesClient(NAMESPACE); final UpdateControl status = invokeController(client, spec, r -> null); - final Condition readyCondition = KubeTestUtil.getReadyCondition(status.getResource().getStatus()); + final Condition readyCondition = KubeTestUtil.getReadyCondition(status.getResource().get().getStatus()); Assert.assertEquals(readyCondition.getStatus(), CRDConstants.CONDITIONS_STATUS_FALSE); Assert.assertEquals(readyCondition.getReason(), CRDConstants.CONDITIONS_TYPE_READY_REASON_INITIALIZING); } @@ -875,11 +882,11 @@ public void testRacks() throws Exception { """; MockKubernetesClient client = new MockKubernetesClient(NAMESPACE); final UpdateControl status = invokeController(client, spec, r -> null); - final Condition readyCondition = KubeTestUtil.getReadyCondition(status.getResource().getStatus()); + final Condition readyCondition = KubeTestUtil.getReadyCondition(status.getResource().get().getStatus()); Assert.assertEquals(readyCondition.getStatus(), CRDConstants.CONDITIONS_STATUS_FALSE); Assert.assertEquals(readyCondition.getReason(), CRDConstants.CONDITIONS_TYPE_READY_REASON_INVALID_SPEC); Assert.assertTrue(readyCondition.getMessage().contains( - "Resource set set2 references a rack rack1 that does not exist. You must define racks in .global.racks"), + "Resource set set2 references a rack rack1 that does not exist. You must define racks in .global.racks"), readyCondition.getMessage() ); } @@ -1033,4 +1040,4 @@ public void testAdjustBrokerReplicas() throws Exception { Assert.assertEquals(brokerGetCount.get(), 1); KubeTestUtil.assertUpdateControlInitializing(control); } -} +} \ No newline at end of file diff --git a/operator/src/test/java/com/datastax/oss/kaap/controllers/autorecovery/AutorecoveryControllerTest.java b/operator/src/test/java/com/datastax/oss/kaap/controllers/autorecovery/AutorecoveryControllerTest.java index b264b279..a9e0b576 100644 --- a/operator/src/test/java/com/datastax/oss/kaap/controllers/autorecovery/AutorecoveryControllerTest.java +++ b/operator/src/test/java/com/datastax/oss/kaap/controllers/autorecovery/AutorecoveryControllerTest.java @@ -230,7 +230,7 @@ public void testTlsEnabledOnBookKeeper() throws Exception { expectedData.put("PULSAR_PREFIX_tlsProviderFactoryClass", "org.apache.bookkeeper.tls.TLSContextFactory"); expectedData.put("PULSAR_PREFIX_tlsCertificatePath", "/pulsar/certs/tls.crt"); expectedData.put("PULSAR_PREFIX_tlsKeyStoreType", "PEM"); - expectedData.put("PULSAR_PREFIX_tlsKeyStore", "/pulsar/tls-pk8.key"); + expectedData.put("PULSAR_PREFIX_tlsKeyStore", "/pulsar/certs/tls.key"); expectedData.put("PULSAR_PREFIX_tlsTrustStoreType", "PEM"); expectedData.put("PULSAR_PREFIX_tlsClientAuthentication", "true"); expectedData.put("PULSAR_PREFIX_tlsTrustStore", "/etc/ssl/certs/ca-certificates.crt"); diff --git a/operator/src/test/java/com/datastax/oss/kaap/controllers/bookkeeper/BookKeeperControllerTest.java b/operator/src/test/java/com/datastax/oss/kaap/controllers/bookkeeper/BookKeeperControllerTest.java index da74c5d4..73b5ae2c 100644 --- a/operator/src/test/java/com/datastax/oss/kaap/controllers/bookkeeper/BookKeeperControllerTest.java +++ b/operator/src/test/java/com/datastax/oss/kaap/controllers/bookkeeper/BookKeeperControllerTest.java @@ -399,7 +399,7 @@ public void testTlsEnabledOnBookKeeper() throws Exception { expectedData.put("PULSAR_PREFIX_tlsProviderFactoryClass", "org.apache.bookkeeper.tls.TLSContextFactory"); expectedData.put("PULSAR_PREFIX_tlsCertificatePath", "/pulsar/certs/tls.crt"); expectedData.put("PULSAR_PREFIX_tlsKeyStoreType", "PEM"); - expectedData.put("PULSAR_PREFIX_tlsKeyStore", "/pulsar/tls-pk8.key"); + expectedData.put("PULSAR_PREFIX_tlsKeyStore", "/pulsar/certs/tls.key"); expectedData.put("PULSAR_PREFIX_tlsTrustStoreType", "PEM"); expectedData.put("PULSAR_PREFIX_tlsHostnameVerificationEnabled", "true"); expectedData.put("PULSAR_PREFIX_bookkeeperTLSClientAuthentication", "true"); diff --git a/operator/src/test/java/com/datastax/oss/kaap/controllers/bookkeeper/BookKeeperSetsControllerTest.java b/operator/src/test/java/com/datastax/oss/kaap/controllers/bookkeeper/BookKeeperSetsControllerTest.java index 09045f62..bba04189 100644 --- a/operator/src/test/java/com/datastax/oss/kaap/controllers/bookkeeper/BookKeeperSetsControllerTest.java +++ b/operator/src/test/java/com/datastax/oss/kaap/controllers/bookkeeper/BookKeeperSetsControllerTest.java @@ -129,7 +129,7 @@ public void testBookKeeperSetsDefaultName() throws Exception { Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 1); Assert.assertEquals(client.getCreatedResources(ConfigMap.class).size(), 1); Assert.assertEquals(client.getCreatedResource(ConfigMap.class).getResource() - .getData().get("PULSAR_PREFIX_myconfig"), "thevalue"); + .getData().get("PULSAR_PREFIX_myconfig"), "thevalue"); Assert.assertEquals(client.getCreatedResources(PodDisruptionBudget.class).size(), 1); System.out.println(client.getCreatedResources(Service.class).stream().map(d -> d.getResource().getMetadata().getName()).collect( Collectors.toList())); @@ -725,17 +725,17 @@ public void testRollingUpdate() throws Exception { // verify order of sets follows the order declared in the spec Assert.assertNotNull(client.getCreatedResource(StatefulSet.class, "pulsar-spec-1-bookkeeper-setz")); BookKeeperController.BookKeeperSetsLastApplied setsLastApplied = - SerializationUtil.readJson(bookkeeperUpdateControl.getResource().getStatus().getLastApplied(), + SerializationUtil.readJson(bookkeeperUpdateControl.getResource().get().getStatus().getLastApplied(), BookKeeperController.BookKeeperSetsLastApplied.class); Assert.assertNotNull(setsLastApplied.getSets().get("setz")); client = new MockKubernetesClient(NAMESPACE, resolver); - bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource(), client); + bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(bookkeeperUpdateControl); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 0); setsLastApplied = - SerializationUtil.readJson(bookkeeperUpdateControl.getResource().getStatus().getLastApplied(), + SerializationUtil.readJson(bookkeeperUpdateControl.getResource().get().getStatus().getLastApplied(), BookKeeperController.BookKeeperSetsLastApplied.class); Assert.assertNotNull(setsLastApplied.getSets().get("setz")); @@ -744,11 +744,11 @@ public void testRollingUpdate() throws Exception { resolver.newStatefulSetBuilder("pulsar-spec-1-bookkeeper-setz", true).build()); client = new MockKubernetesClient(NAMESPACE, resolver); - bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource(), client); + bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(bookkeeperUpdateControl); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 1); setsLastApplied = - SerializationUtil.readJson(bookkeeperUpdateControl.getResource().getStatus().getLastApplied(), + SerializationUtil.readJson(bookkeeperUpdateControl.getResource().get().getStatus().getLastApplied(), BookKeeperController.BookKeeperSetsLastApplied.class); Assert.assertNotNull(setsLastApplied.getSets().get("seta")); @@ -756,10 +756,10 @@ public void testRollingUpdate() throws Exception { resolver.newStatefulSetBuilder("pulsar-spec-1-bookkeeper-seta", true).build()); client = new MockKubernetesClient(NAMESPACE, resolver); - bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource(), client); + bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlReady(bookkeeperUpdateControl); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 0); - Assert.assertNotNull(bookkeeperUpdateControl.getResource().getStatus().getLastApplied()); + Assert.assertNotNull(bookkeeperUpdateControl.getResource().get().getStatus().getLastApplied()); // now update @@ -780,7 +780,7 @@ public void testRollingUpdate() throws Exception { seta: {} """; client = new MockKubernetesClient(NAMESPACE, resolver); - bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource(), client); + bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(bookkeeperUpdateControl); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 1); Assert.assertNotNull(client.getCreatedResource(StatefulSet.class, "pulsar-spec-1-bookkeeper-setz")); @@ -790,7 +790,7 @@ public void testRollingUpdate() throws Exception { resolver.newStatefulSetBuilder("pulsar-spec-1-bookkeeper-setz", true).build()); client = new MockKubernetesClient(NAMESPACE, resolver); - bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource(), client); + bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(bookkeeperUpdateControl); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 1); Assert.assertNotNull(client.getCreatedResource(StatefulSet.class, "pulsar-spec-1-bookkeeper-seta")); @@ -799,7 +799,7 @@ public void testRollingUpdate() throws Exception { resolver.newStatefulSetBuilder("pulsar-spec-1-bookkeeper-seta", true).build()); client = new MockKubernetesClient(NAMESPACE, resolver); - bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource(), client); + bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlReady(bookkeeperUpdateControl); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 0); @@ -824,32 +824,32 @@ public void testParallelUpdate() throws Exception { Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 2); Assert.assertNotNull(client.getCreatedResource(StatefulSet.class, "pulsar-spec-1-bookkeeper-setz")); Assert.assertNotNull(client.getCreatedResource(StatefulSet.class, "pulsar-spec-1-bookkeeper-seta")); - Assert.assertNotNull(bookkeeperUpdateControl.getResource().getStatus().getLastApplied()); + Assert.assertNotNull(bookkeeperUpdateControl.getResource().get().getStatus().getLastApplied()); client = new MockKubernetesClient(NAMESPACE, resolver); - bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource(), client); + bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(bookkeeperUpdateControl); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 0); - Assert.assertNotNull(bookkeeperUpdateControl.getResource().getStatus().getLastApplied()); + Assert.assertNotNull(bookkeeperUpdateControl.getResource().get().getStatus().getLastApplied()); resolver.putResource("pulsar-spec-1-bookkeeper-setz", resolver.newStatefulSetBuilder("pulsar-spec-1-bookkeeper-setz", true).build()); client = new MockKubernetesClient(NAMESPACE, resolver); - bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource(), client); + bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(bookkeeperUpdateControl); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 0); - Assert.assertNotNull(bookkeeperUpdateControl.getResource().getStatus().getLastApplied()); + Assert.assertNotNull(bookkeeperUpdateControl.getResource().get().getStatus().getLastApplied()); resolver.putResource("pulsar-spec-1-bookkeeper-seta", resolver.newStatefulSetBuilder("pulsar-spec-1-bookkeeper-seta", true).build()); client = new MockKubernetesClient(NAMESPACE, resolver); - bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource(), client); + bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlReady(bookkeeperUpdateControl); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 0); - Assert.assertNotNull(bookkeeperUpdateControl.getResource().getStatus().getLastApplied()); + Assert.assertNotNull(bookkeeperUpdateControl.getResource().get().getStatus().getLastApplied()); // now update @@ -871,31 +871,31 @@ public void testParallelUpdate() throws Exception { seta: {} """; client = new MockKubernetesClient(NAMESPACE, resolver); - bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource(), client); + bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(bookkeeperUpdateControl); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 2); Assert.assertNotNull(client.getCreatedResource(StatefulSet.class, "pulsar-spec-1-bookkeeper-setz")); Assert.assertNotNull(client.getCreatedResource(StatefulSet.class, "pulsar-spec-1-bookkeeper-seta")); - Assert.assertNotNull(bookkeeperUpdateControl.getResource().getStatus().getLastApplied()); + Assert.assertNotNull(bookkeeperUpdateControl.getResource().get().getStatus().getLastApplied()); resolver.putResource("pulsar-spec-1-bookkeeper-setz", resolver.newStatefulSetBuilder("pulsar-spec-1-bookkeeper-setz", true).build()); client = new MockKubernetesClient(NAMESPACE, resolver); - bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource(), client); + bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(bookkeeperUpdateControl); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 0); - Assert.assertNotNull(bookkeeperUpdateControl.getResource().getStatus().getLastApplied()); + Assert.assertNotNull(bookkeeperUpdateControl.getResource().get().getStatus().getLastApplied()); resolver.putResource("pulsar-spec-1-bookkeeper-seta", resolver.newStatefulSetBuilder("pulsar-spec-1-bookkeeper-seta", true).build()); client = new MockKubernetesClient(NAMESPACE, resolver); - bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource(), client); + bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlReady(bookkeeperUpdateControl); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 0); - Assert.assertNotNull(bookkeeperUpdateControl.getResource().getStatus().getLastApplied()); + Assert.assertNotNull(bookkeeperUpdateControl.getResource().get().getStatus().getLastApplied()); } @Test @@ -914,7 +914,7 @@ public void testDefineBookKeeperSetWithDefaultName() throws Exception { UpdateControl bookkeeperUpdateControl = invokeController(spec, new BookKeeper(), client); KubeTestUtil.assertUpdateControlInitializing(bookkeeperUpdateControl); BookKeeperController.BookKeeperSetsLastApplied setsLastApplied = - SerializationUtil.readJson(bookkeeperUpdateControl.getResource().getStatus().getLastApplied(), + SerializationUtil.readJson(bookkeeperUpdateControl.getResource().get().getStatus().getLastApplied(), BookKeeperController.BookKeeperSetsLastApplied.class); Assert.assertNotNull(setsLastApplied.getSets().get("setz")); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 1); @@ -926,10 +926,10 @@ public void testDefineBookKeeperSetWithDefaultName() throws Exception { resolver.newStatefulSetBuilder("pulsar-spec-1-bookkeeper-setz", true).build()); client = new MockKubernetesClient(NAMESPACE, resolver); - bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource(), client); + bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(bookkeeperUpdateControl); setsLastApplied = - SerializationUtil.readJson(bookkeeperUpdateControl.getResource().getStatus().getLastApplied(), + SerializationUtil.readJson(bookkeeperUpdateControl.getResource().get().getStatus().getLastApplied(), BookKeeperController.BookKeeperSetsLastApplied.class); Assert.assertNotNull(setsLastApplied.getSets().get("bookkeeper")); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 1); @@ -939,7 +939,7 @@ public void testDefineBookKeeperSetWithDefaultName() throws Exception { resolver.newStatefulSetBuilder("pulsar-spec-1-bookkeeper", true).build()); client = new MockKubernetesClient(NAMESPACE, resolver); - bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource(), client); + bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlReady(bookkeeperUpdateControl); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 0); Assert.assertEquals(client.getDeletedResources().size(), 0); @@ -953,10 +953,10 @@ public void testDefineBookKeeperSetWithDefaultName() throws Exception { setz: {} """; client = new MockKubernetesClient(NAMESPACE, resolver); - bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource(), client); + bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlReady(bookkeeperUpdateControl); setsLastApplied = - SerializationUtil.readJson(bookkeeperUpdateControl.getResource().getStatus().getLastApplied(), + SerializationUtil.readJson(bookkeeperUpdateControl.getResource().get().getStatus().getLastApplied(), BookKeeperController.BookKeeperSetsLastApplied.class); Assert.assertNull(setsLastApplied.getSets().get("bookkeeper")); @@ -978,10 +978,10 @@ public void testDefineBookKeeperSetWithDefaultName() throws Exception { sets: {} """; client = new MockKubernetesClient(NAMESPACE, resolver); - bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource(), client); + bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlReady(bookkeeperUpdateControl); setsLastApplied = - SerializationUtil.readJson(bookkeeperUpdateControl.getResource().getStatus().getLastApplied(), + SerializationUtil.readJson(bookkeeperUpdateControl.getResource().get().getStatus().getLastApplied(), BookKeeperController.BookKeeperSetsLastApplied.class); Assert.assertNull(setsLastApplied.getSets().get("setz")); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 0); @@ -1024,7 +1024,7 @@ public void testCleanupPvc() throws Exception { resolver.putResource("pulsar-spec-1-bookkeeper-journal-3", genPvc()); resolver.putResource("pulsar-spec-1-bookkeeper-ledgers-3", genPvc()); client = new MockKubernetesClient(NAMESPACE, resolver); - bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource(), client); + bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlReady(bookkeeperUpdateControl); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 0); Assert.assertEquals(client.getDeletedResources().size(), 0); @@ -1038,7 +1038,7 @@ public void testCleanupPvc() throws Exception { """; mockBookieAdminClient(3); client = new MockKubernetesClient(NAMESPACE, resolver); - bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource(), client); + bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlReady(bookkeeperUpdateControl); Assert.assertEquals(client.getDeletedResources().size(), 4); Assert.assertNotNull(client.getDeletedResource(PersistentVolumeClaim.class, "pulsar-spec-1-bookkeeper-ledgers-2")); @@ -1057,7 +1057,7 @@ public void testCleanupPvc() throws Exception { """; mockBookieAdminClient(2); client = new MockKubernetesClient(NAMESPACE, resolver); - bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource(), client); + bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlReady(bookkeeperUpdateControl); Assert.assertEquals(client.getDeletedResources().size(), 0); @@ -1152,7 +1152,7 @@ public void testDownscaling() throws Exception { replicas: 3 """; client = new MockKubernetesClient(NAMESPACE, resolver); - bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource(), client); + bookkeeperUpdateControl = invokeController(spec, bookkeeperUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(bookkeeperUpdateControl); Assert.assertEquals((int) client.getCreatedResource(StatefulSet.class).getResource().getSpec().getReplicas(), 3); @@ -1180,4 +1180,4 @@ private BookieAdminClient.BookieInfo genBookieInfo(String bookieId) { .podResource(pod) .build(); } -} +} \ No newline at end of file diff --git a/operator/src/test/java/com/datastax/oss/kaap/controllers/broker/BrokerControllerTest.java b/operator/src/test/java/com/datastax/oss/kaap/controllers/broker/BrokerControllerTest.java index 91b0efd5..9027d304 100644 --- a/operator/src/test/java/com/datastax/oss/kaap/controllers/broker/BrokerControllerTest.java +++ b/operator/src/test/java/com/datastax/oss/kaap/controllers/broker/BrokerControllerTest.java @@ -563,7 +563,7 @@ public void testTlsEnabledOnBroker() throws Exception { expectedData.put("PULSAR_PREFIX_backlogQuotaDefaultRetentionPolicy", "producer_exception"); expectedData.put("PULSAR_PREFIX_tlsEnabled", "true"); expectedData.put("PULSAR_PREFIX_tlsCertificateFilePath", "/pulsar/certs/tls.crt"); - expectedData.put("PULSAR_PREFIX_tlsKeyFilePath", " /pulsar/tls-pk8.key"); + expectedData.put("PULSAR_PREFIX_tlsKeyFilePath", " /pulsar/certs/tls.key"); expectedData.put("PULSAR_PREFIX_tlsTrustCertsFilePath", "/etc/ssl/certs/ca-certificates.crt"); expectedData.put("PULSAR_PREFIX_brokerServicePortTls", "6651"); expectedData.put("PULSAR_PREFIX_brokerClientTlsEnabled", "true"); @@ -753,7 +753,7 @@ public void testTlsEnabledOnBookKeeper() throws Exception { expectedData.put("PULSAR_PREFIX_backlogQuotaDefaultRetentionPolicy", "producer_exception"); expectedData.put("PULSAR_PREFIX_tlsEnabled", "true"); expectedData.put("PULSAR_PREFIX_tlsCertificateFilePath", "/pulsar/certs/tls.crt"); - expectedData.put("PULSAR_PREFIX_tlsKeyFilePath", " /pulsar/tls-pk8.key"); + expectedData.put("PULSAR_PREFIX_tlsKeyFilePath", " /pulsar/certs/tls.key"); expectedData.put("PULSAR_PREFIX_tlsTrustCertsFilePath", "/etc/ssl/certs/ca-certificates.crt"); expectedData.put("PULSAR_PREFIX_brokerServicePortTls", "6651"); expectedData.put("PULSAR_PREFIX_brokerClientTlsEnabled", "true"); @@ -762,7 +762,7 @@ public void testTlsEnabledOnBookKeeper() throws Exception { expectedData.put("PULSAR_PREFIX_brokerClient_tlsHostnameVerificationEnable", "true"); expectedData.put("PULSAR_PREFIX_bookkeeperTLSClientAuthentication", "true"); expectedData.put("PULSAR_PREFIX_bookkeeperTLSKeyFileType", "PEM"); - expectedData.put("PULSAR_PREFIX_bookkeeperTLSKeyFilePath", "/pulsar/tls-pk8.key"); + expectedData.put("PULSAR_PREFIX_bookkeeperTLSKeyFilePath", "/pulsar/certs/tls.key"); expectedData.put("PULSAR_PREFIX_bookkeeperTLSCertificateFilePath", "/pulsar/certs/tls.crt"); expectedData.put("PULSAR_PREFIX_bookkeeperTLSTrustCertsFilePath", "/etc/ssl/certs/ca-certificates.crt"); expectedData.put("PULSAR_PREFIX_bookkeeperTLSTrustCertTypes", "PEM"); @@ -1948,7 +1948,7 @@ public void testKafkaTls() throws Exception { expectedData.put("PULSAR_PREFIX_backlogQuotaDefaultRetentionPolicy", "producer_exception"); expectedData.put("PULSAR_PREFIX_tlsEnabled", "true"); expectedData.put("PULSAR_PREFIX_tlsCertificateFilePath", "/pulsar/certs/tls.crt"); - expectedData.put("PULSAR_PREFIX_tlsKeyFilePath", " /pulsar/tls-pk8.key"); + expectedData.put("PULSAR_PREFIX_tlsKeyFilePath", "/pulsar/certs/.key"); expectedData.put("PULSAR_PREFIX_tlsTrustCertsFilePath", "/etc/ssl/certs/ca-certificates.crt"); expectedData.put("PULSAR_PREFIX_brokerServicePortTls", "6651"); expectedData.put("PULSAR_PREFIX_brokerClientTlsEnabled", "true"); diff --git a/operator/src/test/java/com/datastax/oss/kaap/controllers/broker/BrokerSetsControllerTest.java b/operator/src/test/java/com/datastax/oss/kaap/controllers/broker/BrokerSetsControllerTest.java index 16d73676..4c97c2d1 100644 --- a/operator/src/test/java/com/datastax/oss/kaap/controllers/broker/BrokerSetsControllerTest.java +++ b/operator/src/test/java/com/datastax/oss/kaap/controllers/broker/BrokerSetsControllerTest.java @@ -629,7 +629,7 @@ public void testRollingUpdate() throws Exception { UpdateControl brokerUpdateControl = invokeController(spec, new Broker(), client); KubeTestUtil.assertUpdateControlInitializing(brokerUpdateControl); BrokerController.BrokerSetsLastApplied setsLastApplied = - SerializationUtil.readJson(brokerUpdateControl.getResource().getStatus().getLastApplied(), + SerializationUtil.readJson(brokerUpdateControl.getResource().get().getStatus().getLastApplied(), BrokerController.BrokerSetsLastApplied.class); Assert.assertNotNull(setsLastApplied.getSets().get("setz")); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 1); @@ -638,7 +638,7 @@ public void testRollingUpdate() throws Exception { client = new MockKubernetesClient(NAMESPACE, resolver); - brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource(), client); + brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(brokerUpdateControl); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 0); @@ -646,12 +646,12 @@ public void testRollingUpdate() throws Exception { resolver.newStatefulSetBuilder("pulsar-spec-1-broker-setz", true).build()); client = new MockKubernetesClient(NAMESPACE, resolver); - brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource(), client); + brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(brokerUpdateControl); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 1); setsLastApplied = - SerializationUtil.readJson(brokerUpdateControl.getResource().getStatus().getLastApplied(), + SerializationUtil.readJson(brokerUpdateControl.getResource().get().getStatus().getLastApplied(), BrokerController.BrokerSetsLastApplied.class); Assert.assertNotNull(setsLastApplied.getSets().get("seta")); @@ -659,10 +659,10 @@ public void testRollingUpdate() throws Exception { resolver.newStatefulSetBuilder("pulsar-spec-1-broker-seta", true).build()); client = new MockKubernetesClient(NAMESPACE, resolver); - brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource(), client); + brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlReady(brokerUpdateControl); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 0); - Assert.assertNotNull(brokerUpdateControl.getResource().getStatus().getLastApplied()); + Assert.assertNotNull(brokerUpdateControl.getResource().get().getStatus().getLastApplied()); // now update @@ -683,7 +683,7 @@ public void testRollingUpdate() throws Exception { seta: {} """; client = new MockKubernetesClient(NAMESPACE, resolver); - brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource(), client); + brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(brokerUpdateControl); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 1); Assert.assertNotNull(client.getCreatedResource(StatefulSet.class, "pulsar-spec-1-broker-setz")); @@ -694,7 +694,7 @@ public void testRollingUpdate() throws Exception { resolver.newStatefulSetBuilder("pulsar-spec-1-broker-setz", true).build()); client = new MockKubernetesClient(NAMESPACE, resolver); - brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource(), client); + brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(brokerUpdateControl); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 1); Assert.assertNotNull(client.getCreatedResource(StatefulSet.class, "pulsar-spec-1-broker-seta")); @@ -703,7 +703,7 @@ public void testRollingUpdate() throws Exception { resolver.newStatefulSetBuilder("pulsar-spec-1-broker-seta", true).build()); client = new MockKubernetesClient(NAMESPACE, resolver); - brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource(), client); + brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlReady(brokerUpdateControl); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 0); @@ -728,32 +728,32 @@ public void testParallelUpdate() throws Exception { Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 2); Assert.assertNotNull(client.getCreatedResource(StatefulSet.class, "pulsar-spec-1-broker-setz")); Assert.assertNotNull(client.getCreatedResource(StatefulSet.class, "pulsar-spec-1-broker-seta")); - Assert.assertNotNull(brokerUpdateControl.getResource().getStatus().getLastApplied()); + Assert.assertNotNull(brokerUpdateControl.getResource().get().getStatus().getLastApplied()); client = new MockKubernetesClient(NAMESPACE, resolver); - brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource(), client); + brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(brokerUpdateControl); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 0); - Assert.assertNotNull(brokerUpdateControl.getResource().getStatus().getLastApplied()); + Assert.assertNotNull(brokerUpdateControl.getResource().get().getStatus().getLastApplied()); resolver.putResource("pulsar-spec-1-broker-setz", resolver.newStatefulSetBuilder("pulsar-spec-1-broker-setz", true).build()); client = new MockKubernetesClient(NAMESPACE, resolver); - brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource(), client); + brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(brokerUpdateControl); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 0); - Assert.assertNotNull(brokerUpdateControl.getResource().getStatus().getLastApplied()); + Assert.assertNotNull(brokerUpdateControl.getResource().get().getStatus().getLastApplied()); resolver.putResource("pulsar-spec-1-broker-seta", resolver.newStatefulSetBuilder("pulsar-spec-1-broker-seta", true).build()); client = new MockKubernetesClient(NAMESPACE, resolver); - brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource(), client); + brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlReady(brokerUpdateControl); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 0); - Assert.assertNotNull(brokerUpdateControl.getResource().getStatus().getLastApplied()); + Assert.assertNotNull(brokerUpdateControl.getResource().get().getStatus().getLastApplied()); // now update @@ -775,31 +775,31 @@ public void testParallelUpdate() throws Exception { seta: {} """; client = new MockKubernetesClient(NAMESPACE, resolver); - brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource(), client); + brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(brokerUpdateControl); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 2); Assert.assertNotNull(client.getCreatedResource(StatefulSet.class, "pulsar-spec-1-broker-setz")); Assert.assertNotNull(client.getCreatedResource(StatefulSet.class, "pulsar-spec-1-broker-seta")); - Assert.assertNotNull(brokerUpdateControl.getResource().getStatus().getLastApplied()); + Assert.assertNotNull(brokerUpdateControl.getResource().get().getStatus().getLastApplied()); resolver.putResource("pulsar-spec-1-broker-setz", resolver.newStatefulSetBuilder("pulsar-spec-1-broker-setz", true).build()); client = new MockKubernetesClient(NAMESPACE, resolver); - brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource(), client); + brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(brokerUpdateControl); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 0); - Assert.assertNotNull(brokerUpdateControl.getResource().getStatus().getLastApplied()); + Assert.assertNotNull(brokerUpdateControl.getResource().get().getStatus().getLastApplied()); resolver.putResource("pulsar-spec-1-broker-seta", resolver.newStatefulSetBuilder("pulsar-spec-1-broker-seta", true).build()); client = new MockKubernetesClient(NAMESPACE, resolver); - brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource(), client); + brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlReady(brokerUpdateControl); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 0); - Assert.assertNotNull(brokerUpdateControl.getResource().getStatus().getLastApplied()); + Assert.assertNotNull(brokerUpdateControl.getResource().get().getStatus().getLastApplied()); } @Test @@ -818,7 +818,7 @@ public void testDefineBrokerSetWithDefaultName() throws Exception { UpdateControl brokerUpdateControl = invokeController(spec, new Broker(), client); KubeTestUtil.assertUpdateControlInitializing(brokerUpdateControl); BrokerController.BrokerSetsLastApplied setsLastApplied = - SerializationUtil.readJson(brokerUpdateControl.getResource().getStatus().getLastApplied(), + SerializationUtil.readJson(brokerUpdateControl.getResource().get().getStatus().getLastApplied(), BrokerController.BrokerSetsLastApplied.class); Assert.assertNotNull(setsLastApplied.getSets().get("setz")); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 1); @@ -830,10 +830,10 @@ public void testDefineBrokerSetWithDefaultName() throws Exception { resolver.newStatefulSetBuilder("pulsar-spec-1-broker-setz", true).build()); client = new MockKubernetesClient(NAMESPACE, resolver); - brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource(), client); + brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(brokerUpdateControl); setsLastApplied = - SerializationUtil.readJson(brokerUpdateControl.getResource().getStatus().getLastApplied(), + SerializationUtil.readJson(brokerUpdateControl.getResource().get().getStatus().getLastApplied(), BrokerController.BrokerSetsLastApplied.class); Assert.assertNotNull(setsLastApplied.getSets().get("broker")); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 1); @@ -843,10 +843,10 @@ public void testDefineBrokerSetWithDefaultName() throws Exception { resolver.newStatefulSetBuilder("pulsar-spec-1-broker", true).build()); client = new MockKubernetesClient(NAMESPACE, resolver); - brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource(), client); + brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlReady(brokerUpdateControl); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 0); - Assert.assertNotNull(brokerUpdateControl.getResource().getStatus().getLastApplied()); + Assert.assertNotNull(brokerUpdateControl.getResource().get().getStatus().getLastApplied()); Assert.assertEquals(client.getDeletedResources().size(), 0); spec = """ @@ -858,10 +858,10 @@ public void testDefineBrokerSetWithDefaultName() throws Exception { setz: {} """; client = new MockKubernetesClient(NAMESPACE, resolver); - brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource(), client); + brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlReady(brokerUpdateControl); setsLastApplied = - SerializationUtil.readJson(brokerUpdateControl.getResource().getStatus().getLastApplied(), + SerializationUtil.readJson(brokerUpdateControl.getResource().get().getStatus().getLastApplied(), BrokerController.BrokerSetsLastApplied.class); Assert.assertNull(setsLastApplied.getSets().get("broker")); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 0); @@ -881,10 +881,10 @@ public void testDefineBrokerSetWithDefaultName() throws Exception { sets: {} """; client = new MockKubernetesClient(NAMESPACE, resolver); - brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource(), client); + brokerUpdateControl = invokeController(spec, brokerUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlReady(brokerUpdateControl); setsLastApplied = - SerializationUtil.readJson(brokerUpdateControl.getResource().getStatus().getLastApplied(), + SerializationUtil.readJson(brokerUpdateControl.getResource().get().getStatus().getLastApplied(), BrokerController.BrokerSetsLastApplied.class); Assert.assertNull(setsLastApplied.getSets().get("setz")); Assert.assertEquals(client.getCreatedResources(StatefulSet.class).size(), 0); @@ -895,4 +895,4 @@ public void testDefineBrokerSetWithDefaultName() throws Exception { Assert.assertNotNull(client.getDeletedResource(StatefulSet.class, "pulsar-spec-1-broker-setz")); Assert.assertNotNull(client.getDeletedResource(ConfigMap.class, "pulsar-spec-1-broker-setz")); } -} +} \ No newline at end of file diff --git a/operator/src/test/java/com/datastax/oss/kaap/controllers/function/FunctionsWorkerControllerTest.java b/operator/src/test/java/com/datastax/oss/kaap/controllers/function/FunctionsWorkerControllerTest.java index aa68fd23..0668cdab 100644 --- a/operator/src/test/java/com/datastax/oss/kaap/controllers/function/FunctionsWorkerControllerTest.java +++ b/operator/src/test/java/com/datastax/oss/kaap/controllers/function/FunctionsWorkerControllerTest.java @@ -568,7 +568,7 @@ public void testTlsEnabledOnFunctionsWorker() throws Exception { expectedData.put("tlsCertificateFilePath", "/pulsar/certs/tls.crt"); expectedData.put("tlsTrustCertsFilePath", "/etc/ssl/certs/ca-certificates.crt"); expectedData.put("brokerClientTrustCertsFilePath", "/etc/ssl/certs/ca-certificates.crt"); - expectedData.put("tlsKeyFilePath", "/pulsar/tls-pk8.key"); + expectedData.put("tlsKeyFilePath", "/pulsar/certs/tls.key"); expectedData.put("useTls", "true"); expectedData.put("tlsEnabledWithKeyStore", "true"); expectedData.put("tlsKeyStore", "/pulsar/tls.keystore.jks"); @@ -637,7 +637,7 @@ public void testTlsEnabledOnBookKeeper() throws Exception { expectedData.put("tlsCertificateFilePath", "/pulsar/certs/tls.crt"); expectedData.put("tlsTrustCertsFilePath", "/etc/ssl/certs/ca-certificates.crt"); expectedData.put("brokerClientTrustCertsFilePath", "/etc/ssl/certs/ca-certificates.crt"); - expectedData.put("tlsKeyFilePath", "/pulsar/tls-pk8.key"); + expectedData.put("tlsKeyFilePath", "/pulsar/certs/tls.key"); expectedData.put("useTls", "true"); expectedData.put("tlsEnabledWithKeyStore", "true"); expectedData.put("tlsKeyStore", "/pulsar/tls.keystore.jks"); @@ -975,7 +975,7 @@ public void testRuntimeK8s() throws Exception { LinkedHashMap functionRuntimeFactoryConfigs = new LinkedHashMap<>(); functionRuntimeFactoryConfigs.put("jobNamespace", "ns"); functionRuntimeFactoryConfigs.put("percentMemoryPadding", 10); - functionRuntimeFactoryConfigs.put("pulsarAdminUrl", "https://pul-function.ns.svc.cluster.local:6750/"); + functionRuntimeFactoryConfigs.put("pulsarAdminUrl", "http://pul-function-ca.ns.svc.cluster.local:6750"); functionRuntimeFactoryConfigs.put("pulsarDockerImageName", "apachepulsar/pulsar:global"); functionRuntimeFactoryConfigs.put("pulsarRootDir", "/pulsar"); functionRuntimeFactoryConfigs.put("pulsarServiceUrl", "pulsar://pul-broker.ns.svc.cluster.local:6650/"); diff --git a/operator/src/test/java/com/datastax/oss/kaap/controllers/proxy/ProxyControllerTest.java b/operator/src/test/java/com/datastax/oss/kaap/controllers/proxy/ProxyControllerTest.java index ba83c903..daa8b5fc 100644 --- a/operator/src/test/java/com/datastax/oss/kaap/controllers/proxy/ProxyControllerTest.java +++ b/operator/src/test/java/com/datastax/oss/kaap/controllers/proxy/ProxyControllerTest.java @@ -541,13 +541,12 @@ public void testTlsEnabledOnProxy() throws Exception { expectedData.put("PULSAR_LOG_ROOT_LEVEL", "info"); expectedData.put("PULSAR_EXTRA_OPTS", "-Dpulsar.log.root.level=info"); expectedData.put("PULSAR_PREFIX_numHttpServerThreads", "10"); - expectedData.put("PULSAR_PREFIX_tlsEnabledWithKeyStore", "true"); expectedData.put("PULSAR_PREFIX_tlsKeyStore", "/pulsar/tls.keystore.jks"); expectedData.put("PULSAR_PREFIX_tlsTrustStore", "/pulsar/tls.truststore.jks"); expectedData.put("PULSAR_PREFIX_brokerClientTlsTrustStore", "/pulsar/tls.truststore.jks"); expectedData.put("PULSAR_PREFIX_tlsEnabledInProxy", "true"); expectedData.put("PULSAR_PREFIX_tlsCertificateFilePath", "/pulsar/certs/tls.crt"); - expectedData.put("PULSAR_PREFIX_tlsKeyFilePath", "/pulsar/tls-pk8.key"); + expectedData.put("PULSAR_PREFIX_tlsKeyFilePath", "/pulsar/certs/tls.key"); expectedData.put("PULSAR_PREFIX_tlsTrustCertsFilePath", "/etc/ssl/certs/ca-certificates.crt"); expectedData.put("PULSAR_PREFIX_brokerClientTrustCertsFilePath", "/etc/ssl/certs/ca-certificates.crt"); expectedData.put("PULSAR_PREFIX_brokerServicePortTls", "6651"); @@ -583,8 +582,7 @@ public void testTlsEnabledOnProxy() throws Exception { wsExpectedData.put("PULSAR_PREFIX_webServicePortTls", "8001"); wsExpectedData.put("PULSAR_PREFIX_tlsEnabled", "true"); wsExpectedData.put("PULSAR_PREFIX_tlsCertificateFilePath", "/pulsar/certs/tls.crt"); - wsExpectedData.put("PULSAR_PREFIX_tlsKeyFilePath", "/pulsar/tls-pk8.key"); - wsExpectedData.put("PULSAR_PREFIX_tlsEnabledWithKeyStore", "true"); + wsExpectedData.put("PULSAR_PREFIX_tlsKeyFilePath", "/pulsar/certs/tls.key"); wsExpectedData.put("PULSAR_PREFIX_tlsKeyStore", "/pulsar/tls.keystore.jks"); wsExpectedData.put("PULSAR_PREFIX_tlsTrustStore", "/pulsar/tls.truststore.jks"); wsExpectedData.put("PULSAR_PREFIX_brokerClientTlsEnabled", "true"); @@ -1494,6 +1492,7 @@ public void testService() throws Exception { - name: myport1 port: 3333 loadBalancerIP: 10.11.11.11 + loadBalancerClass: custom-lb-class type: ClusterIP enablePlainTextWithTLS: true """; @@ -1535,6 +1534,26 @@ public void testService() throws Exception { Assert.assertNull(service.getResource().getSpec().getClusterIP()); Assert.assertEquals(service.getResource().getSpec().getType(), "ClusterIP"); Assert.assertEquals(service.getResource().getSpec().getLoadBalancerIP(), "10.11.11.11"); + Assert.assertEquals(service.getResource().getSpec().getLoadBalancerClass(), "custom-lb-class"); + } + + @Test + public void testServiceLoadBalancerClassNull() throws Exception { + String spec = """ + global: + name: pul + persistence: false + image: apachepulsar/pulsar:global + proxy: + service: + type: LoadBalancer + """; + MockKubernetesClient client = invokeController(spec); + final MockKubernetesClient.ResourceInteraction service = + client.getCreatedResource(Service.class); + + Assert.assertNull(service.getResource().getSpec().getLoadBalancerClass()); + Assert.assertEquals(service.getResource().getSpec().getType(), "LoadBalancer"); } @Test @@ -1784,13 +1803,12 @@ public void testKafkaTls() throws Exception { expectedData.put("PULSAR_LOG_ROOT_LEVEL", "info"); expectedData.put("PULSAR_EXTRA_OPTS", "-Dpulsar.log.root.level=info"); expectedData.put("PULSAR_PREFIX_numHttpServerThreads", "10"); - expectedData.put("PULSAR_PREFIX_tlsEnabledWithKeyStore", "true"); expectedData.put("PULSAR_PREFIX_tlsKeyStore", "/pulsar/tls.keystore.jks"); expectedData.put("PULSAR_PREFIX_tlsTrustStore", "/pulsar/tls.truststore.jks"); expectedData.put("PULSAR_PREFIX_brokerClientTlsTrustStore", "/pulsar/tls.truststore.jks"); expectedData.put("PULSAR_PREFIX_tlsEnabledInProxy", "true"); expectedData.put("PULSAR_PREFIX_tlsCertificateFilePath", "/pulsar/certs/tls.crt"); - expectedData.put("PULSAR_PREFIX_tlsKeyFilePath", "/pulsar/tls-pk8.key"); + expectedData.put("PULSAR_PREFIX_tlsKeyFilePath", "/pulsar/certs/tls.key"); expectedData.put("PULSAR_PREFIX_tlsTrustCertsFilePath", "/etc/ssl/certs/ca-certificates.crt"); expectedData.put("PULSAR_PREFIX_brokerClientTrustCertsFilePath", "/etc/ssl/certs/ca-certificates.crt"); expectedData.put("PULSAR_PREFIX_brokerServicePortTls", "6651"); diff --git a/operator/src/test/java/com/datastax/oss/kaap/controllers/proxy/ProxySetsControllerTest.java b/operator/src/test/java/com/datastax/oss/kaap/controllers/proxy/ProxySetsControllerTest.java index e77d77cc..99dc36b8 100644 --- a/operator/src/test/java/com/datastax/oss/kaap/controllers/proxy/ProxySetsControllerTest.java +++ b/operator/src/test/java/com/datastax/oss/kaap/controllers/proxy/ProxySetsControllerTest.java @@ -576,7 +576,7 @@ public void testRollingUpdate() throws Exception { UpdateControl proxyUpdateControl = invokeController(spec, new Proxy(), client); KubeTestUtil.assertUpdateControlInitializing(proxyUpdateControl); ProxyController.ProxySetsLastApplied proxySetsLastApplied = - SerializationUtil.readJson(proxyUpdateControl.getResource().getStatus().getLastApplied(), + SerializationUtil.readJson(proxyUpdateControl.getResource().get().getStatus().getLastApplied(), ProxyController.ProxySetsLastApplied.class); Assert.assertEquals(client.getCreatedResources(Deployment.class).size(), 1); // verify order of sets follows the order declared in the spec @@ -586,10 +586,10 @@ public void testRollingUpdate() throws Exception { client = new MockKubernetesClient(NAMESPACE, resolver); - proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource(), client); + proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(proxyUpdateControl); proxySetsLastApplied = - SerializationUtil.readJson(proxyUpdateControl.getResource().getStatus().getLastApplied(), + SerializationUtil.readJson(proxyUpdateControl.getResource().get().getStatus().getLastApplied(), ProxyController.ProxySetsLastApplied.class); Assert.assertEquals(client.getCreatedResources(Deployment.class).size(), 0); Assert.assertNotNull(proxySetsLastApplied.getSets().get("setz")); @@ -597,10 +597,10 @@ public void testRollingUpdate() throws Exception { resolver.putDeployment("pulsar-spec-1-proxy-setz", true); client = new MockKubernetesClient(NAMESPACE, resolver); - proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource(), client); + proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(proxyUpdateControl); proxySetsLastApplied = - SerializationUtil.readJson(proxyUpdateControl.getResource().getStatus().getLastApplied(), + SerializationUtil.readJson(proxyUpdateControl.getResource().get().getStatus().getLastApplied(), ProxyController.ProxySetsLastApplied.class); Assert.assertEquals(client.getCreatedResources(Deployment.class).size(), 1); Assert.assertNotNull(proxySetsLastApplied.getSets().get("seta")); @@ -608,10 +608,10 @@ public void testRollingUpdate() throws Exception { resolver.putDeployment("pulsar-spec-1-proxy-seta", true); client = new MockKubernetesClient(NAMESPACE, resolver); - proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource(), client); + proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlReady(proxyUpdateControl); Assert.assertEquals(client.getCreatedResources(Deployment.class).size(), 0); - Assert.assertNotNull(proxyUpdateControl.getResource().getStatus().getLastApplied()); + Assert.assertNotNull(proxyUpdateControl.getResource().get().getStatus().getLastApplied()); // now update @@ -630,7 +630,7 @@ public void testRollingUpdate() throws Exception { seta: {} """; client = new MockKubernetesClient(NAMESPACE, resolver); - proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource(), client); + proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(proxyUpdateControl); Assert.assertEquals(client.getCreatedResources(Deployment.class).size(), 1); Assert.assertNotNull(client.getCreatedResource(Deployment.class, "pulsar-spec-1-proxy-setz")); @@ -639,7 +639,7 @@ public void testRollingUpdate() throws Exception { resolver.putDeployment("pulsar-spec-1-proxy-setz", true); client = new MockKubernetesClient(NAMESPACE, resolver); - proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource(), client); + proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(proxyUpdateControl); Assert.assertEquals(client.getCreatedResources(Deployment.class).size(), 1); Assert.assertNotNull(client.getCreatedResource(Deployment.class, "pulsar-spec-1-proxy-seta")); @@ -647,7 +647,7 @@ public void testRollingUpdate() throws Exception { resolver.putDeployment("pulsar-spec-1-proxy-seta", true); client = new MockKubernetesClient(NAMESPACE, resolver); - proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource(), client); + proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlReady(proxyUpdateControl); Assert.assertEquals(client.getCreatedResources(Deployment.class).size(), 0); } @@ -671,30 +671,30 @@ public void testParallelUpdate() throws Exception { Assert.assertEquals(client.getCreatedResources(Deployment.class).size(), 2); Assert.assertNotNull(client.getCreatedResource(Deployment.class, "pulsar-spec-1-proxy-setz")); Assert.assertNotNull(client.getCreatedResource(Deployment.class, "pulsar-spec-1-proxy-seta")); - Assert.assertNotNull(proxyUpdateControl.getResource().getStatus().getLastApplied()); + Assert.assertNotNull(proxyUpdateControl.getResource().get().getStatus().getLastApplied()); client = new MockKubernetesClient(NAMESPACE, resolver); - proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource(), client); + proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(proxyUpdateControl); Assert.assertEquals(client.getCreatedResources(Deployment.class).size(), 0); - Assert.assertNotNull(proxyUpdateControl.getResource().getStatus().getLastApplied()); + Assert.assertNotNull(proxyUpdateControl.getResource().get().getStatus().getLastApplied()); resolver.putDeployment("pulsar-spec-1-proxy-setz", true); client = new MockKubernetesClient(NAMESPACE, resolver); - proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource(), client); + proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(proxyUpdateControl); Assert.assertEquals(client.getCreatedResources(Deployment.class).size(), 0); - Assert.assertNotNull(proxyUpdateControl.getResource().getStatus().getLastApplied()); + Assert.assertNotNull(proxyUpdateControl.getResource().get().getStatus().getLastApplied()); resolver.putDeployment("pulsar-spec-1-proxy-seta", true); client = new MockKubernetesClient(NAMESPACE, resolver); - proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource(), client); + proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlReady(proxyUpdateControl); Assert.assertEquals(client.getCreatedResources(Deployment.class).size(), 0); - Assert.assertNotNull(proxyUpdateControl.getResource().getStatus().getLastApplied()); + Assert.assertNotNull(proxyUpdateControl.getResource().get().getStatus().getLastApplied()); // now update @@ -714,29 +714,29 @@ public void testParallelUpdate() throws Exception { seta: {} """; client = new MockKubernetesClient(NAMESPACE, resolver); - proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource(), client); + proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(proxyUpdateControl); Assert.assertEquals(client.getCreatedResources(Deployment.class).size(), 2); Assert.assertNotNull(client.getCreatedResource(Deployment.class, "pulsar-spec-1-proxy-setz")); Assert.assertNotNull(client.getCreatedResource(Deployment.class, "pulsar-spec-1-proxy-seta")); - Assert.assertNotNull(proxyUpdateControl.getResource().getStatus().getLastApplied()); + Assert.assertNotNull(proxyUpdateControl.getResource().get().getStatus().getLastApplied()); resolver.putDeployment("pulsar-spec-1-proxy-setz", true); client = new MockKubernetesClient(NAMESPACE, resolver); - proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource(), client); + proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(proxyUpdateControl); Assert.assertEquals(client.getCreatedResources(Deployment.class).size(), 0); - Assert.assertNotNull(proxyUpdateControl.getResource().getStatus().getLastApplied()); + Assert.assertNotNull(proxyUpdateControl.getResource().get().getStatus().getLastApplied()); resolver.putDeployment("pulsar-spec-1-proxy-seta", true); client = new MockKubernetesClient(NAMESPACE, resolver); - proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource(), client); + proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlReady(proxyUpdateControl); Assert.assertEquals(client.getCreatedResources(Deployment.class).size(), 0); - Assert.assertNotNull(proxyUpdateControl.getResource().getStatus().getLastApplied()); + Assert.assertNotNull(proxyUpdateControl.getResource().get().getStatus().getLastApplied()); } @Test @@ -758,7 +758,7 @@ public void testDefineProxySetWithDefaultName() throws Exception { // verify order of sets follows the order declared in the spec Assert.assertNotNull(client.getCreatedResource(Deployment.class, "pulsar-spec-1-proxy-setz")); ProxyController.ProxySetsLastApplied proxySetsLastApplied = - SerializationUtil.readJson(proxyUpdateControl.getResource().getStatus().getLastApplied(), + SerializationUtil.readJson(proxyUpdateControl.getResource().get().getStatus().getLastApplied(), ProxyController.ProxySetsLastApplied.class); Assert.assertNotNull(proxySetsLastApplied.getSets().get("setz")); Assert.assertEquals(client.getDeletedResources().size(), 0); @@ -766,10 +766,10 @@ public void testDefineProxySetWithDefaultName() throws Exception { resolver.putDeployment("pulsar-spec-1-proxy-setz", true); client = new MockKubernetesClient(NAMESPACE, resolver); - proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource(), client); + proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlInitializing(proxyUpdateControl); proxySetsLastApplied = - SerializationUtil.readJson(proxyUpdateControl.getResource().getStatus().getLastApplied(), + SerializationUtil.readJson(proxyUpdateControl.getResource().get().getStatus().getLastApplied(), ProxyController.ProxySetsLastApplied.class); Assert.assertEquals(client.getCreatedResources(Deployment.class).size(), 1); Assert.assertNotNull(proxySetsLastApplied.getSets().get("proxy")); @@ -778,7 +778,7 @@ public void testDefineProxySetWithDefaultName() throws Exception { resolver.putDeployment("pulsar-spec-1-proxy", true); client = new MockKubernetesClient(NAMESPACE, resolver); - proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource(), client); + proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlReady(proxyUpdateControl); Assert.assertEquals(client.getCreatedResources(Deployment.class).size(), 0); @@ -791,10 +791,10 @@ public void testDefineProxySetWithDefaultName() throws Exception { setz: {} """; client = new MockKubernetesClient(NAMESPACE, resolver); - proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource(), client); + proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlReady(proxyUpdateControl); proxySetsLastApplied = - SerializationUtil.readJson(proxyUpdateControl.getResource().getStatus().getLastApplied(), + SerializationUtil.readJson(proxyUpdateControl.getResource().get().getStatus().getLastApplied(), ProxyController.ProxySetsLastApplied.class); Assert.assertNull(proxySetsLastApplied.getSets().get("proxy")); Assert.assertEquals(client.getCreatedResources(Deployment.class).size(), 0); @@ -815,10 +815,10 @@ public void testDefineProxySetWithDefaultName() throws Exception { sets: {} """; client = new MockKubernetesClient(NAMESPACE, resolver); - proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource(), client); + proxyUpdateControl = invokeController(spec, proxyUpdateControl.getResource().get(), client); KubeTestUtil.assertUpdateControlReady(proxyUpdateControl); proxySetsLastApplied = - SerializationUtil.readJson(proxyUpdateControl.getResource().getStatus().getLastApplied(), + SerializationUtil.readJson(proxyUpdateControl.getResource().get().getStatus().getLastApplied(), ProxyController.ProxySetsLastApplied.class); Assert.assertNull(proxySetsLastApplied.getSets().get("setz")); Assert.assertEquals(client.getCreatedResources(Deployment.class).size(), 0); @@ -831,4 +831,4 @@ public void testDefineProxySetWithDefaultName() throws Exception { } -} +} \ No newline at end of file diff --git a/operator/src/test/java/com/datastax/oss/kaap/controllers/utils/CertManagerCertificatesProvisionerTest.java b/operator/src/test/java/com/datastax/oss/kaap/controllers/utils/CertManagerCertificatesProvisionerTest.java index 93123e1a..ce28f14d 100644 --- a/operator/src/test/java/com/datastax/oss/kaap/controllers/utils/CertManagerCertificatesProvisionerTest.java +++ b/operator/src/test/java/com/datastax/oss/kaap/controllers/utils/CertManagerCertificatesProvisionerTest.java @@ -15,12 +15,14 @@ */ package com.datastax.oss.kaap.controllers.utils; +import com.datastax.oss.kaap.common.SerializationUtil; import com.datastax.oss.kaap.crds.cluster.PulsarClusterSpec; import com.datastax.oss.kaap.mocks.MockKubernetesClient; +import io.fabric8.certmanager.api.model.acme.v1.ACMEChallengeSolver; import io.fabric8.certmanager.api.model.v1.Certificate; import io.fabric8.certmanager.api.model.v1.Issuer; +import org.junit.jupiter.api.Test; import org.testng.Assert; -import org.testng.annotations.Test; public class CertManagerCertificatesProvisionerTest { @@ -450,8 +452,245 @@ public void testGeneratePerComponent() throws Exception { } + @Test + public void testAcmeIssuerHttp01() { + final MockKubernetesClient mockKubernetesClient = generateCertificates(""" + global: + name: pul + tls: + enabled: true + broker: + enabled: true + secretName: pul-broker-tls + certProvisioner: + acme: + enabled: true + broker: + generate: true + secretName: pul-broker-tls + issuer: + name: pul-acme-issuer + server: https://acme-v02.api.letsencrypt.org/directory + email: admin@example.com + privateKeySecretName: pul-acme-account-key + solvers: + - http01: + ingressClass: nginx + """); + + final Issuer issuer = mockKubernetesClient + .getCreatedResource(Issuer.class, "pul-acme-issuer") + .getResource(); + assertAcmeIssuerBase(issuer); + Assert.assertEquals(issuer.getSpec().getAcme().getSolvers().size(), 1); + + final ACMEChallengeSolver solver = issuer.getSpec().getAcme().getSolvers().getFirst(); + Assert.assertNotNull(solver.getHttp01()); + Assert.assertNotNull(solver.getHttp01().getIngress()); + Assert.assertEquals(solver.getHttp01().getIngress().getIngressClassName(), "nginx"); + Assert.assertNull(solver.getDns01()); + } + + @Test + public void testAcmeIssuerRoute53() { + final MockKubernetesClient mockKubernetesClient = generateCertificates(""" + global: + name: pul + tls: + enabled: true + broker: + enabled: true + secretName: pul-broker-tls + certProvisioner: + acme: + enabled: true + broker: + generate: true + secretName: pul-broker-tls + issuer: + name: pul-acme-issuer + server: https://acme-v02.api.letsencrypt.org/directory + email: admin@example.com + privateKeySecretName: pul-acme-account-key + solvers: + - dns01: + route53: + region: us-east-1 + hostedZoneId: Z123456789 + """); + + final Issuer issuer = mockKubernetesClient + .getCreatedResource(Issuer.class, "pul-acme-issuer") + .getResource(); + assertAcmeIssuerBase(issuer); + Assert.assertEquals(issuer.getSpec().getAcme().getSolvers().size(), 1); + + final ACMEChallengeSolver solver = issuer.getSpec().getAcme().getSolvers().getFirst(); + Assert.assertNull(solver.getHttp01()); + Assert.assertNotNull(solver.getDns01()); + Assert.assertNotNull(solver.getDns01().getRoute53()); + Assert.assertEquals(solver.getDns01().getRoute53().getRegion(), "us-east-1"); + Assert.assertEquals(solver.getDns01().getRoute53().getHostedZoneID(), "Z123456789"); + Assert.assertNull(solver.getDns01().getCloudflare()); + Assert.assertNull(solver.getDns01().getCloudDNS()); + } + + @Test + public void testAcmeIssuerCloudflare() { + final MockKubernetesClient mockKubernetesClient = generateCertificates(""" + global: + name: pul + tls: + enabled: true + broker: + enabled: true + secretName: pul-broker-tls + certProvisioner: + acme: + enabled: true + broker: + generate: true + secretName: pul-broker-tls + issuer: + name: pul-acme-issuer + server: https://acme-v02.api.letsencrypt.org/directory + email: admin@example.com + privateKeySecretName: pul-acme-account-key + solvers: + - dns01: + cloudflare: + email: cf-admin@example.com + apiTokenSecretName: cf-api-token + apiTokenSecretKey: token + """); + + final Issuer issuer = mockKubernetesClient + .getCreatedResource(Issuer.class, "pul-acme-issuer") + .getResource(); + assertAcmeIssuerBase(issuer); + Assert.assertEquals(issuer.getSpec().getAcme().getSolvers().size(), 1); + + final ACMEChallengeSolver solver = issuer.getSpec().getAcme().getSolvers().getFirst(); + Assert.assertNull(solver.getHttp01()); + Assert.assertNotNull(solver.getDns01()); + Assert.assertNotNull(solver.getDns01().getCloudflare()); + Assert.assertEquals(solver.getDns01().getCloudflare().getEmail(), "cf-admin@example.com"); + Assert.assertEquals(solver.getDns01().getCloudflare().getApiTokenSecretRef().getName(), + "cf-api-token"); + Assert.assertEquals(solver.getDns01().getCloudflare().getApiTokenSecretRef().getKey(), "token"); + Assert.assertNull(solver.getDns01().getRoute53()); + Assert.assertNull(solver.getDns01().getCloudDNS()); + } + + @Test + public void testAcmeIssuerCloudDns() { + final MockKubernetesClient mockKubernetesClient = generateCertificates(""" + global: + name: pul + tls: + enabled: true + broker: + enabled: true + secretName: pul-broker-tls + certProvisioner: + acme: + enabled: true + broker: + generate: true + secretName: pul-broker-tls + issuer: + name: pul-acme-issuer + server: https://acme-v02.api.letsencrypt.org/directory + email: admin@example.com + privateKeySecretName: pul-acme-account-key + solvers: + - dns01: + cloudDNS: + project: my-gcp-project + serviceAccountSecretName: gcp-sa-secret + serviceAccountSecretKey: service-account.json + """); + + final Issuer issuer = mockKubernetesClient + .getCreatedResource(Issuer.class, "pul-acme-issuer") + .getResource(); + assertAcmeIssuerBase(issuer); + Assert.assertEquals(issuer.getSpec().getAcme().getSolvers().size(), 1); + + final ACMEChallengeSolver solver = issuer.getSpec().getAcme().getSolvers().getFirst(); + Assert.assertNull(solver.getHttp01()); + Assert.assertNotNull(solver.getDns01()); + Assert.assertNotNull(solver.getDns01().getCloudDNS()); + Assert.assertEquals(solver.getDns01().getCloudDNS().getProject(), "my-gcp-project"); + Assert.assertEquals( + solver.getDns01().getCloudDNS().getServiceAccountSecretRef().getName(), + "gcp-sa-secret" + ); + Assert.assertEquals( + solver.getDns01().getCloudDNS().getServiceAccountSecretRef().getKey(), + "service-account.json" + ); + Assert.assertNull(solver.getDns01().getRoute53()); + Assert.assertNull(solver.getDns01().getCloudflare()); + } + + @Test + public void testAcmeCertificateGeneration() { + final MockKubernetesClient mockKubernetesClient = generateCertificates(""" + global: + name: pul + tls: + enabled: true + broker: + enabled: true + secretName: pul-broker-tls + certProvisioner: + acme: + enabled: true + broker: + generate: true + secretName: pul-broker-tls + issuer: + name: pul-acme-issuer + server: https://acme-v02.api.letsencrypt.org/directory + email: admin@example.com + privateKeySecretName: pul-acme-account-key + solvers: + - http01: + ingressClass: nginx + """); + + final Certificate brokerCertificate = + mockKubernetesClient.getCreatedResource(Certificate.class, "pul-broker-tls").getResource(); + Assert.assertNotNull(brokerCertificate); + Assert.assertEquals(brokerCertificate.getSpec().getIssuerRef().getName(), "pul-acme-issuer"); + Assert.assertEquals(brokerCertificate.getSpec().getSecretName(), "pul-broker-tls"); + + final Issuer issuer = mockKubernetesClient + .getCreatedResource(Issuer.class, "pul-acme-issuer") + .getResource(); + Assert.assertNotNull(issuer); + Assert.assertEquals(issuer.getSpec().getAcme().getSolvers().size(), 1); + } + + private static void assertAcmeIssuerBase(Issuer issuer) { + Assert.assertNotNull(issuer); + Assert.assertEquals(issuer.getMetadata().getName(), "pul-acme-issuer"); + Assert.assertEquals(issuer.getMetadata().getNamespace(), NAMESPACE); + + Assert.assertNotNull(issuer.getSpec()); + Assert.assertNotNull(issuer.getSpec().getAcme()); + Assert.assertEquals( + issuer.getSpec().getAcme().getServer(), + "https://acme-v02.api.letsencrypt.org/directory" + ); + Assert.assertEquals(issuer.getSpec().getAcme().getEmail(), "admin@example.com"); + Assert.assertEquals(issuer.getSpec().getAcme().getPrivateKeySecretRef().getName(), + "pul-acme-account-key"); + } + private MockKubernetesClient generateCertificates(String spec) { - final PulsarClusterSpec pulsarClusterSpec = MockKubernetesClient.readYaml(spec, PulsarClusterSpec.class); + final PulsarClusterSpec pulsarClusterSpec = SerializationUtil.readYaml(spec, PulsarClusterSpec.class); final MockKubernetesClient mockKubernetesClient = new MockKubernetesClient(NAMESPACE); pulsarClusterSpec.getGlobal().applyDefaults(null); diff --git a/operator/src/test/java/com/datastax/oss/kaap/controllers/zookeeper/ZooKeeperControllerTest.java b/operator/src/test/java/com/datastax/oss/kaap/controllers/zookeeper/ZooKeeperControllerTest.java index 5a4e08c7..625e6cd2 100644 --- a/operator/src/test/java/com/datastax/oss/kaap/controllers/zookeeper/ZooKeeperControllerTest.java +++ b/operator/src/test/java/com/datastax/oss/kaap/controllers/zookeeper/ZooKeeperControllerTest.java @@ -752,7 +752,7 @@ public void testEnvEmpty() throws Exception { ); final ZooKeeperFullSpec lastApplied = SerializationUtil.readJson(zooKeeperUpdateControl - .getResource().getStatus().getLastApplied(), ZooKeeperFullSpec.class); + .getResource().get().getStatus().getLastApplied(), ZooKeeperFullSpec.class); Assert.assertTrue(lastApplied.getZookeeper().getEnv().isEmpty()); } @@ -866,7 +866,7 @@ public void testSidecarsEmpty() throws Exception { ); final ZooKeeperFullSpec lastApplied = SerializationUtil.readJson(zooKeeperUpdateControl - .getResource().getStatus().getLastApplied(), ZooKeeperFullSpec.class); + .getResource().get().getStatus().getLastApplied(), ZooKeeperFullSpec.class); Assert.assertTrue(lastApplied.getZookeeper().getSidecars().isEmpty()); } diff --git a/operator/src/test/java/com/datastax/oss/kaap/controllers/zookeeper/ZooKeeperJobTest.java b/operator/src/test/java/com/datastax/oss/kaap/controllers/zookeeper/ZooKeeperJobTest.java index 88a56d7a..13dbf61e 100644 --- a/operator/src/test/java/com/datastax/oss/kaap/controllers/zookeeper/ZooKeeperJobTest.java +++ b/operator/src/test/java/com/datastax/oss/kaap/controllers/zookeeper/ZooKeeperJobTest.java @@ -15,108 +15,98 @@ */ package com.datastax.oss.kaap.controllers.zookeeper; +import com.datastax.oss.kaap.common.SerializationUtil; import com.datastax.oss.kaap.crds.cluster.PulsarClusterSpec; -import com.datastax.oss.kaap.mocks.MockKubernetesClient; import io.fabric8.kubernetes.api.model.batch.v1.Job; import io.fabric8.kubernetes.api.model.batch.v1.JobBuilder; -import io.fabric8.kubernetes.client.server.mock.KubernetesServer; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.fabric8.kubernetes.client.server.mock.EnableKubernetesMockClient; +import io.fabric8.kubernetes.client.server.mock.KubernetesMockServer; import java.net.HttpURLConnection; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.SneakyThrows; import lombok.extern.jbosslog.JBossLog; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; @JBossLog +@EnableKubernetesMockClient(https = false) public class ZooKeeperJobTest { private static final String NAMESPACE = "ns"; + KubernetesMockServer server; + KubernetesClient client; - @Builder(setterPrefix = "with") - public static class MockServer implements AutoCloseable { + enum CurrentJobState { + NotExists, + Running, + Completed + } - enum CurrentJobState { - NotExists, - Running, - Completed - } - @Data - @AllArgsConstructor - public static class Op { - String method; - } + @Data + @AllArgsConstructor + public static class Op { + String method; + } - List ops; - - private PulsarClusterSpec pulsarClusterSpec; - private CurrentJobState currentJobState; - KubernetesServer server; - - @SneakyThrows - void start() { - ops = new ArrayList<>(); - Objects.requireNonNull(currentJobState); - pulsarClusterSpec.getGlobal().applyDefaults(null); - pulsarClusterSpec.getZookeeper().applyDefaults(pulsarClusterSpec.getGlobalSpec()); - - - final String clusterSpecName = pulsarClusterSpec.getGlobal().getName(); - - server = new KubernetesServer(false); - server.before(); - - server.expect() - .post() - .withPath("/apis/batch/v1/namespaces/ns/jobs") - .andReply(HttpURLConnection.HTTP_OK, recordedRequest -> { - MockServer.this.ops.add(new Op("POST")); - return null; - }) - .once(); - - server.expect() - .delete() - .withPath("/apis/batch/v1/namespaces/ns/jobs/%s-zookeeper-metadata".formatted(clusterSpecName)) - .andReply(HttpURLConnection.HTTP_OK, recordedRequest -> { - MockServer.this.ops.add(new Op("DELETE")); - return null; - }) - .once(); - - - - final Job currentJob; - if (currentJobState == CurrentJobState.NotExists) { - currentJob = null; - } else { - currentJob = new JobBuilder() - .withNewMetadata() - .withName("%s-zookeeper-metadata".formatted(clusterSpecName)) - .endMetadata() - .withNewStatus() - .withSucceeded(currentJobState == CurrentJobState.Running ? 0 : 1) - .endStatus() - .build(); - } - - server.expect() - .get() - .withPath("/apis/batch/v1/namespaces/ns/jobs/%s-zookeeper-metadata".formatted(clusterSpecName)) - .andReturn(HttpURLConnection.HTTP_OK, currentJob) - .always(); + private final List ops = new ArrayList<>(); + + @SneakyThrows + private void setupMocks( + PulsarClusterSpec pulsarClusterSpec, + CurrentJobState currentJobState) { + + ops.clear(); + pulsarClusterSpec.getGlobal().applyDefaults(null); + pulsarClusterSpec.getZookeeper().applyDefaults(pulsarClusterSpec.getGlobalSpec()); + + + final String clusterSpecName = pulsarClusterSpec.getGlobal().getName(); + + server.expect() + .post() + .withPath("/apis/batch/v1/namespaces/ns/jobs") + .andReply(HttpURLConnection.HTTP_OK, recordedRequest -> { + ZooKeeperJobTest.this.ops.add(new Op("POST")); + return null; + }) + .once(); + + server.expect() + .delete() + .withPath("/apis/batch/v1/namespaces/ns/jobs/%s-zookeeper-metadata".formatted(clusterSpecName)) + .andReply(HttpURLConnection.HTTP_OK, recordedRequest -> { + ZooKeeperJobTest.this.ops.add(new Op("DELETE")); + return null; + }) + .once(); + + + final Job currentJob; + if (currentJobState == CurrentJobState.NotExists) { + currentJob = null; + } else { + currentJob = new JobBuilder() + .withNewMetadata() + .withName("%s-zookeeper-metadata".formatted(clusterSpecName)) + .endMetadata() + .withNewStatus() + .withSucceeded(currentJobState == CurrentJobState.Running ? 0 : 1) + .endStatus() + .build(); } - @Override - public void close() { - server.after(); - } + server.expect() + .get() + .withPath("/apis/batch/v1/namespaces/ns/jobs/%s-zookeeper-metadata".formatted(clusterSpecName)) + .andReturn(currentJob == null ? HttpURLConnection.HTTP_NOT_FOUND : HttpURLConnection.HTTP_OK, currentJob) + .always(); } + @Test public void testCreate() throws Exception { final String spec = """ @@ -126,9 +116,9 @@ public void testCreate() throws Exception { image: apachepulsar/pulsar:global """; - final MockServer server = invokeJobCreate(spec, MockServer.CurrentJobState.NotExists); - Assert.assertEquals(server.ops.size(), 1); - Assert.assertEquals(server.ops.get(0).method, "POST"); + invokeJobCreate(spec, CurrentJobState.NotExists); + Assertions.assertEquals(ops.size(), 1); + Assertions.assertEquals(ops.get(0).method, "POST"); } @@ -141,10 +131,10 @@ public void testRecreateIfRunning() throws Exception { image: apachepulsar/pulsar:global """; - final MockServer server = invokeJobCreate(spec, MockServer.CurrentJobState.Running); - Assert.assertEquals(server.ops.size(), 2); - Assert.assertEquals(server.ops.get(0).method, "DELETE"); - Assert.assertEquals(server.ops.get(1).method, "POST"); + invokeJobCreate(spec, CurrentJobState.Running); + Assertions.assertEquals(ops.size(), 2); + Assertions.assertEquals(ops.get(0).method, "DELETE"); + Assertions.assertEquals(ops.get(1).method, "POST"); } @@ -157,27 +147,21 @@ public void testDoNotRecreateIfCompleted() throws Exception { image: apachepulsar/pulsar:global """; - final MockServer server = invokeJobCreate(spec, MockServer.CurrentJobState.Completed); - Assert.assertEquals(server.ops.size(), 0); + invokeJobCreate(spec, CurrentJobState.Completed); + Assertions.assertEquals(ops.size(), 0); } - private MockServer invokeJobCreate(String spec, MockServer.CurrentJobState state) { + private void invokeJobCreate(String spec, CurrentJobState state) { - final PulsarClusterSpec clusterSpec = MockKubernetesClient.readYaml(spec, PulsarClusterSpec.class); + final PulsarClusterSpec clusterSpec = SerializationUtil.readYaml(spec, PulsarClusterSpec.class); - try (final MockServer server = MockServer.builder() - .withPulsarClusterSpec(clusterSpec) - .withCurrentJobState(state) - .build();) { - server.start(); + setupMocks(clusterSpec, state); - final ZooKeeperResourcesFactory factory = - new ZooKeeperResourcesFactory(server.server.getClient(), NAMESPACE, - clusterSpec.getZookeeper(), - clusterSpec.getGlobal(), - null); - factory.createMetadataInitializationJobIfNeeded(); - return server; - } + final ZooKeeperResourcesFactory factory = + new ZooKeeperResourcesFactory(client, NAMESPACE, + clusterSpec.getZookeeper(), + clusterSpec.getGlobal(), + null); + factory.createMetadataInitializationJobIfNeeded(); } -} +} \ No newline at end of file diff --git a/pom.xml b/pom.xml index edbdf0d3..294e5381 100644 --- a/pom.xml +++ b/pom.xml @@ -21,7 +21,7 @@ com.datastax.oss kaap pom - 0.3.1-SNAPSHOT + 0.4.5-SNAPSHOT operator-common operator @@ -30,40 +30,58 @@ Kaap :: Kubernetes Autoscaling for Apache Pulsar - scm:git:https://github.com/datastax/kaap.git - scm:git:https://github.com/datastax/kaap.git + scm:git:git@github.com:datastax/kaap.git + scm:git:git@github.com:datastax/kaap.git https://github.com/datastax/kaap HEAD true - 17 - 17 + 21 + 21 UTF-8 UTF-8 - 5.1.4 - - 6.3.1 + 7.2.1 + + 7.3.1 + 5.1.0 7.7.0 4.10.0 - 1.18.32 - 4.7.2.1 - 4.7.2 - 3.2.1 + 1.18.42 + 4.7.3.6 + 4.7.3 + 3.5.0 1.15 - 3.12.0 + 3.19.0 0.11.5 - 2.13.4 - 0.93.2 - 1.17.6 - 3.3.0 + 1.21.4 + 3.4.2 1.5.1 4.2.0 5.6.0 - 3.9.2 + 3.9.4 + 1.83 + 1.5.32 + + io.fabric8 + kubernetes-client-bom + ${fabric8.version} + pom + import + + + io.javaoperatorsdk + operator-framework-core + ${josdk.version} + + + io.javaoperatorsdk + micrometer-support + ${josdk.version} + io.quarkiverse.operatorsdk quarkus-operator-sdk-bom @@ -111,7 +129,22 @@ io.fabric8 crd-generator-api - ${kubernetes-client.version} + ${fabric8.version} + + + io.fabric8 + certmanager-model-v1 + ${fabric8.version} + + + io.fabric8 + kubernetes-httpclient-okhttp + ${fabric8.version} + + + io.fabric8 + kubernetes-server-mock + ${fabric8.version} io.jsonwebtoken @@ -128,18 +161,6 @@ jjwt-jackson ${jjwt.version} - - com.fasterxml.jackson - jackson-bom - ${jackson.version} - pom - import - - - io.sundr - sundr-adapter-reflect - ${sundrio.version} - org.testcontainers testcontainers @@ -166,6 +187,26 @@ zookeeper ${zookkeeper.version} + + org.bouncycastle + bcprov-jdk18on + ${bouncy-castle.version} + + + org.bouncycastle + bcpkix-jdk18on + ${bouncy-castle.version} + + + org.bouncycastle + bcutil-jdk18on + ${bouncy-castle.version} + + + ch.qos.logback + logback-classic + ${logback-classic.version} + @@ -205,14 +246,13 @@ org.apache.maven.plugins maven-compiler-plugin - 3.10.1 + 3.14.1 false UTF-8 true true - true -parameters -Xlint:all @@ -222,6 +262,13 @@ -Xlint:-processing -Xpkginfo:always + + + org.projectlombok + lombok + ${lombok.version} + + @@ -245,7 +292,7 @@ com.puppycrawl.tools checkstyle - 10.6.0 + 10.26.1 @@ -262,7 +309,7 @@ org.apache.maven.plugins maven-surefire-plugin - 3.0.0-M3 + 3.0.0 -XX:+ExitOnOutOfMemoryError false @@ -309,6 +356,7 @@
src/license-header.txt
helm/kaap/crds/** + **/Dockerfile diff --git a/release/release.sh b/release/release.sh index 195a4a37..e95b8e6e 100755 --- a/release/release.sh +++ b/release/release.sh @@ -16,6 +16,7 @@ # set -e +VERSION_REGEX="[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+)?" check_clean() { if [ ! -z "$(git status --porcelain)" ]; then @@ -24,10 +25,12 @@ check_clean() { exit 1 fi } + validate_new_version() { local v=$1 - [[ "${v}" =~ ^[0-9].[0-9].[0-9]$ ]] || (echo "new_version format is incorrect. The format must be in format MAJOR.MINOR.PATCH"; exit 1) + [[ "${v}" =~ ^$VERSION_REGEX$ ]] || (echo "new_version format is incorrect. The format must be in format MAJOR.MINOR.PATCH"; exit 1) } + validate_artifact() { local v=$1 [[ "$v" == "operator" || "$v" == "kaap-stack-chart" || "$v" == "kaap-chart" ]] || (echo "artifact must be one of kaap-chart,kaap-stack-chart,operator. got $v"; exit 1) @@ -49,6 +52,13 @@ replace_version_in_chart() { line_number=$(grep -n 'version:' $file | cut -d ':' -f1 | head -n 1) sed -i '' -- "${line_number}s/.*/version: $new_version/" $file } +replace_version_in_helm_values() { + local file=$1 + local new_version=$2 + echo "replace in values $file $new_version" + set -x + sed -E -i '' -- "s|image: datastax/kaap:$VERSION_REGEX$|image: datastax/kaap:$new_version|g" "$file" +} artifact=$1 new_version=$2 @@ -79,6 +89,7 @@ if [[ "$artifact" == "operator" ]]; then echo "$new_version released." elif [[ "$artifact" == "kaap-chart" ]]; then replace_version_in_chart helm/kaap/Chart.yaml $new_version + replace_version_in_helm_values helm/kaap/values.yaml $new_version git commit -am "Release kaap chart $new_version" git tag kaap-$new_version git push diff --git a/src/generate-crds-docs.sh b/src/generate-crds-docs.sh index b034cb94..7739c601 100755 --- a/src/generate-crds-docs.sh +++ b/src/generate-crds-docs.sh @@ -16,10 +16,19 @@ # limitations under the License. # +if command -v docker >/dev/null 2>&1; then + DOCKER_COMMAND="docker" +elif command -v podman >/dev/null 2>&1; then + DOCKER_COMMAND="podman" +else + echo "Error: Neither 'docker' nor 'podman' command found in PATH." >&2 + exit 1 +fi + set -e echo "Generating CRDs docs" mvn clean package -Pupdate-crds -pl operator -docker run -u $(id -u):$(id -g) --rm -v ${PWD}:/workdir ghcr.io/fybrik/crdoc:latest \ +${DOCKER_COMMAND} run -u $(id -u):$(id -g) --rm -v ${PWD}:/workdir ghcr.io/fybrik/crdoc:latest \ --resources /workdir/helm/kaap/crds/pulsarclusters.kaap.oss.datastax.com-v1.yml \ --template /workdir/src/reference-markdown-template.tmpl \ --output /workdir/docs/api-reference.md diff --git a/tests/pom.xml b/tests/pom.xml index 85e84b4c..27cc36b5 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -20,14 +20,14 @@ kaap com.datastax.oss - 0.3.1-SNAPSHOT + 0.4.5-SNAPSHOT 4.0.0 tests - 1.4.3 + 1.4.10 @@ -71,7 +71,6 @@ jakarta.validation jakarta.validation-api - 2.0.2 test @@ -104,7 +103,6 @@ ch.qos.logback logback-classic - 1.2.13 test @@ -123,13 +121,11 @@ io.fabric8 kubernetes-client - ${kubernetes-client.version} test io.fabric8 certmanager-client - ${kubernetes-client.version} test diff --git a/tests/src/test/java/com/datastax/oss/kaap/tests/BaseK8sEnvTest.java b/tests/src/test/java/com/datastax/oss/kaap/tests/BaseK8sEnvTest.java index 6b75c6fd..e6fc1815 100644 --- a/tests/src/test/java/com/datastax/oss/kaap/tests/BaseK8sEnvTest.java +++ b/tests/src/test/java/com/datastax/oss/kaap/tests/BaseK8sEnvTest.java @@ -34,6 +34,7 @@ import io.fabric8.certmanager.api.model.v1.CertificateRequest; import io.fabric8.certmanager.api.model.v1.Issuer; import io.fabric8.kubernetes.api.model.HasMetadata; +import io.fabric8.kubernetes.api.model.Namespace; import io.fabric8.kubernetes.api.model.NamespaceBuilder; import io.fabric8.kubernetes.api.model.Node; import io.fabric8.kubernetes.api.model.ObjectMeta; @@ -67,8 +68,10 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; import java.util.function.BiConsumer; import java.util.stream.Collectors; import lombok.SneakyThrows; @@ -185,7 +188,7 @@ public void onClose(WatcherException cause) { private String getRbacManifest() throws IOException { List allRbac = new ArrayList<>(); allRbac.addAll(Files.readAllLines( - Paths.get(OPERATOR_CHART_PATH.toFile().getAbsolutePath(), "templates", "rbac.yaml"))); + Paths.get(OPERATOR_CHART_PATH.toFile().getAbsolutePath(), "templates", "rbac", "namespace-scoped.yaml"))); allRbac.add("---"); allRbac.addAll(Files.readAllLines( Paths.get(OPERATOR_CHART_PATH.toFile().getAbsolutePath(), "templates", "serviceaccount.yaml"))); @@ -207,6 +210,7 @@ private String getOperatorDeploymentManifest() throws IOException { labels: {{- include "kaap.labels" . | nindent 4 }} data: + QUARKUS_OPERATOR_SDK_NAMESPACES: "JOSDK_WATCH_CURRENT" QUARKUS_LOG_CATEGORY__COM_DATASTAX_OSS_KAAP__LEVEL: debug """.split("\n")).toList()); return simulateHelmRendering(manifests); @@ -233,6 +237,8 @@ private String simulateHelmRendering(List allRbac) { vars.put(".Values.operator.readinessProbe.periodSeconds", "30"); vars.put(".Values.operator.readinessProbe.successThreshold", "1"); vars.put(".Values.operator.readinessProbe.timeoutSeconds", "10"); + vars.put("$nodeSelector", " {}"); + vars.put(".Values.operator.tolerations", " []"); vars.put("include \"kaap.name\" .", "kaap"); vars.put("include \"kaap.roleName\" .", "kaap"); vars.put("include \"kaap.roleBindingName\" .", "kaap-role-binding"); @@ -242,8 +248,11 @@ private String simulateHelmRendering(List allRbac) { vars.put("include \"kaap.selectorLabels\" . | nindent 8", "{app.kubernetes.io/name: kaap}"); vars.put("include (print $.Template.BasePath \"/configmap.yaml\") . | sha256sum", "sha"); String result = ""; - // simulate go templating + // simulate Helm templating for (String l : allRbac) { + if (l.contains("{{- $")) { // ignore variable definitions + continue; + } if (l.contains("{{- if")) { // assume always true and no content other than the if continue; } @@ -252,12 +261,13 @@ private String simulateHelmRendering(List allRbac) { } for (Map.Entry entry : vars.entrySet()) { l = l.replace("{{ %s }}".formatted(entry.getKey()), entry.getValue()); + l = l.replace("{{ toYaml %s | indent 8 }}".formatted(entry.getKey()), entry.getValue()); l = l.replace("{{- %s }}".formatted(entry.getKey()), entry.getValue()); } result += l + System.lineSeparator(); } if (result.contains("{{")) { - throw new RuntimeException("Failed to replace all go templating vars, template: " + result); + throw new RuntimeException("Failed to replace all Helm templating vars, template: " + result); } return result; } @@ -554,7 +564,9 @@ protected void deleteManifest(String manifest) { protected void deleteManifest(byte[] manifest) { final List resources = - client.load(new ByteArrayInputStream(manifest)).get(); + client.load(new ByteArrayInputStream(manifest)).get().stream() + .filter(Objects::nonNull) + .collect(Collectors.toList()); client.resourceList(resources).inNamespace(namespace).delete(); } @@ -568,7 +580,7 @@ protected String getOperatorPodName() { } protected void awaitOperatorRunning() { - Awaitility.await().untilAsserted(() -> { + Awaitility.await().atMost(15, TimeUnit.MINUTES).untilAsserted(() -> { final List pods = client.pods() .inNamespace(namespace) .withLabel("app.kubernetes.io/name", "kaap").list().getItems(); @@ -673,4 +685,17 @@ protected List getPodNamesByResourceSet(String rs) { .map(p -> p.getMetadata().getName()) .collect(Collectors.toList()); } + + protected String ensureNamespace(String namespaceName) { + var ns = new Namespace(); + var meta = new ObjectMeta(); + + meta.setName(namespaceName); + ns.setMetadata(meta); + + client.namespaces() + .resource(ns) + .createOrReplace(); + return namespaceName; + } } diff --git a/tests/src/test/java/com/datastax/oss/kaap/tests/BasePulsarClusterTest.java b/tests/src/test/java/com/datastax/oss/kaap/tests/BasePulsarClusterTest.java index 802dad76..3f3a12bf 100644 --- a/tests/src/test/java/com/datastax/oss/kaap/tests/BasePulsarClusterTest.java +++ b/tests/src/test/java/com/datastax/oss/kaap/tests/BasePulsarClusterTest.java @@ -237,6 +237,7 @@ protected void applyPulsarCluster(String content) { .createOrReplace(); Awaitility.await("waiting for pulsar cluster to be ready") + .atMost(15, TimeUnit.MINUTES) .with().pollInterval(10, TimeUnit.SECONDS) .until(() -> { if (isCrdReady(PulsarCluster.class, pulsarCluster.getMetadata().getName())) { @@ -546,7 +547,7 @@ protected void assertSourceInstalled() { return false; }); - Awaitility.await().untilAsserted(() -> { + Awaitility.await().atMost(15, TimeUnit.MINUTES).untilAsserted(() -> { printRunningPods(); Assert.assertTrue( client.pods().inNamespace(namespace).withName("pf-public-default-generator-0").isReady()); diff --git a/tests/src/test/java/com/datastax/oss/kaap/tests/BkDownScalingTest.java b/tests/src/test/java/com/datastax/oss/kaap/tests/BkDownScalingTest.java index 747a76c0..49463698 100644 --- a/tests/src/test/java/com/datastax/oss/kaap/tests/BkDownScalingTest.java +++ b/tests/src/test/java/com/datastax/oss/kaap/tests/BkDownScalingTest.java @@ -132,7 +132,7 @@ public void testBkDownscaling() throws Exception { log.info("Triggering audit"); triggerAudit(bookiePod); - Awaitility.waitAtMost(DEFAULT_AWAIT_SECONDS, TimeUnit.SECONDS).untilAsserted(() -> { + Awaitility.waitAtMost(15, TimeUnit.MINUTES).untilAsserted(() -> { long count = client.persistentVolumeClaims() .inNamespace(namespace) .resources() diff --git a/tests/src/test/java/com/datastax/oss/kaap/tests/BrokerAutoScalingTest.java b/tests/src/test/java/com/datastax/oss/kaap/tests/BrokerAutoScalingTest.java index ec57f51b..4a338d14 100644 --- a/tests/src/test/java/com/datastax/oss/kaap/tests/BrokerAutoScalingTest.java +++ b/tests/src/test/java/com/datastax/oss/kaap/tests/BrokerAutoScalingTest.java @@ -22,6 +22,7 @@ import io.fabric8.kubernetes.api.model.apps.StatefulSetStatus; import java.util.LinkedHashMap; import java.util.Map; +import java.util.concurrent.TimeUnit; import lombok.extern.slf4j.Slf4j; import org.awaitility.Awaitility; import org.testng.Assert; @@ -74,7 +75,7 @@ public void testAutoscaling() throws Exception { execInBastionPod(cmd); - Awaitility.await().until(() -> { + Awaitility.await().atMost(15, TimeUnit.MINUTES).until(() -> { final StatefulSetStatus status = client.apps().statefulSets() .inNamespace(namespace) .withName("pulsar-broker-dedicated") diff --git a/tests/src/test/java/com/datastax/oss/kaap/tests/LocalK8sEnvironment.java b/tests/src/test/java/com/datastax/oss/kaap/tests/LocalK8sEnvironment.java index 04319b3b..74760a35 100644 --- a/tests/src/test/java/com/datastax/oss/kaap/tests/LocalK8sEnvironment.java +++ b/tests/src/test/java/com/datastax/oss/kaap/tests/LocalK8sEnvironment.java @@ -168,7 +168,7 @@ private static void addClusterToUserKubeConfig(Config containerKubeConfig) { .build()); } currentKubeConfig.setCurrentContext(clusterName); - KubeConfigUtils.persistKubeConfigIntoFile(currentKubeConfig, defaultKubeConfigPath.getAbsolutePath()); + KubeConfigUtils.persistKubeConfigIntoFile(currentKubeConfig, defaultKubeConfigPath.getAbsoluteFile()); log.info("Persisted new cluster {} to {}", clusterName, defaultKubeConfigPath.getAbsolutePath()); log.info("Persisted new context {} to {}", clusterName, defaultKubeConfigPath.getAbsolutePath()); log.info("Persisted new user {} to {}", clusterName, defaultKubeConfigPath.getAbsolutePath()); diff --git a/tests/src/test/java/com/datastax/oss/kaap/tests/env/ExistingK8sEnv.java b/tests/src/test/java/com/datastax/oss/kaap/tests/env/ExistingK8sEnv.java index 0ec95701..cc359da2 100644 --- a/tests/src/test/java/com/datastax/oss/kaap/tests/env/ExistingK8sEnv.java +++ b/tests/src/test/java/com/datastax/oss/kaap/tests/env/ExistingK8sEnv.java @@ -33,7 +33,7 @@ public class ExistingK8sEnv implements K8sEnv { - public static final DockerImageName HELM_DOCKER_IMAGE = DockerImageName.parse("alpine/helm:3.7.2"); + public static final DockerImageName HELM_DOCKER_IMAGE = DockerImageName.parse("alpine/helm:3.17.2"); private static final String KUBECONFIG_CONTEXT = System.getProperty("kaap.tests.existingenv.kubeconfig.context"); private static final String STORAGECLASS = diff --git a/tests/src/test/java/com/datastax/oss/kaap/tests/env/k3s/AbstractK3sContainer.java b/tests/src/test/java/com/datastax/oss/kaap/tests/env/k3s/AbstractK3sContainer.java index ae1efcc1..b1b7d3a9 100644 --- a/tests/src/test/java/com/datastax/oss/kaap/tests/env/k3s/AbstractK3sContainer.java +++ b/tests/src/test/java/com/datastax/oss/kaap/tests/env/k3s/AbstractK3sContainer.java @@ -31,8 +31,8 @@ public abstract class AbstractK3sContainer implements AutoCloseable { public static final KubernetesImageSpec K3S_IMAGE = - new KubernetesImageSpec<>(K3sContainerVersion.VERSION_1_25_0) - .withImage("rancher/k3s:v1.25.3-k3s1"); + new KubernetesImageSpec<>(K3sContainerVersion.VERSION_1_33_4) + .withImage("rancher/k3s:v1.33.4-k3s1"); public abstract CompletableFuture start(); diff --git a/tests/src/test/java/com/datastax/oss/kaap/tests/env/k3s/LocalRegistryContainer.java b/tests/src/test/java/com/datastax/oss/kaap/tests/env/k3s/LocalRegistryContainer.java index ff54ee37..5c5d2240 100644 --- a/tests/src/test/java/com/datastax/oss/kaap/tests/env/k3s/LocalRegistryContainer.java +++ b/tests/src/test/java/com/datastax/oss/kaap/tests/env/k3s/LocalRegistryContainer.java @@ -31,7 +31,7 @@ public class LocalRegistryContainer> extends GenericContainer { public LocalRegistryContainer() { - super("registry:2.7"); + super("registry:2"); // workaround because withExposedPorts(5000) does not work addFixedExposedPort(nextFreePort(), 5000); withEnv("SETTINGS_FLAVOR", "local"); diff --git a/tests/src/test/java/com/datastax/oss/kaap/tests/env/k3s/ReusableK3sContainer.java b/tests/src/test/java/com/datastax/oss/kaap/tests/env/k3s/ReusableK3sContainer.java index 877d9756..e6584217 100644 --- a/tests/src/test/java/com/datastax/oss/kaap/tests/env/k3s/ReusableK3sContainer.java +++ b/tests/src/test/java/com/datastax/oss/kaap/tests/env/k3s/ReusableK3sContainer.java @@ -52,7 +52,7 @@ public void beforeStartHelm3(Consumer consumer) { @Override public synchronized Helm3Container helm3() { if (this.helm3 == null) { - this.helm3 = (Helm3Container) (new Helm3Container(DockerImageName.parse("alpine/helm:3.7.2"), + this.helm3 = (Helm3Container) (new Helm3Container(DockerImageName.parse("alpine/helm:3.17.2"), this::getInternalKubeconfig)) .withNetworkMode("container:" + this.getContainerId()); if (helm3ContainerConsumer != null) { diff --git a/tests/src/test/java/com/datastax/oss/kaap/tests/helm/BaseHelmTest.java b/tests/src/test/java/com/datastax/oss/kaap/tests/helm/BaseHelmTest.java index 687ab041..1dbc1b59 100644 --- a/tests/src/test/java/com/datastax/oss/kaap/tests/helm/BaseHelmTest.java +++ b/tests/src/test/java/com/datastax/oss/kaap/tests/helm/BaseHelmTest.java @@ -43,6 +43,7 @@ public class BaseHelmTest extends BasePulsarClusterTest { private static final String HELM_RELEASE_PREFIX = "pothr-"; public static final String HELM_BIND_OPERATOR = "/helm-kaap"; + public static final String HELM_BIND_DEPENDENCY = "/kaap"; public static final String HELM_BIND_STACK = "/helm-kaap-stack"; protected String helmReleaseName; @@ -62,6 +63,7 @@ public void beforeBaseHelmTest() throws Exception { final Path stackPath = Paths.get("..", "helm", "kaap-stack"); helm.withFileSystemBind(operatorPath.toFile().getAbsolutePath(), HELM_BIND_OPERATOR); helm.withFileSystemBind(stackPath.toFile().getAbsolutePath(), HELM_BIND_STACK); + helm.withFileSystemBind(operatorPath.toFile().getAbsolutePath(), HELM_BIND_DEPENDENCY); log.info("loaded helm charts from {} and {}", operatorPath, stackPath); }); } @@ -89,8 +91,18 @@ protected void helmInstall(Chart chart, String values) { helm3Container.copyFileToContainer(Transferable.of(values), "/test-values.yaml"); helm3Container.execInContainer("helm", "delete", helmReleaseName, "-n", namespace); + + // Fix Permissions for kubeconfig issues, no need for check as it can fail or succeed. + helm3Container.execInContainer("chmod go-r /tmp/kindcontainer.kubeconfig".split(" ")); + + final String buildChart = + "helm dependency update %s".formatted(getChartPath(chart)); + final Container.ExecResult setup = helm3Container.execInContainer(buildChart.split(" ")); + if (setup.getExitCode() != 0) { + throw new RuntimeException("Helm Dependency build failed: " + setup.getStderr()); + } final String cmd = - "helm install --debug --timeout 360s %s -n %s %s --values /test-values.yaml".formatted( + "helm install --debug --timeout 900s %s -n %s %s --values /test-values.yaml".formatted( helmReleaseName, namespace, getChartPath(chart)); final Container.ExecResult exec = helm3Container.execInContainer(cmd.split(" ")); if (exec.getExitCode() != 0) { @@ -110,7 +122,7 @@ private static String getChartPath(Chart chart) { protected void helmUpgrade(Chart chart, String values) { env.helmContainer().copyFileToContainer(Transferable.of(values), "/test-values.yaml"); final String cmd = - "helm upgrade %s -n %s %s --values /test-values.yaml" + "helm upgrade --timeout 900s %s -n %s %s --values /test-values.yaml" .formatted(helmReleaseName, namespace, getChartPath(chart)); final Container.ExecResult exec = env.helmContainer().execInContainer(cmd.split(" ")); if (exec.getExitCode() != 0) { diff --git a/tests/src/test/java/com/datastax/oss/kaap/tests/helm/HelmClusterScopedTest.java b/tests/src/test/java/com/datastax/oss/kaap/tests/helm/HelmClusterScopedTest.java new file mode 100644 index 00000000..bc5991ac --- /dev/null +++ b/tests/src/test/java/com/datastax/oss/kaap/tests/helm/HelmClusterScopedTest.java @@ -0,0 +1,107 @@ +/* + * Copyright DataStax, Inc. + * + * 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. + */ +package com.datastax.oss.kaap.tests.helm; + +import com.datastax.oss.kaap.LeaderElectionConfig; +import com.datastax.oss.kaap.common.SerializationUtil; +import com.datastax.oss.kaap.crds.cluster.PulsarCluster; +import io.fabric8.kubernetes.api.model.ConfigMap; +import io.fabric8.kubernetes.api.model.Pod; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import lombok.extern.slf4j.Slf4j; +import org.awaitility.Awaitility; +import org.testng.Assert; +import org.testng.annotations.Test; + +@Slf4j +@Test(groups = "helm-cluster-scoped") +public class HelmClusterScopedTest extends BaseHelmTest { + + @Test + public void testHelm() throws Exception { + try { + String operatorNamespace = ensureNamespace(namespace); + String deploymentNamespace = ensureNamespace("deployment-ns"); + + final String spec = """ + operator: + image: %s + watchAllNamespaces: true + imagePullPolicy: Never + replicas: 2 + config: + logLevel: trace + quarkus: + log.level: debug + operator-sdk.controllers."controllers".retry.interval.initial: 2500 + operator: + reconciliationRescheduleSeconds: 3 + """.formatted(OPERATOR_IMAGE); + + Map> specs = new HashMap<>(); + specs.put("operator", (Map) SerializationUtil.readYaml(spec, Map.class).get("operator")); + specs.put("cluster", Map.of("create", "true", + "namespace", deploymentNamespace, + "spec", getDefaultPulsarClusterSpecs())); + final String yaml = SerializationUtil.writeAsYaml(specs); + helmInstall(Chart.OPERATOR, yaml); + awaitOperatorRunning(); + final ConfigMap configMap = client.configMaps().inNamespace(namespace) + .withName("kaap") + .get(); + log.info("Found config map: {}", configMap.getData()); + Assert.assertEquals(configMap.getData().get("QUARKUS_LOG_CATEGORY__COM_DATASTAX_OSS_KAAP__LEVEL"), + "trace"); + Assert.assertEquals(configMap.getData().get("QUARKUS_LOG_LEVEL"), + "debug"); + Assert.assertEquals(configMap.getData().get("QUARKUS_OPERATOR_SDK_CONTROLLERS__CONTROLLERS__RETRY_INTERVAL_INITIAL"), + "2500"); + Assert.assertEquals(configMap.getData().get("KAAP_RECONCILIATION_RESCHEDULE_SECONDS"), + "3"); + + final List pods = getOperatorPods(); + Assert.assertEquals(pods.size(), 2); + Awaitility.await().untilAsserted(() -> { + Assert.assertNotNull(client.leases() + .inNamespace(namespace) + .withName(LeaderElectionConfig.LEASE_NAME) + .get()); + }); + + namespace = deploymentNamespace; + awaitInstalled(); + + namespace = operatorNamespace; + specs.get("operator").put("replicas", 3); + helmUpgrade(Chart.OPERATOR, SerializationUtil.writeAsYaml(specs)); + + Awaitility.await().untilAsserted(() -> { + Assert.assertTrue(getOperatorPods().size() >= 3); + }); + + client.resources(PulsarCluster.class) + .inNamespace(deploymentNamespace) + .withName(DEFAULT_PULSAR_CLUSTER_NAME) + .delete(); + awaitUninstalled(); + } catch (Throwable t) { + log.error("test failed with {}", t.getMessage(), t); + throw new RuntimeException(t); + } + } +} diff --git a/tests/src/test/java/com/datastax/oss/kaap/tests/helm/HelmTest.java b/tests/src/test/java/com/datastax/oss/kaap/tests/helm/HelmTest.java index f99a9c1a..473a8b2c 100644 --- a/tests/src/test/java/com/datastax/oss/kaap/tests/helm/HelmTest.java +++ b/tests/src/test/java/com/datastax/oss/kaap/tests/helm/HelmTest.java @@ -67,6 +67,8 @@ public void testHelm() throws Exception { "2500"); Assert.assertEquals(configMap.getData().get("KAAP_RECONCILIATION_RESCHEDULE_SECONDS"), "3"); + Assert.assertEquals(configMap.getData().get("QUARKUS_OPERATOR_SDK_NAMESPACES"), + "JOSDK_WATCH_CURRENT"); final List pods = getOperatorPods(); Assert.assertEquals(pods.size(), 2); diff --git a/tests/src/test/java/com/datastax/oss/kaap/tests/helm/KafkaTlsTest.java b/tests/src/test/java/com/datastax/oss/kaap/tests/helm/KafkaTlsTest.java index 82fab61a..78f7b603 100644 --- a/tests/src/test/java/com/datastax/oss/kaap/tests/helm/KafkaTlsTest.java +++ b/tests/src/test/java/com/datastax/oss/kaap/tests/helm/KafkaTlsTest.java @@ -99,7 +99,7 @@ public void test() throws Exception { secretName: pulsar-tls containers: - name: kclient - image: confluentinc/cp-kafka + image: confluentinc/cp-kafka:7.8.2 command: ["/bin/sh"] args: - "-c" @@ -136,7 +136,7 @@ public void test() throws Exception { secretName: pulsar-tls containers: - name: kclient - image: confluentinc/cp-kafka + image: confluentinc/cp-kafka:7.8.2 command: ["/bin/sh"] args: - "-c" diff --git a/tests/src/test/java/com/datastax/oss/kaap/tests/helm/TlsTest.java b/tests/src/test/java/com/datastax/oss/kaap/tests/helm/TlsTest.java index 4198b205..af8e6d9e 100644 --- a/tests/src/test/java/com/datastax/oss/kaap/tests/helm/TlsTest.java +++ b/tests/src/test/java/com/datastax/oss/kaap/tests/helm/TlsTest.java @@ -48,27 +48,27 @@ protected void test(boolean perComponentCerts, boolean pulsar3) throws Exception .selfSigned(TlsConfig.SelfSignedCertProvisionerConfig.builder() .enabled(true) .perComponent(true) - .zookeeper(TlsConfig.SelfSignedCertificatePerComponentConfig + .zookeeper(TlsConfig.ComponentCertificateConfig .builder() .generate(true) .build()) - .functionsWorker(TlsConfig.SelfSignedCertificatePerComponentConfig + .functionsWorker(TlsConfig.ComponentCertificateConfig .builder() .generate(true) .build()) - .proxy(TlsConfig.SelfSignedCertificatePerComponentConfig + .proxy(TlsConfig.ComponentCertificateConfig .builder() .generate(true) .build()) - .broker(TlsConfig.SelfSignedCertificatePerComponentConfig + .broker(TlsConfig.ComponentCertificateConfig .builder() .generate(true) .build()) - .bookkeeper(TlsConfig.SelfSignedCertificatePerComponentConfig + .bookkeeper(TlsConfig.ComponentCertificateConfig .builder() .generate(true) .build()) - .autorecovery(TlsConfig.SelfSignedCertificatePerComponentConfig + .autorecovery(TlsConfig.ComponentCertificateConfig .builder() .generate(true) .build())