From 15638464c79cb5562cfc5f994bb79b44d1846edc Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Sun, 30 Apr 2023 10:18:23 -0500 Subject: [PATCH] add k3s stuff --- .../k3s/cert-manager/cert-manager-issuer.yml | 20 ++++++++++ .../dashboard/dashboard.admin-user-role.yml | 13 +++++++ .../k3s/dashboard/dashboard.admin-user.yml | 6 +++ clusters/k3s/ip/ip-deployment.yml | 38 +++++++++++++++++++ clusters/k3s/ip/ip-headless.yml | 19 ++++++++++ clusters/k3s/ip/ip-ingress.yml | 29 ++++++++++++++ clusters/k3s/ip/ip-service.yml | 18 +++++++++ clusters/vntx/ip/ip-deployment.yml | 2 +- 8 files changed, 144 insertions(+), 1 deletion(-) create mode 100644 clusters/k3s/cert-manager/cert-manager-issuer.yml create mode 100644 clusters/k3s/dashboard/dashboard.admin-user-role.yml create mode 100644 clusters/k3s/dashboard/dashboard.admin-user.yml create mode 100644 clusters/k3s/ip/ip-deployment.yml create mode 100644 clusters/k3s/ip/ip-headless.yml create mode 100644 clusters/k3s/ip/ip-ingress.yml create mode 100644 clusters/k3s/ip/ip-service.yml diff --git a/clusters/k3s/cert-manager/cert-manager-issuer.yml b/clusters/k3s/cert-manager/cert-manager-issuer.yml new file mode 100644 index 0000000..c7d07fd --- /dev/null +++ b/clusters/k3s/cert-manager/cert-manager-issuer.yml @@ -0,0 +1,20 @@ +apiVersion: cert-manager.io/v1 +kind: ClusterIssuer +metadata: + name: letsencrypt-prod +spec: + acme: + email: graham@vntx.net + server: https://acme-v02.api.letsencrypt.org/directory + privateKeySecretRef: + name: letsencrypt + solvers: + # - dns01: + # cloudflare: + # email: graham@vntx.net + # apiTokenSecretRef: + # name: cloudflare-api-token-secret + # key: api-token + - http01: + ingress: + class: nginx diff --git a/clusters/k3s/dashboard/dashboard.admin-user-role.yml b/clusters/k3s/dashboard/dashboard.admin-user-role.yml new file mode 100644 index 0000000..7de9b5c --- /dev/null +++ b/clusters/k3s/dashboard/dashboard.admin-user-role.yml @@ -0,0 +1,13 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: admin-user +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: cluster-admin +subjects: +- kind: ServiceAccount + name: admin-user + namespace: kubernetes-dashboard + diff --git a/clusters/k3s/dashboard/dashboard.admin-user.yml b/clusters/k3s/dashboard/dashboard.admin-user.yml new file mode 100644 index 0000000..639a776 --- /dev/null +++ b/clusters/k3s/dashboard/dashboard.admin-user.yml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: admin-user + namespace: kubernetes-dashboard + diff --git a/clusters/k3s/ip/ip-deployment.yml b/clusters/k3s/ip/ip-deployment.yml new file mode 100644 index 0000000..7d38c1a --- /dev/null +++ b/clusters/k3s/ip/ip-deployment.yml @@ -0,0 +1,38 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: ip-deployment + namespace: default +spec: + selector: + matchLabels: + app: ip + replicas: 3 + template: + metadata: + labels: + app: ip + spec: + containers: + - name: ip + image: gmcintire/ip:1 + ports: + - name: epmd + containerPort: 4369 + protocol: TCP + env: + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: ERLANG_COOKIE + value: uo19C55ukGpQvxJgpB + - name: RELEASE_COOKIE + value: uo19C55ukGpQvxJgpB + - name: SECRET_KEY_BASE + value: SuyR3VcELGFJzE9acYzdkpcyG74VT2TLz+WsIw1Sndtp3JSd5/IblaIEeaG9dy6u + imagePullPolicy: Always diff --git a/clusters/k3s/ip/ip-headless.yml b/clusters/k3s/ip/ip-headless.yml new file mode 100644 index 0000000..4b96d11 --- /dev/null +++ b/clusters/k3s/ip/ip-headless.yml @@ -0,0 +1,19 @@ +apiVersion: v1 +kind: Service +metadata: + name: ip-headless + namespace: default +spec: + selector: + app: ip + type: ClusterIP + clusterIP: None + ports: + - name: https + port: 4000 + targetPort: 4000 + protocol: TCP + - name: epmd + port: 4369 + targetPort: 4369 + protocol: TCP diff --git a/clusters/k3s/ip/ip-ingress.yml b/clusters/k3s/ip/ip-ingress.yml new file mode 100644 index 0000000..dc99056 --- /dev/null +++ b/clusters/k3s/ip/ip-ingress.yml @@ -0,0 +1,29 @@ +## More detailed template +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: ip-deployment + namespace: default + labels: + app.kubernetes.io/name: ip-deployment + app.kubernetes.io/instance: ip-deployment + app.kubernetes.io/version: "1" + annotations: + kubernetes.io/ingress.class: nginx + cert-manager.io/cluster-issuer: letsencrypt-prod +spec: + tls: + - hosts: + - ip.vntx.net + secretName: ip-deployment-ingress-secret + rules: + - host: ip.vntx.net + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: ip-service + port: + number: 4000 diff --git a/clusters/k3s/ip/ip-service.yml b/clusters/k3s/ip/ip-service.yml new file mode 100644 index 0000000..4193da5 --- /dev/null +++ b/clusters/k3s/ip/ip-service.yml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + name: ip-service + namespace: default +spec: + selector: + app: ip + type: ClusterIP + ports: + - name: https + port: 4000 + targetPort: 4000 + protocol: TCP + - name: epmd + port: 4369 + targetPort: 4369 + protocol: TCP diff --git a/clusters/vntx/ip/ip-deployment.yml b/clusters/vntx/ip/ip-deployment.yml index 1d2ac52..3a9f1de 100644 --- a/clusters/vntx/ip/ip-deployment.yml +++ b/clusters/vntx/ip/ip-deployment.yml @@ -7,7 +7,7 @@ spec: selector: matchLabels: app: ip - replicas: 3 + replicas: 1 template: metadata: labels: