From f1f54070c1d1fb6f0d2511ae6da2a3b27c81e6f7 Mon Sep 17 00:00:00 2001 From: Edward Cheng Date: Sat, 20 Jul 2024 03:29:48 +1000 Subject: [PATCH] add app coder --- .../env/k3s-cluster/deployment.yaml | 50 ------------------- apps/code-server/env/k3s-cluster/ingress.yaml | 21 -------- .../env/k3s-cluster/kustomization.yaml | 6 --- apps/code-server/env/k3s-cluster/service.yaml | 17 ------- apps/coder/env/k3s-cluster/Chart.yaml | 28 +++++++++++ .../env/k3s-cluster/config.json | 10 ++-- apps/coder/env/k3s-cluster/values.yaml | 23 +++++++++ .../env/k3s-cluster/templates/coder.yaml | 22 ++++++++ .../env/k3s-cluster/templates/coder-pv.yaml | 30 +++++++++++ .../env/k3s-cluster/templates/coder-pvc.yaml | 15 ++++++ resources/namespaces/base/coder.yaml | 9 ++++ resources/namespaces/base/kustomization.yaml | 1 + 12 files changed, 133 insertions(+), 99 deletions(-) delete mode 100644 apps/code-server/env/k3s-cluster/deployment.yaml delete mode 100644 apps/code-server/env/k3s-cluster/ingress.yaml delete mode 100644 apps/code-server/env/k3s-cluster/kustomization.yaml delete mode 100644 apps/code-server/env/k3s-cluster/service.yaml create mode 100644 apps/coder/env/k3s-cluster/Chart.yaml rename apps/{code-server => coder}/env/k3s-cluster/config.json (51%) create mode 100644 apps/coder/env/k3s-cluster/values.yaml create mode 100644 resources/app-secrets/env/k3s-cluster/templates/coder.yaml create mode 100644 resources/app-volumes/env/k3s-cluster/templates/coder-pv.yaml create mode 100644 resources/app-volumes/env/k3s-cluster/templates/coder-pvc.yaml create mode 100644 resources/namespaces/base/coder.yaml diff --git a/apps/code-server/env/k3s-cluster/deployment.yaml b/apps/code-server/env/k3s-cluster/deployment.yaml deleted file mode 100644 index 48e6bb6..0000000 --- a/apps/code-server/env/k3s-cluster/deployment.yaml +++ /dev/null @@ -1,50 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: code-server - namespace: code-server - labels: - app.kubernetes.io/name: code-server -spec: - selector: - matchLabels: - app.kubernetes.io/name: code-server - template: - metadata: - labels: - app.kubernetes.io/name: code-server - spec: - securityContext: - runAsUser: 911 - runAsGroup: 911 - containers: - - name: code-server - image: linuxserver/code-server:4.91.1 - env: - - name: PUID - value: "911" - - name: PGID - value: "911" - - name: TZ - value: "Australia/Sydney" - - name: PASSWORD - valueFrom: - secretKeyRef: - name: code-server-secrets - key: password - - name: SUDO_PASSWORD - valueFrom: - secretKeyRef: - name: code-server-secrets - key: sudo_password - ports: - - protocol: TCP - containerPort: 8443 - name: http - volumeMounts: - - name: data - mountPath: /config - volumes: - - name: data - persistentVolumeClaim: - claimName: code-server-pvc \ No newline at end of file diff --git a/apps/code-server/env/k3s-cluster/ingress.yaml b/apps/code-server/env/k3s-cluster/ingress.yaml deleted file mode 100644 index d3be108..0000000 --- a/apps/code-server/env/k3s-cluster/ingress.yaml +++ /dev/null @@ -1,21 +0,0 @@ -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/apps/code-server/env/k3s-cluster/kustomization.yaml b/apps/code-server/env/k3s-cluster/kustomization.yaml deleted file mode 100644 index 1ad0930..0000000 --- a/apps/code-server/env/k3s-cluster/kustomization.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: - - ./deployment.yaml - - ./service.yaml - - ./ingress.yaml \ No newline at end of file diff --git a/apps/code-server/env/k3s-cluster/service.yaml b/apps/code-server/env/k3s-cluster/service.yaml deleted file mode 100644 index 89537a0..0000000 --- a/apps/code-server/env/k3s-cluster/service.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: code-server - namespace: code-server - labels: - app.kubernetes.io/name: code-server -spec: - selector: - app.kubernetes.io/name: code-server - type: ClusterIP - internalTrafficPolicy: Cluster - ports: - - protocol: TCP - port: 8443 - targetPort: 8443 - name: http diff --git a/apps/coder/env/k3s-cluster/Chart.yaml b/apps/coder/env/k3s-cluster/Chart.yaml new file mode 100644 index 0000000..de24e12 --- /dev/null +++ b/apps/coder/env/k3s-cluster/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +name: coder +description: Applications + +# A chart can be either an 'application' or a 'library' chart. +# +# Application charts are a collection of templates that can be packaged into versioned archives +# to be deployed. +# +# Library charts provide useful utilities or functions for the chart developer. They're included as +# a dependency of application charts to inject those utilities and functions into the rendering +# pipeline. Library charts do not define any templates and therefore cannot be deployed. +type: application + +# This is the chart version. This version number should be incremented each time you make changes +# to the chart and its templates, including the app version. +# Versions are expected to follow Semantic Versioning (https://semver.org/) +version: 0.1.0 + +# This is the version number of the application being deployed. This version number should be +# incremented each time you make changes to the application. Versions are not expected to +# follow Semantic Versioning. They should reflect the version the application is using. +appVersion: "0.0.1" + +dependencies: + - name: coder + version: 2.13.1 + repository: https://helm.coder.com/v2 \ No newline at end of file diff --git a/apps/code-server/env/k3s-cluster/config.json b/apps/coder/env/k3s-cluster/config.json similarity index 51% rename from apps/code-server/env/k3s-cluster/config.json rename to apps/coder/env/k3s-cluster/config.json index 919a17b..1d2fc35 100644 --- a/apps/code-server/env/k3s-cluster/config.json +++ b/apps/coder/env/k3s-cluster/config.json @@ -1,10 +1,10 @@ { - "appName": "code-server", - "userGivenName": "code-server", - "namespace": "code-server", - "destNamespace": "code-server", + "appName": "coder", + "userGivenName": "coder", + "namespace": "coder", + "destNamespace": "coder", "destServer": "https://kubernetes.default.svc", - "srcPath": "apps/code-server/env/k3s-cluster", + "srcPath": "apps/coder/env/k3s-cluster", "srcRepoURL": "https://github.com/3dwardch3ng/home-cluster-ops.git", "srcTargetRevision": "", "labels": null, diff --git a/apps/coder/env/k3s-cluster/values.yaml b/apps/coder/env/k3s-cluster/values.yaml new file mode 100644 index 0000000..0b146e1 --- /dev/null +++ b/apps/coder/env/k3s-cluster/values.yaml @@ -0,0 +1,23 @@ +coder: + env: + - name: CODER_ACCESS_URL + value: "https://coder.cluster.edward.sydney" + - name: CODER_PG_CONNECTION_URL + valueFrom: + secretKeyRef: + # You'll need to create a secret called coder-db-url with your + # Postgres connection URL like: + # postgres://coder:password@postgres:5432/coder?sslmode=disable + name: coder-secrets + key: db_url + volumes: + - name: coder-data + persistentVolumeClaim: + claimName: coder-pvc + volumeMounts: + - name: coder-data + mountPath: /config + ingress: + enabled: true + className: nginx + host: coder.cluster.edward.sydney \ No newline at end of file diff --git a/resources/app-secrets/env/k3s-cluster/templates/coder.yaml b/resources/app-secrets/env/k3s-cluster/templates/coder.yaml new file mode 100644 index 0000000..e9bd2f6 --- /dev/null +++ b/resources/app-secrets/env/k3s-cluster/templates/coder.yaml @@ -0,0 +1,22 @@ +--- +apiVersion: bitnami.com/v1alpha1 +kind: SealedSecret +metadata: + annotations: + sealedsecrets.bitnami.com/cluster-wide: "true" + creationTimestamp: null + name: coder-secrets + namespace: coder +spec: + encryptedData: + db_url: AgDgOZv2DkDfHlL8Vi13ylQ/rrf5MJISbRwHnLV0suuo7DgDoiuaa7UooDgV554gpowAIwp25KmPbeBl9BPba3yXPdbjuxWDDROkX9IhxZvL+5K/hVD7ULNw5gB8/eIdUR+QuhtGG+UWfFEl/Ezdl36/fNUBM22nE7xp2mRF2+PqcEYVwgRihgnyFlndKI7an0Rg9pTQ4TAkDN8tpAHI8b4wc7uD75QTvlthCWTx0783HBSDaJDmzrtoCx/7Mr84VDccl3prM7LJRkNESTQSlJ0992RS9Ush+RFiUVhsbFw3m8fObNK6XOPbsQdaCHlREyAh2QXLxBsMHT322maHCdOwW8gLRUOt2lYVrJS6MgXiwAuYXV0jZbkP1FznWNkkwcquCs4pJ+HwfDRO+PvLdSTQnp3A8taC+9DREgCPby3FOPbM5/kBRbOLZh5SgJGH+N6/vcNkv0ZOtdlIcKUT2dDeYc60Sv1Ph7Aw0TBxqG4B5DMhqULpZOV5SySEg3SeLGNTiM54PsMtzhA9cRWjL7nNjWV+0dScl7kQiFyFeTT9ehCZsJz/t/1Pz76qswdsgCLX6ZEPgcxQRyx11nhi/wblrqBYqF0qxNhaXgbRm4iLzRVshe9QrF6ccfGa93uwNyIkAN5uerfCvc0WAkggYX7fDPAO3GaFQ/onFh4H3Gp2k8jzxTg7ekdDoBzb//UFB0L9o8Hg03zC6tt9FkOE+yPhAgsg5v1E8uc3jCC5ig4awnqkJjk8YGLDKBJYShzywm6jqzjbIHkfa4SNP4j0gE8V3xModRgD1xJlLK9KjotGTXQim8+rYEzgBQK1oYCBIbw= + template: + metadata: + annotations: + argocd.argoproj.io/sync-options: Prune=false + sealedsecrets.bitnami.com/cluster-wide: "true" + sealedsecrets.bitnami.com/managed: "true" + creationTimestamp: null + name: coder-secrets + namespace: coder + type: Opaque diff --git a/resources/app-volumes/env/k3s-cluster/templates/coder-pv.yaml b/resources/app-volumes/env/k3s-cluster/templates/coder-pv.yaml new file mode 100644 index 0000000..fefb66d --- /dev/null +++ b/resources/app-volumes/env/k3s-cluster/templates/coder-pv.yaml @@ -0,0 +1,30 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: coder-pv + namespace: coder + labels: + type: local +spec: + storageClassName: local-path + volumeMode: Filesystem + capacity: + storage: 8Gi + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Retain + local: + path: "/mnt/nfs/AppData/coder" + claimRef: + apiVersion: v1 + kind: PersistentVolumeClaim + name: coder-pvc + namespace: coder + nodeAffinity: + required: + nodeSelectorTerms: + - matchExpressions: + - key: kubernetes.io/arch + operator: In + values: + - arm64 \ No newline at end of file diff --git a/resources/app-volumes/env/k3s-cluster/templates/coder-pvc.yaml b/resources/app-volumes/env/k3s-cluster/templates/coder-pvc.yaml new file mode 100644 index 0000000..2142047 --- /dev/null +++ b/resources/app-volumes/env/k3s-cluster/templates/coder-pvc.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: coder-pvc + namespace: coder + labels: + name: coder-pvc +spec: + storageClassName: local-path + volumeMode: Filesystem + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 8Gi \ No newline at end of file diff --git a/resources/namespaces/base/coder.yaml b/resources/namespaces/base/coder.yaml new file mode 100644 index 0000000..c5bf572 --- /dev/null +++ b/resources/namespaces/base/coder.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: Namespace +metadata: + annotations: + argocd.argoproj.io/sync-options: Prune=false + creationTimestamp: null + name: coder +spec: {} +status: {} diff --git a/resources/namespaces/base/kustomization.yaml b/resources/namespaces/base/kustomization.yaml index 0aa3870..0c66174 100644 --- a/resources/namespaces/base/kustomization.yaml +++ b/resources/namespaces/base/kustomization.yaml @@ -6,6 +6,7 @@ resources: - ./app-volumes.yaml - ./cert-manager.yaml - ./code-server.yaml + - ./coder.yaml - ./consul.yaml - ./dokuwiki.yaml - ./gitea.yaml