Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: helmfile snapshot-controller and volsync #8893

Merged
merged 7 commits into from
Feb 27, 2025
Merged

Conversation

onedr0p
Copy link
Owner

@onedr0p onedr0p commented Feb 27, 2025

The reason for this is it removes a lot of spaghetti depends in the apps, expecting these crds to exist before flux lands is nice. I also moved snapshot-controller to kube-system as this component is used by volsync and rook-ceph and potentially other CSI

Signed-off-by: Devin Buhl <devin@buhl.casa>
@bot-ross bot-ross bot added the area/kubernetes Changes made in the kubernetes directory label Feb 27, 2025
@bot-ross
Copy link
Contributor

bot-ross bot commented Feb 27, 2025

--- kubernetes/apps/volsync-system/snapshot-controller/app Kustomization: volsync-system/snapshot-controller HelmRelease: volsync-system/snapshot-controller

+++ kubernetes/apps/volsync-system/snapshot-controller/app Kustomization: volsync-system/snapshot-controller HelmRelease: volsync-system/snapshot-controller

@@ -1,36 +0,0 @@

----
-apiVersion: helm.toolkit.fluxcd.io/v2
-kind: HelmRelease
-metadata:
-  labels:
-    app.kubernetes.io/name: snapshot-controller
-    kustomize.toolkit.fluxcd.io/name: snapshot-controller
-    kustomize.toolkit.fluxcd.io/namespace: volsync-system
-  name: snapshot-controller
-  namespace: volsync-system
-spec:
-  chart:
-    spec:
-      chart: snapshot-controller
-      sourceRef:
-        kind: HelmRepository
-        name: piraeus
-        namespace: flux-system
-      version: 4.0.1
-  install:
-    crds: CreateReplace
-    remediation:
-      retries: 3
-  interval: 30m
-  upgrade:
-    cleanupOnFail: true
-    crds: CreateReplace
-    remediation:
-      retries: 3
-      strategy: rollback
-  values:
-    controller:
-      replicaCount: 2
-      serviceMonitor:
-        create: true
-
--- kubernetes/apps/volsync-system/volsync/app Kustomization: volsync-system/volsync HelmRelease: volsync-system/volsync

+++ kubernetes/apps/volsync-system/volsync/app Kustomization: volsync-system/volsync HelmRelease: volsync-system/volsync

@@ -14,28 +14,19 @@

       chart: volsync
       sourceRef:
         kind: HelmRepository
         name: backube
         namespace: flux-system
       version: 0.12.0-rc.2
-  dependsOn:
-  - name: snapshot-controller
-    namespace: volsync-system
   install:
     remediation:
       retries: 3
   interval: 30m
   upgrade:
     cleanupOnFail: true
     remediation:
       retries: 3
       strategy: rollback
-  values:
-    manageCRDs: true
-    metrics:
-      disableAuth: true
-    podSecurityContext:
-      runAsGroup: 1000
-      runAsNonRoot: true
-      runAsUser: 1000
-    replicaCount: 1
+  valuesFrom:
+  - kind: ConfigMap
+    name: volsync-values-2hgd95b579
 
--- kubernetes/apps/volsync-system/volsync/app Kustomization: volsync-system/volsync ConfigMap: volsync-system/volsync-values-2hgd95b579

+++ kubernetes/apps/volsync-system/volsync/app Kustomization: volsync-system/volsync ConfigMap: volsync-system/volsync-values-2hgd95b579

@@ -0,0 +1,22 @@

+---
+apiVersion: v1
+data:
+  values.yaml: |
+    ---
+    manageCRDs: true
+    replicaCount: 2
+    metrics:
+      disableAuth: true
+    podSecurityContext:
+      runAsNonRoot: true
+      runAsUser: 1000
+      runAsGroup: 1000
+kind: ConfigMap
+metadata:
+  labels:
+    app.kubernetes.io/name: volsync
+    kustomize.toolkit.fluxcd.io/name: volsync
+    kustomize.toolkit.fluxcd.io/namespace: volsync-system
+  name: volsync-values-2hgd95b579
+  namespace: volsync-system
+
--- kubernetes/apps/rook-ceph/rook-ceph/app Kustomization: rook-ceph/rook-ceph HelmRelease: rook-ceph/rook-ceph-operator

+++ kubernetes/apps/rook-ceph/rook-ceph/app Kustomization: rook-ceph/rook-ceph HelmRelease: rook-ceph/rook-ceph-operator

@@ -14,15 +14,12 @@

       chart: rook-ceph
       sourceRef:
         kind: HelmRepository
         name: rook-ceph
         namespace: flux-system
       version: v1.16.4
