diff --git a/apps/code-server/env/k3s-cluster/config.json b/apps/code-server/env/k3s-cluster/config.json new file mode 100644 index 0000000..919a17b --- /dev/null +++ b/apps/code-server/env/k3s-cluster/config.json @@ -0,0 +1,12 @@ +{ + "appName": "code-server", + "userGivenName": "code-server", + "namespace": "code-server", + "destNamespace": "code-server", + "destServer": "https://kubernetes.default.svc", + "srcPath": "apps/code-server/env/k3s-cluster", + "srcRepoURL": "https://github.com/3dwardch3ng/home-cluster-ops.git", + "srcTargetRevision": "", + "labels": null, + "annotations": null +} \ No newline at end of file diff --git a/apps/code-server/env/k3s-cluster/deployment.yaml b/apps/code-server/env/k3s-cluster/deployment.yaml new file mode 100644 index 0000000..2c1ff36 --- /dev/null +++ b/apps/code-server/env/k3s-cluster/deployment.yaml @@ -0,0 +1,50 @@ +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: 1000 + runAsGroup: 1000 + containers: + - name: code-server + image: linuxserver/code-server:4.91.1 + env: + - name: PUID + value: "1000" + - name: PGID + value: "1000" + - 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 new file mode 100644 index 0000000..d3be108 --- /dev/null +++ b/apps/code-server/env/k3s-cluster/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/apps/code-server/env/k3s-cluster/kustomization.yaml b/apps/code-server/env/k3s-cluster/kustomization.yaml new file mode 100644 index 0000000..1ad0930 --- /dev/null +++ b/apps/code-server/env/k3s-cluster/kustomization.yaml @@ -0,0 +1,6 @@ +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 new file mode 100644 index 0000000..89537a0 --- /dev/null +++ b/apps/code-server/env/k3s-cluster/service.yaml @@ -0,0 +1,17 @@ +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/resources/app-secrets/env/k3s-cluster/templates/code-server.yaml b/resources/app-secrets/env/k3s-cluster/templates/code-server.yaml new file mode 100644 index 0000000..375457f --- /dev/null +++ b/resources/app-secrets/env/k3s-cluster/templates/code-server.yaml @@ -0,0 +1,23 @@ +--- +apiVersion: bitnami.com/v1alpha1 +kind: SealedSecret +metadata: + annotations: + sealedsecrets.bitnami.com/cluster-wide: "true" + creationTimestamp: null + name: code-server-secrets + namespace: code-server +spec: + encryptedData: + password: AgDDePJ7VBnnaLdK8/+sf1mxfyQ7/WOzW0JiaD6VH9f7v2qNOvRFRyyAU85sVkf33Z/R0kpekt2ZLSoSn4r6iUcX8A/cWVnQcgH7EOrQ/UPr+jr2t8YVAJXJfTv/wGubsvD2rfcJHM47fHW6uy4rpdbP10C6/EY9bsYB7NVOEnbvWJCa+TzWv2aaZ61Q6ACnQtiYOoy/mrm/2DU6bgvLrwx2kMmGxX5XvEkWm4C09OYsX8LNiG9ziyJ71QVvdkgBPEckqwbrNBkYawaKnb/uBDrQFxHGk+EPCa7U8AJ3Rgz5obGBSm1t/J0makKz0dB+aWPH3FMMxSlDnOqem/DoVQLK8mlSALQG2WlITeHPIGAjrXO9rNGN3mNHFBEP0NVT1dSCw1VcI/xcH/c+1fb78bf3kZTDcKTUQL3n/3mPIp8zDD37mwn4kITrYvVbtt2SV9QMhKm4MmWMJPjIMurTpy+OPpYyqG9RusFQyDYllf1fuSYID/7JaAR+7SdMsQtko5ns0g9exJ48lC1v8OXHJ3abuwIImNQkUrgkQk6Rhi6XmLKRrAeSDZfBPNsj1qxCL6s30EQfw8y1OMQTzfZ1nWWmH1MMxU7Ko25fQCPNoq+THbQnsl/Ecr1jkw/UnCq+VtN3G3ewANq1zHDUV3W+HGC8qG/oZnTVotW3MiR/XLjk1ylRCcjfLCKQQA2moBwuRlLuN60MxoEyLc2iwjPFH+w0JJOzRA== + sudo_password: AgC0AbE6jRNhbtXkJQJ0KpRC4E/Y4xSeJlMBwLUz0r7h3ew/UyWWSqrlUfKVj326iAvmANdHoTbyWWy8VRPkRW8YmaUD7WTzeOtPiSlA4cbmv50oFAu3me+r3esYaPgutlJD1rKwe3nJk/m13yzDbZtXKibYJp9GGi1aRQ+4SGddcxpdnShAG/v4581I6HXYK8rAskKKDvjrgA1tLJJdj52PUxLsLApPNme01HMWGG0JK1x4OrTb5ire9OvPEgYGGmPF0fW1+GSEmUpF5r6ZyDSZEdIBNItlflPr65KEQkpCdEyPherEQLHHqMHd7nhvgvGGPIDW1jICSf7XmgQkNhNevIMV2F1LXRPVcUUU89+1Q6GoByd3tL5xjO8S5tqmE1JXoy6F4YbcecAbIQKYBbQ63flpM38c0qXCueoi1QXT7wz4vy17AUzDhL9oI85T6yNc7CmgD4JSbGRbcbDzVBp1/MAWdFXT72JfJeffZf9Wbewv/U9kU/Pwwp4lbPP6GJADAnr+vI4DyLS62ogoFNX+RIqLbXjYchBvKT8mtQO8Ufxb+EwrcwnXOufOfZ+BbaZfgl3lXgj3RFpoC3tnQpBoZUGBvCqRzBl5bv+sTb0hXJWAm4FaOmT5n/rrclisuhIGPDcZ6po86WIg6FStITOFqsEgJ0mL+N3TDC0WnSbnwceIOZo8fQhkGpPdRoK/0789PDjPohAbY0sirqycsCht + template: + metadata: + annotations: + argocd.argoproj.io/sync-options: Prune=false + sealedsecrets.bitnami.com/cluster-wide: "true" + sealedsecrets.bitnami.com/managed: "true" + creationTimestamp: null + name: code-server-secrets + namespace: code-server + type: Opaque diff --git a/resources/app-volumes/env/k3s-cluster/templates/code-server-pv.yaml b/resources/app-volumes/env/k3s-cluster/templates/code-server-pv.yaml new file mode 100644 index 0000000..4d3ab55 --- /dev/null +++ b/resources/app-volumes/env/k3s-cluster/templates/code-server-pv.yaml @@ -0,0 +1,30 @@ +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/arch + operator: In + values: + - arm64 \ No newline at end of file diff --git a/resources/app-volumes/env/k3s-cluster/templates/code-server-pvc.yaml b/resources/app-volumes/env/k3s-cluster/templates/code-server-pvc.yaml new file mode 100644 index 0000000..1bb8c9d --- /dev/null +++ b/resources/app-volumes/env/k3s-cluster/templates/code-server-pvc.yaml @@ -0,0 +1,15 @@ +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