From cf03440780e99e73d517229162890aa9ede896f4 Mon Sep 17 00:00:00 2001
From: Matt Reeves <admin@mafyuh.io>
Date: Mon, 17 Feb 2025 22:11:58 -0500
Subject: [PATCH] test migrate radarr to helm

---
 .../production/arr/radarr/deployment.yaml     |  59 ---------
 .../production/arr/radarr/helmrelease.yaml    | 116 ++++++++++++++++++
 .../apps/production/arr/radarr/ingress.yaml   |  22 ----
 .../production/arr/radarr/kustomization.yaml  |   4 +-
 .../apps/production/arr/radarr/service.yaml   |  13 --
 .../cert-manager/issuers/secret-cf-token.yaml |  16 +--
 .../production/charts/bjw-s-chart.yaml        |  10 ++
 .../production/charts}/kustomization.yaml     |   3 +-
 .../production/config/cluster-config.yaml     |   7 ++
 .../production/config/cluster-secrets.yaml    |  29 +++++
 .../production/config/kustomization.yaml      |   6 +
 .../production/config}/qbitty-secrets.yaml    |   0
 .../cluster/production/flux-system/apps.yaml  |   4 +-
 .../production/flux-system/secrets.yaml       |   8 +-
 .../cluster/production/kustomization.yaml     |   6 +
 kubernetes/kustomization.yaml                 |   2 +-
 kubernetes/secrets/flux.yaml                  |  28 -----
 17 files changed, 195 insertions(+), 138 deletions(-)
 delete mode 100644 kubernetes/apps/production/arr/radarr/deployment.yaml
 create mode 100644 kubernetes/apps/production/arr/radarr/helmrelease.yaml
 delete mode 100644 kubernetes/apps/production/arr/radarr/ingress.yaml
 delete mode 100644 kubernetes/apps/production/arr/radarr/service.yaml
 create mode 100644 kubernetes/cluster/production/charts/bjw-s-chart.yaml
 rename kubernetes/{secrets => cluster/production/charts}/kustomization.yaml (66%)
 create mode 100644 kubernetes/cluster/production/config/cluster-config.yaml
 create mode 100644 kubernetes/cluster/production/config/cluster-secrets.yaml
 create mode 100644 kubernetes/cluster/production/config/kustomization.yaml
 rename kubernetes/{secrets => cluster/production/config}/qbitty-secrets.yaml (100%)
 create mode 100644 kubernetes/cluster/production/kustomization.yaml
 delete mode 100644 kubernetes/secrets/flux.yaml