-  dependsOn:
-  - name: snapshot-controller
-    namespace: volsync-system
   install:
     remediation:
       retries: 3
   interval: 30m
   timeout: 15m
   upgrade:
--- kubernetes/apps/rook-ceph/rook-ceph/cluster Kustomization: rook-ceph/rook-ceph-cluster HelmRelease: rook-ceph/rook-ceph-cluster

+++ kubernetes/apps/rook-ceph/rook-ceph/cluster Kustomization: rook-ceph/rook-ceph-cluster HelmRelease: rook-ceph/rook-ceph-cluster

@@ -17,14 +17,12 @@

         name: rook-ceph
         namespace: flux-system
       version: v1.16.4
   dependsOn:
   - name: rook-ceph-operator
     namespace: rook-ceph
-  - name: snapshot-controller
-    namespace: volsync-system
   install:
     remediation:
       retries: 3
   interval: 30m
   timeout: 15m
   upgrade:
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/atuin

+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/atuin

@@ -18,14 +18,12 @@

     provider: sops
     secretRef:
       name: sops-age
   dependsOn:
   - name: rook-ceph-cluster
     namespace: rook-ceph
-  - name: volsync
-    namespace: volsync-system
   interval: 30m
   path: ./kubernetes/apps/default/atuin/app
   postBuild:
     substitute:
       APP: atuin
       GATUS_SUBDOMAIN: sh
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/autobrr

+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/autobrr

@@ -20,14 +20,12 @@

       name: sops-age
   dependsOn:
   - name: onepassword
     namespace: external-secrets
   - name: rook-ceph-cluster
     namespace: rook-ceph
-  - name: volsync
-    namespace: volsync-system
   interval: 30m
   path: ./kubernetes/apps/default/autobrr/app
   postBuild:
     substitute:
       APP: autobrr
       VOLSYNC_CAPACITY: 5Gi
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/bazarr

+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/bazarr

@@ -20,14 +20,12 @@

       name: sops-age
   dependsOn:
   - name: onepassword
     namespace: external-secrets
   - name: rook-ceph-cluster
     namespace: rook-ceph
-  - name: volsync
-    namespace: volsync-system
   interval: 30m
   path: ./kubernetes/apps/default/bazarr/app
   postBuild:
     substitute:
       APP: bazarr
       VOLSYNC_CAPACITY: 5Gi
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/cross-seed

+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/cross-seed

@@ -17,14 +17,14 @@

     provider: sops
     secretRef:
       name: sops-age
   dependsOn:
   - name: onepassword
     namespace: external-secrets
-  - name: volsync
-    namespace: volsync-system
+  - name: rook-ceph-cluster
+    namespace: rook-ceph
   interval: 30m
   path: ./kubernetes/apps/default/cross-seed/app
   postBuild:
     substitute:
       APP: cross-seed
       VOLSYNC_CAPACITY: 5Gi
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/home-assistant

+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/home-assistant

@@ -22,14 +22,12 @@

   - name: emqx-cluster
     namespace: default
   - name: onepassword
     namespace: external-secrets
   - name: rook-ceph-cluster
     namespace: rook-ceph
-  - name: volsync
-    namespace: volsync-system
   interval: 30m
   path: ./kubernetes/apps/default/home-assistant/app
   postBuild:
     substitute:
       APP: home-assistant
       GATUS_SUBDOMAIN: hass
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/jellyseerr

+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/jellyseerr

@@ -20,14 +20,12 @@

       name: sops-age
   dependsOn:
   - name: onepassword
     namespace: external-secrets
   - name: rook-ceph-cluster
     namespace: rook-ceph
-  - name: volsync
-    namespace: volsync-system
   interval: 30m
   path: ./kubernetes/apps/default/jellyseerr/app
   postBuild:
     substitute:
       APP: jellyseerr
       GATUS_PATH: /api/v1/status
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/pinchflat

+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/pinchflat

@@ -18,14 +18,12 @@

     provider: sops
     secretRef:
       name: sops-age
   dependsOn:
   - name: rook-ceph-cluster
     namespace: rook-ceph
-  - name: volsync
-    namespace: volsync-system
   interval: 30m
   path: ./kubernetes/apps/default/pinchflat/app
   postBuild:
     substitute:
       APP: pinchflat
       VOLSYNC_CAPACITY: 5Gi
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/plex

+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/plex

@@ -20,14 +20,12 @@

       name: sops-age
   dependsOn:
   - name: onepassword
     namespace: external-secrets
   - name: rook-ceph-cluster
     namespace: rook-ceph
