Helm upgrade fails with failed to replace object: StatefulSet.apps "oneuptime-clickhouse-shard0" #495

Closed
opened 2026-04-05 16:20:04 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @jose-yougov on 4/28/2025

Describe the bug
From version 7.0.4078, the Helm upgrade fails with the following error:

Error: UPGRADE FAILED: failed to replace object: StatefulSet.apps "status-portal-clickhouse-shard0" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas', 'ordinals', 'template', 'updateStrategy', 'persistentVolumeClaimRetentionPolicy' and 'minReadySeconds' are forbidden

To Reproduce
Steps to reproduce the behavior:

  1. Set the OneUptime version to 7.0.4078 or greater on the values file and pin the helm command to --version 7.0.4078
  2. Run helm upgrade --install --namespace monitoring values.yml oneuptime oneuptime/oneuptime --version 7.0.4078 --set externalPostgres.database=xxx --set externalPostgres.username=xxx --set externalPostgres.password=xxx --force
  3. See error

Error: UPGRADE FAILED: failed to replace object: StatefulSet.apps "status-portal-clickhouse-shard0" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas', 'ordinals', 'template', 'updateStrategy', 'persistentVolumeClaimRetentionPolicy' and 'minReadySeconds' are forbidden

Expected behavior
Helm would upgrade the current oneuptime release without any issues.

Deployment Type
Self hosted

Additional context

values.yml

image:
  tag: "7.0.4078"

global: 
  storageClass: "gp2"

host: oneuptime.my.domain.net

deployment:
  replicaCount: 1

# External Postgres Configuration
externalPostgres: 
  host: xyz.my.domain.net
  port: 5432
  ssl:
    enabled: true

postgresql:
  enabled: false 

redis:
  enabled: true
  image:
    tag: "7.2.4-debian-12-r9"

clickhouse:
  enabled: true

httpProtocol: https

nginx:
  service:
    type: ClusterIP

oneuptimeIngress:
  enabled: false

tolerations:
  - effect: NoSchedule
    key: role
    operator: Equal
    value: shared-services
nodeSelector:
  instance: k8s
  role: shared-services

Helm command:

helm upgrade --install --namespace monitoring values.yml oneuptime oneuptime/oneuptime --version 7.0.4078 --set externalPostgres.database=xxx --set externalPostgres.username=xxx --set externalPostgres.password=xxx --force

*Originally created by @jose-yougov on 4/28/2025* **Describe the bug** From version 7.0.4078, the Helm upgrade fails with the following error: `Error: UPGRADE FAILED: failed to replace object: StatefulSet.apps "status-portal-clickhouse-shard0" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas', 'ordinals', 'template', 'updateStrategy', 'persistentVolumeClaimRetentionPolicy' and 'minReadySeconds' are forbidden` **To Reproduce** Steps to reproduce the behavior: 1. Set the OneUptime version to 7.0.4078 or greater on the values file and pin the helm command to --version 7.0.4078 2. Run `helm upgrade --install --namespace monitoring values.yml oneuptime oneuptime/oneuptime --version 7.0.4078 --set externalPostgres.database=xxx --set externalPostgres.username=xxx --set externalPostgres.password=xxx --force` 3. See error `Error: UPGRADE FAILED: failed to replace object: StatefulSet.apps "status-portal-clickhouse-shard0" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas', 'ordinals', 'template', 'updateStrategy', 'persistentVolumeClaimRetentionPolicy' and 'minReadySeconds' are forbidden` **Expected behavior** Helm would upgrade the current oneuptime release without any issues. **Deployment Type** Self hosted **Additional context** values.yml ```` image: tag: "7.0.4078" global: storageClass: "gp2" host: oneuptime.my.domain.net deployment: replicaCount: 1 # External Postgres Configuration externalPostgres: host: xyz.my.domain.net port: 5432 ssl: enabled: true postgresql: enabled: false redis: enabled: true image: tag: "7.2.4-debian-12-r9" clickhouse: enabled: true httpProtocol: https nginx: service: type: ClusterIP oneuptimeIngress: enabled: false tolerations: - effect: NoSchedule key: role operator: Equal value: shared-services nodeSelector: instance: k8s role: shared-services ```` Helm command: `helm upgrade --install --namespace monitoring values.yml oneuptime oneuptime/oneuptime --version 7.0.4078 --set externalPostgres.database=xxx --set externalPostgres.username=xxx --set externalPostgres.password=xxx --force`
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/oneuptime#495