diff --git a/kubernetes/apps/production/arr/radarr/deployment.yaml b/kubernetes/apps/production/arr/radarr/deployment.yaml
deleted file mode 100644
index c351916..0000000
--- a/kubernetes/apps/production/arr/radarr/deployment.yaml
+++ /dev/null
@@ -1,59 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-    name: radarr
-    namespace: arr
-    labels:
-        app: radarr
-spec:
-    replicas: 1
-    selector:
-        matchLabels:
-            app: radarr
-    template:
-        metadata:
-            labels:
-                app: radarr
-        spec:
-            securityContext:
-                runAsUser: 65534
-                runAsGroup: 65534
-                fsGroup: 65534
-                fsGroupChangePolicy: OnRootMismatch
-            containers:
-                - name: radarr
-                  image: ghcr.io/onedr0p/radarr:rolling@sha256:f63ab1d9875d81f1b6d7cd69427749451d2fab981e39ffb8d9071c2e21041170
-                  imagePullPolicy: IfNotPresent
-                  resources:
-                    requests:
-                        memory: 512Mi
-                        cpu: 100m
-                    limits:
-                        memory: 2Gi
-                        cpu: 500m
-                  volumeMounts:
-                    - mountPath: /config
-                      name: radarr
-                    - mountPath: /data
-                      name: nas
-            volumes:
-                - name: nas
-                  nfs:
-                    path: /mnt/thePool/thePoolShare
-                    server: 10.0.0.10
-                - name: radarr
-                  persistentVolumeClaim:
-                    claimName: radarr
----
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
-  name: radarr
-  namespace: arr
-spec:
-  accessModes:
-    - ReadWriteMany
-  resources:
-    requests:
-      storage: 3Gi
-  storageClassName: longhorn
diff --git a/kubernetes/apps/production/arr/radarr/helmrelease.yaml b/kubernetes/apps/production/arr/radarr/helmrelease.yaml
new file mode 100644
index 0000000..39fd46e
--- /dev/null
+++ b/kubernetes/apps/production/arr/radarr/helmrelease.yaml
@@ -0,0 +1,116 @@
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+  name: &app radarr
+  namespace: arr
+spec:
+  interval: 15m
+  chart:
+    spec:
+      chart: app-template
+      version: 3.7.1
+      interval: 30m
+      sourceRef:
+        kind: HelmRepository
+        name: bjw-s
+        namespace: flux-system
+
+  install:
+    remediation:
+      retries: 3
+  upgrade:
+    remediation:
+      retries: 3
+
+  values:
+    global:
+      fullnameOverride: *app
+      namespace: arr
+
+    controllers:
+      radarr:
+        enabled: true
+        type: statefulset
+
+        replicas: 1
+
+        statefulset:
+          volumeClaimTemplates:
+            - name: config
+              accessMode: ReadWriteMany
+              size: 3Gi
+              storageClass: longhorn
+              globalMounts:
+                - path: /config
+
+        pod:
+          securityContext:
+            runAsUser: 65534
+            runAsGroup: &group 65534
+            fsGroup: *group
+            fsGroupChangePolicy: "OnRootMismatch"
+
+        containers:
+          app:
+            image:
+              repository: ghcr.io/onedr0p/radarr
+              tag: 5.18.4.9674
+              pullPolicy: IfNotPresent
+            env:
+              TZ: "${TZ}"
+              RADARR__INSTANCE_NAME: *app
+              RADARR__PORT: &port 7878
+              RADARR__APPLICATION_URL: "https://radarr.${LOCAL_DOMAIN}"
+              RADARR__THEME: dark
+              RADARR__LOG_LEVEL: info
+
+            probes:
+              liveness:
+                enabled: false
+
+            securityContext:
+              allowPrivilegeEscalation: false
+              capabilities:
+                drop:
+                  - ALL
+
+            resources:
+              requests:
+                cpu: 50m
+                memory: 200Mi
+              limits:
+                memory: 400Mi
+
+    service:
+      app:
+        primary: true
+        controller: radarr
+        ports:
+          http:
+            port: *port
+
+    ingress:
+      internal:
+        enabled: true
+        className: nginx
+        hosts:
+          - host: "radarr.${LOCAL_DOMAIN}"
+            paths:
+              - path: /
+                pathType: Prefix
+                service:
+                  identifier: app
+                  port: http
+        tls:
+          - hosts:
+              - "radarr.${LOCAL_DOMAIN}"
+            secretName: local-mafyuh-dev-production-tls
+
+    persistence:
+      data:
+        enabled: true
+        type: nfs
+        server: "${NAS_IP}"
+        path: /mnt/thePool/thePoolShare
+        globalMounts:
+          - path: /data
\ No newline at end of file
diff --git a/kubernetes/apps/production/arr/radarr/ingress.yaml b/kubernetes/apps/production/arr/radarr/ingress.yaml
deleted file mode 100644
index 6b45025..0000000
--- a/kubernetes/apps/production/arr/radarr/ingress.yaml
+++ /dev/null
@@ -1,22 +0,0 @@
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
-  name: radarr
-  namespace: arr
-spec:
-  ingressClassName: nginx
-  rules:
-    - host: "radarr.local.mafyuh.dev"
-      http:
-        paths:
-          - path: /
-            pathType: Prefix
-            backend:
-              service:
-                name: headless-radarr
-                port:
-                  number: 7878
-  tls:
-    - hosts:
-        - "radarr.local.mafyuh.dev"
-      secretName: local-mafyuh-dev-production-tls
diff --git a/kubernetes/apps/production/arr/radarr/kustomization.yaml b/kubernetes/apps/production/arr/radarr/kustomization.yaml
index 5f7a4f4..4377f60 100644
--- a/kubernetes/apps/production/arr/radarr/kustomization.yaml
+++ b/kubernetes/apps/production/arr/radarr/kustomization.yaml
@@ -1,6 +1,4 @@
 apiVersion: kustomize.config.k8s.io/v1beta1
 kind: Kustomization
 resources:
