From cb73479371547bbc58f9f6c2b216867d6a98a4f1 Mon Sep 17 00:00:00 2001 From: Donato Mastronardi Date: Sun, 19 Apr 2026 19:03:21 +0200 Subject: [PATCH] trying with helm --- uptime/kustomization.yaml | 6 + uptime/values.yaml | 240 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 246 insertions(+) create mode 100644 uptime/kustomization.yaml create mode 100644 uptime/values.yaml diff --git a/uptime/kustomization.yaml b/uptime/kustomization.yaml new file mode 100644 index 0000000..de476d8 --- /dev/null +++ b/uptime/kustomization.yaml @@ -0,0 +1,6 @@ +helmCharts: +- name: uptime-kuma + repo: https://helm.irsigler.cloud + releaseName: uptime + namespace: uptime + valuesFile: values.yaml \ No newline at end of file diff --git a/uptime/values.yaml b/uptime/values.yaml new file mode 100644 index 0000000..d792aec --- /dev/null +++ b/uptime/values.yaml @@ -0,0 +1,240 @@ +# Default values for uptime-kuma. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +image: + repository: louislam/uptime-kuma + pullPolicy: IfNotPresent + # Overrides the image tag whose default is the chart appVersion. + tag: "2.1.1" + +imagePullSecrets: [] +nameOverride: "" +fullnameOverride: "" +# -- A custom namespace to override the default namespace for the deployed resources. +namespaceOverride: "" + +# If this option is set to false a StateFulset instead of a Deployment is used +useDeploy: true + +serviceAccount: + # Specifies whether a service account should be created + create: false + # Annotations to add to the service account + annotations: {} + # The name of the service account to use. + # If not set and create is true, a name is generated using the fullname template + name: "" + +podAnnotations: {} +podLabels: + {} + # app: uptime-kuma +podEnv: [] + # optional additional environment variables + # - name: "A_VARIABLE" + # value: "a-value" + +podSecurityContext: + {} + # fsGroup: 2000 + +securityContext: + {} + # capabilities: + # drop: + # - ALL + # readOnlyRootFilesystem: true + # runAsNonRoot: true + # runAsUser: 1000 + +service: + type: ClusterIP + port: 3001 + nodePort: + loadBalancerIP: + annotations: {} + +ingress: + enabled: true + # className: "" + extraLabels: + cert-manager.io/cluster-issuer: letsencrypt-prod + # vhost: uptime-kuma.company.corp + annotations: + nginx.ingress.kubernetes.io/proxy-read-timeout: "3600" + nginx.ingress.kubernetes.io/proxy-send-timeout: "3600" + hosts: + - host: uptime.portfoli.it + paths: + - path: / + pathType: Prefix + + tls: + - secretName: uptime-ingress-tls + hosts: + - uptime.portfoli.it + # - secretName: chart-example-tls + # hosts: + # - chart-example.local + +resources: + requests: + memory: 128Mi + cpu: 100m + limits: + memory: 256Mi + cpu: 250m + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # limits: + # cpu: 100m + # memory: 128Mi + # requests: + # cpu: 100m + # memory: 128Mi + +nodeSelector: {} + +tolerations: [] + +affinity: {} + +livenessProbe: + enabled: true + failureThreshold: 3 + # Uptime-Kuma recommends to configure a delay of 180 seconds until the server fully started. + # https://github.com/louislam/uptime-kuma/blob/ae224f9e188b1fc32ed8729818710975589cdce7/extra/healthcheck.go#L3 + initialDelaySeconds: 180 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 2 + # The NodeJS Version of this Healthcheck is no longer supported, therefore we don't specify a node command. + # https://github.com/louislam/uptime-kuma/blob/ae224f9e188b1fc32ed8729818710975589cdce7/extra/healthcheck.js#L6 + exec: + command: + - "extra/healthcheck" + +readinessProbe: + enabled: true + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 1 + failureThreshold: 3 + successThreshold: 1 + exec: + command: [] + httpGet: + path: / + port: 3001 + scheme: HTTP + httpHeaders: [] + +volume: + enabled: true + accessMode: ReadWriteOnce + size: 4Gi + # If you want to use a storage class other than the default, specify it here. + storageClassName: "" + # Reuse your own pre-existing PVC. + existingClaim: "" + +# -- A list of additional volumes to be added to the pod +additionalVolumes: + [] + # - name: "additional-certificates" + # configMap: + # name: "additional-certificates" + # optional: true + # defaultMode: 420 + +# -- A list of additional volumeMounts to be added to the pod +additionalVolumeMounts: + [] + # - name: "additional-certificates" + # mountPath: "/etc/ssl/certs/additional/additional-ca.pem" + # readOnly: true + # subPath: "additional-ca.pem" + +strategy: + type: RollingUpdate + +# External MySQL/MariaDB database configuration +# Configure this section to connect to your own MySQL or MariaDB database. +# You can use any MySQL-compatible provider of your choice. +externalDatabase: + type: "mariadb" + enabled: false + hostname: "" + port: 3306 + database: uptime_kuma + username: uptime_kuma + password: "" + # Use existing secret for database credentials + existingSecret: "" + existingSecretPasswordKey: "password" + existingSecretUsernameKey: "username" + +# Prometheus ServiceMonitor configuration +serviceMonitor: + enabled: false + # -- Scrape interval. If not set, the Prometheus default scrape interval is used. + interval: 60s + # -- Timeout if metrics can't be retrieved in given time interval + scrapeTimeout: 10s + # -- Scheme to use when scraping, e.g. http (default) or https. + scheme: ~ + # -- TLS configuration to use when scraping, only applicable for scheme https. + tlsConfig: {} + # -- Prometheus [RelabelConfigs] to apply to samples before scraping + relabelings: [] + # -- Prometheus [MetricRelabelConfigs] to apply to samples before ingestion + metricRelabelings: [] + # -- Prometheus ServiceMonitor selector, only select Prometheus's with these + # labels (if not set, select any Prometheus) + selector: {} + + # -- Namespace where the ServiceMonitor resource should be created, default is + # the same as the release namespace + namespace: ~ + # -- Additional labels to add to the ServiceMonitor + additionalLabels: {} + # -- Additional annotations to add to the ServiceMonitor + annotations: {} + + # -- BasicAuth credentials for scraping metrics, use API token and any string for username + # basicAuth: + # username: "metrics" + # password: "" + +# -- Use this option to set a custom DNS policy to the created deployment +dnsPolicy: "" + +# -- Use this option to set custom DNS configurations to the created deployment +dnsConfig: {} + +# -- Use this option to set custom PriorityClass to the created deployment +# ref: https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/#priorityclass +priorityClassName: "" + +# -- Create a NetworkPolicy +networkPolicy: + # -- Enable/disable Network Policy + enabled: false + # -- Enable/disable Ingress policy type + ingress: true + # -- Enable/disable Egress policy type + egress: true + # -- Allow incoming connections only from specific Pods + # When set to true, the geoserver will accept connections from any source. + # When false, only Pods with the label {{ include "geoserver.fullname" . }}-client=true will have network access + allowExternal: true + # -- Selects particular namespaces for which all Pods are allowed as ingress sources + namespaceSelector: {} + # matchLabels: + # role: frontend + # matchExpressions: + # - {key: role, operator: In, values: [frontend]} +