From 5e4c4b7628e79e59878f34ab627b6776f049caea Mon Sep 17 00:00:00 2001 From: Daniel Cosme Date: Fri, 1 May 2026 13:38:11 -0400 Subject: [PATCH] Add immich secret --- apps/hydra/linkding/kuztomization.yaml | 2 +- apps/hydra/secrets/immich-db.yaml | 18 ++++++------ apps/hydra/secrets/immich-secret.yaml | 26 ++++++++++++++++++ apps/hydra/secrets/kuztomization.yaml | 1 + apps/hydra/secrets/linkding.yaml | 23 ---------------- apps/hydra/secrets/linking.yaml | 18 ++++++------ apps/hydra/secrets/truenas-csi.yaml | 16 +++++------ .../hydra/truenas-csi/kuztomization.yaml | 14 +++++----- pkg/enc/immich.go.age | Bin 1960 -> 2568 bytes pkg/enc/linkding.go.age | Bin 2126 -> 2126 bytes pkg/enc/secrets.go.age | Bin 2147 -> 2207 bytes pkg/enc/truenas.go.age | 12 +++++--- pkg/immich/immich.go | 16 +++++++++++ pkg/root/services.go | 12 +++++--- 14 files changed, 93 insertions(+), 65 deletions(-) create mode 100644 apps/hydra/secrets/immich-secret.yaml delete mode 100644 apps/hydra/secrets/linkding.yaml diff --git a/apps/hydra/linkding/kuztomization.yaml b/apps/hydra/linkding/kuztomization.yaml index 96e2f9e..c922b44 100644 --- a/apps/hydra/linkding/kuztomization.yaml +++ b/apps/hydra/linkding/kuztomization.yaml @@ -4,7 +4,7 @@ metadata: name: linking namespace: linkding resources: +- namespace.yaml - srv.yaml - pvc.yaml - deployment.yaml -- namespace.yaml diff --git a/apps/hydra/secrets/immich-db.yaml b/apps/hydra/secrets/immich-db.yaml index 6e97c93..a781f96 100644 --- a/apps/hydra/secrets/immich-db.yaml +++ b/apps/hydra/secrets/immich-db.yaml @@ -4,20 +4,20 @@ metadata: name: immich namespace: cnpg-cluster stringData: - password: ENC[AES256_GCM,data:ro6PvLSzDN2nF8TZdmA+tbRCjngWmcrHP93sXM6FrqeZPsoo6h7dsw==,iv:46dbK5Ri6e0hqpHfPGR/1kvcqxekqtgHHCHpDXWSevA=,tag:DN5llN321qc5JQ7fBq0lyg==,type:str] - username: ENC[AES256_GCM,data:ccMGLgcl,iv:VuT7b5p1CAIzob8dy5J0BTml8z2uOlXmg+OncjZJZjs=,tag:kWJjv0vgD8XwtNNq8hFIFA==,type:str] + password: ENC[AES256_GCM,data:YKCFmVBldp05fYSJjZ7sd6HvSmQ/l174dObSi8f6Eq1qEId6wk8loQ==,iv:hABfZ8CNV3wPtfN1Ei0zD5qtft+ceTlLW5nbCnyDvtw=,tag:eZlQboGQvuP+t/yFUUFltA==,type:str] + username: ENC[AES256_GCM,data:wdRO09Dt,iv:BkgLPsZblWStO8H0EgOLRcRiCJvge2oHrQCoGgWAYkE=,tag:c3weTKT5k+/kgA6gl1NLjw==,type:str] sops: age: - recipient: age1lelpkv7u2xh5wezuwp09fmf9gsa8gp4rzy92jz0t203au82a7u5sutsjwa enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlM0NpNGRNWE8zKzVpbFNE - UnNzVDRIWlA1TU9nTVV4elVGaWZOZ2R2ZlNvCi9qQTZHWEtFakRQUFlzU0ZvVHVi - V2FmMkZwVFZ6WHdiNElYc1RKMTNkM1UKLS0tIEcvQllZSjVXeVFZUUZKNitkcW5t - OXlVb253Y0RDWXFqSU9mZ3lZc25yTTgKKirL9lbdeA52EWWuqhELQpnhAWRQUs3K - lLC8LWHDB6z23fw4X9vzYN/g2IdC0dw9dOag2gFEfvafNcr5+ltCmw== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1OGxVTkRhZWY2akI5eCt3 + Y0lhdmthS3lMYUZ4amxJYkdYbzNwVmVVRlhzCmN0d0Y0KzFQcnNTUERaa0FjVHlw + YkNrc3lVZmlUNlNTdzFSWXdiSkFDL2cKLS0tIGc4d0pxYmVVYzZyaWtJSGhUUVc5 + T0FubzdDcC9GQ0hkTmNuM1NjZUJEbTQKAESfbFXmAZMSV2xSVEe4Gg2B5HIlLWYX + HvPqwbjvw9SLMADzbsoqnk2RHzfJzAjx6jWlhLEC30BWxZygqOwjxQ== -----END AGE ENCRYPTED FILE----- - lastmodified: "2026-04-30T22:47:46Z" - mac: ENC[AES256_GCM,data:Gm2sqsYIEbI5yCtWKaVlo6fY22X9+W0u0VRXLEWfzvvhREQC+KdsJYfTyKAJCHLlJw+ciAjjbcsftAFZMt8vweUwMr9qNQIWeBWIbE/j3cNn+0KwQM/f6HpLz0LG27RYhdYWbzQGZDoPlyEIax+XiAhjdYQnU/vbRAty3II2GF0=,iv:Y6N/abUHSI5Y/TfZCpgstcoTfP7NE1Xfrr8AykSMByE=,tag:qjwVvnhlbcH+XUGSTsX7Vg==,type:str] + lastmodified: "2026-05-01T17:37:12Z" + mac: ENC[AES256_GCM,data:7vfMPHhjsDaZR6cbOLaggRtZsxMTkHbKZRwMmnYoDloIx8nhZs91ioXXITK60KmYKjUT9hhH+0anAzOYHyMjxkgkZk8+Hg4/v6kyOl9XTi/k2Wgx7O12GMkqW4ivjiKJvsbKhOHJFVS6VQsPXgvejkESkoImhnRAicVEPOtc1cE=,iv:II93SrVuhoQNjz/P850Y2G79Znstgjr8hqw4/umWKkk=,tag:yJGb3Y6oii9cBnRfj0cApw==,type:str] encrypted_regex: ^(data|stringData)$ version: 3.12.2 diff --git a/apps/hydra/secrets/immich-secret.yaml b/apps/hydra/secrets/immich-secret.yaml new file mode 100644 index 0000000..e76b73a --- /dev/null +++ b/apps/hydra/secrets/immich-secret.yaml @@ -0,0 +1,26 @@ +apiVersion: v1 +kind: Secret +metadata: + name: immich + namespace: immich +stringData: + db_host: ENC[AES256_GCM,data:1tKO33/bK0xAmMLOcHF8IxO7ypILp8Dlwq1rUq4ilWGwGTv8+S9B+MJzGNFx3Q==,iv:l9LUG1K7JPjLAk8cDL9oZ+k/IugT9NiZcyxedUdJY2I=,tag:kwbDTFbOE6B+RneYEdxkmw==,type:str] + db_name: ENC[AES256_GCM,data:XrYHdZpl,iv:S9Pso8AAz9mtdL1r9PhPogjfYcmTAjQF01lTFM4xcK8=,tag:7IYGnqlGy8Z0DP8JoS9R5w==,type:str] + db_password: ENC[AES256_GCM,data:+oXLCZifcC03CRSGEyTs0qel9lkSFk6wauL7R7KesvKXTvXWnEFROA==,iv:6wOdb7/kfs/XnliALyAd6qhcRJcXLO+5juQ074LzBjs=,tag:TbPdvtSkFmso3pB8Gx3sXg==,type:str] + db_port: ENC[AES256_GCM,data:nTfPZw==,iv:soROf6MLJJIBrCoh8cHPrBV0gDZLXIrihezH+402+EI=,tag:cxx0BeVgYz9tvWl5UFHfbw==,type:str] + db_username: ENC[AES256_GCM,data:Pl/XFDWR,iv:l63f8mEau+0ZISRnpYg2+JQI55mAAQYAkuozRNpYgHo=,tag:/0lseB7D+9ndtIjXDa7Osg==,type:str] +sops: + age: + - recipient: age1lelpkv7u2xh5wezuwp09fmf9gsa8gp4rzy92jz0t203au82a7u5sutsjwa + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlUzJtNzFTUEFwSmVoTmpK + Q1Q4K09OYTNSTnNpU3ZBeExiZ1ZLak9INlFJCmw3ZlhSOUZySU9mcDcxay9TL1Uw + VisvSHpmNUR3aWJ3M2h6Y0phbCtEcWMKLS0tIFV4QXBYdmp6c3NZOWJFWUR4ZnNt + S3dTcEdocXdyckdNV2NsWk50WVZ0b00KYcOUyMEzRCDJI91r3MzBUdIvJ4Qem2RO + 57U6pJvyPnAG1GY3/OcrPosheisoH4nNkPHxz3tkv7WWYNby3WetMA== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2026-05-01T17:37:12Z" + mac: ENC[AES256_GCM,data:HnsWVad7+p3X3UUiOL3J71KkeEztMe2B9mLtWJbF7/r1x8TKXrnBjKqAmT/unr3LgYRuqNeMZ4mHwYk64P/T9PECTG/0dnDWpo+8sXxJL6/x0fR21gBwRUY3O8zy8VrEFCDeWy1qg0JrM1J3YyF6v2hoOiRsq0Qel2pql+Kdao4=,iv:SMZx9mCdRPVtMXDRztMRHG5oEfThV4UV70mctsoOS5c=,tag:lYIueK2PzLk7qTUqXdbyrA==,type:str] + encrypted_regex: ^(data|stringData)$ + version: 3.12.2 diff --git a/apps/hydra/secrets/kuztomization.yaml b/apps/hydra/secrets/kuztomization.yaml index c689ca9..0230cb7 100644 --- a/apps/hydra/secrets/kuztomization.yaml +++ b/apps/hydra/secrets/kuztomization.yaml @@ -6,3 +6,4 @@ resources: - linking.yaml - truenas-csi.yaml - immich-db.yaml +- immich-secret.yaml diff --git a/apps/hydra/secrets/linkding.yaml b/apps/hydra/secrets/linkding.yaml deleted file mode 100644 index 9de82e6..0000000 --- a/apps/hydra/secrets/linkding.yaml +++ /dev/null @@ -1,23 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: linkding - namespace: linkding -stringData: - supe_user_name: ENC[AES256_GCM,data:RsvY0j5LNcXQUIuMy3JpysE=,iv:HWwZ/QlTrudv3fiKuAU8vnnXzWLDQjbcMVNQmYc0kqk=,tag:tg6ljEf7lMs4dlMl4mPKZQ==,type:str] - supe_user_password: ENC[AES256_GCM,data:mNvTtG7i2XEkubYX+s128oyO0/oxelgUkojQCcFOOm2d+iZ7jXt9YSGv9Ms=,iv:b44NwHjwyCRq5QY3LgKnSEpLz1UGWUwsuXjNfDD9PAs=,tag:02K45I4l7py+JR0/qSfCMg==,type:str] -sops: - age: - - recipient: age1lelpkv7u2xh5wezuwp09fmf9gsa8gp4rzy92jz0t203au82a7u5sutsjwa - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5TzdPRjVxYmhFbGxZUnRF - V3d5WUp6TXpCUllZSFgxK3ZnaENkb1JsVmlrCjEyNDQ5NVNBdXorcldCQ1VkZEtC - Wk9yWFY4NG9YcytReHBVMnFRRGpPWm8KLS0tIEU4dEJQUDZ6YmQ4NGtyUnZvUDFC - enNnWGhJV2x5d3BZbnErSUs0SzBscTQKYjNHAMOUbpZ+nH8+QUKog+iAZddf3G8j - PAZPX8VWt7jwmQzXPk+59QkfIfsBB/NgQmzyWaf3jBKC2cUZ5sEXPA== - -----END AGE ENCRYPTED FILE----- - lastmodified: "2026-04-30T22:22:16Z" - mac: ENC[AES256_GCM,data:BgDzbxNxxOo5iAeKRtwTKUbSVFZQpueruReR/PL/LA0XrMtDHUBcv/HaCAPfD0kQoRWdve/v4ax0WA4hir7n1jkGSKU/EA1qgtW6dk7ZH/Dql26W7GESQD0BA9A+RCql5SIXcBOWdCfxirU7aUASUjkJ0K1XTXsbqkqOpbD4nTY=,iv:SQcTjqhzPjYU+xNYXL6EUoAreyI+8DJdtywg4QxtFPc=,tag:ALZ3TH2lPhczwYEG6gUu1g==,type:str] - encrypted_regex: ^(data|stringData)$ - version: 3.12.2 diff --git a/apps/hydra/secrets/linking.yaml b/apps/hydra/secrets/linking.yaml index 8276abe..aeedb03 100644 --- a/apps/hydra/secrets/linking.yaml +++ b/apps/hydra/secrets/linking.yaml @@ -4,20 +4,20 @@ metadata: name: linking namespace: linkding stringData: - supe_user_name: ENC[AES256_GCM,data:XVBqIWJz4QHdgg48yNK9nmw=,iv:mt7dn/sEEy1Ed4DX0FK0v5pJFWgZ9MFuCWvW/SNhDUw=,tag:7738mUggImWqrVvWxanNPQ==,type:str] - supe_user_password: ENC[AES256_GCM,data:LJNaesKwkBReCgbbDczkCDL0DMUCo6o2YPzo4FQrgTwyqrlMcqdDm1PP8G8=,iv:zkDt8CSBmdM5ok0PDSaN4MyfFV5vt6YCs/EftWyN/54=,tag:xgW0u6cCQWt1m4ut1vNzag==,type:str] + supe_user_name: ENC[AES256_GCM,data:hCDqI37a0lmpFzNGdBL5+6M=,iv:k2XdcDFAix9ormuAe61NmCmbYX3ylpPDOFV6HsoO2nw=,tag:Ow547g93h8Owa2rF67abMA==,type:str] + supe_user_password: ENC[AES256_GCM,data:rdUXIhNkPVbjVMNfxvHk6CCGzr3qJY1Y6RtKLasKGtcWFZga+/PqTbcSxQ0=,iv:je9WLE0y0PO1uCACg5OiyPgzXY0TeVoMHYiCBabJA+4=,tag:E0Jm60Fhbo572Qv/Hn73sA==,type:str] sops: age: - recipient: age1lelpkv7u2xh5wezuwp09fmf9gsa8gp4rzy92jz0t203au82a7u5sutsjwa enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5WkxCQUkvRERXYVVhK0RJ - c3RPbXVXTnJHc3pna2NKamRRdm9tb0lTMzA4Cis3K3F5R3A2YldIRDlUcUY0YVFs - U0RBak0rdUVTY2VSa2RTbnRGMjJ1aGMKLS0tIFZ4Vks1ZUI1SVg4eXNvYzBIMmt4 - QmZEaEc2L0NxUDFWS0lDTzRGbjlxMHcK9ozIUYv1rIJ6OOGajJ6PKQJLBVofKH/U - 1IQTjS7DoNFH0gEXSex2PtvYwbEqO297EFunokyYDQkHKEqGoMp85w== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMbmhsQ3NnaXIzbHVuelRp + UUN5bjJaMGlIVGpicXNiWVRVajJDQVZ6aURrCnViZ0ZPTFVyejZNTjd1NndSaDcv + c2RCSkowaG9Eb3h0RkJDS0lvaGh2dHcKLS0tIHNRamV4enRZUWt0RzdhNFJOcjdJ + bDhCL2N3OWU5eC9yUVgxbTlTR096eUkKtLsoS2I8oGfZaCR7GwjaSkICHd7DRlWT + 4+GcVH8jz9i7c75osDCtrRNSZkn2d/NsZKDeKg2y9uGoNrv7Cg3McA== -----END AGE ENCRYPTED FILE----- - lastmodified: "2026-04-30T22:47:46Z" - mac: ENC[AES256_GCM,data:VRVM7bWRci1XwvJ/Gwwz0HiY5ik9mcX/dBWAutVqwcqlOTB51+Piw0iONoLC1qCDIyGVOH9mV5U7u7BgdPKxmA3UfzJBcwcwHw0yaoMaFujWOVFQgSSOJ58+6Vuh2SDrf0nAmkJpp0jXkqa9/6XoIyb3qjQis4OsNAAPEXiJMlQ=,iv:8doqWJwaHidcYjbbSLbqUNclfsk3uf1jpyVcjcftA1I=,tag:7yrv+Cr2JlowaXaaO+o9nA==,type:str] + lastmodified: "2026-05-01T17:37:12Z" + mac: ENC[AES256_GCM,data:5pDY0tkLkSRQEcegXg1Ss/g2XpZX8di5XrMKRsZK5Lco+DX8cQQWFEABiZk2NnBvgd6f1l4wcStMXiax4K3AGRCSIVXLSA51ltF1Ooh/Z/HKSUr1lf8cvdq43U+r/ctUGzUrph43jWNXpILuE0ARlawYtxLBVjOZp+kXDprU8ik=,iv:C3IYoF2YyZ3hGE/QxpXA2/iYjvATll2FqrWaQm2T1xY=,tag:2ENp3EBWOgoGjRZ2OrO3DQ==,type:str] encrypted_regex: ^(data|stringData)$ version: 3.12.2 diff --git a/apps/hydra/secrets/truenas-csi.yaml b/apps/hydra/secrets/truenas-csi.yaml index 3cb412e..a2b060d 100644 --- a/apps/hydra/secrets/truenas-csi.yaml +++ b/apps/hydra/secrets/truenas-csi.yaml @@ -4,19 +4,19 @@ metadata: name: truenas-csi-api-credentials namespace: truenas-csi stringData: - api-key: ENC[AES256_GCM,data:P17H1ksNvjc51DbJsTnYdXOUHpMscqtWdV0CxunH+IGx3tsWrknCG3y6zpzb7XMD3TtRO8/63OEcy8W6LDF2+e24,iv:x5If53IjFyrr8E4OosdL1fHSikyk/Va9btePp8nry4o=,tag:QHmdC3vljynJQkZL4fMvlw==,type:str] + api-key: ENC[AES256_GCM,data:CitMTwW7Fnkz39PthZ23Zo+BZBtbJQzVtjFgR0tPmZiSZ9YxXySaf3PH+N7RoA5X38bd+Lrg9/YMEvOVsagQAkXW,iv:lqfA/PnoPVLYW9CXudXfMSsCDPxf0Mn8iLr2mozbSbg=,tag:+5eOFLr6tt4Oh/3J2CFYQA==,type:str] sops: age: - recipient: age1lelpkv7u2xh5wezuwp09fmf9gsa8gp4rzy92jz0t203au82a7u5sutsjwa enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuZ3lranNtRndEVDJLVlhI - ZjZyZzhZenF5eG5Kd041TlN4OXJDYmpIZEZJCnI5Umo5Wm00emhUdG5aTWdkaGdr - eHBOREFMSmZFNzh4ZVM2SnRTdU1MaHMKLS0tIDJiSXVscTFHMGpqMHhZZ21VSHhx - N0haaU8rejRwZHZiMmtBTFI4Nk1tbUEKWwU2lcsejXv5xzCmslKvrugQqU9fHCIE - ebsSK+djYYSVsz/wwHWP2CO9GKH+0mSn2V/fi3x4WnPImJ6JSbitZA== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYQ202RU1GVzdqQitVZEti + U2FIVjNKMzNYMHU1Nmg1MmtJV2xvaUF6VEd3CmZUQWtKRlE2MVFsSGoycE9yL3Vp + ZzVpOERFekZLVTJFNk1PMHhIVHZ5NDQKLS0tIERNRWw3a29FUmxoSWpvU3RlbXYy + TjJrUVJUZkZFQkFFbi90ckJpRWVJaG8KYBoxszg7Ah91yVLs/8T5poo6S5TC6sRr + tyLqwwA3SUIrdPLI/bYON74ZyB95khHIN0em1OMtMYY+Ok4gJuH1Ng== -----END AGE ENCRYPTED FILE----- - lastmodified: "2026-04-30T22:47:46Z" - mac: ENC[AES256_GCM,data:JIKUhicF8YYMN7DS6HhjzN6AfVDSMWIFKKXTGlYqCFE9Arx9+Js6Y0mWtcmNDKDq4JE0kLPZPplUk50jT6SvG/n4UF92i2cvKKkVsGdRL7rb0EVyMu7NOHvp9Y6F7os3raWhGEMHVcZcwON2ANAcVmvUXggP5933rVmnWpt1MjQ=,iv:fNqSgwTV/WVruXdL2/FxT3F5e7XVuX1mwT4vJ52uyjA=,tag:iphxaJq0Srln7LlLy3u/DQ==,type:str] + lastmodified: "2026-05-01T17:37:12Z" + mac: ENC[AES256_GCM,data:aMiws/+k8OaL9qdDrXBwq7aAqnUZMtDCFM9WG4kt0dMT4MJf5mxqaoz2RDupAWaWjQ3ccxW/WoGFazRmuIdPnoeyVsTRfwLMa17+HIvOyAZAajqKnUqIGazYjgcQiw8S4D+B9oa5Jl+PFu6bIHiWJLaHw9m5WrU55olJzRpOnNs=,iv:nh3crjtwYICi6IUiX1gZD5WOc3A8KkuCAVbBnv0LsEs=,tag:J1CneXNbRlSqf0PY/QEG6w==,type:str] encrypted_regex: ^(data|stringData)$ version: 3.12.2 diff --git a/infrastructure/hydra/truenas-csi/kuztomization.yaml b/infrastructure/hydra/truenas-csi/kuztomization.yaml index 5f7bf87..acf6f67 100644 --- a/infrastructure/hydra/truenas-csi/kuztomization.yaml +++ b/infrastructure/hydra/truenas-csi/kuztomization.yaml @@ -5,15 +5,15 @@ metadata: namespace: truenas-csi resources: - node-binding.yaml -- node-deamonset.yaml -- iscsi-storage-class.yaml -- controller-deployment.yaml -- controller-service-account.yaml -- controller-cluster-role.yaml -- controller-binding.yaml -- node-cluster-role.yaml - CSIDriver.yaml +- controller-cluster-role.yaml +- node-deamonset.yaml - config.yaml - nfs-storage-class.yaml +- iscsi-storage-class.yaml - namespace.yaml +- controller-deployment.yaml +- controller-service-account.yaml +- controller-binding.yaml - node-service-account.yaml +- node-cluster-role.yaml diff --git a/pkg/enc/immich.go.age b/pkg/enc/immich.go.age index cb020f422faef3d78cb73c451160cdd4b7625d52..2d1541c29bebd8063e1c941a5c3a71d49370296a 100644 GIT binary patch literal 2568 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 Ya`2D0{_}YMU8;5w`ohnjymHU~0bIAdGXMYp diff --git a/pkg/enc/linkding.go.age b/pkg/enc/linkding.go.age index e1ada4a61b92b34118bf4ec24386934ce6896a43..e7f570f90f0154afd53196153b1cd7ed05a03960 100644 GIT binary patch literal 2126 zcmWlZYYf~30mlcZ%n9f~U;)`CnhmU@*VkPS0l8k=>-GA+-t}61(C4*xecrX#-o=Q( zh!Z6m-UHnfL=qv3iVC<8c|_y`Ft;Fa;}IS~aSRYa1I7{Om;bl_hu`m?{LQhu&5iBZ zGR=b|z95;6!3DH#+a;T$aOy^lI$psT1~oU+SP9xR)vG%wwkRYZqjQSR8bf`e6J9oJ zQF_2E98DaV*-CabM6_EqfHeg-QiE9#_B+EI#Xy}NiLTh;fhJ9RneWvTL77y`##kks zdBWFwU{GMOKW{7Cux*yD*e6Frfl2*_0I;wbwVQs>wS@}Bh;Uh(IsoUu6yKVJ`4khU zGn%ZL%`qA@#JNXtuvWNpNp|!h?D<30$T~QvbgGb;`Rd~TB+GzVF36ss&1f_rU^CGt zfhV#{Snm<}gu}cpqmhGB0LL6|MFqy8(kh{uiPMO?c;1I<5N$XsV@Sjbn?nP(4r<20 zZ78WYSJ9N1^zmU+G1(by%^e73-3l&)n6^`k@rn^mvT_HIYohI_0;bK!NlGDw1=T2! z02daw@)ktiQO50o01UkZ3*Dev@lG}*Sz^9y7qF>8$GQp)jtGqME6lbkVL1yNYmp+7 zv8?(%Fzw^riImV?g&`A%cYUS|U^j>?Iq3-PrXjHg)TPSWknW85F2w7tdQYa35$xm+ zIM+uL0$DMhm*g$BfP1rnV$_jZ7;qUUP?c*%6m5aia-}p3tw%a@gIgh~HWEUm9O~2g zF=BU-10&CCB2>FjLL?st(_@kt5*iZ#??<*Vs?W&82k1^xiakP-!-->z+Q)Jzp_o^y zEowORb)#2XxtuE4Me0n+W`!)V<(Qq7x|%he07oS~=ekO**^9NwmAf(x5!yPPEThy0B>~2*$+3NbhOT-EoaXGv zsxnOIDb-3cRug^&4xzrq+oTf2jOf8t&T<&AfX2F`GD@8vcMv_b{d{SvrehI}a#F+t zBhtnu-$zw!$f<3?qN<4*S;3s?EgA;OnY~JnrVy`1d^-}OJe|TOK!oF=0`vWeeu-yXDF^;QjTNenu>Fpo1KFB32A+<&h}&MMs@P%} zbDFtL8ACx4Zxb!ncMHNR-~j_HeN*APG#-SlP9tV%K@bzRjx{A4Q>2zovR>b}J0|Rd zDMu!_q47bDiKPMwrzX*$9NLZy-4; zyTpQNlKhS+UTTW>HIsHf+#535y1xSh64=dqxAO0%5GF2JRzrQ-(UogecoxN?WZU zpagMnh-O`Y3z~E-9@SiF85X?AwncK0fd;L2dyBM(bO;7)0xNn%BLuUGzKe0>2(_th5UCBRQ{i>VR}{SOnrK?C+qP}nX4}<-(O_!u9X_F= zY1^IW(b#fY^jx(TO}y;TbfzM1*(=a>hidU*>HIe@dE&RTYwr!8t-tuj4=!B1n>=;k z@#8jJv-|#wE)92Vzwf-0*Bsuv|CBw})@QzVHNWA*C(gLwi|+I5&mwPq|M?KKAOCQ@($*a_8lHUpxGscmKNwU${w>Zu#!%Kiql#fPm^Z-LUB=+rO^G&pknX z5Ij;p@;Z9$!w>#GSUl|+H~e@1sW1Y)zXrSVn&pKTi(h`=u62L-_cN@G{Pb7K+r?Jl zynnv)7w=N_tN%Llp8p(_p1%Il5V-xV+b%oxAie8m`^46vXRrPaT5Y`S;e7We&W1L2 zF4|3f;j|}ro$>S=dpEvvBmASk5_^C7;rdMn{>HtQJ+y!C2`_EkaB$xx$KRrUZSU-k zwff7Sqwc#R-Sf@o_x$=|@7A67-n%tMZe0J$>5sm6+ef%HrI9ak~q>g4c*L1Uly z+sv2+D)2n{h>-XN-f8{1} z$KBK2Yd=+vuRj0-(x-3v?4;ba>6K5upsvGPpFi~Xx1v{{+I0JFI6AoXGk5RICeF{V J`^SNE{s*Uz5)%Lb literal 2126 zcmWNRd+gi<0f12u%w%kU1Kl7S1T&%gaqT_&U}Mtj^>No;ukH19#Ubsry}Mo?*Is+q zo{E{U#TX}G#4#P98;Fmo2s6pP~-4t3mm&!EGQsaiQn2AC{8FsTBlASrE7d#}Oa@OMq zE~!uzd!oTY+sv$V+GzSdgQi7V8paaSOrg0l?#*~Tf|RtpDC2RPDS1QP7-oscD_Fgl zB5A@o79z>Qu=!ND^FP{2n*^=^6q>alRaN;ZkYn{;*zB^j z6d>RzW%&hDV?uS(bgNWWnobecYV{-6f-^@m0+eJKH|k5N?FeZ)m}Wt}5{g9GDr-6j z5k)_*gOZ&P!z`yOQmbx4b%^e&Zj85qqTpa2mLRyQO=mhOH0$`3_B|tE={h{^w|hEG zVq zc@LJtOhuiF*4Ju6gAqcD7erj@N=k(+%`LfJVp4P5#hZgfmGWTRod{GkuKTe>s;=wt zjS`uqfl;OHwocXh)j7r3<05Y<2F(S)Y_!0AvCnz~Q9-A1Lq|lZff*Q!iGZrJ5;w#w zq*wr`Om_^V<7%N&W&(sL<~px-5L_nbD&eeaP$oKc1XaAAZvaW|Le<7tgKFl)pZP7m(Haqc$w=G0*h+D|G-wEn z%(MzGZsw7$HDH;JTd+NdvbwK#7GZ=j#1veDbv-eO0`kO~&XP!}k-%=513A^2cjj77 zEn0#*N(Vfau*Rfp%UoO_(`KO$kV4HCUZ_OPn3#>ryf7coCd$q*h+Zf%t*d<~g#iq- ztMih^EUf7y%|%k1RjN)G5>>D~r_E3kLQyCuY?#zX5bCrtBajF^rKUk{PiDf1Ps^4n zA!ZzcaSblz4S-4H#+W2+!qG;#-Y7}pV64saK3)$gYB+?f1w5mBNuxiSG^D7?(_Lo5 zj}ph#n0WG{&I}tT4jQHID42wx?xUg;<(k&-K^49&yR_z3q)vsv13G zKU{Xnk%O-u=AOIzsrS!b_Ru%azxnD-zZi$lRrF13w}-^KODnI%cQ>S)USOU%^WsaW z<==Yuz^~6f>(%T3ar}jU|L=1z{p87=n^#rW9RBH*)}QYEBYV%O8?nxd#IE-q-Fo!p z5qJpR`^HBjd&}z8yLsYgPYAaOTaNs0?-}1ay7DpW{^kEIUwzfZ&b1Hj{>D}141b>~~FzW}Uy_>9li3w>F%VtGhPtd*IH?H(j{ns%w*v|8|9bZs)xf z2lmU?f9Bo8XZ~gVo@{*3dHHNi`_z?O>G%ilFFka@$u0Co_tP(boC7!R+mI;+UIQBw)xQyKmWDeryhM{<(B9I^_}GB@kMLCzV(i;Y(6&d zrt5DVXFHAd>vrwD=&t2IeD;P{j_!JK?`4}J|D7H7!)HA5=F|H>M6Y@F$G`mR+jpF| V#(e&(>z9N*YtKJtn-B_}{{#1a5~BbB diff --git a/pkg/enc/secrets.go.age b/pkg/enc/secrets.go.age index fe722d19c039802080945ab6f5039f305190b024..d54f2342923b345ccc27f5f4f489d795d919f02f 100644 GIT binary patch literal 2207 zcmWNRfAHG`0mT`oaGN{z_%W5C8w$wmwkB!XB&Y7yG{2f3ZQA^5%aFBck|u5Qt4Y&@ zlY_}%Y&XWi$%Y(o!iGD>?!?oLDTo_P94H*f0QZN;7>EdCsOZKv=J%iX=ezgbz58@6 zV};@BVd_V==dScZD?bGntXQ>lJQ^Bfq=e3(ViClahDf6kiyj=<3a5y88?8rrzHiF| z)lYzlKVx*>ESSomI+bg~SvfM(24eOgGPb+$1j!Oj?2UuT1obG0@uYG(vgDbL;e;}s zxKs~xY|xt^(wNlxaRg0V9v7Gj=GJEeyIpJMvT+k{bsZ*!<2V=+NZlQk9L@+d%tsUf z^snD#~xTHrnxl%o!5BPChNKM8{MG#LYabiqZY6`Suu~+g~Yub!+!vqr}N*ETp zgP4Uo`Y0{4oggg8nc_J0h9ajex&uZ=ldHxksmSf9AEV$5A+T7=0ci;JhP_sqVH#n7 zI+KD~F`_HXcovGf!MExY%Wc4A2w`g`N;z0r0Z;<=U7~6rL6hm#x+7Ms1fVoZMi^#(kmgISAS8!xJK8LT)IeTo>@{4B)I3AG91f7tpvW>XfeuMYv(god%W;c#-){=yg zmo({|&Mo+ak-QFbx&ZPLCA_2v{w( z3AvVrs@}-3IZaVmL*p2U=%B<2x=ZxDW{(xBg}77Td9$arfKdsN2vSWr0Fa=h1r;M+ zRr7(PfeGrkbLE3Fs|}-kh%-vwo^|jVmJSOXJF$uiX;Gz_$AI;ghtzXYs0FO8m(nVr z+EpSa6hlR@p>fHU35|3iBj%h&8;YjnI3rm;DU}AZVb~wmC_#i{ub`$Z&l%IAPs4aU zm-QJID|@9{1Gg!Jxnx2Ap-8#gUr?Zf|CxL8Wd_pkc!= zN7bfL!Sl9`kuyg{OqTZ`2X>Tc*;iP^7ElaFGo=bUBAX!+Gs|}i&9SJqQ8IP@6>_9duv!b630RU{!2}BPoN_#Lsou<~2yL09(P>K_r z2FPYofG3&ECs1bA;AAK;b+v`#Ep#q)J5>A75TSb(HpeNp5|{u4N`&j^U54+_ZmU$a zTe8>7qYZO1n*&9WH#3aN42T=_)$us7_*LCbIZ0qyyX1m-t?|@;Zqb=^G!ODEH0q z*E?R>`j=ns`c{0~zfRtD@byRc(%0W~bkCuGoN~Cug(nYGA2|Kq^3y-Xo?gb7@85mZ zn%n=JH-aN8tr$Jsc7FB7I^v5@n-6ui+;`!oHGZ!4=B>-V`t9vs)33PDJgfh4a^>2S zn;yM%^U~eXPayu1#Y*tv&dS4YylkDl{Ook~V&dSr^UqsA9D482$~~>U{Jz`|*6sZL z!W|#)J0u@EStPd|zW?4e*n{6>-fmuXAG+bb+kXDiN00orcKE%EZ~W}Fwc9>--nG(8 z=D(kKcE_p1$B1_yLGL)S@66?^&wfhiYlg2srb{bMvd^&1fx`}#Bc=z14UB|<}E!bJzW^P>e?Bmm0H+NSpyyZ))E<60=*KWqH zz3Kz?ic1!sA($V&we}0|FS=pv1GgT(o;v@~$47R5JUaHjbO(9tmB$ZXgnV!v{VIt+ z_=hW3?5{G{-Mke&7acwE)bfSA?D*En9f7$ZhfNn78hhI~V=u(}O4ViynIZPwQU!Z~UX0yiwZn`UBTI_0IhLtM|@Z zfAl$O^U>R5a@FN0o>!l~cjNXK@)w*w7jCY6_<7@P>^B#!xpD8q2X=hrfPeFrbL(@1 zE7!exWScO*{LC+s`Q=5`FK_(1`h>OT-A^_wdE-rZ{(9=_)qg#EYTt|Jt-NN}bGy%M H+==`jEO$f? literal 2147 zcmWO5{mdnLuGhmmJ>qD=0!1ys)pqJSa-5Of=v4rr)pbSIVxJ9voU z6|V09-OwL2RS@Yaj;uK&A&VM`AST$%>Utc7;X+4pVg)Vc0N00^39ibSYmjp(m;{Zk zQ#RDzxX;KViv>Kc$^(-O3mBqe4+JSB91?Z0x<{}of>1KAH0^m_N$dnhOFagYhj>-6 zgCZh`lyo5m3jK~Tl1Y9cqP;1>0SJjhu$_3(0E2X?0?F<~%;Mg{*QGH(>V!2%9g-6- zl#MWAL%Z5&s*|Z#4J(6$G=1F9tAf|C6(iohrzV zeUO`RP6ePUI7B5CC#T&JdDGtI1*StZKz(OQTKC^P5>E95KJq_WC${BstGf% z-m@eD?}6<)Qa0dpU}c$c0`X0XFf)I6F?(*+iEqKG?j%OFm@RmkWNy?oZ*8MwZ{#!+-)i?h=dg?#ptTx z!;=MgwZ};;64GF)ibn$j?jxGjbvZF*8?5tpsZZM-k)l zFieL92~h#jV4GA;X$P}VN@BBHgYOz9}MhoaSJ8OS8iF-JiRLK<4o@0WZ1mtVhl@n$P6?(fWNEypwOvL5%BHTm z2oI5l8Z0=ZOchhc$I=WD+9g(6%(``YQLX14ZBR@TBp$_}TS~3zJgRyiRFtg22ogiU zG4QySLxflWC`ZLM(eYKjA{q6N>Q?$t%PLb`C$vogXh10(u#P0#2xAAv~~K z{A8M@q^A4biePpXN=j=$GnOpK7?BJ%<2jd=>NX^nOstMzC~o=+#)7s$_*|x-0Y|jF zd0kG-e5k64*aYk{uuw{74QQETwdf%Q*PI~+2rgJy1!qRpqQ|YdEb3uU@o`S?cU<3f z1W~P-lch@5pP*A-=;+f%kada_6Z)n#)TgmY+2vAzIvJ|a<#7&WOB*+CT*nf5XFPNz zh|*F{95pF4u+Y++v6|d4=m6#MM2oBruDhhW^v)e}w>U%}Ty^m8dq-bBch^V99(-x@ z%HOUy%ANO<`HqLT9Qo>}#=p)MlTRM~-6LiC5Pp2mO`C%=FTM9iU)j7PI`jPRe`)*j zsdwzy>mIvn13$fw_zUzNd))`A@Zf77zi``WOOM}pRCwU(H>@?c-@5(PKO6z{75Pr{ zz>zoBKl;ew{b!tb?c?JI&U@nU2IhHqe$geZ-H%;$`8!K*-20z>>vUazdz`~BKeu`H zIWM&~Y&>!M-OokK(AJk%zoISm?e&}A`h3&z>64#OPhJ1n_wLVMe)bz1E_DC;)8g4b z?t1H))4#iF=ayfrQjTxCV$+Fb?Uy$k6Sf;?zkSO2>knqvN~hf8@3!u|=70Y^=MnU* z{mW;*`oNLb|9RFcyDt91eBXtu&=+6Y`WUej|KOQ-j(zmnxnR}%j(ZojZq+SEF1_Hf z^ZLMvo1b{1yuG;N$Zg99&$k$xZkMjy zed4{rn-}ff@$_YfevZFb(?45t-T9+)eslPnd#>NRcI$_O`_K0L{(Wm-_|-#i?Z0WM z^7ubKz59yOzs`L6?x`yjzxKBkC@uYPlpehJg4as|d0^YS&ttthdh4r~UHj{MOy}FZ zQ_r}ZUb}tG`#b-%_V*X>Uimfb^@l%!|IB=A`KkQ mlkem768x25519 SPBDKJXj5sE2FiR//CEhQ05006aE3OmUj47bLdAcFpnmQ7PBbQfrI0CoBxnavWs4j819eCn2RkptXIxOCEr9SEAfYBknMLQhjxHrlhz+wR6I6tDLRmdoapk9ZCiy78ln5XeKTmXjIaWdUGidu4SZ5k/U5CkfkPg2pO0zKFhpDFdhPwLr8CfXNQyfXf6NS17HTQhH3a8j1oxaSvy4FVjEwJw7D5kUfD4MBR8uA9ZCa/DOc3BFR4fZqhdyDlN6eECZpCFbm4aZqZzndtcMwBDvT4kXRDOiTg3hE7Mu8NGcocOxH5UFqLS+2gFfWCxc6xjHddOPPymEHF13ucBiQvCK53iaMfruGbpE5zRKJXLoWI5NhAQnfaBcK6+XKPQ/gF/U9QVmWj1uleXIOjV0uauvPrjviW64wXqrTP3Qcbcs/8Ci3lkrtb4ngX6mCvQHsxDjdFSKIaWrX9QXwmPLomPWIbKb6gwCcl4G3dY3ngfrI5tyzY9L37EZY19FFa97vjJl2ZDIOCpK+reQaDBpktcf1fk9xeXJPJhliNqFqSYylSj9thV7mz9NT88XkvhZFGMD10y8gvyT5GuHlgGVbBy7ir9Bs1tZGdW8WL9ti4gh2CZJMVVDkuhcpi2Ai4WAg5vvni5B5b65LJDrRDT93mGXXMaHosBtoFeuj2Z8U5FW7KPFwRJRLc9X9LNSQrlYmdMuM4nkldK2DrNDwVXMTN6R3FdwxF630YAsoREs5UJ6L+GxSs922Yg2TkzQENfX2vVYAuJ4dn5Gsu4laNI8uDfnTyd1oM1PMELnJmSBpSBJdEYPwOeI0MLXbdUnws9A1ItvCOrcIHJN7klMUvlIBvGBqiS8O+1OZ9Uciy/3xOZTP79cT0Z1GzKScmaCvvo6m2ogfbefAU9cEYwkPoyDRG5XSv9qr5oTJ/1sYrB7slOsOuOh8+IIGaeeKAWNVYWv/n+WdW0b1JFPGMGQH0zagAOCHfpQuOG8rG78FeK14RFwxNzntAlfFXLf3gtgdCBHeqxZDQ6XQvV6RNDuGcc9FRAPg4PZvSnNHuu1jvKRvXZbzgq9VXCns5ANDKKGHi+LS9qH6f4UWh8RfGkQnRoY0BS4cxOICahrwl7n2rPZ87lw80nyArDlROI5plXbLtCqA3pdS4+bPRNeABLCZKb2nAniOIn1C0cOgkYFxq0mh6X7NJNMGGTQKWeDTxIv7n/oU+QhDrDvm3A5cNNPoh/Wi1dppQd/dkuWu1NbxB1EMzQdRI5WEjvZqgr3LGg6J2K8Aarkv40Kgc9LJEW1Umuj1p5313DZVtS5EcFF/N+3EQVICe3Xqg49jtL+4J4NSZzEj14Uz15eSjSPInmcDMx6d5r2Wo9X75+a71xswLx1DZTvAFEC0us1Mt91qQK+tlbStx9onl8RXeKkzFAoCNZpJiEffEz7dRR3hQpfCWXjJr4IY8gTFFSstjtgRV8W4l//V9SWgqUVyV4zNzGnhKfa1uA8Dw -+3s0pA9VTfNjhy5VRex7EcDtke1QT1L2Oq7EsUv2a/E ---- UYuc4fSSe5o9iQ8ywKTHKhRW8ZynKd9l/D7Yl6H8iEo -6g,H(gjMJ:_q~؈&7aN+tП9e$2͹.igƖˮ59CY,BۨG.kJּf]`PKz_&2ޙr"еos睒~3u 1D*o`3$*>XGpIFʀ¯Y}q'1i+d)b%dұ Պ8PFZڏk,nff@"_h4E+'A-qK1r<$ڑtǷnݴ@Zk'8P ?`]4T}WkX~iݹB͏]:p/ToT"ka~`bi|'Lq%iS PCG=͊;:T*%^qٺƒ<'5+3Y 2 \ No newline at end of file +-> mlkem768x25519 bO3nw1lrNsYPUGX5Vcb595BHVme1jyAlX4M0q0QxUPyWr1MdyFqUW5CQ2MykTxAUUZ74oCiX+PAskIwTmkjO1JDEVeA7R32uEe90U4wBxZpefV4eubTClo7aFV+ZFpcjoye9aRRRP2DxE1c7ZUq7vOp0VShwyaHPwIQcVUO8bOqLCBKm7FsEaRXX+WSMIW0S2pvNXRQUxs3MgdQQ+zmyfYqmzQLsicRkXwD2rBaMBi0gj/3nUByPZ51JOFE5EC+iyuJ7dj3cBMAHZAhfXOdweOTVVDx0355aKoCkuSY11fEuYwCl2GFxALUJi5wJjpGdtlaR+e98z5BGL+7jNAqRsycV0oKHqUQcg55nwznOF7K/noJNI0pwm/Wqb8cHEKLlwwO9jakgPnLw4MDvZ+ySfud9ugXO2oHYRw+vVOhSVR65zUJH7E+PMTUrQ5PkGvIoG9v+/BkegnI3snqF6VNBc/wlG5PHZinfUIM2RlKuHg7UX8tF5Ps2xvdAtn2f8pRJG0N6suXPuEPrwx8l1xG3/dZzU2n23verRTqKZ2aFAZuWbr0Mxi54dR/t1BtAdq3LGHqPhd1Qw4b4dZn9g5+rvO7LSrL1f2UEhGqr4450g0GXAK1vfj9WM0rRECGkPH/Za4sNk5+jlGqGqR8nTBZtEV5Zrd0xW0GJocjx/1zjRiOh8u+C7F2xBwQIOxYFLCuu7MuhfFvtfmGa3VCdUSWRCmG6fiJLOmhuRosvzEqPUJcPuKCsP5jqydHZusu8xjakTSpG70JArjyACnIH9RZa4KBzAj3VNwVXOALn6tzncgX/OQ6BxMYzZyLCC/xK8kR++iRBT9jhFDgeVhBghpsVBAlK6yAKLczSXAI3E0Htyz7iG3XMFp0qyIyx51WWDxre85PxI5qKTzTKrOmsuijC8l+c/tQXB3/coN8Ki5FSWE8A3KQz0fe9vME0cWuXGHe4eRkEJAe1+BixYtn7T1V0nKZ2FU9rOj2cQR59Bclwhf5rZ+Ri3CPOOUx/SiTVlgnowZcvvZpaZ+jbk0iQMuUUE7BOJQXoa0o3Nif4ZesDLWNmxjVt9CXJpKdPKA/iwwYLReg/jsmYLHOgqBG5kabqkccjXapN33ecs/IIjt55owhdcx+2Imj4Cidm+lWuupoXwYrMS5MPP4XWfkv2HV1ocgaP1ILteMpZpApws8JKLZP6obS8MIgKsgHRRxFlNIx9NplnDvxDP2RHToUSjn0MgYAsuEKP+tPltbM3exwXduowgRz1sjYJUrquMVJnLc3eVzzy1dtTnimL71UW9lRMPzON+MREc3PE+a2tR9Ooq+q4ViTIvff8QFmIOY1B4o77tavvrCGvtwksQz6JTwR7LbWDizHwqOpvxmR3ScDIo0RvoYpjP+fqlmr3GbPaNc6L/yWOQDJwwZPqIraL0jEhlsbSTyxHW6FtrjHYrWsrQ6JdPARIY9Q5+b9IAKVMV8OHTdEP3ehWop8FDEf+GZF8Ow +4SFySSbbIT2XA59MffoN9IWmmViLX4vo6H9Dxg2gpVI +--- YUIaqcGNwULVEn4zeaEhq72dSEwUE4KeJjFSMIB6rq4 +d!,B!؋=5ƴNhó}eo"Qen +^6ǹa/xrtBb12;Ld3jɚ5a֕fp10֋W'hU\='@!{ +iU'V+0*V(pxY3sL_#Tac"Kg({vd%$² <9$j$\rgFZkbiDBC9O9zHĴ?9u_ );Uy,*<2qXAo9?+;k Lw ^5fqa}0)6XMY+ ~چ(soxץ;H2+} +hYv}v# ֜.Wp:L0^ +LZ!~:c@@GԽV K \ No newline at end of file diff --git a/pkg/immich/immich.go b/pkg/immich/immich.go index 60067df..de61227 100644 --- a/pkg/immich/immich.go +++ b/pkg/immich/immich.go @@ -7,6 +7,22 @@ import ( core "k8s.io/api/core/v1" ) +var Secret = struct { + Name string + DBNameKey string + DBUsernameKey string + DBPasswordKey string + DBHostKey string + DBPortKey string +}{ + Name: root.Immich.Name + "-secret", + DBNameKey: "db_name", + DBUsernameKey: "db_username", + DBPasswordKey: "db_password", + DBHostKey: "db_host", + DBPortKey: "db_port", +} + var meta kube.Metadata var Namespace = kube.Namespace(root.Immich.Name) var srv core.Service diff --git a/pkg/root/services.go b/pkg/root/services.go index efe2425..23cea7c 100644 --- a/pkg/root/services.go +++ b/pkg/root/services.go @@ -1,6 +1,8 @@ package root import ( + "fmt" + "danicos.dev/daniel/go-kube/pkg/kube" ) @@ -38,10 +40,12 @@ var Immich = Service{ } var ( - Longhorn = "longhorn" - Monitoring = "monitoring" - CloudNativePG = "cnpg" - PGClusterNamespace = kube.Namespace(CloudNativePG + "-cluster") + Longhorn = "longhorn" + Monitoring = "monitoring" + CloudNativePG = "cnpg" + PGClusterNamespace = kube.Namespace(CloudNativePG + "-cluster") + PG_CLUSTER_HOSTNAME = fmt.Sprintf("%s-rw.%s.svc.cluster.local", PGClusterNamespace.Name, PGClusterNamespace.Name) + PG_CLUSTER_PORT = 5432 ) var (