-  - deployment.yaml
-  - service.yaml
-  - ingress.yaml
\ No newline at end of file
+  - helmrelease.yaml
\ No newline at end of file
diff --git a/kubernetes/apps/production/arr/radarr/service.yaml b/kubernetes/apps/production/arr/radarr/service.yaml
deleted file mode 100644
index f2618d2..0000000
--- a/kubernetes/apps/production/arr/radarr/service.yaml
+++ /dev/null
@@ -1,13 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
-  name: headless-radarr
-  namespace: arr
-spec:
-  selector:
-    app: radarr
-  ports:
-    - port: 7878
-      targetPort: 7878
-      protocol: TCP
-  type: ClusterIP
\ No newline at end of file
diff --git a/kubernetes/apps/production/cert-manager/issuers/secret-cf-token.yaml b/kubernetes/apps/production/cert-manager/issuers/secret-cf-token.yaml
index c84575a..1c62db4 100644
--- a/kubernetes/apps/production/cert-manager/issuers/secret-cf-token.yaml
+++ b/kubernetes/apps/production/cert-manager/issuers/secret-cf-token.yaml
@@ -5,7 +5,7 @@ metadata:
     namespace: cert-manager
 type: Opaque
 stringData:
-    cloudflare-token: ENC[AES256_GCM,data:QDWamL3h0NLZzezOq5Sxo64K+7nivtl2pmpCbWk6rUFzKXJR7ym6Mg==,iv:Uf6v8dHRvx7dFs9ES5e+YWIo12WtrrXqK1xJ8z/gOO4=,tag:6undZMM8eDXXRp12cRX+dA==,type:str]
+    cloudflare-token: ENC[AES256_GCM,data:9I2VZBJrnat4TZ50fEVGS+N2ba6OVUvJWodhZhHCMMQm3scJ9Rqgvg==,iv:u3yKtpXWObitpJ92Brd9VceIAjgCaXQ92J/VIgrN7SE=,tag:iJEGLae7Uvj+5PtkmKfYkw==,type:str]
 sops:
     kms: []
     gcp_kms: []
@@ -15,14 +15,14 @@ sops:
         - recipient: age18z6wevr8ze5azvq7nfty3l29s7887l8n5mefr64avhlthtr4uvnqw90nfs
           enc: |
             -----BEGIN AGE ENCRYPTED FILE-----
-            YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjRzV5Sy80OGJGQXRiNkND
-            azlFZG1CNllYbG5kQ0VHRXNhbjdRcEN6TUU0Ckc2RjMza2laWS9Zb21tNmE0eUw3
-            RG9SclYrWEFxYWs2ck95VWQ3MlJDUlEKLS0tIDg0dXYxZUFlUTNiQ2VWUElIdU1J
-            ajRYUzRGREhIenNjdnlwMmtvVCthTHMKI74UwAsVX1QKQSez4E+Ks9VAF2QwbRDa
-            rO/PdBYJK+MwCptCEiinxaSc5BDAyE0wYiC6Tmldz6ZHYTv1ADe21Q==
+            YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArSTBHMlNiaU1qMDdqdUtB
+            UkF4QmxwYURFWHVqeW1VRE4reXRGQVNzS25rCnlzOFNFUFprUzJET0Q2ZktkM3ZT
+            NHFYeFpKMW9Za2V5dGZ1NFRHeCt4azgKLS0tIFpIM3I3bmgyQ25nUUZCVWh0ZDd1
+            cWpzK3FuTC9McXdMUERvSUtVVzE0KzAKmU4J3YzOr5Xcr8eGtMoUJIT87biX/pkh
+            IHrrhcfYWr2JZY5BqC1AK6EN3+uNFqrKIs7MrV0Ogb5X02BP/9D77w==
             -----END AGE ENCRYPTED FILE-----
