From 54304af6c3a615004163adb337f240935f695549 Mon Sep 17 00:00:00 2001 From: SeanOMik Date: Fri, 20 Sep 2024 23:08:36 -0400 Subject: [PATCH] feat: add nextcloud to thin cluster --- .../thin/apps/default/kustomization.yaml | 3 +- .../default/nextcloud/files/helm-release.yaml | 80 +++++++++++++ .../nextcloud/files/kustomization.yaml | 6 + .../apps/default/nextcloud/files/pvc.yaml | 12 ++ .../default/nextcloud/files/secret.sops.yaml | 73 ++++++++++++ .../thin/apps/default/nextcloud/ks.yaml | 29 +++++ .../thin/secrets/cluster-secrets.sops.yaml | 107 +++++++++--------- 7 files changed, 256 insertions(+), 54 deletions(-) create mode 100644 kubernetes/thin/apps/default/nextcloud/files/helm-release.yaml create mode 100644 kubernetes/thin/apps/default/nextcloud/files/kustomization.yaml create mode 100644 kubernetes/thin/apps/default/nextcloud/files/pvc.yaml create mode 100644 kubernetes/thin/apps/default/nextcloud/files/secret.sops.yaml create mode 100644 kubernetes/thin/apps/default/nextcloud/ks.yaml diff --git a/kubernetes/thin/apps/default/kustomization.yaml b/kubernetes/thin/apps/default/kustomization.yaml index d037f75..750a11e 100644 --- a/kubernetes/thin/apps/default/kustomization.yaml +++ b/kubernetes/thin/apps/default/kustomization.yaml @@ -2,4 +2,5 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - ./whoami/ks.yaml -- ./home-assistant/ks.yaml \ No newline at end of file +- ./home-assistant/ks.yaml +- ./nextcloud/ks.yaml \ No newline at end of file diff --git a/kubernetes/thin/apps/default/nextcloud/files/helm-release.yaml b/kubernetes/thin/apps/default/nextcloud/files/helm-release.yaml new file mode 100644 index 0000000..581825d --- /dev/null +++ b/kubernetes/thin/apps/default/nextcloud/files/helm-release.yaml @@ -0,0 +1,80 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/bjw-s/helm-charts/main/charts/other/app-template/schemas/helmrelease-helm-v2.schema.json +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: nextcloud +spec: + interval: 5m + chart: + spec: + chart: app-template + version: 3.4.0 + sourceRef: + kind: HelmRepository + name: bjws-charts + namespace: flux-system + dependsOn: + - name: openebs + namespace: openebs + values: + controllers: + main: + containers: + nextcloud: + image: + repository: nextcloud + tag: 30.0.0 + + envFrom: + - secretRef: + name: nextcloud-secrets + env: + POSTGRES_HOST: postgresql.database.svc + POSTGRES_DB: nextcloud + POSTGRES_USER: nextcloud + + # REDIS_HOST: redis.database.svc + # REDIS_HOST_PORT: 6379 + + SMTP_HOST: exim.default.svc + SMTP_PORT: 8025 + SMTP_AUTHTYPE: PLAIN + MAIL_FROM_ADDRESS: karasu + MAIL_DOMAIN: ${SECRET_BASE_DOMAIN} + + PHP_UPLOAD_LIMIT: 25G + + NEXTCLOUD_UPDATE: 0 + NEXTCLOUD_TRUSTED_DOMAINS: '*.${SECRET_NEW_DOMAIN}' + + service: + app: + controller: main + + ports: + http: + port: 80 + + ingress: + main: + annotations: + cert-manager.io/cluster-issuer: letsencrypt-production + traefik.ingress.kubernetes.io/router.entrypoints: websecure + nginx.ingress.kubernetes.io/proxy-body-size: 25G + + className: internal + hosts: + - host: "drive.internal.${SECRET_NEW_DOMAIN}" + paths: + - path: / + service: + identifier: app + port: http + + persistence: + config: + existingClaim: nextcloud-data + advancedMounts: + main: # controller name + nextcloud: # container name + - path: /var/www/html diff --git a/kubernetes/thin/apps/default/nextcloud/files/kustomization.yaml b/kubernetes/thin/apps/default/nextcloud/files/kustomization.yaml new file mode 100644 index 0000000..efa0e09 --- /dev/null +++ b/kubernetes/thin/apps/default/nextcloud/files/kustomization.yaml @@ -0,0 +1,6 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- ./secret.sops.yaml +- ./pvc.yaml +- ./helm-release.yaml \ No newline at end of file diff --git a/kubernetes/thin/apps/default/nextcloud/files/pvc.yaml b/kubernetes/thin/apps/default/nextcloud/files/pvc.yaml new file mode 100644 index 0000000..4201325 --- /dev/null +++ b/kubernetes/thin/apps/default/nextcloud/files/pvc.yaml @@ -0,0 +1,12 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/yannh/kubernetes-json-schema/refs/heads/master/v1.30.4/persistentvolumeclaim-v1.json +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: nextcloud-data +spec: + accessModes: + - ReadWriteOnce + storageClassName: openebs-dual + resources: + requests: + storage: 100Gi \ No newline at end of file diff --git a/kubernetes/thin/apps/default/nextcloud/files/secret.sops.yaml b/kubernetes/thin/apps/default/nextcloud/files/secret.sops.yaml new file mode 100644 index 0000000..c1af637 --- /dev/null +++ b/kubernetes/thin/apps/default/nextcloud/files/secret.sops.yaml @@ -0,0 +1,73 @@ +apiVersion: v1 +kind: Secret +metadata: + name: nextcloud-secrets +stringData: + POSTGRES_PASSWORD: ENC[AES256_GCM,data:hSEHM8F/2NS3iAdD/ylhrWUC1jv3nuObk41xuhdIbNw=,iv:nUJW4lVuveWztcRTwa7BflAn+JIBZVpR1J0CKB2nzlk=,tag:zl8Bb8lDWVSykZBgMFnDXw==,type:str] + #ENC[AES256_GCM,data:Ke7eG/Ch1Lf/f50JYihAfgvPHCqjfsCqpQ2taZ28Mzoprm/C6RdiTbEurncKPBErEDno2RLG,iv:OXPG9pJnMZ79gs4rR7TRC63Z2NwuYFq4UCtm/lB0gxU=,tag:MW0gxQjv4lrCw/vEsXtJ8g==,type:comment] + NEXTCLOUD_ADMIN_USER: ENC[AES256_GCM,data:qCPT/ik=,iv:9SJi/IcfuTjwjj2tjvjoZ24GJBporPCilgBvh7WGlmo=,tag:CKqPpt8ihxCmDhF7OfgolQ==,type:str] + NEXTCLOUD_ADMIN_PASSWORD: ENC[AES256_GCM,data:F0mmuf7aEXgsqkKR8UHxbA==,iv:XyBIZXB4Vbp5bxb+3BZ69tTykTQVkXPC1mEqBj4GffY=,tag:cIewFwkb6YKIjsxnaL668w==,type:str] +sops: + kms: [] + gcp_kms: [] + azure_kv: [] + hc_vault: [] + age: [] + lastmodified: "2024-09-21T03:07:42Z" + mac: ENC[AES256_GCM,data:hlGLaHw1K/gkE063JDPplqg3b3hOqcZeNoFkRMvHNhewTlTIomc9xK0tnDa9Nfw0npkwYgHCZya8+KT1m2pXFm7l4i6z6cvleWTf+nXSIt3RILTEDNOZf2ddZ/Lx7gAiFLLiUJxfFXa7SSiTDxgSje8Nlwmynv5jNUR2rIzJVVM=,iv:PKR+Clspn5/B3G6eUOIIPVv8WCx7tUJYC8F37IIfzzE=,tag:9PyeZ2RYaNlnc4i7dwvk9g==,type:str] + pgp: + - created_at: "2024-09-21T03:07:42Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMAyqlIeyoxYovARAAh9YzwXNlYOxHKVx51LP5GAalTaBxaTK/J7ih/PVoY1zn + RCPwWhddsVitaeMScZFaoXy9hqvgn+U4G7o7nwtViDfr00POfJ0Ka9bDHWWQyVws + KF2aTwWeHf4//fRZm3/hyfkAtK3iqgY2p1u3yS4UY8tGtpLgf+6bl1bFNeufVFh3 + 5i6rQ5XvncewTyO9WHQZfrKydDIjYfj7c6AReJfBr8oQfKP/qcN7FdAbcT4XJ3Az + y054N90zThRIS2KdNvIFOmnGXhMolLyI5/cg+o4/7QnM3Z0KuT/NjME+8bvkYqKm + S4phco5X15TdLyFjS+H4ynDQa+fYxL0y3CQL+wPpQoqIjkiBBqBXHbUPTmzvc0jG + KTZULv/Zg0byCvpCxqhuoJrnIsejzMxbu/JxmpOODcUwzR5RFAecFRurqPGJEReo + hUbwjYYcEYRDdxGaTnSwn2sQSJCLhTPkMo2CEuQRg2d+QG19mNwmMlg5K1+23hpO + WAZxGKRPPHzyhvHMAycTcZidIG32yDORIA3XOE9iqXQ4bK8fEMvc6bg7/SA56eHz + hxkv8xS9KQxFQduE1rT3GRKVcz5NQJxnRopnKUas110wdysp5Oot3EhkKoO2fIRt + Ocapi0S0MbCrsYf9pF9irkDHV1JZHa8FxFCk3ugzzyW62swSXVy8IQA9UZsODd+F + AgwDXjg0p2IN1X8BEADTOyfxeBxMxy4J+Hhq1EMAuBAe4wmUnz0l/0mJA9+ODXpF + i9mk0NgigVIwovl9sUZQbn6MgJnJZkv+4AuYaun2G7cgTu2a1ZYL6IEcpnWLkjbx + YGOUw9VX76Fl41e6lotgqGfaiX7NSbn0HMFi2ALZsUsF0BK0iZNarJwvqlcq4JSR + YNXNSemZi5r+YXfAhzDD1JgRFoSxmg3odKHsd3zDWhPpyBsucMWX8m7CH3VdfcOx + 3in9EMoQ3YikU3vfFJ3wfMtm8D/TUDMPt2j62LuSb9tymIYPUCG90I7XJyQg68mI + y2QvV9snaxtUTEv5LDtL3R7SKrliNwZfSPgr5f6toeP9rf64lXzSjZ+4hG2MW7ki + 8t+qwv48teBK7ypEWk+eRK1PtKzxJ2WYDMgwBto5bju6YIft/oczdQQZMVM27RI9 + bg7sBHsCHB4Jnl8gW7wnB4R179CbQXzbkv5t72YCRHm+9p7kLGjVfJZQq8I6YtOy + CzMuWkBxdpVCm3QIEE5MF7DKpHTfQK2xfRSy3Bvem4Lxs06krGOeA7k3EtX65+vX + +KRV9SsQkBqswfs1FqmUAlhFpKY+h8DCH2rhE++VdAl2y1uNPjOiZzGzz8ju3nY+ + mDwHDbTmNDrGOVqgfUyd7qnzsJkdmwEvKaulOourEg0mD6cUxrY2cNvTrffy8dRo + AQkCEGsxKYnSmGXVUV1ZEm/Cvl7OAfFEOyRSg7kfKvYFpghbyEm5/IIfz9zwraAC + lbngLnAvAy+uLMMxSGm5BFQYVRKlVi9gwsDTxqLEhLg9/3MR7+C/JyjdEcM4YsNn + rnMsrM+OIfE= + =aJaL + -----END PGP MESSAGE----- + fp: BD1AAF9D8170F4BEE437365FF6F0933799CFEBCD + - created_at: "2024-09-21T03:07:42Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMAy5t8IMoPu4VAQ/+KtGPswz5iC0pk6dPZG4enXdjfJ/wIfz1qKv4Ozb6oqNv + GweoS9IFCZK/WQSCc0Y+Tb/2+Au6uUS0aCJBTT94GpGHKRwIMh9HKmiwYE9Znrcx + Df/jerq4r14+DfwaAk/Oq+LDCfsgvDJ8B8H4JsixCoLUuH1QWQkNqW05XD2aTskd + hnyHsSIeJXjFw68dR+YGHime3aiG6nXpt5bHI2WdL64KAb+mQbRUJf469djb+TEp + MmCPojh9eZxggIKBKC6KWLFP/QppUwDYZ0zY4dRhkaZV8kebkpLPAsnof0NEpjda + kc4eqneGhpQrzDn7SPxponYm/CEyPMs9EyluNCDQbpdSiTvBJwhiRb1llCZki2Ke + MoFdVrKEJL7OwxmPWk6YhBuzg7V87pUd/gkSYpO+Xxbu7BEiEBhJfEY+803OPISo + VavCd5pRfJMkydQI5hveoWxceJ4+oRToOLvTIVDjzwlafE5DRPYdK69VaznRyaxr + YAIsPqi1LELb9mSyxrfkdjFOstTOh/mc4hbtYHtSrY76035WiXXZAh5Wm2K1v/0x + 0mlxyh4u6I+vA2kBfxsvtbe3EOIKtudpGQBF9LsAKGU2lMcSvPGSD0uoVDc/F5nA + w04bez4jnFoHUTOCRIp0/7cVD7kxSzHA/Ln43I7Nh+HYcsgmIxEuXspBOaIZyr3U + aAEJAhDkRtIhPkprJKchw9ypBxRGNwEn3UqAzfgPUcyJPqrb6/fJRgbvgMXOHiGB + gnIl9Ne5QshGNSPzNcU9fkvpDFmOcDTVODFOuf5ocQsKYjkpJwPaBpDwz2GF/NS8 + 6OUCgTUrnMdR + =vDP0 + -----END PGP MESSAGE----- + fp: 687802D4DFD8AA82EA55666CF7DADAC782D7663D + encrypted_regex: ^(data|stringData)$ + version: 3.9.0 diff --git a/kubernetes/thin/apps/default/nextcloud/ks.yaml b/kubernetes/thin/apps/default/nextcloud/ks.yaml new file mode 100644 index 0000000..85150e6 --- /dev/null +++ b/kubernetes/thin/apps/default/nextcloud/ks.yaml @@ -0,0 +1,29 @@ +# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: nextcloud + namespace: flux-system +spec: + targetNamespace: default + timeout: 5m + interval: 10m + path: ./kubernetes/thin/apps/default/nextcloud/files + prune: true + sourceRef: + kind: GitRepository + name: home-cluster + decryption: + provider: sops + secretRef: + name: sops-gpg + postBuild: + substitute: {} + substituteFrom: + - kind: ConfigMap + name: cluster-settings + - kind: Secret + name: cluster-secrets + dependsOn: + - name: openebs-sc + - name: exim \ No newline at end of file diff --git a/kubernetes/thin/secrets/cluster-secrets.sops.yaml b/kubernetes/thin/secrets/cluster-secrets.sops.yaml index 3e3c2ca..a7a3342 100644 --- a/kubernetes/thin/secrets/cluster-secrets.sops.yaml +++ b/kubernetes/thin/secrets/cluster-secrets.sops.yaml @@ -5,74 +5,75 @@ metadata: namespace: flux-system type: Opaque stringData: - SECRET_MY_EMAIL: ENC[AES256_GCM,data:rNyzxxuVq/1dII5m8OKexQsH,iv:+i/h+iXhBNM7qxDyK7/3pQqp8l7hXDHhnZOwyuwcC3k=,tag:RM3svsBJXpFafRzoLp2NOg==,type:str] - SECRET_LETSENCRYPT_EMAIL: ENC[AES256_GCM,data:uUinHshJ3aUNzJDRQNVNWwNJ,iv:s8kggffO33/E04aUdZvxmgNhoPVKh+HnjX+k0o0DTNc=,tag:qreqEiN28i26OpsagQP5hQ==,type:str] - SECRET_DOMAIN: ENC[AES256_GCM,data:3zCSigeMzhC4H2SDVjqV6Q==,iv:OtUj2mDzmv9afBf4NcDSwZgGdKLJY3WG8qqSbI/NNog=,tag:buWUYjBMtfAVQADN2EREvQ==,type:str] - SECRET_NEW_DOMAIN: ENC[AES256_GCM,data:BDuzEYN7KOlqDUbJyFwHWCQ=,iv:DHrkALxuuEiZhjdLeFArgaORR8ZlsUuW2BT/joEFQGo=,tag:u1zVa2SA4xpgjNcO9iXtiw==,type:str] - SECRET_AUTHENTIK_SECRET_KEY: ENC[AES256_GCM,data:A2S9VBNLw2m6IEEGunHo8T/4v0tp0RvByYc6FIJdx1Q=,iv:Mu+TbsN2Ci2/7LvKhb8XWm6SPJe5ZxS8Z8YWjLwdT1c=,tag:uoatWIMDRLT4XaP0f0kpiQ==,type:str] - SECRET_DATABASE_PGSQL_USER_PASS: ENC[AES256_GCM,data:A++t+kACJthb9w6yml5KJo9Eqc/wp/BFadLzwOQhkhc=,iv:7mA6zCaC360dyJkC5wybh3PnGWjr12q0R/aGKi2D5Rc=,tag:h3BVuMH8VvnSc8LEM85wlQ==,type:str] - SECRET_DATABASE_PGSQL_ADMIN_PASS: ENC[AES256_GCM,data:UyFKnNw20KiJZj/Y5Jba6uFhDU/N+Dijl1mJlCcBgJk=,iv:Il50aBOHREDCDYeXmZks9DVBkq1+z1ZLo2KfibbiWmk=,tag:y/DBhdWLToD30tqVGD3uRg==,type:str] - SECRET_DATABASE_REDIS_PASS: ENC[AES256_GCM,data:ePEMWYYpXF5lv4+RAScXxArlKXq8U21XUYsSWBf8TG0=,iv:Lr9qq1fVuyzleC3oU7izKP/YHoSrtXADl9efz3iWgEw=,tag:73XjcnTWr1wPYFEROznz+A==,type:str] + SECRET_MY_EMAIL: ENC[AES256_GCM,data:7bM8AP6MpPM1U9HcZyZckGlj,iv:NYcQ4ReyBXCE1gX4Or6eZv0BdaPNmYJ+OITCBTEWhWI=,tag:wbhHCasySeXHrKFQGvFhjw==,type:str] + SECRET_LETSENCRYPT_EMAIL: ENC[AES256_GCM,data:iAc1YMo6/wJvI2gUcwjMAvi4,iv:H2B/aFda6AT8zqen5NLFOEEF5ezGRsb0o+OQY19RcpQ=,tag:WMJIMEzl+FEybiggKYBomQ==,type:str] + SECRET_DOMAIN: ENC[AES256_GCM,data:dCeZd1lDd1YiARZx6CdJtQ==,iv:VfSY3mW5pcoxFGDAByWaNrxfUSaBt0LwlEGqxrWSg1E=,tag:WghwPbDJZesdxUDDT6CorQ==,type:str] + SECRET_NEW_DOMAIN: ENC[AES256_GCM,data:rAwZ6eSRQvwrsMHJWdkbEH4=,iv:aBYlbtP/NlKkVUCQfwDLQ93uqjzRX11ni+dR4OTgJg0=,tag:tHqk/tFObAAM8AUUPHBB2Q==,type:str] + SECRET_BASE_DOMAIN: ENC[AES256_GCM,data:ABzFBg1oOXC7wshp,iv:51KKl/K+eDlEu75Ux9ToALK78/X8RUJqFYJdEwJaUZM=,tag:padZKXJ0+eumYf9SNbguDg==,type:str] + SECRET_AUTHENTIK_SECRET_KEY: ENC[AES256_GCM,data:7ZMqFWrdsyXXlUhRNmXfqbJ30Xog5Ff+X+fsJRFXQNU=,iv:yVWIeIo3jKyzrpZZT5KUXMiWOcEO0BEH2IE6Czu4cno=,tag:DlDGrdDKC3ItYzMlZqi+Cw==,type:str] + SECRET_DATABASE_PGSQL_USER_PASS: ENC[AES256_GCM,data:AXei8pfy4yrwWL71TfGhzDN3uolyKYpMo9bZ4qHPi4A=,iv:JPpUYaakIgCI7ML1zJ3bNuGcl2J03q9UZGl2sGPeFfs=,tag:RQVTdozcLr8OdKp4Cr5OoA==,type:str] + SECRET_DATABASE_PGSQL_ADMIN_PASS: ENC[AES256_GCM,data:okfPZ49NTa+UnaGD+9j2Awr1sp13LLLhMT6tnUGhIYM=,iv:n+3hVO4o1inUDfdczRp2Sm7TpNlkvgUclvkXRKDyfWY=,tag:8TlqTf5ocrwllahyx/mO8w==,type:str] + SECRET_DATABASE_REDIS_PASS: ENC[AES256_GCM,data:Vml1wieA2b8LiP2GS4Db3bdZDmv+F3N52doBO2DPblk=,iv:fJLrDgWkcWdMF8LtQycqOY4mKc8OQKLBfuWqxrRR0Hk=,tag:8T15d5GnQ2vHnRcUgtFtcQ==,type:str] sops: kms: [] gcp_kms: [] azure_kv: [] hc_vault: [] age: [] - lastmodified: "2024-09-07T01:46:20Z" - mac: ENC[AES256_GCM,data:vdG/QHWHQge+m6YCBqtAfRsXdWvMLiZQ6DOnaxgaUNpslPvQuHml1kWBsSKrmNmB79jxqB2M6HwEY7ljOMf6ZlTeMs7mW6i0oj368IS6gQGfOHSJ4d34shyXujO9JHEnmL7O0tnOs1bp4ZHxdd/t4Wmq/ii+W/Kbta3/VLtOj/A=,iv:aB8Y4Y0t4ncViBAvH2WAAGgzbrzUSvL3/RRY+VVUKlk=,tag:0BSFABPxUxgRG1fDrDHXug==,type:str] + lastmodified: "2024-09-21T03:07:38Z" + mac: ENC[AES256_GCM,data:ScZhIhlHH29ktpYZo8+NZUiecq65Im5o5AhMA6DVpp/TJ5NZqkp31ctyaSrTue1TqjRKKvFLKoHYMIiG2j4dWYyQCW7oxif5ArtYLBd6AJSVZ8zdf5fAG+BWJL7IovL+R6ndhMhnEcjERBkc9dAQHqnMa1m4GQ3un2TxuHl+QRo=,iv:AaTKOHuAWH6luQY5zkUhFU6wUm8zRiiA6OitFvEYkZ8=,tag:I+xrbnpICburuVYtPg0IRQ==,type:str] pgp: - - created_at: "2024-09-07T01:46:20Z" + - created_at: "2024-09-21T03:07:38Z" enc: |- -----BEGIN PGP MESSAGE----- - hQIMAyqlIeyoxYovAQ//XsBS23tIBniGlJAVG7gBJRclDr4ecXUH3LTkVPSaQ4r6 - gLPL19dZaYcs4hkvOOgm0u7tXXPMFHuIWvLLPKwAbZMOGcvhqgSWmVDIFRKOtAKt - mdNeVEWARwf2/3JsVSyh8pyxbdtC1dlY6BB8Cxd95n70ZQdrAbGewAK6sVWWAiRr - uSLiYO/HUdyoP38q77dwG4p8up1qchND92Ie04zowWbiquMq+V/2pgJ3dd51Z5Gn - oD1oNZZZeZaBJ+G3mea5QSzduE7x8R56YyGyBcDOn6gmMxJF8adDBsQfdH2bQCWQ - I2QstgQwXAvvwqexow8x/wEAkUXksB/dZKWOu3QhlFq7vLJ9RXGTaKCg0FCcu8/U - h7x4njNLA2/aidAVL4ufRohiONss2fjcDhpiJ7uyBM/horq2SmABzwoCtmRS/4du - oE/Ygfh+OPa6+SuQmwB+BH255HPsDNeikC/F3XJ/LXKO6460L7yQAdYnKAR3EqVL - KcfrVNIaFAIxLQ7SQ3DaU2ddc18pzPbBDnLwwFoO+mM2u6wwaKZkyjAK/1NlNs/O - WGXjPzBvpjWTQmSL4PhwGmtaolNpE9j3zpLHUs3TcKUKXyzV1f5p2pxXBBo/IYZy - rVkKm2zPR0rgkVjJMWiZ+uazGy3mVbsDj3y/5c+CRYTuNoHk/AuWz3x8KSEz/JCF - AgwDXjg0p2IN1X8BEADFHtP/WpUDejsej2gXlWYJkT6N9IiZqfMKbejk3yAQr9+L - 9J1c5UkDT6MeQpIFs04cZMAVmQRg+Q5D9ipgp8t4PMBNCT6xuQYIvfkdoESQG4Rt - 6FpQHkeKkooXWJJzCppexkKzXeHjfMFm7KPd0jea46uwh+Qx2MbDaoiGK+YCzb82 - mWCpgPfguOdbLaGI2aSYiWTrmMnNZv4cthv4Z/u1ph6NB2X/SbG3ot5O569epLpq - Al9bVUb2ZCEfrRUmqC9eWTr3p+GFRF77u7PVBwOjYItI4Paz+M7EKUmUqvMoj4EF - X+I9Oaac2t9nlIMLKNtq14LkncvdW+xuy83M2dN708ceo0+HxUeHCFyqbogKG8l9 - vQa9OFGleLyeoWlVlBqKco2cQe4xI8UkJryxsBC+36OaeqrCFAhbYpCn5QL/Ij/4 - 8ZPg1RCh9oeFvfripRpQ9G6UNtmvloK8LA/73uHnkztAYx2AFMaI6zQr75F7S8IH - tSGNEUA3MHOU7pIrCp9KnGjjfsChD6J9d0EoOOQfP1nDxVkXrL1afiuFtieJOiru - pyr1LJonGBdBxDDSrfPj6tc1moqIjgiZiDBcImEPv076Wro9EZdTi53CNj9rtEln - hUpFDcNMdwccumMslDl8qNdAKJgFGEORtRqFs+n7nywjAnxqd7gVGKDO4RrjsdRm - AQkCEFhM1Krfrf1RAJz/fnEeg21yvhg47SCgBiNGizLXgyCgK1kGuxB+SpJVMkAg - rdBo5t2UfXkVyJQ00K77you1N17NtPnyKr8xfItd7JRmDpJn40f9MFR2AOyVFC5B - lVleELeG - =bKFu + hQIMAyqlIeyoxYovARAAvJXc53uOOVrZjfpoVmHXUKGDjpLE3hoNJ0cB8dtG4CQC + kqHYrEuyRd9bpE2ca46Y+TMf9Ze5Mn8wcKns5zE5AL48GYgN5R6xrZgOW2TItZyy + b5Z9+nGTfFaGYI7/WQIBOL9tuGs0JdRp17V0XOQJTiR0oSXysjw93WzG4cB+lREj + RqMGLY+VDlErNJRTZlHwBWUEyp0xMVvtuF9YoWvTwOAzRCAitDIDp07buqvyYMxg + vmNJ05qUXA+YG3fwVkT3iWFGniwc7XAHtvCl9E8m0kLW0AqxFWozf/ghDbjMhmaw + SQ1YsQyQ1AfoOtPBWHouJ5HXyG7qSbHSu3jhyNbVvyUGMGYdGWh/bhRKyR30EHSM + bBT7RUm00CLcuNlz7q30SxUKq+HU5esOLZfAip4VcwcRfphEo8Atm+xnPtbWqWYb + mo/R6KmuulvXhWFuO0AVpYvP/mcLMTUBK45Ftnd012w3V0RGdzqJYZUwHwUyWCfM + dNJZ3OSr7reSrRteCiar98qWhSi+nfhGGDzj2gIDnxguHoFZNxJ9CrorDURQ9D51 + t/bfNNA4Nr84CqiLwpwX9mGRG9B4JTBdlkviMEgzFhgHXNzgWExMnmqqlvNXIkCk + M5RdGmAcHza4lYJel0cCMlbo+FAqcAT2k13BMzaHPjtoFi+LTXaKJwJ0Wq4CcKuF + AgwDXjg0p2IN1X8BEADC8Cz+dEHBsMfL5/0XszKtwk3QHwDI1elOpF7F7zVWLm0c + 9xTGlNkfn967kOeuJGIdJdwOOEiz0uRj6RuU/+TciuJ/VleStdFURzBsk1DAq3hZ + rueLO/PF2EIcbx/fNCXCy+vjqre4hZRqXuUfnblSziPn18mOzn53qhApGQbC8plA + HcLcDg/zttC0C0cKcvTKpFQb8F7O+PAmSYWlVJJSC8E26Q7utalB6yfLK6blxmTB + po5Y8+B+Oz0fqWPLjgZLHgIKyB/fKXJCL8+DhC1l3cbltmV8Ng92SsbYyhUGxS4M + Af5GRoOBF3LQwpiWu0xMCqQr8KCT/fYUutumbHQME+NEshVBo+SHL+9V9jf7NuxS + ztmFoRRQK646EqYXqWXa+CssBerpHcgykLDC8V86zjpkeHVEw80fJrOuGmrTu9zZ + xdd08lBVzUnhriO/JjCzt9iq/MBPCKqYXO+gR7TSNxtSLvggM2BfJyoLm3na3Bku + IuoRnrIq0YFeoajStngYMq7XcF/cOzja1eDVblD1EI76M4LCuJSCWnHm95T63lvZ + jQswjTnVmn89we7YvmdpSqNTDjKmE31LXZWj+xq1VNjjlGzljgs4mNQpROl+nSMo + xS0R7YBO/50Vwdtg9wOdcXHoMDw7SjewIcmPTTxyATe6hKBX9+E0X91dkgDpJNRo + AQkCENO6Y2Jwa7sp0f9DykHr9lDCaW8pw1kbGOf/DB7c/S4kuFTlMTJxeaTWT3h6 + R9wLOK3RnxTahHWG5l0X4BwZo7FIm4u4phTmetDhDB2137KO/mAZ8FPj/dNr8nld + tPHZFkgULuo= + =BwOA -----END PGP MESSAGE----- fp: BD1AAF9D8170F4BEE437365FF6F0933799CFEBCD - - created_at: "2024-09-07T01:46:20Z" + - created_at: "2024-09-21T03:07:38Z" enc: |- -----BEGIN PGP MESSAGE----- - hQIMAy5t8IMoPu4VARAAo2y6IQJlsEAswykjpfDzvQw3TCyTiZWe6duhmnDoXKjK - 8A66oDpQcfl0ubjIj6/FJICLr2PGPb1bgKUEz+vBsp1bv+txUtLwUXJTqFKnCS1H - CRKfEmDSNaAtNEtpOGnCeMffB0ghLvs42mlTUUi7u240FJ6MgD7AvV4UlM5IYOLx - +yZyjzYzgNibyh7rOun2E/df2VhDX0Ns6n9ZPZ3TFSdqsXGJ4bqn8+0MhJYeOMNc - ap3dMMhUuUoH5krvocNymJ6WH8x4LwUJrlQsTdr0edA6BhNYC35a2JcAkOGblaCP - er845gN/iCRhl6i/XFYcz7mhMheYmiVf5TEuMvFsdjBl0yNi65wJz5EX3U01Y63+ - G+UeWCLt9+qDnAG3CN45Hgp46xIXocBvUhqdrg4Srtd+h/12Xlg8vV0jcdezWNm5 - pqWVeLDGjDFZNLvG/p+dWF+EDN/Zv9V3Axb1ChYeRCbue0POqr7X6OS5lWZmuUwa - oaiE2vYFkUCcdZtQANDDluh36Bk2pHAOELcttPa4OO4F0mCopAtg6uDp07WQUUwR - TkELlxQvOQYtTJZkTiiOe7ogr3jXWuz6hp80WN/ZVdh6UtO9cNem3d5+hECUA0LY - NuEPYAAyZxfpvRRIrkV768AS+USqA6VDjistIFc/qTG0L3WeDyP6h0plAJr9OKvU - ZgEJAhCQhjQZwIG7xvkuK2EzSePmMMUl+DEbq1GzgCuzh3Y+X/3pryvEjh+002pe - 55FSHnIZn+nD8Z1jAcRI+6mEZWfNYUXecF98+JBGIe73J/xjNUSWJZpSiYLIMnR6 - 6SKCYH9ORA== - =jqMe + hQIMAy5t8IMoPu4VAQ//WzioUV13uyYDIUf0XtwO9khuFX5kq+D2yXToBUeafGZu + xh3Lh5zJkJl/fc52TpFPMLgnfnvfTX6VGjQIfrVwuPzkzML3PDEcvP0gIyn7q2so + 8iCBcuzr/w+CQEH0vS+TP5AZ/aF6i0ZdsLv9f2EwJc56JR8sD7OLG8uJkKWM1wUn + 0quvtkX4Y6ux78kMZm2WiAFxk+aadpopBBeF96E0OlOxsP1DrxXthASKN5GkY34Y + JitbGTDbGI413cAxYSAFpXav09dIfiGuUXShqzNj5VIbmJqbik1An6spY9X/VDIx + HZOfXSz2q1qQfkPSx+7fT1V1CtklcMMh7fDa5cYMnRWBvMsV07QcPwx1Nyh6tqn3 + dMBQW6NPOIIM9l6dg7IsDYuo33nZ4899LBDRDdfBMbKK4gyyyXzIf1gt3sqfbDxm + MTL/xGx40jKcLTlOl31TlmZk672Y5jWy8OOykvd2AIV2kU3392JN+So+xRZ0hWT1 + jVlEsagKyHt8QRp52g9LO33htdX6KitMFx0RhbfgjI1lzzXq6UOXO/ixu+vNEpL0 + gNkKeh3/zU8EgwQ3zEia/AOVn/RWK1ougqHXzDcRpg06VVvW1hF3FuFpiWB6WAMv + Gji1oW+qE0WKvdgrhN6YT2qClqtICgJ0Nap2qPR7Iw+VDzSN1rif/e5J1g+TSHXU + aAEJAhDDqO/6NuqGNDYdUCv5W5zPjDLoVXZURn8orVxsMutzIfZM1NHvQEBltAcV + LnWcVdXRZc6W0QPrUGZOOZ05Y+qyYRtmr7b8LU508TpdZZkbakVZjK3XcchpMF3I + niU4wzHzY97e + =+ObH -----END PGP MESSAGE----- fp: 687802D4DFD8AA82EA55666CF7DADAC782D7663D encrypted_regex: ^(data|stringData)$