From 72241ab088f4dbd9bd7a77aca5dc3b7bb2487621 Mon Sep 17 00:00:00 2001 From: Edward Cheng Date: Wed, 19 Jun 2024 09:25:27 +1000 Subject: [PATCH] add app code-server --- kubernetes/apps/code-server/app/ingress.yaml | 21 +++++++++ kubernetes/apps/code-server/app/pvc.yaml | 46 ++++++++++++++++++ kubernetes/apps/code-server/app/release.yaml | 29 ++++++++++++ kubernetes/apps/code-server/code-server.yaml | 47 +++++++++++++++++++ kubernetes/apps/kustomization.yaml | 1 + .../repositories/repos/nicholaswilde.yaml | 8 ++++ 6 files changed, 152 insertions(+) create mode 100644 kubernetes/apps/code-server/app/ingress.yaml create mode 100644 kubernetes/apps/code-server/app/pvc.yaml create mode 100644 kubernetes/apps/code-server/app/release.yaml create mode 100644 kubernetes/apps/code-server/code-server.yaml create mode 100644 kubernetes/infrastructure/repositories/repos/nicholaswilde.yaml diff --git a/kubernetes/apps/code-server/app/ingress.yaml b/kubernetes/apps/code-server/app/ingress.yaml new file mode 100644 index 0000000..d3be108 --- /dev/null +++ b/kubernetes/apps/code-server/app/ingress.yaml @@ -0,0 +1,21 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: code-server-ingress + namespace: code-server + annotations: + nginx.ingress.kubernetes.io/ssl-redirect: "false" + nginx.ingress.kubernetes.io/use-regex: "true" +spec: + ingressClassName: nginx + rules: + - host: "code-server.cluster.edward.sydney" + http: + paths: + - pathType: Prefix + path: "/" + backend: + service: + name: code-server + port: + number: 8443 \ No newline at end of file diff --git a/kubernetes/apps/code-server/app/pvc.yaml b/kubernetes/apps/code-server/app/pvc.yaml new file mode 100644 index 0000000..286a271 --- /dev/null +++ b/kubernetes/apps/code-server/app/pvc.yaml @@ -0,0 +1,46 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: code-server-pv + namespace: code-server + labels: + type: local +spec: + storageClassName: local-path + volumeMode: Filesystem + capacity: + storage: 8Gi + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Retain + local: + path: "/mnt/nfs/AppData/code-server" + claimRef: + apiVersion: v1 + kind: PersistentVolumeClaim + name: code-server-pvc + namespace: code-server + nodeAffinity: + required: + nodeSelectorTerms: + - matchExpressions: + - key: kubernetes.io/hostname + operator: In + values: + - rpi5-cluster-node-3 +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: code-server-pvc + namespace: code-server + labels: + name: code-server-pvc +spec: + storageClassName: local-path + volumeMode: Filesystem + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 8Gi \ No newline at end of file diff --git a/kubernetes/apps/code-server/app/release.yaml b/kubernetes/apps/code-server/app/release.yaml new file mode 100644 index 0000000..654e58e --- /dev/null +++ b/kubernetes/apps/code-server/app/release.yaml @@ -0,0 +1,29 @@ +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: code-server + namespace: code-server +spec: + releaseName: code-server + targetNamespace: code-server + chart: + spec: + chart: code-server + sourceRef: + kind: HelmRepository + name: nicholaswilde + namespace: flux-system + interval: 1h + install: + remediation: + retries: 3 + values: + secret: + PASSWORD: ${password} + SUDO_PASSWORD: ${sudo_password} + + env: + TZ: "Australia/Sydney" + + persistence: + existingClaim: code-server-pvc \ No newline at end of file diff --git a/kubernetes/apps/code-server/code-server.yaml b/kubernetes/apps/code-server/code-server.yaml new file mode 100644 index 0000000..4c9bbc4 --- /dev/null +++ b/kubernetes/apps/code-server/code-server.yaml @@ -0,0 +1,47 @@ +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: code-server-secrets + namespace: code-server +spec: + interval: 10m + timeout: 1m30s + retryInterval: 30s + targetNamespace: code-server + path: ./code-server + prune: true + sourceRef: + kind: GitRepository + namespace: flux-system + name: home-cluster-ops-secrets + dependsOn: + - name: repositories + namespace: flux-system + decryption: + provider: sops + secretRef: + name: code-server-sops-age +--- +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: code-server + namespace: code-server +spec: + interval: 10m + timeout: 1m30s + retryInterval: 30s + targetNamespace: code-server + path: ./kubernetes/apps/code-server/app + prune: true + sourceRef: + kind: GitRepository + namespace: flux-system + name: flux-system + dependsOn: + - name: code-server-secrets + namespace: code-server + postBuild: + substituteFrom: + - kind: Secret + name: code-server-secrets \ No newline at end of file diff --git a/kubernetes/apps/kustomization.yaml b/kubernetes/apps/kustomization.yaml index f81e383..1710a4b 100644 --- a/kubernetes/apps/kustomization.yaml +++ b/kubernetes/apps/kustomization.yaml @@ -4,6 +4,7 @@ resources: - ./adguard-home/adguard-home.yaml - ./capacitor/capacitor.yaml - ./cert-manager/cert-manager.yaml + - ./code-server/code-server.yaml - ./homer/homer.yaml - ./podinfo/podinfo.yaml - ./postgresql/postgresql.yaml diff --git a/kubernetes/infrastructure/repositories/repos/nicholaswilde.yaml b/kubernetes/infrastructure/repositories/repos/nicholaswilde.yaml new file mode 100644 index 0000000..a6f59e3 --- /dev/null +++ b/kubernetes/infrastructure/repositories/repos/nicholaswilde.yaml @@ -0,0 +1,8 @@ +apiVersion: source.toolkit.fluxcd.io/v1beta2 +kind: HelmRepository +metadata: + name: nicholaswilde + namespace: flux-system +spec: + interval: 6h + url: https://nicholaswilde.github.io/helm-charts/