From f836369c0144689ade2a1c9add968e89bf88ca5f Mon Sep 17 00:00:00 2001 From: Simon Larsen Date: Fri, 21 Nov 2025 18:40:47 +0000 Subject: [PATCH] feat: remove Kubernetes Ingress support and update related documentation --- HelmChart/Public/oneuptime/README.md | 13 +++--- .../Public/oneuptime/templates/ingress.yaml | 41 +---------------- .../Public/oneuptime/templates/nginx.yaml | 4 +- HelmChart/Public/oneuptime/values.schema.json | 45 ------------------- HelmChart/Public/oneuptime/values.yaml | 16 +------ VERSION_PREFIX | 2 +- 6 files changed, 11 insertions(+), 110 deletions(-) diff --git a/HelmChart/Public/oneuptime/README.md b/HelmChart/Public/oneuptime/README.md index ea2983bab2..84bf4894c0 100644 --- a/HelmChart/Public/oneuptime/README.md +++ b/HelmChart/Public/oneuptime/README.md @@ -76,7 +76,7 @@ The following table lists the configurable parameters of the OneUptime chart and | Parameter | Description | Default | Change Required | |---------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------|-----------------| | `global.storageClass` | Storage class to be used for all persistent volumes | `nil` | 🚨 | -| `host` | Hostname for the ingress | `localhost` | 🚨 | +| `host` | Primary hostname served by OneUptime (used for routing and certificate management) | `localhost` | 🚨 | | `ssl.provision` | Automatically provision a Let's Encrypt certificate for the primary host (requires public access on ports 80 and 443) | `false` | | | `httpProtocol` | If the server is hosted with SSL/TLS cert then change this value to https | `http` | 🚨 | | `oneuptimeSecret` | Value used to define ONEUPTIME_SECRET | `nil` | | @@ -94,7 +94,7 @@ The following table lists the configurable parameters of the OneUptime chart and | `autoscaling.targetCPUUtilizationPercentage` | Target CPU utilization percentage | `80` | | | `autoscaling.targetMemoryUtilizationPercentage` | Target memory utilization percentage | `80` | | | `nodeEnvironment` | Node environment (please dont change this unless you're doing local development) | `production` | | -| `nginx.service.type` | nginx service type | `LoadBalancer` | | +| `nginx.service.type` | nginx service type (exposes the bundled OneUptime ingress gateway) | `LoadBalancer` | | | `nginx.service.loadBalancerIP` | nginx service load balancer IP | `nil` | | | `deployment.replicaCount` | Number of replicas | `1` | | | `probes..name` | Probe name | `` | | @@ -119,11 +119,6 @@ The following table lists the configurable parameters of the OneUptime chart and | `tolerations` | Tolerations. Please refer to Kubernetes documentation on how to use them. | `[]` | | | `affinity` | Affinity. Please refer to Kubernetes documentation on how to use them. | `{}` | | | `extraTemplates` | Extra templates to be added to the deployment | `[]` | | -| `oneuptimeIngress.enabled` | Enable ingress | `true` | | -| `oneuptimeIngress.annotations` | Ingress annotations | `{}` | | -| `oneuptimeIngress.hosts` | Ingress hosts | `[]` | | -| `oneuptimeIngress.tls` | Ingress TLS. Please refer to values.yaml to set these | `[]` | | -| `oneuptimeIngress.className` | Ingress class name. Change this to your cloud providers ingress class | `nginx` | | | `script.workflowScriptTimeoutInMs` | Timeout for workflow script | `5000` | | @@ -426,6 +421,10 @@ clickhouse: We release frequently, sometimes multiple times a day. It's usually safe to upgrade to the latest version. Any breaking changes will be documented in the release notes. Please make sure you read the release notes before upgrading. +## Upgrade Notes + +- **9.0.0 (2025-11-21)**: Kubernetes Ingress objects are no longer created. OneUptime already ships an ingress gateway container that manages TLS certificates, status page domains, and routing. Remove any `oneuptimeIngress` overrides from your values files and ensure `nginx.service.type` matches how you expose the ingress gateway (for example `LoadBalancer`). + ## Chart Dependencies We use these charts as dependencies for some components. You dont need to install them separately. Please read the readme for these individual charts to understand the configuration options. diff --git a/HelmChart/Public/oneuptime/templates/ingress.yaml b/HelmChart/Public/oneuptime/templates/ingress.yaml index 9e03343732..0a8d8b308b 100644 --- a/HelmChart/Public/oneuptime/templates/ingress.yaml +++ b/HelmChart/Public/oneuptime/templates/ingress.yaml @@ -1,40 +1 @@ -{{- if and $.Values.oneuptimeIngress.enabled $.Values.nginx.enabled }} - -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: {{ printf "%s-%s" $.Release.Name "ingress" }} - namespace: {{ $.Release.Namespace }} - labels: - app: {{ printf "%s-%s" $.Release.Name "ingress" }} - app.kubernetes.io/part-of: oneuptime - app.kubernetes.io/managed-by: Helm - appname: oneuptime - annotations: - {{- with $.Values.oneuptimeIngress.annotations }} - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - ingressClassName: {{ $.Values.oneuptimeIngress.className }} - {{- if $.Values.oneuptimeIngress.tls.enabled }} - tls: - {{- range $key, $val := $.Values.oneuptimeIngress.tls.hosts }} - - hosts: - - {{ $val.host | quote }} - secretName: {{ $val.secretName }} - {{- end }} - {{- end }} - rules: - {{- range $key, $val := $.Values.oneuptimeIngress.hosts }} - - host: {{ $val | quote }} - http: - paths: - - path: / - pathType: Prefix - backend: - service: - name: {{ printf "%s-%s" $.Release.Name "nginx" }} - port: - name: "oneuptime-http" - {{- end }} -{{- end }} +{{- /* Kubernetes Ingress support has been removed. This template intentionally renders nothing. */ -}} diff --git a/HelmChart/Public/oneuptime/templates/nginx.yaml b/HelmChart/Public/oneuptime/templates/nginx.yaml index c13764a1b5..d1c84eee27 100644 --- a/HelmChart/Public/oneuptime/templates/nginx.yaml +++ b/HelmChart/Public/oneuptime/templates/nginx.yaml @@ -196,11 +196,11 @@ spec: name: statuspage-ssl selector: app: {{ printf "%s-%s" $.Release.Name "nginx" }} - {{- if and ($.Values.nginx.service.type) (eq $.Values.oneuptimeIngress.enabled false) }} + {{- if $.Values.nginx.service.type }} type: {{ $.Values.nginx.service.type }} {{- else }} type: ClusterIP - {{- end}} + {{- end }} --- # OneUptime nginx autoscaler diff --git a/HelmChart/Public/oneuptime/values.schema.json b/HelmChart/Public/oneuptime/values.schema.json index 84cfc635c3..3219a7c33a 100644 --- a/HelmChart/Public/oneuptime/values.schema.json +++ b/HelmChart/Public/oneuptime/values.schema.json @@ -970,51 +970,6 @@ }, "additionalProperties": false }, - "oneuptimeIngress": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - }, - "annotations": { - "type": ["object", "null"] - }, - "className": { - "type": "string" - }, - "hosts": { - "type": ["array", "null"], - "items": { - "type": "string" - } - }, - "tls": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - }, - "hosts": { - "type": ["array", "null"], - "items": { - "type": "object", - "properties": { - "host": { - "type": "string" - }, - "secretName": { - "type": "string" - } - }, - "additionalProperties": false - } - } - }, - "additionalProperties": false - } - }, - "additionalProperties": false - }, "script": { "type": "object", "properties": { diff --git a/HelmChart/Public/oneuptime/values.yaml b/HelmChart/Public/oneuptime/values.yaml index 31aaac67bf..dcc141bce1 100644 --- a/HelmChart/Public/oneuptime/values.yaml +++ b/HelmChart/Public/oneuptime/values.yaml @@ -60,6 +60,7 @@ metalLb: # - 51.158.55.153/32 # List of IP addresses of all the servers in the cluster. nginx: + # OneUptime ships with its own ingress gateway container, so Kubernetes Ingress resources are not required. enabled: true replicaCount: 1 disableTelemetryCollection: false @@ -421,21 +422,6 @@ letsEncrypt: # Example: "hello@yourcompany.com" email: -oneuptimeIngress: - enabled: false - annotations: - # Please change this to the ingress class name for your cluster. If you use a cloud provider, this is usually the default ingress class name. - # If you dont have nginx ingress controller installed, please install it by going to https://kubernetes.github.io/ingress-nginx/deploy/ - className: nginx # Required. Please change this to the ingress class name for your cluster. If you use a cloud provider, this is usually the default ingress class name. - hosts: # List of hosts for the ingress. Please change this to your hosts - # - "oneuptime.com" # Host 1 - # - "www.oneuptime.com" # Host 2 - tls: - enabled: false - hosts: - # - host: "oneuptime.com" # Host 1 - # secretName: "oneuptime-tls" - script: workflowScriptTimeoutInMs: 5000 diff --git a/VERSION_PREFIX b/VERSION_PREFIX index b293f64d6c..a80905028c 100644 --- a/VERSION_PREFIX +++ b/VERSION_PREFIX @@ -1 +1 @@ -8.0 \ No newline at end of file +9.0 \ No newline at end of file