-  - name: volsync
-    namespace: volsync-system
   interval: 30m
   path: ./kubernetes/apps/default/plex/app
   postBuild:
     substitute:
       APP: plex
       GATUS_PATH: /web/index.html
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/prowlarr

+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/prowlarr

@@ -20,14 +20,12 @@

       name: sops-age
   dependsOn:
   - name: onepassword
     namespace: external-secrets
   - name: rook-ceph-cluster
     namespace: rook-ceph
-  - name: volsync
-    namespace: volsync-system
   interval: 30m
   path: ./kubernetes/apps/default/prowlarr/app
   postBuild:
     substitute:
       APP: prowlarr
       VOLSYNC_CAPACITY: 1Gi
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/qbittorrent

+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/qbittorrent

@@ -20,14 +20,12 @@

       name: sops-age
   dependsOn:
   - name: onepassword
     namespace: external-secrets
   - name: rook-ceph-cluster
     namespace: rook-ceph
-  - name: volsync
-    namespace: volsync-system
   interval: 30m
   path: ./kubernetes/apps/default/qbittorrent/app
   postBuild:
     substitute:
       APP: qbittorrent
       GATUS_SUBDOMAIN: qb
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/radarr

+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/radarr

@@ -20,14 +20,12 @@

       name: sops-age
   dependsOn:
   - name: onepassword
     namespace: external-secrets
   - name: rook-ceph-cluster
     namespace: rook-ceph
-  - name: volsync
-    namespace: volsync-system
   interval: 30m
   path: ./kubernetes/apps/default/radarr/app
   postBuild:
     substitute:
       APP: radarr
       VOLSYNC_CAPACITY: 5Gi
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/recyclarr

+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/recyclarr

@@ -19,14 +19,12 @@

       name: sops-age
   dependsOn:
   - name: onepassword
     namespace: external-secrets
   - name: rook-ceph-cluster
     namespace: rook-ceph
-  - name: volsync
-    namespace: volsync-system
   interval: 30m
   path: ./kubernetes/apps/default/recyclarr/app
   postBuild:
     substitute:
       APP: recyclarr
       VOLSYNC_CAPACITY: 1Gi
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/sabnzbd

+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/sabnzbd

@@ -20,14 +20,12 @@

       name: sops-age
   dependsOn:
   - name: onepassword
     namespace: external-secrets
   - name: rook-ceph-cluster
     namespace: rook-ceph
-  - name: volsync
-    namespace: volsync-system
   interval: 30m
   path: ./kubernetes/apps/default/sabnzbd/app
   postBuild:
     substitute:
       APP: sabnzbd
       GATUS_SUBDOMAIN: sab
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/sonarr

+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/sonarr

@@ -20,14 +20,12 @@

       name: sops-age
   dependsOn:
   - name: onepassword
     namespace: external-secrets
   - name: rook-ceph-cluster
     namespace: rook-ceph
-  - name: volsync
-    namespace: volsync-system
   interval: 30m
   path: ./kubernetes/apps/default/sonarr/app
   postBuild:
     substitute:
       APP: sonarr
       VOLSYNC_CAPACITY: 5Gi
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/tautulli

+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/tautulli

@@ -18,14 +18,12 @@

     provider: sops
     secretRef:
       name: sops-age
   dependsOn:
   - name: rook-ceph-cluster
     namespace: rook-ceph
-  - name: volsync
-    namespace: volsync-system
   interval: 30m
   path: ./kubernetes/apps/default/tautulli/app
   postBuild:
     substitute:
       APP: tautulli
       VOLSYNC_CAPACITY: 5Gi
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/zigbee

+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/zigbee

@@ -22,14 +22,12 @@

   - name: emqx-cluster
     namespace: default
   - name: onepassword
     namespace: external-secrets
   - name: rook-ceph-cluster
     namespace: rook-ceph
-  - name: volsync
-    namespace: volsync-system
   interval: 30m
   path: ./kubernetes/apps/default/zigbee/app
   postBuild:
     substitute:
       APP: zigbee
       VOLSYNC_CAPACITY: 1Gi
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/zwave

+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: default/zwave

@@ -18,14 +18,12 @@

     provider: sops
     secretRef:
       name: sops-age
   dependsOn:
   - name: rook-ceph-cluster
     namespace: rook-ceph
-  - name: volsync
-    namespace: volsync-system
   interval: 30m
   path: ./kubernetes/apps/default/zwave/app
   postBuild:
     substitute:
       APP: zwave
       VOLSYNC_CAPACITY: 1Gi
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: rook-ceph/rook-ceph-cluster

+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: rook-ceph/rook-ceph-cluster

@@ -14,15 +14,12 @@

   components:
   - ../../../../components/gatus/guarded
   decryption:
     provider: sops
     secretRef:
       name: sops-age
