From 630efbeaaf667e626fb399caa59bfa96b0d6899b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20Groothuis?= Date: Fri, 31 Oct 2025 17:01:55 +0100 Subject: [PATCH] feat(digital-garden): Added digital garden deployment --- .../apps/digital-garden/app-project.yaml | 17 +++++++++++++ .../apps/digital-garden/application.yaml | 24 ++++++++++++++++++ .../apps/digital-garden/kustomization.yaml | 7 ++++++ clusters/artemis/apps/kustomization.yaml | 1 + .../artemis/digital-garden/deployment.yaml | 21 ++++++++++++++++ manifests/artemis/digital-garden/ingress.yaml | 23 +++++++++++++++++ .../artemis/digital-garden/kustomization.yaml | 9 +++++++ manifests/artemis/digital-garden/service.yaml | 11 ++++++++ .../artemis/digital-garden/www-redirect.yaml | 25 +++++++++++++++++++ 9 files changed, 138 insertions(+) create mode 100644 clusters/artemis/apps/digital-garden/app-project.yaml create mode 100644 clusters/artemis/apps/digital-garden/application.yaml create mode 100644 clusters/artemis/apps/digital-garden/kustomization.yaml create mode 100644 manifests/artemis/digital-garden/deployment.yaml create mode 100644 manifests/artemis/digital-garden/ingress.yaml create mode 100644 manifests/artemis/digital-garden/kustomization.yaml create mode 100644 manifests/artemis/digital-garden/service.yaml create mode 100644 manifests/artemis/digital-garden/www-redirect.yaml diff --git a/clusters/artemis/apps/digital-garden/app-project.yaml b/clusters/artemis/apps/digital-garden/app-project.yaml new file mode 100644 index 0000000..50f530c --- /dev/null +++ b/clusters/artemis/apps/digital-garden/app-project.yaml @@ -0,0 +1,17 @@ +--- +apiVersion: argoproj.io/v1alpha1 +kind: AppProject +metadata: + name: digital-garden +spec: + description: My digital garden + sourceRepos: + - '*' + sourceNamespaces: + - '*' + destinations: + - namespace: 'digital-garden' + server: '*' + clusterResourceWhitelist: + - group: '*' + kind: '*' diff --git a/clusters/artemis/apps/digital-garden/application.yaml b/clusters/artemis/apps/digital-garden/application.yaml new file mode 100644 index 0000000..e165924 --- /dev/null +++ b/clusters/artemis/apps/digital-garden/application.yaml @@ -0,0 +1,24 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: digital-garden + namespace: digital-garden + labels: + platform.dgse.cloud/cluster: artemis + finalizers: + - resources-finalizer.argocd.argoproj.io +spec: + project: digital-garden + source: + repoURL: 'https://git.dgse.cloud/DGSE/kubernetes.git' + path: manifests/artemis/digital-garden + targetRevision: main + destination: + namespace: digital-garden + name: in-cluster + syncPolicy: + syncOptions: + - CreateNamespace=true + automated: + prune: true + selfHeal: true diff --git a/clusters/artemis/apps/digital-garden/kustomization.yaml b/clusters/artemis/apps/digital-garden/kustomization.yaml new file mode 100644 index 0000000..f9b2a4b --- /dev/null +++ b/clusters/artemis/apps/digital-garden/kustomization.yaml @@ -0,0 +1,7 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - app-project.yaml + - application.yaml diff --git a/clusters/artemis/apps/kustomization.yaml b/clusters/artemis/apps/kustomization.yaml index 32553fb..fb41fcf 100644 --- a/clusters/artemis/apps/kustomization.yaml +++ b/clusters/artemis/apps/kustomization.yaml @@ -16,3 +16,4 @@ resources: - ntfy - penpot - immich + - digital-garden diff --git a/manifests/artemis/digital-garden/deployment.yaml b/manifests/artemis/digital-garden/deployment.yaml new file mode 100644 index 0000000..720f43a --- /dev/null +++ b/manifests/artemis/digital-garden/deployment.yaml @@ -0,0 +1,21 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: digital-garden +spec: + replicas: 1 + selector: + matchLabels: + app: digital-garden + template: + metadata: + labels: + app: digital-garden + spec: + containers: + - name: digital-garden + image: 'git.dgse.cloud/dgroothuis/garden:latest' + ports: + - containerPort: 8080 + imagePullSecrets: + - name: regcred diff --git a/manifests/artemis/digital-garden/ingress.yaml b/manifests/artemis/digital-garden/ingress.yaml new file mode 100644 index 0000000..caffd6c --- /dev/null +++ b/manifests/artemis/digital-garden/ingress.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: digital-garden-ingress + annotations: + cert-manager.io/cluster-issuer: letsencrypt +spec: + rules: + - host: www.groothuis.io + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: digital-garden-svc + port: + number: 8080 + tls: + - hosts: + - groothuis.io + - www.groothuis.io + secretName: letsencrypt diff --git a/manifests/artemis/digital-garden/kustomization.yaml b/manifests/artemis/digital-garden/kustomization.yaml new file mode 100644 index 0000000..7f56201 --- /dev/null +++ b/manifests/artemis/digital-garden/kustomization.yaml @@ -0,0 +1,9 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - service.yaml + - ingress.yaml + - www-redirect.yaml + - deployment.yaml diff --git a/manifests/artemis/digital-garden/service.yaml b/manifests/artemis/digital-garden/service.yaml new file mode 100644 index 0000000..19185cf --- /dev/null +++ b/manifests/artemis/digital-garden/service.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Service +metadata: + name: digital-garden-svc +spec: + selector: + app: digital-garden + ports: + - protocol: TCP + port: 8080 + targetPort: 8080 diff --git a/manifests/artemis/digital-garden/www-redirect.yaml b/manifests/artemis/digital-garden/www-redirect.yaml new file mode 100644 index 0000000..d4cf511 --- /dev/null +++ b/manifests/artemis/digital-garden/www-redirect.yaml @@ -0,0 +1,25 @@ +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: digital-garden-www-redirect +spec: + entryPoints: + - websecure + routes: + - kind: Rule + match: Host(`groothuis.io`) + middlewares: + - name: redirect-to-www + services: + - kind: TraefikService + name: noop@internal +--- +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: redirect-to-www +spec: + redirectRegex: + permanent: true + regex: "^https?://(?:www\\.)?(.+)" + replacement: "https://www.${1}"