-    lastmodified: "2025-02-08T18:43:20Z"
-    mac: ENC[AES256_GCM,data:fuTN6KncxLvzw7o3ENVYKCIcmxDDbvOeIyfn/H1M5rtw3C8WiRnuz4XviYTh2y6EHv9FGEOI5RiRmtEtqiux7xn81DBobmAdgl/RFsrMsKus0SVpGn4PmZYfO/8R9xknyX93fbYicnahYpM3aHvwQx1njK64ywN+Hp0U+PZfMoQ=,iv:4EgN+gBOwkNty9uPSb1/wDOKTEHUUEtkeDEJDkB2/EE=,tag:Meb79CBfm3tot4vKf1OOmg==,type:str]
+    lastmodified: "2025-02-18T02:56:04Z"
+    mac: ENC[AES256_GCM,data:InOhXZOhW9mkXv7pYOxihCDbdswQyuC6g5xzb/0dBhq+j4tRz6MUGMyducc3WiPybMaCsBi7X50tOrcRhe4CyH//nr6N8xKaKhxQYgxt47QOakHhGPtNvyBCw4au21KF34ZIEN0jRKVryCYj2X3WD3tNT9jFn4FfgLUx6xx9WYg=,iv:FtkgRp7Ib5DLib0y617mdeVy/EHWKKNcG18wbR/lAdM=,tag:i+TFxjplYuRT1ZhqXfXeBw==,type:str]
     pgp: []
     encrypted_regex: ^(data|stringData)$
     version: 3.9.4
diff --git a/kubernetes/cluster/production/charts/bjw-s-chart.yaml b/kubernetes/cluster/production/charts/bjw-s-chart.yaml
new file mode 100644
index 0000000..98f1a60
--- /dev/null
+++ b/kubernetes/cluster/production/charts/bjw-s-chart.yaml
@@ -0,0 +1,10 @@
+---
+apiVersion: source.toolkit.fluxcd.io/v1
+kind: HelmRepository
+metadata:
+  name: bjw-s
+  namespace: flux-system
+spec:
+  interval: 30m
+  url: https://bjw-s.github.io/helm-charts
+  timeout: 3m
\ No newline at end of file
diff --git a/kubernetes/secrets/kustomization.yaml b/kubernetes/cluster/production/charts/kustomization.yaml
similarity index 66%
rename from kubernetes/secrets/kustomization.yaml
rename to kubernetes/cluster/production/charts/kustomization.yaml
index caefb94..395a6e5 100644
--- a/kubernetes/secrets/kustomization.yaml
+++ b/kubernetes/cluster/production/charts/kustomization.yaml
@@ -1,5 +1,4 @@
 apiVersion: kustomize.config.k8s.io/v1beta1
 kind: Kustomization
 resources:
-  - flux.yaml
-  - qbitty-secrets.yaml
\ No newline at end of file
+- bjw-s-chart.yaml
diff --git a/kubernetes/cluster/production/config/cluster-config.yaml b/kubernetes/cluster/production/config/cluster-config.yaml
new file mode 100644
index 0000000..80ff499
--- /dev/null
+++ b/kubernetes/cluster/production/config/cluster-config.yaml
@@ -0,0 +1,7 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+    name: cluster-config
+    namespace: flux-system
+data:
+    TZ: "America/New_York"
diff --git a/kubernetes/cluster/production/config/cluster-secrets.yaml b/kubernetes/cluster/production/config/cluster-secrets.yaml
new file mode 100644
index 0000000..1de7766
--- /dev/null
+++ b/kubernetes/cluster/production/config/cluster-secrets.yaml
@@ -0,0 +1,29 @@
+apiVersion: v1
+kind: Secret
+metadata:
+    name: cluster-secrets
+    namespace: flux-system
+data:
+    PUBLIC_DOMAIN: ENC[AES256_GCM,data:M+nn0P7olNwEyc+3XUM37g==,iv:EHupf7+9evYWrJZNFGe/I0sgcocs0UnU2j5gcCsoMqs=,tag:9N7R8sgfA5y/ePoD/tepFw==,type:str]
+    LOCAL_DOMAIN: ENC[AES256_GCM,data:7ljyWJK8kOADFW5/uk9aNaRf7dnoTSqU,iv:ppr7vv8W2EfnF3b5rYBSXND/qNdQwZPEIMjAgae81+A=,tag:s7wybl3msr0RMyAAEej2jA==,type:str]
+    NAS_IP: ENC[AES256_GCM,data:z04M4Xe8lekw4zEqB6a2YQ==,iv:Qwgy94CR+jBvhCTOPa4dxxai0cidGt9BnSReUwedol8=,tag:Qnm/pxGTdMUUE59aOqObOg==,type:str]
+sops:
+    kms: []
+    gcp_kms: []
+    azure_kv: []
+    hc_vault: []
+    age:
+        - recipient: age18z6wevr8ze5azvq7nfty3l29s7887l8n5mefr64avhlthtr4uvnqw90nfs
+          enc: |
+            -----BEGIN AGE ENCRYPTED FILE-----
+            YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUWmVDYWFUM2g1Z3A4L09y
+            VlJGNVNIb0o5ZkoyMXRLMFVDVjNtbllIVWhjClRaaDNPblI3amNSTjFXSmtJZ1kz
+            dVRqa05yZnJhblFaUW1IbnB5RXMyMzAKLS0tIGtyMnV4ZXlWclBRa1UrVkNPV0dh
+            UnJqT1FORU5SaGNTK0Y3V3RYMlRjeEkKQOfr3ruilfkb8lfuWrQaeB44b9nf+TSq
+            QgvmCElVNleZ369lr92ZfNQXgIehuVQku3h8xElXtL0SyZmRrbKneg==
+            -----END AGE ENCRYPTED FILE-----
+    lastmodified: "2025-02-18T03:04:17Z"
+    mac: ENC[AES256_GCM,data:kwxezyC/r2vsbCXAU6yGAjpzOQHuQZQvRDAl53ZT59DP9+P3rL+eRG6mpKPuack1TvlcQddUgFEMXxoilPcpiZpG967fLQlBIN+e61bGBsHiHT7zHcnudi33ZruAG1E/Fsx3qk/aQBak+C2j9JzuaApaDWx8Oboxkm4/Ks+wHI8=,iv:hOdZy2E3JmWX82jJAl8XalI4FaCVHfxBMWg7R2liWeA=,tag:on3NuJJTxp1+SEKsSnGYgA==,type:str]
+    pgp: []
+    encrypted_regex: ^(data|stringData)$
+    version: 3.9.4
diff --git a/kubernetes/cluster/production/config/kustomization.yaml b/kubernetes/cluster/production/config/kustomization.yaml
new file mode 100644
index 0000000..39ebed1
--- /dev/null
+++ b/kubernetes/cluster/production/config/kustomization.yaml
@@ -0,0 +1,6 @@
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+resources:
+  - cluster-config.yaml
+  - qbitty-secrets.yaml
+  - cluster-secrets.yaml
\ No newline at end of file
diff --git a/kubernetes/secrets/qbitty-secrets.yaml b/kubernetes/cluster/production/config/qbitty-secrets.yaml
similarity index 100%
rename from kubernetes/secrets/qbitty-secrets.yaml
rename to kubernetes/cluster/production/config/qbitty-secrets.yaml
diff --git a/kubernetes/cluster/production/flux-system/apps.yaml b/kubernetes/cluster/production/flux-system/apps.yaml
index f2ac7d9..ac3953b 100644
--- a/kubernetes/cluster/production/flux-system/apps.yaml
+++ b/kubernetes/cluster/production/flux-system/apps.yaml
@@ -17,4 +17,6 @@ spec:
   postBuild:
     substituteFrom:
       - kind: ConfigMap
-        name: cluster-config
\ No newline at end of file
+        name: cluster-config
+      - kind: Secret
+        name: cluster-secrets
\ No newline at end of file
diff --git a/kubernetes/cluster/production/flux-system/secrets.yaml b/kubernetes/cluster/production/flux-system/secrets.yaml
index aa93489..fb628f9 100644
--- a/kubernetes/cluster/production/flux-system/secrets.yaml
+++ b/kubernetes/cluster/production/flux-system/secrets.yaml
@@ -5,7 +5,7 @@ metadata:
   namespace: flux-system
 spec:
   interval: 5m
-  path: "./kubernetes/secrets"  
+  path: "./kubernetes/cluster/production/config"  
   sourceRef:
     kind: GitRepository
     name: flux-system 
@@ -14,3 +14,9 @@ spec:
     secretRef:
       name: sops-age
   prune: true
+  postBuild:
+    substituteFrom:
+      - kind: ConfigMap
+        name: cluster-config
+      - kind: Secret
+        name: cluster-secrets
diff --git a/kubernetes/cluster/production/kustomization.yaml b/kubernetes/cluster/production/kustomization.yaml
new file mode 100644
index 0000000..77d0cbc
--- /dev/null
+++ b/kubernetes/cluster/production/kustomization.yaml
@@ -0,0 +1,6 @@
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+resources:
+- charts/
+- config/
+- flux-system/
\ No newline at end of file
diff --git a/kubernetes/kustomization.yaml b/kubernetes/kustomization.yaml
index d08ad48..0162701 100644
--- a/kubernetes/kustomization.yaml
+++ b/kubernetes/kustomization.yaml
@@ -2,4 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1
 kind: Kustomization
 resources:
 - apps/
-- cluster/production/flux-system/
+- cluster/production/
diff --git a/kubernetes/secrets/flux.yaml b/kubernetes/secrets/flux.yaml
deleted file mode 100644
index cfbe332..0000000
--- a/kubernetes/secrets/flux.yaml
+++ /dev/null
@@ -1,28 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
-    name: cluster-config
-    namespace: flux-system
-data:
-    LOCAL_DOMAIN: ENC[AES256_GCM,data:+MFh6JbregTAyBjQgfhjPQ==,iv:P6/9sySKhAjWKi8F09rEQ9RqyfMZRdSrGOHgfNI5ZNM=,tag:8ExXSkOegf97uqZAto310g==,type:str]
-    PUBLIC_DOMAIN: ENC[AES256_GCM,data:13kMLOeH00D7eXgdgWoRpA==,iv:0ptiPvI9v6rpupeIAe1R+5CkVvWIQjivJGNPJfr3MjI=,tag:WqyDKGxqFX/o2wK7Z9/i3A==,type:str]
-sops:
-    kms: []
-    gcp_kms: []
-    azure_kv: []
-    hc_vault: []
-    age:
-        - recipient: age18z6wevr8ze5azvq7nfty3l29s7887l8n5mefr64avhlthtr4uvnqw90nfs
-          enc: |
-            -----BEGIN AGE ENCRYPTED FILE-----
-            YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0SXZ6TUdZTzJFMTg2cGQr
-            cktvVEhkL1krdm95cGpxcDAzc2t1VkxrbHdVCmRYQXoxNnA5YUdTS0tkNzA3MnJr
-            ZVZtKzhoaTVKTjBrdk1nb2RrMXRTL1UKLS0tIEdkTzlTOXRxak4xQ0tuam1PL2hw
-            M3RsQnNodHgvdU00YVA1cGZobVBLY1EKsLe8q0/W+OnSJ4sEnt4Xnw0eMUNLf9gG
-            zHXUoROb6nlqh03SH2SFoJuzc7jRYqHOOxXjnRcQcSTnyBi0jIT9/A==
-            -----END AGE ENCRYPTED FILE-----
-    lastmodified: "2025-02-17T05:27:24Z"
-    mac: ENC[AES256_GCM,data:CdZrObeqXr+iJ2E9l5UGp0h9gZI7F3le9fj5zbHe4WjaS+HEPr9yaExG5AEpyLkW4BzjHoaLjFxbshec8PheWcWCEMIwIoJPRcI9ld7se01nz/SC7DJWT66otj7TZIwzi6/DmCVpsoXL2bYskmaExOk2l7DlijQ7lkevJupOKMI=,iv:CChtQxUUXIiSqmK99F5fQlvdmrjshWNoh7xSgrzxFto=,tag:Ph3SByrtOyNVBM4XcmH2Wg==,type:str]
-    pgp: []
-    encrypted_regex: ^(data|stringData)$
-    version: 3.9.4