-  dependsOn:
-  - name: onepassword
-    namespace: external-secrets
   healthCheckExprs:
   - apiVersion: ceph.rook.io/v1
     current: status.ceph.health in ['HEALTH_OK', 'HEALTH_WARN']
     failed: status.ceph.health == 'HEALTH_ERR'
     kind: CephCluster
   healthChecks:
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: volsync-system/snapshot-controller

+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: volsync-system/snapshot-controller

@@ -1,28 +0,0 @@

----
-apiVersion: kustomize.toolkit.fluxcd.io/v1
-kind: Kustomization
-metadata:
-  labels:
-    kustomize.toolkit.fluxcd.io/name: cluster-apps
-    kustomize.toolkit.fluxcd.io/namespace: flux-system
-  name: snapshot-controller
-  namespace: volsync-system
-spec:
-  commonMetadata:
-    labels:
-      app.kubernetes.io/name: snapshot-controller
-  decryption:
-    provider: sops
-    secretRef:
-      name: sops-age
-  interval: 30m
-  path: ./kubernetes/apps/volsync-system/snapshot-controller/app
-  prune: true
-  sourceRef:
-    kind: GitRepository
-    name: flux-system
-    namespace: flux-system
-  targetNamespace: volsync-system
-  timeout: 5m
-  wait: false
-
--- kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: kube-system/snapshot-controller

+++ kubernetes/apps Kustomization: flux-system/cluster-apps Kustomization: kube-system/snapshot-controller

@@ -0,0 +1,28 @@

+---
+apiVersion: kustomize.toolkit.fluxcd.io/v1
+kind: Kustomization
+metadata:
+  labels:
+    kustomize.toolkit.fluxcd.io/name: cluster-apps
+    kustomize.toolkit.fluxcd.io/namespace: flux-system
+  name: snapshot-controller
+  namespace: kube-system
+spec:
+  commonMetadata:
+    labels:
+      app.kubernetes.io/name: snapshot-controller
+  decryption:
+    provider: sops
+    secretRef:
+      name: sops-age
+  interval: 30m
+  path: ./kubernetes/apps/kube-system/snapshot-controller/app
+  prune: true
+  sourceRef:
+    kind: GitRepository
+    name: flux-system
+    namespace: flux-system
+  targetNamespace: kube-system
+  timeout: 5m
+  wait: false
+
--- kubernetes/apps/kube-system/snapshot-controller/app Kustomization: kube-system/snapshot-controller HelmRelease: kube-system/snapshot-controller

+++ kubernetes/apps/kube-system/snapshot-controller/app Kustomization: kube-system/snapshot-controller HelmRelease: kube-system/snapshot-controller

@@ -0,0 +1,34 @@

+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+  labels:
+    app.kubernetes.io/name: snapshot-controller
+    kustomize.toolkit.fluxcd.io/name: snapshot-controller
+    kustomize.toolkit.fluxcd.io/namespace: kube-system
+  name: snapshot-controller
+  namespace: kube-system
+spec:
+  chart:
+    spec:
+      chart: snapshot-controller
+      sourceRef:
+        kind: HelmRepository
+        name: piraeus
+        namespace: flux-system
+      version: 4.0.1
+  install:
+    crds: CreateReplace
+    remediation:
+      retries: 3
+  interval: 30m
+  upgrade:
+    cleanupOnFail: true
+    crds: CreateReplace
+    remediation:
+      retries: 3
+      strategy: rollback
+  valuesFrom:
+  - kind: ConfigMap
+    name: snapshot-controller-values-g4f8gffcmt
+
--- kubernetes/apps/kube-system/snapshot-controller/app Kustomization: kube-system/snapshot-controller ConfigMap: kube-system/snapshot-controller-values-g4f8gffcmt

+++ kubernetes/apps/kube-system/snapshot-controller/app Kustomization: kube-system/snapshot-controller ConfigMap: kube-system/snapshot-controller-values-g4f8gffcmt

@@ -0,0 +1,18 @@

+---
+apiVersion: v1
+data:
+  values.yaml: |
+    ---
+    controller:
+      replicaCount: 2
+      serviceMonitor:
+        create: true
+kind: ConfigMap
+metadata:
+  labels:
+    app.kubernetes.io/name: snapshot-controller
+    kustomize.toolkit.fluxcd.io/name: snapshot-controller
+    kustomize.toolkit.fluxcd.io/namespace: kube-system
+  name: snapshot-controller-values-g4f8gffcmt
+  namespace: kube-system
+

@bot-ross
Copy link
Contributor

bot-ross bot commented Feb 27, 2025

