43 lines
No EOL
1.6 KiB
Text
43 lines
No EOL
1.6 KiB
Text
|
|
[[_operator-upgrade-strategy]]
|
|
=== Upgrade strategy
|
|
|
|
You can configure how the operator performs {project_name} upgrades. You can choose from the following upgrade strategies.
|
|
|
|
* `recreate`: This is the default strategy. The operator removes all {project_name} replicas, optionally creates a backup
|
|
and then creates the replicas based on a newer {project_name} image. This strategy is suitable for major upgrades as
|
|
a single {project_name} version is accessing the underlying database. The downside is {project_name} needs to be shut
|
|
down during the upgrade.
|
|
* `rolling`: The operator removes one replica at a time and creates it again based on a newer {project_name} image. This
|
|
ensures a zero-downtime upgrade but is more suitable for minor version upgrades that do not require database migration
|
|
since the database is accessed by multiple {project_name} versions concurrently. Automatic backups are not supported
|
|
with this strategy.
|
|
|
|
.Example YAML file for a Keycloak custom resource
|
|
```yaml
|
|
apiVersion: keycloak.org/v1alpha1
|
|
kind: Keycloak
|
|
metadata:
|
|
name: example-keycloak
|
|
labels:
|
|
ifeval::[{project_community}==true]
|
|
app: keycloak
|
|
endif::[]
|
|
ifeval::[{project_product}==true]
|
|
app: sso
|
|
endif::[]
|
|
spec:
|
|
instances: 2
|
|
migration:
|
|
strategy: recreate
|
|
backups:
|
|
enabled: True
|
|
externalAccess:
|
|
enabled: True
|
|
```
|
|
|
|
ifeval::[{project_community}==true]
|
|
.Additional Resources
|
|
|
|
* For more information on rolling updates, see the https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#rolling-update[Updating StatefulSets manual].
|
|
endif::[] |