From 27d528e4b69bab7af8fc832089de3dc69c59aec6 Mon Sep 17 00:00:00 2001 From: Yadunand Prem Date: Tue, 5 Nov 2024 14:29:24 -0500 Subject: [PATCH] feat: restructure feat: enable stuff? --- Architecture.md | 9 +++-- apps/prod/kustomization.yaml | 2 +- cluster/base/apps.yaml | 34 +++++++++--------- cluster/base/infra/1password.yaml | 36 +++++++++++++++++++ cluster/base/infra/external-dns.yaml | 18 ++++++++++ cluster/base/infra/longhorn.yaml | 18 ++++++++++ .../base/{infra.yaml => infra/metallb.yaml} | 29 ++++----------- cluster/base/infra/namespaces.yaml | 16 +++++++++ cluster/base/infra/traefik.yaml | 18 ++++++++++ .../{ => 1password}/config-1password.yaml | 0 infra/configs/kustomization.yaml | 5 --- .../configs/{ => metallb}/config-metallb.yaml | 0 .../{ => 1password}/1password.yaml | 0 .../external-dns/external-dns.yaml | 32 +++++++++++++++++ infra/controllers/kustomization.yaml | 7 ---- .../controllers/{ => longhorn}/longhorn.yaml | 0 infra/controllers/{ => metallb}/metallb.yaml | 0 infra/controllers/{ => traefik}/traefik.yaml | 0 18 files changed, 169 insertions(+), 55 deletions(-) create mode 100644 cluster/base/infra/1password.yaml create mode 100644 cluster/base/infra/external-dns.yaml create mode 100644 cluster/base/infra/longhorn.yaml rename cluster/base/{infra.yaml => infra/metallb.yaml} (57%) create mode 100644 cluster/base/infra/namespaces.yaml create mode 100644 cluster/base/infra/traefik.yaml rename infra/configs/{ => 1password}/config-1password.yaml (100%) delete mode 100644 infra/configs/kustomization.yaml rename infra/configs/{ => metallb}/config-metallb.yaml (100%) rename infra/controllers/{ => 1password}/1password.yaml (100%) create mode 100644 infra/controllers/external-dns/external-dns.yaml delete mode 100644 infra/controllers/kustomization.yaml rename infra/controllers/{ => longhorn}/longhorn.yaml (100%) rename infra/controllers/{ => metallb}/metallb.yaml (100%) rename infra/controllers/{ => traefik}/traefik.yaml (100%) diff --git a/Architecture.md b/Architecture.md index c36adef..6276a24 100644 --- a/Architecture.md +++ b/Architecture.md @@ -51,8 +51,11 @@ Yay! you now have an interface, and an IP address to broadcast on :D ## Deploying secrets -```sh -kubectl create secret generic 1password-credentials -n 1password-system --from-literal=1password-credentials.json="$(cat 1password-credentials.json|base64 )" -kubectl create secret generic 1password-token --namespace 1password-system --from-literal password= +```sh +op connect server create cluster --vaults cluster +op connect token create cluster --server --vault cluster + +kubectl create secret generic -n 1password-system 1password-credentials --from-literal=password="$(op read ''op://cluster/1password-credentials.json/1password-credentials.json.base64)" +kubectl create secret generic -n 1password-system 1password-token --from-literal password="$(op read 'op://cluster/op-token/op-token')" ``` diff --git a/apps/prod/kustomization.yaml b/apps/prod/kustomization.yaml index 4762af7..356a48a 100644 --- a/apps/prod/kustomization.yaml +++ b/apps/prod/kustomization.yaml @@ -2,4 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - ../base/podinfo.yaml + # - ../base/podinfo.yaml diff --git a/cluster/base/apps.yaml b/cluster/base/apps.yaml index f19c711..00b97ac 100644 --- a/cluster/base/apps.yaml +++ b/cluster/base/apps.yaml @@ -1,17 +1,17 @@ ---- -apiVersion: kustomize.toolkit.fluxcd.io/v1 -kind: Kustomization -metadata: - name: apps - namespace: flux-system -spec: - dependsOn: - - name: infra-configs - interval: 1m0s - path: ./apps/prod - prune: true - sourceRef: - kind: GitRepository - name: flux-system - timeout: 5m0s - wait: true +# --- +# apiVersion: kustomize.toolkit.fluxcd.io/v1 +# kind: Kustomization +# metadata: +# name: apps +# namespace: flux-system +# spec: +# dependsOn: +# - name: infra-configs +# interval: 1m0s +# path: ./apps/prod +# prune: true +# sourceRef: +# kind: GitRepository +# name: flux-system +# timeout: 5m0s +# wait: true diff --git a/cluster/base/infra/1password.yaml b/cluster/base/infra/1password.yaml new file mode 100644 index 0000000..77eceda --- /dev/null +++ b/cluster/base/infra/1password.yaml @@ -0,0 +1,36 @@ +--- +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: infra-1password + namespace: flux-system +spec: + interval: 1h0m0s + path: ./infra/controllers/1password + dependsOn: + - name: infra-metallb-config + prune: true + retryInterval: 1m0s + sourceRef: + kind: GitRepository + name: flux-system + timeout: 5m0s + wait: true +--- +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: infra-1password-config + namespace: flux-system +spec: + interval: 1h0m0s + path: ./infra/configs/1password + dependsOn: + - name: infra-1password + prune: true + retryInterval: 1m0s + sourceRef: + kind: GitRepository + name: flux-system + timeout: 5m0s + wait: true diff --git a/cluster/base/infra/external-dns.yaml b/cluster/base/infra/external-dns.yaml new file mode 100644 index 0000000..0f95c59 --- /dev/null +++ b/cluster/base/infra/external-dns.yaml @@ -0,0 +1,18 @@ +# --- +# apiVersion: kustomize.toolkit.fluxcd.io/v1 +# kind: Kustomization +# metadata: +# name: infra-external-dns +# namespace: flux-system +# spec: +# interval: 1h0m0s +# path: ./infra/controllers/external-dns +# dependsOn: +# - name: infra-1password-config +# prune: true +# retryInterval: 1m0s +# sourceRef: +# kind: GitRepository +# name: flux-system +# timeout: 5m0s +# wait: true diff --git a/cluster/base/infra/longhorn.yaml b/cluster/base/infra/longhorn.yaml new file mode 100644 index 0000000..1e387cf --- /dev/null +++ b/cluster/base/infra/longhorn.yaml @@ -0,0 +1,18 @@ +--- +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: infra-longhorn + namespace: flux-system +spec: + interval: 1h0m0s + path: ./infra/controllers/longhorn + dependsOn: + - name: infra-metallb-config + prune: true + retryInterval: 1m0s + sourceRef: + kind: GitRepository + name: flux-system + timeout: 5m0s + wait: true diff --git a/cluster/base/infra.yaml b/cluster/base/infra/metallb.yaml similarity index 57% rename from cluster/base/infra.yaml rename to cluster/base/infra/metallb.yaml index 3662c06..d635d57 100644 --- a/cluster/base/infra.yaml +++ b/cluster/base/infra/metallb.yaml @@ -2,29 +2,13 @@ apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: - name: infra-namespaces + name: infra-metallb namespace: flux-system spec: interval: 1h0m0s - path: ./infra/namespaces - prune: true - retryInterval: 1m0s - sourceRef: - kind: GitRepository - name: flux-system - timeout: 5m0s - wait: true ---- -apiVersion: kustomize.toolkit.fluxcd.io/v1 -kind: Kustomization -metadata: - name: infra-controllers - namespace: flux-system -spec: + path: ./infra/controllers/metallb dependsOn: - name: infra-namespaces - interval: 1h0m0s - path: ./infra/controllers prune: true retryInterval: 1m0s sourceRef: @@ -36,16 +20,17 @@ spec: apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: - name: infra-configs + name: infra-metallb-config namespace: flux-system spec: - dependsOn: - - name: infra-controllers interval: 1h0m0s - path: ./infra/configs + path: ./infra/configs/metallb + dependsOn: + - name: infra-metallb prune: true retryInterval: 1m0s sourceRef: kind: GitRepository name: flux-system timeout: 5m0s + wait: true diff --git a/cluster/base/infra/namespaces.yaml b/cluster/base/infra/namespaces.yaml new file mode 100644 index 0000000..4c456c5 --- /dev/null +++ b/cluster/base/infra/namespaces.yaml @@ -0,0 +1,16 @@ +--- +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: infra-namespaces + namespace: flux-system +spec: + interval: 1h0m0s + path: ./infra/namespaces + prune: true + retryInterval: 1m0s + sourceRef: + kind: GitRepository + name: flux-system + timeout: 5m0s + wait: true diff --git a/cluster/base/infra/traefik.yaml b/cluster/base/infra/traefik.yaml new file mode 100644 index 0000000..0d3673c --- /dev/null +++ b/cluster/base/infra/traefik.yaml @@ -0,0 +1,18 @@ +# --- +# apiVersion: kustomize.toolkit.fluxcd.io/v1 +# kind: Kustomization +# metadata: +# name: infra-longhorn +# namespace: flux-system +# spec: +# interval: 1h0m0s +# path: ./infra/controllers/traefik +# dependsOn: +# - name: infra-namespaces +# prune: true +# retryInterval: 1m0s +# sourceRef: +# kind: GitRepository +# name: flux-system +# timeout: 5m0s +# wait: true diff --git a/infra/configs/config-1password.yaml b/infra/configs/1password/config-1password.yaml similarity index 100% rename from infra/configs/config-1password.yaml rename to infra/configs/1password/config-1password.yaml diff --git a/infra/configs/kustomization.yaml b/infra/configs/kustomization.yaml deleted file mode 100644 index 3edae61..0000000 --- a/infra/configs/kustomization.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: - - config-metallb.yaml - - config-1password.yaml diff --git a/infra/configs/config-metallb.yaml b/infra/configs/metallb/config-metallb.yaml similarity index 100% rename from infra/configs/config-metallb.yaml rename to infra/configs/metallb/config-metallb.yaml diff --git a/infra/controllers/1password.yaml b/infra/controllers/1password/1password.yaml similarity index 100% rename from infra/controllers/1password.yaml rename to infra/controllers/1password/1password.yaml diff --git a/infra/controllers/external-dns/external-dns.yaml b/infra/controllers/external-dns/external-dns.yaml new file mode 100644 index 0000000..7066880 --- /dev/null +++ b/infra/controllers/external-dns/external-dns.yaml @@ -0,0 +1,32 @@ +--- +apiVersion: source.toolkit.fluxcd.io/v1 +kind: HelmRepository +metadata: + name: external-dns-repo + namespace: external-dns-system +spec: + interval: 15m0s + url: https://kubernetes-sigs.github.io/external-dns/ +--- +apiVersion: helm.toolkit.fluxcd.io/v2beta1 +kind: HelmRelease +metadata: + name: external-dns + namespace: external-dns-system +spec: + chart: + spec: + chart: external-dns + version: 1.15.0 + sourceRef: + kind: HelmRepository + name: external-dns + namespace: external-dns-system + interval: 15m + timeout: 5m + releaseName: external-dns + values: + crd: + create: true + sources: + diff --git a/infra/controllers/kustomization.yaml b/infra/controllers/kustomization.yaml deleted file mode 100644 index d868a93..0000000 --- a/infra/controllers/kustomization.yaml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: - - metallb.yaml - - longhorn.yaml - - traefik.yaml - - 1password.yaml diff --git a/infra/controllers/longhorn.yaml b/infra/controllers/longhorn/longhorn.yaml similarity index 100% rename from infra/controllers/longhorn.yaml rename to infra/controllers/longhorn/longhorn.yaml diff --git a/infra/controllers/metallb.yaml b/infra/controllers/metallb/metallb.yaml similarity index 100% rename from infra/controllers/metallb.yaml rename to infra/controllers/metallb/metallb.yaml diff --git a/infra/controllers/traefik.yaml b/infra/controllers/traefik/traefik.yaml similarity index 100% rename from infra/controllers/traefik.yaml rename to infra/controllers/traefik/traefik.yaml