--- HelmRelease: volsync-system/snapshot-controller ServiceAccount: volsync-system/snapshot-controller

+++ HelmRelease: volsync-system/snapshot-controller ServiceAccount: volsync-system/snapshot-controller

@@ -1,11 +0,0 @@

----
-apiVersion: v1
-kind: ServiceAccount
-metadata:
-  name: snapshot-controller
-  namespace: volsync-system
-  labels:
-    app.kubernetes.io/name: snapshot-controller
-    app.kubernetes.io/instance: snapshot-controller
-    app.kubernetes.io/managed-by: Helm
-
--- HelmRelease: volsync-system/snapshot-controller ClusterRole: volsync-system/snapshot-controller

+++ HelmRelease: volsync-system/snapshot-controller ClusterRole: volsync-system/snapshot-controller

@@ -1,122 +0,0 @@

----
-kind: ClusterRole
-apiVersion: rbac.authorization.k8s.io/v1
-metadata:
-  name: snapshot-controller
-rules:
-- apiGroups:
-  - ''
-  resources:
-  - persistentvolumes
-  verbs:
-  - get
-  - list
-  - watch
-- apiGroups:
-  - ''
-  resources:
-  - persistentvolumeclaims
-  verbs:
-  - get
-  - list
-  - watch
-  - update
-- apiGroups:
-  - ''
-  resources:
-  - events
-  verbs:
-  - list
-  - watch
-  - create
-  - update
-  - patch
-- apiGroups:
-  - snapshot.storage.k8s.io
-  resources:
-  - volumesnapshotclasses
-  verbs:
-  - get
-  - list
-  - watch
-- apiGroups:
-  - snapshot.storage.k8s.io
-  resources:
-  - volumesnapshotcontents
-  verbs:
-  - create
-  - get
-  - list
-  - watch
-  - update
-  - delete
-  - patch
-- apiGroups:
-  - snapshot.storage.k8s.io
-  resources:
-  - volumesnapshotcontents/status
-  verbs:
-  - patch
-- apiGroups:
-  - snapshot.storage.k8s.io
-  resources:
-  - volumesnapshots
-  verbs:
-  - create
-  - get
-  - list
-  - watch
-  - update
-  - patch
-  - delete
-- apiGroups:
-  - snapshot.storage.k8s.io
-  resources:
-  - volumesnapshots/status
-  verbs:
-  - update
-  - patch
-- apiGroups:
-  - groupsnapshot.storage.k8s.io
-  resources:
-  - volumegroupsnapshotclasses
-  verbs:
-  - get
-  - list
-  - watch
-- apiGroups:
-  - groupsnapshot.storage.k8s.io
-  resources:
-  - volumegroupsnapshotcontents
-  verbs:
-  - create
-  - get
-  - list
-  - watch
-  - update
-  - delete
-  - patch
-- apiGroups:
-  - groupsnapshot.storage.k8s.io
-  resources:
-  - volumegroupsnapshotcontents/status
-  verbs:
-  - patch
-- apiGroups:
-  - groupsnapshot.storage.k8s.io
-  resources:
-  - volumegroupsnapshots
-  verbs:
-  - get
-  - list
-  - watch
-  - update
-  - patch
-- apiGroups:
-  - groupsnapshot.storage.k8s.io
-  resources:
-  - volumegroupsnapshots/status
-  verbs:
-  - update
-  - patch
-
--- HelmRelease: volsync-system/snapshot-controller ClusterRoleBinding: volsync-system/snapshot-controller

+++ HelmRelease: volsync-system/snapshot-controller ClusterRoleBinding: volsync-system/snapshot-controller

@@ -1,14 +0,0 @@

----
-kind: ClusterRoleBinding
-apiVersion: rbac.authorization.k8s.io/v1
-metadata:
-  name: snapshot-controller
-subjects:
-- kind: ServiceAccount
-  name: snapshot-controller
-  namespace: volsync-system
-roleRef:
-  kind: ClusterRole
-  name: snapshot-controller
-  apiGroup: rbac.authorization.k8s.io
-
--- HelmRelease: volsync-system/snapshot-controller Role: volsync-system/snapshot-controller

+++ HelmRelease: volsync-system/snapshot-controller Role: volsync-system/snapshot-controller

@@ -1,19 +0,0 @@

----
-kind: Role
-apiVersion: rbac.authorization.k8s.io/v1
-metadata:
-  name: snapshot-controller
-  namespace: volsync-system
-rules:
-- apiGroups:
-  - coordination.k8s.io
-  resources:
-  - leases
-  verbs:
-  - get
-  - watch
-  - list
-  - delete
-  - update
-  - create
-
--- HelmRelease: volsync-system/snapshot-controller RoleBinding: volsync-system/snapshot-controller

