diff --git a/README.md b/README.md index a1a5b30..b54bd92 100644 --- a/README.md +++ b/README.md @@ -6,14 +6,23 @@ container images and then commits the selected image tag here; it never receives ## Repository layout - `apps/immich-sync/` is the desired Kubernetes state for Immich Share Sync. +- `apps/immichframe/` wraps the reusable ImmichFrame chart with this cluster's + hostname, album selection, resources, and encrypted API credential. - `bootstrap/` contains Argo CD projects and Applications, including the upstream Sealed Secrets controller. - `scripts/update-immich-sync-image.sh` is the single image-promotion interface used by CI. +- `scripts/update-immichframe-chart.sh` is the chart-promotion interface used + by ImmichFrame chart CI. The only canonical Immich Share Sync image version is `images[0].newTag` in `apps/immich-sync/kustomization.yaml`. The resource manifest deliberately omits a tag, and Kustomize supplies the immutable full Git SHA while rendering. +The only canonical ImmichFrame chart version is the `immichframe` dependency +in `apps/immichframe/Chart.yaml`. Chart CI publishes a unique immutable version +and commits that dependency update here. The chart owns the reusable workload +shape; `apps/immichframe/values.yaml` owns only this cluster's choices. + ## First-time setup The cluster already runs Argo CD in the `argocd` namespace and exposes its UI at . diff --git a/bootstrap/immichframe.yaml b/bootstrap/immichframe.yaml new file mode 100644 index 0000000..c7493a6 --- /dev/null +++ b/bootstrap/immichframe.yaml @@ -0,0 +1,19 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: immichframe + namespace: argocd +spec: + project: homelab + source: + repoURL: https://code.brunner.ninja/feedc0de/homelab-gitops.git + targetRevision: main + path: apps/immichframe + destination: + server: https://kubernetes.default.svc + namespace: default + syncPolicy: + automated: + enabled: true + prune: false + selfHeal: true diff --git a/bootstrap/install.sh b/bootstrap/install.sh index 6b5638c..3dba7b3 100755 --- a/bootstrap/install.sh +++ b/bootstrap/install.sh @@ -23,3 +23,9 @@ kubectl --namespace argocd wait application/sealed-secrets \ kubectl --namespace argocd wait application/sealed-secrets \ --for=jsonpath='{.status.health.status}'=Healthy \ --timeout=5m +kubectl --namespace argocd wait application/immichframe \ + --for=jsonpath='{.status.sync.status}'=Synced \ + --timeout=5m +kubectl --namespace argocd wait application/immichframe \ + --for=jsonpath='{.status.health.status}'=Healthy \ + --timeout=5m diff --git a/bootstrap/kustomization.yaml b/bootstrap/kustomization.yaml index 8113cb8..2f03143 100644 --- a/bootstrap/kustomization.yaml +++ b/bootstrap/kustomization.yaml @@ -5,3 +5,4 @@ resources: - platform-project.yaml - sealed-secrets.yaml - immich-sync.yaml +- immichframe.yaml