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 to platformServers.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 from platformServerConfig).

Top-level Settings

  • platformServerVersionTagOverride has been removed, use versionTag instead.
  • platformServerConfig.anvilOriginanvilOrigin.
  • platformServerConfig.appOriginappOrigin.
    • This now defaults to <anvilOrigin>/apps/{{id-or-alias}}.
  • licenceKeySecretlicenceKeySecretName.
    • The secret key is now always "value".

All downlink-related settings have been consolidated under the downlinks section:

  • enableDynamicDownlinksdownlinks.mode.
    • To disable downlinks, set downlinks.mode="disabled".
  • dynamicDownlinkModedownlinks.mode.
  • includeDownlinkBaseImagesdownlinks.includeBaseImages.
  • downlinkBaseImagesdownlinks.baseImages.
  • downlinkRegistryCertsdownlinks.regisryCerts.
  • extraDynamicDownlinkVolumesdownlinks.extraVolumes.

Backup Configuration

  • backup.ssh.remoteDirectorybackup.ssh.directory.
  • backup.nfs.pathbackup.nfs.export.

Storage Configuration

All storage-related settings now use consistent PVC config naming:

  • storage.*.persistentVolumeClaimstorage.*.pvc.existingClaimName.
  • storage.*.sizestorage.*.pvc.size.
  • storage.*.storageClassstorage.*.pvc.storageClass.

Other Renamed Settings

  • enablePdfRendererpdfRenderer.enabled.
  • secrets.*secretNames.*.
  • metrics.grafana.adminPasswordSecretmetrics.grafana.adminPasswordSecretName.
    • The secret key is now always "value".
  • tempo.image and tempo.versiontempo.image.
    • Now includes both the image and version tag.
  • pods.nodeAffinitypods.affinity.node.
    • Applies to all subfields of pods too.
  • pods.podAffinitypods.affinity.pod.
    • Applies to all subfields of pods too.

Other Changes

Backup Path Changes

  • backup.nfs.directory and backup.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 and restore.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.