+++ HelmRelease: volsync-system/snapshot-controller RoleBinding: volsync-system/snapshot-controller

@@ -1,14 +0,0 @@

----
-kind: RoleBinding
-apiVersion: rbac.authorization.k8s.io/v1
-metadata:
-  name: snapshot-controller
-  namespace: volsync-system
-subjects:
-- kind: ServiceAccount
-  name: snapshot-controller
-roleRef:
-  kind: Role
-  name: snapshot-controller
-  apiGroup: rbac.authorization.k8s.io
-
--- HelmRelease: volsync-system/snapshot-controller Service: volsync-system/snapshot-controller

+++ HelmRelease: volsync-system/snapshot-controller Service: volsync-system/snapshot-controller

@@ -1,20 +0,0 @@

----
-apiVersion: v1
-kind: Service
-metadata:
-  name: snapshot-controller
-  namespace: volsync-system
-  labels:
-    app.kubernetes.io/name: snapshot-controller
-    app.kubernetes.io/instance: snapshot-controller
-    app.kubernetes.io/managed-by: Helm
-spec:
-  clusterIP: None
-  ports:
-  - port: 8080
-    targetPort: 8080
-    name: http
-  selector:
-    app.kubernetes.io/name: snapshot-controller
-    app.kubernetes.io/instance: snapshot-controller
-
--- HelmRelease: volsync-system/snapshot-controller Deployment: volsync-system/snapshot-controller

+++ HelmRelease: volsync-system/snapshot-controller Deployment: volsync-system/snapshot-controller

@@ -1,63 +0,0 @@

----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  name: snapshot-controller
-  namespace: volsync-system
-  labels:
-    app.kubernetes.io/name: snapshot-controller
-    app.kubernetes.io/instance: snapshot-controller
-    app.kubernetes.io/managed-by: Helm
-spec:
-  replicas: 2
-  revisionHistoryLimit: 10
-  selector:
-    matchLabels:
-      app.kubernetes.io/name: snapshot-controller
-      app.kubernetes.io/instance: snapshot-controller
-  template:
-    metadata:
-      labels:
-        app.kubernetes.io/name: snapshot-controller
-        app.kubernetes.io/instance: snapshot-controller
-    spec:
-      serviceAccountName: snapshot-controller
-      securityContext: {}
-      containers:
-      - name: snapshot-controller
-        securityContext:
-          capabilities:
-            drop:
-            - ALL
-          readOnlyRootFilesystem: true
-          runAsNonRoot: true
-          runAsUser: 1000
-        image: registry.k8s.io/sig-storage/snapshot-controller:v8.2.0
-        imagePullPolicy: IfNotPresent
-        args:
-        - --http-endpoint=:8080
-        - --leader-election=true
-        - --leader-election-namespace=$(NAMESPACE)
-        ports:
-        - name: http
-          containerPort: 8080
-          protocol: TCP
-        readinessProbe:
-          httpGet:
-            port: http
-            path: /healthz/leader-election
-            scheme: HTTP
-        livenessProbe:
-          httpGet:
-            port: http
-            path: /healthz/leader-election
-            scheme: HTTP
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              fieldPath: metadata.namespace
-        resources: {}
-      hostNetwork: false
-      dnsPolicy: ClusterFirst
-
--- HelmRelease: volsync-system/snapshot-controller ServiceMonitor: volsync-system/snapshot-controller

+++ HelmRelease: volsync-system/snapshot-controller ServiceMonitor: volsync-system/snapshot-controller

@@ -1,19 +0,0 @@

----
-apiVersion: monitoring.coreos.com/v1
-kind: ServiceMonitor
-metadata:
-  name: snapshot-controller
-  namespace: volsync-system
-  labels:
-    app.kubernetes.io/name: snapshot-controller
-    app.kubernetes.io/instance: snapshot-controller
-    app.kubernetes.io/managed-by: Helm
-spec:
-  selector:
-    matchLabels:
-      app.kubernetes.io/name: snapshot-controller
-      app.kubernetes.io/instance: snapshot-controller
-  endpoints:
-  - port: http
-    path: /metrics
-
--- HelmRelease: volsync-system/volsync Deployment: volsync-system/volsync

+++ HelmRelease: volsync-system/volsync Deployment: volsync-system/volsync

@@ -6,13 +6,13 @@

   labels:
     control-plane: volsync-controller
     app.kubernetes.io/name: volsync
     app.kubernetes.io/instance: volsync
     app.kubernetes.io/managed-by: Helm
 spec:
