From ae45d5375676b4cd40debc0f2a4a02137a895400 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 22 Aug 2024 00:50:55 +0000 Subject: [PATCH] Added chart versions: percona/pxc-db: - 1.15.0 percona/pxc-operator: - 1.15.0 --- assets/percona/pxc-db-1.15.0.tgz | Bin 0 -> 18518 bytes assets/percona/pxc-operator-1.15.0.tgz | Bin 0 -> 30958 bytes charts/percona/pxc-db/1.15.0/.helmignore | 22 + charts/percona/pxc-db/1.15.0/Chart.yaml | 21 + charts/percona/pxc-db/1.15.0/README.md | 330 + .../percona/pxc-db/1.15.0/templates/NOTES.txt | 56 + .../pxc-db/1.15.0/templates/_helpers.tpl | 77 + .../1.15.0/templates/cluster-secret.yaml | 27 + .../1.15.0/templates/cluster-ssl-secret.yaml | 42 + .../pxc-db/1.15.0/templates/cluster.yaml | 543 + .../pxc-db/1.15.0/templates/s3-secret.yaml | 16 + charts/percona/pxc-db/1.15.0/values.yaml | 710 + .../percona/pxc-operator/1.15.0/.helmignore | 22 + charts/percona/pxc-operator/1.15.0/Chart.yaml | 22 + .../percona/pxc-operator/1.15.0/LICENSE.txt | 13 + charts/percona/pxc-operator/1.15.0/README.md | 64 + .../percona/pxc-operator/1.15.0/crds/crd.yaml | 11127 ++++++++++++++++ .../pxc-operator/1.15.0/templates/NOTES.txt | 16 + .../1.15.0/templates/_helpers.tpl | 56 + .../1.15.0/templates/deployment.yaml | 119 + .../1.15.0/templates/namespace.yaml | 11 + .../1.15.0/templates/role-binding.yaml | 37 + .../pxc-operator/1.15.0/templates/role.yaml | 142 + .../percona/pxc-operator/1.15.0/values.yaml | 69 + index.yaml | 53 +- 25 files changed, 13594 insertions(+), 1 deletion(-) create mode 100644 assets/percona/pxc-db-1.15.0.tgz create mode 100644 assets/percona/pxc-operator-1.15.0.tgz create mode 100644 charts/percona/pxc-db/1.15.0/.helmignore create mode 100644 charts/percona/pxc-db/1.15.0/Chart.yaml create mode 100644 charts/percona/pxc-db/1.15.0/README.md create mode 100644 charts/percona/pxc-db/1.15.0/templates/NOTES.txt create mode 100644 charts/percona/pxc-db/1.15.0/templates/_helpers.tpl create mode 100644 charts/percona/pxc-db/1.15.0/templates/cluster-secret.yaml create mode 100644 charts/percona/pxc-db/1.15.0/templates/cluster-ssl-secret.yaml create mode 100644 charts/percona/pxc-db/1.15.0/templates/cluster.yaml create mode 100644 charts/percona/pxc-db/1.15.0/templates/s3-secret.yaml create mode 100644 charts/percona/pxc-db/1.15.0/values.yaml create mode 100644 charts/percona/pxc-operator/1.15.0/.helmignore create mode 100644 charts/percona/pxc-operator/1.15.0/Chart.yaml create mode 100644 charts/percona/pxc-operator/1.15.0/LICENSE.txt create mode 100644 charts/percona/pxc-operator/1.15.0/README.md create mode 100644 charts/percona/pxc-operator/1.15.0/crds/crd.yaml create mode 100644 charts/percona/pxc-operator/1.15.0/templates/NOTES.txt create mode 100644 charts/percona/pxc-operator/1.15.0/templates/_helpers.tpl create mode 100644 charts/percona/pxc-operator/1.15.0/templates/deployment.yaml create mode 100644 charts/percona/pxc-operator/1.15.0/templates/namespace.yaml create mode 100644 charts/percona/pxc-operator/1.15.0/templates/role-binding.yaml create mode 100644 charts/percona/pxc-operator/1.15.0/templates/role.yaml create mode 100644 charts/percona/pxc-operator/1.15.0/values.yaml diff --git a/assets/percona/pxc-db-1.15.0.tgz b/assets/percona/pxc-db-1.15.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..6d4398bfc974f0a8c2d29e05b929f4b6b809ec14 GIT binary patch literal 18518 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 VWm`Iy|1SUl|Nm5?6D0sh0s#NQn!W%4 literal 0 HcmV?d00001 diff --git a/assets/percona/pxc-operator-1.15.0.tgz b/assets/percona/pxc-operator-1.15.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..4b8669065b74bbcefe783d59fb0a4f1b52185161 GIT binary patch literal 30958 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 literal 0 HcmV?d00001 diff --git a/charts/percona/pxc-db/1.15.0/.helmignore b/charts/percona/pxc-db/1.15.0/.helmignore new file mode 100644 index 000000000..50af03172 --- /dev/null +++ b/charts/percona/pxc-db/1.15.0/.helmignore @@ -0,0 +1,22 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/charts/percona/pxc-db/1.15.0/Chart.yaml b/charts/percona/pxc-db/1.15.0/Chart.yaml new file mode 100644 index 000000000..4ab1116fe --- /dev/null +++ b/charts/percona/pxc-db/1.15.0/Chart.yaml @@ -0,0 +1,21 @@ +annotations: + catalog.cattle.io/certified: partner + catalog.cattle.io/display-name: Percona XtraDB Cluster + catalog.cattle.io/kube-version: '>=1.21-0' + catalog.cattle.io/release-name: pxc-db +apiVersion: v2 +appVersion: 1.15.0 +description: A Helm chart for installing Percona XtraDB Cluster Databases using the + PXC Operator. +home: https://www.percona.com/doc/kubernetes-operator-for-pxc/kubernetes.html +icon: file://assets/icons/pxc-db.png +kubeVersion: '>=1.21-0' +maintainers: +- email: tomislav.plavcic@percona.com + name: tplavcic +- email: sergey.pronin@percona.com + name: spron-in +- email: natalia.marukovich@percona.com + name: nmarukovich +name: pxc-db +version: 1.15.0 diff --git a/charts/percona/pxc-db/1.15.0/README.md b/charts/percona/pxc-db/1.15.0/README.md new file mode 100644 index 000000000..0bab16d09 --- /dev/null +++ b/charts/percona/pxc-db/1.15.0/README.md @@ -0,0 +1,330 @@ +# Percona XtraDB Cluster + +[Percona XtraDB Cluster (PXC)](https://www.percona.com/doc/percona-xtradb-cluster/LATEST/index.html) is a database clustering solution for MySQL. This chart deploys Percona XtraDB Cluster on Kubernetes controlled by Percona Operator for MySQL. + +Useful links +* [Operator Github repository](https://github.com/percona/percona-xtradb-cluster-operator) +* [Operator Documentation](https://www.percona.com/doc/kubernetes-operator-for-pxc/index.html) + +## Pre-requisites +* [Percona Operator for MySQL](https://hub.helm.sh/charts/percona/pxc-operator) running in your Kubernetes cluster. See installation details [here](https://github.com/percona/percona-helm-charts/tree/main/charts/pxc-operator) or in the [Operator Documentation](https://www.percona.com/doc/kubernetes-operator-for-pxc/helm.html). +* Kubernetes 1.28+ + +* Helm v3 + +## Chart Details +This chart will deploy Percona XtraDB Cluster in Kubernetes. It will create a Custom Resource, and the Operator will trigger the creation of corresponding Kubernetes primitives: StatefulSets, Pods, Secrets, etc. + +### Installing the Chart +To install the chart with the `pxc` release name using a dedicated namespace (recommended): + +```sh +helm repo add percona https://percona.github.io/percona-helm-charts/ +helm install my-db percona/pxc-db --version 1.15.0 --namespace my-namespace +``` + +The chart can be customized using the following configurable parameters: + +| Parameter | Description | Default | +| ------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ------------------------------------ | +| `crVersion` | Version of the Operator the Custom Resource belongs to | `1.15.0` | +| `ignoreAnnotations` | Operator will not remove following annotations | `[]` | +| `ignoreLabels` | Operator will not remove following labels | `[]` | +| `pause` | Stop PXC Database safely | `false` | +| `unsafeFlags.tls` | Allows users to configure a cluster without TLS/SSL certificates | `false` | +| `unsafeFlags.pxcSize` | Allows users to configure a cluster with less than 3 Percona XtraDB Cluster instances | `false` | +| `unsafeFlags.proxySize` | Allows users to configure a cluster with less than 2 ProxySQL or HAProxy Pods | `false` | +| `unsafeFlags.backupIfUnhealthy` | Allows running a backup even if the cluster status is not `ready` | `false` | +| `enableCRValidationWebhook` | Enables or disables schema validation before applying custom resource | `false` | +| `initContainer.image` | An alternative image for the initial Operator installation | `""` | +| `initContainer.resources.requests` | Init container resource requests | `{}` | +| `initContainer.resources.limits` | Init container resource limits | `{}` | +| `updateStrategy` | Regulates the way how PXC Cluster Pods will be updated after setting a new image | `SmartUpdate` | +| `upgradeOptions.versionServiceEndpoint` | Endpoint for actual PXC Versions provider | `https://check.percona.com/versions` | +| `upgradeOptions.apply` | PXC image to apply from version service - `recommended`, `latest`, actual version like `8.0.19-10.1` | `disabled` | +| `upgradeOptions.schedule` | Cron formatted time to execute the update | `"0 4 * * *"` | +| `finalizers:percona.com/delete-pxc-pods-in-order` | Set this if you want to delete PXC pods in order on cluster deletion | [] | +| `finalizers:percona.com/delete-proxysql-pvc` | Set this if you want to delete proxysql persistent volumes on cluster deletion | [] | +| `finalizers:percona.com/delete-pxc-pvc` | Set this if you want to delete database persistent volumes on cluster deletion | [] | +| `finalizers:percona.com/delete-ssl` | Deletes objects created for SSL (Secret, certificate, and issuer) after the cluster deletion | [] | +| `annotations` | PerconaXtraDBCluster custom resource annotations | {} | +| | +| `tls.enabled` | Enable PXC Pod communication with TLS | `true` | +| `tls.SANs` | Additional domains (SAN) to be added to the TLS certificate within the extended cert-manager configuration | `[]` | +| `tls.issuerConf.name` | A cert-manager issuer name | `""` | +| `tls.issuerConf.kind` | A cert-manager issuer type | `""` | +| `tls.issuerConf.group` | A cert-manager issuer group | `""` | +| | +| `pxc.size` | PXC Cluster target member (pod) quantity. Can't even if `unsafeFlags.pxcSize` is `true` | `3` | +| `pxc.clusterSecretName` | Specify if you want to use custom or Operator generated users secret (if the one specified doesn't exist) | `` | +| `pxc.image.repository` | PXC Container image repository | `percona/percona-xtradb-cluster` | +| `pxc.image.tag` | PXC Container image tag | `8.0.36-28.1` | +| `pxc.imagePullPolicy` | The policy used to update images | `` | +| `pxc.autoRecovery` | Enable full cluster crash auto recovery | `true` | +| `pxc.expose.enabled` | Enable or disable exposing `Percona XtraDB Cluster` nodes with dedicated IP addresses | `true` | +| `pxc.expose.type` | The Kubernetes Service Type used for exposure | `LoadBalancer` | +| `pxc.expose.externalTrafficPolicy` | Specifies whether Service for Percona XtraDB Cluster should [route external traffic to cluster-wide or to node-local endpoints](https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip) (it can influence the load balancing effectiveness) | `""` | +| `pxc.expose.internalTrafficPolicy` | Specifies whether Service for Percona XtraDB Cluster should [route internal traffic to cluster-wide or to node-local endpoints](https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/) (it can influence the load balancing effectiveness) | `""` | +| `pxc.expose.loadBalancerSourceRanges` | The range of client IP addresses from which the load balancer should be reachable (if not set, there is no limitations) | `[]` | +| `pxc.expose.loadBalancerIP` | The static IP-address for the load balancer | `""` | +| `pxc.expose.annotations` | The Kubernetes annotations for exposed service | `{}` | +| `pxc.expose.labels` | The Kubernetes labels for exposed service | `{}` | +| `pxc.replicationChannels.name` | Name of the replication channel for cross-site replication | `pxc1_to_pxc2` | +| `pxc.replicationChannels.isSource` | Should the cluster act as Source (true) or Replica (false) in cross-site replication | `false` | +| `pxc.replicationChannels.sourcesList.host` | For the cross-site replication Replica cluster, this key should contain the hostname or IP address of the Source cluster | `10.95.251.101` | +| `pxc.replicationChannels.sourcesList.port` | For the cross-site replication Replica cluster, this key should contain the Source port number | `3306` | +| `pxc.replicationChannels.sourcesList.weight` | For the cross-site replication Replica cluster, this key should contain the Source cluster weight | `100` | +| `pxc.imagePullSecrets` | PXC Container pull secret | `[]` | +| `pxc.annotations` | PXC Pod user-defined annotations | `{}` | +| `pxc.priorityClassName` | PXC Pod priority Class defined by user | | +| `pxc.runtimeClassName` | Name of the Kubernetes Runtime Class for PXC Pods | | +| `pxc.labels` | PXC Pod user-defined labels | `{}` | +| `pxc.schedulerName` | The Kubernetes Scheduler | | +| `pxc.readinessDelaySec` | PXC Pod delay for readiness probe in seconds | `15` | +| `pxc.livenessDelaySec` | PXC Pod delay for liveness probe in seconds | `300` | +| `pxc.configuration` | User defined MySQL options according to MySQL configuration file syntax | `` | +| `pxc.envVarsSecret` | A secret with environment variables | `` | +| `pxc.resources.requests` | PXC Pods resource requests | `{"memory": "1G", "cpu": "600m"}` | +| `pxc.resources.limits` | PXC Pods resource limits | `{}` | +| `pxc.sidecars` | PXC Pods sidecars | `[]` | +| `pxc.sidecarVolumes` | PXC Pods sidecarVolumes | `[]` | +| `pxc.sidecarPVCs` | PXC Pods sidecar PVCs | `[]` | +| `pxc.sidecarResources.requests` | PXC sidecar resource requests | `{}` | +| `pxc.sidecarResources.limits` | PXC sidecar resource limits | `{}` | +| `pxc.nodeSelector` | PXC Pods key-value pairs setting for K8S node assingment | `{}` | +| `pxc.topologySpreadConstraints` | The Label selector for the [Kubernetes Pod Topology Spread Constraints](https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/) | `[]` | +| `pxc.affinity.antiAffinityTopologyKey` | PXC Pods simple scheduling restriction on/off for host, zone, region | `"kubernetes.io/hostname"` | +| `pxc.affinity.advanced` | PXC Pods advanced scheduling restriction with match expression engine | `{}` | +| `pxc.tolerations` | List of node taints to tolerate for PXC Pods | `[]` | +| `pxc.gracePeriod` | Allowed time for graceful shutdown | `600` | +| `pxc.lifecycle.preStop.exec.command` | Command for the [preStop lifecycle hook](https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/) for Percona XtraDB Cluster Pods | `""` | +| `pxc.lifecycle.postStart.exec.command` | Command for the [postStart lifecycle hook](https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/) for Percona XtraDB Cluster Pods | `600` | +| `pxc.podDisruptionBudget.maxUnavailable` | Instruct Kubernetes about the failed pods allowed quantity | `1` | +| `pxc.persistence.enabled` | Requests a persistent storage (`hostPath` or `storageClass`) from K8S for PXC Pods datadir | `true` | +| `pxc.persistence.hostPath` | Sets datadir path on K8S node for all PXC Pods. Available only when `pxc.persistence.enabled: true` | | +| `pxc.persistence.storageClass` | Sets K8S storageClass name for all PXC Pods PVC. Available only when `pxc.persistence.enabled: true` | `-` | +| `pxc.persistence.accessMode` | Sets K8S persistent storage access policy for all PXC Pods | `ReadWriteOnce` | +| `pxc.persistence.dataSource.name` | The name of PVC used as a data source to [create the Percona XtraDB Cluster Volumes by cloning :octicons-link-external-16:](https://kubernetes.io/docs/concepts/storage/volume-pvc-datasource/). | `` | +| `pxc.persistence.dataSource.kind` | The [Kubernetes DataSource type :octicons-link-external-16:](https://kubernetes-csi.github.io/docs/volume-datasources.html#supported-datasources). | `` | +| `pxc.persistence.dataSource.apiGroup` | The [Kubernetes API group :octicons-link-external-16:](https://kubernetes.io/docs/reference/using-api/#api-groups) to use for [PVC Data Source :octicons-link-external-16:](https://kubernetes-csi.github.io/docs/volume-datasources.html). | `` | +| `pxc.persistence.size` | Sets K8S persistent storage size for all PXC Pods | `8Gi` | +| `pxc.certManager` | Enable this option if you want the operator to request certificates from `cert-manager` | `false` | +| `pxc.readinessProbes.failureThreshold` | When a probe fails, Kubernetes will try failureThreshold times before giving up | `5` | +| `pxc.readinessProbes.initialDelaySeconds` | Number of seconds after the container has started before liveness or readiness probes are initiated | `15` | +| `pxc.readinessProbes.periodSeconds` | How often (in seconds) to perform the probe | `30` | +| `pxc.readinessProbes.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed | `1` | +| `pxc.readinessProbes.timeoutSeconds` | Number of seconds after which the probe times out | `15` | +| `pxc.livenessProbes.failureThreshold` | When a probe fails, Kubernetes will try failureThreshold times before giving up | `3` | +| `pxc.livenessProbes.initialDelaySeconds` | Number of seconds after the container has started before liveness or readiness probes are initiated | `300` | +| `pxc.livenessProbes.periodSeconds` | How often (in seconds) to perform the probe | `10` | +| `pxc.livenessProbes.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed | `1` | +| `pxc.livenessProbes.timeoutSeconds` | Number of seconds after which the probe times out | `5` | +| `pxc.containerSecurityContext` | A custom Kubernetes Security Context for a Container to be used instead of the default one | `{}` | +| `pxc.podSecurityContext` | A custom Kubernetes Security Context for a Pod to be used instead of the default one | `{}` | +| | +| `haproxy.enabled` | Use HAProxy as TCP proxy for PXC cluster | `true` | +| `haproxy.size` | HAProxy target pod quantity. Can't even if `unsafeFlags.pxcSize` is `true` | `3` | +| `haproxy.image` | HAProxy Container image repository | `percona/haproxy:2.8.5` | +| `haproxy.imagePullPolicy` | The policy used to update images | `` | +| `haproxy.imagePullSecrets` | HAProxy Container pull secret | `[]` | +| `haproxy.configuration` | User defined HAProxy options according to HAProxy configuration file syntax | `` | +| `haproxy.priorityClassName` | HAProxy Pod priority Class defined by user | | +| `haproxy.runtimeClassName` | Name of the Kubernetes Runtime Class for HAProxy Pods | | +| `haproxy.exposePrimary.enabled` | Enable or disable exposing `HAProxy` nodes with dedicated IP addresses | `true` | +| `haproxy.exposePrimary.type` | The Kubernetes Service Type used for exposure | `LoadBalancer` | +| `haproxy.exposePrimary.externalTrafficPolicy` | Specifies whether Service for HAProxy primary should [route external traffic to cluster-wide or to node-local endpoints](https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip) (it can influence the load balancing effectiveness) | `""` | +| `haproxy.exposePrimary.internalTrafficPolicy` | Specifies whether Service for HAProxy primary should [route internal traffic to cluster-wide or to node-local endpoints](https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/) (it can influence the load balancing effectiveness) | `""` | +| `haproxy.exposePrimary.loadBalancerSourceRanges` | The range of client IP addresses from which the load balancer should be reachable (if not set, there is no limitations) | `[]` | +| `haproxy.exposePrimary.loadBalancerIP` | The static IP-address for the load balancer | `""` | +| `haproxy.exposePrimary.annotations` | The Kubernetes annotations for exposed service | `{}` | +| `haproxy.exposePrimary.labels` | The Kubernetes labels for exposed service | `{}` | +| `haproxy.exposeReplicas.enabled` | Enables or disables `haproxy-replicas` Service. This Service default forwards requests to all Percona XtraDB Cluster instances, and it **should not be used for write requests**! | `true` | +| `haproxy.exposeReplicas.onlyReaders` | Setting it to `true` excludes current MySQL primary instance (writer) from the list of Pods, to which `haproxy-replicas` Service directs connections, leaving only the reader instances. | `false` | +| `haproxy.exposeReplicas.type` | The Kubernetes Service Type used for exposure | `LoadBalancer` | +| `haproxy.exposeReplicas.externalTrafficPolicy` | Specifies whether Service for HAProxy replicas should [route external traffic to cluster-wide or to node-local endpoints](https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip) (it can influence the load balancing effectiveness) | `""` | +| `haproxy.exposeReplicas.internalTrafficPolicy` | Specifies whether Service for HAProxy replicas should [route internal traffic to cluster-wide or to node-local endpoints](https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/) (it can influence the load balancing effectiveness) | `""` | +| `haproxy.exposeReplicas.loadBalancerSourceRanges` | The range of client IP addresses from which the load balancer should be reachable (if not set, there is no limitations) | `[]` | +| `haproxy.exposeReplicas.loadBalancerIP` | The static IP-address for the load balancer | `""` | +| `haproxy.exposeReplicas.annotations` | The Kubernetes annotations for exposed service | `{}` | +| `haproxy.exposeReplicas.labels` | The Kubernetes labels for exposed service | `{}` | +| `haproxy.annotations` | HAProxy Pod user-defined annotations | `{}` | +| `haproxy.labels` | HAProxy Pod user-defined labels | `{}` | +| `haproxy.schedulerName` | The Kubernetes Scheduler | | +| `haproxy.readinessDelaySec` | HAProxy Pod delay for readiness probe in seconds | `15` | +| `haproxy.livenessDelaySec` | HAProxy Pod delay for liveness probe in seconds | `300` | +| `haproxy.envVarsSecret` | A secret with environment variables | `` | +| `haproxy.resources.requests` | HAProxy Pods resource requests | `{"memory": "1G", "cpu": "600m"}` | +| `haproxy.resources.limits` | HAProxy Pods resource limits | `{}` | +| `haproxy.sidecars` | HAProxy Pods sidecars | `[]` | +| `haproxy.sidecarVolumes` | HAProxy Pods sidecarVolumes | `[]` | +| `haproxy.sidecarPVCs` | HAProxy Pods sidecar PVCs | `[]` | +| `haproxy.sidecarResources.requests` | HAProxy sidecar resource requests | `{}` | +| `haproxy.sidecarResources.limits` | HAProxy sidecar resource limits | `{}` | +| `haproxy.nodeSelector` | HAProxy Pods key-value pairs setting for K8S node assingment | `{}` | +| `haproxy.topologySpreadConstraints` | The Label selector for the [Kubernetes Pod Topology Spread Constraints](https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/) | `[]` | +| `haproxy.affinity.antiAffinityTopologyKey` | HAProxy Pods simple scheduling restriction on/off for host, zone, region | `"kubernetes.io/hostname"` | +| `haproxy.affinity.advanced` | HAProxy Pods advanced scheduling restriction with match expression engine | `{}` | +| `haproxy.tolerations` | List of node taints to tolerate for HAProxy Pods | `[]` | +| `haproxy.gracePeriod` | Allowed time for graceful shutdown | `600` | +| `haproxy.lifecycle.preStop.exec.command` | Command for the [preStop lifecycle hook](https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/) for HAProxy Pods | `""` | +| `haproxy.lifecycle.postStart.exec.command` | Command for the [postStart lifecycle hook](https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/) for HAProxy Pods | `600` | +| `haproxy.podDisruptionBudget.maxUnavailable` | Instruct Kubernetes about the failed pods allowed quantity | `1` | +| `haproxy.readinessProbes.failureThreshold` | When a probe fails, Kubernetes will try failureThreshold times before giving up | `5` | +| `haproxy.readinessProbes.initialDelaySeconds` | Number of seconds after the container has started before liveness or readiness probes are initiated | `15` | +| `haproxy.readinessProbes.periodSeconds` | How often (in seconds) to perform the probe | `30` | +| `haproxy.readinessProbes.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed | `1` | +| `haproxy.readinessProbes.timeoutSeconds` | Number of seconds after which the probe times out | `15` | +| `haproxy.livenessProbes.failureThreshold` | When a probe fails, Kubernetes will try failureThreshold times before giving up | `3` | +| `haproxy.livenessProbes.initialDelaySeconds` | Number of seconds after the container has started before liveness or readiness probes are initiated | `300` | +| `haproxy.livenessProbes.periodSeconds` | How often (in seconds) to perform the probe | `10` | +| `haproxy.livenessProbes.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed | `1` | +| `haproxy.livenessProbes.timeoutSeconds` | Number of seconds after which the probe times out | `5` | +| `haproxy.containerSecurityContext` | A custom Kubernetes Security Context for a Container to be used instead of the default one | `{}` | +| `haproxy.podSecurityContext` | A custom Kubernetes Security Context for a Pod to be used instead of the default one | `{}` | +| | +| `proxysql.enabled` | Use ProxySQL as TCP proxy for PXC cluster | `false` | +| `proxysql.size` | ProxySQL target pod quantity. Can't even if `unsafeFlags.pxcSize` is `true` | `3` | +| `proxysql.image` | ProxySQL Container image | `percona/proxysql2:2.5.5` | +| `proxysql.imagePullPolicy` | The policy used to update images | `` | +| `proxysql.imagePullSecrets` | ProxySQL Container pull secret | `[]` | +| `proxysql.configuration` | User defined ProxySQL options according to ProxySQL configuration file syntax | `` | +| `proxysql.priorityClassName` | ProxySQL Pod priority Class defined by user | | +| `proxysql.runtimeClassName` | Name of the Kubernetes Runtime Class for ProxySQL Pods | | +| `proxysql.expose.enabled` | Enable or disable exposing `ProxySQL` nodes with dedicated IP addresses | `true` | +| `proxysql.expose.type` | The Kubernetes Service Type used for exposure | `LoadBalancer` | +| `proxysql.expose.externalTrafficPolicy` | Specifies whether Service for ProxySQL nodes should [route external traffic to cluster-wide or to node-local endpoints](https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip) (it can influence the load balancing effectiveness) | `""` | +| `proxysql.expose.internalTrafficPolicy` | Specifies whether Service for ProxySQL nodes should [route internal traffic to cluster-wide or to node-local endpoints](https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/) (it can influence the load balancing effectiveness) | `""` | +| `proxysql.expose.loadBalancerSourceRanges` | The range of client IP addresses from which the load balancer should be reachable (if not set, there is no limitations) | `[]` | +| `proxysql.expose.loadBalancerIP` | The static IP-address for the load balancer | `""` | +| `proxysql.expose.annotations` | The Kubernetes annotations for exposed service | `{}` | +| `proxysql.expose.labels` | The Kubernetes labels for exposed service | `{}` | +| `proxysql.annotations` | ProxySQL Pod user-defined annotations | `{}` | +| `proxysql.labels` | ProxySQL Pod user-defined labels | `{}` | +| `proxysql.schedulerName` | The Kubernetes Scheduler | | +| `proxysql.readinessDelaySec` | ProxySQL Pod delay for readiness probe in seconds | `15` | +| `proxysql.livenessDelaySec` | ProxySQL Pod delay for liveness probe in seconds | `300` | +| `proxysql.envVarsSecret` | A secret with environment variables | `` | +| `proxysql.resources.requests` | ProxySQL Pods resource requests | `{"memory": "1G", "cpu": "600m"}` | +| `proxysql.resources.limits` | ProxySQL Pods resource limits | `{}` | +| `proxysql.sidecars` | ProxySQL Pods sidecars | `[]` | +| `proxysql.sidecarVolumes` | ProxySQL Pods sidecarVolumes | `[]` | +| `proxysql.sidecarPVCs` | ProxySQL Pods sidecar PVCs | `[]` | +| `proxysql.sidecarResources.requests` | ProxySQL sidecar resource requests | `{}` | +| `proxysql.sidecarResources.limits` | ProxySQL sidecar resource limits | `{}` | +| `proxysql.nodeSelector` | ProxySQL Pods key-value pairs setting for K8S node assingment | `{}` | +| `proxysql.topologySpreadConstraints` | The Label selector for the [Kubernetes Pod Topology Spread Constraints](https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/) | `[]` | +| `proxysql.affinity.antiAffinityTopologyKey` | ProxySQL Pods simple scheduling restriction on/off for host, zone, region | `"kubernetes.io/hostname"` | +| `proxysql.affinity.advanced` | ProxySQL Pods advanced scheduling restriction with match expression engine | `{}` | +| `proxysql.tolerations` | List of node taints to tolerate for ProxySQL Pods | `[]` | +| `proxysql.gracePeriod` | Allowed time for graceful shutdown | `600` | +| `proxysql.lifecycle.preStop.exec.command` | Command for the [preStop lifecycle hook](https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/) for ProxySQL Pods | `""` | +| `proxysql.lifecycle.postStart.exec.command` | Command for the [postStart lifecycle hook](https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/) for ProxySQL Pods | `600` | +| `proxysql.podDisruptionBudget.maxUnavailable` | Instruct Kubernetes about the failed pods allowed quantity | `1` | +| `proxysql.persistence.enabled` | Requests a persistent storage (`hostPath` or `storageClass`) from K8S for ProxySQL Pods | `true` | +| `proxysql.persistence.hostPath` | Sets datadir path on K8S node for all ProxySQL Pods. Available only when `proxysql.persistence.enabled: true` | | +| `proxysql.persistence.storageClass` | Sets K8S storageClass name for all ProxySQL Pods PVC. Available only when `proxysql.persistence.enabled: true` | `-` | +| `proxysql.persistence.accessMode` | Sets K8S persistent storage access policy for all ProxySQL Pods | `ReadWriteOnce` | +| `proxysql.persistence.size` | Sets K8S persistent storage size for all ProxySQL Pods | `8Gi` | +| `proxysql.containerSecurityContext` | A custom Kubernetes Security Context for a Container to be used instead of the default one | `{}` | +| `proxysql.podSecurityContext` | A custom Kubernetes Security Context for a Pod to be used instead of the default one | `{}` | +| | +| `logcollector.enabled` | Enable log collector container | `true` | +| `logcollector.image` | Log collector image repository | `percona/percona-xtradb-cluster-operator:1.15.0-logcollector-fluentbit3.1.4` | +| `logcollector.imagePullSecrets` | Log collector pull secret | `[]` | +| `logcollector.imagePullPolicy` | The policy used to update images | `` | +| `logcollector.configuration` | User defined configuration for logcollector | `` | +| `logcollector.resources.requests` | Log collector resource requests | `{"memory": "100M", "cpu": "200m"}` | +| `logcollector.resources.limits` | Log collector resource limits | `{}` | +| `logcollector.containerSecurityContext` | A custom Kubernetes Security Context for a Container to be used instead of the default one | `{}` | +| | +| `pmm.enabled` | Enable integration with [Percona Monitoring and Management software](https://www.percona.com/doc/kubernetes-operator-for-pxc/monitoring.html) | `false` | +| `pmm.image.repository` | PMM Container image repository | `percona/pmm-client` | +| `pmm.image.tag` | PMM Container image tag | `2.42.0` | +| `pmm.imagePullSecrets` | PMM Container pull secret | `[]` | +| `pmm.imagePullPolicy` | The policy used to update images | `` | +| `pmm.serverHost` | PMM server related K8S service hostname | `monitoring-service` | +| `pmm.serverUser` | Username for accessing PXC database internals | `admin` | +| `pmm.resources.requests` | PMM Container resource requests | `{"memory": "150M", "cpu": "300m"}` | +| `pmm.resources.limits` | PMM Container resource limits | `{}` | +| `pmm.pxcParams` | Additional parameters which will be passed to the [pmm-admin add mysql](https://docs.percona.com/percona-monitoring-and-management/setting-up/client/mysql.html#add-service) command for `pxc` Pods | `""` | +| `pmm.proxysqlParams` | Additional parameters which will be passed to the [pmm-admin add proxysql](https://docs.percona.com/percona-monitoring-and-management/setting-up/client/proxysql.html) command for `proxysql` Pods | `""` | +| `pmm.containerSecurityContext` | A custom Kubernetes Security Context for a Container to be used instead of the default one | `{}` | +| | +| `backup.enabled` | Enables backups for PXC cluster | `true` | +| `backup.allowParallel` | Allow taking multiple backups in parallel | `true` | +| `backup.image.repository` | Backup Container image | `percona/percona-xtradb-cluster-operator` | +| `backup.image.tag` | Backup Container tag | `1.15.0-pxc8.0-backup-pxb8.0.35` | +| `backup.backoffLimit` | The number of retries to make a backup | `10` | +| `backup.imagePullSecrets` | Backup Container pull secret | `[]` | +| `backup.imagePullPolicy` | The policy used to update images | `` | +| `backup.pitr.enabled` | Enable point in time recovery | `false` | +| `backup.pitr.storageName` | Storage name for PITR | `s3-us-west-binlogs` | +| `backup.pitr.timeBetweenUploads` | Time between uploads for PITR | `60` | +| `backup.pitr.timeoutSeconds` | Timeout in seconds for the binlog to be uploaded; the binlog uploader container will be restarted after exceeding this timeout | `60` | +| `backup.pitr.resources.requests` | PITR Container resource requests | `{}` | +| `backup.pitr.resources.limits` | PITR Container resource limits | `{}` | +| `backup.storages.fs-pvc` | Backups storage configuration, where `storages:` is a high-level key for the underlying structure. `fs-pvc` is a user-defined storage name. | | +| `backup.storages.fs-pvc.type` | Backup storage type | `filysystem` | +| `backup.storages.fs-pvc.verifyTLS` | Enable or disable verification of the storage server TLS certificate | `true` | +| `backup.storages.fs-pvc.volume.persistentVolumeClaim.accessModes` | Backup PVC access policy | `["ReadWriteOnce"]` | +| `backup.storages.fs-pvc.volume.persistentVolumeClaim.resources` | Backup Pod resources specification | `{}` | +| `backup.storages.fs-pvc.volume.persistentVolumeClaim.resources.requests.storage` | Backup Pod datadir backups size | `6Gi` | +| `backup.storages.fs-pvc.topologySpreadConstraints` | The Label selector for the [Kubernetes Pod Topology Spread Constraints](https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/) | `[]` | +| `backup.storages.fs-pvc.containerOptions.env` | Environment variables to add to the backup container | `[]` | +| `backup.storages.fs-pvc.containerOptions.args.xtrabackup` | Additional arguments for xtrabackup | `[]` | +| `backup.storages.fs-pvc.containerOptions.args.xbstream` | Additional arguments for xbstream | `[]` | +| `backup.storages.fs-pvc.containerOptions.args.xbcloud` | Additional arguments for xbcloud | `[]` | +| `backup.schedule` | Backup execution timetable | `[]` | +| `backup.schedule.0.name` | Backup execution timetable name | `daily-backup` | +| `backup.schedule.0.schedule` | Backup execution timetable cron timing | `0 0 * * *` | +| `backup.schedule.0.keep` | Backup items to keep | `5` | +| `backup.schedule.0.storageName` | Backup target storage | `fs-pvc` | +| | +| `secrets.passwords.root` | Default user secret | `insecure-root-password` | +| `secrets.passwords.xtrabackup` | Default user secret | `insecure-xtrabackup-password` | +| `secrets.passwords.monitor` | Default user secret | `insecure-monitor-password` | +| `secrets.passwords.clustercheck` | Default user secret | `insecure-clustercheck-password` | +| `secrets.passwords.proxyadmin` | Default user secret | `insecure-proxyadmin-password` | +| `secrets.passwords.pmmserver` | Default user secret | `insecure-pmmserver-password` | +| `secrets.passwords.pmmserverkey` | PMM server API key | `` | +| `secrets.passwords.operator` | Default user secret | `insecure-operator-password` | +| `secrets.passwords.replication` | Default user secret | `insecure-replication-password` | +| `secrets.tls.cluster` | Specify secret name for TLS. Not needed in case if you're using cert-manager. Structure expects keys `ca.crt`, `tls.crt`, `tls.key` and files contents encoded in base64. | `` | +| `secrets.tls.internal` | Specify internal secret name for TLS. | `` | +| `secrets.logCollector` | Specify secret name used for Fluent Bit Log Collector | `` | +| `secrets.vault` | Specify secret name used for HashiCorp Vault to carry on Data at Rest Encryption | `` | + + +Specify parameters using `--set key=value[,key=value]` argument to `helm install` + +## Examples + +### Deploy a Cluster without a MySQL Proxy, no backups, no persistent disks + +This is great for a dev cluster as it doesn't require a persistent disk and doesn't bother with a proxy, backups, or TLS. + +```bash +$ helm install dev --namespace pxc . \ + --set proxysql.enabled=false --set tls.enabled=false --set unsafeFlags.tls=true \ + --set pxc.persistence.enabled=false --set backup-enabled=false +``` + +### Deploy a cluster with certificates provided by Cert Manager + +First you need a working cert-manager installed with appropriate Issuers set up. Check out the [JetStack Helm Chart](https://hub.helm.sh/charts/jetstack/cert-manager) to do that. + +By setting `pxc.certManager=true` we're signaling the Helm chart to not create secrets,which will in turn let the operator know to request appropriate `certificate` resources to be filled by cert-manager. + +```bash +$ helm install dev --namespace pxc . --set pxc.certManager=true +``` + +### Deploy a production grade cluster + +The pxc-database chart contains an example production values file that should set you +well on your path to running a production database. It is not fully production grade as +there are some requirements for you to provide your own secrets for passwords and TLS to be truly production ready, but it does provide comments on how to do those parts. + +```bash +$ helm install prod --file production-values.yaml --namespace pxc . +``` diff --git a/charts/percona/pxc-db/1.15.0/templates/NOTES.txt b/charts/percona/pxc-db/1.15.0/templates/NOTES.txt new file mode 100644 index 000000000..58d5564d4 --- /dev/null +++ b/charts/percona/pxc-db/1.15.0/templates/NOTES.txt @@ -0,0 +1,56 @@ +# + + % _____ + %%% | __ \ + ###%%%%%%%%%%%%* | |__) |__ _ __ ___ ___ _ __ __ _ + ### ##%% %%%% | ___/ _ \ '__/ __/ _ \| '_ \ / _` | + #### ##% %%%% | | | __/ | | (_| (_) | | | | (_| | + ### #### %%% |_| \___|_| \___\___/|_| |_|\__,_| + ,((### ### %%% _ _ _____ _ + (((( (### #### %%%% | | / _ \ / ____| | | + ((( ((# ###### | | _| (_) |___ | (___ __ _ _ _ __ _ __| | + (((( (((# #### | |/ /> _ >> https://percona.com/k8s <<< + +1. To get a MySQL prompt inside your new cluster you can run: + + {{- if hasKey .Values.pxc "clusterSecretName" }} + ROOT_PASSWORD=`kubectl -n {{ .Release.Namespace }} get secrets {{ .Values.pxc.clusterSecretName }} -o jsonpath="{.data.root}" | base64 --decode` + kubectl -n {{ .Release.Namespace }} exec -ti \ + {{ include "pxc-database.fullname" . }}-pxc-0 -c pxc -- mysql -uroot -p"$ROOT_PASSWORD" + {{- else }} + ROOT_PASSWORD=`kubectl -n {{ .Release.Namespace }} get secrets {{ include "pxc-database.fullname" . }}-secrets -o jsonpath="{.data.root}" | base64 --decode` + kubectl -n {{ .Release.Namespace }} exec -ti \ + {{ include "pxc-database.fullname" . }}-pxc-0 -c pxc -- mysql -uroot -p"$ROOT_PASSWORD" + {{- end }} + + +2. To connect an Application running in the same Kubernetes cluster you can connect with: + + {{- if hasKey .Values.pxc "clusterSecretName" }} + ROOT_PASSWORD=`kubectl -n {{ .Release.Namespace }} get secrets {{ .Values.pxc.clusterSecretName }} -o jsonpath="{.data.root}" | base64 --decode` + {{- else }} + ROOT_PASSWORD=`kubectl -n {{ .Release.Namespace }} get secrets {{ include "pxc-database.fullname" . }}-secrets -o jsonpath="{.data.root}" | base64 --decode` + {{- end }} + + +{{- if .Values.proxysql.enabled }} + + kubectl run -i --tty --rm percona-client --image=percona --restart=Never \ + -- mysql -h {{ template "pxc-database.fullname" . }}-proxysql.{{ .Release.Namespace }}.svc.cluster.local -uroot -p"$ROOT_PASSWORD" + +{{- else }} + + kubectl run -i --tty --rm percona-client --image=percona --restart=Never \ + -- mysql -h {{ template "pxc-database.fullname" . }}-haproxy.{{ .Release.Namespace }}.svc.cluster.local -uroot -p"$ROOT_PASSWORD" + +{{- end }} + diff --git a/charts/percona/pxc-db/1.15.0/templates/_helpers.tpl b/charts/percona/pxc-db/1.15.0/templates/_helpers.tpl new file mode 100644 index 000000000..0b0611ad1 --- /dev/null +++ b/charts/percona/pxc-db/1.15.0/templates/_helpers.tpl @@ -0,0 +1,77 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "pxc-database.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "pxc-database.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 21 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 21 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 21 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "pxc-database.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 21 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Common labels +*/}} +{{- define "pxc-database.labels" -}} +app.kubernetes.io/name: {{ include "pxc-database.name" . }} +helm.sh/chart: {{ include "pxc-database.chart" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end -}} + +{{/* +This filters the backup.storages hash for S3 credentials. If we detect them, they go in a separate secret. +*/}} +{{- define "pxc-database.storages" -}} +{{- $storages := dict -}} +{{- range $key, $value := .Values.backup.storages -}} +{{- if and (hasKey $value "type") (eq $value.type "s3") (hasKey $value "s3") (hasKey (index $value "s3") "credentialsAccessKey") (hasKey (index $value "s3") "credentialsSecretKey") }} +{{- if hasKey (index $value "s3") "credentialsSecret" -}} +{{- fail "credentialsSecret and credentialsAccessKey/credentialsSecretKey isn't supported!" -}} +{{- end -}} +{{- $secretName := printf "%s-s3-%s" (include "pxc-database.fullname" $) $key -}} +{{- $s3 := set (omit (index $value "s3") "credentialsAccessKey" "credentialsSecretKey") "credentialsSecret" $secretName -}} +{{- $_value := set (omit $value "s3") "s3" $s3 -}} +{{- $_ := set $storages $key $_value -}} +{{- else -}} +{{- $_ := set $storages $key $value -}} +{{- end -}} +{{- end -}} +{{- $storages | toYaml -}} +{{- end -}} + +{{/* +Functions returns image URI according to parameters set +*/}} +{{- define "pxc-db.operator-image" -}} +{{- if .Values.image }} +{{- .Values.image }} +{{- else }} +{{- printf "%s:%s" .Values.operatorImageRepository .Chart.AppVersion }} +{{- end }} +{{- end -}} diff --git a/charts/percona/pxc-db/1.15.0/templates/cluster-secret.yaml b/charts/percona/pxc-db/1.15.0/templates/cluster-secret.yaml new file mode 100644 index 000000000..da07f331a --- /dev/null +++ b/charts/percona/pxc-db/1.15.0/templates/cluster-secret.yaml @@ -0,0 +1,27 @@ +{{- if hasKey .Values.secrets "passwords" }} +apiVersion: v1 +kind: Secret +metadata: + {{- if hasKey .Values.pxc "clusterSecretName" }} + name: {{ .Values.pxc.clusterSecretName }} + {{- else }} + name: {{ include "pxc-database.fullname" . }}-secrets + {{- end }} + namespace: {{ .Release.Namespace }} + labels: +{{ include "pxc-database.labels" . | indent 4 }} +type: Opaque +data: + root: {{ .Values.secrets.passwords.root | b64enc }} + xtrabackup: {{ .Values.secrets.passwords.xtrabackup | b64enc }} + monitor: {{ .Values.secrets.passwords.monitor | b64enc }} + clustercheck: {{ .Values.secrets.passwords.clustercheck | b64enc }} + proxyadmin: {{ .Values.secrets.passwords.proxyadmin | b64enc }} + {{- if hasKey .Values.secrets.passwords "pmmserverkey" }} + pmmserverkey: {{ .Values.secrets.passwords.pmmserverkey | b64enc }} + {{- else if hasKey .Values.secrets.passwords "pmmserver" }} + pmmserver: {{ .Values.secrets.passwords.pmmserver | b64enc }} + {{- end}} + operator: {{ .Values.secrets.passwords.operator | b64enc }} + replication: {{ .Values.secrets.passwords.replication | b64enc }} +{{- end }} diff --git a/charts/percona/pxc-db/1.15.0/templates/cluster-ssl-secret.yaml b/charts/percona/pxc-db/1.15.0/templates/cluster-ssl-secret.yaml new file mode 100644 index 000000000..0d217275f --- /dev/null +++ b/charts/percona/pxc-db/1.15.0/templates/cluster-ssl-secret.yaml @@ -0,0 +1,42 @@ +{{- if .Values.tls.enabled }} +{{- if not .Values.pxc.certManager }} +{{- $nameDB := printf "%s" (include "pxc-database.fullname" .) }} +{{ $ca := genCA (printf "%s-ca" $nameDB ) 365 }} +{{- if not (hasKey .Values.secrets.tls "cluster") }} +--- +{{- $name := printf "%s-proxysql" $nameDB }} +{{- $altNames := list ( printf "%s-pxc" $nameDB ) ( printf "*.%s-pxc" $nameDB ) ( printf "*.%s-proxysql" $nameDB ) -}} +{{ $cert := genSignedCert $name nil $altNames 365 $ca }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ $nameDB }}-ssl + namespace: {{ .Release.Namespace }} + labels: +{{ include "pxc-database.labels" . | indent 4 }} +type: kubernetes.io/tls +data: + ca.crt: {{ $ca.Cert | b64enc }} + tls.crt: {{ $cert.Cert | b64enc }} + tls.key: {{ $cert.Key | b64enc }} +{{- end }} +{{- if not (hasKey .Values.secrets.tls "internal") }} +--- +{{- $name := printf "%s-pxc" $nameDB }} +{{- $altNames := list ( printf "%s" $name ) ( printf "*.%s" $name ) ( printf "%s-haproxy-replicas.%s.svc.cluster.local" $nameDB .Release.Namespace ) ( printf "%s-haproxy-replicas.%s" $nameDB .Release.Namespace ) ( printf "%s-haproxy-replicas" $nameDB ) ( printf "%s-haproxy.%s.svc.cluster.local" $nameDB .Release.Namespace ) ( printf "%s-haproxy.%s" $nameDB .Release.Namespace ) ( printf "%s-haproxy" $nameDB ) -}} +{{ $cert := genSignedCert $name nil $altNames 365 $ca }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ $nameDB }}-ssl-internal + namespace: {{ .Release.Namespace }} + labels: +{{ include "pxc-database.labels" . | indent 4 }} +type: kubernetes.io/tls +data: + ca.crt: {{ $ca.Cert | b64enc }} + tls.crt: {{ $cert.Cert | b64enc }} + tls.key: {{ $cert.Key | b64enc }} +{{- end }} +{{- end }} +{{- end }} diff --git a/charts/percona/pxc-db/1.15.0/templates/cluster.yaml b/charts/percona/pxc-db/1.15.0/templates/cluster.yaml new file mode 100644 index 000000000..037c40ab1 --- /dev/null +++ b/charts/percona/pxc-db/1.15.0/templates/cluster.yaml @@ -0,0 +1,543 @@ +apiVersion: pxc.percona.com/v1 +kind: PerconaXtraDBCluster +metadata: + name: {{ include "pxc-database.fullname" . }} + namespace: {{ .Release.Namespace }} + labels: +{{ include "pxc-database.labels" . | indent 4 }} + finalizers: +{{ .Values.finalizers | toYaml | indent 4 }} + {{- with .Values.annotations }} + annotations: + {{- . | toYaml | nindent 4 }} + {{- end }} +spec: + crVersion: {{ .Chart.AppVersion }} + {{- if .Values.ignoreAnnotations }} + ignoreAnnotations: +{{ .Values.ignoreAnnotations | toYaml | indent 4 }} + {{- end }} + {{- if .Values.ignoreLabels }} + ignoreLabels: +{{ .Values.ignoreLabels | toYaml | indent 4 }} + {{- end }} + {{- if hasKey .Values.pxc "clusterSecretName" }} + secretsName: {{ .Values.pxc.clusterSecretName }} + {{- else }} + secretsName: {{ include "pxc-database.fullname" . }}-secrets + {{- end }} + {{- if .Values.tls.enabled }} + {{- if hasKey .Values.secrets.tls "cluster" }} + sslSecretName: {{ .Values.secrets.tls.cluster }} + {{- else }} + sslSecretName: {{ include "pxc-database.fullname" . }}-ssl + {{- end }} + {{- if hasKey .Values.secrets.tls "internal" }} + sslInternalSecretName: {{ .Values.secrets.tls.internal }} + {{- else }} + sslInternalSecretName: {{ include "pxc-database.fullname" . }}-ssl-internal + {{- end }} + {{- end }} + {{- if hasKey .Values.secrets "vault" }} + vaultSecretName: {{ .Values.secrets.vault }} + {{- else }} + vaultSecretName: {{ include "pxc-database.fullname" . }}-vault + {{- end }} + {{- if hasKey .Values.secrets "logCollector" }} + logCollectorSecretName: {{ .Values.secrets.logCollector }} + {{- else }} + logCollectorSecretName: {{ include "pxc-database.fullname" . }}-log-collector + {{- end }} + {{- if .Values.initContainer }} + initContainer: + {{- if hasKey .Values.initContainer "image" }} + image: {{ .Values.initContainer.image }} + {{- else }} + image: {{ include "pxc-db.operator-image" . }} + {{- end }} + {{- if .Values.initContainer.resources }} + resources: + {{- if hasKey .Values.initContainer.resources "requests" }} + requests: +{{ tpl (.Values.initContainer.resources.requests | toYaml) $ | indent 8 }} + {{- end }} + {{- if hasKey .Values.initContainer.resources "limits" }} + limits: +{{ tpl (.Values.initContainer.resources.limits | toYaml) $ | indent 8 }} + {{- end }} + {{- end }} + {{- end }} + enableCRValidationWebhook: {{ .Values.enableCRValidationWebhook }} + pause: {{ .Values.pause }} + {{- if .Values.unsafeFlags }} + unsafeFlags: +{{ .Values.unsafeFlags | toYaml | indent 4 }} + {{- end }} + updateStrategy: {{ .Values.updateStrategy }} + {{- if hasKey .Values.upgradeOptions "versionServiceEndpoint" }} + upgradeOptions: + versionServiceEndpoint: {{ .Values.upgradeOptions.versionServiceEndpoint }} + apply: {{ .Values.upgradeOptions.apply }} + schedule: {{ .Values.upgradeOptions.schedule }} + {{- end }} + {{- if .Values.tls }} + tls: + enabled: {{ .Values.tls.enabled }} + {{- if hasKey .Values.tls "SANs" }} + SANs: +{{ .Values.tls.SANs | toYaml | indent 6 }} + {{- end }} + {{- if hasKey .Values.tls "issuerConf" }} + issuerConf: + name: {{ .Values.tls.issuerConf.name }} + kind: {{ .Values.tls.issuerConf.kind }} + group: {{ .Values.tls.issuerConf.group }} + {{- end }} + {{- end }} + + {{- $pxc := .Values.pxc }} + pxc: + size: {{ $pxc.size }} + image: {{ $pxc.image.repository }}:{{ $pxc.image.tag }} + autoRecovery: {{ $pxc.autoRecovery }} + {{- if $pxc.schedulerName }} + schedulerName: {{ $pxc.schedulerName }} + {{- end }} + readinessDelaySec: {{ $pxc.readinessDelaySec }} + livenessDelaySec: {{ $pxc.livenessDelaySec }} + {{- if $pxc.configuration }} + configuration: | + {{ tpl $pxc.configuration $ | nindent 6 }} + {{- end }} + {{- if $pxc.imagePullPolicy }} + imagePullPolicy: {{ $pxc.imagePullPolicy }} + {{- end }} + {{- if $pxc.imagePullSecrets }} + imagePullSecrets: +{{ $pxc.imagePullSecrets | toYaml | indent 6 }} + {{- end }} + {{- if $pxc.priorityClassName }} + priorityClassName: {{ $pxc.priorityClassName }} + {{- end }} + annotations: +{{ $pxc.annotations | toYaml | indent 6 }} + labels: +{{ $pxc.labels | toYaml | indent 6 }} + {{- if $pxc.expose }} + expose: +{{ tpl ($pxc.expose | toYaml) $ | indent 6 }} + {{- end }} + {{- if $pxc.replicationChannels }} + replicationChannels: +{{ tpl ($pxc.replicationChannels | toYaml) $ | indent 6 }} + {{- end }} + {{- if $pxc.runtimeClassName }} + runtimeClassName: {{ $pxc.runtimeClassName }} + {{- end }} + {{- if $pxc.envVarsSecret }} + envVarsSecret: {{ $pxc.envVarsSecret }} + {{- end }} + resources: + requests: +{{ tpl ($pxc.resources.requests | toYaml) $ | indent 8 }} + limits: +{{ tpl ($pxc.resources.limits | toYaml) $ | indent 8 }} + sidecars: +{{ $pxc.sidecars | toYaml | indent 6 }} + sidecarVolumes: +{{ $pxc.sidecarVolumes | toYaml | indent 6 }} + sidecarPVCs: +{{ $pxc.sidecarPVCs | toYaml | indent 6 }} + sidecarResources: + requests: +{{ tpl ($pxc.sidecarResources.requests | toYaml) $ | indent 8 }} + limits: +{{ tpl ($pxc.sidecarResources.limits | toYaml) $ | indent 8 }} + nodeSelector: +{{ $pxc.nodeSelector | toYaml | indent 6 }} + {{- if $pxc.topologySpreadConstraints }} + topologySpreadConstraints: +{{ $pxc.topologySpreadConstraints | toYaml | indent 6 }} + {{- end }} + affinity: +{{ $pxc.affinity | toYaml | indent 6 }} + tolerations: +{{ $pxc.tolerations | toYaml | indent 6 }} + podDisruptionBudget: +{{ $pxc.podDisruptionBudget | toYaml | indent 6 }} + volumeSpec: + {{- if not $pxc.persistence.enabled }} + emptyDir: {} + {{- else }} + {{- if hasKey $pxc.persistence "hostPath" }} + hostPath: + path: {{ $pxc.persistence.hostPath }} + type: Directory + {{- else }} + persistentVolumeClaim: + {{- if $pxc.persistence.storageClass }} + {{- if (eq "-" $pxc.persistence.storageClass) }} + storageClassName: "" + {{- else }} + storageClassName: "{{ $pxc.persistence.storageClass }}" + {{- end }} + {{- end }} + accessModes: [{{ $pxc.persistence.accessMode | quote }}] + {{- if $pxc.persistence.dataSource }} + dataSource: +{{ $pxc.persistence.dataSource| toYaml | indent 10 }} + {{- end }} + resources: + requests: + storage: {{ $pxc.persistence.size | quote }} + {{- end }} + {{- end }} + gracePeriod: {{ $pxc.gracePeriod }} + {{- if hasKey $pxc "lifecycle" }} + lifecycle: + {{- if hasKey $pxc.lifecycle "preStop" }} + preStop: + {{- $pxc.lifecycle.preStop | toYaml | nindent 8 }} + {{- end }} + {{- if hasKey $pxc.lifecycle "postStart" }} + postStart: + {{- $pxc.lifecycle.postStart | toYaml | nindent 8 }} + {{- end }} + {{- end }} + readinessProbes: +{{ tpl ($pxc.readinessProbes | toYaml) $ | indent 6 }} + livenessProbes: +{{ tpl ($pxc.livenessProbes | toYaml) $ | indent 6 }} + {{- if $pxc.containerSecurityContext }} + containerSecurityContext: +{{ tpl ($pxc.containerSecurityContext | toYaml) $ | indent 6 }} + {{- end }} + {{- if $pxc.podSecurityContext }} + podSecurityContext: +{{ tpl ($pxc.podSecurityContext | toYaml) $ | indent 6 }} + {{- end }} + {{- if $pxc.serviceAccountName }} + serviceAccountName: {{ $pxc.serviceAccountName }} + {{- end }} + {{- if or (not .Values.haproxy.enabled) .Values.proxysql.enabled }} + haproxy: + enabled: false + {{- else }} + {{- $haproxy := .Values.haproxy }} + haproxy: + enabled: true + size: {{ $haproxy.size }} + image: {{ .Values.haproxy.image }} + {{- if $haproxy.imagePullPolicy }} + imagePullPolicy: {{ $haproxy.imagePullPolicy }} + {{- end }} + {{- if $haproxy.imagePullSecrets }} + imagePullSecrets: +{{ $haproxy.imagePullSecrets | toYaml | indent 6 }} + {{- end }} + {{- if $haproxy.schedulerName }} + schedulerName: {{ $haproxy.schedulerName }} + {{- end }} + {{- if $haproxy.configuration }} + configuration: | + {{ tpl $haproxy.configuration $ | nindent 6 }} + {{- end }} + {{- if $haproxy.priorityClassName }} + priorityClassName: {{ $haproxy.priorityClassName }} + {{- end }} + {{- if $haproxy.exposePrimary }} + exposePrimary: +{{ tpl ($haproxy.exposePrimary | toYaml) $ | indent 6 }} + {{- end }} + {{- if $haproxy.exposeReplicas }} + exposeReplicas: +{{ tpl ($haproxy.exposeReplicas | toYaml) $ | indent 6 }} + {{- end }} + annotations: +{{ $haproxy.annotations | toYaml | indent 6 }} + labels: +{{ $haproxy.labels | toYaml | indent 6 }} + {{- if $haproxy.runtimeClassName }} + runtimeClassName: {{ $haproxy.runtimeClassName }} + {{- end }} + {{- if $haproxy.envVarsSecret }} + envVarsSecret: {{ $haproxy.envVarsSecret }} + {{- end }} + resources: + requests: +{{ $haproxy.resources.requests | toYaml | indent 8 }} + limits: +{{ $haproxy.resources.limits | toYaml | indent 8 }} + sidecars: +{{ $haproxy.sidecars | toYaml | indent 6 }} + sidecarVolumes: +{{ $haproxy.sidecarVolumes | toYaml | indent 6 }} + sidecarPVCs: +{{ $haproxy.sidecarPVCs | toYaml | indent 6 }} + sidecarResources: + requests: +{{ tpl ($haproxy.sidecarResources.requests | toYaml) $ | indent 8 }} + limits: +{{ tpl ($haproxy.sidecarResources.limits | toYaml) $ | indent 8 }} + {{- if $haproxy.serviceAccountName }} + serviceAccountName: {{ $haproxy.serviceAccountName }} + {{- end }} + nodeSelector: +{{ $haproxy.nodeSelector | toYaml | indent 6 }} + {{- if $haproxy.topologySpreadConstraints }} + topologySpreadConstraints: +{{ $haproxy.topologySpreadConstraints | toYaml | indent 6 }} + {{- end }} + affinity: +{{ $haproxy.affinity | toYaml | indent 6 }} + tolerations: +{{ $haproxy.tolerations | toYaml | indent 6 }} + podDisruptionBudget: +{{ $haproxy.podDisruptionBudget | toYaml | indent 6 }} + volumeSpec: + emptyDir: {} + gracePeriod: {{ $haproxy.gracePeriod }} + {{- if hasKey $haproxy "lifecycle" }} + lifecycle: + {{- if hasKey $haproxy.lifecycle "preStop" }} + preStop: + {{- $haproxy.lifecycle.preStop | toYaml | nindent 8 }} + {{- end }} + {{- if hasKey $haproxy.lifecycle "postStart" }} + postStart: + {{- $haproxy.lifecycle.postStart | toYaml | nindent 8 }} + {{- end }} + {{- end }} + {{- if $haproxy.readinessDelaySec }} + readinessDelaySec: {{ $haproxy.readinessDelaySec }} + {{- end }} + {{- if $haproxy.livenessDelaySec }} + livenessDelaySec: {{ $pxc.livenessDelaySec }} + {{- end }} + readinessProbes: +{{ tpl ($haproxy.readinessProbes | toYaml) $ | indent 6 }} + livenessProbes: +{{ tpl ($haproxy.livenessProbes | toYaml) $ | indent 6 }} + {{- if $haproxy.containerSecurityContext }} + containerSecurityContext: +{{ tpl ($haproxy.containerSecurityContext | toYaml) $ | indent 6 }} + {{- end }} + {{- if $haproxy.podSecurityContext }} + podSecurityContext: +{{ tpl ($haproxy.podSecurityContext | toYaml) $ | indent 6 }} + {{- end }} + {{- end }} + {{- if not .Values.proxysql.enabled }} + proxysql: + enabled: false + {{- else }} + {{- $proxysql := .Values.proxysql }} + proxysql: + enabled: true + size: {{ $proxysql.size }} + image: {{ .Values.proxysql.image }} + {{- if $proxysql.imagePullPolicy }} + imagePullPolicy: {{ $proxysql.imagePullPolicy }} + {{- end }} + {{- if $proxysql.imagePullSecrets }} + imagePullSecrets: + {{- $proxysql.imagePullSecrets | toYaml | indent 6 }} + {{- end }} + {{- if $proxysql.schedulerName }} + schedulerName: {{ $proxysql.schedulerName }} + {{- end }} + {{- if $proxysql.configuration }} + configuration: | + {{ tpl $proxysql.configuration $ | nindent 6 }} + {{- end }} + {{- if $proxysql.priorityClassName }} + priorityClassName: {{ $proxysql.priorityClassName }} + {{- end }} + {{- if $proxysql.expose }} + expose: +{{ tpl ($proxysql.expose | toYaml) $ | indent 6 }} + {{- end }} + annotations: +{{ $proxysql.annotations | toYaml | indent 6 }} + labels: +{{ $proxysql.labels | toYaml | indent 6 }} + {{- if $proxysql.runtimeClassName }} + runtimeClassName: {{ $proxysql.runtimeClassName }} + {{- end }} + {{- if $proxysql.envVarsSecret }} + envVarsSecret: {{ $proxysql.envVarsSecret }} + {{- end }} + resources: + requests: +{{ $proxysql.resources.requests | toYaml | indent 8 }} + limits: +{{ $proxysql.resources.limits | toYaml | indent 8 }} + sidecars: +{{ $proxysql.sidecars | toYaml | indent 6 }} + sidecarVolumes: +{{ $proxysql.sidecarVolumes | toYaml | indent 6 }} + sidecarPVCs: +{{ $proxysql.sidecarPVCs | toYaml | indent 6 }} + sidecarResources: + requests: +{{ tpl ($proxysql.sidecarResources.requests | toYaml) $ | indent 8 }} + limits: +{{ tpl ($proxysql.sidecarResources.limits | toYaml) $ | indent 8 }} + {{- if $proxysql.serviceAccountName }} + serviceAccountName: {{ $proxysql.serviceAccountName }} + {{- end }} + nodeSelector: +{{ $proxysql.nodeSelector | toYaml | indent 6 }} + {{- if $proxysql.topologySpreadConstraints }} + topologySpreadConstraints: +{{ $proxysql.topologySpreadConstraints | toYaml | indent 6 }} + {{- end }} + affinity: +{{ $proxysql.affinity | toYaml | indent 6 }} + tolerations: +{{ $proxysql.tolerations | toYaml | indent 6 }} + podDisruptionBudget: +{{ $proxysql.podDisruptionBudget | toYaml | indent 6 }} + volumeSpec: + {{- if not $proxysql.persistence.enabled }} + emptyDir: {} + {{- else }} + {{- if hasKey $proxysql.persistence "hostPath" }} + hostPath: + path: {{ $proxysql.persistence.hostPath }} + type: Directory + {{- else }} + persistentVolumeClaim: + {{- if $proxysql.persistence.storageClass }} + {{- if (eq "-" $proxysql.persistence.storageClass) }} + storageClassName: "" + {{- else }} + storageClassName: "{{ $proxysql.persistence.storageClass }}" + {{- end }} + {{- end }} + accessModes: [{{ $proxysql.persistence.accessMode | quote }}] + resources: + requests: + storage: {{ $proxysql.persistence.size | quote }} + {{- end }} + {{- end }} + gracePeriod: {{ $proxysql.gracePeriod }} + {{- if hasKey $proxysql "lifecycle" }} + lifecycle: + {{- if hasKey $proxysql.lifecycle "preStop" }} + preStop: + {{- $proxysql.lifecycle.preStop | toYaml | nindent 8 }} + {{- end }} + {{- if hasKey $proxysql.lifecycle "postStart" }} + postStart: + {{- $proxysql.lifecycle.postStart | toYaml | nindent 8 }} + {{- end }} + {{- end }} + {{- if $proxysql.containerSecurityContext }} + containerSecurityContext: +{{ tpl ($proxysql.containerSecurityContext | toYaml) $ | indent 6 }} + {{- end }} + {{- if $proxysql.podSecurityContext }} + podSecurityContext: +{{ tpl ($proxysql.podSecurityContext | toYaml) $ | indent 6 }} + {{- end }} + {{- end }} + logcollector: + {{- if not .Values.logcollector.enabled }} + enabled: false + {{- else }} + {{- $logcollector := .Values.logcollector }} + enabled: true + image: {{ .Values.logcollector.image }} + {{- if $logcollector.imagePullPolicy }} + imagePullPolicy: {{ $logcollector.imagePullPolicy }} + {{- end }} + {{- if $logcollector.imagePullSecrets }} + imagePullSecrets: + {{- $logcollector.imagePullSecrets | toYaml | nindent 6 }} + {{- end }} + {{- if $logcollector.configuration }} + configuration: | + {{ tpl $logcollector.configuration $ | nindent 6 }} + {{- end }} + resources: + requests: +{{ tpl ($logcollector.resources.requests | toYaml) $ | indent 8 }} + limits: +{{ tpl ($logcollector.resources.limits | toYaml) $ | indent 8 }} + {{- if $logcollector.containerSecurityContext }} + containerSecurityContext: +{{ tpl ($logcollector.containerSecurityContext | toYaml) $ | indent 6 }} + {{- end }} + {{- end }} + pmm: + {{- if not .Values.pmm.enabled }} + enabled: false + {{- else }} + {{- $pmm := .Values.pmm }} + enabled: true + image: {{ $pmm.image.repository }}:{{ $pmm.image.tag }} + {{- if $pmm.imagePullPolicy }} + imagePullPolicy: {{ $pmm.imagePullPolicy }} + {{- end }} + {{- if $pmm.containerSecurityContext }} + containerSecurityContext: +{{ tpl ($pmm.containerSecurityContext | toYaml) $ | indent 6 }} + {{- end }} + {{- if $pmm.imagePullSecrets }} + imagePullSecrets: + {{- $pmm.imagePullSecrets | toYaml | nindent 6 }} + {{- end }} + serverHost: {{ $pmm.serverHost }} + serverUser: {{ $pmm.serverUser }} + {{- if $pmm.pxcParams }} + pxcParams: {{ $pmm.pxcParams }} + {{- end }} + {{- if $pmm.proxysqlParams }} + proxysqlParams: {{ $pmm.proxysqlParams }} + {{- end }} + resources: + requests: +{{ tpl ($pmm.resources.requests | toYaml) $ | indent 8 }} + limits: +{{ tpl ($pmm.resources.limits | toYaml) $ | indent 8 }} + {{- end }} + {{- $backup := .Values.backup }} + {{- if $backup.enabled }} + backup: + {{- if $backup.allowParallel }} + allowParallel: {{ $backup.allowParallel }} + {{- end }} + image: {{ $backup.image.repository }}:{{ $backup.image.tag }} + {{- if $backup.backoffLimit }} + backoffLimit: {{ $backup.backoffLimit }} + {{- end }} + {{- if $backup.serviceAccountName }} + serviceAccountName: {{ $backup.serviceAccountName }} + {{- end }} + {{- if $backup.imagePullPolicy }} + imagePullPolicy: {{ $backup.imagePullPolicy }} + {{- end }} + {{- if $backup.imagePullSecrets }} + imagePullSecrets: +{{ $backup.imagePullSecrets | toYaml | indent 6 }} + {{- end }} + pitr: + {{- if not $backup.pitr.enabled }} + enabled: false + {{- else }} + enabled: true + storageName: {{ $backup.pitr.storageName }} + timeBetweenUploads: {{ $backup.pitr.timeBetweenUploads }} + timeoutSeconds: {{ $backup.pitr.timeoutSeconds }} + resources: + requests: +{{ tpl ($backup.pitr.resources.requests | toYaml) $ | indent 10 }} + limits: +{{ tpl ($backup.pitr.resources.limits | toYaml) $ | indent 10 }} + {{- end }} + storages: +{{ include "pxc-database.storages" . | indent 6 }} + schedule: +{{ $backup.schedule | toYaml | indent 6 }} +{{- end }} diff --git a/charts/percona/pxc-db/1.15.0/templates/s3-secret.yaml b/charts/percona/pxc-db/1.15.0/templates/s3-secret.yaml new file mode 100644 index 000000000..b801f1890 --- /dev/null +++ b/charts/percona/pxc-db/1.15.0/templates/s3-secret.yaml @@ -0,0 +1,16 @@ +{{- range $key, $value := .Values.backup.storages }} +{{- if and (hasKey $value "type") (eq $value.type "s3") (hasKey $value "s3") (hasKey (index $value "s3") "credentialsAccessKey") (hasKey (index $value "s3") "credentialsSecretKey") }} +--- +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "pxc-database.fullname" $ }}-s3-{{ $key }} + namespace: {{ $.Release.Namespace }} + labels: +{{ include "pxc-database.labels" $ | indent 4 }} +type: Opaque +data: + AWS_ACCESS_KEY_ID: {{ index $value "s3" "credentialsAccessKey" | b64enc }} + AWS_SECRET_ACCESS_KEY: {{ index $value "s3" "credentialsSecretKey" | b64enc }} +{{- end }} +{{- end }} diff --git a/charts/percona/pxc-db/1.15.0/values.yaml b/charts/percona/pxc-db/1.15.0/values.yaml new file mode 100644 index 000000000..23ac57809 --- /dev/null +++ b/charts/percona/pxc-db/1.15.0/values.yaml @@ -0,0 +1,710 @@ +# Default values for pxc-cluster. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +finalizers: + - percona.com/delete-pxc-pods-in-order +## Set this if you want to delete proxysql persistent volumes on cluster deletion +# - percona.com/delete-proxysql-pvc +## Set this if you want to delete database persistent volumes on cluster deletion +# - percona.com/delete-pxc-pvc +## Set this if you want to delete cert manager certificates on cluster deletion +# - percona.com/delete-ssl + +nameOverride: "" +fullnameOverride: "" + +# PerconaXtraDBCluster annotations +annotations: {} + +operatorImageRepository: percona/percona-xtradb-cluster-operator + +crVersion: 1.15.0 +ignoreAnnotations: [] + # - iam.amazonaws.com/role +ignoreLabels: [] + # - rack +pause: false +# initContainer: +# image: "percona/percona-xtradb-cluster-operator:1.15.0" +# resources: +# requests: +# memory: 100M +# cpu: 100m +# limits: +# memory: 200M +# cpu: 200m +# unsafeFlags: +# tls: false +# pxcSize: false +# proxySize: false +# backupIfUnhealthy: false +updateStrategy: SmartUpdate +upgradeOptions: + versionServiceEndpoint: https://check.percona.com + apply: disabled + schedule: "0 4 * * *" +enableCRValidationWebhook: false +tls: + enabled: true + # SANs: + # - pxc-1.example.com + # - pxc-2.example.com + # - pxc-3.example.com + # issuerConf: + # name: special-selfsigned-issuer + # kind: ClusterIssuer + # group: cert-manager.io + +pxc: + size: 3 + image: + repository: percona/percona-xtradb-cluster + tag: 8.0.36-28.1 + # imagePullPolicy: Always + autoRecovery: true + # expose: + # enabled: true + # type: LoadBalancer + # externalTrafficPolicy: Local + # internalTrafficPolicy: Local + # loadBalancerSourceRanges: + # - 10.0.0.0/8 + # loadBalancerIP: 127.0.0.1 + # annotations: + # networking.gke.io/load-balancer-type: "Internal" + # labels: + # rack: rack-22 + # replicationChannels: + # - name: pxc1_to_pxc2 + # isSource: true + # - name: pxc2_to_pxc1 + # isSource: false + # configuration: + # sourceRetryCount: 3 + # sourceConnectRetry: 60 + # ssl: false + # sslSkipVerify: true + # ca: '/etc/mysql/ssl/ca.crt' + # sourcesList: + # - host: 10.95.251.101 + # port: 3306 + # weight: 100 + # schedulerName: mycustom-scheduler + imagePullSecrets: [] + # - name: private-registry-credentials + annotations: {} + # iam.amazonaws.com/role: role-arn + labels: {} + # rack: rack-22 + # priorityClassName: high-priority + readinessDelaySec: 15 + livenessDelaySec: 300 + ## Uncomment to pass in a mysql config file + # configuration: | + # [mysqld] + # wsrep_debug=ON + # wsrep_provider_options="gcache.size=1G; gcache.recover=yes" + # envVarsSecret: my-env-var-secrets + resources: + requests: + memory: 1G + cpu: 600m + limits: {} + # memory: 1G + # cpu: 600m + # runtimeClassName: image-rc + sidecars: [] + sidecarVolumes: [] + sidecarPVCs: [] + sidecarResources: + requests: {} + limits: {} + nodeSelector: {} + # disktype: ssd + # topologySpreadConstraints: + # - labelSelector: + # matchLabels: + # app.kubernetes.io/name: percona-xtradb-cluster-operator + # maxSkew: 1 + # topologyKey: kubernetes.io/hostname + # whenUnsatisfiable: DoNotSchedule + affinity: + antiAffinityTopologyKey: "kubernetes.io/hostname" + # advanced: + # nodeAffinity: + # requiredDuringSchedulingIgnoredDuringExecution: + # nodeSelectorTerms: + # - matchExpressions: + # - key: kubernetes.io/e2e-az-name + # operator: In + # values: + # - e2e-az1 + # - e2e-az2 + tolerations: [] + # - key: "node.alpha.kubernetes.io/unreachable" + # operator: "Exists" + # effect: "NoExecute" + # tolerationSeconds: 6000 + gracePeriod: 600 + # lifecycle: + # preStop: + # exec: + # command: [ "/bin/true" ] + # postStart: + # exec: + # command: [ "/bin/true" ] + podDisruptionBudget: + # only one of maxUnavailable or minAvaliable can be set + maxUnavailable: 1 + # minAvailable: 0 + persistence: + enabled: true + ## percona data Persistent Volume Storage Class + ## If defined, storageClassName: + ## If set to "-", storageClassName: "", which disables dynamic provisioning + ## If undefined (the default) or set to null, no storageClassName spec is + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) + ## + # storageClass: "-" + accessMode: ReadWriteOnce + # dataSource: + # name: new-snapshot-test + # kind: VolumeSnapshot + # apiGroup: snapshot.storage.k8s.io + size: 8Gi + + # disable Helm creating TLS certificates if you want to let the operator + # request certificates from cert-manager + certManager: false + + # If this is set will not create secrets from values and will instead try to use + # a pre-existing secret of the same name. + # clusterSecretName: cluster1-secrets + readinessProbes: + initialDelaySeconds: 15 + timeoutSeconds: 15 + periodSeconds: 30 + successThreshold: 1 + failureThreshold: 5 + livenessProbes: + initialDelaySeconds: 300 + timeoutSeconds: 5 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + # A custom Kubernetes Security Context for a Container to be used instead of the default one + # containerSecurityContext: + # privileged: false + # A custom Kubernetes Security Context for a Pod to be used instead of the default one + # podSecurityContext: + # fsGroup: 1001 + # supplementalGroups: + # - 1001 + # serviceAccountName: percona-xtradb-cluster-operator-workload + +haproxy: + enabled: true + size: 3 + image: percona/haproxy:2.8.5 + # imagePullPolicy: Always + imagePullSecrets: [] + # - name: private-registry-credentials +# configuration: | +# +# the actual default configuration file can be found here https://raw.githubusercontent.com/percona/percona-xtradb-cluster-operator/main/build/haproxy-global.cfg +# +# global +# maxconn 2048 +# external-check +# insecure-fork-wanted +# stats socket /etc/haproxy/pxc/haproxy.sock mode 600 expose-fd listeners level admin +# +# defaults +# default-server init-addr last,libc,none +# log global +# mode tcp +# retries 10 +# timeout client 28800s +# timeout connect 100500 +# timeout server 28800s +# +# resolvers kubernetes +# parse-resolv-conf +# +# frontend galera-in +# bind *:3309 accept-proxy +# bind *:3306 +# mode tcp +# option clitcpka +# default_backend galera-nodes +# +# frontend galera-admin-in +# bind *:33062 +# mode tcp +# option clitcpka +# default_backend galera-admin-nodes +# +# frontend galera-replica-in +# bind *:3307 +# mode tcp +# option clitcpka +# default_backend galera-replica-nodes +# +# frontend galera-mysqlx-in +# bind *:33060 +# mode tcp +# option clitcpka +# default_backend galera-mysqlx-nodes +# +# frontend stats +# bind *:8404 +# mode http +# option http-use-htx +# http-request use-service prometheus-exporter if { path /metrics } + annotations: {} + # iam.amazonaws.com/role: role-arn + labels: {} + # rack: rack-22 + # runtimeClassName: image-rc + # priorityClassName: high-priority + # schedulerName: mycustom-scheduler + readinessDelaySec: 15 + livenessDelaySec: 300 + # envVarsSecret: my-env-var-secrets + resources: + requests: + memory: 1G + cpu: 600m + limits: {} + # memory: 1G + # cpu: 600m + sidecars: [] + sidecarVolumes: [] + sidecarPVCs: [] + sidecarResources: + requests: {} + limits: {} + nodeSelector: {} + # disktype: ssd + # serviceAccountName: percona-xtradb-cluster-operator-workload + # topologySpreadConstraints: + # - labelSelector: + # matchLabels: + # app.kubernetes.io/name: percona-xtradb-cluster-operator + # maxSkew: 1 + # topologyKey: kubernetes.io/hostname + # whenUnsatisfiable: DoNotSchedule + affinity: + antiAffinityTopologyKey: "kubernetes.io/hostname" + # advanced: + # nodeAffinity: + # requiredDuringSchedulingIgnoredDuringExecution: + # nodeSelectorTerms: + # - matchExpressions: + # - key: kubernetes.io/e2e-az-name + # operator: In + # values: + # - e2e-az1 + # - e2e-az2 + tolerations: [] + # - key: "node.alpha.kubernetes.io/unreachable" + # operator: "Exists" + # effect: "NoExecute" + # tolerationSeconds: 6000 + gracePeriod: 30 + # lifecycle: + # preStop: + # exec: + # command: [ "/bin/true" ] + # postStart: + # exec: + # command: [ "/bin/true" ] + # only one of `maxUnavailable` or `minAvailable` can be set. + podDisruptionBudget: + maxUnavailable: 1 + # minAvailable: 0 + readinessProbes: + initialDelaySeconds: 15 + timeoutSeconds: 1 + periodSeconds: 5 + successThreshold: 1 + failureThreshold: 3 + livenessProbes: + initialDelaySeconds: 60 + timeoutSeconds: 5 + periodSeconds: 30 + successThreshold: 1 + failureThreshold: 4 + # exposePrimary: + # enabled: false + # type: ClusterIP + # annotations: + # service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp + # externalTrafficPolicy: Cluster + # internalTrafficPolicy: Cluster + # labels: + # rack: rack-22 + # loadBalancerSourceRanges: + # - 10.0.0.0/8 + # loadBalancerIP: 127.0.0.1 + # exposeReplicas: + # enabled: true + # onlyReaders: false + # type: ClusterIP + # annotations: + # service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp + # externalTrafficPolicy: Cluster + # internalTrafficPolicy: Cluster + # labels: + # rack: rack-22 + # loadBalancerSourceRanges: + # - 10.0.0.0/8 + # loadBalancerIP: 127.0.0.1 + # A custom Kubernetes Security Context for a Container to be used instead of the default one + # containerSecurityContext: + # privileged: false + # A custom Kubernetes Security Context for a Pod to be used instead of the default one + # podSecurityContext: + # fsGroup: 1001 + # supplementalGroups: + # - 1001 + +proxysql: + enabled: false + size: 3 + image: "percona/proxysql2:2.5.5" + # imagePullPolicy: Always + imagePullSecrets: [] +# configuration: | +# datadir="/var/lib/proxysql" +# +# admin_variables = +# { +# admin_credentials="proxyadmin:admin_password" +# mysql_ifaces="0.0.0.0:6032" +# refresh_interval=2000 +# +# cluster_username="proxyadmin" +# cluster_password="admin_password" +# checksum_admin_variables=false +# checksum_ldap_variables=false +# checksum_mysql_variables=false +# cluster_check_interval_ms=200 +# cluster_check_status_frequency=100 +# cluster_mysql_query_rules_save_to_disk=true +# cluster_mysql_servers_save_to_disk=true +# cluster_mysql_users_save_to_disk=true +# cluster_proxysql_servers_save_to_disk=true +# cluster_mysql_query_rules_diffs_before_sync=1 +# cluster_mysql_servers_diffs_before_sync=1 +# cluster_mysql_users_diffs_before_sync=1 +# cluster_proxysql_servers_diffs_before_sync=1 +# } +# +# mysql_variables= +# { +# monitor_password="monitor" +# monitor_galera_healthcheck_interval=1000 +# threads=2 +# max_connections=2048 +# default_query_delay=0 +# default_query_timeout=10000 +# poll_timeout=2000 +# interfaces="0.0.0.0:3306" +# default_schema="information_schema" +# stacksize=1048576 +# connect_timeout_server=10000 +# monitor_history=60000 +# monitor_connect_interval=20000 +# monitor_ping_interval=10000 +# ping_timeout_server=200 +# commands_stats=true +# sessions_sort=true +# have_ssl=true +# ssl_p2s_ca="/etc/proxysql/ssl-internal/ca.crt" +# ssl_p2s_cert="/etc/proxysql/ssl-internal/tls.crt" +# ssl_p2s_key="/etc/proxysql/ssl-internal/tls.key" +# ssl_p2s_cipher="ECDHE-RSA-AES128-GCM-SHA256" +# } + # - name: private-registry-credentials + annotations: {} + # iam.amazonaws.com/role: role-arn + labels: {} + # rack: rack-22 + # runtimeClassName: image-rc + # expose: + # enabled: false + # type: ClusterIP + # annotations: + # service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp + # externalTrafficPolicy: Cluster + # internalTrafficPolicy: Cluster + # labels: + # rack: rack-22 + # loadBalancerSourceRanges: + # - 10.0.0.0/8 + # loadBalancerIP: 127.0.0.1 + # priorityClassName: high-priority + # schedulerName: mycustom-scheduler + readinessDelaySec: 15 + livenessDelaySec: 300 + # envVarsSecret: my-env-var-secrets + resources: + requests: + memory: 1G + cpu: 600m + limits: {} + # memory: 1G + # cpu: 600m + sidecars: [] + sidecarVolumes: [] + sidecarPVCs: [] + sidecarResources: + requests: {} + limits: {} + nodeSelector: {} + # disktype: ssd + # topologySpreadConstraints: + # - labelSelector: + # matchLabels: + # app.kubernetes.io/name: percona-xtradb-cluster-operator + # maxSkew: 1 + # topologyKey: kubernetes.io/hostname + # whenUnsatisfiable: DoNotSchedule + # serviceAccountName: percona-xtradb-cluster-operator-workload + affinity: + antiAffinityTopologyKey: "kubernetes.io/hostname" + # advanced: + # nodeAffinity: + # requiredDuringSchedulingIgnoredDuringExecution: + # nodeSelectorTerms: + # - matchExpressions: + # - key: kubernetes.io/e2e-az-name + # operator: In + # values: + # - e2e-az1 + # - e2e-az2 + tolerations: [] + # - key: "node.alpha.kubernetes.io/unreachable" + # operator: "Exists" + # effect: "NoExecute" + # tolerationSeconds: 6000 + gracePeriod: 30 + # lifecycle: + # preStop: + # exec: + # command: [ "/bin/true" ] + # postStart: + # exec: + # command: [ "/bin/true" ] + # only one of `maxUnavailable` or `minAvailable` can be set. + podDisruptionBudget: + maxUnavailable: 1 + # minAvailable: 0 + persistence: + enabled: true + ## Percona data Persistent Volume Storage Class + ## If defined, storageClassName: + ## If set to "-", storageClassName: "", which disables dynamic provisioning + ## If undefined (the default) or set to null, no storageClassName spec is + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) + ## + # storageClass: "-" + accessMode: ReadWriteOnce + size: 8Gi + # A custom Kubernetes Security Context for a Container to be used instead of the default one + # containerSecurityContext: + # privileged: false + # A custom Kubernetes Security Context for a Pod to be used instead of the default one + # podSecurityContext: + # fsGroup: 1001 + # supplementalGroups: + # - 1001 + +logcollector: + enabled: true + image: percona/percona-xtradb-cluster-operator:1.15.0-logcollector-fluentbit3.1.4 + # imagePullPolicy: Always + imagePullSecrets: [] + # configuration: | + # [OUTPUT] + # Name es + # Match * + # Host 192.168.2.3 + # Port 9200 + # Index my_index + # Type my_type + resources: + requests: + memory: 100M + cpu: 200m + limits: {} + # A custom Kubernetes Security Context for a Container to be used instead of the default one + # containerSecurityContext: + # privileged: false + +pmm: + enabled: false + image: + repository: percona/pmm-client + tag: 2.42.0 + # imagePullPolicy: Always + imagePullSecrets: [] + serverHost: monitoring-service + serverUser: admin + # pxcParams: "--disable-tablestats-limit=2000" + # proxysqlParams: "--custom-labels=CUSTOM-LABELS" + # containerSecurityContext: + # privileged: false + resources: + requests: + memory: 150M + cpu: 300m + limits: {} + +backup: + enabled: true + # allowParallel: true + image: + repository: percona/percona-xtradb-cluster-operator + tag: 1.15.0-pxc8.0-backup-pxb8.0.35 + # backoffLimit: 6 + # serviceAccountName: percona-xtradb-cluster-operator + # imagePullPolicy: Always + imagePullSecrets: [] + # - name: private-registry-credentials + pitr: + enabled: false + storageName: s3-us-west-binlogs + timeBetweenUploads: 60 + timeoutSeconds: 60 + resources: + requests: {} + limits: {} + storages: {} + # fs-pvc: + # type: filesystem + # volume: + # persistentVolumeClaim: + # storageClassName: standard + # accessModes: ["ReadWriteOnce"] + # resources: + # requests: + # storage: 6Gi + # s3-us-west: + # type: s3 + # verifyTLS: true + # nodeSelector: + # storage: tape + # backupWorker: 'True' + # resources: + # requests: + # memory: 1G + # cpu: 600m + # topologySpreadConstraints: + # - labelSelector: + # matchLabels: + # app.kubernetes.io/name: percona-xtradb-cluster-operator + # maxSkew: 1 + # topologyKey: kubernetes.io/hostname + # whenUnsatisfiable: DoNotSchedule + # affinity: + # nodeAffinity: + # requiredDuringSchedulingIgnoredDuringExecution: + # nodeSelectorTerms: + # - matchExpressions: + # - key: backupWorker + # operator: In + # values: + # - 'True' + # tolerations: + # - key: "backupWorker" + # operator: "Equal" + # value: "True" + # effect: "NoSchedule" + # annotations: + # testName: scheduled-backup + # labels: + # backupWorker: 'True' + # schedulerName: 'default-scheduler' + # priorityClassName: 'high-priority' + # containerSecurityContext: + # privileged: true + # podSecurityContext: + # fsGroup: 1001 + # supplementalGroups: [1001, 1002, 1003] + # containerOptions: + # env: + # - name: VERIFY_TLS + # value: "false" + # args: + # xtrabackup: + # - "--someflag=abc" + # xbcloud: + # - "--someflag=abc" + # xbstream: + # - "--someflag=abc" + # s3: + # bucket: S3-BACKUP-BUCKET-NAME-HERE + # # Use credentialsSecret OR credentialsAccessKey/credentialsSecretKey + # credentialsSecret: my-cluster-name-backup-s3 + # #credentialsAccessKey: REPLACE-WITH-AWS-ACCESS-KEY + # #credentialsSecretKey: REPLACE-WITH-AWS-SECRET-KEY + # region: us-west-2 + # endpointUrl: https://sfo2.digitaloceanspaces.com + # s3-us-west-binlogs: + # type: s3 + # s3: + # bucket: S3-BACKUP-BUCKET-NAME-HERE/DIRECTORY + # credentialsSecret: my-cluster-name-backup-s3 + # region: us-west-2 + # endpointUrl: https://sfo2.digitaloceanspaces.com + # azure-blob: + # type: azure + # azure: + # credentialsSecret: azure-secret + # container: test + # endpointUrl: https://accountName.blob.core.windows.net + # storageClass: Hot + + schedule: [] + # - name: "daily-backup" + # schedule: "0 0 * * *" + # keep: 5 + # storageName: fs-pvc + # - name: "sat-night-backup" + # schedule: "0 0 * * 6" + # keep: 3 + # storageName: s3-us-west + +secrets: + ## You should be overriding these with your own or specify name for clusterSecretName. + # passwords: + # root: insecure-root-password + # xtrabackup: insecure-xtrabackup-password + # monitor: insecure-monitor-password + # clustercheck: insecure-clustercheck-password + # proxyadmin: insecure-proxyadmin-password + # pmmserver: insecure-pmmserver-password + # # If pmmserverkey is set in that case pmmserver pass will not be included + # # pmmserverkey: set-pmmserver-api-key + # operator: insecure-operator-password + # replication: insecure-replication-password + ## If you are using `cert-manager` you can skip this next section. + tls: {} + # This should be the name of a secret that contains certificates. + # it should have the following keys: `ca.crt`, `tls.crt`, `tls.key` + # If not set the Helm chart will attempt to create certificates + # for you [not recommended for prod]: + # cluster: + + # This should be the name of a secret that contains certificates. + # it should have the following keys: `ca.crt`, `tls.crt`, `tls.key` + # If not set the Helm chart will attempt to create certificates + # for you [not recommended for prod]: + # internal: + # logCollector: cluster1-log-collector-secrets + # vault: keyring-secret-vault diff --git a/charts/percona/pxc-operator/1.15.0/.helmignore b/charts/percona/pxc-operator/1.15.0/.helmignore new file mode 100644 index 000000000..50af03172 --- /dev/null +++ b/charts/percona/pxc-operator/1.15.0/.helmignore @@ -0,0 +1,22 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/charts/percona/pxc-operator/1.15.0/Chart.yaml b/charts/percona/pxc-operator/1.15.0/Chart.yaml new file mode 100644 index 000000000..9a8654627 --- /dev/null +++ b/charts/percona/pxc-operator/1.15.0/Chart.yaml @@ -0,0 +1,22 @@ +annotations: + catalog.cattle.io/certified: partner + catalog.cattle.io/display-name: Percona Operator For MySQL based on Percona XtraDB + Cluster + catalog.cattle.io/kube-version: '>=1.21-0' + catalog.cattle.io/release-name: pxc-operator +apiVersion: v2 +appVersion: 1.15.0 +description: A Helm chart for deploying the Percona Operator for MySQL (based on Percona + XtraDB Cluster) +home: https://docs.percona.com/percona-operator-for-mysql/pxc/ +icon: file://assets/icons/pxc-operator.png +kubeVersion: '>=1.21-0' +maintainers: +- email: tomislav.plavcic@percona.com + name: tplavcic +- email: natalia.marukovich@percona.com + name: nmarukovich +- email: sergey.pronin@percona.com + name: spron-in +name: pxc-operator +version: 1.15.0 diff --git a/charts/percona/pxc-operator/1.15.0/LICENSE.txt b/charts/percona/pxc-operator/1.15.0/LICENSE.txt new file mode 100644 index 000000000..6a31453af --- /dev/null +++ b/charts/percona/pxc-operator/1.15.0/LICENSE.txt @@ -0,0 +1,13 @@ +Copyright 2019 Paul Czarkowski + +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. \ No newline at end of file diff --git a/charts/percona/pxc-operator/1.15.0/README.md b/charts/percona/pxc-operator/1.15.0/README.md new file mode 100644 index 000000000..4934d11ae --- /dev/null +++ b/charts/percona/pxc-operator/1.15.0/README.md @@ -0,0 +1,64 @@ +# Percona Operator For MySQL + +[Percona XtraDB Cluster (PXC)](https://www.percona.com/doc/percona-xtradb-cluster/LATEST/index.html) is a database clustering solution for MySQL. Percona Operator For MySQL allows users to deploy and manage Percona XtraDB Clusters on Kubernetes. + +Useful links +* [Operator Github repository](https://github.com/percona/percona-xtradb-cluster-operator) +* [Operator Documentation](https://www.percona.com/doc/kubernetes-operator-for-pxc/index.html) + +## Pre-requisites +* Kubernetes 1.28+ +* Helm v3 + +# Installation + +This chart will deploy the Operator Pod for the further Percona XtraDB Cluster creation in Kubernetes. + +## Installing the Chart +To install the chart with the `pxc` release name using a dedicated namespace (recommended): + +```sh +helm repo add percona https://percona.github.io/percona-helm-charts/ +helm install my-operator percona/pxc-operator --version 1.15.0 --namespace my-namespace +``` + +The chart can be customized using the following configurable parameters: + +| Parameter | Description | Default | +| ------------------------------- | -----------------------------------------------------------------------------------------------| -------------------------------------------------| +| `image` | PXC Operator Container image full path | `percona/percona-xtradb-cluster-operator:1.15.0` | +| `imagePullPolicy` | PXC Operator Container pull policy | `Always` | +| `containerSecurityContext` | PXC Operator Container securityContext | `{}` | +| `imagePullSecrets` | PXC Operator Pod pull secret | `[]` | +| `replicaCount` | PXC Operator Pod quantity | `1` | +| `tolerations` | List of node taints to tolerate | `[]` | +| `podAnnotations` | Operator Pod user-defined annotations | `{}` | +| `resources` | Resource requests and limits | `{}` | +| `nodeSelector` | Labels for Pod assignment | `{}` | +| `logStructured` | Force PXC operator to print JSON-wrapped log messages | `false` | +| `logLevel` | PXC Operator logging level | `INFO` | +| `disableTelemetry` | Disable sending PXC Operator telemetry data to Percona | `false` | +| `watchAllNamespaces` | Watch all namespaces (Install cluster-wide) | `false` | +| `watchNamespace` | Comma separated list of namespace(s) to watch when different from release namespace | `""` | +| `createNamespace` | Create the watched namespace(s) | `false` | +| `rbac.create` | If false RBAC will not be created. RBAC resources will need to be created manually | `true` | +| `serviceAccount.create` | If false the ServiceAccounts will not be created. The ServiceAccounts must be created manually | `true` | +| `extraEnvVars` | Custom pod environment variables | `[]` | + +Specify parameters using `--set key=value[,key=value]` argument to `helm install` + +Alternatively a YAML file that specifies the values for the parameters can be provided like this: + +```sh +helm install pxc-operator -f values.yaml percona/pxc-operator +``` + +## Deploy the database + +To deploy Percona XtraDB Cluster run the following command: + +```sh +helm install my-db percona/pxc-db +``` + +See more about Percona XtraDB Cluster in its chart [here](https://github.com/percona/percona-helm-charts/blob/main/charts/pxc-db) or in the [Helm chart installation guide](https://www.percona.com/doc/kubernetes-operator-for-pxc/helm.html). diff --git a/charts/percona/pxc-operator/1.15.0/crds/crd.yaml b/charts/percona/pxc-operator/1.15.0/crds/crd.yaml new file mode 100644 index 000000000..0d7823042 --- /dev/null +++ b/charts/percona/pxc-operator/1.15.0/crds/crd.yaml @@ -0,0 +1,11127 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: perconaxtradbclusterbackups.pxc.percona.com +spec: + group: pxc.percona.com + names: + kind: PerconaXtraDBClusterBackup + listKind: PerconaXtraDBClusterBackupList + plural: perconaxtradbclusterbackups + shortNames: + - pxc-backup + - pxc-backups + singular: perconaxtradbclusterbackup + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: Cluster name + jsonPath: .spec.pxcCluster + name: Cluster + type: string + - description: Storage name from pxc spec + jsonPath: .status.storageName + name: Storage + type: string + - description: Backup destination + jsonPath: .status.destination + name: Destination + type: string + - description: Job status + jsonPath: .status.state + name: Status + type: string + - description: Completed time + jsonPath: .status.completed + name: Completed + type: date + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + priorityClassName: + type: string + schedulerName: + type: string + spec: + properties: + containerOptions: + properties: + args: + properties: + xbcloud: + items: + type: string + type: array + xbstream: + items: + type: string + type: array + xtrabackup: + items: + type: string + type: array + type: object + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + type: object + pxcCluster: + type: string + storageName: + type: string + type: object + status: + properties: + azure: + properties: + container: + type: string + credentialsSecret: + type: string + endpointUrl: + type: string + storageClass: + type: string + type: object + completed: + format: date-time + type: string + conditions: + items: + properties: + lastTransitionTime: + format: date-time + type: string + message: + maxLength: 32768 + type: string + observedGeneration: + format: int64 + minimum: 0 + type: integer + reason: + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + enum: + - "True" + - "False" + - Unknown + type: string + type: + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + destination: + type: string + image: + type: string + lastscheduled: + format: date-time + type: string + latestRestorableTime: + format: date-time + type: string + s3: + properties: + bucket: + type: string + credentialsSecret: + type: string + endpointUrl: + type: string + region: + type: string + type: object + sslInternalSecretName: + type: string + sslSecretName: + type: string + state: + type: string + storage_type: + type: string + storageName: + type: string + vaultSecretName: + type: string + verifyTLS: + type: boolean + type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: perconaxtradbclusterrestores.pxc.percona.com +spec: + group: pxc.percona.com + names: + kind: PerconaXtraDBClusterRestore + listKind: PerconaXtraDBClusterRestoreList + plural: perconaxtradbclusterrestores + shortNames: + - pxc-restore + - pxc-restores + singular: perconaxtradbclusterrestore + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: Cluster name + jsonPath: .spec.pxcCluster + name: Cluster + type: string + - description: Job status + jsonPath: .status.state + name: Status + type: string + - description: Completed time + jsonPath: .status.completed + name: Completed + type: date + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + properties: + backupName: + type: string + backupSource: + properties: + azure: + properties: + container: + type: string + credentialsSecret: + type: string + endpointUrl: + type: string + storageClass: + type: string + type: object + completed: + format: date-time + type: string + conditions: + items: + properties: + lastTransitionTime: + format: date-time + type: string + message: + maxLength: 32768 + type: string + observedGeneration: + format: int64 + minimum: 0 + type: integer + reason: + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + enum: + - "True" + - "False" + - Unknown + type: string + type: + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + destination: + type: string + image: + type: string + lastscheduled: + format: date-time + type: string + latestRestorableTime: + format: date-time + type: string + s3: + properties: + bucket: + type: string + credentialsSecret: + type: string + endpointUrl: + type: string + region: + type: string + type: object + sslInternalSecretName: + type: string + sslSecretName: + type: string + state: + type: string + storage_type: + type: string + storageName: + type: string + vaultSecretName: + type: string + verifyTLS: + type: boolean + type: object + containerOptions: + properties: + args: + properties: + xbcloud: + items: + type: string + type: array + xbstream: + items: + type: string + type: array + xtrabackup: + items: + type: string + type: array + type: object + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + type: object + pitr: + properties: + backupSource: + properties: + azure: + properties: + container: + type: string + credentialsSecret: + type: string + endpointUrl: + type: string + storageClass: + type: string + type: object + completed: + format: date-time + type: string + conditions: + items: + properties: + lastTransitionTime: + format: date-time + type: string + message: + maxLength: 32768 + type: string + observedGeneration: + format: int64 + minimum: 0 + type: integer + reason: + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + enum: + - "True" + - "False" + - Unknown + type: string + type: + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + destination: + type: string + image: + type: string + lastscheduled: + format: date-time + type: string + latestRestorableTime: + format: date-time + type: string + s3: + properties: + bucket: + type: string + credentialsSecret: + type: string + endpointUrl: + type: string + region: + type: string + type: object + sslInternalSecretName: + type: string + sslSecretName: + type: string + state: + type: string + storage_type: + type: string + storageName: + type: string + vaultSecretName: + type: string + verifyTLS: + type: boolean + type: object + date: + type: string + gtid: + type: string + type: + type: string + type: object + pxcCluster: + type: string + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + type: object + status: + properties: + comments: + type: string + completed: + format: date-time + type: string + lastscheduled: + format: date-time + type: string + state: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: perconaxtradbclusters.pxc.percona.com +spec: + group: pxc.percona.com + names: + kind: PerconaXtraDBCluster + listKind: PerconaXtraDBClusterList + plural: perconaxtradbclusters + shortNames: + - pxc + - pxcs + singular: perconaxtradbcluster + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.host + name: ENDPOINT + type: string + - jsonPath: .status.state + name: Status + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + deprecated: true + deprecationWarning: pxc.percona.com/v1-2-0 PerconaXtraDBCluster is deprecated + and will be removed in v1.16.0; see v1.12.0 release notes for instructions to + migrate to pxc.percona.com/v1 + name: v1-2-0 + schema: + openAPIV3Schema: + properties: + spec: + type: object + x-kubernetes-preserve-unknown-fields: true + status: + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + served: false + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .status.host + name: ENDPOINT + type: string + - jsonPath: .status.state + name: Status + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + deprecated: true + deprecationWarning: pxc.percona.com/v1-3-0 PerconaXtraDBCluster is deprecated + and will be removed in v1.16.0; see v1.12.0 release notes for instructions to + migrate to pxc.percona.com/v1 + name: v1-3-0 + schema: + openAPIV3Schema: + properties: + spec: + type: object + x-kubernetes-preserve-unknown-fields: true + status: + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + served: false + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .status.host + name: ENDPOINT + type: string + - jsonPath: .status.state + name: Status + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + deprecated: true + deprecationWarning: pxc.percona.com/v1-4-0 PerconaXtraDBCluster is deprecated + and will be removed in v1.16.0; see v1.12.0 release notes for instructions to + migrate to pxc.percona.com/v1 + name: v1-4-0 + schema: + openAPIV3Schema: + properties: + spec: + type: object + x-kubernetes-preserve-unknown-fields: true + status: + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + served: false + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .status.host + name: ENDPOINT + type: string + - jsonPath: .status.state + name: Status + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + deprecated: true + deprecationWarning: pxc.percona.com/v1-5-0 PerconaXtraDBCluster is deprecated + and will be removed in v1.16.0; see v1.12.0 release notes for instructions to + migrate to pxc.percona.com/v1 + name: v1-5-0 + schema: + openAPIV3Schema: + properties: + spec: + type: object + x-kubernetes-preserve-unknown-fields: true + status: + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + served: false + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .status.host + name: ENDPOINT + type: string + - jsonPath: .status.state + name: Status + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + deprecated: true + deprecationWarning: pxc.percona.com/v1-6-0 PerconaXtraDBCluster is deprecated + and will be removed in v1.16.0; see v1.12.0 release notes for instructions to + migrate to pxc.percona.com/v1 + name: v1-6-0 + schema: + openAPIV3Schema: + properties: + spec: + type: object + x-kubernetes-preserve-unknown-fields: true + status: + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + served: false + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .status.host + name: ENDPOINT + type: string + - jsonPath: .status.state + name: Status + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + deprecated: true + deprecationWarning: pxc.percona.com/v1-7-0 PerconaXtraDBCluster is deprecated + and will be removed in v1.16.0; see v1.12.0 release notes for instructions to + migrate to pxc.percona.com/v1 + name: v1-7-0 + schema: + openAPIV3Schema: + properties: + spec: + type: object + x-kubernetes-preserve-unknown-fields: true + status: + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + served: false + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .status.host + name: ENDPOINT + type: string + - jsonPath: .status.state + name: Status + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + deprecated: true + deprecationWarning: pxc.percona.com/v1-8-0 PerconaXtraDBCluster is deprecated + and will be removed in v1.16.0; see v1.12.0 release notes for instructions to + migrate to pxc.percona.com/v1 + name: v1-8-0 + schema: + openAPIV3Schema: + properties: + spec: + type: object + x-kubernetes-preserve-unknown-fields: true + status: + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + served: false + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .status.host + name: ENDPOINT + type: string + - jsonPath: .status.state + name: Status + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + deprecated: true + deprecationWarning: pxc.percona.com/v1-9-0 PerconaXtraDBCluster is deprecated + and will be removed in v1.16.0; see v1.12.0 release notes for instructions to + migrate to pxc.percona.com/v1 + name: v1-9-0 + schema: + openAPIV3Schema: + properties: + spec: + type: object + x-kubernetes-preserve-unknown-fields: true + status: + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + served: false + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .status.host + name: ENDPOINT + type: string + - jsonPath: .status.state + name: Status + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + deprecated: true + deprecationWarning: pxc.percona.com/v1-10-0 PerconaXtraDBCluster is deprecated + and will be removed in v1.16.0; see v1.12.0 release notes for instructions to + migrate to pxc.percona.com/v1 + name: v1-10-0 + schema: + openAPIV3Schema: + properties: + spec: + type: object + x-kubernetes-preserve-unknown-fields: true + status: + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .status.host + name: ENDPOINT + type: string + - jsonPath: .status.state + name: Status + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + deprecated: true + deprecationWarning: pxc.percona.com/v1-11-0 PerconaXtraDBCluster is deprecated + and will be removed in v1.16.0; see v1.12.0 release notes for instructions to + migrate to pxc.percona.com/v1 + name: v1-11-0 + schema: + openAPIV3Schema: + properties: + spec: + type: object + x-kubernetes-preserve-unknown-fields: true + status: + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .status.host + name: Endpoint + type: string + - jsonPath: .status.state + name: Status + type: string + - description: Ready pxc nodes + jsonPath: .status.pxc.ready + name: PXC + type: string + - description: Ready proxysql nodes + jsonPath: .status.proxysql.ready + name: proxysql + type: string + - description: Ready haproxy nodes + jsonPath: .status.haproxy.ready + name: haproxy + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + properties: + allowUnsafeConfigurations: + type: boolean + backup: + properties: + allowParallel: + type: boolean + annotations: + additionalProperties: + type: string + type: object + backoffLimit: + format: int32 + type: integer + image: + type: string + imagePullPolicy: + type: string + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + pitr: + properties: + enabled: + type: boolean + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + storageName: + type: string + timeBetweenUploads: + type: number + timeoutSeconds: + type: number + type: object + schedule: + items: + properties: + keep: + type: integer + name: + type: string + schedule: + type: string + storageName: + type: string + required: + - name + - schedule + - storageName + type: object + type: array + serviceAccountName: + type: string + storages: + additionalProperties: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + weight: + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: object + annotations: + additionalProperties: + type: string + type: object + azure: + properties: + container: + type: string + credentialsSecret: + type: string + endpointUrl: + type: string + storageClass: + type: string + type: object + containerOptions: + properties: + args: + properties: + xbcloud: + items: + type: string + type: array + xbstream: + items: + type: string + type: array + xtrabackup: + items: + type: string + type: array + type: object + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + type: object + containerSecurityContext: + properties: + allowPrivilegeEscalation: + type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + capabilities: + properties: + add: + items: + type: string + type: array + x-kubernetes-list-type: atomic + drop: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + 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 + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + labels: + additionalProperties: + type: string + type: object + nodeSelector: + additionalProperties: + type: string + type: object + podSecurityContext: + properties: + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + fsGroup: + format: int64 + type: integer + fsGroupChangePolicy: + type: string + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + 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 + required: + - type + type: object + supplementalGroups: + items: + format: int64 + type: integer + type: array + x-kubernetes-list-type: atomic + sysctls: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + priorityClassName: + type: string + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + runtimeClassName: + type: string + s3: + properties: + bucket: + type: string + credentialsSecret: + type: string + endpointUrl: + type: string + region: + type: string + type: object + schedulerName: + type: string + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + format: int64 + type: integer + value: + type: string + type: object + type: array + topologySpreadConstraints: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + maxSkew: + format: int32 + type: integer + minDomains: + format: int32 + type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string + topologyKey: + type: string + whenUnsatisfiable: + type: string + required: + - maxSkew + - topologyKey + - whenUnsatisfiable + type: object + type: array + type: + type: string + verifyTLS: + type: boolean + volume: + properties: + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + persistentVolumeClaim: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + type: object + type: object + type: object + type: object + crVersion: + type: string + enableCRValidationWebhook: + type: boolean + haproxy: + properties: + affinity: + properties: + advanced: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + weight: + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: object + antiAffinityTopologyKey: + type: string + type: object + annotations: + additionalProperties: + type: string + type: object + configuration: + type: string + containerSecurityContext: + properties: + allowPrivilegeEscalation: + type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + capabilities: + properties: + add: + items: + type: string + type: array + x-kubernetes-list-type: atomic + drop: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + 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 + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + enabled: + type: boolean + envVarsSecret: + type: string + exposePrimary: + properties: + annotations: + additionalProperties: + type: string + type: object + enabled: + type: boolean + externalTrafficPolicy: + type: string + internalTrafficPolicy: + type: string + labels: + additionalProperties: + type: string + type: object + loadBalancerIP: + type: string + loadBalancerSourceRanges: + items: + type: string + type: array + trafficPolicy: + type: string + type: + type: string + type: object + exposeReplicas: + properties: + annotations: + additionalProperties: + type: string + type: object + enabled: + type: boolean + externalTrafficPolicy: + type: string + internalTrafficPolicy: + type: string + labels: + additionalProperties: + type: string + type: object + loadBalancerIP: + type: string + loadBalancerSourceRanges: + items: + type: string + type: array + onlyReaders: + type: boolean + trafficPolicy: + type: string + type: + type: string + type: object + externalTrafficPolicy: + type: string + forceUnsafeBootstrap: + type: boolean + gracePeriod: + format: int64 + type: integer + hookScript: + type: string + image: + type: string + imagePullPolicy: + type: string + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + labels: + additionalProperties: + type: string + type: object + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + type: object + livenessDelaySec: + format: int32 + type: integer + livenessProbes: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + loadBalancerIP: + type: string + loadBalancerSourceRanges: + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + type: object + podDisruptionBudget: + properties: + maxUnavailable: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + minAvailable: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object + podSecurityContext: + properties: + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + fsGroup: + format: int64 + type: integer + fsGroupChangePolicy: + type: string + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + 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 + required: + - type + type: object + supplementalGroups: + items: + format: int64 + type: integer + type: array + x-kubernetes-list-type: atomic + sysctls: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + priorityClassName: + type: string + readinessDelaySec: + format: int32 + type: integer + readinessProbes: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + replicasExternalTrafficPolicy: + type: string + replicasLoadBalancerIP: + type: string + replicasLoadBalancerSourceRanges: + items: + type: string + type: array + replicasServiceAnnotations: + additionalProperties: + type: string + type: object + replicasServiceEnabled: + type: boolean + replicasServiceLabels: + additionalProperties: + type: string + type: object + replicasServiceType: + type: string + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + runtimeClassName: + type: string + schedulerName: + type: string + serviceAccountName: + type: string + serviceAnnotations: + additionalProperties: + type: string + type: object + serviceLabels: + additionalProperties: + type: string + type: object + serviceType: + type: string + sidecarPVCs: + items: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + status: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + allocatedResourceStatuses: + additionalProperties: + type: string + type: object + x-kubernetes-map-type: granular + allocatedResources: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + capacity: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + conditions: + items: + properties: + lastProbeTime: + format: date-time + type: string + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + currentVolumeAttributesClassName: + type: string + modifyVolumeStatus: + properties: + status: + type: string + targetVolumeAttributesClassName: + type: string + required: + - status + type: object + phase: + type: string + type: object + type: object + type: array + sidecarResources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + sidecarVolumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + type: string + kind: + type: string + readOnly: + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver + type: object + downwardAPI: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + format: int32 + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + wwids: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + required: + - driver + type: object + flocker: + properties: + datasetName: + type: string + datasetUUID: + type: string + type: object + gcePersistentDisk: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + gitRepo: + properties: + directory: + type: string + repository: + type: string + revision: + type: string + required: + - repository + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + type: string + lun: + format: int32 + type: integer + portals: + items: + type: string + type: array + x-kubernetes-list-type: atomic + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: + type: string + readOnly: + type: boolean + server: + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: + type: string + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: + type: string + pdID: + type: string + required: + - pdID + type: object + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: + properties: + defaultMode: + format: int32 + type: integer + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + format: int64 + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + x-kubernetes-list-type: atomic + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + type: string + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + sslEnabled: + type: boolean + storageMode: + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + sidecars: + items: + properties: + args: + items: + type: string + type: array + x-kubernetes-list-type: atomic + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + envFrom: + items: + properties: + configMapRef: + properties: + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + prefix: + type: string + secretRef: + properties: + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + type: object + type: array + x-kubernetes-list-type: atomic + image: + type: string + imagePullPolicy: + type: string + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + type: object + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + name: + type: string + ports: + items: + properties: + containerPort: + format: int32 + type: integer + hostIP: + type: string + hostPort: + format: int32 + type: integer + name: + type: string + protocol: + default: TCP + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-map-keys: + - containerPort + - protocol + x-kubernetes-list-type: map + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resizePolicy: + items: + properties: + resourceName: + type: string + restartPolicy: + type: string + required: + - resourceName + - restartPolicy + type: object + type: array + x-kubernetes-list-type: atomic + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + 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 + required: + - type + type: object + capabilities: + properties: + add: + items: + type: string + type: array + x-kubernetes-list-type: atomic + drop: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + 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 + required: + - type + 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 + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + 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 + required: + - devicePath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - devicePath + x-kubernetes-list-type: map + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - mountPath + x-kubernetes-list-type: map + workingDir: + type: string + required: + - name + type: object + type: array + size: + format: int32 + type: integer + sslInternalSecretName: + type: string + sslSecretName: + type: string + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + format: int64 + type: integer + value: + type: string + type: object + type: array + topologySpreadConstraints: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + maxSkew: + format: int32 + type: integer + minDomains: + format: int32 + type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string + topologyKey: + type: string + whenUnsatisfiable: + type: string + required: + - maxSkew + - topologyKey + - whenUnsatisfiable + type: object + type: array + vaultSecretName: + type: string + volumeSpec: + properties: + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + persistentVolumeClaim: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + type: object + type: object + ignoreAnnotations: + items: + type: string + type: array + ignoreLabels: + items: + type: string + type: array + initContainer: + properties: + image: + type: string + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + type: object + initImage: + type: string + logCollectorSecretName: + type: string + logcollector: + properties: + configuration: + type: string + containerSecurityContext: + properties: + allowPrivilegeEscalation: + type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + capabilities: + properties: + add: + items: + type: string + type: array + x-kubernetes-list-type: atomic + drop: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + 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 + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + enabled: + type: boolean + hookScript: + type: string + image: + type: string + imagePullPolicy: + type: string + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + runtimeClassName: + type: string + type: object + pause: + type: boolean + platform: + type: string + pmm: + properties: + containerSecurityContext: + properties: + allowPrivilegeEscalation: + type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + capabilities: + properties: + add: + items: + type: string + type: array + x-kubernetes-list-type: atomic + drop: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + 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 + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + enabled: + type: boolean + image: + type: string + imagePullPolicy: + type: string + proxysqlParams: + type: string + pxcParams: + type: string + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + runtimeClassName: + type: string + serverHost: + type: string + serverUser: + type: string + type: object + proxysql: + properties: + affinity: + properties: + advanced: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + weight: + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: object + antiAffinityTopologyKey: + type: string + type: object + annotations: + additionalProperties: + type: string + type: object + configuration: + type: string + containerSecurityContext: + properties: + allowPrivilegeEscalation: + type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + capabilities: + properties: + add: + items: + type: string + type: array + x-kubernetes-list-type: atomic + drop: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + 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 + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + enabled: + type: boolean + envVarsSecret: + type: string + expose: + properties: + annotations: + additionalProperties: + type: string + type: object + enabled: + type: boolean + externalTrafficPolicy: + type: string + internalTrafficPolicy: + type: string + labels: + additionalProperties: + type: string + type: object + loadBalancerIP: + type: string + loadBalancerSourceRanges: + items: + type: string + type: array + trafficPolicy: + type: string + type: + type: string + type: object + externalTrafficPolicy: + type: string + forceUnsafeBootstrap: + type: boolean + gracePeriod: + format: int64 + type: integer + hookScript: + type: string + image: + type: string + imagePullPolicy: + type: string + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + labels: + additionalProperties: + type: string + type: object + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + type: object + livenessDelaySec: + format: int32 + type: integer + livenessProbes: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + loadBalancerIP: + type: string + loadBalancerSourceRanges: + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + type: object + podDisruptionBudget: + properties: + maxUnavailable: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + minAvailable: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object + podSecurityContext: + properties: + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + fsGroup: + format: int64 + type: integer + fsGroupChangePolicy: + type: string + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + 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 + required: + - type + type: object + supplementalGroups: + items: + format: int64 + type: integer + type: array + x-kubernetes-list-type: atomic + sysctls: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + priorityClassName: + type: string + readinessDelaySec: + format: int32 + type: integer + readinessProbes: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + replicasExternalTrafficPolicy: + type: string + replicasServiceAnnotations: + additionalProperties: + type: string + type: object + replicasServiceLabels: + additionalProperties: + type: string + type: object + replicasServiceType: + type: string + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + runtimeClassName: + type: string + schedulerName: + type: string + serviceAccountName: + type: string + serviceAnnotations: + additionalProperties: + type: string + type: object + serviceLabels: + additionalProperties: + type: string + type: object + serviceType: + type: string + sidecarPVCs: + items: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + status: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + allocatedResourceStatuses: + additionalProperties: + type: string + type: object + x-kubernetes-map-type: granular + allocatedResources: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + capacity: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + conditions: + items: + properties: + lastProbeTime: + format: date-time + type: string + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + currentVolumeAttributesClassName: + type: string + modifyVolumeStatus: + properties: + status: + type: string + targetVolumeAttributesClassName: + type: string + required: + - status + type: object + phase: + type: string + type: object + type: object + type: array + sidecarResources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + sidecarVolumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + type: string + kind: + type: string + readOnly: + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver + type: object + downwardAPI: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + format: int32 + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + wwids: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + required: + - driver + type: object + flocker: + properties: + datasetName: + type: string + datasetUUID: + type: string + type: object + gcePersistentDisk: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + gitRepo: + properties: + directory: + type: string + repository: + type: string + revision: + type: string + required: + - repository + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + type: string + lun: + format: int32 + type: integer + portals: + items: + type: string + type: array + x-kubernetes-list-type: atomic + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: + type: string + readOnly: + type: boolean + server: + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: + type: string + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: + type: string + pdID: + type: string + required: + - pdID + type: object + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: + properties: + defaultMode: + format: int32 + type: integer + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + format: int64 + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + x-kubernetes-list-type: atomic + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + type: string + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + sslEnabled: + type: boolean + storageMode: + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + sidecars: + items: + properties: + args: + items: + type: string + type: array + x-kubernetes-list-type: atomic + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + envFrom: + items: + properties: + configMapRef: + properties: + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + prefix: + type: string + secretRef: + properties: + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + type: object + type: array + x-kubernetes-list-type: atomic + image: + type: string + imagePullPolicy: + type: string + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + type: object + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + name: + type: string + ports: + items: + properties: + containerPort: + format: int32 + type: integer + hostIP: + type: string + hostPort: + format: int32 + type: integer + name: + type: string + protocol: + default: TCP + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-map-keys: + - containerPort + - protocol + x-kubernetes-list-type: map + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resizePolicy: + items: + properties: + resourceName: + type: string + restartPolicy: + type: string + required: + - resourceName + - restartPolicy + type: object + type: array + x-kubernetes-list-type: atomic + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + 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 + required: + - type + type: object + capabilities: + properties: + add: + items: + type: string + type: array + x-kubernetes-list-type: atomic + drop: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + 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 + required: + - type + 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 + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + 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 + required: + - devicePath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - devicePath + x-kubernetes-list-type: map + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - mountPath + x-kubernetes-list-type: map + workingDir: + type: string + required: + - name + type: object + type: array + size: + format: int32 + type: integer + sslInternalSecretName: + type: string + sslSecretName: + type: string + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + format: int64 + type: integer + value: + type: string + type: object + type: array + topologySpreadConstraints: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + maxSkew: + format: int32 + type: integer + minDomains: + format: int32 + type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string + topologyKey: + type: string + whenUnsatisfiable: + type: string + required: + - maxSkew + - topologyKey + - whenUnsatisfiable + type: object + type: array + vaultSecretName: + type: string + volumeSpec: + properties: + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + persistentVolumeClaim: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + type: object + type: object + pxc: + properties: + affinity: + properties: + advanced: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + weight: + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: object + antiAffinityTopologyKey: + type: string + type: object + annotations: + additionalProperties: + type: string + type: object + autoRecovery: + type: boolean + configuration: + type: string + containerSecurityContext: + properties: + allowPrivilegeEscalation: + type: boolean + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + capabilities: + properties: + add: + items: + type: string + type: array + x-kubernetes-list-type: atomic + drop: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + 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 + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + enabled: + type: boolean + envVarsSecret: + type: string + expose: + properties: + annotations: + additionalProperties: + type: string + type: object + enabled: + type: boolean + externalTrafficPolicy: + type: string + internalTrafficPolicy: + type: string + labels: + additionalProperties: + type: string + type: object + loadBalancerIP: + type: string + loadBalancerSourceRanges: + items: + type: string + type: array + trafficPolicy: + type: string + type: + type: string + type: object + externalTrafficPolicy: + type: string + forceUnsafeBootstrap: + type: boolean + gracePeriod: + format: int64 + type: integer + hookScript: + type: string + image: + type: string + imagePullPolicy: + type: string + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + labels: + additionalProperties: + type: string + type: object + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + type: object + livenessDelaySec: + format: int32 + type: integer + livenessProbes: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + loadBalancerIP: + type: string + loadBalancerSourceRanges: + items: + type: string + type: array + nodeSelector: + additionalProperties: + type: string + type: object + podDisruptionBudget: + properties: + maxUnavailable: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + minAvailable: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object + podSecurityContext: + properties: + appArmorProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + fsGroup: + format: int64 + type: integer + fsGroupChangePolicy: + type: string + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + 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 + required: + - type + type: object + supplementalGroups: + items: + format: int64 + type: integer + type: array + x-kubernetes-list-type: atomic + sysctls: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + priorityClassName: + type: string + readinessDelaySec: + format: int32 + type: integer + readinessProbes: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + replicasExternalTrafficPolicy: + type: string + replicasServiceAnnotations: + additionalProperties: + type: string + type: object + replicasServiceLabels: + additionalProperties: + type: string + type: object + replicasServiceType: + type: string + replicationChannels: + items: + properties: + configuration: + properties: + ca: + type: string + sourceConnectRetry: + type: integer + sourceRetryCount: + type: integer + ssl: + type: boolean + sslSkipVerify: + type: boolean + type: object + isSource: + type: boolean + name: + type: string + sourcesList: + items: + properties: + host: + type: string + port: + type: integer + weight: + type: integer + type: object + type: array + type: object + type: array + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + runtimeClassName: + type: string + schedulerName: + type: string + serviceAccountName: + type: string + serviceAnnotations: + additionalProperties: + type: string + type: object + serviceLabels: + additionalProperties: + type: string + type: object + serviceType: + type: string + sidecarPVCs: + items: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + status: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + allocatedResourceStatuses: + additionalProperties: + type: string + type: object + x-kubernetes-map-type: granular + allocatedResources: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + capacity: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + conditions: + items: + properties: + lastProbeTime: + format: date-time + type: string + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + currentVolumeAttributesClassName: + type: string + modifyVolumeStatus: + properties: + status: + type: string + targetVolumeAttributesClassName: + type: string + required: + - status + type: object + phase: + type: string + type: object + type: object + type: array + sidecarResources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + sidecarVolumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + type: string + kind: + type: string + readOnly: + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver + type: object + downwardAPI: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + format: int32 + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + wwids: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + required: + - driver + type: object + flocker: + properties: + datasetName: + type: string + datasetUUID: + type: string + type: object + gcePersistentDisk: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + gitRepo: + properties: + directory: + type: string + repository: + type: string + revision: + type: string + required: + - repository + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + type: string + lun: + format: int32 + type: integer + portals: + items: + type: string + type: array + x-kubernetes-list-type: atomic + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: + type: string + readOnly: + type: boolean + server: + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: + type: string + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: + type: string + pdID: + type: string + required: + - pdID + type: object + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: + properties: + defaultMode: + format: int32 + type: integer + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + format: int64 + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + x-kubernetes-list-type: atomic + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + type: string + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + sslEnabled: + type: boolean + storageMode: + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + sidecars: + items: + properties: + args: + items: + type: string + type: array + x-kubernetes-list-type: atomic + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + envFrom: + items: + properties: + configMapRef: + properties: + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + prefix: + type: string + secretRef: + properties: + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + type: object + type: array + x-kubernetes-list-type: atomic + image: + type: string + imagePullPolicy: + type: string + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + sleep: + properties: + seconds: + format: int64 + type: integer + required: + - seconds + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + type: object + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + name: + type: string + ports: + items: + properties: + containerPort: + format: int32 + type: integer + hostIP: + type: string + hostPort: + format: int32 + type: integer + name: + type: string + protocol: + default: TCP + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-map-keys: + - containerPort + - protocol + x-kubernetes-list-type: map + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resizePolicy: + items: + properties: + resourceName: + type: string + restartPolicy: + type: string + required: + - resourceName + - restartPolicy + type: object + type: array + x-kubernetes-list-type: atomic + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + 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 + required: + - type + type: object + capabilities: + properties: + add: + items: + type: string + type: array + x-kubernetes-list-type: atomic + drop: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + 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 + required: + - type + 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 + x-kubernetes-list-type: atomic + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + x-kubernetes-list-type: atomic + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + 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 + required: + - devicePath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - devicePath + x-kubernetes-list-type: map + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + x-kubernetes-list-map-keys: + - mountPath + x-kubernetes-list-type: map + workingDir: + type: string + required: + - name + type: object + type: array + size: + format: int32 + type: integer + sslInternalSecretName: + type: string + sslSecretName: + type: string + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + format: int64 + type: integer + value: + type: string + type: object + type: array + topologySpreadConstraints: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + maxSkew: + format: int32 + type: integer + minDomains: + format: int32 + type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string + topologyKey: + type: string + whenUnsatisfiable: + type: string + required: + - maxSkew + - topologyKey + - whenUnsatisfiable + type: object + type: array + vaultSecretName: + type: string + volumeSpec: + properties: + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + persistentVolumeClaim: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + type: object + type: object + secretsName: + type: string + sslInternalSecretName: + type: string + sslSecretName: + type: string + tls: + properties: + SANs: + items: + type: string + type: array + enabled: + type: boolean + issuerConf: + properties: + group: + type: string + kind: + type: string + name: + type: string + required: + - name + type: object + type: object + unsafeFlags: + properties: + backupIfUnhealthy: + type: boolean + proxySize: + type: boolean + pxcSize: + type: boolean + tls: + type: boolean + type: object + updateStrategy: + type: string + upgradeOptions: + properties: + apply: + type: string + schedule: + type: string + versionServiceEndpoint: + type: string + type: object + vaultSecretName: + type: string + type: object + status: + properties: + backup: + properties: + image: + type: string + labelSelectorPath: + type: string + message: + type: string + status: + type: string + version: + type: string + type: object + conditions: + items: + properties: + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + type: object + type: array + haproxy: + properties: + image: + type: string + labelSelectorPath: + type: string + message: + type: string + ready: + format: int32 + type: integer + size: + format: int32 + type: integer + status: + type: string + version: + type: string + type: object + host: + type: string + logcollector: + properties: + image: + type: string + labelSelectorPath: + type: string + message: + type: string + status: + type: string + version: + type: string + type: object + message: + items: + type: string + type: array + observedGeneration: + format: int64 + type: integer + pmm: + properties: + image: + type: string + labelSelectorPath: + type: string + message: + type: string + status: + type: string + version: + type: string + type: object + proxysql: + properties: + image: + type: string + labelSelectorPath: + type: string + message: + type: string + ready: + format: int32 + type: integer + size: + format: int32 + type: integer + status: + type: string + version: + type: string + type: object + pxc: + properties: + image: + type: string + labelSelectorPath: + type: string + message: + type: string + ready: + format: int32 + type: integer + size: + format: int32 + type: integer + status: + type: string + version: + type: string + type: object + pxcReplication: + properties: + replicationChannels: + items: + properties: + ca: + type: string + name: + type: string + sourceConnectRetry: + type: integer + sourceRetryCount: + type: integer + ssl: + type: boolean + sslSkipVerify: + type: boolean + type: object + type: array + type: object + ready: + format: int32 + type: integer + size: + format: int32 + type: integer + state: + type: string + type: object + type: object + x-kubernetes-preserve-unknown-fields: true + served: true + storage: true + subresources: + scale: + labelSelectorPath: .status.pxc.labelSelectorPath + specReplicasPath: .spec.pxc.size + statusReplicasPath: .status.pxc.size + status: {} diff --git a/charts/percona/pxc-operator/1.15.0/templates/NOTES.txt b/charts/percona/pxc-operator/1.15.0/templates/NOTES.txt new file mode 100644 index 000000000..619fbd160 --- /dev/null +++ b/charts/percona/pxc-operator/1.15.0/templates/NOTES.txt @@ -0,0 +1,16 @@ +1. Percona Operator for MySQL is deployed. + + Check if operator Pod is running: + + kubectl get pods -l app.kubernetes.io/name={{ template "pxc-operator.name" . }} --namespace {{ .Release.Namespace }} + + Troubleshoot by checking the logs: + + export POD=$(kubectl get pods -l app.kubernetes.io/name={{ template "pxc-operator.name" . }} --namespace {{ .Release.Namespace }} --output name) + kubectl logs $POD --namespace={{ .Release.Namespace }} + +2. Deploy the cluster with the following command: + + helm install my-db percona/pxc-db --namespace={{ .Release.Namespace }} + +Read more in our documentation: https://docs.percona.com/percona-operator-for-mysql/pxc/ diff --git a/charts/percona/pxc-operator/1.15.0/templates/_helpers.tpl b/charts/percona/pxc-operator/1.15.0/templates/_helpers.tpl new file mode 100644 index 000000000..2c3d51546 --- /dev/null +++ b/charts/percona/pxc-operator/1.15.0/templates/_helpers.tpl @@ -0,0 +1,56 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "pxc-operator.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "pxc-operator.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "pxc-operator.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Common labels +*/}} +{{- define "pxc-operator.labels" -}} +app.kubernetes.io/name: {{ include "pxc-operator.name" . }} +helm.sh/chart: {{ include "pxc-operator.chart" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end -}} + +{{/* +Functions returns image URI according to parameters set +*/}} +{{- define "pxc-operator.image" -}} +{{- if .Values.image }} +{{- .Values.image }} +{{- else }} +{{- printf "%s:%s" .Values.operatorImageRepository .Chart.AppVersion }} +{{- end }} +{{- end -}} \ No newline at end of file diff --git a/charts/percona/pxc-operator/1.15.0/templates/deployment.yaml b/charts/percona/pxc-operator/1.15.0/templates/deployment.yaml new file mode 100644 index 000000000..5cb8530d4 --- /dev/null +++ b/charts/percona/pxc-operator/1.15.0/templates/deployment.yaml @@ -0,0 +1,119 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "pxc-operator.fullname" . }} + namespace: {{ .Release.Namespace }} + labels: +{{ include "pxc-operator.labels" . | indent 4 }} +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + app.kubernetes.io/component: operator + app.kubernetes.io/name: {{ include "pxc-operator.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/part-of: {{ include "pxc-operator.name" . }} + strategy: + rollingUpdate: + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: + {{- with .Values.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + app.kubernetes.io/component: operator + app.kubernetes.io/name: {{ include "pxc-operator.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/part-of: {{ include "pxc-operator.name" . }} + spec: + serviceAccountName: {{ include "pxc-operator.fullname" . }} + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + terminationGracePeriodSeconds: 600 + containers: + - name: percona-xtradb-cluster-operator + image: {{ include "pxc-operator.image" . }} + imagePullPolicy: {{ .Values.imagePullPolicy }} + ports: + - containerPort: 8080 + name: metrics + protocol: TCP + command: + - percona-xtradb-cluster-operator + {{- if .Values.containerSecurityContext.readOnlyRootFilesystem }} + volumeMounts: + - name: tmpdir + mountPath: /tmp + {{- end }} + env: + - name: WATCH_NAMESPACE + {{- if .Values.watchAllNamespaces }} + value: "" + {{- else }} + value: "{{ default .Release.Namespace .Values.watchNamespace }}" + {{- end }} + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: OPERATOR_NAME + value: {{ include "pxc-operator.fullname" . }} + - name: LOG_STRUCTURED + value: "{{ .Values.logStructured }}" + - name: LOG_LEVEL + value: "{{ .Values.logLevel }}" + - name: DISABLE_TELEMETRY + value: "{{ .Values.disableTelemetry }}" + {{- if .Values.extraEnvVars }} + {{- toYaml .Values.extraEnvVars | nindent 12 }} + {{- end }} + livenessProbe: + failureThreshold: 3 + httpGet: + path: /metrics + port: metrics + scheme: HTTP + resources: + {{- toYaml .Values.resources | nindent 12 }} + {{- with .Values.containerSecurityContext }} + securityContext: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- if .Values.containerSecurityContext.readOnlyRootFilesystem }} + volumes: + - name: tmpdir + emptyDir: {} + {{- end }} +{{- if or .Values.watchNamespace .Values.watchAllNamespaces }} +--- +apiVersion: v1 +kind: Service +metadata: + name: percona-xtradb-cluster-operator + namespace: {{ .Release.Namespace }} + labels: + name: percona-xtradb-cluster-operator +spec: + ports: + - port: 443 + targetPort: 9443 + selector: + app.kubernetes.io/name: {{ include "pxc-operator.name" . }} +{{- end }} diff --git a/charts/percona/pxc-operator/1.15.0/templates/namespace.yaml b/charts/percona/pxc-operator/1.15.0/templates/namespace.yaml new file mode 100644 index 000000000..cfc96d4d9 --- /dev/null +++ b/charts/percona/pxc-operator/1.15.0/templates/namespace.yaml @@ -0,0 +1,11 @@ +{{ if and .Values.watchNamespace .Values.createNamespace }} +{{ range ( split "," .Values.watchNamespace ) }} +apiVersion: v1 +kind: Namespace +metadata: + name: {{ trim . }} + annotations: + helm.sh/resource-policy: keep +--- +{{ end }} +{{ end }} diff --git a/charts/percona/pxc-operator/1.15.0/templates/role-binding.yaml b/charts/percona/pxc-operator/1.15.0/templates/role-binding.yaml new file mode 100644 index 000000000..a4768544f --- /dev/null +++ b/charts/percona/pxc-operator/1.15.0/templates/role-binding.yaml @@ -0,0 +1,37 @@ +{{- if .Values.serviceAccount.create }} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "pxc-operator.fullname" . }} + namespace: {{ .Release.Namespace }} +--- +{{- end }} +{{- if .Values.rbac.create }} +{{- if or .Values.watchNamespace .Values.watchAllNamespaces }} +kind: ClusterRoleBinding +{{- else }} +kind: RoleBinding +{{- end }} +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ include "pxc-operator.fullname" . }} + {{- if not (or .Values.watchNamespace .Values.watchAllNamespaces) }} + namespace: {{ .Release.Namespace }} + {{- end }} + labels: +{{ include "pxc-operator.labels" . | indent 4 }} +subjects: +- kind: ServiceAccount + name: {{ include "pxc-operator.fullname" . }} + {{- if or .Values.watchNamespace .Values.watchAllNamespaces }} + namespace: {{ .Release.Namespace }} + {{- end }} +roleRef: + {{- if or .Values.watchNamespace .Values.watchAllNamespaces }} + kind: ClusterRole + {{- else }} + kind: Role + {{- end }} + name: {{ include "pxc-operator.fullname" . }} + apiGroup: rbac.authorization.k8s.io +{{- end }} diff --git a/charts/percona/pxc-operator/1.15.0/templates/role.yaml b/charts/percona/pxc-operator/1.15.0/templates/role.yaml new file mode 100644 index 000000000..c1aeb0e30 --- /dev/null +++ b/charts/percona/pxc-operator/1.15.0/templates/role.yaml @@ -0,0 +1,142 @@ +{{- if .Values.rbac.create }} +{{- if or .Values.watchNamespace .Values.watchAllNamespaces }} +kind: ClusterRole +{{- else }} +kind: Role +{{- end }} +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ include "pxc-operator.fullname" . }} + {{- if not (or .Values.watchNamespace .Values.watchAllNamespaces) }} + namespace: {{ .Release.Namespace }} + {{- end }} + labels: +{{ include "pxc-operator.labels" . | indent 4 }} +rules: +- apiGroups: + - pxc.percona.com + resources: + - perconaxtradbclusters + - perconaxtradbclusters/status + - perconaxtradbclusterbackups + - perconaxtradbclusterbackups/status + - perconaxtradbclusterrestores + - perconaxtradbclusterrestores/status + verbs: + - get + - list + - watch + - create + - update + - patch + - delete +{{- if or .Values.watchNamespace .Values.watchAllNamespaces }} +- apiGroups: + - admissionregistration.k8s.io + resources: + - validatingwebhookconfigurations + verbs: + - get + - list + - watch + - create + - update + - patch + - delete +{{- end }} +- apiGroups: + - "" + resources: + - pods + - pods/exec + - pods/log + - configmaps + - services + - persistentvolumeclaims + - secrets + verbs: + - get + - list + - watch + - create + - update + - patch + - delete +- apiGroups: + - apps + resources: + - deployments + - replicasets + - statefulsets + verbs: + - get + - list + - watch + - create + - update + - patch + - delete +- apiGroups: + - batch + resources: + - jobs + - cronjobs + verbs: + - get + - list + - watch + - create + - update + - patch + - delete +- apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - get + - list + - watch + - create + - update + - patch + - delete +- apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - get + - list + - watch + - create + - update + - patch + - delete +- apiGroups: + - events.k8s.io + - "" + resources: + - events + verbs: + - create + - patch + - get + - list + - watch +- apiGroups: + - certmanager.k8s.io + - cert-manager.io + resources: + - issuers + - certificates + verbs: + - get + - list + - watch + - create + - update + - patch + - delete + - deletecollection +{{- end }} diff --git a/charts/percona/pxc-operator/1.15.0/values.yaml b/charts/percona/pxc-operator/1.15.0/values.yaml new file mode 100644 index 000000000..719d77c5a --- /dev/null +++ b/charts/percona/pxc-operator/1.15.0/values.yaml @@ -0,0 +1,69 @@ +# Default values for pxc-operator. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +replicaCount: 1 + +operatorImageRepository: percona/percona-xtradb-cluster-operator +imagePullPolicy: IfNotPresent +image: "" + +# set if you want to specify a namespace to watch +# defaults to `.Release.namespace` if left blank +# multiple namespaces can be specified and separated by comma +# watchNamespace: +# set if you want that watched namespaces are created by helm +# createNamespace: false + +# set if operator should be deployed in cluster wide mode. defaults to false +watchAllNamespaces: false + +# rbac: settings for deployer RBAC creation +rbac: + # rbac.create: if false RBAC resources should be in place + create: true + +# serviceAccount: settings for Service Accounts used by the deployer +serviceAccount: + # serviceAccount.create: Whether to create the Service Accounts or not + create: true + +# set if you want to use a different operator name +# defaults to `percona-xtradb-cluster-operator` +# operatorName: + +imagePullSecrets: [] +nameOverride: "" +fullnameOverride: "" + +resources: + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you don't want to specify resources, comment the following + # lines and add the curly braces after 'resources:'. + limits: + cpu: 200m + memory: 500Mi + requests: + cpu: 100m + memory: 20Mi + +containerSecurityContext: {} + +nodeSelector: {} + +tolerations: [] + +affinity: {} + +podAnnotations: {} + +logStructured: false +logLevel: "INFO" +disableTelemetry: false + +extraEnvVars: [] +# - name: http_proxy +# value: "example-proxy-http" +# - name: https_proxy +# value: "example-proxy-https" diff --git a/index.yaml b/index.yaml index 921b22adc..c14b20b9d 100644 --- a/index.yaml +++ b/index.yaml @@ -30166,6 +30166,31 @@ entries: - assets/percona/psmdb-operator-1.14.3.tgz version: 1.14.3 pxc-db: + - annotations: + catalog.cattle.io/certified: partner + catalog.cattle.io/display-name: Percona XtraDB Cluster + catalog.cattle.io/kube-version: '>=1.21-0' + catalog.cattle.io/release-name: pxc-db + apiVersion: v2 + appVersion: 1.15.0 + created: "2024-08-22T00:49:29.364375893Z" + description: A Helm chart for installing Percona XtraDB Cluster Databases using + the PXC Operator. + digest: 7f2aa92c5c2326c0b44142391ec2411e2dadfb8d42de7c039e48c6f7ec25e9c5 + home: https://www.percona.com/doc/kubernetes-operator-for-pxc/kubernetes.html + icon: file://assets/icons/pxc-db.png + kubeVersion: '>=1.21-0' + maintainers: + - email: tomislav.plavcic@percona.com + name: tplavcic + - email: sergey.pronin@percona.com + name: spron-in + - email: natalia.marukovich@percona.com + name: nmarukovich + name: pxc-db + urls: + - assets/percona/pxc-db-1.15.0.tgz + version: 1.15.0 - annotations: catalog.cattle.io/certified: partner catalog.cattle.io/display-name: Percona XtraDB Cluster @@ -30456,6 +30481,32 @@ entries: - assets/percona/pxc-db-1.12.3.tgz version: 1.12.3 pxc-operator: + - annotations: + catalog.cattle.io/certified: partner + catalog.cattle.io/display-name: Percona Operator For MySQL based on Percona + XtraDB Cluster + catalog.cattle.io/kube-version: '>=1.21-0' + catalog.cattle.io/release-name: pxc-operator + apiVersion: v2 + appVersion: 1.15.0 + created: "2024-08-22T00:49:29.377176385Z" + description: A Helm chart for deploying the Percona Operator for MySQL (based + on Percona XtraDB Cluster) + digest: 2d63941c128d3fd6be857cf0c00a6e4bd252fd3544f2d9999bef395c99f1192e + home: https://docs.percona.com/percona-operator-for-mysql/pxc/ + icon: file://assets/icons/pxc-operator.png + kubeVersion: '>=1.21-0' + maintainers: + - email: tomislav.plavcic@percona.com + name: tplavcic + - email: natalia.marukovich@percona.com + name: nmarukovich + - email: sergey.pronin@percona.com + name: spron-in + name: pxc-operator + urls: + - assets/percona/pxc-operator-1.15.0.tgz + version: 1.15.0 - annotations: catalog.cattle.io/certified: partner catalog.cattle.io/display-name: Percona Operator For MySQL based on Percona @@ -40108,4 +40159,4 @@ entries: urls: - assets/netfoundry/ziti-host-1.5.1.tgz version: 1.5.1 -generated: "2024-08-21T00:47:47.792456339Z" +generated: "2024-08-22T00:49:25.611738404Z"