From 653d3e946cc5d61f2f2394e732581c2c20b80c06 Mon Sep 17 00:00:00 2001 From: Vegard Hagen Date: Sat, 17 Aug 2024 23:34:33 +0200 Subject: [PATCH] feat(whoami): add simple whoami-app for testing --- k8s/apps/dev/application-set.yaml | 34 ++++++++++++++++++++ k8s/apps/dev/kustomization.yaml | 10 ++++++ k8s/apps/dev/project.yaml | 16 ++++++++++ k8s/apps/dev/whoami/deployment.yaml | 44 ++++++++++++++++++++++++++ k8s/apps/dev/whoami/kustomization.yaml | 7 ++++ k8s/apps/dev/whoami/ns.yaml | 4 +++ k8s/apps/dev/whoami/svc.yaml | 15 +++++++++ 7 files changed, 130 insertions(+) create mode 100644 k8s/apps/dev/application-set.yaml create mode 100644 k8s/apps/dev/kustomization.yaml create mode 100644 k8s/apps/dev/project.yaml create mode 100644 k8s/apps/dev/whoami/deployment.yaml create mode 100644 k8s/apps/dev/whoami/kustomization.yaml create mode 100644 k8s/apps/dev/whoami/ns.yaml create mode 100644 k8s/apps/dev/whoami/svc.yaml diff --git a/k8s/apps/dev/application-set.yaml b/k8s/apps/dev/application-set.yaml new file mode 100644 index 0000000..4fce73d --- /dev/null +++ b/k8s/apps/dev/application-set.yaml @@ -0,0 +1,34 @@ +apiVersion: argoproj.io/v1alpha1 +kind: ApplicationSet +metadata: + name: dev + namespace: argocd + labels: + dev.stonegarden: application +spec: + generators: + - git: + repoURL: https://github.com/vehagn/homelab + revision: HEAD + directories: + - path: k8s/apps/dev/* + template: + metadata: + name: '{{ path.basename }}' + labels: + dev.stonegarden: application + finalizers: + - resources-finalizer.argocd.argoproj.io + spec: + project: dev + source: + repoURL: https://github.com/vehagn/homelab + targetRevision: HEAD + path: '{{ path }}' + destination: + name: in-cluster + namespace: argocd + syncPolicy: + automated: + selfHeal: true + prune: true \ No newline at end of file diff --git a/k8s/apps/dev/kustomization.yaml b/k8s/apps/dev/kustomization.yaml new file mode 100644 index 0000000..7d5929f --- /dev/null +++ b/k8s/apps/dev/kustomization.yaml @@ -0,0 +1,10 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: argocd +commonLabels: + dev.stonegarden: app-management + app.kubernetes.io/managed-by: argocd + +resources: + - project.yaml + - application-set.yaml diff --git a/k8s/apps/dev/project.yaml b/k8s/apps/dev/project.yaml new file mode 100644 index 0000000..b14c8b0 --- /dev/null +++ b/k8s/apps/dev/project.yaml @@ -0,0 +1,16 @@ +apiVersion: argoproj.io/v1alpha1 +kind: AppProject +metadata: + name: dev + namespace: argocd +spec: + sourceRepos: + - 'https://github.com/vehagn/homelab' + destinations: + - namespace: 'argocd' + server: '*' + - namespace: 'whoami' + server: '*' + clusterResourceWhitelist: + - group: '*' + kind: '*' \ No newline at end of file diff --git a/k8s/apps/dev/whoami/deployment.yaml b/k8s/apps/dev/whoami/deployment.yaml new file mode 100644 index 0000000..1aa66f7 --- /dev/null +++ b/k8s/apps/dev/whoami/deployment.yaml @@ -0,0 +1,44 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: whoami + namespace: whoami + labels: + app: whoami +spec: + replicas: 3 + selector: + matchLabels: + app: whoami + template: + metadata: + namespace: whoami + labels: + app: whoami + spec: + securityContext: + runAsNonRoot: true + runAsUser: 999 + runAsGroup: 999 + fsGroup: 999 + fsGroupChangePolicy: OnRootMismatch + seccompProfile: + type: RuntimeDefault + containers: + - name: whoami + image: ghcr.io/traefik/whoami:latest + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + capabilities: + drop: [ "ALL" ] + ports: + - name: http + containerPort: 80 + resources: + requests: + cpu: 50m + memory: 12Mi + limits: + cpu: 1000m + memory: 24Mi diff --git a/k8s/apps/dev/whoami/kustomization.yaml b/k8s/apps/dev/whoami/kustomization.yaml new file mode 100644 index 0000000..a7fe97d --- /dev/null +++ b/k8s/apps/dev/whoami/kustomization.yaml @@ -0,0 +1,7 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - ns.yaml + - svc.yaml + - deployment.yaml diff --git a/k8s/apps/dev/whoami/ns.yaml b/k8s/apps/dev/whoami/ns.yaml new file mode 100644 index 0000000..63c6fc7 --- /dev/null +++ b/k8s/apps/dev/whoami/ns.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: whoami \ No newline at end of file diff --git a/k8s/apps/dev/whoami/svc.yaml b/k8s/apps/dev/whoami/svc.yaml new file mode 100644 index 0000000..77b3a28 --- /dev/null +++ b/k8s/apps/dev/whoami/svc.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: whoami + namespace: whoami + annotations: + io.cilium/lb-ipam-ips: 192.168.1.223 +spec: + type: LoadBalancer + selector: + app: whoami + ports: + - name: web + port: 80 + targetPort: http