-  replicas: 1
+  replicas: 2
   selector:
     matchLabels:
       control-plane: volsync-controller
       app.kubernetes.io/name: volsync
       app.kubernetes.io/instance: volsync
   template:
--- HelmRelease: kube-system/snapshot-controller ServiceAccount: kube-system/snapshot-controller

+++ HelmRelease: kube-system/snapshot-controller ServiceAccount: kube-system/snapshot-controller

@@ -0,0 +1,11 @@

+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: snapshot-controller
+  namespace: kube-system
+  labels:
+    app.kubernetes.io/name: snapshot-controller
+    app.kubernetes.io/instance: snapshot-controller
+    app.kubernetes.io/managed-by: Helm
+
--- HelmRelease: kube-system/snapshot-controller ClusterRole: kube-system/snapshot-controller

+++ HelmRelease: kube-system/snapshot-controller ClusterRole: kube-system/snapshot-controller

@@ -0,0 +1,122 @@

+---
+kind: ClusterRole
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+  name: snapshot-controller
+rules:
+- apiGroups:
+  - ''
+  resources:
+  - persistentvolumes
+  verbs:
+  - get
+  - list
+  - watch
+- apiGroups:
+  - ''
+  resources:
+  - persistentvolumeclaims
+  verbs:
+  - get
+  - list
+  - watch
+  - update
+- apiGroups:
+  - ''
+  resources:
+  - events
+  verbs:
+  - list
+  - watch
+  - create
+  - update
+  - patch
+- apiGroups:
+  - snapshot.storage.k8s.io
+  resources:
+  - volumesnapshotclasses
+  verbs:
+  - get
+  - list
+  - watch
+- apiGroups:
+  - snapshot.storage.k8s.io
+  resources:
+  - volumesnapshotcontents
+  verbs:
+  - create
+  - get
+  - list
+  - watch
+  - update
+  - delete
+  - patch
+- apiGroups:
+  - snapshot.storage.k8s.io
+  resources:
+  - volumesnapshotcontents/status
+  verbs:
+  - patch
+- apiGroups:
+  - snapshot.storage.k8s.io
+  resources:
+  - volumesnapshots
+  verbs:
+  - create
+  - get
+  - list
+  - watch
+  - update
+  - patch
+  - delete
+- apiGroups:
+  - snapshot.storage.k8s.io
+  resources:
+  - volumesnapshots/status
+  verbs:
+  - update
+  - patch
+- apiGroups:
+  - groupsnapshot.storage.k8s.io
+  resources:
+  - volumegroupsnapshotclasses
+  verbs:
+  - get
+  - list
+  - watch
+- apiGroups:
+  - groupsnapshot.storage.k8s.io
+  resources:
+  - volumegroupsnapshotcontents
+  verbs:
+  - create
+  - get
+  - list
+  - watch
+  - update
+  - delete
+  - patch
+- apiGroups:
+  - groupsnapshot.storage.k8s.io
+  resources:
+  - volumegroupsnapshotcontents/status
+  verbs:
+  - patch
+- apiGroups:
+  - groupsnapshot.storage.k8s.io
+  resources:
+  - volumegroupsnapshots
+  verbs:
+  - get
+  - list
+  - watch
+  - update
+  - patch
+- apiGroups:
+  - groupsnapshot.storage.k8s.io
+  resources:
+  - volumegroupsnapshots/status
+  verbs:
+  - update
+  - patch
+
--- HelmRelease: kube-system/snapshot-controller ClusterRoleBinding: kube-system/snapshot-controller

+++ HelmRelease: kube-system/snapshot-controller ClusterRoleBinding: kube-system/snapshot-controller

@@ -0,0 +1,14 @@

+---
+kind: ClusterRoleBinding
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+  name: snapshot-controller
+subjects:
+- kind: ServiceAccount
+  name: snapshot-controller
+  namespace: kube-system
+roleRef:
+  kind: ClusterRole
+  name: snapshot-controller
+  apiGroup: rbac.authorization.k8s.io
+
--- HelmRelease: kube-system/snapshot-controller Role: kube-system/snapshot-controller

+++ HelmRelease: kube-system/snapshot-controller Role: kube-system/snapshot-controller

@@ -0,0 +1,19 @@

+---
+kind: Role
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+  name: snapshot-controller
+  namespace: kube-system
+rules:
+- apiGroups:
+  - coordination.k8s.io
+  resources:
+  - leases
+  verbs:
+  - get
+  - watch
+  - list
+  - delete
+  - update
+  - create
+
--- HelmRelease: kube-system/snapshot-controller RoleBinding: kube-system/snapshot-controller

