diff --git a/Taskfile.yaml b/Taskfile.yaml index d87c97e..6d8427f 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -85,14 +85,14 @@ tasks: cmd: | flux-local diff hr --path ./kubernetes/flux/cluster --branch-orig origin/head \ --strip-attrs "helm.sh/chart,checksum/config,app.kubernetes.io/version,chart,checksum/secret" \ - --all-namespaces | moar -lang=yaml + --all-namespaces | moor -lang=yaml preconditions: - which flux-local - - which moar + - which moor local-diff-ks: desc: Use flux-local to diff Kustomization resources cmd: | - flux-local diff ks --all-namespaces --path kubernetes/flux/cluster --no-skip-secrets --limit-bytes 4096 | moar -lang=diff + flux-local diff ks --all-namespaces --path kubernetes/flux/cluster --no-skip-secrets --limit-bytes 4096 | moor -lang=diff preconditions: - which flux-local - - which moar + - which moor diff --git a/kubernetes/apps/default/kustomization.yaml b/kubernetes/apps/default/kustomization.yaml index 1650bd7..3418051 100644 --- a/kubernetes/apps/default/kustomization.yaml +++ b/kubernetes/apps/default/kustomization.yaml @@ -22,3 +22,4 @@ resources: - ./radarr/ks.yaml - ./sonarr/ks.yaml - ./jellyfin/ks.yaml + - ./profilarr/ks.yaml diff --git a/kubernetes/apps/default/profilarr/app/helmrelease.yaml b/kubernetes/apps/default/profilarr/app/helmrelease.yaml new file mode 100644 index 0000000..a671346 --- /dev/null +++ b/kubernetes/apps/default/profilarr/app/helmrelease.yaml @@ -0,0 +1,79 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/bjw-s-labs/helm-charts/app-template-4.2.0/charts/other/app-template/values.schema.json + +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: &app profilarr +spec: + interval: 1h + chartRef: + kind: OCIRepository + name: app-template + install: + remediation: + retries: -1 + upgrade: + cleanupOnFail: true + remediation: + strategy: rollback + retries: 3 + values: + ingress: + app: + enabled: true + className: internal + hosts: + - host: &host "profilarr.${SECRET_DOMAIN_INT}" + paths: + - path: / + service: + identifier: app + port: http + + controllers: + profilarr: + replicas: 1 + strategy: Recreate + annotations: + reloader.stakater.com/auto: "true" + containers: + app: + image: + repository: santiagosayshey/profilarr + tag: v1.1.3 + env: + TZ: ${CLUSTER_TZ} + PROFILARR__SERVER__PORT: &containerPort 6868 + probes: + liveness: &probes + enabled: true + custom: true + spec: + httpGet: + path: /ping + port: *containerPort + initialDelaySeconds: 0 + periodSeconds: 10 + timeoutSeconds: 1 + failureThreshold: 3 + readiness: *probes + resources: + requests: + cpu: 50m + memory: 128Mi + limits: + memory: 256Mi + service: + app: + controller: *app + ports: + http: + port: *containerPort + persistence: + config: + type: persistentVolumeClaim + storageClass: longhorn-standard + accessMode: ReadWriteOnce + size: 256Mi + diff --git a/kubernetes/apps/default/profilarr/app/kustomization.yaml b/kubernetes/apps/default/profilarr/app/kustomization.yaml new file mode 100644 index 0000000..372f754 --- /dev/null +++ b/kubernetes/apps/default/profilarr/app/kustomization.yaml @@ -0,0 +1,5 @@ +# yaml-language-server: $schema=https://json.schemastore.org/kustomization +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./helmrelease.yaml diff --git a/kubernetes/apps/default/profilarr/ks.yaml b/kubernetes/apps/default/profilarr/ks.yaml new file mode 100644 index 0000000..abb60f6 --- /dev/null +++ b/kubernetes/apps/default/profilarr/ks.yaml @@ -0,0 +1,30 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: &app profilarr + namespace: &namespace default +spec: + commonMetadata: + labels: + app.kubernetes.io/name: *app + components: + - ../../../../components/gatus/internal + interval: 1h + path: ./kubernetes/apps/default/profilarr/app + postBuild: + substitute: + APP: *app + substituteFrom: + - name: cluster-settings + kind: ConfigMap + - name: cluster-secrets + kind: Secret + prune: true + retryInterval: 2m + sourceRef: + kind: GitRepository + name: flux-system + namespace: flux-system + targetNamespace: *namespace + timeout: 5m diff --git a/kubernetes/apps/infra/coredns-resolver/app/imagepull.secret.sops.yaml b/kubernetes/apps/infra/coredns-resolver/app/imagepull.secret.sops.yaml index 9ec31e3..c2f02f6 100644 --- a/kubernetes/apps/infra/coredns-resolver/app/imagepull.secret.sops.yaml +++ b/kubernetes/apps/infra/coredns-resolver/app/imagepull.secret.sops.yaml @@ -4,7 +4,7 @@ type: kubernetes.io/dockerconfigjson metadata: name: ghcr-login-secret data: - .dockerconfigjson: ENC[AES256_GCM,data:oqXzopHsGeoX/aFamEEOK51P8bJodPIhMnbpONCqVwT3Chs19qoL0l9AZNNOeAFwDWxSlZqmN1wWQyKVvV1Jbm2EoXZox436kdjv2St3CjkHDYcXoM4dihwduQNr+UVNd0Pag3t2SVPUoV3pf28S+ERsqfYpngzNkLlbbZF1QjCA/EYiaePEzcqF0qbrectLihYb23froQsVdNG46KH6etZejnoQX2hTELz3zhle7rARre+oevNSRXTKxc8SsDDMK4rvOwwW+41cvMMNdKZIZ0trOf6fNj9APa/UfiVSL0wFxlcn6NrvtSk4f0v6fW/+oPQRq/wSyt6Dcu1BEjZm1OS0oeUQ6Wz6RGy7nDX49v6RDEH2JowaEobVOPWqY5TI,iv:yeGHWycQEGBgtQGpJE6UFj1jCqAg06MTQZab09Egt9c=,tag:2jFXcV4vJQNvcahwtkS+EA==,type:str] + .dockerconfigjson: ENC[AES256_GCM,data:1UodXvezBBl/76XeJqKGliS8UuZxdQFw38Likge2PfXJiS1t6Mxr4JPlh9K/UjXi0xgXUeUQ2Vf6DPiKh1d0JZWnvnPwxYodieQboXnDxlJtOvy+lBRaNVMc1lNM5BOdum0TYJQL9hDKO6n6N9PzscEt4DjsHP0QbiwKKetAtybsFnWr3NZ4SCNaNW8uDU92QZ3j/38bbqDpOO+I3IQptmO8pn4+xIAQANqLez8wBM082vFs2xe+gD9TQiJipmcR/eCGCRfeA5RryYgytoZDqK2+fE0srYz6NwvusH8xivx869A2pGMivPLkl27qFrMTXv38sOVOjwapqSFv+I2VES0v0RNPgw5his6pCwLr1zAoUnU6V+ogZTY2FxrbGuiL,iv:MQQCQvHgcz01/ipMNyPWzMIE1O+LPV5lFgY2450Pw/Q=,tag:gkLBGoAoQSAReUc618ncgw==,type:str] sops: age: - recipient: age1a68j5zasa55y39u5ecus7g4dzl3rqp0u6h6jwpuw3743cdf9dd4sykfhr4 @@ -16,8 +16,8 @@ sops: TFM3N2c0bVY2VGVFd0FzcDdhdFpvRTAKje4a4mC4VQTWSmsp6al3k2eyVOde+i3y Y6TfGTdznJeWj7VkEC9doPgKF+z4XyYt5EPyoiTqHV4PacMgc+n7Ww== -----END AGE ENCRYPTED FILE----- - lastmodified: "2025-05-31T03:46:12Z" - mac: ENC[AES256_GCM,data:I1fXyI696wIKakfNtiXS/tHJ/F4ipMWJHO0tQMqrjb/uxCwJaJvA5KLyJqGmByZTz6kb1eoXGRT6W4HBRe911f+6WQQlENiC5KVzQWb6YqpFTbix7IngRMGXnSyp0RwtBysXwBqhmOa7ueu0Kyn1mcoHz6sBjBQXDl6SsVj7LeU=,iv:2fG8vuXFbUKqgWlIpO3IXPONlksbKqo/NURySuhJEHE=,tag:tHMPtJwOTjyZqIGuhwJweQ==,type:str] + lastmodified: "2025-08-27T18:43:26Z" + mac: ENC[AES256_GCM,data:Itz+8lLTitbwcuWjGWM7VZUIzdX7upoS5hM1Qhsr0vPMMIVSsMWB34UU1jZp+DWYiKI+mLDoE8q6VVgsrYevEOwG5p3I+7VEFIU356Qct3PIM9jsZMdQqoRnxteTfFV8snuJMriJ+bcTIKd/Ic/8GBMmFmhMXMAvkVLt4dwXlL4=,iv:uRayEMjAexiTodTtP1ohFS8qKbzVavFTLVtjCRxF7Hk=,tag:F1pbx1CTNnF/cqvTZIL9zg==,type:str] encrypted_regex: ^(data|stringData)$ mac_only_encrypted: true - version: 3.10.1 + version: 3.10.2