From 39e100d26ff27537646afab7dd18973106263ffc Mon Sep 17 00:00:00 2001 From: Roxedus Date: Wed, 13 Nov 2024 14:56:10 +0000 Subject: [PATCH] Setup headlamp --- .../kube-system/headlamp/app/helmrelease.yaml | 54 +++++++++++++++++++ .../headlamp/app/kustomization.yaml | 5 ++ .../main/apps/kube-system/headlamp/ks.yaml | 21 ++++++++ .../main/apps/kube-system/kustomization.yaml | 1 + .../main/flux/repositories/helm/headlamp.yaml | 10 ++++ 5 files changed, 91 insertions(+) create mode 100644 kubernetes/main/apps/kube-system/headlamp/app/helmrelease.yaml create mode 100644 kubernetes/main/apps/kube-system/headlamp/app/kustomization.yaml create mode 100644 kubernetes/main/apps/kube-system/headlamp/ks.yaml create mode 100644 kubernetes/main/flux/repositories/helm/headlamp.yaml diff --git a/kubernetes/main/apps/kube-system/headlamp/app/helmrelease.yaml b/kubernetes/main/apps/kube-system/headlamp/app/helmrelease.yaml new file mode 100644 index 000000000..145a6b402 --- /dev/null +++ b/kubernetes/main/apps/kube-system/headlamp/app/helmrelease.yaml @@ -0,0 +1,54 @@ +--- +# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/helm.toolkit.fluxcd.io/helmrelease_v2.json +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: &app headlamp +spec: + interval: 30m + chart: + spec: + chart: *app + version: 0.26.0 + sourceRef: + kind: HelmRepository + name: *app + namespace: flux-system + install: + remediation: + retries: 3 + upgrade: + cleanupOnFail: true + remediation: + strategy: rollback + retries: 3 + values: + ingress: + enabled: true + ingressClassName: internal + hosts: [headlamp.kube.rostvik.site] + config: + pluginsDir: /build/plugins + initContainers: + - command: + - /bin/sh + - -c + - mkdir -p /build/plugins && cp -r /plugins/* /build/plugins/ + image: ghcr.io/headlamp-k8s/headlamp-plugin-flux:latest + imagePullPolicy: Always + name: headlamp-plugins + volumeMounts: + - mountPath: /build/plugins + name: headlamp-plugins + persistentVolumeClaim: + accessModes: + - ReadWriteOnce + enabled: true + size: 1Gi + volumeMounts: + - mountPath: /build/plugins + name: headlamp-plugins + volumes: + - name: headlamp-plugins + persistentVolumeClaim: + claimName: headlamp diff --git a/kubernetes/main/apps/kube-system/headlamp/app/kustomization.yaml b/kubernetes/main/apps/kube-system/headlamp/app/kustomization.yaml new file mode 100644 index 000000000..5dd7baca7 --- /dev/null +++ b/kubernetes/main/apps/kube-system/headlamp/app/kustomization.yaml @@ -0,0 +1,5 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./helmrelease.yaml diff --git a/kubernetes/main/apps/kube-system/headlamp/ks.yaml b/kubernetes/main/apps/kube-system/headlamp/ks.yaml new file mode 100644 index 000000000..0ab832409 --- /dev/null +++ b/kubernetes/main/apps/kube-system/headlamp/ks.yaml @@ -0,0 +1,21 @@ +--- +# 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: &app headlamp + namespace: flux-system +spec: + targetNamespace: kube-system + commonMetadata: + labels: + app.kubernetes.io/name: *app + path: ./kubernetes/main/apps/kube-system/headlamp/app + prune: true + sourceRef: + kind: GitRepository + name: flux-system + wait: false + interval: 30m + retryInterval: 1m + timeout: 5m diff --git a/kubernetes/main/apps/kube-system/kustomization.yaml b/kubernetes/main/apps/kube-system/kustomization.yaml index a188b4b4c..b7b9762cb 100644 --- a/kubernetes/main/apps/kube-system/kustomization.yaml +++ b/kubernetes/main/apps/kube-system/kustomization.yaml @@ -4,6 +4,7 @@ kind: Kustomization resources: - ./cilium/ks.yaml - ./descheduler/ks.yaml + - ./headlamp/ks.yaml - ./intel-device-plugin/ks.yaml - ./metrics-server/ks.yaml - ./node-feature-discovery/ks.yaml diff --git a/kubernetes/main/flux/repositories/helm/headlamp.yaml b/kubernetes/main/flux/repositories/helm/headlamp.yaml new file mode 100644 index 000000000..a45130e4e --- /dev/null +++ b/kubernetes/main/flux/repositories/helm/headlamp.yaml @@ -0,0 +1,10 @@ +--- +# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/source.toolkit.fluxcd.io/helmrepository_v1.json +apiVersion: source.toolkit.fluxcd.io/v1 +kind: HelmRepository +metadata: + name: headlamp + namespace: flux-system +spec: + interval: 2h + url: https://headlamp-k8s.github.io/headlamp/