From 3d4650c5404ccf57c2ddc49273117451bea8f202 Mon Sep 17 00:00:00 2001 From: Michael Thomson Date: Sun, 12 Jan 2025 16:25:05 -0500 Subject: [PATCH] beaverhabits --- .../kustomizations/kustomization-habits.yaml | 19 ++++++++++++ bootstrap/namespaces/namespace-habits.yaml | 4 +++ habits/deployment.yaml | 29 +++++++++++++++++++ habits/dns-endpoint.yaml | 12 ++++++++ habits/ingress.yaml | 25 ++++++++++++++++ habits/pvc-data.yaml | 12 ++++++++ habits/service.yaml | 12 ++++++++ 7 files changed, 113 insertions(+) create mode 100644 bootstrap/kustomizations/kustomization-habits.yaml create mode 100644 bootstrap/namespaces/namespace-habits.yaml create mode 100644 habits/deployment.yaml create mode 100644 habits/dns-endpoint.yaml create mode 100644 habits/ingress.yaml create mode 100644 habits/pvc-data.yaml create mode 100644 habits/service.yaml diff --git a/bootstrap/kustomizations/kustomization-habits.yaml b/bootstrap/kustomizations/kustomization-habits.yaml new file mode 100644 index 0000000..f0b0851 --- /dev/null +++ b/bootstrap/kustomizations/kustomization-habits.yaml @@ -0,0 +1,19 @@ +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: habits + namespace: flux-system +spec: + interval: 15m + path: ./habits + prune: true # remove any elements later removed from the above path + timeout: 2m # if not set, this defaults to interval duration, which is 1h + sourceRef: + kind: GitRepository + name: flux-system + healthChecks: + - apiVersion: apps/v1 + kind: Deployment + name: beaverhabits + namespace: habits + diff --git a/bootstrap/namespaces/namespace-habits.yaml b/bootstrap/namespaces/namespace-habits.yaml new file mode 100644 index 0000000..54d3897 --- /dev/null +++ b/bootstrap/namespaces/namespace-habits.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: habits diff --git a/habits/deployment.yaml b/habits/deployment.yaml new file mode 100644 index 0000000..a425714 --- /dev/null +++ b/habits/deployment.yaml @@ -0,0 +1,29 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: beaverhabits + namespace: habits +spec: + selector: + matchLabels: + app: beaverhabits + template: + metadata: + labels: + app: beaverhabits + spec: + containers: + - name: beaverhabits + image: daya0576/beaverhabits:latest + imagePullPolicy: Always + ports: + - containerPort: 8080 + name: http + protocol: TCP + volumeMounts: + - name: data + mountPath: /app/.user + volumes: + - name: data + persistentVolumeClaim: + claimName: beaverhabits diff --git a/habits/dns-endpoint.yaml b/habits/dns-endpoint.yaml new file mode 100644 index 0000000..80c2473 --- /dev/null +++ b/habits/dns-endpoint.yaml @@ -0,0 +1,12 @@ +apiVersion: externaldns.k8s.io/v1alpha1 +kind: DNSEndpoint +metadata: + name: habits.michaelthomson.dev + namespace: media +spec: + endpoints: + - dnsName: habits.michaelthomson.dev + recordTTL: 180 + recordType: CNAME + targets: + - server.michaelthomson.dev diff --git a/habits/ingress.yaml b/habits/ingress.yaml new file mode 100644 index 0000000..664fa4d --- /dev/null +++ b/habits/ingress.yaml @@ -0,0 +1,25 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: beaverhabits + namespace: habits + annotations: + traefik.ingress.kubernetes.io/router.entrypoints: websecure + traefik.ingress.kubernetes.io/router.tls: "true" + # traefik.ingress.kubernetes.io/router.middlewares: authentik-bazarr@kubernetescrd +spec: + rules: + - host: habits.michaelthomson.dev + http: + paths: + - pathType: ImplementationSpecific + path: / + backend: + service: + name: beaverhabits + port: + name: http + tls: + - hosts: + - habits.michaelthomson.dev + secretName: letsencrypt-wildcard-cert-michaelthomson.dev diff --git a/habits/pvc-data.yaml b/habits/pvc-data.yaml new file mode 100644 index 0000000..44a8f24 --- /dev/null +++ b/habits/pvc-data.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: beaverhabits + namespace: habits +spec: + resources: + requests: + storage: 8Gi + storageClassName: longhorn + accessModes: + - ReadWriteOnce diff --git a/habits/service.yaml b/habits/service.yaml new file mode 100644 index 0000000..2c92943 --- /dev/null +++ b/habits/service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: beaverhabits + namespace: habits +spec: + selector: + app: beaverhabits + ports: + - port: 80 + targetPort: http + name: http