diff --git a/helmfile.d/headscale.yaml.gotmpl b/helmfile.d/headscale.yaml.gotmpl new file mode 100644 index 00000000..8270af37 --- /dev/null +++ b/helmfile.d/headscale.yaml.gotmpl @@ -0,0 +1,31 @@ +bases: + - ../envs/environments.yaml.gotmpl + +repositories: +- name: headscale + url: https://charts.gabe565.com + +commonLabels: + tier: system + +releases: +- name: manifests + namespace: headscale-system + chart: manifests + condition: nginx.enabled + missingFileHandler: Info + values: + - ../values/env.yaml + - ../values/env-{{ requiredEnv "ARGOCD_ENV_CLUSTER_NAME" }}.yaml + - ../values/headscale/env.yaml.gotmpl + - ../values/headscale/env-{{ requiredEnv "ARGOCD_ENV_CLUSTER_NAME" }}.yaml.gotmpl + hooks: + - events: [ prepare, cleanup ] + showlogs: true + command: ../bin/helmify + args: + - '{{`{{ if eq .Event.Name "prepare" }}build{{ else }}clean{{ end }}`}}' + - '{{`{{ .Release.Chart }}`}}' + - '{{`{{ .Environment.Name }}`}}' + - ../values/headscale/manifests + - manifests diff --git a/values/argo/manifests/sys-project.yaml b/values/argo/manifests/sys-project.yaml index 5ecbb91c..c22bbd99 100644 --- a/values/argo/manifests/sys-project.yaml +++ b/values/argo/manifests/sys-project.yaml @@ -88,4 +88,5 @@ spec: - https://helm.cilium.io - https://chartmuseum.github.io/charts - https://dapr.github.io/helm-charts + - https://charts.gabe565.com diff --git a/values/headscale/env-oceanbox.yaml.gotmpl b/values/headscale/env-oceanbox.yaml.gotmpl new file mode 100644 index 00000000..751125e4 --- /dev/null +++ b/values/headscale/env-oceanbox.yaml.gotmpl @@ -0,0 +1,3 @@ +headscale: + enabled: true + diff --git a/values/headscale/env.yaml.gotmpl b/values/headscale/env.yaml.gotmpl new file mode 100644 index 00000000..40f525fa --- /dev/null +++ b/values/headscale/env.yaml.gotmpl @@ -0,0 +1,4 @@ +plume: + enabled: false + autosync: false + diff --git a/values/headscale/manifests/headscale.yaml b/values/headscale/manifests/headscale.yaml new file mode 100644 index 00000000..928f3aec --- /dev/null +++ b/values/headscale/manifests/headscale.yaml @@ -0,0 +1,51 @@ +{{- if .Values.clusterConfig.argo.enabled }} +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: headscale + namespace: argocd + annotations: + argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true + finalizers: + - resources-finalizer.argocd.argoproj.io +spec: + destination: + namespace: headscale-system + server: 'https://kubernetes.default.svc' + sources: + - repoURL: {{ .Values.clusterConfig.manifests }} + targetRevision: HEAD + path: helmfile.d + plugin: + name: helmfile-cmp + env: + - name: CLUSTER_NAME + value: {{ .Values.clusterConfig.cluster }} + - name: HELMFILE_ENVIRONMENT + value: default + - name: HELMFILE_FILE_PATH + value: headscale.yaml.gotmpl + - repoURL: https://charts.gabe565.com + targetRevision: 0.16.0 + chart: headscale + helm: + valueFiles: + - $values/values/headscale/values/values.yaml + - repoURL: {{ .Values.clusterConfig.manifests }} + targetRevision: main + ref: values + project: sys + syncPolicy: + managedNamespaceMetadata: + labels: + component: sys + syncOptions: + - CreateNamespace=true + - ApplyOutOfSyncOnly=true + # - ServerSideApply=true + {{- if .Values.headscale.autosync }} + automated: + prune: true + # selfHeal: false + {{- end }} +{{- end }} diff --git a/values/headscale/values.yaml b/values/headscale/values/values.yaml similarity index 100% rename from values/headscale/values.yaml rename to values/headscale/values/values.yaml