From abc2fe3ebe668122519ef350ed869e4c2ecdf5ae Mon Sep 17 00:00:00 2001 From: Julio Pasinatto Date: Wed, 19 Mar 2025 16:58:01 -0300 Subject: [PATCH 1/9] Update versions for 1.17.0 release --- charts/pxc-db/Chart.yaml | 4 ++-- charts/pxc-db/README.md | 6 +++--- charts/pxc-operator/Chart.yaml | 4 ++-- charts/pxc-operator/README.md | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/charts/pxc-db/Chart.yaml b/charts/pxc-db/Chart.yaml index 1c2d9336..00ffb9b1 100644 --- a/charts/pxc-db/Chart.yaml +++ b/charts/pxc-db/Chart.yaml @@ -1,9 +1,9 @@ apiVersion: v2 -appVersion: 1.16.1 +appVersion: 1.17.0 description: A Helm chart for installing Percona XtraDB Cluster Databases using the PXC Operator. name: pxc-db home: https://www.percona.com/doc/kubernetes-operator-for-pxc/kubernetes.html -version: 1.16.2 +version: 1.17.0 maintainers: - name: spron-in email: sergey.pronin@percona.com diff --git a/charts/pxc-db/README.md b/charts/pxc-db/README.md index e784c6b9..5c5c4424 100644 --- a/charts/pxc-db/README.md +++ b/charts/pxc-db/README.md @@ -8,7 +8,7 @@ Useful links ## 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+ +* Kubernetes 1.29+ * Helm v3 @@ -20,14 +20,14 @@ To install the chart with the `pxc` release name using a dedicated namespace (re ```sh helm repo add percona https://percona.github.io/percona-helm-charts/ -helm install my-db percona/pxc-db --version 1.16.2 --namespace my-namespace +helm install my-db percona/pxc-db --version 1.17.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.16.1` | +| `crVersion` | Version of the Operator the Custom Resource belongs to | `1.17.0` | | `ignoreAnnotations` | Operator will not remove following annotations | `[]` | | `ignoreLabels` | Operator will not remove following labels | `[]` | | `pause` | Stop PXC Database safely | `false` | diff --git a/charts/pxc-operator/Chart.yaml b/charts/pxc-operator/Chart.yaml index a0eebc14..cb26a353 100644 --- a/charts/pxc-operator/Chart.yaml +++ b/charts/pxc-operator/Chart.yaml @@ -1,9 +1,9 @@ apiVersion: v2 -appVersion: 1.16.1 +appVersion: 1.17.0 description: A Helm chart for deploying the Percona Operator for MySQL (based on Percona XtraDB Cluster) name: pxc-operator home: https://docs.percona.com/percona-operator-for-mysql/pxc/ -version: 1.16.1 +version: 1.17.0 maintainers: - name: nmarukovich email: natalia.marukovich@percona.com diff --git a/charts/pxc-operator/README.md b/charts/pxc-operator/README.md index 43f7c5e9..1f9fe42f 100644 --- a/charts/pxc-operator/README.md +++ b/charts/pxc-operator/README.md @@ -7,7 +7,7 @@ Useful links * [Operator Documentation](https://www.percona.com/doc/kubernetes-operator-for-pxc/index.html) ## Pre-requisites -* Kubernetes 1.28+ +* Kubernetes 1.29+ * Helm v3 # Installation @@ -19,14 +19,14 @@ To install the chart with the `pxc` release name using a dedicated namespace (re ```sh helm repo add percona https://percona.github.io/percona-helm-charts/ -helm install my-operator percona/pxc-operator --version 1.16.1 --namespace my-namespace +helm install my-operator percona/pxc-operator --version 1.17.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.16.1` | +| `image` | PXC Operator Container image full path | `percona/percona-xtradb-cluster-operator:1.17.0` | | `imagePullPolicy` | PXC Operator Container pull policy | `Always` | | `containerSecurityContext` | PXC Operator Container securityContext | `{}` | | `imagePullSecrets` | PXC Operator Pod pull secret | `[]` | From b7088d913d78657d823bf03f01be418fe454b7ec Mon Sep 17 00:00:00 2001 From: Julio Pasinatto Date: Fri, 21 Mar 2025 11:39:15 -0300 Subject: [PATCH 2/9] Add storage azure new fields and update crd --- charts/pxc-db/values.yaml | 2 + charts/pxc-operator/crds/crd.yaml | 220 ++++++++++++++++++++++++++++++ 2 files changed, 222 insertions(+) diff --git a/charts/pxc-db/values.yaml b/charts/pxc-db/values.yaml index 0932e9ae..c44a983b 100644 --- a/charts/pxc-db/values.yaml +++ b/charts/pxc-db/values.yaml @@ -694,6 +694,8 @@ backup: # container: test # endpointUrl: https://accountName.blob.core.windows.net # storageClass: Hot + # blockSize: 4194304 + # concurrency: 4 schedule: [] # - name: "daily-backup" diff --git a/charts/pxc-operator/crds/crd.yaml b/charts/pxc-operator/crds/crd.yaml index e85d7e56..ea75c0eb 100644 --- a/charts/pxc-operator/crds/crd.yaml +++ b/charts/pxc-operator/crds/crd.yaml @@ -145,13 +145,24 @@ spec: type: object pxcCluster: type: string + startingDeadlineSeconds: + format: int64 + type: integer storageName: type: string + suspendedDeadlineSeconds: + format: int64 + type: integer type: object status: properties: azure: properties: + blockSize: + format: int64 + type: integer + concurrency: + type: integer container: type: string credentialsSecret: @@ -202,6 +213,8 @@ spec: type: array destination: type: string + error: + type: string image: type: string lastscheduled: @@ -294,6 +307,11 @@ spec: properties: azure: properties: + blockSize: + format: int64 + type: integer + concurrency: + type: integer container: type: string credentialsSecret: @@ -344,6 +362,8 @@ spec: type: array destination: type: string + error: + type: string image: type: string lastscheduled: @@ -468,6 +488,11 @@ spec: properties: azure: properties: + blockSize: + format: int64 + type: integer + concurrency: + type: integer container: type: string credentialsSecret: @@ -518,6 +543,8 @@ spec: type: array destination: type: string + error: + type: string image: type: string lastscheduled: @@ -597,16 +624,36 @@ spec: type: object status: properties: + clusterSize: + format: int32 + type: integer comments: type: string completed: format: date-time type: string + haproxySize: + format: int32 + type: integer lastscheduled: format: date-time type: string + proxysqlSize: + format: int32 + type: integer state: type: string + unsafeFlags: + properties: + backupIfUnhealthy: + type: boolean + proxySize: + type: boolean + pxcSize: + type: boolean + tls: + type: boolean + type: object type: object type: object served: true @@ -1048,6 +1095,9 @@ spec: type: array serviceAccountName: type: string + startingDeadlineSeconds: + format: int64 + type: integer storages: additionalProperties: properties: @@ -1496,6 +1546,11 @@ spec: type: object azure: properties: + blockSize: + format: int64 + type: integer + concurrency: + type: integer container: type: string credentialsSecret: @@ -1985,6 +2040,9 @@ spec: type: object type: object type: object + suspendedDeadlineSeconds: + format: int64 + type: integer type: object crVersion: type: string @@ -5243,10 +5301,172 @@ spec: type: string imagePullPolicy: type: string + 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: + default: "" + 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 proxysqlParams: type: string pxcParams: type: string + 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: + default: "" + 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 resources: properties: claims: From a8017487f20bc2a01a846220e8d1ec27e5ec77c4 Mon Sep 17 00:00:00 2001 From: Andrii Dema Date: Tue, 25 Mar 2025 19:04:17 +0200 Subject: [PATCH 3/9] K8SPXC-1367: add `readinessProbes`, `livenessProbes` fields for pmm (#472) * K8SPXC-1367: add `readinessProbes`, `livenessProbes` fields for pmm https://perconadev.atlassian.net/browse/K8SPXC-1367 * update --------- Co-authored-by: Julio Pasinatto --- charts/pxc-db/README.md | 34 ++++++++++++++++++---------- charts/pxc-db/templates/cluster.yaml | 4 ++++ charts/pxc-db/values.yaml | 11 +++++++++ 3 files changed, 37 insertions(+), 12 deletions(-) diff --git a/charts/pxc-db/README.md b/charts/pxc-db/README.md index 5c5c4424..efbce3d9 100644 --- a/charts/pxc-db/README.md +++ b/charts/pxc-db/README.md @@ -239,18 +239,28 @@ The chart can be customized using the following configurable parameters: | `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.44.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 | `{}` | +| `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.44.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 | `{}` | +| `pmm.readinessProbes.failureThreshold` | When a probe fails, Kubernetes will try failureThreshold times before giving up | `5` | +| `pmm.readinessProbes.initialDelaySeconds`| Number of seconds after the container has started before liveness or readiness probes are initiated | `15` | +| `pmm.readinessProbes.periodSeconds` | How often (in seconds) to perform the probe | `30` | +| `pmm.readinessProbes.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed | `1` | +| `pmm.readinessProbes.timeoutSeconds` | Number of seconds after which the probe times out | `15` | +| `pmm.livenessProbes.failureThreshold` | When a probe fails, Kubernetes will try failureThreshold times before giving up | `3` | +| `pmm.livenessProbes.initialDelaySeconds` | Number of seconds after the container has started before liveness or readiness probes are initiated | `300` | +| `pmm.livenessProbes.periodSeconds` | How often (in seconds) to perform the probe | `10` | +| `pmm.livenessProbes.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed | `1` | +| `pmm.livenessProbes.timeoutSeconds` | Number of seconds after which the probe times out | `5` | | `users.name` | The username of the PXC application user | `""` | | `users.dbs` | Database that will be applied to the user | `[]` | diff --git a/charts/pxc-db/templates/cluster.yaml b/charts/pxc-db/templates/cluster.yaml index 2b7489a3..10fcc795 100644 --- a/charts/pxc-db/templates/cluster.yaml +++ b/charts/pxc-db/templates/cluster.yaml @@ -505,6 +505,10 @@ spec: {{- if $pmm.proxysqlParams }} proxysqlParams: {{ $pmm.proxysqlParams }} {{- end }} + readinessProbes: +{{ tpl ($pmm.readinessProbes | toYaml) $ | indent 6 }} + livenessProbes: +{{ tpl ($pmm.livenessProbes | toYaml) $ | indent 6 }} resources: requests: {{ tpl ($pmm.resources.requests | toYaml) $ | indent 8 }} diff --git a/charts/pxc-db/values.yaml b/charts/pxc-db/values.yaml index c44a983b..64c46cb5 100644 --- a/charts/pxc-db/values.yaml +++ b/charts/pxc-db/values.yaml @@ -577,6 +577,17 @@ pmm: tag: 2.44.0 # imagePullPolicy: Always imagePullSecrets: [] +# readinessProbes: +# initialDelaySeconds: 15 +# timeoutSeconds: 15 +# periodSeconds: 30 +# successThreshold: 1 +# failureThreshold: 5 +# livenessProbes: +# initialDelaySeconds: 300 +# timeoutSeconds: 5 +# periodSeconds: 10 +# successThreshold: 1 serverHost: monitoring-service serverUser: admin # pxcParams: "--disable-tablestats-limit=2000" From 78820f4457116355cd40f066b398eee3d7dc958c Mon Sep 17 00:00:00 2001 From: Julio Pasinatto Date: Fri, 11 Apr 2025 14:28:16 -0300 Subject: [PATCH 4/9] Update versions --- charts/pxc-db/README.md | 10 +- charts/pxc-db/values.yaml | 11 +- charts/pxc-operator/crds/rbac.yaml | 135 ++++++++++++++++++++++++ charts/pxc-operator/templates/role.yaml | 1 + 4 files changed, 146 insertions(+), 11 deletions(-) create mode 100644 charts/pxc-operator/crds/rbac.yaml diff --git a/charts/pxc-db/README.md b/charts/pxc-db/README.md index efbce3d9..31b2518e 100644 --- a/charts/pxc-db/README.md +++ b/charts/pxc-db/README.md @@ -60,7 +60,7 @@ The chart can be customized using the following configurable parameters: | `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.39-30.1` | +| `pxc.image.tag` | PXC Container image tag | `8.0.41-32.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` | @@ -126,13 +126,13 @@ The chart can be customized using the following configurable parameters: | | | `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.11` | +| `haproxy.image` | HAProxy Container image repository | `percona/haproxy:2.8.14` | | `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.enabled`~~ | **(Deprecated)** 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) | `""` | @@ -231,7 +231,7 @@ The chart can be customized using the following configurable parameters: | `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.16.1-logcollector-fluentbit3.2.2` | +| `logcollector.image` | Log collector image repository | `percona/percona-xtradb-cluster-operator:1.17.0-logcollector-fluentbit4.0.0` | | `logcollector.imagePullSecrets` | Log collector pull secret | `[]` | | `logcollector.imagePullPolicy` | The policy used to update images | `` | | `logcollector.configuration` | User defined configuration for logcollector | `` | @@ -274,7 +274,7 @@ The chart can be customized using the following configurable parameters: | `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.16.1-pxc8.0-backup-pxb8.0.35` | +| `backup.image.tag` | Backup Container tag | `1.17.0-pxc8.0-backup-pxb8.0.35` | | `backup.backoffLimit` | The number of retries to make a backup | `10` | | `backup.activeDeadlineSeconds` | Maximum duration in seconds for a bacup job to run. The job will be terminated if it exceeds this time | `` | | `backup.imagePullSecrets` | Backup Container pull secret | `[]` | diff --git a/charts/pxc-db/values.yaml b/charts/pxc-db/values.yaml index 64c46cb5..590766f4 100644 --- a/charts/pxc-db/values.yaml +++ b/charts/pxc-db/values.yaml @@ -19,7 +19,7 @@ annotations: {} operatorImageRepository: percona/percona-xtradb-cluster-operator -crVersion: 1.16.1 +crVersion: 1.17.0 enableVolumeExpansion: false @@ -29,7 +29,7 @@ ignoreLabels: [] # - rack pause: false # initContainer: -# image: "percona/percona-xtradb-cluster-operator:1.16.1" +# image: "percona/percona-xtradb-cluster-operator:1.17." # containerSecurityContext: # privileged: false # runAsUser: 1001 @@ -214,7 +214,7 @@ pxc: haproxy: enabled: true size: 3 - image: percona/haproxy:2.8.11 + image: percona/haproxy:2.8.14 # imagePullPolicy: Always imagePullSecrets: [] # - name: private-registry-credentials @@ -345,7 +345,6 @@ haproxy: successThreshold: 1 failureThreshold: 4 # exposePrimary: - # enabled: false # type: ClusterIP # annotations: # service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp @@ -533,7 +532,7 @@ proxysql: logcollector: enabled: true - image: percona/percona-xtradb-cluster-operator:1.16.1-logcollector-fluentbit3.2.2 + image: percona/percona-xtradb-cluster-operator:1.17.0-logcollector-fluentbit4.0.0 # imagePullPolicy: Always imagePullSecrets: [] # configuration: | @@ -605,7 +604,7 @@ backup: # allowParallel: true image: repository: percona/percona-xtradb-cluster-operator - tag: 1.16.1-pxc8.0-backup-pxb8.0.35 + tag: 1.17.0-pxc8.0-backup-pxb8.0.35 # backoffLimit: 6 # activeDeadlineSeconds: 3600 # serviceAccountName: percona-xtradb-cluster-operator diff --git a/charts/pxc-operator/crds/rbac.yaml b/charts/pxc-operator/crds/rbac.yaml new file mode 100644 index 00000000..633cb4b6 --- /dev/null +++ b/charts/pxc-operator/crds/rbac.yaml @@ -0,0 +1,135 @@ +kind: Role +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: percona-xtradb-cluster-operator +rules: +- apiGroups: + - pxc.percona.com + resources: + - perconaxtradbclusters + - perconaxtradbclusters/status + - perconaxtradbclusterbackups + - perconaxtradbclusterbackups/status + - perconaxtradbclusterrestores + - perconaxtradbclusterrestores/status + - perconaxtradbclusterrestores/finalizers + verbs: + - get + - list + - watch + - create + - update + - patch + - delete +- 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 +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: percona-xtradb-cluster-operator +--- +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: service-account-percona-xtradb-cluster-operator +subjects: +- kind: ServiceAccount + name: percona-xtradb-cluster-operator +roleRef: + kind: Role + name: percona-xtradb-cluster-operator + apiGroup: rbac.authorization.k8s.io diff --git a/charts/pxc-operator/templates/role.yaml b/charts/pxc-operator/templates/role.yaml index c1aeb0e3..329526ab 100644 --- a/charts/pxc-operator/templates/role.yaml +++ b/charts/pxc-operator/templates/role.yaml @@ -22,6 +22,7 @@ rules: - perconaxtradbclusterbackups/status - perconaxtradbclusterrestores - perconaxtradbclusterrestores/status + - perconaxtradbclusterrestores/finalizers verbs: - get - list From 0ae7545f9b2550f2c8b64e93c0c740e709335b50 Mon Sep 17 00:00:00 2001 From: Julio Pasinatto Date: Mon, 14 Apr 2025 09:13:26 -0300 Subject: [PATCH 5/9] Add eleo007 as maintainer --- charts/pxc-db/Chart.yaml | 4 ++-- charts/pxc-operator/Chart.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/charts/pxc-db/Chart.yaml b/charts/pxc-db/Chart.yaml index 00ffb9b1..158b63c0 100644 --- a/charts/pxc-db/Chart.yaml +++ b/charts/pxc-db/Chart.yaml @@ -5,8 +5,8 @@ name: pxc-db home: https://www.percona.com/doc/kubernetes-operator-for-pxc/kubernetes.html version: 1.17.0 maintainers: - - name: spron-in - email: sergey.pronin@percona.com + - name: eleo007 + email: eleonora.zinchenko@percona.com - name: nmarukovich email: natalia.marukovich@percona.com - name: jvpasinatto diff --git a/charts/pxc-operator/Chart.yaml b/charts/pxc-operator/Chart.yaml index cb26a353..40434925 100644 --- a/charts/pxc-operator/Chart.yaml +++ b/charts/pxc-operator/Chart.yaml @@ -7,8 +7,8 @@ version: 1.17.0 maintainers: - name: nmarukovich email: natalia.marukovich@percona.com - - name: spron-in - email: sergey.pronin@percona.com + - name: eleo007 + email: eleonora.zinchenko@percona.com - name: jvpasinatto email: julio.pasinatto@percona.com icon: https://artifacthub.io/image/0b8875cd-6661-4269-9cf6-0fd92d59017b@1x From b39576d05980355b96baf97768df19fd18bc1f8f Mon Sep 17 00:00:00 2001 From: Julio Pasinatto Date: Mon, 14 Apr 2025 09:13:50 -0300 Subject: [PATCH 6/9] Add new backup fields --- charts/pxc-db/README.md | 2 + charts/pxc-db/templates/cluster.yaml | 6 ++ charts/pxc-db/values.yaml | 2 + charts/pxc-operator/crds/rbac.yaml | 135 --------------------------- 4 files changed, 10 insertions(+), 135 deletions(-) delete mode 100644 charts/pxc-operator/crds/rbac.yaml diff --git a/charts/pxc-db/README.md b/charts/pxc-db/README.md index 31b2518e..7ff525c9 100644 --- a/charts/pxc-db/README.md +++ b/charts/pxc-db/README.md @@ -277,6 +277,8 @@ The chart can be customized using the following configurable parameters: | `backup.image.tag` | Backup Container tag | `1.17.0-pxc8.0-backup-pxb8.0.35` | | `backup.backoffLimit` | The number of retries to make a backup | `10` | | `backup.activeDeadlineSeconds` | Maximum duration in seconds for a bacup job to run. The job will be terminated if it exceeds this time | `` | +| `backup.startingDeadlineSeconds` | The maximum time in seconds for a backup to start | `` | +| `backup.suspendedDeadlineSeconds` | The maximum time in seconds for a backup to remain in a suspended state | `` | | `backup.imagePullSecrets` | Backup Container pull secret | `[]` | | `backup.imagePullPolicy` | The policy used to update images | `` | | `backup.pitr.enabled` | Enable point in time recovery | `false` | diff --git a/charts/pxc-db/templates/cluster.yaml b/charts/pxc-db/templates/cluster.yaml index 10fcc795..7e6bec6f 100644 --- a/charts/pxc-db/templates/cluster.yaml +++ b/charts/pxc-db/templates/cluster.yaml @@ -528,6 +528,12 @@ spec: {{- if $backup.activeDeadlineSeconds }} activeDeadlineSeconds: {{ $backup.activeDeadlineSeconds }} {{- end }} + {{- if $backup.startingDeadlineSeconds }} + startingDeadlineSeconds: {{ $backup.startingDeadlineSeconds }} + {{- end }} + {{- if $backup.suspendedDeadlineSeconds }} + suspendedDeadlineSeconds: {{ $backup.suspendedDeadlineSeconds }} + {{- end }} {{- if $backup.serviceAccountName }} serviceAccountName: {{ $backup.serviceAccountName }} {{- end }} diff --git a/charts/pxc-db/values.yaml b/charts/pxc-db/values.yaml index 590766f4..7dfb2334 100644 --- a/charts/pxc-db/values.yaml +++ b/charts/pxc-db/values.yaml @@ -607,6 +607,8 @@ backup: tag: 1.17.0-pxc8.0-backup-pxb8.0.35 # backoffLimit: 6 # activeDeadlineSeconds: 3600 + # startingDeadlineSeconds: 300 + # suspendedDeadlineSeconds: 1200 # serviceAccountName: percona-xtradb-cluster-operator # imagePullPolicy: Always imagePullSecrets: [] diff --git a/charts/pxc-operator/crds/rbac.yaml b/charts/pxc-operator/crds/rbac.yaml deleted file mode 100644 index 633cb4b6..00000000 --- a/charts/pxc-operator/crds/rbac.yaml +++ /dev/null @@ -1,135 +0,0 @@ -kind: Role -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: percona-xtradb-cluster-operator -rules: -- apiGroups: - - pxc.percona.com - resources: - - perconaxtradbclusters - - perconaxtradbclusters/status - - perconaxtradbclusterbackups - - perconaxtradbclusterbackups/status - - perconaxtradbclusterrestores - - perconaxtradbclusterrestores/status - - perconaxtradbclusterrestores/finalizers - verbs: - - get - - list - - watch - - create - - update - - patch - - delete -- 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 ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: percona-xtradb-cluster-operator ---- -kind: RoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: service-account-percona-xtradb-cluster-operator -subjects: -- kind: ServiceAccount - name: percona-xtradb-cluster-operator -roleRef: - kind: Role - name: percona-xtradb-cluster-operator - apiGroup: rbac.authorization.k8s.io From 411bf9ab8ba322fd3ca606998df9803c775ea627 Mon Sep 17 00:00:00 2001 From: Julio Pasinatto Date: Mon, 14 Apr 2025 11:34:00 -0300 Subject: [PATCH 7/9] Add deprecation note in readme --- charts/pxc-db/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/pxc-db/README.md b/charts/pxc-db/README.md index 7ff525c9..8e67254e 100644 --- a/charts/pxc-db/README.md +++ b/charts/pxc-db/README.md @@ -132,7 +132,7 @@ The chart can be customized using the following configurable parameters: | `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`~~ | **(Deprecated)** Enable or disable exposing `HAProxy` nodes with dedicated IP addresses | `true` | +| ~~`haproxy.exposePrimary.enabled`~~ | **(Deprecated since 1.17.0)** 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) | `""` | From 4acd31ea384f4834965deb7b69cacd7ffe11798e Mon Sep 17 00:00:00 2001 From: Julio Pasinatto Date: Mon, 14 Apr 2025 15:49:21 -0300 Subject: [PATCH 8/9] Update pxc version --- charts/pxc-db/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/pxc-db/values.yaml b/charts/pxc-db/values.yaml index 7dfb2334..83cd82da 100644 --- a/charts/pxc-db/values.yaml +++ b/charts/pxc-db/values.yaml @@ -67,7 +67,7 @@ pxc: size: 3 image: repository: percona/percona-xtradb-cluster - tag: 8.0.39-30.1 + tag: 8.0.41-32.1 # imagePullPolicy: Always autoRecovery: true # expose: From 5c83d221540d826387328c8d732f52a68cb04600 Mon Sep 17 00:00:00 2001 From: Julio Pasinatto Date: Mon, 14 Apr 2025 15:54:27 -0300 Subject: [PATCH 9/9] Fix typo --- charts/pxc-db/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/pxc-db/values.yaml b/charts/pxc-db/values.yaml index 83cd82da..e96fca7c 100644 --- a/charts/pxc-db/values.yaml +++ b/charts/pxc-db/values.yaml @@ -29,7 +29,7 @@ ignoreLabels: [] # - rack pause: false # initContainer: -# image: "percona/percona-xtradb-cluster-operator:1.17." +# image: "percona/percona-xtradb-cluster-operator:1.17.0" # containerSecurityContext: # privileged: false # runAsUser: 1001