diff --git a/Untitled-1 b/Untitled-1 new file mode 100644 index 0000000..cabd959 --- /dev/null +++ b/Untitled-1 @@ -0,0 +1,164 @@ +# Percona Operator for MySQL 1.0.0 ({{date.1_0_0}}) + +[Installation](https://docs.percona.com/percona-operator-for-mysql/ps/System-Requirements.html#installation-guidelines){.md-button} + +Percona Operator for MySQL brings production-grade automation to MySQL deployments on Kubernetes. It handles provisioning, scaling, backups, failover, and upgrades using declarative Custom Resources, thus reducing manual effort and human error. With built-in support for Percona XtraBackup, proxies such as HAProxy or MySQL Router and Percona Toolkit, it ensures resilient, secure, and performant MySQL clusters. + +## Release highlights + +This release marks the **General Availability (GA) of Percona Operator for MySQL using Percona Server for MySQL with the group replication type**. The asynchronous replication has the tech preview status and we don't recommend using it in production yet. + +With the GA status of the Operator, you can confidently deploy and run it in production environments, benefiting from long-term maintenance and enterprise-grade reliability. + +Alternatively, you may opt for [Percona Operator for MySQL based on Percona XtraDB Cluster](https://www.percona.com/doc/kubernetes-operator-for-pxc/index.html), which is production-ready and contains everything you need to quickly and consistently deploy and scale MySQL clusters in a Kubernetes-based environment, on-premises or in the cloud. + +This release focuses on stability and bug fixing, ensuring the Operator is ready for production use. Additionally, it introduces these improvements: + +### Seamless Operator lifecycle management on OpenShift OLM + +The Operator images are passing official certification for OpenShift. When passed, this unlocks full support for the Operator Lifecycle Manager (OLM) so that you can install, upgrade and manage the Operator's lifecycle directly from the OpenShift console. + +What this means for you: + +* Simplified installation: Deploy Operators directly from the OpenShift UI with just a few clicks. +* Streamlined updates: Stay current with automatic or manual updates via OLM. +* Enterprise-grade assurance: Certified images meet Red Hat's security and compatibility standards. +* Better integration: Leverage OpenShift-native workflows for lifecycle management, RBAC, and monitoring. +* Scalable operations: Simplify cluster-wide rollouts and reduce manual overhead. + +All OpenShift-related features will become available to users as soon as certification is confirmed. Whether you're a platform engineer, DBA, or architect, this advancement will bring you closer to a secure, scalable, and policy-driven infrastructure. + +### Streamlined custom configuration usage for backup and restore processes + +In previous version we have added the ability to fine-tune backups and restores by defining `xtrabackup`, `xbstream` and `xbcloud` settings globally via the Custom Resource manifest, or individually via a specific backup / restore manifest. + +In this release we improved how the Operator applies these settings: now individual configuration always takes precedence over global settings. + +With this improvement you have maximum flexibility: you can define consistent default settings for the entire cluster, but still tailor individual backup or restore operations as needed. This way you can optimize performance, troubleshoot, or customize specific scenarios without affecting the global configuration. + +### Increased timeouts for read, write and clone operations inside MySQL cluster + +To improve reliability of clone operations in asynchronous MySQL clusters, especially when transferring large datasets, we've increased the default timeouts for read, write and clone operations to 3600 seconds. This change helps prevent premature failures caused by network delays or slow disk I/O during large data transfers. + +The following timeouts are now set to 3600s by default: + +* `BOOTSTRAP_CLONE_TIMEOUT` +* `BOOTSTRAP_READ_TIMEOUT` +* `BOOTSTRAP_WRITE_TIMEOUT` + +You can fine-tune the timeout for cloning in your custom resource (CR) using environment variables: + +```yaml +spec: + mysql: + env: + - name: BOOTSTRAP_CLONE_TIMEOUT + value: "3600" + - name: BOOTSTRAP_READ_TIMEOUT + value: "3600" + - name: BOOTSTRAP_WRITE_TIMEOUT + value: "3600" +``` + +This update ensures smoother provisioning and bootstrapping of new database nodes, especially in environments with large datasets or variable network conditions. + +## Deprecation, rename and removal + +* Changed paths for example configuration files for backups and restores. They are now stored in the `deploy/backup/` folder. Adjust your automation workflows with this new path, if needed. +* The Custom Resource options `spec.pmm.readinessProbes` and `spec.pmm.livenessProbes` have been renamed to the singular `spec.pmm.readinessProbe` and `spec.pmm.livenessProbe`, respectively. Please update your application configurations to use these new field names as needed. + +## Known limitations + +If you defined several schedules for the same remote backup storage, be aware of the following limitations: + +1. **Retention policy conflicts.** The Operator applies retention policies only to the first schedule in your configuration. For example, if you set daily backups to keep 5 copies and monthly backups to keep 3 copies, the Operator will only keep 5 total backups in storage, not 8 as you might expect. However, all backup objects will still appear in `kubectl get ps-backup` output. + +2. **Concurrent backup conflicts.** When multiple schedules run simultaneously and write to the same storage path, backups can overwrite each other, resulting in incomplete or corrupted data. + +To avoid these issues and ensure each schedule maintains its own retention policy, configure separate storage locations for each schedule. Refer to the [documentation](https://docs.percona.com/percona-operator-for-mysql/ps/backups-scheduled.html#managing-multiple-backup-schedules-in-the-same-storage) for more information and configuration steps. + +## Changelog + +### Improvements + +* [K8SPS-469](https://perconadev.atlassian.net/browse/K8SPS-469) - Improved log message to display clearer and more informative error messages in case of authorization issues to a backup storage. +* [K8SPS-537](https://perconadev.atlassian.net/browse/K8SPS-537) - Extended the test suite for the automatic update process to include MySQL version 8.4. +* [K8SPS-574](https://perconadev.atlassian.net/browse/K8SPS-574) - Align readiness and liveness probe naming to be in the singular form to correspond to to the Kubernetes API structure + +### Fixed bugs + +* [K8SPS-491](https://perconadev.atlassian.net/browse/K8SPS-491) - Percona Operator for MySQL now automatically generates the secrets object in the format `-secrets`, if it's not explicitly defined in the Custom resource, preventing common startup errors. + +* [K8SPS-492](https://perconadev.atlassian.net/browse/K8SPS-492) - Fixed the issue with the Operator sending the unsupported `Error` event type during the Group Replication cluster startup by sending the `Warning` event type instead. + +* [K8SPS-498](https://perconadev.atlassian.net/browse/K8SPS-498) - Stopped unnecessary updates to the `resourceVersion` field of the cluster objects during its initialization. + +* [K8SPS-501](https://perconadev.atlassian.net/browse/K8SPS-501) - Fixed the issue with the Operator failing to update the PVC when expanding database volumes by retrying the operation. + +* [K8SPS-517](https://perconadev.atlassian.net/browse/K8SPS-517) - Fixed an issue that prevented MySQL clone operations from completing successfully due to a default 10-second read timeout, which caused "query interrupted" errors. This was resolved by increasing the default read/write timeouts to 3600 seconds (1 hour) for long-running operations and enhancing error handling for better reliability and debugging. + +* [K8SPS-518](https://perconadev.atlassian.net/browse/K8SPS-518) - ConfigMap settings were fixed to ensure proper labels are applied when deploying clusters with various replication and router configurations. + +* [K8SPS-521](https://perconadev.atlassian.net/browse/K8SPS-521) - Fixed an issue where mysql-shell would overwrite Group Replication options in my.cnf during cluster creation. The operator now parses my.cnf and explicitly passes user-defined settings (like group_replication_single_primary_mode and group_replication_paxos_single_leader) to dba.createCluster(), ensuring user customizations are respected. + +* [K8SPS-524](https://perconadev.atlassian.net/browse/K8SPS-524) - Fixed the issue with successful backups displaying the incorrect state description. The state description field is irrelevant for successful backups and is not present. + +* [K8SPS-529](https://perconadev.atlassian.net/browse/K8SPS-529) - Removed reconciliation of backups that entered the error state due to underlying configuration issues and keep their state for troubleshooting. + +* [K8SPS-533](https://perconadev.atlassian.net/browse/K8SPS-533) - The individual configuration for `xbcloud`, `xbstream` and `xtrabackup` tools specified directly for a backup or a restore object now fully overrides any default arguments set in the cluster's custom resource. + +* [K8SPS-535](https://perconadev.atlassian.net/browse/K8SPS-535) - Backup deletion operations no longer display an erroneous failure message when the backup is successfully removed from storage. + +* [K8SPS-539](https://perconadev.atlassian.net/browse/K8SPS-539) - Fixed the issue with excessive CPU utilization of the `ps-entrypoint.sh` recovery by adding a backoff mechanism to the file existence check. This improves cluster operation in environments where CPU resources are a concern. + +* [K8SPS-548](https://perconadev.atlassian.net/browse/K8SPS-548) - Improved Group Replication self-healing test and resolved a sporadic failure where a pod would not become ready after a full cluster crash. + +* [K8SPS-456](https://perconadev.atlassian.net/browse/K8SPS-456),[K8SPS-550](https://perconadev.atlassian.net/browse/K8SPS-550) - Fixed the issue with service accounts defined for HAProxy Pods via Custom Resource not being applied. + +* [K8SPS-556](https://perconadev.atlassian.net/browse/K8SPS-556) - Improved logging when telemetry server is unavailable by placing them to Debug level + +* [K8SPS-560](https://perconadev.atlassian.net/browse/K8SPS-560) - Fixed the issue with scheduled backups failing due to conflicting job names when multiple backups run concurrently. + +* [K8SPS-564](https://perconadev.atlassian.net/browse/K8SPS-564) - Fixed the issue with both HAProxy or Router being deployed when both are enabled by validating the configuration and either reporting the error or deploying only one proxy. This prevents unintended dual deployments. + +* [K8SPS-565](https://perconadev.atlassian.net/browse/K8SPS-565) - Restores now complete successfully when using an auto-generated secrets name for clusters. + +* [K8SPS-598](https://perconadev.atlassian.net/browse/K8SPS-598) - Fixed the issue with unneeded cluster restart after the Operator image update. The Operator now prevents these restarts by adding the logic to compare the Operator's new image version with the Custom Resource version, ensuring the init container image in the StatefulSet is only updated when necessary. + + +## Supported software + + +The Operator was developed and tested with the following software: + +* Percona Server for MySQL 8.4.6-6.1 +* Percona Server for MySQL 8.0.43-34.1 +* XtraBackup 8.4.0-4.1 +* XtraBackup 8.0.35-34.1 +* MySQL Router 8.4.6-6.1 +* MySQL Router 8.0.43-34.1 +* HAProxy 2.8.15 +* Orchestrator 3.2.6-18 +* Percona Toolkit 3.7.0-2 +* PMM Client 3.4.1 +* Cert Manager 1.19.1 + +Other options may also work but have not been tested. + + +## Supported platforms + +Percona Operators are designed for compatibility with all [CNCF-certified](https://www.cncf.io/training/certification/software-conformance/) Kubernetes distributions. Our release process includes targeted testing and validation on major cloud provider platforms and OpenShift, as detailed below: + +* [Google Kubernetes Engine (GKE)](https://cloud.google.com/kubernetes-engine) 1.31 - 1.33 +* [Amazon Elastic Container Service for Kubernetes (EKS)](https://aws.amazon.com) 1.31 - 1.34 +* [OpenShift](https://www.openshift.com) 4.16 - 4.20 +* [Minikube](https://minikube.sigs.k8s.io/docs/) 1.37.0 with Kubernetes v1.34.0 + + +This list only includes the platforms on which the Percona Operators are specifically tested as part of the release process. Compatibility with other Kubernetes flavors and versions depends on the backward compatibility provided by Kubernetes itself. + +## Percona certified images + +Find Percona's certified Docker images that you can use with Percona Operator for MySQL based on Percona Server for MySQL in the following table: + diff --git a/_resourcepdf/overrides/main.html b/_resourcepdf/overrides/main.html index 1fe373b..a515f06 100644 --- a/_resourcepdf/overrides/main.html +++ b/_resourcepdf/overrides/main.html @@ -5,9 +5,7 @@ {# Import the theme's layout. #} {% extends "base.html" %} -{% block announce %} - Version 0.12.0 of the Percona Operator for MySQL is a tech preview release and it is not recommended for production environments. As of today, we recommend using Percona Operator for MySQL based on Percona XtraDB Cluster, which is production-ready and contains everything you need to quickly and consistently deploy and scale MySQL clusters in a Kubernetes-based environment, on-premises or in the cloud. -{% endblock %} + {% block extrahead %} {{ super() }} diff --git a/docs/ReleaseNotes/Kubernetes-Operator-for-PS-RN0.10.0.md b/docs/ReleaseNotes/Kubernetes-Operator-for-PS-RN0.10.0.md index e20ea8e..647cbac 100644 --- a/docs/ReleaseNotes/Kubernetes-Operator-for-PS-RN0.10.0.md +++ b/docs/ReleaseNotes/Kubernetes-Operator-for-PS-RN0.10.0.md @@ -107,7 +107,7 @@ Other options may also work but have not been tested. ## Supported platforms -Percona Operators are designed for compatibility with all [CNCF-certified :octicons-link-external-16:](https://www.cncf.io/training/certification/software-conformance/) Kubernetes distributions. Our release process includes targeted testing and validation on major cloud provider platforms and OpenShift, as detailed below for Operator version 0.9.0: +Percona Operators are designed for compatibility with all [CNCF-certified :octicons-link-external-16:](https://www.cncf.io/training/certification/software-conformance/) Kubernetes distributions. Our release process includes targeted testing and validation on major cloud provider platforms and OpenShift, as detailed below for Operator version 0.10.0: --8<-- [start:platforms] diff --git a/docs/ReleaseNotes/Kubernetes-Operator-for-PS-RN0.11.0.md b/docs/ReleaseNotes/Kubernetes-Operator-for-PS-RN0.11.0.md index 7a7f971..fbab2b1 100644 --- a/docs/ReleaseNotes/Kubernetes-Operator-for-PS-RN0.11.0.md +++ b/docs/ReleaseNotes/Kubernetes-Operator-for-PS-RN0.11.0.md @@ -131,7 +131,7 @@ Other options may also work but have not been tested. ## Supported platforms -Percona Operators are designed for compatibility with all [CNCF-certified :octicons-link-external-16:](https://www.cncf.io/training/certification/software-conformance/) Kubernetes distributions. Our release process includes targeted testing and validation on major cloud provider platforms and OpenShift, as detailed below for Operator version 0.9.0: +Percona Operators are designed for compatibility with all [CNCF-certified :octicons-link-external-16:](https://www.cncf.io/training/certification/software-conformance/) Kubernetes distributions. Our release process includes targeted testing and validation on major cloud provider platforms and OpenShift, as detailed below for Operator version 0.11.0: --8<-- [start:platforms] diff --git a/docs/ReleaseNotes/Kubernetes-Operator-for-PS-RN0.12.0.md b/docs/ReleaseNotes/Kubernetes-Operator-for-PS-RN0.12.0.md index 3956a63..3f38166 100644 --- a/docs/ReleaseNotes/Kubernetes-Operator-for-PS-RN0.12.0.md +++ b/docs/ReleaseNotes/Kubernetes-Operator-for-PS-RN0.12.0.md @@ -156,7 +156,7 @@ Other options may also work but have not been tested. ## Supported platforms -Percona Operators are designed for compatibility with all [CNCF-certified :octicons-link-external-16:](https://www.cncf.io/training/certification/software-conformance/) Kubernetes distributions. Our release process includes targeted testing and validation on major cloud provider platforms and OpenShift, as detailed below for Operator version 0.9.0: +Percona Operators are designed for compatibility with all [CNCF-certified :octicons-link-external-16:](https://www.cncf.io/training/certification/software-conformance/) Kubernetes distributions. Our release process includes targeted testing and validation on major cloud provider platforms and OpenShift, as detailed below for Operator version 0.12.0: --8<-- [start:platforms] diff --git a/docs/ReleaseNotes/Kubernetes-Operator-for-PS-RN0.3.0.md b/docs/ReleaseNotes/Kubernetes-Operator-for-PS-RN0.3.0.md index fdd7143..9dde774 100644 --- a/docs/ReleaseNotes/Kubernetes-Operator-for-PS-RN0.3.0.md +++ b/docs/ReleaseNotes/Kubernetes-Operator-for-PS-RN0.3.0.md @@ -16,7 +16,7 @@ * You can now use the [HAProxy load balancer](../expose.md#use-haproxy) in front of the cluster configured for the asynchronous replication. The feature is turned on by default, allowing HAProxy to route traffic and monitor the health of the nodes -* Starting from this release, the Operator [automatically generates](../TLS.md#install-and-use-the-cert-manager) TLS certificates and turns on transport encryption by default at cluster creation time. This includes both external certificates which allow users to connect to a cluster via the encrypted channel, and internal ones used for communication between MySQL nodes +* Starting from this release, the Operator [automatically generates](../tls-cert-manager.md) TLS certificates and turns on transport encryption by default at cluster creation time. This includes both external certificates which allow users to connect to a cluster via the encrypted channel, and internal ones used for communication between MySQL nodes ## New Features @@ -26,12 +26,12 @@ ## Improvements -* {{ k8spsjira(23) }} Add [cert-manager support](../TLS.md#install-and-use-the-cert-manager) to generate and update TLS certificates automatically +* {{ k8spsjira(23) }} Add [cert-manager support](../tls-cert-manager.md) to generate and update TLS certificates automatically * {{ k8spsjira(31) }} Show `ready` state in the custom resource output produced by the `kubectl get ps` command only after all LoadBalancers are ready * {{ k8spsjira(59) }} Add `mysql.primaryServiceType` Custom Resource option to configure the primary exposure type in one place instead of exposing all Pods with specific Service type * {{ k8spsjira(88) }} Allow configuring `prefix` field for backup storages via the [backup.s3.prefix](../operator.md#backupstoragesstorage-names3prefix) Custom Resource option * {{ k8spsjira(93) }} Avoid running multiple backups on the same Pod by either scheduling new backup to another Node or blocking it until the running one finishes -* {{ k8spsjira(97) }} [S3 backup finalizer](../backups-ondemand.md#finalizers) now triggers the actual deletion of backup files from the S3 bucket when there is a manual or scheduled removal of the corresponding backup object +* {{ k8spsjira(97) }} [S3 backup finalizer](../backups-ondemand.md) now triggers the actual deletion of backup files from the S3 bucket when there is a manual or scheduled removal of the corresponding backup object * {{ k8spsjira(103) }} Show MySQL Router and Orchestrator statuses in the Custom Resource through the `kubectl` command * {{ k8spsjira(104) }} Avoid using the root user in backup containers to run XtraBackup with the lowest possible privileges for higher security and isolation of the cluster components * {{ k8spsjira(115) }} Make it possible [to use API Key](../monitoring.md#install-pmm-client) to authorize within Percona Monitoring and Management Server as a more convenient and modern alternative password-based authentication diff --git a/docs/ReleaseNotes/Kubernetes-Operator-for-PS-RN0.8.0.md b/docs/ReleaseNotes/Kubernetes-Operator-for-PS-RN0.8.0.md index 99adefc..c8c6001 100644 --- a/docs/ReleaseNotes/Kubernetes-Operator-for-PS-RN0.8.0.md +++ b/docs/ReleaseNotes/Kubernetes-Operator-for-PS-RN0.8.0.md @@ -33,7 +33,7 @@ unsafeFlags: ## New features -* {{ k8spsjira(149) }}: Custom Resource options now include [customizable health checks and timeouts](../operator.md#proxyhaproxyreadinessprobestimeoutseconds) for HAProxy +* {{ k8spsjira(149) }}: Custom Resource options now include [customizable health checks and timeouts](../operator.md#proxyhaproxylivenessprobetimeoutseconds) for HAProxy * {{ k8spsjira(186) }} and {{ k8spsjira(370) }}: Removing `allowUnsafeConfigurations` Custom Resource option in favor of fine-grained safety control in the `unsafeFlags` subsection * {{ k8spsjira(241) }}: Support for the [cluster-wide Operator mode](../cluster-wide.md) allowing one Operator to watch for Percona Server for MySQL Custom Resources in several namespaces diff --git a/docs/ReleaseNotes/Kubernetes-Operator-for-PS-RN0.9.0.md b/docs/ReleaseNotes/Kubernetes-Operator-for-PS-RN0.9.0.md index a84d9cb..8e1a37b 100644 --- a/docs/ReleaseNotes/Kubernetes-Operator-for-PS-RN0.9.0.md +++ b/docs/ReleaseNotes/Kubernetes-Operator-for-PS-RN0.9.0.md @@ -58,8 +58,6 @@ See more detailed instructions on configuring scheduled backups in [our document * Both upgrade to the Operator version 0.9.0 and the appropriate database cluster upgrade can not be done in a usual way due to a number of internal changes, and require additional manual operations. - * Upgrading the Operator can be done with [this workaround](../update-to-0.9.0.md) - * Upgrading the database cluster can be done by [deleting and recreating it](../delete.md#delete-the-database-cluster) ## Supported Platforms diff --git a/docs/ReleaseNotes/Kubernetes-Operator-for-PS-RN1.0.0.md b/docs/ReleaseNotes/Kubernetes-Operator-for-PS-RN1.0.0.md new file mode 100644 index 0000000..1f58728 --- /dev/null +++ b/docs/ReleaseNotes/Kubernetes-Operator-for-PS-RN1.0.0.md @@ -0,0 +1,191 @@ +# Percona Operator for MySQL 1.0.0 ({{date.1_0_0}}) + +[Installation](../System-Requirements.md#installation-guidelines){.md-button} + +Percona Operator for MySQL brings production-grade automation to MySQL deployments on Kubernetes. It handles provisioning, scaling, backups, failover, and upgrades using declarative Custom Resources, thus reducing manual effort and human error. With built-in support for Percona XtraBackup, proxies such as HAProxy or MySQL Router and Percona Toolkit, it ensures resilient, secure, and performant MySQL clusters. + +## Release highlights + +This release marks the **General Availability (GA) of Percona Operator for MySQL using Percona Server for MySQL with the group replication type**. The asynchronous replication has the tech preview status and we don't recommend using it in production yet. + +With the GA status of the Operator, you can confidently deploy and run it in production environments, benefiting from long-term maintenance and enterprise-grade reliability. + +Alternatively, you may opt for [Percona Operator for MySQL based on Percona XtraDB Cluster](https://www.percona.com/doc/kubernetes-operator-for-pxc/index.html), which is production-ready and contains everything you need to quickly and consistently deploy and scale MySQL clusters in a Kubernetes-based environment, on-premises or in the cloud. + +This release focuses on stability and bug fixing, ensuring the Operator is ready for production use. Additionally, it introduces these improvements: + +### Seamless Operator lifecycle management on OpenShift OLM + +The Operator images are passing official certification for OpenShift. When passed, this unlocks full support for the Operator Lifecycle Manager (OLM) so that you can install, upgrade and manage the Operator's lifecycle directly from the OpenShift console. + +What this means for you: + +* Simplified installation: Deploy Operators directly from the OpenShift UI with just a few clicks. +* Streamlined updates: Stay current with automatic or manual updates via OLM. +* Enterprise-grade assurance: Certified images meet Red Hat's security and compatibility standards. +* Better integration: Leverage OpenShift-native workflow for lifecycle management, RBAC, and monitoring. +* Scalable operations: Simplify cluster-wide rollouts and reduce manual overhead. + +All OpenShift-related features will become available to users as soon as certification is confirmed. Whether you're a platform engineer, DBA, or architect, this advancement will bring you closer to a secure, scalable, and policy-driven infrastructure. + +### Streamlined custom configuration usage for backup and restore processes + +In previous version we have added the ability to fine-tune backups and restores by defining `xtrabackup`, `xbstream` and `xbcloud` settings globally via the Custom Resource manifest, or individually via a specific backup / restore manifest. + +In this release we improved how the Operator applies these settings: now individual configuration always takes precedence over global settings. + +With this improvement you have maximum flexibility: you can define consistent default settings for the entire cluster, but still tailor individual backup or restore operations as needed. This way you can optimize performance, troubleshoot, or customize specific scenarios without affecting the global configuration. + +### Increased timeouts for read, write and clone operations inside MySQL cluster + +To improve reliability of clone operations in asynchronous MySQL clusters, especially when transferring large datasets, we've increased the default timeouts for read, write and clone operations to 3600 seconds. This change helps prevent premature failures caused by network delays or slow disk I/O during large data transfers. + +The following timeouts are now set to 3600s by default: + +* `BOOTSTRAP_CLONE_TIMEOUT` +* `BOOTSTRAP_READ_TIMEOUT` +* `BOOTSTRAP_WRITE_TIMEOUT` + +You can fine-tune the timeout for cloning in your custom resource (CR) using environment variables: + +```yaml +spec: + mysql: + env: + - name: BOOTSTRAP_CLONE_TIMEOUT + value: "3600" + - name: BOOTSTRAP_READ_TIMEOUT + value: "3600" + - name: BOOTSTRAP_WRITE_TIMEOUT + value: "3600" +``` + +This update ensures smoother provisioning and bootstrapping of new database nodes, especially in environments with large datasets or variable network conditions. + +## Deprecation, rename and removal + +* Changed paths for example configuration files for backups and restores. They are now stored in the `deploy/backup/` folder. Adjust your automation workflow with this new path, if needed. +* The Custom Resource options `spec.pmm.readinessProbes` and `spec.pmm.livenessProbes` have been renamed to the singular `spec.pmm.readinessProbe` and `spec.pmm.livenessProbe`, respectively. Please update your application configurations to use these new field names as needed. + +## Known limitations + +If you defined several schedules for the same remote backup storage, be aware of the following limitations: + +1. **Retention policy conflicts.** The Operator applies retention policies only to the first schedule in your configuration. For example, if you set daily backups to keep 5 copies and monthly backups to keep 3 copies, the Operator will only keep 5 total backups in storage, not 8 as you might expect. However, all backup objects will still appear in `kubectl get ps-backup` output. + +2. **Concurrent backup conflicts.** When multiple schedules run simultaneously and write to the same storage path, backups can overwrite each other, resulting in incomplete or corrupted data. + +To avoid these issues and ensure each schedule maintains its own retention policy, configure separate storage locations for each schedule. Refer to the [documentation](../backups-scheduled.md#managing-multiple-backup-schedules-in-the-same-storage) for more information and configuration steps. + +## Changelog + +### Improvements + +* [K8SPS-469](https://perconadev.atlassian.net/browse/K8SPS-469) - Improved log message to display clearer and more informative error messages in case of authorization issues to a backup storage. +* [K8SPS-537](https://perconadev.atlassian.net/browse/K8SPS-537) - Extended the test suite for the automatic update process to include MySQL version 8.4. +* [K8SPS-574](https://perconadev.atlassian.net/browse/K8SPS-574) - Align readiness and liveness probe naming to be in the singular form to correspond to to the Kubernetes API structure + +### Fixed bugs + +* [K8SPS-491](https://perconadev.atlassian.net/browse/K8SPS-491) - Percona Operator for MySQL now automatically generates the secrets object in the format `-secrets`, if it's not explicitly defined in the Custom resource, preventing common startup errors. + +* [K8SPS-492](https://perconadev.atlassian.net/browse/K8SPS-492) - Fixed the issue with the Operator sending the unsupported `Error` event type during the Group Replication cluster startup by sending the `Warning` event type instead. + +* [K8SPS-498](https://perconadev.atlassian.net/browse/K8SPS-498) - Stopped unnecessary updates to the `resourceVersion` field of the cluster objects during its initialization. + +* [K8SPS-501](https://perconadev.atlassian.net/browse/K8SPS-501) - Fixed the issue with the Operator failing to update the PVC when expanding database volumes by retrying the operation. + +* [K8SPS-517](https://perconadev.atlassian.net/browse/K8SPS-517) - Fixed an issue that prevented MySQL clone operations from completing successfully due to a default 10-second read timeout, which caused "query interrupted" errors. This was resolved by increasing the default read/write timeouts to 3600 seconds (1 hour) for long-running operations and enhancing error handling for better reliability and debugging. + +* [K8SPS-518](https://perconadev.atlassian.net/browse/K8SPS-518) - ConfigMap settings were fixed to ensure proper labels are applied when deploying clusters with various replication and router configurations. + +* [K8SPS-521](https://perconadev.atlassian.net/browse/K8SPS-521) - Fixed an issue where mysql-shell would overwrite Group Replication options in my.cnf during cluster creation. The operator now parses my.cnf and explicitly passes user-defined settings (like group_replication_single_primary_mode and group_replication_paxos_single_leader) to dba.createCluster(), ensuring user customizations are respected. + +* [K8SPS-524](https://perconadev.atlassian.net/browse/K8SPS-524) - Fixed the issue with successful backups displaying the incorrect state description. The state description field is irrelevant for successful backups and is not present. + +* [K8SPS-529](https://perconadev.atlassian.net/browse/K8SPS-529) - Removed reconciliation of backups that entered the error state due to underlying configuration issues and keep their state for troubleshooting. + +* [K8SPS-533](https://perconadev.atlassian.net/browse/K8SPS-533) - The individual configuration for `xbcloud`, `xbstream` and `xtrabackup` tools specified directly for a backup or a restore object now fully overrides any default arguments set in the cluster's custom resource. + +* [K8SPS-535](https://perconadev.atlassian.net/browse/K8SPS-535) - Backup deletion operations no longer display an erroneous failure message when the backup is successfully removed from storage. + +* [K8SPS-539](https://perconadev.atlassian.net/browse/K8SPS-539) - Fixed the issue with excessive CPU utilization of the `ps-entrypoint.sh` recovery by adding a backoff mechanism to the file existence check. This improves cluster operation in environments where CPU resources are a concern. + +* [K8SPS-548](https://perconadev.atlassian.net/browse/K8SPS-548) - Improved Group Replication self-healing test and resolved a sporadic failure where a pod would not become ready after a full cluster crash. + +* [K8SPS-456](https://perconadev.atlassian.net/browse/K8SPS-456),[K8SPS-550](https://perconadev.atlassian.net/browse/K8SPS-550) - Fixed the issue with service accounts defined for HAProxy Pods via Custom Resource not being applied. + +* [K8SPS-556](https://perconadev.atlassian.net/browse/K8SPS-556) - Improved logging when telemetry server is unavailable by placing them to Debug level + +* [K8SPS-560](https://perconadev.atlassian.net/browse/K8SPS-560) - Fixed the issue with scheduled backups failing due to conflicting job names when multiple backups run concurrently. + +* [K8SPS-564](https://perconadev.atlassian.net/browse/K8SPS-564) - Fixed the issue with both HAProxy or Router being deployed when both are enabled by validating the configuration and either reporting the error or deploying only one proxy. This prevents unintended dual deployments. + +* [K8SPS-565](https://perconadev.atlassian.net/browse/K8SPS-565) - Restores now complete successfully when using an auto-generated secrets name for clusters. + +* [K8SPS-598](https://perconadev.atlassian.net/browse/K8SPS-598) - Fixed the issue with unneeded cluster restart after the Operator image update. The Operator now prevents these restarts by adding the logic to compare the Operator's new image version with the Custom Resource version, ensuring the init container image in the StatefulSet is only updated when necessary. + + +## Supported software + +--8<-- [start:software] + +The Operator was developed and tested with the following software: + +* Percona Server for MySQL 8.4.6-6.1 +* Percona Server for MySQL 8.0.43-34.1 +* XtraBackup 8.4.0-4.1 +* XtraBackup 8.0.35-34.1 +* MySQL Router 8.4.6-6.1 +* MySQL Router 8.0.43-34.1 +* HAProxy 2.8.15 +* Orchestrator 3.2.6-18 +* Percona Toolkit 3.7.0-2 +* PMM Client 3.4.1 +* Cert Manager 1.19.1 + +Other options may also work but have not been tested. + +--8<-- [end:software] + +## Supported platforms + +Percona Operators are designed for compatibility with all [CNCF-certified :octicons-link-external-16:](https://www.cncf.io/training/certification/software-conformance/) Kubernetes distributions. Our release process includes targeted testing and validation on major cloud provider platforms and OpenShift, as detailed below: + +--8<-- [start:platforms] + +* [Google Kubernetes Engine (GKE) :octicons-link-external-16:](https://cloud.google.com/kubernetes-engine) 1.31 - 1.33 +* [Amazon Elastic Container Service for Kubernetes (EKS) :octicons-link-external-16:](https://aws.amazon.com) 1.31 - 1.34 +* [OpenShift :octicons-link-external-16:](https://www.openshift.com) 4.16 - 4.20 +* [Minikube :octicons-link-external-16:](https://minikube.sigs.k8s.io/docs/) 1.37.0 with Kubernetes v1.34.0 + +--8<-- [end:platforms] + +This list only includes the platforms on which the Percona Operators are specifically tested as part of the release process. Compatibility with other Kubernetes flavors and versions depends on the backward compatibility provided by Kubernetes itself. + +## Percona certified images + +Find Percona's certified Docker images that you can use with Percona Operator for MySQL based on Percona Server for MySQL in the following table: + +--8<-- [start:images] + +Image | Digest | +|:---------------------------------------------------------|:-----------------------------------------------------------------| +| percona/percona-server-mysql-operator:1.0.0 | 36d82324630c7b2030c6f96df8dc8433726c1236f915e790825a54571dbca7f3 | +| percona/percona-server-mysql-operator:1.0.0 (ARM64) | fa9e3082d51d3c52f6cefbd1be129f4585effba7ca6221fd1234a481ddcd61a5 | +| percona/percona-server:8.4.6-6.1 | ea97c9df3e362728fc3819c28c841498f5a1765945b9556bc964b218b7d4dc97 | +| percona/percona-server:8.0.43-34.1 | 315efeac572c48cc6f118bba7e0b2545ad396142f60328f2db9620ae0ad57e45 | +| percona/percona-xtrabackup:8.4.0-4.1 | 840260525cf27e299b5edc7b48ad19caea03ad3ea7349000d0fc6de627b2fb10 | +| percona/percona-xtrabackup:8.0.35-34.1 | 967bafa0823c90aa8fa9c25a9012be36b0deef64e255294a09148d77ce6aea68 | +| percona/percona-mysql-router:8.4.6 | e083c632c118cd4af472d9030a7900401f4b338e069c91996fe33747b77be985 | +| percona/percona-mysql-router:8.0.43 | 3a420b803cd39c7c2a3ff414d45d1858df39599961339f5c02df0681f558ccdd | +| percona/percona-orchestrator:3.2.6-18 | a8a70f8882925b0a1a46893376e29af73646117b22e1eeb5a0a89876a907651f | +| percona/haproxy:2.8.15 | e64e468ac0ed2036ee164631469cc71821dcb84a6d568883f704d0eacaf84bb4 | +| percona/percona-toolkit:3.7.0-2 | b7a4a2ca71ebf2b35786ab614221cbefb032fd5dfb5c5a478efcdd23931dd70b | +| percona/pmm-client:3.4.1 | 1c59d7188f8404e0294f4bfb3d2c3600107f808a023668a170a6b8036c56619b | +| percona/pmm-client:3.4.1 (ARM64) | 2d23ba3e6f0ae88201be15272c5038d7c38f382ad8222cd93f094b5a20b854a5 | + + +--8<-- [end:images] + +[Find images for previous versions :octicons-link-external-16:](https://docs.percona.com/legacy-documentation/){.md-button} diff --git a/docs/ReleaseNotes/index.md b/docs/ReleaseNotes/index.md index 6705dba..ece06f3 100644 --- a/docs/ReleaseNotes/index.md +++ b/docs/ReleaseNotes/index.md @@ -1,5 +1,7 @@ # Percona Operator for MySQL Release Notes +* [Percona Operator for MySQL 1.0.0 ({{date.1_0_0}})](Kubernetes-Operator-for-PS-RN1.0.0.md) + * [Percona Operator for MySQL 0.12.0 ({{date.v0_12_0}})](Kubernetes-Operator-for-PS-RN0.12.0.md) * [Percona Operator for MySQL 0.11.0 ({{date.v0_11_0}})](Kubernetes-Operator-for-PS-RN0.11.0.md) diff --git a/docs/System-Requirements.md b/docs/System-Requirements.md index 2428814..dda9e4e 100644 --- a/docs/System-Requirements.md +++ b/docs/System-Requirements.md @@ -20,3 +20,13 @@ Nodes, with the following resources: * 2GB of RAM, * 2 CPU threads per Node for Pods provisioning, * at least 60GB of available storage for Persistent Volumes provisioning. + +## Installation guidelines + +Choose how you wish to install the Operator: + +* [with Helm](helm.md) +* [on Minikube](minikube.md) +* [on Google Kubernetes Engine (GKE)](gke.md) +* [on Amazon Elastic Kubernetes Service (AWS EKS)](eks.md) +* [in a Kubernetes-based environment](kubernetes.md) diff --git a/docs/architecture.md b/docs/architecture.md index bbc38d0..a213fa2 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -27,7 +27,7 @@ Each MySQL node in your cluster contains a complete copy of your data, replicate The Operator supports two replication types, each with different characteristics for performance, consistency, and availability. You [choose the replication type](operator.md#mysqlclustertype) when configuring your cluster. -### Asynchronous replication (Beta) +### Asynchronous replication (tech preview) With asynchronous replication, writes complete on the primary instance without waiting for replicas. After a write completes, the primary records the change in its binary log, and replicas apply these changes independently. @@ -38,7 +38,7 @@ With asynchronous replication, writes complete on the primary instance without w * **Consistency** - Eventual consistency: replicas may lag behind the primary instance, which can affect applications requiring real-time data. There is a risk that some transactions committed on the primary may be lost if it fails before replicas catch up. * **Write scaling** - Does not allow for horizontal write scaling; scaling writes relies on vertical scaling, which is increasing the resources (RAM, CPU) of the primary instance, rather than on adding more write nodes. * **Failover** - Orchestrator handles automatic primary election and replication topology recovery. -* **Status** - Currently in Beta and not recommended for production use. +* **Status** - Currently in tech preview and not recommended for production use. ### Group replication diff --git a/docs/assets/fragments/update-db-commands.txt b/docs/assets/fragments/update-db-commands.txt index d26186f..d935805 100644 --- a/docs/assets/fragments/update-db-commands.txt +++ b/docs/assets/fragments/update-db-commands.txt @@ -10,7 +10,7 @@ Select the command that matches your setup from the sections below. === "MySQL 8.4" - === "Asynchronous replication (Beta)" + === "Asynchronous replication (tech preview)" Asynchronous replication uses HAProxy and Orchestrator. It does not use MySQL Router. @@ -119,7 +119,7 @@ Select the command that matches your setup from the sections below. === "MySQL 8.0" - === "Asynchronous replication (Beta)" + === "Asynchronous replication (tech preview)" Asynchronous replication uses HAProxy and Orchestrator. It does not use MySQL Router. diff --git a/docs/assets/templates/pdf_cover_page.tpl b/docs/assets/templates/pdf_cover_page.tpl index 98c48e5..8714fa6 100644 --- a/docs/assets/templates/pdf_cover_page.tpl +++ b/docs/assets/templates/pdf_cover_page.tpl @@ -7,4 +7,4 @@ {% if config.site_description %}