+++ HelmRelease: kube-system/snapshot-controller RoleBinding: kube-system/snapshot-controller

@@ -0,0 +1,14 @@

+---
+kind: RoleBinding
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+  name: snapshot-controller
+  namespace: kube-system
+subjects:
+- kind: ServiceAccount
+  name: snapshot-controller
+roleRef:
+  kind: Role
+  name: snapshot-controller
+  apiGroup: rbac.authorization.k8s.io
+
--- HelmRelease: kube-system/snapshot-controller Service: kube-system/snapshot-controller

+++ HelmRelease: kube-system/snapshot-controller Service: kube-system/snapshot-controller

@@ -0,0 +1,20 @@

+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: snapshot-controller
+  namespace: kube-system
+  labels:
+    app.kubernetes.io/name: snapshot-controller
+    app.kubernetes.io/instance: snapshot-controller
+    app.kubernetes.io/managed-by: Helm
+spec:
+  clusterIP: None
+  ports:
+  - port: 8080
+    targetPort: 8080
+    name: http
+  selector:
+    app.kubernetes.io/name: snapshot-controller
+    app.kubernetes.io/instance: snapshot-controller
+
--- HelmRelease: kube-system/snapshot-controller Deployment: kube-system/snapshot-controller

+++ HelmRelease: kube-system/snapshot-controller Deployment: kube-system/snapshot-controller

@@ -0,0 +1,63 @@

+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: snapshot-controller
+  namespace: kube-system
+  labels:
+    app.kubernetes.io/name: snapshot-controller
+    app.kubernetes.io/instance: snapshot-controller
+    app.kubernetes.io/managed-by: Helm
+spec:
+  replicas: 2
+  revisionHistoryLimit: 10
+  selector:
+    matchLabels:
+      app.kubernetes.io/name: snapshot-controller
+      app.kubernetes.io/instance: snapshot-controller
+  template:
+    metadata:
+      labels:
+        app.kubernetes.io/name: snapshot-controller
+        app.kubernetes.io/instance: snapshot-controller
+    spec:
+      serviceAccountName: snapshot-controller
+      securityContext: {}
+      containers:
+      - name: snapshot-controller
+        securityContext:
+          capabilities:
+            drop:
+            - ALL
+          readOnlyRootFilesystem: true
+          runAsNonRoot: true
+          runAsUser: 1000
+        image: registry.k8s.io/sig-storage/snapshot-controller:v8.2.0
+        imagePullPolicy: IfNotPresent
+        args:
+        - --http-endpoint=:8080
+        - --leader-election=true
+        - --leader-election-namespace=$(NAMESPACE)
+        ports:
+        - name: http
+          containerPort: 8080
+          protocol: TCP
+        readinessProbe:
+          httpGet:
+            port: http
+            path: /healthz/leader-election
+            scheme: HTTP
+        livenessProbe:
+          httpGet:
+            port: http
+            path: /healthz/leader-election
+            scheme: HTTP
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              fieldPath: metadata.namespace
+        resources: {}
+      hostNetwork: false
+      dnsPolicy: ClusterFirst
+
--- HelmRelease: kube-system/snapshot-controller ServiceMonitor: kube-system/snapshot-controller

+++ HelmRelease: kube-system/snapshot-controller ServiceMonitor: kube-system/snapshot-controller

@@ -0,0 +1,19 @@

+---
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+  name: snapshot-controller
+  namespace: kube-system
+  labels:
+    app.kubernetes.io/name: snapshot-controller
+    app.kubernetes.io/instance: snapshot-controller
+    app.kubernetes.io/managed-by: Helm
+spec:
+  selector:
+    matchLabels:
+      app.kubernetes.io/name: snapshot-controller
+      app.kubernetes.io/instance: snapshot-controller
+  endpoints:
+  - port: http
+    path: /metrics
+

Signed-off-by: Devin Buhl <devin@buhl.casa>
@onedr0p onedr0p changed the title chore: move snapshot controller to kube-system chore: helmfile snapshot-controller and volsync Feb 27, 2025
Signed-off-by: Devin Buhl <devin@buhl.casa>
Signed-off-by: Devin Buhl <devin@buhl.casa>
Signed-off-by: Devin Buhl <devin@buhl.casa>
Signed-off-by: Devin Buhl <devin@buhl.casa>
Signed-off-by: Devin Buhl <devin@buhl.casa>
@onedr0p onedr0p merged commit 4a52772 into main Feb 27, 2025
15 checks passed
@onedr0p onedr0p deleted the reorg-snapshotc branch February 27, 2025 15:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/bootstrap area/kubernetes Changes made in the kubernetes directory area/scripts
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant