refactor(flux): migrate actions-runner-system and database to base/main overlay - #1432
Merged
Conversation
Contributor
--- kubernetes/apps/database/dragonfly/operator Kustomization: database/dragonfly-operator OCIRepository: database/dragonfly-operator
+++ kubernetes/apps/database/dragonfly/operator Kustomization: database/dragonfly-operator OCIRepository: database/dragonfly-operator
@@ -1,19 +0,0 @@
----
-apiVersion: source.toolkit.fluxcd.io/v1
-kind: OCIRepository
-metadata:
- labels:
- app.kubernetes.io/name: dragonfly-operator
- kustomize.toolkit.fluxcd.io/name: dragonfly-operator
- kustomize.toolkit.fluxcd.io/namespace: database
- name: dragonfly-operator
- namespace: database
-spec:
- interval: 1h
- layerSelector:
- mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
- operation: copy
- ref:
- tag: v1.6.1
- url: oci://ghcr.io/dragonflydb/dragonfly-operator/helm/dragonfly-operator
-
--- kubernetes/apps/database/dragonfly/operator Kustomization: database/dragonfly-operator HelmRelease: database/dragonfly-operator
+++ kubernetes/apps/database/dragonfly/operator Kustomization: database/dragonfly-operator HelmRelease: database/dragonfly-operator
@@ -1,56 +0,0 @@
----
-apiVersion: helm.toolkit.fluxcd.io/v2
-kind: HelmRelease
-metadata:
- labels:
- app.kubernetes.io/name: dragonfly-operator
- kustomize.toolkit.fluxcd.io/name: dragonfly-operator
- kustomize.toolkit.fluxcd.io/namespace: database
- name: dragonfly-operator
- namespace: database
-spec:
- chartRef:
- kind: OCIRepository
- name: dragonfly-operator
- install:
- crds: CreateReplace
- strategy:
- name: RetryOnFailure
- interval: 30m
- maxHistory: 3
- rollback:
- cleanupOnFail: true
- recreate: true
- uninstall:
- keepHistory: false
- upgrade:
- cleanupOnFail: true
- crds: CreateReplace
- remediation:
- remediateLastFailure: true
- retries: 2
- strategy:
- name: RemediateOnFailure
- values:
- grafanaDashboard:
- annotations:
- grafana_folder: Database
- enabled: true
- folder: Database
- kube-rbac-proxy:
- resources:
- limits:
- memory: 128Mi
- requests:
- cpu: 10m
- memory: 128Mi
- manager:
- image:
- repository: ghcr.io/dragonflydb/operator
- resources:
- limits:
- memory: 128Mi
- requests:
- cpu: 10m
- memory: 128Mi
-
--- kubernetes/apps/database/cloudnative-pg/dashboard Kustomization: database/cloudnative-pg-dashboard OCIRepository: database/cloudnative-pg-dashboard
+++ kubernetes/apps/database/cloudnative-pg/dashboard Kustomization: database/cloudnative-pg-dashboard OCIRepository: database/cloudnative-pg-dashboard
@@ -1,19 +0,0 @@
----
-apiVersion: source.toolkit.fluxcd.io/v1
-kind: OCIRepository
-metadata:
- labels:
- app.kubernetes.io/name: cloudnative-pg-dashboard
- kustomize.toolkit.fluxcd.io/name: cloudnative-pg-dashboard
- kustomize.toolkit.fluxcd.io/namespace: database
- name: cloudnative-pg-dashboard
- namespace: database
-spec:
- interval: 1h
- layerSelector:
- mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
- operation: copy
- ref:
- tag: 0.0.5
- url: oci://ghcr.io/cloudnative-pg/grafana-dashboards/cluster
-
--- kubernetes/apps/database/cloudnative-pg/dashboard Kustomization: database/cloudnative-pg-dashboard HelmRelease: database/cloudnative-pg-dashboard
+++ kubernetes/apps/database/cloudnative-pg/dashboard Kustomization: database/cloudnative-pg-dashboard HelmRelease: database/cloudnative-pg-dashboard
@@ -1,39 +0,0 @@
----
-apiVersion: helm.toolkit.fluxcd.io/v2
-kind: HelmRelease
-metadata:
- labels:
- app.kubernetes.io/name: cloudnative-pg-dashboard
- kustomize.toolkit.fluxcd.io/name: cloudnative-pg-dashboard
- kustomize.toolkit.fluxcd.io/namespace: database
- name: cloudnative-pg-dashboard
- namespace: database
-spec:
- chartRef:
- kind: OCIRepository
- name: cloudnative-pg-dashboard
- install:
- crds: CreateReplace
- strategy:
- name: RetryOnFailure
- interval: 30m
- maxHistory: 3
- rollback:
- cleanupOnFail: true
- recreate: true
- uninstall:
- keepHistory: false
- upgrade:
- cleanupOnFail: true
- crds: CreateReplace
- remediation:
- remediateLastFailure: true
- retries: 2
- strategy:
- name: RemediateOnFailure
- values:
- grafanaDashboard:
- annotations:
- grafana_folder: Database
- namespace: database
-
--- kubernetes/apps/database/jetstream/app Kustomization: database/jetstream HelmRelease: database/nats
+++ kubernetes/apps/database/jetstream/app Kustomization: database/jetstream HelmRelease: database/nats
@@ -1,91 +0,0 @@
----
-apiVersion: helm.toolkit.fluxcd.io/v2
-kind: HelmRelease
-metadata:
- labels:
- app.kubernetes.io/name: jetstream
- kustomize.toolkit.fluxcd.io/name: jetstream
- kustomize.toolkit.fluxcd.io/namespace: database
- name: nats
- namespace: database
-spec:
- chart:
- spec:
- chart: nats
- interval: 5m
- sourceRef:
- kind: HelmRepository
- name: nats
- namespace: flux-system
- version: 2.14.*
- install:
- crds: CreateReplace
- remediation:
- retries: 3
- strategy:
- name: RetryOnFailure
- interval: 30m
- rollback:
- cleanupOnFail: true
- recreate: true
- uninstall:
- keepHistory: false
- upgrade:
- cleanupOnFail: true
- crds: CreateReplace
- remediation:
- remediateLastFailure: true
- retries: 2
- strategy:
- name: RemediateOnFailure
- values:
- config:
- cluster:
- enabled: true
- replicas: 3
- jetstream:
- enabled: true
- fileStore:
- enabled: true
- pvc:
- enabled: true
- size: 10Gi
- storageClassName: ceph-block
- memoryStore:
- enabled: true
- maxSize: 1Gi
- container:
- env:
- GOMEMLIMIT: 3GiB
- merge:
- resources:
- limits:
- memory: 4Gi
- requests:
- cpu: 500m
- memory: 1Gi
- podDisruptionBudget:
- enabled: true
- minAvailable: 2
- podTemplate:
- topologySpreadConstraints:
- kubernetes.io/hostname:
- maxSkew: 1
- whenUnsatisfiable: DoNotSchedule
- promExporter:
- enabled: true
- port: 7777
- service:
- enabled: true
- ports:
- leafnodes:
- enabled: false
- mqtt:
- enabled: false
- nats:
- enabled: true
- websocket:
- enabled: false
- statefulSet:
- replicas: 3
-
--- kubernetes/apps/database/jetstream/app Kustomization: database/jetstream PodMonitor: database/nats
+++ kubernetes/apps/database/jetstream/app Kustomization: database/jetstream PodMonitor: database/nats
@@ -1,27 +0,0 @@
----
-apiVersion: monitoring.coreos.com/v1
-kind: PodMonitor
-metadata:
- labels:
- app.kubernetes.io/name: jetstream
- kustomize.toolkit.fluxcd.io/name: jetstream
- kustomize.toolkit.fluxcd.io/namespace: database
- name: nats
- namespace: database
-spec:
- jobLabel: app.kubernetes.io/instance
- namespaceSelector:
- matchNames:
- - database
- podMetricsEndpoints:
- - honorLabels: true
- interval: 30s
- path: /metrics
- port: prom-metrics
- scrapeTimeout: 10s
- selector:
- matchLabels:
- app.kubernetes.io/component: nats
- app.kubernetes.io/instance: nats
- app.kubernetes.io/name: nats
-
--- kubernetes/apps/database/cloudnative-pg/operator Kustomization: database/cloudnative-pg ExternalSecret: database/cloudnative-pg-secret
+++ kubernetes/apps/database/cloudnative-pg/operator Kustomization: database/cloudnative-pg ExternalSecret: database/cloudnative-pg-secret
@@ -1,32 +0,0 @@
----
-apiVersion: external-secrets.io/v1
-kind: ExternalSecret
-metadata:
- labels:
- app.kubernetes.io/name: cloudnative-pg
- kustomize.toolkit.fluxcd.io/name: cloudnative-pg
- kustomize.toolkit.fluxcd.io/namespace: database
- name: cloudnative-pg-secret
- namespace: database
-spec:
- dataFrom:
- - extract:
- key: cloudnative-pg
- - extract:
- key: nas
- secretStoreRef:
- kind: ClusterSecretStore
- name: onepassword
- target:
- name: cloudnative-pg-secret
- template:
- data:
- aws-access-key-id: '{{ .MINIO_HOME_OPS_ACCESS_KEY }}'
- aws-secret-access-key: '{{ .MINIO_HOME_OPS_SECRET_KEY }}'
- password: '{{ .POSTGRES_SUPER_PASS }}'
- username: '{{ .POSTGRES_SUPER_USER }}'
- engineVersion: v2
- metadata:
- labels:
- cnpg.io/reload: 'true'
-
--- kubernetes/apps/database/cloudnative-pg/operator Kustomization: database/cloudnative-pg OCIRepository: database/cloudnative-pg
+++ kubernetes/apps/database/cloudnative-pg/operator Kustomization: database/cloudnative-pg OCIRepository: database/cloudnative-pg
@@ -1,19 +0,0 @@
----
-apiVersion: source.toolkit.fluxcd.io/v1
-kind: OCIRepository
-metadata:
- labels:
- app.kubernetes.io/name: cloudnative-pg
- kustomize.toolkit.fluxcd.io/name: cloudnative-pg
- kustomize.toolkit.fluxcd.io/namespace: database
- name: cloudnative-pg
- namespace: database
-spec:
- interval: 1h
- layerSelector:
- mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
- operation: copy
- ref:
- tag: 0.29.0
- url: oci://ghcr.io/cloudnative-pg/charts/cloudnative-pg
-
--- kubernetes/apps/database/cloudnative-pg/operator Kustomization: database/cloudnative-pg HelmRelease: database/cloudnative-pg
+++ kubernetes/apps/database/cloudnative-pg/operator Kustomization: database/cloudnative-pg HelmRelease: database/cloudnative-pg
@@ -1,48 +0,0 @@
----
-apiVersion: helm.toolkit.fluxcd.io/v2
-kind: HelmRelease
-metadata:
- labels:
- app.kubernetes.io/name: cloudnative-pg
- kustomize.toolkit.fluxcd.io/name: cloudnative-pg
- kustomize.toolkit.fluxcd.io/namespace: database
- name: cloudnative-pg
- namespace: database
-spec:
- chartRef:
- kind: OCIRepository
- name: cloudnative-pg
- install:
- crds: CreateReplace
- strategy:
- name: RetryOnFailure
- interval: 30m
- rollback:
- cleanupOnFail: true
- recreate: true
- uninstall:
- keepHistory: false
- upgrade:
- cleanupOnFail: true
- crds: CreateReplace
- remediation:
- remediateLastFailure: true
- retries: 2
- strategy:
- name: RemediateOnFailure
- values:
- config:
- data:
- INHERITED_ANNOTATIONS: kyverno.io/ignore
- crds:
- create: true
- monitoring:
- podMonitorEnabled: true
- replicaCount: 2
- resources:
- limits:
- memory: 512Mi
- requests:
- cpu: 15m
- memory: 256Mi
-
--- kubernetes/apps/database/jetstream/nack Kustomization: database/jetstream-nack HelmRelease: database/nack
+++ kubernetes/apps/database/jetstream/nack Kustomization: database/jetstream-nack HelmRelease: database/nack
@@ -1,48 +0,0 @@
----
-apiVersion: helm.toolkit.fluxcd.io/v2
-kind: HelmRelease
-metadata:
- labels:
- app.kubernetes.io/name: jetstream-nack
- kustomize.toolkit.fluxcd.io/name: jetstream-nack
- kustomize.toolkit.fluxcd.io/namespace: database
- name: nack
- namespace: database
-spec:
- chart:
- spec:
- chart: nack
- interval: 5m
- sourceRef:
- kind: HelmRepository
- name: nats
- namespace: flux-system
- version: 0.34.0
- install:
- crds: CreateReplace
- remediation:
- retries: 3
- strategy:
- name: RetryOnFailure
- interval: 30m
- rollback:
- cleanupOnFail: true
- recreate: true
- uninstall:
- keepHistory: false
- upgrade:
- cleanupOnFail: true
- crds: CreateReplace
- remediation:
- remediateLastFailure: true
- retries: 2
- strategy:
- name: RemediateOnFailure
- values:
- jetstream:
- additionalArgs:
- - --control-loop
- nats:
- url: nats://nats.database.svc.cluster.local:4222
- namespaced: false
-
--- kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: actions-runner-system/gha-runner-scale-set-controller
+++ kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: actions-runner-system/gha-runner-scale-set-controller
@@ -38,13 +38,13 @@
remediation:
remediateLastFailure: true
retries: 2
target:
group: helm.toolkit.fluxcd.io
kind: HelmRelease
- path: ./kubernetes/apps/actions-runner-system/gha-runner-scale-set-controller/app
+ path: ./kubernetes/apps/base/actions-runner-system/gha-runner-scale-set-controller/app
prune: true
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
targetNamespace: actions-runner-system
--- kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: actions-runner-system/gha-runner-scale-set
+++ kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: actions-runner-system/gha-runner-scale-set
@@ -40,13 +40,13 @@
remediation:
remediateLastFailure: true
retries: 2
target:
group: helm.toolkit.fluxcd.io
kind: HelmRelease
- path: ./kubernetes/apps/actions-runner-system/gha-runner-scale-set/app
+ path: ./kubernetes/apps/base/actions-runner-system/gha-runner-scale-set/app
prune: true
retryInterval: 2m
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
--- kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: actions-runner-system/actions-runner-maintenance
+++ kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: actions-runner-system/actions-runner-maintenance
@@ -42,13 +42,13 @@
remediation:
remediateLastFailure: true
retries: 2
target:
group: helm.toolkit.fluxcd.io
kind: HelmRelease
- path: ./kubernetes/apps/actions-runner-system/maintenance
+ path: ./kubernetes/apps/base/actions-runner-system/maintenance
prune: true
retryInterval: 2m
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
--- kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: database/cloudnative-pg
+++ kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: database/cloudnative-pg
@@ -35,13 +35,13 @@
remediation:
remediateLastFailure: true
retries: 2
target:
group: helm.toolkit.fluxcd.io
kind: HelmRelease
- path: ./kubernetes/apps/database/cloudnative-pg/operator
+ path: ./kubernetes/apps/base/database/cloudnative-pg/operator
postBuild:
substituteFrom:
- kind: Secret
name: cluster-secrets
prune: true
sourceRef:
--- kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: database/postgres-cluster-17
+++ kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: database/postgres-cluster-17
@@ -48,13 +48,13 @@
remediation:
remediateLastFailure: true
retries: 2
target:
group: helm.toolkit.fluxcd.io
kind: HelmRelease
- path: ./kubernetes/apps/database/cloudnative-pg/cluster-17
+ path: ./kubernetes/apps/base/database/cloudnative-pg/cluster-17
postBuild:
substituteFrom:
- kind: Secret
name: cluster-secrets
prune: true
sourceRef:
--- kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: database/cloudnative-pg-dashboard
+++ kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: database/cloudnative-pg-dashboard
@@ -35,13 +35,13 @@
remediation:
remediateLastFailure: true
retries: 2
target:
group: helm.toolkit.fluxcd.io
kind: HelmRelease
- path: ./kubernetes/apps/database/cloudnative-pg/dashboard
+ path: ./kubernetes/apps/base/database/cloudnative-pg/dashboard
postBuild:
substituteFrom:
- kind: Secret
name: cluster-secrets
prune: true
sourceRef:
--- kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: database/pgadmin
+++ kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: database/pgadmin
@@ -9,13 +9,13 @@
namespace: database
spec:
commonMetadata:
labels:
app.kubernetes.io/name: pgadmin
components:
- - ../../../../components/volsync
+ - ../../../../../components/volsync
deletionPolicy: WaitForTermination
dependsOn:
- name: cloudnative-pg
namespace: database
- name: rook-ceph
namespace: rook-ceph
@@ -50,13 +50,13 @@
remediation:
remediateLastFailure: true
retries: 2
target:
group: helm.toolkit.fluxcd.io
kind: HelmRelease
- path: ./kubernetes/apps/database/cloudnative-pg/pgadmin
+ path: ./kubernetes/apps/base/database/cloudnative-pg/pgadmin
postBuild:
substitute:
APP: pgadmin
VOLSYNC_CAPACITY: 2Gi
VOLSYNC_SCHEDULE_CEPH: 0 */4 * * *
VOLSYNC_SCHEDULE_MINIO: 0 */6 * * *
--- kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: database/dragonfly-operator
+++ kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: database/dragonfly-operator
@@ -35,13 +35,13 @@
remediation:
remediateLastFailure: true
retries: 2
target:
group: helm.toolkit.fluxcd.io
kind: HelmRelease
- path: ./kubernetes/apps/database/dragonfly/operator
+ path: ./kubernetes/apps/base/database/dragonfly/operator
postBuild:
substitute:
APP: dragonfly-operator
prune: true
sourceRef:
kind: GitRepository
--- kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: database/emqx-operator
+++ kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: database/emqx-operator
@@ -38,13 +38,13 @@
remediation:
remediateLastFailure: true
retries: 2
target:
group: helm.toolkit.fluxcd.io
kind: HelmRelease
- path: ./kubernetes/apps/database/emqx/operator
+ path: ./kubernetes/apps/base/database/emqx/operator
postBuild:
substituteFrom:
- kind: Secret
name: cluster-secrets
prune: true
sourceRef:
--- kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: database/emqx-cluster
+++ kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: database/emqx-cluster
@@ -47,13 +47,13 @@
remediation:
remediateLastFailure: true
retries: 2
target:
group: helm.toolkit.fluxcd.io
kind: HelmRelease
- path: ./kubernetes/apps/database/emqx/cluster
+ path: ./kubernetes/apps/base/database/emqx/cluster
postBuild:
substituteFrom:
- kind: Secret
name: cluster-secrets
prune: true
sourceRef:
--- kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: database/emqx-exporter
+++ kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: database/emqx-exporter
@@ -40,13 +40,13 @@
remediation:
remediateLastFailure: true
retries: 2
target:
group: helm.toolkit.fluxcd.io
kind: HelmRelease
- path: ./kubernetes/apps/database/emqx/exporter
+ path: ./kubernetes/apps/base/database/emqx/exporter
prune: true
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
targetNamespace: database
--- kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: database/surrealdb
+++ kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: database/surrealdb
@@ -42,13 +42,13 @@
remediation:
remediateLastFailure: true
retries: 2
target:
group: helm.toolkit.fluxcd.io
kind: HelmRelease
- path: ./kubernetes/apps/database/surrealdb/app
+ path: ./kubernetes/apps/base/database/surrealdb/app
postBuild:
substituteFrom:
- kind: Secret
name: cluster-secrets
prune: true
sourceRef:
--- kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: database/jetstream
+++ kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: database/jetstream
@@ -35,13 +35,13 @@
remediation:
remediateLastFailure: true
retries: 2
target:
group: helm.toolkit.fluxcd.io
kind: HelmRelease
- path: ./kubernetes/apps/database/jetstream/app
+ path: ./kubernetes/apps/base/database/jetstream/app
postBuild:
substitute:
APP: jetstream
substituteFrom:
- kind: Secret
name: cluster-secrets
--- kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: database/jetstream-nack
+++ kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: database/jetstream-nack
@@ -38,13 +38,13 @@
remediation:
remediateLastFailure: true
retries: 2
target:
group: helm.toolkit.fluxcd.io
kind: HelmRelease
- path: ./kubernetes/apps/database/jetstream/nack
+ path: ./kubernetes/apps/base/database/jetstream/nack
postBuild:
substitute:
APP: jetstream-nack
substituteFrom:
- kind: Secret
name: cluster-secrets
--- kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: database/jetstream-streams
+++ kubernetes/apps/main Kustomization: flux-system/cluster-apps Kustomization: database/jetstream-streams
@@ -38,13 +38,13 @@
remediation:
remediateLastFailure: true
retries: 2
target:
group: helm.toolkit.fluxcd.io
kind: HelmRelease
- path: ./kubernetes/apps/database/jetstream/streams
+ path: ./kubernetes/apps/base/database/jetstream/streams
postBuild:
substituteFrom:
- kind: Secret
name: cluster-secrets
prune: true
sourceRef:
--- kubernetes/apps/database/surrealdb/app Kustomization: database/surrealdb HelmRelease: database/surrealdb
+++ kubernetes/apps/database/surrealdb/app Kustomization: database/surrealdb HelmRelease: database/surrealdb
@@ -1,119 +0,0 @@
----
-apiVersion: helm.toolkit.fluxcd.io/v2
-kind: HelmRelease
-metadata:
- labels:
- app.kubernetes.io/name: surrealdb
- kustomize.toolkit.fluxcd.io/name: surrealdb
- kustomize.toolkit.fluxcd.io/namespace: database
- name: surrealdb
- namespace: database
-spec:
- chart:
- spec:
- chart: surrealdb
- interval: 5m
- sourceRef:
- kind: HelmRepository
- name: surrealdb
- namespace: flux-system
- version: 0.5.0
- install:
- crds: CreateReplace
- remediation:
- retries: 3
- strategy:
- name: RetryOnFailure
- timeout: 10m
- interval: 30m
- rollback:
- cleanupOnFail: true
- recreate: true
- uninstall:
- keepHistory: false
- upgrade:
- cleanupOnFail: true
- crds: CreateReplace
- remediation:
- remediateLastFailure: true
- retries: 2
- strategy: uninstall
- strategy:
- name: RemediateOnFailure
- timeout: 10m
- values:
- affinity:
- podAntiAffinity:
- preferredDuringSchedulingIgnoredDuringExecution:
- - podAffinityTerm:
- labelSelector:
- matchLabels:
- app.kubernetes.io/name: surrealdb
- topologyKey: kubernetes.io/hostname
- weight: 100
- image:
- pullPolicy: IfNotPresent
- repository: surrealdb/surrealdb
- ingress:
- enabled: false
- livenessProbe:
- httpGet:
- path: /health
- port: 8000
- initialDelaySeconds: 30
- periodSeconds: 10
- persistence:
- accessModes:
- - ReadWriteOnce
- enabled: true
- mountPath: /data
- size: 20Gi
- podExtraEnv:
- - name: SURREAL_USER
- valueFrom:
- secretKeyRef:
- key: username
- name: surrealdb-secret
- - name: SURREAL_PASS
- valueFrom:
- secretKeyRef:
- key: password
- name: surrealdb-secret
- podSecurityContext:
- fsGroup: 65532
- readinessProbe:
- httpGet:
- path: /health
- port: 8000
- initialDelaySeconds: 10
- periodSeconds: 5
- replicaCount: 1
- resources:
- limits:
- memory: 2Gi
- requests:
- cpu: 500m
- memory: 512Mi
- service:
- annotations: {}
- port: 8000
- type: ClusterIP
- serviceMonitor:
- enabled: true
- strategy:
- type: Recreate
- surrealdb:
- extraArgs:
- - --allow-all
- - --allow-funcs
- log: info
- path: rocksdb:///data/surrealdb
- unauthenticated: false
- topologySpreadConstraints:
- - labelSelector:
- matchLabels:
- app.kubernetes.io/name: surrealdb
- maxSkew: 1
- topologyKey: kubernetes.io/hostname
- whenUnsatisfiable: ScheduleAnyway
-
--- kubernetes/apps/database/surrealdb/app Kustomization: database/surrealdb ExternalSecret: database/surrealdb-secret
+++ kubernetes/apps/database/surrealdb/app Kustomization: database/surrealdb ExternalSecret: database/surrealdb-secret
@@ -1,26 +0,0 @@
----
-apiVersion: external-secrets.io/v1
-kind: ExternalSecret
-metadata:
- labels:
- app.kubernetes.io/name: surrealdb
- kustomize.toolkit.fluxcd.io/name: surrealdb
- kustomize.toolkit.fluxcd.io/namespace: database
- name: surrealdb-secret
- namespace: database
-spec:
- dataFrom:
- - extract:
- key: surrealdb
- secretStoreRef:
- kind: ClusterSecretStore
- name: onepassword
- target:
- creationPolicy: Owner
- name: surrealdb-secret
- template:
- data:
- password: '{{ .SURREALDB_ROOT_PASSWORD }}'
- username: '{{ .SURREALDB_ROOT_USER }}'
- engineVersion: v2
-
--- kubernetes/apps/database/surrealdb/app Kustomization: database/surrealdb PrometheusRule: database/surrealdb-rules
+++ kubernetes/apps/database/surrealdb/app Kustomization: database/surrealdb PrometheusRule: database/surrealdb-rules
@@ -1,55 +0,0 @@
----
-apiVersion: monitoring.coreos.com/v1
-kind: PrometheusRule
-metadata:
- labels:
- app.kubernetes.io/name: surrealdb
- kustomize.toolkit.fluxcd.io/name: surrealdb
- kustomize.toolkit.fluxcd.io/namespace: database
- prometheus: k8s
- role: alert-rules
- name: surrealdb-rules
- namespace: database
-spec:
- groups:
- - name: surrealdb.rules
- rules:
- - alert: SurrealDBHighMemoryUsage
- annotations:
- description: SurrealDB pod {{ $labels.pod }} is using over 80% memory
- summary: High memory usage detected
- expr: |
- (container_memory_working_set_bytes{pod=~"surrealdb-.*"} /
- container_spec_memory_limit_bytes{pod=~"surrealdb-.*"}) > 0.8
- for: 5m
- labels:
- severity: warning
- - alert: SurrealDBPodDown
- annotations:
- description: SurrealDB pod {{ $labels.pod }} is down
- summary: SurrealDB pod unavailable
- expr: |
- up{job="surrealdb"} == 0
- for: 2m
- labels:
- severity: critical
- - alert: SurrealDBReplicasUnavailable
- annotations:
- description: Less than 2 SurrealDB replicas are running
- summary: SurrealDB has insufficient replicas
- expr: |
- kube_deployment_status_replicas_available{deployment="surrealdb"} < 2
- for: 5m
- labels:
- severity: warning
- - alert: SurrealDBHighCPU
- annotations:
- description: SurrealDB pod {{ $labels.pod }} is using over 80% CPU
- summary: High CPU usage detected
- expr: |
- (rate(container_cpu_usage_seconds_total{pod=~"surrealdb-.*"}[5m]) /
- container_spec_cpu_quota{pod=~"surrealdb-.*"} * 100) > 80
- for: 10m
- labels:
- severity: warning
-
--- kubernetes/apps/database/surrealdb/app Kustomization: database/surrealdb HTTPRoute: database/surrealdb
+++ kubernetes/apps/database/surrealdb/app Kustomization: database/surrealdb HTTPRoute: database/surrealdb
@@ -1,32 +0,0 @@
----
-apiVersion: gateway.networking.k8s.io/v1
-kind: HTTPRoute
-metadata:
- annotations:
- external-dns.alpha.kubernetes.io/target: internal.${SECRET_DOMAIN}
- gatus.home-operations.com/endpoint: 'conditions: ["[STATUS] == 200"]'
- gethomepage.dev/app: surrealdb
- gethomepage.dev/description: surrealdb
- gethomepage.dev/enabled: 'true'
- gethomepage.dev/group: database
- gethomepage.dev/name: surrealdb
- labels:
- app.kubernetes.io/name: surrealdb
- kustomize.toolkit.fluxcd.io/name: surrealdb
- kustomize.toolkit.fluxcd.io/namespace: database
- name: surrealdb
- namespace: database
-spec:
- hostnames:
- - surrealdb.${SECRET_DOMAIN}
- - sdb.${SECRET_DOMAIN}
- parentRefs:
- - name: envoy-internal
- namespace: network
- sectionName: https
- rules:
- - backendRefs:
- - name: surrealdb
- namespace: database
- port: 8000
-
--- kubernetes/apps/actions-runner-system/gha-runner-scale-set-controller/app Kustomization: actions-runner-system/gha-runner-scale-set-controller HelmRelease: actions-runner-system/gha-runner-scale-set-controller
+++ kubernetes/apps/actions-runner-system/gha-runner-scale-set-controller/app Kustomization: actions-runner-system/gha-runner-scale-set-controller HelmRelease: actions-runner-system/gha-runner-scale-set-controller
@@ -1,49 +0,0 @@
----
-apiVersion: helm.toolkit.fluxcd.io/v2
-kind: HelmRelease
-metadata:
- labels:
- app.kubernetes.io/name: gha-runner-scale-set-controller
- kustomize.toolkit.fluxcd.io/name: gha-runner-scale-set-controller
- kustomize.toolkit.fluxcd.io/namespace: actions-runner-system
- name: gha-runner-scale-set-controller
- namespace: actions-runner-system
-spec:
- chartRef:
- kind: OCIRepository
- name: gha-runner-scale-set-controller
- install:
- crds: CreateReplace
- remediation:
- retries: 3
- strategy:
- name: RetryOnFailure
- interval: 30m
- rollback:
- cleanupOnFail: true
- recreate: true
- upgrade:
- cleanupOnFail: true
- crds: CreateReplace
- remediation:
- remediateLastFailure: true
- retries: 2
- strategy: rollback
- strategy:
- name: RemediateOnFailure
- values:
- fullnameOverride: gha-runner-scale-set-controller
- metrics:
- controllerManagerAddr: :8080
- listenerAddr: :8080
- listenerEndpoint: /metrics
- priorityClassName: gha-runner-infrastructure
- replicaCount: 2
- resources:
- limits:
- cpu: 500m
- memory: 512Mi
- requests:
- cpu: 100m
- memory: 128Mi
-
--- kubernetes/apps/actions-runner-system/gha-runner-scale-set-controller/app Kustomization: actions-runner-system/gha-runner-scale-set-controller OCIRepository: actions-runner-system/gha-runner-scale-set-controller
+++ kubernetes/apps/actions-runner-system/gha-runner-scale-set-controller/app Kustomization: actions-runner-system/gha-runner-scale-set-controller OCIRepository: actions-runner-system/gha-runner-scale-set-controller
@@ -1,19 +0,0 @@
----
-apiVersion: source.toolkit.fluxcd.io/v1
-kind: OCIRepository
-metadata:
- labels:
- app.kubernetes.io/name: gha-runner-scale-set-controller
- kustomize.toolkit.fluxcd.io/name: gha-runner-scale-set-controller
- kustomize.toolkit.fluxcd.io/namespace: actions-runner-system
- name: gha-runner-scale-set-controller
- namespace: actions-runner-system
-spec:
- interval: 1h
- layerSelector:
- mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
- operation: copy
- ref:
- tag: 0.14.2
- url: oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set-controller
-
--- kubernetes/apps/actions-runner-system/gha-runner-scale-set-controller/app Kustomization: actions-runner-system/gha-runner-scale-set-controller PodDisruptionBudget: actions-runner-system/gha-runner-scale-set-controller
+++ kubernetes/apps/actions-runner-system/gha-runner-scale-set-controller/app Kustomization: actions-runner-system/gha-runner-scale-set-controller PodDisruptionBudget: actions-runner-system/gha-runner-scale-set-controller
@@ -1,17 +0,0 @@
----
-apiVersion: policy/v1
-kind: PodDisruptionBudget
-metadata:
- labels:
- app.kubernetes.io/name: gha-runner-scale-set-controller
- kustomize.toolkit.fluxcd.io/name: gha-runner-scale-set-controller
- kustomize.toolkit.fluxcd.io/namespace: actions-runner-system
- name: gha-runner-scale-set-controller
- namespace: actions-runner-system
-spec:
- minAvailable: 1
- selector:
- matchLabels:
- app.kubernetes.io/instance: gha-runner-scale-set-controller
- app.kubernetes.io/name: gha-rs-controller
-
--- kubernetes/apps/actions-runner-system/gha-runner-scale-set-controller/app Kustomization: actions-runner-system/gha-runner-scale-set-controller PodMonitor: actions-runner-system/action-runner-controller
+++ kubernetes/apps/actions-runner-system/gha-runner-scale-set-controller/app Kustomization: actions-runner-system/gha-runner-scale-set-controller PodMonitor: actions-runner-system/action-runner-controller
@@ -1,23 +0,0 @@
----
-apiVersion: monitoring.coreos.com/v1
-kind: PodMonitor
-metadata:
- labels:
- app.kubernetes.io/name: gha-runner-scale-set-controller
- kustomize.toolkit.fluxcd.io/name: gha-runner-scale-set-controller
- kustomize.toolkit.fluxcd.io/namespace: actions-runner-system
- name: action-runner-controller
- namespace: actions-runner-system
-spec:
- namespaceSelector:
- matchNames:
- - actions-runner-system
- podMetricsEndpoints:
- - interval: 15s
- path: /metrics
- port: metrics
- scrapeTimeout: 5s
- selector:
- matchLabels:
- app.kubernetes.io/part-of: gha-rs-controller
-
--- kubernetes/apps/actions-runner-system/gha-runner-scale-set-controller/app Kustomization: actions-runner-system/gha-runner-scale-set-controller PrometheusRule: actions-runner-system/github-actions-runner-alerts
+++ kubernetes/apps/actions-runner-system/gha-runner-scale-set-controller/app Kustomization: actions-runner-system/gha-runner-scale-set-controller PrometheusRule: actions-runner-system/github-actions-runner-alerts
@@ -1,93 +0,0 @@
----
-apiVersion: monitoring.coreos.com/v1
-kind: PrometheusRule
-metadata:
- labels:
- app.kubernetes.io/name: gha-runner-scale-set-controller
- kustomize.toolkit.fluxcd.io/name: gha-runner-scale-set-controller
- kustomize.toolkit.fluxcd.io/namespace: actions-runner-system
- prometheus: kube-prometheus
- name: github-actions-runner-alerts
- namespace: actions-runner-system
-spec:
- groups:
- - name: github-actions-runner
- rules:
- - alert: GithubActionsRunnerJobFailureRateHigh
- annotations:
- description: More than 20% of jobs have failed in the last hour
- summary: GitHub Actions job failure rate is high
- expr: |
- (
- sum(increase(gha_completed_jobs_total{job_result="failure"}[1h]))
- /
- sum(increase(gha_completed_jobs_total[1h]))
- ) > 0.2
- for: 15m
- labels:
- severity: warning
- - alert: GithubActionsRunnerZeroIdleRunners
- annotations:
- description: All runners are busy with {{ $value }} jobs waiting
- summary: No idle GitHub Actions runners available
- expr: gha_idle_runners == 0 and gha_assigned_jobs > 0
- for: 10m
- labels:
- severity: warning
- - alert: GithubActionsRunnerControllerDown
- annotations:
- description: No healthy ARC controller scrape (job actions-runner-system/action-runner-controller)
- summary: GitHub Actions Runner Controller is down
- expr: (count(up{job=~".*action-runner-controller"} == 1) or vector(0)) == 0
- for: 5m
- labels:
- severity: critical
- - alert: GithubActionsRunnerJobStartupSlow
- annotations:
- description: 95th percentile job startup time exceeds 2 minutes
- summary: GitHub Actions job startup is slow
- expr: |
- histogram_quantile(0.95,
- sum(rate(gha_job_startup_duration_seconds_bucket[5m])) by (le)
- ) > 120
- for: 15m
- labels:
- severity: warning
- - alert: GithubActionsRunnerShortLifetimeDetected
- annotations:
- description: '{{ $value }} runner pods completed in under 30 seconds - indicates
- ghost job assignments'
- summary: Multiple GitHub Actions runners exiting quickly
- expr: |
- count(
- (time() - kube_pod_start_time{namespace="actions-runner-system", pod=~".*-runner-.*"})
- < 30
- and on(pod) kube_pod_status_phase{phase="Succeeded"}
- ) > 3
- for: 5m
- labels:
- severity: warning
- - alert: GithubActionsRunnerListenerDisconnected
- annotations:
- description: Listener pod {{ $labels.pod }} has restarted {{ $value }} times
- in 15 minutes - broker connection issues likely
- summary: GitHub Actions listener pod restarting frequently
- expr: |
- increase(kube_pod_container_status_restarts_total{
- namespace="actions-runner-system",
- pod=~".*-listener-.*"
- }[15m]) > 3
- for: 5m
- labels:
- severity: critical
- - alert: GithubActionsRunnerAssignedJobsStuck
- annotations:
- description: '{{ $value }} jobs are assigned but no runners are processing
- them - possible ghost job state'
- summary: GitHub Actions jobs assigned but not running
- expr: |
- gha_assigned_jobs > 0 and gha_running_jobs == 0 and gha_idle_runners == 0
- for: 10m
- labels:
- severity: warning
-
--- kubernetes/apps/actions-runner-system/gha-runner-scale-set-controller/app Kustomization: actions-runner-system/gha-runner-scale-set-controller PriorityClass: actions-runner-system/gha-runner-infrastructure
+++ kubernetes/apps/actions-runner-system/gha-runner-scale-set-controller/app Kustomization: actions-runner-system/gha-runner-scale-set-controller PriorityClass: actions-runner-system/gha-runner-infrastructure
@@ -1,14 +0,0 @@
----
-apiVersion: scheduling.k8s.io/v1
-description: Priority class for GitHub Actions Runner infrastructure (controller,
- listener)
-globalDefault: false
-kind: PriorityClass
-metadata:
- labels:
- app.kubernetes.io/name: gha-runner-scale-set-controller
- kustomize.toolkit.fluxcd.io/name: gha-runner-scale-set-controller
- kustomize.toolkit.fluxcd.io/namespace: actions-runner-system
- name: gha-runner-infrastructure
-value: 1000000
-
--- kubernetes/apps/actions-runner-system/gha-runner-scale-set-controller/app Kustomization: actions-runner-system/gha-runner-scale-set-controller ConfigMap: actions-runner-system/arc-dashboard
+++ kubernetes/apps/actions-runner-system/gha-runner-scale-set-controller/app Kustomization: actions-runner-system/gha-runner-scale-set-controller ConfigMap: actions-runner-system/arc-dashboard
@@ -1,1265 +0,0 @@
----
-apiVersion: v1
-data:
- arc-dashboard.json: |
- {
- "__inputs": [
- {
- "name": "DS_PROMETHEUS",
- "label": "Prometheus",
- "description": "",
- "type": "datasource",
- "pluginId": "prometheus",
- "pluginName": "Prometheus"
- }
- ],
- "__elements": {},
- "__requires": [
- {
- "type": "panel",
- "id": "gauge",
- "name": "Gauge",
- "version": ""
- },
- {
- "type": "grafana",
- "id": "grafana",
- "name": "Grafana",
- "version": "10.0.0"
- },
- {
- "type": "datasource",
- "id": "prometheus",
- "name": "Prometheus",
- "version": "1.0.0"
- },
- {
- "type": "panel",
- "id": "stat",
- "name": "Stat",
- "version": ""
- },
- {
- "type": "panel",
- "id": "timeseries",
- "name": "Time series",
- "version": ""
- }
- ],
- "annotations": {
- "list": [
- {
- "builtIn": 1,
- "datasource": {
- "type": "grafana",
- "uid": "-- Grafana --"
- },
- "enable": true,
- "hide": true,
- "iconColor": "rgba(0, 211, 255, 1)",
- "name": "Annotations & Alerts",
- "type": "dashboard"
- }
- ]
- },
- "description": "Starter dashboard to monitor the behavior of the autoscaling runner set mode of actions-runner-controller",
- "editable": true,
- "fiscalYearStartMonth": 0,
- "graphTooltip": 0,
- "id": null,
- "links": [],
- "liveNow": false,
- "panels": [
- {
- "collapsed": false,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 0
- },
- "id": 4,
- "panels": [],
- "title": "Runtime",
- "type": "row"
- },
- {
- "datasource": {
- "type": "prometheus",
- "uid": "${DS_PROMETHEUS}"
- },
- "description": "Number of active listener pods (in a running state)",
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "thresholds"
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- }
- ]
- }
- },
- "overrides": []
- },
- "gridPos": {
- "h": 8,
- "w": 2,
- "x": 0,
- "y": 1
- },
- "id": 14,
- "options": {
- "orientation": "auto",
- "reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
- "fields": "",
- "values": false
- },
- "showThresholdLabels": false,
- "showThresholdMarkers": true
- },
- "pluginVersion": "10.0.0",
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": "${DS_PROMETHEUS}"
- },
- "editorMode": "builder",
- "expr": "sum by(namespace) (gha_controller_running_listeners)",
- "instant": false,
- "range": true,
- "refId": "A"
- }
- ],
- "title": "Active listeners",
- "type": "gauge"
- },
- {
- "datasource": {
- "type": "prometheus",
- "uid": "${DS_PROMETHEUS}"
- },
- "description": "Total number of registered and running runners across namespaces",
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "thresholds"
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- }
- ]
- }
- },
- "overrides": []
- },
- "gridPos": {
- "h": 8,
- "w": 3,
- "x": 2,
- "y": 1
- },
- "id": 2,
- "options": {
- "colorMode": "value",
- "graphMode": "area",
- "justifyMode": "auto",
- "orientation": "auto",
- "reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
- "fields": "",
- "values": false
- },
- "textMode": "auto"
- },
- "pluginVersion": "10.0.0",
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": "${DS_PROMETHEUS}"
- },
- "editorMode": "builder",
- "expr": "sum by(namespace) (gha_registered_runners)",
- "hide": false,
- "instant": false,
- "legendFormat": "Registered",
- "range": true,
- "refId": "Registered"
- },
- {
- "datasource": {
- "type": "prometheus",
- "uid": "${DS_PROMETHEUS}"
- },
- "editorMode": "builder",
- "expr": "sum by(namespace) (gha_controller_running_ephemeral_runners)",
- "hide": false,
- "instant": false,
- "interval": "",
- "legendFormat": "Running",
- "range": true,
- "refId": "Running"
- }
- ],
- "title": "Runners States",
- "type": "stat"
- },
- {
- "datasource": {
- "type": "prometheus",
- "uid": "${DS_PROMETHEUS}"
- },
- "description": "Total number of failed runners across namespaces",
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "thresholds"
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "#EAB839",
- "value": 1
- },
- {
- "color": "dark-red",
- "value": 5
- }
- ]
- }
- },
- "overrides": []
- },
- "gridPos": {
- "h": 8,
- "w": 2,
- "x": 5,
- "y": 1
- },
- "id": 15,
- "options": {
- "colorMode": "value",
- "graphMode": "area",
- "justifyMode": "auto",
- "orientation": "auto",
- "reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
- "fields": "",
- "values": false
- },
- "textMode": "auto"
- },
- "pluginVersion": "10.0.0",
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": "${DS_PROMETHEUS}"
- },
- "editorMode": "builder",
- "exemplar": false,
- "expr": "sum by(namespace) (gha_controller_failed_ephemeral_runners)",
- "instant": false,
- "interval": "",
- "legendFormat": "__auto",
- "range": true,
- "refId": "Failed"
- }
- ],
- "title": "Failed (total)",
- "type": "stat"
- },
- {
- "datasource": {
- "type": "prometheus",
- "uid": "${DS_PROMETHEUS}"
- },
- "description": "Total number of pending runners across namespaces.",
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "thresholds"
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "orange",
- "value": 5
- }
- ]
- }
- },
- "overrides": []
- },
- "gridPos": {
- "h": 8,
- "w": 2,
- "x": 7,
- "y": 1
- },
- "id": 16,
- "options": {
- "colorMode": "value",
- "graphMode": "area",
- "justifyMode": "auto",
- "orientation": "auto",
- "reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
- "fields": "",
- "values": false
- },
- "textMode": "auto"
- },
- "pluginVersion": "10.0.0",
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": "${DS_PROMETHEUS}"
- },
- "editorMode": "builder",
- "expr": "sum by(namespace) (gha_controller_pending_ephemeral_runners)",
- "instant": false,
- "range": true,
- "refId": "A"
- }
- ],
[Diff truncated by flux-local]
--- kubernetes/apps/database/jetstream/streams Kustomization: database/jetstream-streams Stream: database/events
+++ kubernetes/apps/database/jetstream/streams Kustomization: database/jetstream-streams Stream: database/events
@@ -1,21 +0,0 @@
----
-apiVersion: jetstream.nats.io/v1beta2
-kind: Stream
-metadata:
- labels:
- app.kubernetes.io/name: jetstream-streams
- kustomize.toolkit.fluxcd.io/name: jetstream-streams
- kustomize.toolkit.fluxcd.io/namespace: database
- name: events
- namespace: database
-spec:
- discard: old
- maxAge: 168h
- maxBytes: 5368709120
- name: events
- replicas: 3
- retention: limits
- storage: file
- subjects:
- - events.>
-
--- kubernetes/apps/database/emqx/operator Kustomization: database/emqx-operator HelmRelease: database/emqx-operator
+++ kubernetes/apps/database/emqx/operator Kustomization: database/emqx-operator HelmRelease: database/emqx-operator
@@ -1,44 +0,0 @@
----
-apiVersion: helm.toolkit.fluxcd.io/v2
-kind: HelmRelease
-metadata:
- labels:
- app.kubernetes.io/name: emqx-operator
- kustomize.toolkit.fluxcd.io/name: emqx-operator
- kustomize.toolkit.fluxcd.io/namespace: database
- name: emqx-operator
- namespace: database
-spec:
- chart:
- spec:
- chart: emqx-operator
- interval: 5m
- sourceRef:
- kind: HelmRepository
- name: emqx-charts
- namespace: flux-system
- version: 2.2.29
- install:
- crds: CreateReplace
- remediation:
- retries: -1
- strategy:
- name: RetryOnFailure
- interval: 1h
- rollback:
- cleanupOnFail: true
- recreate: true
- upgrade:
- cleanupOnFail: true
- crds: CreateReplace
- remediation:
- remediateLastFailure: true
- retries: 2
- strategy:
- name: RemediateOnFailure
- values:
- fullnameOverride: emqx
- image:
- repository: ghcr.io/emqx/emqx-operator
- replicaCount: 1
-
--- kubernetes/apps/database/emqx/operator Kustomization: database/emqx-operator ExternalSecret: database/emqx
+++ kubernetes/apps/database/emqx/operator Kustomization: database/emqx-operator ExternalSecret: database/emqx
@@ -1,26 +0,0 @@
----
-apiVersion: external-secrets.io/v1
-kind: ExternalSecret
-metadata:
- labels:
- app.kubernetes.io/name: emqx-operator
- kustomize.toolkit.fluxcd.io/name: emqx-operator
- kustomize.toolkit.fluxcd.io/namespace: database
- name: emqx
- namespace: database
-spec:
- dataFrom:
- - extract:
- key: EMQX
- refreshInterval: 5m
- secretStoreRef:
- kind: ClusterSecretStore
- name: onepassword
- target:
- creationPolicy: Owner
- name: emqx-secret
- template:
- data:
- EMQX_DASHBOARD__DEFAULT_PASSWORD: '{{ index . "EMQX_DEFAULT_PASSWORD" }}'
- EMQX_DASHBOARD__DEFAULT_USERNAME: '{{ index . "EMQX_DEFAULT_USERNAME" }}'
-
--- kubernetes/apps/actions-runner-system/gha-runner-scale-set/app Kustomization: actions-runner-system/gha-runner-scale-set OCIRepository: actions-runner-system/gha-runner-scale-set
+++ kubernetes/apps/actions-runner-system/gha-runner-scale-set/app Kustomization: actions-runner-system/gha-runner-scale-set OCIRepository: actions-runner-system/gha-runner-scale-set
@@ -1,19 +0,0 @@
----
-apiVersion: source.toolkit.fluxcd.io/v1
-kind: OCIRepository
-metadata:
- labels:
- app.kubernetes.io/name: gha-runner-scale-set
- kustomize.toolkit.fluxcd.io/name: gha-runner-scale-set
- kustomize.toolkit.fluxcd.io/namespace: actions-runner-system
- name: gha-runner-scale-set
- namespace: actions-runner-system
-spec:
- interval: 1h
- layerSelector:
- mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
- operation: copy
- ref:
- tag: 0.14.2
- url: oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set
-
--- kubernetes/apps/actions-runner-system/gha-runner-scale-set/app Kustomization: actions-runner-system/gha-runner-scale-set ServiceAccount: actions-runner-system/actions-runner
+++ kubernetes/apps/actions-runner-system/gha-runner-scale-set/app Kustomization: actions-runner-system/gha-runner-scale-set ServiceAccount: actions-runner-system/actions-runner
@@ -1,14 +0,0 @@
----
-apiVersion: talos.dev/v1alpha1
-kind: ServiceAccount
-metadata:
- labels:
- app.kubernetes.io/name: gha-runner-scale-set
- kustomize.toolkit.fluxcd.io/name: gha-runner-scale-set
- kustomize.toolkit.fluxcd.io/namespace: actions-runner-system
- name: actions-runner
- namespace: actions-runner-system
-spec:
- roles:
- - os:operator
-
--- kubernetes/apps/actions-runner-system/gha-runner-scale-set/app Kustomization: actions-runner-system/gha-runner-scale-set ExternalSecret: actions-runner-system/aviator-coding-runner-secret
+++ kubernetes/apps/actions-runner-system/gha-runner-scale-set/app Kustomization: actions-runner-system/gha-runner-scale-set ExternalSecret: actions-runner-system/aviator-coding-runner-secret
@@ -1,35 +0,0 @@
----
-apiVersion: external-secrets.io/v1
-kind: ExternalSecret
-metadata:
- labels:
- app.kubernetes.io/name: gha-runner-scale-set
- kustomize.toolkit.fluxcd.io/name: gha-runner-scale-set
- kustomize.toolkit.fluxcd.io/namespace: actions-runner-system
- name: aviator-coding-runner-secret
- namespace: actions-runner-system
-spec:
- data:
- - remoteRef:
- key: github-acr-all-repositories
- property: private key
- secretKey: ACR_AVIATOR_CODING_PRIVATE_KEY
- dataFrom:
- - extract:
- key: github
- refreshInterval: 1h
- secretStoreRef:
- kind: ClusterSecretStore
- name: onepassword
- target:
- name: aviator-coding-runner-secret
- template:
- data:
- github_app_id: '{{ .ACR_AVIATOR_CODING_APP_ID }}'
- github_app_installation_id: '{{ .ACR_AVIATOR_CODING_INSTALLATION_ID }}'
- github_app_private_key: '{{ .ACR_AVIATOR_CODING_PRIVATE_KEY }}'
- engineVersion: v2
- metadata:
- labels:
- cnpg.io/reload: 'true'
-
--- kubernetes/apps/actions-runner-system/gha-runner-scale-set/app Kustomization: actions-runner-system/gha-runner-scale-set HelmRelease: actions-runner-system/gha-runner-scale-set-aviator-coding-home-ops
+++ kubernetes/apps/actions-runner-system/gha-runner-scale-set/app Kustomization: actions-runner-system/gha-runner-scale-set HelmRelease: actions-runner-system/gha-runner-scale-set-aviator-coding-home-ops
@@ -1,222 +0,0 @@
----
-apiVersion: helm.toolkit.fluxcd.io/v2
-kind: HelmRelease
-metadata:
- labels:
- app.kubernetes.io/name: gha-runner-scale-set
- kustomize.toolkit.fluxcd.io/name: gha-runner-scale-set
- kustomize.toolkit.fluxcd.io/namespace: actions-runner-system
- name: gha-runner-scale-set-aviator-coding-home-ops
- namespace: actions-runner-system
-spec:
- chartRef:
- kind: OCIRepository
- name: gha-runner-scale-set
- driftDetection:
- mode: enabled
- install:
- crds: CreateReplace
- remediation:
- retries: 3
- strategy:
- name: RetryOnFailure
- interval: 30m
- rollback:
- cleanupOnFail: true
- recreate: true
- upgrade:
- cleanupOnFail: true
- crds: CreateReplace
- remediation:
- remediateLastFailure: true
- retries: 2
- strategy:
- name: RemediateOnFailure
- values:
- annotations:
- secret.reloader.stakater.com/reload: aviator-coding-runner-secret
- controllerServiceAccount:
- name: gha-runner-scale-set-controller
- namespace: actions-runner-system
- githubConfigSecret: aviator-coding-runner-secret
- githubConfigUrl: https://github.com/aviator-coding/home-ops
- listenerMetrics:
- counters:
- gha_completed_jobs_total:
- labels:
- - repository
- - organization
- - enterprise
- - job_name
- - event_name
- - job_result
- gha_started_jobs_total:
- labels:
- - repository
- - organization
- - enterprise
- - job_name
- - event_name
- gauges:
- gha_assigned_jobs:
- labels:
- - name
- - namespace
- - repository
- - organization
- - enterprise
- gha_busy_runners:
- labels:
- - name
- - namespace
- - repository
- - organization
- - enterprise
- gha_desired_runners:
- labels:
- - name
- - namespace
- - repository
- - organization
- - enterprise
- gha_idle_runners:
- labels:
- - name
- - namespace
- - repository
- - organization
- - enterprise
- gha_max_runners:
- labels:
- - name
- - namespace
- - repository
- - organization
- - enterprise
- gha_min_runners:
- labels:
- - name
- - namespace
- - repository
- - organization
- - enterprise
- gha_registered_runners:
- labels:
- - name
- - namespace
- - repository
- - organization
- - enterprise
- gha_running_jobs:
- labels:
- - name
- - namespace
- - repository
- - organization
- - enterprise
- histograms:
- gha_job_execution_duration_seconds:
- labels:
- - repository
- - organization
- - enterprise
- - job_name
- - event_name
- - job_result
- gha_job_startup_duration_seconds:
- labels:
- - repository
- - organization
- - enterprise
- - job_name
- - event_name
- listenerTemplate:
- spec:
- containers:
- - name: listener
- resources:
- limits:
- cpu: 200m
- memory: 256Mi
- requests:
- cpu: 50m
- memory: 64Mi
- priorityClassName: gha-runner-infrastructure
- maxRunners: 15
- minRunners: 1
- template:
- metadata:
- annotations:
- secret.reloader.stakater.com/reload: aviator-coding-runner-secret
- spec:
- automountServiceAccountToken: false
- containers:
- - command:
- - /home/runner/run.sh
- env:
- - name: ACTIONS_RUNNER_REQUIRE_JOB_CONTAINER
- value: 'false'
- - name: NODE_IP
- valueFrom:
- fieldRef:
- fieldPath: status.hostIP
- - name: NODE
- valueFrom:
- fieldRef:
- fieldPath: status.hostIP
- - name: TALOSCONFIG
- value: /var/run/secrets/talos.dev/talosconfig
- - name: ACTIONS_RUNNER_PRINT_LOG_TO_STDOUT
- value: '1'
- image: ghcr.io/home-operations/actions-runner:2.336.0@sha256:281a9a090522fafbf4967f158b8c97d03552b1978b688893c5f7cb194 |
Pure-rename S10 migration. Resources live under
kubernetes/apps/base/{actions-runner-system,database}/; Flux Kustomizations
live as the apps/main overlays, including multi-doc ks.yaml for
cloudnative-pg (x4), emqx (x3), and jetstream (x3). Leaf and normalised
Kustomization renders of kubernetes/clusters/main are identical to
pre-change (canon/split/normks empty diff); flux-local test
--all-namespaces: 118 passed.
Aviator-Coding
force-pushed
the
fm/homeops-split-ns-lane2-s10
branch
from
August 24, 2026 23:43
efb521c to
193fc95
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Intent
Execute this lane of the split's namespace moves as SERIAL gated PRs, one stage per PR. S9 security+system already merged as #1430 and Flux converged live (all 5 security and 6 system Kustomizations Ready at 3721ce0 with apps/base paths; authentik, external-secrets, onepassword-connect, volsync, and related workloads Running). This run is S10 only: actions-runner-system + database. Do not start S11.
S10: run migrate-ns.py for exactly the actions-runner-system and database namespaces, producing the pure-rename move into the apps/base + apps/main overlay shape. Rebase onto current origin/main first (sibling lanes land concurrently; renames rebase cleanly - if a rebase ever conflicts on real content, stop and report rather than resolving blind). S10 has multi-doc ks.yaml x3 (cloudnative-pg x4, emqx x3, jetstream x3); the empty-diff gate proves them.
Gate before shipping, and quote the empty-diff result in the PR body:
Measured at this commit:
flux-local build all kubernetes/clusters/main --enable-helm
before: 118511 lines, 1880 docs
after: 118511 lines, 1880 docs
canon/split: leaf=1764 ks=116 both sides
diff -u s10-old.leaf.yaml s10-new.leaf.yaml -> rc=0, EMPTY
diff -u s10-old.ks.norm.yaml s10-new.ks.norm.yaml -> rc=0, EMPTY
flux-local test --all-namespaces --path kubernetes/clusters/main -> 118 passed in 7.41s
Never merge. Cluster reads are read-only via kubectl --kubeconfig /Users/coder/firstmate/projects/home-ops/kubeconfig. Never run op in a foreground command.
What Changed
actions-runner-systemanddatabasefrom the flatkubernetes/apps/<ns>layout intokubernetes/apps/base/<ns>resources pluskubernetes/apps/main/<ns>Flux Kustomization overlays (including multi-docks.yamlsplits for cloudnative-pg, emqx, and jetstream).apps/mainentry and dropped both namespaces from the inertkubernetes/apps/kustomization.yaml; updated path references in AGENTS.md, workflow comments, grafana, docs, and talos notes to the new base paths.flux-local buildofkubernetes/clusters/main: before/after 118511 lines / 1880 docs; canon/split leaf=1764 ks=116 both sides;diff -uleaf and normks both rc=0 EMPTY;flux-local test --all-namespaces --path kubernetes/clusters/main→ 118 passed in 7.41s.Risk Assessment
✅ Low: Pure-rename migration of exactly actions-runner-system and database into apps/base + apps/main with path-only rewrites, preserved multi-doc Kustomizations, and no functional content drift.
Testing
Reproduced the S10 empty-diff gate with the official canon/split/normks pipeline against before/after flux-local builds (identical 118511/1880 counts; leaf and ks.norm diffs empty) and ran flux-local test --all-namespaces to full green; multi-doc CNPG/emqx/jetstream overlays and S10-only scope also checked against the live pre-merge baseline.
Evidence: Empty-diff gate (leaf + ks.norm EMPTY)
before: 118511 lines, 1880 docs after: 118511 lines, 1880 docs canon/split: leaf=1764 ks=116 both sides diff -u s10-old.leaf.yaml s10-new.leaf.yaml -> rc=0, EMPTY diff -u s10-old.ks.norm.yaml s10-new.ks.norm.yaml -> rc=0, EMPTYEvidence: S10 full gate summary
Evidence: flux-local test --all-namespaces
collected 215 items = 215 passed in 52.03s =Evidence: Multi-doc overlays + residual flat dirs
Evidence: Live Flux Kustomizations (read-only pre-merge)
/var/folders/yr/h20mxtv56yj1c1pt9tr1_kbc0000gn/T/no-mistakes-evidence/01M0SNKE6ARQWE3AY4X5MFS5NB/s10-leaf.diff) - Evidence: Empty ks.norm.diff (0 bytes) (local file:/var/folders/yr/h20mxtv56yj1c1pt9tr1_kbc0000gn/T/no-mistakes-evidence/01M0SNKE6ARQWE3AY4X5MFS5NB/s10-ks.diff)Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
✅ **Review** - passed
✅ No issues found.
✅ **Test** - passed
✅ No issues found.
flux-local build all kubernetes/clusters/main --enable-helmat base 3721ce03 (118511 lines, 1880 docs) and target 5c44e9b1 (118511 lines, 1880 docs)python3 canon.py+split.py+normks.py(scout) thendiff -u s10-old.leaf.yaml s10-new.leaf.yaml(rc=0 EMPTY) anddiff -u s10-old.ks.norm.yaml s10-new.ks.norm.yaml(rc=0 EMPTY); leaf=1764 ks=116 both sidesflux-local test --all-namespaces --path kubernetes/clusters/main --enable-helm(215 passed in 52.03s)Multi-doc overlay check: cloudnative-pg x4, emqx x3, jetstream x3 under apps/main/database; flat apps/{actions-runner-system,database} absentkubectl --kubeconfig ... get ks -n actions-runner-systemand-n database(read-only baseline Ready @ 3721ce03)✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.