{{ config.site_description }}

{% endif %} -

0.12.0 (September 23, 2025)

\ No newline at end of file +

1.0.0 (November 17, 2025)

\ No newline at end of file diff --git a/docs/change-replication-type.md b/docs/change-replication-type.md index 3a8e390..428ded2 100644 --- a/docs/change-replication-type.md +++ b/docs/change-replication-type.md @@ -1,6 +1,6 @@ # Change replication type -By default, Percona Operator for MySQL is deployed with [group-replication](architecture.md#replication-types-and-proxy-solutions) replication type and HAProxy enabled. +By default, Percona Operator for MySQL is deployed with [group-replication](architecture.md#group-replication) replication type and HAProxy enabled. You can change the proxy from HAProxy to MySQL Router or vice versa. Note that you can use MySQL router only with the group-replication replication type. diff --git a/docs/expose.md b/docs/expose.md index bd47032..e1fd553 100644 --- a/docs/expose.md +++ b/docs/expose.md @@ -3,7 +3,7 @@ The Operator provides different ways to access your MySQL database cluster. Each way uses Kubernetes [Service objects :octicons-link-external-16:](https://kubernetes.io/docs/ concepts/services-networking/service/) to expose the cluster to client applications. These Service objects are configured by the Operator. -This document shows you how to configure cluster exposure using options in the [Custom Resource manifest](operator.md). The available options depend on the [replication type](architecture.md#replication-types-and-proxy-solutions) of your cluster. +This document shows you how to configure cluster exposure using options in the [Custom Resource manifest](operator.md). The available options depend on the [replication type](architecture.md#replication-type-and-proxy-comparison) of your cluster. For a cluster with [Asynchronous :octicons-link-external-16:](https://dev.mysql.com/doc/refman/8.0/en/replication.html) replication, your options are: @@ -24,7 +24,7 @@ HAProxy provides load balancing and proxy service for your cluster. It's enabled To enable HAProxy, set the following in your `deploy/cr.yaml` manifest: -=== "Asynchronous replication (Beta)" +=== "Asynchronous replication (tech preview)" ```yaml mysql: diff --git a/docs/features.md b/docs/features.md new file mode 100644 index 0000000..f6299ed --- /dev/null +++ b/docs/features.md @@ -0,0 +1,78 @@ +# Features + +Percona Operator for MySQL is a Kubernetes-native controller that automatically manages the full lifecycle of Percona Server for MySQL clusters. The Operator offloads your teams from manual day-to-day database management operations empowering them to focus on tasks that matter instead. + +## Core capabilities + +Here's what the Operator brings to your infrastructure: + +### High availability and failover + +Never lose sleep over database downtime again. The Operator provides robust high availability through: + +- Automatic failover with intelligent primary election handled by the Orchestrator +- Multi-node deployments with anti-affinity rules to prevent single points of failure +- Health monitoring with automatic recovery from node failures +- Zero-downtime upgrades with rolling update strategies + +Choose between [group replication](architecture.md#group-replication) (GA) for stronger consistency or [asynchronous replication](architecture.md#asynchronous-replication-tech-preview) (tech preview) for lower latency—both with automatic failover capabilities. + +### Automated backup and restore flows + +Protect your data with Percona XtraBackup - an enterprise-grade backup solution for hot, non blocking backups. Run: + +- Scheduled backups with configurable retention policies +- On-demand backups for critical operations + +### Automated scaling and resource management + +Scale your database infrastructure effortlessly: + +- Horizontal scaling with automatic replica management +- Vertical scaling with resource limit adjustments +- Storage expansion with volume growth capabilities +- Load balancing through HAProxy or MySQL Router +- Resource optimization with intelligent pod placement + +### Security and compliance + +Keep your data secure with built-in security features: + +- Transport encryption with TLS/SSL support +- Data-at-rest encryption with key management integration +- Role-based access control with fine-grained permissions +- Secret management with Kubernetes-native secrets + +### Monitoring and observability + +Gain deep insights into your database performance: + +- Percona Monitoring and Management (PMM) integration for comprehensive monitoring +- Custom metrics and alerting capabilities +- Log aggregation and centralized logging +- Performance insights with query analysis +- Health dashboards for operational visibility + +## How Operator works + +The Operator extends Kubernetes with custom resources that represent your MySQL cluster's desired state. + +Here's what happens under the hood: + +1. You define your cluster requirements in a `PerconaServerMySQL` custom resource +2. The Operator watches for changes and reconciles the actual state with your desired state +3. Kubernetes resources are automatically created and managed (Pods, Services, StatefulSets, etc.) +4. The cluster self-heals by detecting and recovering from failures +5. Updates and scaling happen automatically based on your configuration changes + +This declarative approach means you describe what you want, not how to achieve it. The Operator handles all the complex orchestration, ensuring your database cluster always matches your specifications. + +[Explore the architecture :material-arrow-right:](architecture.md){ .md-button } + +## What's next? + +- [Quickstart guides](quickstart.md) - Get up and running in minutes +- [Installation options](kubernetes.md) - Deploy on your preferred platform +- [Backup and restore](backups.md) - Protect your data with automated backups +- [Monitoring setup](monitoring.md) - Gain visibility into your database performance +- [Security configuration](TLS.md) - Secure your database communications diff --git a/docs/index.md b/docs/index.md index 5da8b42..90b4265 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,16 +1,66 @@ # Percona Operator for MySQL based on Percona Server for MySQL -Percona Operator for MySQL is a custom controller that extends Kubernetes to automate the entire lifecycle of [Percona Server for MySQL :octicons-link-external-16:](https://www.percona.com/doc/percona-server/LATEST/index.html) clusters. The Operator makes it much simpler to run and reliably manage databases that traditionally require a lot of manual effort on Kubernetes. +Percona Operator for MySQL automates managing your MySQL databases on Kubernetes, making this process simple, reliable, and worry-free. Built on [Percona Server for MySQL :octicons-link-external-16:](https://www.percona.com/doc/percona-server/LATEST/index.html), the Operator brings enterprise-grade reliability, +performance, and observability right out of the box. -You declare how you want your Percona Server for MySQL cluster to run (e.g., "I need a 3-node Percona Server for MySQL cluster with backups enabled") using a special Kubernetes configuration file called a Custom Resource. The Operator then takes over. It constantly watches your cluster, understands its unique needs, and automatically performs tasks like deployment, scaling, handling failures, managing backups, and coordinating upgrades. +With Percona Operator for MySQL, you can quickly set up, scale, and protect your databases using easy-to-understand configuration files. The Operator takes care of everyday tasks such as deployment, backups, updates, and failover, so you can focus on your applications and your business, not on manual database management. -For you, this means reduced operational overhead, faster deployments, and a highly available, self-healing database infrastructure that can run consistently across any cloud environment. +!!! note "" + Percona Operator for MySQL is generally available with [**group replication**](architecture.md#group-replication). Asynchronous replication is still in tech preview and is not recommended for production yet. -[What's new in version {{release}}](ReleaseNotes/Kubernetes-Operator-for-PS-RN{{release}}.md){.md-button} +[Get started :material-arrow-down:](#get-started-today){ .md-button } +[See what's new in version {{release}}](ReleaseNotes/Kubernetes-Operator-for-PS-RN{{release}}.md){.md-button} +## Why choose Percona Operator for MySQL? -!!! note +### Deploy and manage with ease - Version {{ release }} of the [Percona Operator for MySQL :octicons-link-external-16:](https://github.com/percona/percona-server-mysql-operator) is **a tech preview release** and it is **not recommended for production environments**. **As of today, we recommend using** [Percona Operator for MySQL based on Percona XtraDB Cluster](https://www.percona.com/doc/kubernetes-operator-for-pxc/index.html), which is production-ready and contains everything you need to quickly and consistently deploy and scale MySQL clusters in a Kubernetes-based environment, on-premises or in the cloud. +No need for complicated scripts or manual setups. Define your database +requirements in a YAML file, and have the Operator automatically create, configure, +and manage your entire MySQL cluster. +### Built for reliability +From day one, your database comes with robust features you need for production: high availability, automated backups, built-in monitoring, and strong security. Everything is ready to use right out of the box. + +### Cloud-native by design + +Whether you use AWS, Google Cloud or any other Kubernetes platform, the Operator fits right in. Enjoy a consistent, cloud-native MySQL experience everywhere. + +## Get started today + +Set up Percona Operator for MySQL in just a few minutes. Start with our simple guides and begin managing your databases with confidence. + +[Quickstart guide :material-arrow-right:](quickstart.md){ .md-button } + +
+ +## :fontawesome-solid-magnifying-glass: Discover the Operator { .title } + +Learn about all the features Percona Operator for MySQL offers, how it works, and how it can help you. + +[Features :material-arrow-right:](features.md){ .md-button } + +
+ +## :material-security: Security you can trust { .title } + +Your data safety is our priority. See how our Operator protects your information with advanced security and encryption options. + +[Security features :material-arrow-right:](TLS.md){ .md-button } + +
+ +### :material-backup-restore: Backup management { .title } + +Learn how to keep your MySQL databases backed up and ready for a quick restore whenever you need it. + +[Backup options :material-arrow-right:](backups.md){ .md-button } + +
+ +### :material-frequently-asked-questions: Troubleshooting { .title } + +Need assistance? Our troubleshooting guides cover common questions and step-by-step solutions. + +[Diagnostics :material-arrow-right:](debug.md){.md-button} diff --git a/docs/operator.md b/docs/operator.md index 8fbccb7..7550c0a 100644 --- a/docs/operator.md +++ b/docs/operator.md @@ -137,7 +137,7 @@ A secret with TLS certificate generated for *external* communications, see [Tran ### `ignoreAnnotations` -The list of annotations [to be ignored](annotations.md#annotations-ignore) by the Operator. +The list of annotations [to be ignored](annotations.md#specifying-labels-and-annotations-ignored-by-the-operator) by the Operator. | Value type | Example | | ----------- | ---------- | @@ -145,7 +145,7 @@ The list of annotations [to be ignored](annotations.md#annotations-ignore) by th ### `ignoreLabels` -The list of labels [to be ignored](annotations.md#annotations-ignore) by the Operator. +The list of labels [to be ignored](annotations.md#specifying-labels-and-annotations-ignored-by-the-operator) by the Operator. | Value type | Example | | ----------- | ---------- | @@ -221,7 +221,7 @@ Allows users to set [orchestrator.size](#orchestratorsize) option to a value les ## Extended cert-manager configuration section -The `tls` section in the [deploy/cr.yaml :octicons-link-external-16:](https://github.com/percona/percona-server-mysql-operator/blob/v{{release}}/deploy/cr.yaml) file contains various configuration options for additional customization of the [TLS cert-manager](TLS.md#install-and-use-the-cert-manager). +The `tls` section in the [deploy/cr.yaml :octicons-link-external-16:](https://github.com/percona/percona-server-mysql-operator/blob/v{{release}}/deploy/cr.yaml) file contains various configuration options for additional customization of the [TLS cert-manager](tls-cert-manager.md). ### `tls.SANs` diff --git a/docs/router-conf.md b/docs/router-conf.md index 2221234..ce806ca 100644 --- a/docs/router-conf.md +++ b/docs/router-conf.md @@ -1,6 +1,6 @@ # MySQL Router Configuration -[MySQL Router :octicons-link-external-16:](https://dev.mysql.com/doc/mysql-router/8.0/en/) is lightweight middleware that provides transparent routing between your application and back-end MySQL servers. [MySQL Router is part of the Operator](architecture.md#design-overview) and is deployed during the installation. MySQL Router can be used as an alternative to [HAProxy based load balancing](haproxy-conf.md) when group replication between MySQL instances is turned on. +[MySQL Router :octicons-link-external-16:](https://dev.mysql.com/doc/mysql-router/8.0/en/) is lightweight middleware that provides transparent routing between your application and back-end MySQL servers. [MySQL Router is part of the Operator](architecture.md#components) and is deployed during the installation. MySQL Router can be used as an alternative to [HAProxy based load balancing](haproxy-conf.md) when group replication between MySQL instances is turned on. To use the Router, enable it and make sure that HAProxy is disabled. diff --git a/docs/tls-update.md b/docs/tls-update.md index 8a4d9f7..5f0f7c0 100644 --- a/docs/tls-update.md +++ b/docs/tls-update.md @@ -6,13 +6,11 @@ How your TLS certificates are updated depends on how they were created: * Certificates issued by the cert-manager are short-term. They are valid for 3 months. The cert-manager automatically reissues the certificates on schedule and without downtime. - ![image](assets/images/certificates.svg) - * Certificates manually generated by you are not renewed automatically. It is your responsibility to timely update them. Use the steps in the following sections for how to do it. ## Check your certificates for expiration -If you [use cert-manager](#install-and-use-the-cert-manager): +If you [use cert-manager](tls-cert-manager.md): 1. Check the necessary secrets names (`ps-cluster1-ssl` and `ps-cluster1-ca-cert` by default): diff --git a/mkdocs-base.yml b/mkdocs-base.yml index 988fa45..e41614d 100644 --- a/mkdocs-base.yml +++ b/mkdocs-base.yml @@ -259,6 +259,7 @@ nav: - Release Notes: - "Release notes index": ReleaseNotes/index.md + - ReleaseNotes/Kubernetes-Operator-for-PS-RN1.0.0.md - ReleaseNotes/Kubernetes-Operator-for-PS-RN0.12.0.md - ReleaseNotes/Kubernetes-Operator-for-PS-RN0.11.0.md - ReleaseNotes/Kubernetes-Operator-for-PS-RN0.10.0.md diff --git a/variables.yml b/variables.yml index a958e05..6753809 100644 --- a/variables.yml +++ b/variables.yml @@ -1,17 +1,17 @@ # Variables used in the documentation commandName: 'kubectl' -ps84recommended: '8.4.6-6' +ps84recommended: '8.4.6-6.1' pxb84recommended: '8.4.0-4.1' router84recommended: '8.4.6' -ps80recommended: '8.0.43-34' -pxb80recommended: '8.0.35-34' -routerrecommended: '8.0.43-34' +ps80recommended: '8.0.43-34.1' +pxb80recommended: '8.0.35-34.1' +routerrecommended: '8.0.43' haproxyrecommended: '2.8.15' orchestratorrecommended: '3.2.6-18' -ptrecommended: '3.7.0' -pmm3recommended: '3.4.0' -certmanagerrecommended: '1.18.2' +ptrecommended: '3.7.0-2' +pmm3recommended: '3.4.1' +certmanagerrecommended: '1.19.1' gkerecommended: '1.33' #For monitoring @@ -23,8 +23,9 @@ year: '2025' # Release related variables -release: '0.12.0' +release: '1.0.0' date: + 1_0_0: '2025-11-17' v0_12_0: '2025-09-23' v0_11_0: '2025-09-01' v0_10_0: '2025-06-04'