Files
infrastructure/clusters/cl01tl/manifests/argo-workflows/Cluster-argo-workflows-postgresql-18-cluster.yaml

2227 lines
69 KiB
YAML

apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: argo-workflows-postgresql-18-cluster
namespace: argo-workflows
labels:
helm.sh/chart: postgres-18-cluster-7.9.1
app.kubernetes.io/name: argo-workflows-postgresql-18
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/part-of: argo-workflows
app.kubernetes.io/version: "7.9.1"
app.kubernetes.io/managed-by: Helm
spec:
instances: 3
imageName: "ghcr.io/cloudnative-pg/postgresql:18.3-standard-trixie"
imagePullPolicy: IfNotPresent
postgresUID: 26
postgresGID: 26
storage:
size: 10Gi
storageClass: local-path
walStorage:
size: 2Gi
storageClass: local-path
resources:
limits:
hugepages-2Mi: 256Mi
requests:
cpu: 100m
memory: 256Mi
affinity:
enablePodAntiAffinity: true
topologyKey: kubernetes.io/hostname
primaryUpdateMethod: switchover
primaryUpdateStrategy: unsupervised
logLevel: info
enableSuperuserAccess: false
enablePDB: true
postgresql:
parameters:
hot_standby_feedback: "on"
max_slot_wal_keep_size: 2000MB
shared_buffers: 128MB
monitoring:
enablePodMonitor: true
disableDefaultQueries: false
plugins:
- name: barman-cloud.cloudnative-pg.io
enabled: true
isWALArchiver: true
parameters:
barmanObjectName: "argo-workflows-postgresql-18-backup-garage-local"
serverName: "argo-workflows-postgresql-18-backup-1"
bootstrap:
recovery:
database: app
source: argo-workflows-postgresql-18-backup-1
externalClusters:
- name: argo-workflows-postgresql-18-backup-1
plugin:
name: barman-cloud.cloudnative-pg.io
enabled: true
isWALArchiver: false
parameters:
barmanObjectName: "argo-workflows-postgresql-18-recovery"
serverName: argo-workflows-postgresql-18-backup-1
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: argo-events-webhook
labels:
helm.sh/chart: argo-events-2.4.20
app.kubernetes.io/name: argo-events-events-webhook
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-events
rules:
- apiGroups:
- ""
resources:
- secrets
verbs:
- get
- list
- create
- update
- delete
- patch
- watch
- apiGroups:
- ""
resources:
- configmaps
verbs:
- get
- list
- watch
- apiGroups:
- apps
resources:
- deployments
verbs:
- get
- list
- apiGroups:
- admissionregistration.k8s.io
resources:
- validatingwebhookconfigurations
verbs:
- get
- list
- create
- update
- delete
- patch
- watch
- apiGroups:
- argoproj.io
resources:
- eventbus
- eventsources
- sensors
verbs:
- get
- list
- watch
- apiGroups:
- rbac.authorization.k8s.io
resources:
- clusterroles
verbs:
- get
- list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: argo-workflows-admin
labels:
helm.sh/chart: argo-workflows-1.0.2
app.kubernetes.io/name: argo-workflows-server
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: server
app: server
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
rbac.authorization.k8s.io/aggregate-to-admin: "true"
rules:
- apiGroups:
- argoproj.io
resources:
- workflows
- workflows/finalizers
- workfloweventbindings
- workfloweventbindings/finalizers
- workflowtemplates
- workflowtemplates/finalizers
- cronworkflows
- cronworkflows/finalizers
- clusterworkflowtemplates
- clusterworkflowtemplates/finalizers
- workflowtasksets
- workflowtasksets/finalizers
- workflowtaskresults
- workflowtaskresults/finalizers
- workflowartifactgctasks
- workflowartifactgctasks/finalizers
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: argo-workflows-argo-events-controller-manager
labels:
helm.sh/chart: argo-events-2.4.20
app.kubernetes.io/name: argo-events-controller-manager
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: controller-manager
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-events
rules:
- apiGroups:
- ""
resources:
- events
verbs:
- create
- patch
- apiGroups:
- coordination.k8s.io
resources:
- leases
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- argoproj.io
resources:
- sensors
- sensors/finalizers
- sensors/status
- eventsources
- eventsources/finalizers
- eventsources/status
- eventbus
- eventbus/finalizers
- eventbus/status
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
- apiGroups:
- ""
resources:
- pods
- pods/exec
- configmaps
- services
- persistentvolumeclaims
verbs:
- create
- get
- list
- watch
- update
- patch
- delete
- apiGroups:
- ""
resources:
- secrets
verbs:
- create
- get
- list
- update
- patch
- delete
- apiGroups:
- apps
resources:
- deployments
- statefulsets
verbs:
- create
- get
- list
- watch
- update
- patch
- delete
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: argo-workflows-crd-install
labels:
helm.sh/chart: argo-workflows-1.0.2
app.kubernetes.io/name: argo-workflows-crd-install
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: crds
app: crds
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
annotations:
"helm.sh/hook": pre-install,pre-upgrade
"helm.sh/hook-weight": "-10"
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
rules:
- apiGroups: ["apiextensions.k8s.io"]
resources: ["customresourcedefinitions"]
verbs: ["create", "get", "list", "patch", "update"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: argo-workflows-edit
labels:
helm.sh/chart: argo-workflows-1.0.2
app.kubernetes.io/name: argo-workflows-server
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: server
app: server
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
rbac.authorization.k8s.io/aggregate-to-edit: "true"
rules:
- apiGroups:
- argoproj.io
resources:
- workflows
- workflows/finalizers
- workfloweventbindings
- workfloweventbindings/finalizers
- workflowtemplates
- workflowtemplates/finalizers
- cronworkflows
- cronworkflows/finalizers
- clusterworkflowtemplates
- clusterworkflowtemplates/finalizers
- workflowtasksets
- workflowtasksets/finalizers
- workflowtaskresults
- workflowtaskresults/finalizers
- workflowartifactgctasks
- workflowartifactgctasks/finalizers
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: argo-workflows-server-cluster-template
labels:
helm.sh/chart: argo-workflows-1.0.2
app.kubernetes.io/name: argo-workflows-server
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: server
app: server
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
rules:
- apiGroups:
- argoproj.io
resources:
- clusterworkflowtemplates
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: argo-workflows-server
labels:
helm.sh/chart: argo-workflows-1.0.2
app.kubernetes.io/name: argo-workflows-server
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: server
app: server
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
rules:
- apiGroups:
- ""
resources:
- configmaps
- events
verbs:
- get
- watch
- list
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- list
- watch
- delete
- apiGroups:
- ""
resources:
- pods/log
verbs:
- get
- list
- apiGroups:
- ""
resources:
- secrets
resourceNames:
- sso
verbs:
- get
- apiGroups:
- ""
resources:
- secrets
verbs:
- create
- apiGroups:
- ""
resources:
- secrets
verbs:
- get
- apiGroups:
- ""
resources:
- events
verbs:
- watch
- create
- patch
- apiGroups:
- ""
resources:
- secrets
resourceNames:
- argo-workflows-postgresql-18-cluster-app
- argo-workflows-postgresql-18-cluster-app
verbs:
- get
- apiGroups:
- argoproj.io
resources:
- eventsources
- sensors
- workflows
- workfloweventbindings
- workflowtemplates
- cronworkflows
verbs:
- create
- get
- list
- watch
- update
- patch
- delete
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: argo-workflows-view
labels:
helm.sh/chart: argo-workflows-1.0.2
app.kubernetes.io/name: argo-workflows-workflow-controller
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: workflow-controller
app: workflow-controller
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
rbac.authorization.k8s.io/aggregate-to-view: "true"
rules:
- apiGroups:
- argoproj.io
resources:
- workflows
- workflows/finalizers
- workfloweventbindings
- workfloweventbindings/finalizers
- workflowtemplates
- workflowtemplates/finalizers
- cronworkflows
- cronworkflows/finalizers
- clusterworkflowtemplates
- clusterworkflowtemplates/finalizers
- workflowtasksets
- workflowtasksets/finalizers
- workflowtaskresults
- workflowtaskresults/finalizers
- workflowartifactgctasks
- workflowartifactgctasks/finalizers
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: argo-workflows-workflow-controller-cluster-template
labels:
helm.sh/chart: argo-workflows-1.0.2
app.kubernetes.io/name: argo-workflows-workflow-controller
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: workflow-controller
app: workflow-controller
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
rules:
- apiGroups:
- argoproj.io
resources:
- clusterworkflowtemplates
- clusterworkflowtemplates/finalizers
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: argo-workflows-workflow-controller
labels:
helm.sh/chart: argo-workflows-1.0.2
app.kubernetes.io/name: argo-workflows-workflow-controller
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: workflow-controller
app: workflow-controller
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
rules:
- apiGroups:
- ""
resources:
- pods
verbs:
- create
- get
- list
- watch
- update
- patch
- delete
- apiGroups:
- ""
resources:
- pods/exec
verbs:
- create
- apiGroups:
- ""
resources:
- configmaps
- namespaces
verbs:
- get
- watch
- list
- apiGroups:
- ""
resources:
- persistentvolumeclaims
- persistentvolumeclaims/finalizers
verbs:
- create
- update
- delete
- get
- apiGroups:
- argoproj.io
resources:
- workflows
- workflows/finalizers
- workflowtasksets
- workflowtasksets/finalizers
- workflowtasksets/status
- workflowartifactgctasks
verbs:
- get
- list
- watch
- update
- patch
- delete
- create
- apiGroups:
- argoproj.io
resources:
- workflowtemplates
- workflowtemplates/finalizers
verbs:
- get
- list
- watch
- apiGroups:
- argoproj.io
resources:
- workflowtaskresults
- workflowtaskresults/finalizers
verbs:
- list
- watch
- deletecollection
- apiGroups:
- argoproj.io
resources:
- cronworkflows
- cronworkflows/finalizers
verbs:
- get
- list
- watch
- update
- patch
- delete
- apiGroups:
- ""
resources:
- events
verbs:
- create
- patch
- apiGroups:
- ""
resources:
- serviceaccounts
verbs:
- get
- list
- apiGroups:
- "policy"
resources:
- poddisruptionbudgets
verbs:
- create
- get
- delete
- apiGroups:
- ""
resources:
- secrets
resourceNames:
- argo-workflows-postgresql-18-cluster-app
- argo-workflows-postgresql-18-cluster-app
verbs:
- get
- apiGroups:
- coordination.k8s.io
resources:
- leases
verbs:
- create
- apiGroups:
- coordination.k8s.io
resources:
- leases
resourceNames:
- workflow-controller
- workflow-controller-lease
verbs:
- get
- watch
- update
- patch
- delete
- apiGroups:
- ""
resources:
- secrets
verbs:
- get
resourceNames:
- argo-workflows-agent-ca-certificates
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: argo-workflows-argo-events-controller-manager
labels:
helm.sh/chart: argo-events-2.4.20
app.kubernetes.io/name: argo-events-controller-manager
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: controller-manager
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-events
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: argo-workflows-argo-events-controller-manager
subjects:
- kind: ServiceAccount
name: argo-workflows-argo-events-controller-manager
namespace: "argo-workflows"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: argo-workflows-argo-events-events-webhook
labels:
helm.sh/chart: argo-events-2.4.20
app.kubernetes.io/name: argo-events-events-webhook
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-events
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: argo-events-webhook
subjects:
- kind: ServiceAccount
name: argo-workflows-argo-events-events-webhook
namespace: "argo-workflows"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: argo-workflows-crd-install
labels:
helm.sh/chart: argo-workflows-1.0.2
app.kubernetes.io/name: argo-workflows-crd-install
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: crds
app: crds
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
annotations:
"helm.sh/hook": pre-install,pre-upgrade
"helm.sh/hook-weight": "-10"
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
subjects:
- kind: ServiceAccount
name: argo-workflows-crd-install
namespace: argo-workflows
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: argo-workflows-crd-install
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: argo-workflows-server-cluster-template
labels:
helm.sh/chart: argo-workflows-1.0.2
app.kubernetes.io/name: argo-workflows-server
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: server
app: server
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: argo-workflows-server-cluster-template
subjects:
- kind: ServiceAccount
name: argo-workflows-server
namespace: "argo-workflows"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: argo-workflows-server
labels:
helm.sh/chart: argo-workflows-1.0.2
app.kubernetes.io/name: argo-workflows-server
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: server
app: server
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: argo-workflows-server
subjects:
- kind: ServiceAccount
name: argo-workflows-server
namespace: "argo-workflows"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: argo-workflows-workflow-controller-cluster-template
labels:
helm.sh/chart: argo-workflows-1.0.2
app.kubernetes.io/name: argo-workflows-workflow-controller
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: workflow-controller
app: workflow-controller
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: argo-workflows-workflow-controller-cluster-template
subjects:
- kind: ServiceAccount
name: argo-workflows-workflow-controller
namespace: "argo-workflows"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: argo-workflows-workflow-controller
labels:
helm.sh/chart: argo-workflows-1.0.2
app.kubernetes.io/name: argo-workflows-workflow-controller
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: workflow-controller
app: workflow-controller
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: argo-workflows-workflow-controller
subjects:
- kind: ServiceAccount
name: argo-workflows-workflow-controller
namespace: "argo-workflows"
---
apiVersion: v1
kind: ConfigMap
metadata:
name: argo-workflows-argo-events-controller-manager
namespace: "argo-workflows"
labels:
helm.sh/chart: argo-events-2.4.20
app.kubernetes.io/name: argo-events-controller-manager
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-events
data:
controller-config.yaml: |
eventBus:
nats:
versions:
- version: latest
natsStreamingImage: nats-streaming:latest
metricsExporterImage: natsio/prometheus-nats-exporter:latest
- version: 0.22.1
natsStreamingImage: nats-streaming:0.22.1
metricsExporterImage: natsio/prometheus-nats-exporter:0.8.0
jetstream:
# Default JetStream settings, could be overridden by EventBus JetStream specs
settings: |
# https://docs.nats.io/running-a-nats-service/configuration#jetstream
# Only configure "max_memory_store" or "max_file_store", do not set "store_dir" as it has been hardcoded.
max_memory_store: -1
max_file_store: -1
# The default properties of the streams to be created in this JetStream service
streamConfig: |
maxMsgs: 1e+06
maxAge: 72h
maxBytes: 1GB
replicas: 3
duplicates: 300s
retention: 0
discard: 0
versions:
- version: latest
natsImage: nats:2.10.10
metricsExporterImage: natsio/prometheus-nats-exporter:0.14.0
configReloaderImage: natsio/nats-server-config-reloader:0.14.0
startCommand: /nats-server
- version: 2.8.1
natsImage: nats:2.8.1
metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1
configReloaderImage: natsio/nats-server-config-reloader:0.7.0
startCommand: /nats-server
- version: 2.8.1-alpine
natsImage: nats:2.8.1-alpine
metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1
configReloaderImage: natsio/nats-server-config-reloader:0.7.0
startCommand: nats-server
- version: 2.8.2
natsImage: nats:2.8.2
metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1
configReloaderImage: natsio/nats-server-config-reloader:0.7.0
startCommand: /nats-server
- version: 2.8.2-alpine
natsImage: nats:2.8.2-alpine
metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1
configReloaderImage: natsio/nats-server-config-reloader:0.7.0
startCommand: nats-server
- version: 2.9.1
natsImage: nats:2.9.1
metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1
configReloaderImage: natsio/nats-server-config-reloader:0.7.0
startCommand: /nats-server
- version: 2.9.12
natsImage: nats:2.9.12
metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1
configReloaderImage: natsio/nats-server-config-reloader:0.7.0
startCommand: /nats-server
- version: 2.9.16
natsImage: nats:2.9.16
metricsExporterImage: natsio/prometheus-nats-exporter:0.9.1
configReloaderImage: natsio/nats-server-config-reloader:0.7.0
startCommand: /nats-server
- version: 2.10.10
natsImage: nats:2.10.10
metricsExporterImage: natsio/prometheus-nats-exporter:0.14.0
configReloaderImage: natsio/nats-server-config-reloader:0.14.0
startCommand: /nats-server
---
apiVersion: v1
kind: ConfigMap
metadata:
name: argo-workflows-workflow-controller-configmap
namespace: "argo-workflows"
labels:
helm.sh/chart: argo-workflows-1.0.2
app.kubernetes.io/name: argo-workflows-cm
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: workflow-controller
app: workflow-controller
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
data:
config: |
metricsConfig:
enabled: true
path: /metrics
port: 9090
ignoreErrors: false
secure: false
persistence:
archive: true
connectionPool:
maxIdleConns: 100
maxOpenConns: 0
nodeStatusOffLoad: true
postgresql:
database: app
host: argo-workflows-postgresql-18-cluster-rw
passwordSecret:
key: password
name: argo-workflows-postgresql-18-cluster-app
port: 5432
ssl: false
sslMode: disable
tableName: app
userNameSecret:
key: username
name: argo-workflows-postgresql-18-cluster-app
sso:
issuer: https://authentik.alexlebens.net/application/o/argo-workflows/
clientId:
name: argo-workflows-oidc-secret
key: client
clientSecret:
name: argo-workflows-oidc-secret
key: secret
redirectUrl: "https://argo-workflows.alexlebens.net/oauth2/callback"
rbac:
enabled: false
scopes:
- openid
- email
- profile
nodeEvents:
enabled: true
workflowEvents:
enabled: true
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: eventbus.argoproj.io
annotations:
"helm.sh/resource-policy": keep
spec:
group: argoproj.io
names:
kind: EventBus
listKind: EventBusList
plural: eventbus
shortNames:
- eb
singular: eventbus
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
properties:
apiVersion:
type: string
kind:
type: string
metadata:
type: object
spec:
type: object
x-kubernetes-preserve-unknown-fields: true
status:
type: object
x-kubernetes-preserve-unknown-fields: true
required:
- metadata
- spec
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: eventsources.argoproj.io
annotations:
"helm.sh/resource-policy": keep
spec:
group: argoproj.io
names:
kind: EventSource
listKind: EventSourceList
plural: eventsources
shortNames:
- es
singular: eventsource
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
properties:
apiVersion:
type: string
kind:
type: string
metadata:
type: object
spec:
type: object
x-kubernetes-preserve-unknown-fields: true
status:
type: object
x-kubernetes-preserve-unknown-fields: true
required:
- metadata
- spec
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: sensors.argoproj.io
annotations:
"helm.sh/resource-policy": keep
spec:
group: argoproj.io
names:
kind: Sensor
listKind: SensorList
plural: sensors
shortNames:
- sn
singular: sensor
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
properties:
apiVersion:
type: string
kind:
type: string
metadata:
type: object
spec:
type: object
x-kubernetes-preserve-unknown-fields: true
status:
type: object
x-kubernetes-preserve-unknown-fields: true
required:
- metadata
- spec
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: argo-workflows-argo-events-controller-manager
namespace: "argo-workflows"
labels:
helm.sh/chart: argo-events-2.4.20
app.kubernetes.io/name: argo-events-controller-manager
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: controller-manager
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-events
app.kubernetes.io/version: "v1.9.10"
spec:
selector:
matchLabels:
app.kubernetes.io/name: argo-events-controller-manager
app.kubernetes.io/instance: argo-workflows
revisionHistoryLimit: 5
replicas: 1
template:
metadata:
annotations:
checksum/config: 24732be38752faf20ed2282b13be0303398dc62ae15f3a9522d809bbd81e729a
labels:
helm.sh/chart: argo-events-2.4.20
app.kubernetes.io/name: argo-events-controller-manager
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: controller-manager
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-events
app.kubernetes.io/version: "v1.9.10"
spec:
containers:
- name: controller-manager
image: quay.io/argoproj/argo-events:v1.9.10
imagePullPolicy: IfNotPresent
args:
- controller
env:
- name: ARGO_EVENTS_IMAGE
value: quay.io/argoproj/argo-events:v1.9.10
- name: NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
volumeMounts:
- name: config
mountPath: /etc/argo-events
ports:
- name: metrics
containerPort: 7777
protocol: TCP
- name: probe
containerPort: 8081
protocol: TCP
livenessProbe:
httpGet:
port: probe
path: /healthz
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 1
successThreshold: 1
failureThreshold: 3
readinessProbe:
httpGet:
port: probe
path: /readyz
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 1
successThreshold: 1
failureThreshold: 3
resources:
requests:
cpu: 10m
memory: 128Mi
serviceAccountName: argo-workflows-argo-events-controller-manager
volumes:
- name: config
configMap:
name: argo-workflows-argo-events-controller-manager
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: argo-workflows-server
namespace: "argo-workflows"
labels:
helm.sh/chart: argo-workflows-1.0.2
app.kubernetes.io/name: argo-workflows-server
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: server
app: server
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
app.kubernetes.io/version: "v4.0.2"
spec:
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/name: argo-workflows-server
app.kubernetes.io/instance: argo-workflows
template:
metadata:
labels:
helm.sh/chart: argo-workflows-1.0.2
app.kubernetes.io/name: argo-workflows-server
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: server
app: server
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
app.kubernetes.io/version: "v4.0.2"
annotations:
checksum/cm: db4ab0f942dba3d65db57efee732f4130b7911f0d27012328c0ba0579407969f
spec:
serviceAccountName: argo-workflows-server
containers:
- name: argo-server
image: "quay.io/argoproj/argocli:v4.0.2"
imagePullPolicy: Always
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: false
runAsNonRoot: true
args:
- server
- --configmap=argo-workflows-workflow-controller-configmap
- "--auth-mode=sso"
- "--secure=false"
- "--loglevel"
- "info"
- "--gloglevel"
- "0"
- "--log-format"
- "text"
ports:
- name: web
containerPort: 2746
readinessProbe:
httpGet:
path: /
port: 2746
scheme: HTTP
initialDelaySeconds: 10
periodSeconds: 20
env:
- name: IN_CLUSTER
value: "true"
- name: ARGO_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: ARGO_BASE_HREF
value: "/"
resources: {}
volumeMounts:
- name: tmp
mountPath: /tmp
terminationGracePeriodSeconds: 30
volumes:
- name: tmp
emptyDir: {}
nodeSelector:
kubernetes.io/os: linux
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: argo-workflows-workflow-controller
namespace: "argo-workflows"
labels:
helm.sh/chart: argo-workflows-1.0.2
app.kubernetes.io/name: argo-workflows-workflow-controller
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: workflow-controller
app: workflow-controller
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
app.kubernetes.io/version: "v4.0.2"
spec:
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/name: argo-workflows-workflow-controller
app.kubernetes.io/instance: argo-workflows
template:
metadata:
labels:
helm.sh/chart: argo-workflows-1.0.2
app.kubernetes.io/name: argo-workflows-workflow-controller
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: workflow-controller
app: workflow-controller
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
app.kubernetes.io/version: "v4.0.2"
spec:
serviceAccountName: argo-workflows-workflow-controller
containers:
- name: controller
image: "quay.io/argoproj/workflow-controller:v4.0.2"
imagePullPolicy: Always
command: ["workflow-controller"]
args:
- "--configmap"
- "argo-workflows-workflow-controller-configmap"
- "--executor-image"
- "quay.io/argoproj/argoexec:v4.0.2"
- "--loglevel"
- "info"
- "--gloglevel"
- "0"
- "--log-format"
- "text"
- "--workflow-workers"
- "2"
- "--workflow-ttl-workers"
- "1"
- "--pod-cleanup-workers"
- "1"
- "--cron-workflow-workers"
- "1"
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
runAsNonRoot: true
env:
- name: ARGO_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: LEADER_ELECTION_IDENTITY
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: LEADER_ELECTION_DISABLE
value: "true"
resources:
requests:
cpu: 10m
memory: 128Mi
ports:
- name: metrics
containerPort: 9090
- containerPort: 6060
livenessProbe:
failureThreshold: 3
httpGet:
path: /healthz
port: 6060
initialDelaySeconds: 90
periodSeconds: 60
timeoutSeconds: 30
nodeSelector:
kubernetes.io/os: linux
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: events-webhook
namespace: "argo-workflows"
labels:
helm.sh/chart: argo-events-2.4.20
app.kubernetes.io/name: argo-events-events-webhook
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: events-webhook
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-events
app.kubernetes.io/version: "v1.9.10"
spec:
selector:
matchLabels:
app.kubernetes.io/name: argo-events-events-webhook
app.kubernetes.io/instance: argo-workflows
revisionHistoryLimit: 5
replicas: 1
template:
metadata:
labels:
helm.sh/chart: argo-events-2.4.20
app.kubernetes.io/name: argo-events-events-webhook
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: events-webhook
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-events
app.kubernetes.io/version: "v1.9.10"
spec:
containers:
- name: events-webhook
image: quay.io/argoproj/argo-events:v1.9.10
imagePullPolicy: IfNotPresent
args:
- webhook-service
env:
- name: NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: PORT
value: "443"
ports:
- name: webhook
containerPort: 443
protocol: TCP
livenessProbe:
tcpSocket:
port: webhook
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 1
successThreshold: 1
failureThreshold: 3
readinessProbe:
tcpSocket:
port: webhook
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 1
successThreshold: 1
failureThreshold: 3
resources:
requests:
cpu: 10m
memory: 128Mi
serviceAccountName: argo-workflows-argo-events-events-webhook
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: argo-workflows-oidc-secret
namespace: argo-workflows
labels:
app.kubernetes.io/name: argo-workflows-oidc-secret
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/part-of: argo-workflows
spec:
secretStoreRef:
kind: ClusterSecretStore
name: vault
data:
- secretKey: secret
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /authentik/oidc/argo-workflows
metadataPolicy: None
property: secret
- secretKey: client
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /authentik/oidc/argo-workflows
metadataPolicy: None
property: client
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: argo-workflows-postgresql-18-backup-garage-local-secret
namespace: argo-workflows
labels:
helm.sh/chart: postgres-18-cluster-7.9.1
app.kubernetes.io/name: argo-workflows-postgresql-18
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/part-of: argo-workflows
app.kubernetes.io/version: "7.9.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: argo-workflows-postgresql-18-backup-garage-local-secret
spec:
secretStoreRef:
kind: ClusterSecretStore
name: vault
data:
- secretKey: ACCESS_REGION
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /garage/home-infra/postgres-backups
metadataPolicy: None
property: ACCESS_REGION
- secretKey: ACCESS_KEY_ID
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /garage/home-infra/postgres-backups
metadataPolicy: None
property: ACCESS_KEY_ID
- secretKey: ACCESS_SECRET_KEY
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /garage/home-infra/postgres-backups
metadataPolicy: None
property: ACCESS_SECRET_KEY
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: argo-workflows-postgresql-18-recovery-secret
namespace: argo-workflows
labels:
helm.sh/chart: postgres-18-cluster-7.9.1
app.kubernetes.io/name: argo-workflows-postgresql-18
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/part-of: argo-workflows
app.kubernetes.io/version: "7.9.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: argo-workflows-postgresql-18-recovery-secret
spec:
secretStoreRef:
kind: ClusterSecretStore
name: vault
data:
- secretKey: ACCESS_REGION
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /garage/home-infra/postgres-backups
metadataPolicy: None
property: ACCESS_REGION
- secretKey: ACCESS_KEY_ID
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /garage/home-infra/postgres-backups
metadataPolicy: None
property: ACCESS_KEY_ID
- secretKey: ACCESS_SECRET_KEY
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /garage/home-infra/postgres-backups
metadataPolicy: None
property: ACCESS_SECRET_KEY
---
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: argo-workflows
namespace: argo-workflows
labels:
app.kubernetes.io/name: argo-workflows
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/part-of: argo-workflows
spec:
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: traefik-gateway
namespace: traefik
hostnames:
- argo-workflows.alexlebens.net
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- group: ''
kind: Service
name: argo-workflows-server
port: 2746
weight: 100
---
apiVersion: batch/v1
kind: Job
metadata:
name: argo-workflows-crd-install
namespace: argo-workflows
labels:
helm.sh/chart: argo-workflows-1.0.2
app.kubernetes.io/name: argo-workflows-crd-install
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: crds
app: crds
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
annotations:
"helm.sh/hook": pre-install,pre-upgrade
"helm.sh/hook-weight": "-5"
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
spec:
template:
metadata:
labels:
helm.sh/chart: argo-workflows-1.0.2
app.kubernetes.io/name: argo-workflows-crd-install
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: crds
app: crds
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
spec:
serviceAccountName: argo-workflows-crd-install
containers:
- name: apply
image: "registry.k8s.io/kubectl:v1.35.2"
env:
command:
- kubectl
- apply
- --server-side
- --force-conflicts
- -f
- "https://raw.githubusercontent.com/argoproj/argo-helm/argo-workflows-1.0.2/charts/argo-workflows/files/crds/full/argoproj.io_clusterworkflowtemplates.yaml"
- -f
- "https://raw.githubusercontent.com/argoproj/argo-helm/argo-workflows-1.0.2/charts/argo-workflows/files/crds/full/argoproj.io_cronworkflows.yaml"
- -f
- "https://raw.githubusercontent.com/argoproj/argo-helm/argo-workflows-1.0.2/charts/argo-workflows/files/crds/full/argoproj.io_workflowartifactgctasks.yaml"
- -f
- "https://raw.githubusercontent.com/argoproj/argo-helm/argo-workflows-1.0.2/charts/argo-workflows/files/crds/full/argoproj.io_workfloweventbindings.yaml"
- -f
- "https://raw.githubusercontent.com/argoproj/argo-helm/argo-workflows-1.0.2/charts/argo-workflows/files/crds/full/argoproj.io_workflows.yaml"
- -f
- "https://raw.githubusercontent.com/argoproj/argo-helm/argo-workflows-1.0.2/charts/argo-workflows/files/crds/full/argoproj.io_workflowtaskresults.yaml"
- -f
- "https://raw.githubusercontent.com/argoproj/argo-helm/argo-workflows-1.0.2/charts/argo-workflows/files/crds/full/argoproj.io_workflowtasksets.yaml"
- -f
- "https://raw.githubusercontent.com/argoproj/argo-helm/argo-workflows-1.0.2/charts/argo-workflows/files/crds/full/argoproj.io_workflowtemplates.yaml"
restartPolicy: Never
backoffLimit: 3
---
apiVersion: barmancloud.cnpg.io/v1
kind: ObjectStore
metadata:
name: argo-workflows-postgresql-18-backup-garage-local
namespace: argo-workflows
labels:
helm.sh/chart: postgres-18-cluster-7.9.1
app.kubernetes.io/name: argo-workflows-postgresql-18
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/part-of: argo-workflows
app.kubernetes.io/version: "7.9.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: argo-workflows-postgresql-18-backup-garage-local
spec:
retentionPolicy: 7d
instanceSidecarConfiguration:
env:
- name: AWS_REQUEST_CHECKSUM_CALCULATION
value: when_required
- name: AWS_RESPONSE_CHECKSUM_VALIDATION
value: when_required
configuration:
destinationPath: s3://postgres-backups/cl01tl/argo-workflows/argo-workflows-postgresql-18-cluster
endpointURL: http://garage-main.garage:3900
s3Credentials:
accessKeyId:
name: argo-workflows-postgresql-18-backup-garage-local-secret
key: ACCESS_KEY_ID
secretAccessKey:
name: argo-workflows-postgresql-18-backup-garage-local-secret
key: ACCESS_SECRET_KEY
region:
name: argo-workflows-postgresql-18-backup-garage-local-secret
key: ACCESS_REGION
---
apiVersion: barmancloud.cnpg.io/v1
kind: ObjectStore
metadata:
name: "argo-workflows-postgresql-18-recovery"
namespace: argo-workflows
labels:
helm.sh/chart: postgres-18-cluster-7.9.1
app.kubernetes.io/name: argo-workflows-postgresql-18
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/part-of: argo-workflows
app.kubernetes.io/version: "7.9.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: "argo-workflows-postgresql-18-recovery"
spec:
configuration:
destinationPath: s3://postgres-backups/cl01tl/argo-workflows/argo-workflows-postgresql-18-cluster
endpointURL: http://garage-main.garage:3900
wal:
compression: snappy
maxParallel: 1
data:
compression: snappy
jobs: 1
s3Credentials:
accessKeyId:
name: argo-workflows-postgresql-18-recovery-secret
key: ACCESS_KEY_ID
secretAccessKey:
name: argo-workflows-postgresql-18-recovery-secret
key: ACCESS_SECRET_KEY
region:
name: argo-workflows-postgresql-18-recovery-secret
key: ACCESS_REGION
---
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: argo-workflows-postgresql-18-alert-rules
namespace: argo-workflows
labels:
helm.sh/chart: postgres-18-cluster-7.9.1
app.kubernetes.io/name: argo-workflows-postgresql-18
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/part-of: argo-workflows
app.kubernetes.io/version: "7.9.1"
app.kubernetes.io/managed-by: Helm
spec:
groups:
- name: cloudnative-pg/argo-workflows-postgresql-18
rules:
- alert: CNPGClusterBackendsWaitingWarning
annotations:
summary: CNPG Cluster a backend is waiting for longer than 5 minutes.
description: |-
Pod {{ $labels.pod }}
has been waiting for longer than 5 minutes
expr: |
cnpg_backends_waiting_total{namespace="argo-workflows"} > 300
for: 1m
labels:
severity: warning
namespace: argo-workflows
cnpg_cluster: argo-workflows-postgresql-18-cluster
- alert: CNPGClusterDatabaseDeadlockConflictsWarning
annotations:
summary: CNPG Cluster has over 10 deadlock conflicts.
description: |-
There are over 10 deadlock conflicts in
{{ $labels.pod }}
expr: |
cnpg_pg_stat_database_deadlocks{namespace="argo-workflows"} > 10
for: 1m
labels:
severity: warning
namespace: argo-workflows
cnpg_cluster: argo-workflows-postgresql-18-cluster
- alert: CNPGClusterHACritical
annotations:
summary: CNPG Cluster has no standby replicas!
description: |-
CloudNativePG Cluster "{{`{{`}} $labels.job {{`}}`}}" has no ready standby replicas. Your cluster at a severe
risk of data loss and downtime if the primary instance fails.
The primary instance is still online and able to serve queries, although connections to the `-ro` endpoint
will fail. The `-r` endpoint os operating at reduced capacity and all traffic is being served by the main.
This can happen during a normal fail-over or automated minor version upgrades in a cluster with 2 or less
instances. The replaced instance may need some time to catch-up with the cluster primary instance.
This alarm will be always trigger if your cluster is configured to run with only 1 instance. In this
case you may want to silence it.
runbook_url: https://github.com/cloudnative-pg/charts/blob/main/charts/cluster/docs/runbooks/CNPGClusterHACritical.md
expr: |
max by (job) (cnpg_pg_replication_streaming_replicas{namespace="argo-workflows"} - cnpg_pg_replication_is_wal_receiver_up{namespace="argo-workflows"}) < 1
for: 5m
labels:
severity: critical
namespace: argo-workflows
cnpg_cluster: argo-workflows-postgresql-18-cluster
- alert: CNPGClusterHAWarning
annotations:
summary: CNPG Cluster less than 2 standby replicas.
description: |-
CloudNativePG Cluster "{{`{{`}} $labels.job {{`}}`}}" has only {{`{{`}} $value {{`}}`}} standby replicas, putting
your cluster at risk if another instance fails. The cluster is still able to operate normally, although
the `-ro` and `-r` endpoints operate at reduced capacity.
This can happen during a normal fail-over or automated minor version upgrades. The replaced instance may
need some time to catch-up with the cluster primary instance.
This alarm will be constantly triggered if your cluster is configured to run with less than 3 instances.
In this case you may want to silence it.
runbook_url: https://github.com/cloudnative-pg/charts/blob/main/charts/cluster/docs/runbooks/CNPGClusterHAWarning.md
expr: |
max by (job) (cnpg_pg_replication_streaming_replicas{namespace="argo-workflows"} - cnpg_pg_replication_is_wal_receiver_up{namespace="argo-workflows"}) < 2
for: 5m
labels:
severity: warning
namespace: argo-workflows
cnpg_cluster: argo-workflows-postgresql-18-cluster
- alert: CNPGClusterHighConnectionsCritical
annotations:
summary: CNPG Instance maximum number of connections critical!
description: |-
CloudNativePG Cluster "argo-workflows/argo-workflows-postgresql-18-cluster" instance {{`{{`}} $labels.pod {{`}}`}} is using {{`{{`}} $value {{`}}`}}% of
the maximum number of connections.
runbook_url: https://github.com/cloudnative-pg/charts/blob/main/charts/cluster/docs/runbooks/CNPGClusterHighConnectionsCritical.md
expr: |
sum by (pod) (cnpg_backends_total{namespace="argo-workflows", pod=~"argo-workflows-postgresql-18-cluster-([1-9][0-9]*)$"}) / max by (pod) (cnpg_pg_settings_setting{name="max_connections", namespace="argo-workflows", pod=~"argo-workflows-postgresql-18-cluster-([1-9][0-9]*)$"}) * 100 > 95
for: 5m
labels:
severity: critical
namespace: argo-workflows
cnpg_cluster: argo-workflows-postgresql-18-cluster
- alert: CNPGClusterHighConnectionsWarning
annotations:
summary: CNPG Instance is approaching the maximum number of connections.
description: |-
CloudNativePG Cluster "argo-workflows/argo-workflows-postgresql-18-cluster" instance {{`{{`}} $labels.pod {{`}}`}} is using {{`{{`}} $value {{`}}`}}% of
the maximum number of connections.
runbook_url: https://github.com/cloudnative-pg/charts/blob/main/charts/cluster/docs/runbooks/CNPGClusterHighConnectionsWarning.md
expr: |
sum by (pod) (cnpg_backends_total{namespace="argo-workflows", pod=~"argo-workflows-postgresql-18-cluster-([1-9][0-9]*)$"}) / max by (pod) (cnpg_pg_settings_setting{name="max_connections", namespace="argo-workflows", pod=~"argo-workflows-postgresql-18-cluster-([1-9][0-9]*)$"}) * 100 > 80
for: 5m
labels:
severity: warning
namespace: argo-workflows
cnpg_cluster: argo-workflows-postgresql-18-cluster
- alert: CNPGClusterHighReplicationLag
annotations:
summary: CNPG Cluster high replication lag
description: |-
CloudNativePG Cluster "argo-workflows/argo-workflows-postgresql-18-cluster" is experiencing a high replication lag of
{{`{{`}} $value {{`}}`}}ms.
High replication lag indicates network issues, busy instances, slow queries or suboptimal configuration.
runbook_url: https://github.com/cloudnative-pg/charts/blob/main/charts/cluster/docs/runbooks/CNPGClusterHighReplicationLag.md
expr: |
max(cnpg_pg_replication_lag{namespace="argo-workflows",pod=~"argo-workflows-postgresql-18-cluster-([1-9][0-9]*)$"}) * 1000 > 1000
for: 5m
labels:
severity: warning
namespace: argo-workflows
cnpg_cluster: argo-workflows-postgresql-18-cluster
- alert: CNPGClusterInstancesOnSameNode
annotations:
summary: CNPG Cluster instances are located on the same node.
description: |-
CloudNativePG Cluster "argo-workflows/argo-workflows-postgresql-18-cluster" has {{`{{`}} $value {{`}}`}}
instances on the same node {{`{{`}} $labels.node {{`}}`}}.
A failure or scheduled downtime of a single node will lead to a potential service disruption and/or data loss.
runbook_url: https://github.com/cloudnative-pg/charts/blob/main/charts/cluster/docs/runbooks/CNPGClusterInstancesOnSameNode.md
expr: |
count by (node) (kube_pod_info{namespace="argo-workflows", pod=~"argo-workflows-postgresql-18-cluster-([1-9][0-9]*)$"}) > 1
for: 5m
labels:
severity: warning
namespace: argo-workflows
cnpg_cluster: argo-workflows-postgresql-18-cluster
- alert: CNPGClusterLongRunningTransactionWarning
annotations:
summary: CNPG Cluster query is taking longer than 5 minutes.
description: |-
CloudNativePG Cluster Pod {{ $labels.pod }}
is taking more than 5 minutes (300 seconds) for a query.
expr: |-
cnpg_backends_max_tx_duration_seconds{namespace="argo-workflows"} > 300
for: 1m
labels:
severity: warning
namespace: argo-workflows
cnpg_cluster: argo-workflows-postgresql-18-cluster
- alert: CNPGClusterLowDiskSpaceCritical
annotations:
summary: CNPG Instance is running out of disk space!
description: |-
CloudNativePG Cluster "argo-workflows/argo-workflows-postgresql-18-cluster" is running extremely low on disk space. Check attached PVCs!
runbook_url: https://github.com/cloudnative-pg/charts/blob/main/charts/cluster/docs/runbooks/CNPGClusterLowDiskSpaceCritical.md
expr: |
max(max by(persistentvolumeclaim) (1 - kubelet_volume_stats_available_bytes{namespace="argo-workflows", persistentvolumeclaim=~"argo-workflows-postgresql-18-cluster-([1-9][0-9]*)$"} / kubelet_volume_stats_capacity_bytes{namespace="argo-workflows", persistentvolumeclaim=~"argo-workflows-postgresql-18-cluster-([1-9][0-9]*)$"})) > 0.9 OR
max(max by(persistentvolumeclaim) (1 - kubelet_volume_stats_available_bytes{namespace="argo-workflows", persistentvolumeclaim=~"argo-workflows-postgresql-18-cluster-([1-9][0-9]*)$-wal"} / kubelet_volume_stats_capacity_bytes{namespace="argo-workflows", persistentvolumeclaim=~"argo-workflows-postgresql-18-cluster-([1-9][0-9]*)$-wal"})) > 0.9 OR
max(sum by (namespace,persistentvolumeclaim) (kubelet_volume_stats_used_bytes{namespace="argo-workflows", persistentvolumeclaim=~"argo-workflows-postgresql-18-cluster-([1-9][0-9]*)$-tbs.*"})
/
sum by (namespace,persistentvolumeclaim) (kubelet_volume_stats_capacity_bytes{namespace="argo-workflows", persistentvolumeclaim=~"argo-workflows-postgresql-18-cluster-([1-9][0-9]*)$-tbs.*"})
*
on(namespace, persistentvolumeclaim) group_left(volume)
kube_pod_spec_volumes_persistentvolumeclaims_info{pod=~"argo-workflows-postgresql-18-cluster-([1-9][0-9]*)$"}
) > 0.9
for: 5m
labels:
severity: critical
namespace: argo-workflows
cnpg_cluster: argo-workflows-postgresql-18-cluster
- alert: CNPGClusterLowDiskSpaceWarning
annotations:
summary: CNPG Instance is running out of disk space.
description: |-
CloudNativePG Cluster "argo-workflows/argo-workflows-postgresql-18-cluster" is running low on disk space. Check attached PVCs.
runbook_url: https://github.com/cloudnative-pg/charts/blob/main/charts/cluster/docs/runbooks/CNPGClusterLowDiskSpaceWarning.md
expr: |
max(max by(persistentvolumeclaim) (1 - kubelet_volume_stats_available_bytes{namespace="argo-workflows", persistentvolumeclaim=~"argo-workflows-postgresql-18-cluster-([1-9][0-9]*)$"} / kubelet_volume_stats_capacity_bytes{namespace="argo-workflows", persistentvolumeclaim=~"argo-workflows-postgresql-18-cluster-([1-9][0-9]*)$"})) > 0.7 OR
max(max by(persistentvolumeclaim) (1 - kubelet_volume_stats_available_bytes{namespace="argo-workflows", persistentvolumeclaim=~"argo-workflows-postgresql-18-cluster-([1-9][0-9]*)$-wal"} / kubelet_volume_stats_capacity_bytes{namespace="argo-workflows", persistentvolumeclaim=~"argo-workflows-postgresql-18-cluster-([1-9][0-9]*)$-wal"})) > 0.7 OR
max(sum by (namespace,persistentvolumeclaim) (kubelet_volume_stats_used_bytes{namespace="argo-workflows", persistentvolumeclaim=~"argo-workflows-postgresql-18-cluster-([1-9][0-9]*)$-tbs.*"})
/
sum by (namespace,persistentvolumeclaim) (kubelet_volume_stats_capacity_bytes{namespace="argo-workflows", persistentvolumeclaim=~"argo-workflows-postgresql-18-cluster-([1-9][0-9]*)$-tbs.*"})
*
on(namespace, persistentvolumeclaim) group_left(volume)
kube_pod_spec_volumes_persistentvolumeclaims_info{pod=~"argo-workflows-postgresql-18-cluster-([1-9][0-9]*)$"}
) > 0.7
for: 5m
labels:
severity: warning
namespace: argo-workflows
cnpg_cluster: argo-workflows-postgresql-18-cluster
- alert: CNPGClusterOffline
annotations:
summary: CNPG Cluster has no running instances!
description: |-
CloudNativePG Cluster "argo-workflows/argo-workflows-postgresql-18-cluster" has no ready instances.
Having an offline cluster means your applications will not be able to access the database, leading to
potential service disruption and/or data loss.
runbook_url: https://github.com/cloudnative-pg/charts/blob/main/charts/cluster/docs/runbooks/CNPGClusterOffline.md
expr: |
(count(cnpg_collector_up{namespace="argo-workflows",pod=~"argo-workflows-postgresql-18-cluster-([1-9][0-9]*)$"}) OR on() vector(0)) == 0
for: 5m
labels:
severity: critical
namespace: argo-workflows
cnpg_cluster: argo-workflows-postgresql-18-cluster
- alert: CNPGClusterPGDatabaseXidAgeWarning
annotations:
summary: CNPG Cluster has a number of transactions from the frozen XID to the current one.
description: |-
Over 300,000,000 transactions from frozen xid
on pod {{ $labels.pod }}
expr: |
cnpg_pg_database_xid_age{namespace="argo-workflows"} > 300000000
for: 1m
labels:
severity: warning
namespace: argo-workflows
cnpg_cluster: argo-workflows-postgresql-18-cluster
- alert: CNPGClusterPGReplicationWarning
annotations:
summary: CNPG Cluster standby is lagging behind the primary.
description: |-
Standby is lagging behind by over 300 seconds (5 minutes)
expr: |
cnpg_pg_replication_lag{namespace="argo-workflows"} > 300
for: 1m
labels:
severity: warning
namespace: argo-workflows
cnpg_cluster: argo-workflows-postgresql-18-cluster
- alert: CNPGClusterReplicaFailingReplicationWarning
annotations:
summary: CNPG Cluster has a replica is failing to replicate.
description: |-
Replica {{ $labels.pod }}
is failing to replicate
expr: |
cnpg_pg_replication_in_recovery{namespace="argo-workflows"} > cnpg_pg_replication_is_wal_receiver_up{namespace="argo-workflows"}
for: 1m
labels:
severity: warning
namespace: argo-workflows
cnpg_cluster: argo-workflows-postgresql-18-cluster
- alert: CNPGClusterZoneSpreadWarning
annotations:
summary: CNPG Cluster instances in the same zone.
description: |-
CloudNativePG Cluster "argo-workflows/argo-workflows-postgresql-18-cluster" has instances in the same availability zone.
A disaster in one availability zone will lead to a potential service disruption and/or data loss.
runbook_url: https://github.com/cloudnative-pg/charts/blob/main/charts/cluster/docs/runbooks/CNPGClusterZoneSpreadWarning.md
expr: |
3 > count(count by (label_topology_kubernetes_io_zone) (kube_pod_info{namespace="argo-workflows", pod=~"argo-workflows-postgresql-18-cluster-([1-9][0-9]*)$"} * on(node,instance) group_left(label_topology_kubernetes_io_zone) kube_node_labels)) < 3
for: 5m
labels:
severity: warning
namespace: argo-workflows
cnpg_cluster: argo-workflows-postgresql-18-cluster
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: argo-workflows-workflow
labels:
helm.sh/chart: argo-workflows-1.0.2
app.kubernetes.io/name: argo-workflows-workflow-controller
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: workflow-controller
app: workflow-controller
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
namespace: argo-workflows
rules:
- apiGroups:
- argoproj.io
resources:
- workflowtaskresults
verbs:
- create
- patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: argo-workflows-workflow
labels:
helm.sh/chart: argo-workflows-1.0.2
app.kubernetes.io/name: argo-workflows-workflow-controller
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: workflow-controller
app: workflow-controller
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
namespace: argo-workflows
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: argo-workflows-workflow
subjects:
- kind: ServiceAccount
name: argo-workflow
namespace: argo-workflows
---
apiVersion: postgresql.cnpg.io/v1
kind: ScheduledBackup
metadata:
name: "argo-workflows-postgresql-18-scheduled-backup-live-backup"
namespace: argo-workflows
labels:
helm.sh/chart: postgres-18-cluster-7.9.1
app.kubernetes.io/name: argo-workflows-postgresql-18
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/part-of: argo-workflows
app.kubernetes.io/version: "7.9.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: "argo-workflows-postgresql-18-scheduled-backup-live-backup"
spec:
immediate: true
suspend: false
schedule: "0 0 14 * * *"
backupOwnerReference: self
cluster:
name: argo-workflows-postgresql-18-cluster
method: plugin
pluginConfiguration:
name: barman-cloud.cloudnative-pg.io
parameters:
barmanObjectName: "argo-workflows-postgresql-18-backup-garage-local"
---
apiVersion: v1
kind: Service
metadata:
name: argo-workflows-argo-events-controller-manager-metrics
namespace: "argo-workflows"
labels:
helm.sh/chart: argo-events-2.4.20
app.kubernetes.io/name: argo-events-controller-manager-metrics
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: controller-manager
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-events
spec:
ports:
- name: metrics
protocol: TCP
port: 8082
targetPort: metrics
selector:
app.kubernetes.io/name: argo-events-controller-manager
app.kubernetes.io/instance: argo-workflows
---
apiVersion: v1
kind: Service
metadata:
name: argo-workflows-server
namespace: "argo-workflows"
labels:
helm.sh/chart: argo-workflows-1.0.2
app.kubernetes.io/name: argo-workflows-server
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: server
app: server
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
app.kubernetes.io/version: "v4.0.2"
spec:
ports:
- port: 2746
targetPort: 2746
selector:
app.kubernetes.io/name: argo-workflows-server
app.kubernetes.io/instance: argo-workflows
sessionAffinity: None
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
name: argo-workflows-workflow-controller
namespace: "argo-workflows"
labels:
helm.sh/chart: argo-workflows-1.0.2
app.kubernetes.io/name: argo-workflows-workflow-controller
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: workflow-controller
app: workflow-controller
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
app.kubernetes.io/version: "v4.0.2"
spec:
ports:
- name: metrics
port: 8080
protocol: TCP
targetPort: 9090
selector:
app.kubernetes.io/name: argo-workflows-workflow-controller
app.kubernetes.io/instance: argo-workflows
sessionAffinity: None
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
name: events-webhook
namespace: "argo-workflows"
labels:
helm.sh/chart: argo-events-2.4.20
app.kubernetes.io/name: argo-events-events-webhook
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-events
spec:
ports:
- port: 443
targetPort: webhook
selector:
app.kubernetes.io/name: argo-events-events-webhook
app.kubernetes.io/instance: argo-workflows
---
apiVersion: v1
kind: ServiceAccount
automountServiceAccountToken: true
metadata:
name: argo-workflows-argo-events-controller-manager
namespace: "argo-workflows"
labels:
helm.sh/chart: argo-events-2.4.20
app.kubernetes.io/name: argo-events-controller-manager
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: controller-manager
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-events
---
apiVersion: v1
kind: ServiceAccount
automountServiceAccountToken: true
metadata:
name: argo-workflows-argo-events-events-webhook
namespace: "argo-workflows"
labels:
helm.sh/chart: argo-events-2.4.20
app.kubernetes.io/name: argo-events-events-webhook
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: events-webhook
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-events
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: argo-workflows-crd-install
namespace: argo-workflows
labels:
helm.sh/chart: argo-workflows-1.0.2
app.kubernetes.io/name: argo-workflows-crd-install
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: crds
app: crds
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
annotations:
"helm.sh/hook": pre-install,pre-upgrade
"helm.sh/hook-weight": "-10"
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: argo-workflows-server
namespace: "argo-workflows"
labels:
helm.sh/chart: argo-workflows-1.0.2
app.kubernetes.io/name: argo-workflows-server
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: server
app: server
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: argo-workflows-workflow-controller
namespace: "argo-workflows"
labels:
helm.sh/chart: argo-workflows-1.0.2
app.kubernetes.io/name: argo-workflows-workflow-controller
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: workflow-controller
app: workflow-controller
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-workflows
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: argo-workflows-argo-events-controller-manager
namespace: "argo-workflows"
labels:
helm.sh/chart: argo-events-2.4.20
app.kubernetes.io/name: argo-events-controller-manager
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: controller-manager
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: argo-events
spec:
endpoints:
- port: metrics
interval: 30s
path: /metrics
namespaceSelector:
matchNames:
- "argo-workflows"
selector:
matchLabels:
app.kubernetes.io/name: argo-events-controller-manager-metrics
app.kubernetes.io/instance: argo-workflows
app.kubernetes.io/component: controller-manager