Anvil Operator Changelog
2025-05-23
- Allow platform server JVM options to be configured
- Allow Kubernetes secrets to be used with relevant platformServer.config fields
- Tidy up configuration of legacy downlinks
- Move
platformServerConfig
toplatformServers.config
2025-05-08
This release improves the documentation and validation of the Operator configuration. Several configuration settings have been reorganized and renamed to improve consistency and maintainability.
See the Operator Cluster Configuration Documentation for a detailed description of the new configuration settings.
Configuration Changes
Required Settings
versionTag
is now required to explicitly specify the Anvil version running in the cluster.anvilOrigin
is now a required top-level setting (moved fromplatformServerConfig
).
Top-level Settings
platformServerVersionTagOverride
has been removed, useversionTag
instead.platformServerConfig.anvilOrigin
→anvilOrigin
.platformServerConfig.appOrigin
→appOrigin
.- This now defaults to
<anvilOrigin>/apps/{{id-or-alias}}
.
- This now defaults to
licenceKeySecret
→licenceKeySecretName
.- The secret key is now always
"value"
.
- The secret key is now always
Downlinks Configuration
All downlink-related settings have been consolidated under the downlinks
section:
enableDynamicDownlinks
→downlinks.mode
.- To disable downlinks, set
downlinks.mode="disabled"
.
- To disable downlinks, set
dynamicDownlinkMode
→downlinks.mode
.includeDownlinkBaseImages
→downlinks.includeBaseImages
.downlinkBaseImages
→downlinks.baseImages
.downlinkRegistryCerts
→downlinks.regisryCerts
.extraDynamicDownlinkVolumes
→downlinks.extraVolumes
.
Backup Configuration
backup.ssh.remoteDirectory
→backup.ssh.directory
.backup.nfs.path
→backup.nfs.export
.
Storage Configuration
All storage-related settings now use consistent PVC config naming:
storage.*.persistentVolumeClaim
→storage.*.pvc.existingClaimName
.storage.*.size
→storage.*.pvc.size
.storage.*.storageClass
→storage.*.pvc.storageClass
.
Other Renamed Settings
enablePdfRenderer
→pdfRenderer.enabled
.secrets.*
→secretNames.*
.metrics.grafana.adminPasswordSecret
→metrics.grafana.adminPasswordSecretName
.- The secret key is now always
"value"
.
- The secret key is now always
tempo.image
andtempo.version
→tempo.image
.- Now includes both the image and version tag.
pods.nodeAffinity
→pods.affinity.node
.- Applies to all subfields of
pods
too.
- Applies to all subfields of
pods.podAffinity
→pods.affinity.pod
.- Applies to all subfields of
pods
too.
- Applies to all subfields of
Other Changes
Backup Path Changes
backup.nfs.directory
andbackup.pvc.directory
no longer require the"/anvil-backups"
prefix.- This prefix is now automatically added to the SSH server configuration.
- If using custom NFS or PVC directories, remove this prefix from your settings.
- The same applies to
restore.nfs.directory
andrestore.pvc.directory
.
S3 Backup Changes
- S3 backups now strip all leading
/
’s from the prefix. - If no
pathPrefix
is set, backups will be stored in the root folder of the bucket. - Note: The new operator cannot restore backups made by old operators if
pathPrefix="/"
.
PVC Behavior Changes
- All PVCs are now
Immutable
. - Once created, the operator will never attempt to update them.
- This standardizes behavior across all PVC types.
Pod Environment Variables
- Environment variables are now sorted alphabetically.
- Changing the order of environment variables no longer triggers pod recreation. This prevents the need for downtime for future upgrades.
- Note: Upgrading to this version will cause downtime as platform servers restart due to environment variable reordering.
Configuration Validation
The operator now validates configurations before applying them. Invalid configurations will raise errors for unknown or missing fields.
Example of validation errors:
# An invalid configuration:
spec:
platformServerConfig:
anvilOrigin: "https://anvil.example.com/"
# Will raise these errors:
# 1. versionTag field required
# 2. anvilOrigin field required
# 3. platformserverConfig.anvilOrigin is no longer supported,
# use anvilOrigin outside platformServerConfig instead
2025-04-05
- Add Loki for log monitoring
2025-03-31
- Add Podman metrics to Prometheus
- Perform a no-downtime rolling upgrade if the licence key is updated
- Fix issue that prevented platform servers from draining during an upgrade
- Logging improvements
- Restore PVCs to the same size as they were when backed up
- Fix issues with pod affinity
Do you still have questions?
Our Community Forum is full of helpful information and Anvil experts.