diff --git a/README.md b/README.md index 7cc730d8..dc902741 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,7 @@ Feel free to read up on any of these technologies before you get started to be m - [cert-manager](https://cert-manager.io/) - SSL certificates - with Cloudflare DNS challenge - [calico](https://www.tigera.io/project-calico/) - CNI (container network interface) +- [echo-server](https://github.com/Ealenn/Echo-Server) - REST Server Tests (Echo-Server) API (useful for debugging HTTP issues) - [flux](https://toolkit.fluxcd.io/) - GitOps tool for deploying manifests from the `cluster` directory - [hajimari](https://github.com/toboshii/hajimari) - start page with ingress discovery - [kube-vip](https://kube-vip.io/) - layer 2 load balancer for the Kubernetes control plane diff --git a/cluster/apps/default/echo-server/helm-release.yaml b/cluster/apps/default/echo-server/helm-release.yaml new file mode 100644 index 00000000..4c8d9012 --- /dev/null +++ b/cluster/apps/default/echo-server/helm-release.yaml @@ -0,0 +1,42 @@ +--- +apiVersion: helm.toolkit.fluxcd.io/v2beta1 +kind: HelmRelease +metadata: + name: echo-server + namespace: default +spec: + interval: 5m + chart: + spec: + chart: echo-server + version: 0.3.1 + sourceRef: + kind: HelmRepository + name: ealenn-charts + namespace: flux-system + interval: 5m + values: + image: + repository: docker.io/ealen/echo-server + tag: 0.5.1 + ingress: + enabled: true + annotations: + cert-manager.io/cluster-issuer: "letsencrypt-production" + hajimari.io/enable: "true" + hajimari.io/icon: "video-input-antenna" + traefik.ingress.kubernetes.io/router.entrypoints: "websecure" + hosts: + - host: "echo-server.${SECRET_DOMAIN}" + paths: + - "/" + tls: + - secretName: echo-server-tls + hosts: + - "echo-server.${SECRET_DOMAIN}" + resources: + requests: + cpu: 50m + memory: 64Mi + limits: + memory: 96Mi diff --git a/cluster/apps/default/echo-server/kustomization.yaml b/cluster/apps/default/echo-server/kustomization.yaml new file mode 100644 index 00000000..d443f6cb --- /dev/null +++ b/cluster/apps/default/echo-server/kustomization.yaml @@ -0,0 +1,5 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - config-pvc.yaml + - helm-release.yaml diff --git a/cluster/apps/default/kustomization.yaml b/cluster/apps/default/kustomization.yaml index 9a6ff19a..6915e671 100644 --- a/cluster/apps/default/kustomization.yaml +++ b/cluster/apps/default/kustomization.yaml @@ -1,4 +1,5 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: + - echo-server - hajimari diff --git a/cluster/base/flux-system/charts/helm/authentik-charts.yaml b/cluster/base/flux-system/charts/helm/authentik-charts.yaml index 6366bd70..3fcc0439 100644 --- a/cluster/base/flux-system/charts/helm/authentik-charts.yaml +++ b/cluster/base/flux-system/charts/helm/authentik-charts.yaml @@ -5,6 +5,6 @@ metadata: name: authentik-charts namespace: flux-system spec: - interval: 15m + interval: 30m url: https://charts.goauthentik.io/ timeout: 3m diff --git a/cluster/base/flux-system/charts/helm/bitnami-charts.yaml b/cluster/base/flux-system/charts/helm/bitnami-charts.yaml index 6a0b3e7b..66670cda 100644 --- a/cluster/base/flux-system/charts/helm/bitnami-charts.yaml +++ b/cluster/base/flux-system/charts/helm/bitnami-charts.yaml @@ -5,6 +5,6 @@ metadata: name: bitnami-charts namespace: flux-system spec: - interval: 15m + interval: 30m url: https://charts.bitnami.com/bitnami timeout: 3m diff --git a/cluster/base/flux-system/charts/helm/deliveryhero-charts.yaml b/cluster/base/flux-system/charts/helm/deliveryhero-charts.yaml index c4f1a080..ed92cf1d 100644 --- a/cluster/base/flux-system/charts/helm/deliveryhero-charts.yaml +++ b/cluster/base/flux-system/charts/helm/deliveryhero-charts.yaml @@ -5,6 +5,6 @@ metadata: name: deliveryhero-charts namespace: flux-system spec: - interval: 15m + interval: 30m url: https://charts.deliveryhero.io/ timeout: 3m diff --git a/cluster/base/flux-system/charts/helm/descheduler-charts.yaml b/cluster/base/flux-system/charts/helm/descheduler-charts.yaml index b2cf2686..e6fa2ce2 100644 --- a/cluster/base/flux-system/charts/helm/descheduler-charts.yaml +++ b/cluster/base/flux-system/charts/helm/descheduler-charts.yaml @@ -5,6 +5,6 @@ metadata: name: descheduler-charts namespace: flux-system spec: - interval: 15m + interval: 30m url: https://kubernetes-sigs.github.io/descheduler timeout: 3m diff --git a/cluster/base/flux-system/charts/helm/ealenn-charts.yaml b/cluster/base/flux-system/charts/helm/ealenn-charts.yaml new file mode 100644 index 00000000..6b085579 --- /dev/null +++ b/cluster/base/flux-system/charts/helm/ealenn-charts.yaml @@ -0,0 +1,10 @@ +--- +apiVersion: source.toolkit.fluxcd.io/v1beta1 +kind: HelmRepository +metadata: + name: ealenn-charts + namespace: flux-system +spec: + interval: 30m + url: https://ealenn.github.io/charts + timeout: 3m diff --git a/cluster/base/flux-system/charts/helm/emberstack-charts.yaml b/cluster/base/flux-system/charts/helm/emberstack-charts.yaml index de212e21..2c95d391 100644 --- a/cluster/base/flux-system/charts/helm/emberstack-charts.yaml +++ b/cluster/base/flux-system/charts/helm/emberstack-charts.yaml @@ -5,6 +5,6 @@ metadata: name: emberstack-charts namespace: flux-system spec: - interval: 15m + interval: 30m url: https://emberstack.github.io/helm-charts/ timeout: 3m diff --git a/cluster/base/flux-system/charts/helm/external-dns-charts.yaml b/cluster/base/flux-system/charts/helm/external-dns-charts.yaml index 9a898ab5..3656598f 100644 --- a/cluster/base/flux-system/charts/helm/external-dns-charts.yaml +++ b/cluster/base/flux-system/charts/helm/external-dns-charts.yaml @@ -5,6 +5,6 @@ metadata: name: external-dns-charts namespace: flux-system spec: - interval: 15m + interval: 30m url: https://kubernetes-sigs.github.io/external-dns timeout: 3m diff --git a/cluster/base/flux-system/charts/helm/grafana-charts.yaml b/cluster/base/flux-system/charts/helm/grafana-charts.yaml index 84ce56ce..b7884ea0 100644 --- a/cluster/base/flux-system/charts/helm/grafana-charts.yaml +++ b/cluster/base/flux-system/charts/helm/grafana-charts.yaml @@ -5,6 +5,6 @@ metadata: name: grafana-charts namespace: flux-system spec: - interval: 15m + interval: 30m url: https://grafana.github.io/helm-charts timeout: 3m diff --git a/cluster/base/flux-system/charts/helm/hajimari-charts.yaml b/cluster/base/flux-system/charts/helm/hajimari-charts.yaml index 551a907b..58b17747 100644 --- a/cluster/base/flux-system/charts/helm/hajimari-charts.yaml +++ b/cluster/base/flux-system/charts/helm/hajimari-charts.yaml @@ -5,6 +5,6 @@ metadata: name: hajimari-charts namespace: flux-system spec: - interval: 15m + interval: 30m url: https://hajimari.io timeout: 3m diff --git a/cluster/base/flux-system/charts/helm/infracloudio-charts.yaml b/cluster/base/flux-system/charts/helm/infracloudio-charts.yaml index ab88cbcc..e8cdb2e9 100644 --- a/cluster/base/flux-system/charts/helm/infracloudio-charts.yaml +++ b/cluster/base/flux-system/charts/helm/infracloudio-charts.yaml @@ -5,6 +5,6 @@ metadata: name: infracloudio-charts namespace: flux-system spec: - interval: 15m + interval: 30m url: https://infracloudio.github.io/charts timeout: 3m diff --git a/cluster/base/flux-system/charts/helm/jetstack-charts.yaml b/cluster/base/flux-system/charts/helm/jetstack-charts.yaml index 7009a91b..04fef5f5 100644 --- a/cluster/base/flux-system/charts/helm/jetstack-charts.yaml +++ b/cluster/base/flux-system/charts/helm/jetstack-charts.yaml @@ -5,6 +5,6 @@ metadata: name: jetstack-charts namespace: flux-system spec: - interval: 15m + interval: 30m url: https://charts.jetstack.io/ timeout: 3m diff --git a/cluster/base/flux-system/charts/helm/k8s-at-home-charts.yaml b/cluster/base/flux-system/charts/helm/k8s-at-home-charts.yaml index 54792f1b..984f5770 100644 --- a/cluster/base/flux-system/charts/helm/k8s-at-home-charts.yaml +++ b/cluster/base/flux-system/charts/helm/k8s-at-home-charts.yaml @@ -5,6 +5,6 @@ metadata: name: k8s-at-home-charts namespace: flux-system spec: - interval: 15m + interval: 30m url: https://k8s-at-home.com/charts/ timeout: 3m diff --git a/cluster/base/flux-system/charts/helm/kustomization.yaml b/cluster/base/flux-system/charts/helm/kustomization.yaml index 61828ed5..371b50bb 100644 --- a/cluster/base/flux-system/charts/helm/kustomization.yaml +++ b/cluster/base/flux-system/charts/helm/kustomization.yaml @@ -5,6 +5,7 @@ resources: - bitnami-charts.yaml - deliveryhero-charts.yaml - descheduler-charts.yaml + - ealenn-charts.yaml - emberstack-charts.yaml - external-dns-charts.yaml - grafana-charts.yaml diff --git a/cluster/base/flux-system/charts/helm/metallb-charts.yaml b/cluster/base/flux-system/charts/helm/metallb-charts.yaml index ee057600..15b4610f 100644 --- a/cluster/base/flux-system/charts/helm/metallb-charts.yaml +++ b/cluster/base/flux-system/charts/helm/metallb-charts.yaml @@ -5,6 +5,6 @@ metadata: name: metallb-charts namespace: flux-system spec: - interval: 15m + interval: 30m url: https://metallb.github.io/metallb timeout: 3m diff --git a/cluster/base/flux-system/charts/helm/metrics-server-charts.yaml b/cluster/base/flux-system/charts/helm/metrics-server-charts.yaml index 5a863153..ed7ab0f1 100644 --- a/cluster/base/flux-system/charts/helm/metrics-server-charts.yaml +++ b/cluster/base/flux-system/charts/helm/metrics-server-charts.yaml @@ -5,6 +5,6 @@ metadata: name: metrics-server-charts namespace: flux-system spec: - interval: 15m + interval: 30m url: https://kubernetes-sigs.github.io/metrics-server timeout: 3m diff --git a/cluster/base/flux-system/charts/helm/minecraft-server-charts.yaml b/cluster/base/flux-system/charts/helm/minecraft-server-charts.yaml index 4337c196..7894b91e 100644 --- a/cluster/base/flux-system/charts/helm/minecraft-server-charts.yaml +++ b/cluster/base/flux-system/charts/helm/minecraft-server-charts.yaml @@ -5,6 +5,6 @@ metadata: name: minecraft-server-charts namespace: flux-system spec: - interval: 15m + interval: 30m url: https://itzg.github.io/minecraft-server-charts/ timeout: 3m diff --git a/cluster/base/flux-system/charts/helm/minio-charts.yaml b/cluster/base/flux-system/charts/helm/minio-charts.yaml index 0c8be958..5ea5515f 100644 --- a/cluster/base/flux-system/charts/helm/minio-charts.yaml +++ b/cluster/base/flux-system/charts/helm/minio-charts.yaml @@ -5,6 +5,6 @@ metadata: name: minio-charts namespace: flux-system spec: - interval: 15m + interval: 30m url: https://operator.min.io timeout: 3m diff --git a/cluster/base/flux-system/charts/helm/nfs-subdir-external-provisioner-charts.yaml b/cluster/base/flux-system/charts/helm/nfs-subdir-external-provisioner-charts.yaml index f45722b9..dd4b3db8 100644 --- a/cluster/base/flux-system/charts/helm/nfs-subdir-external-provisioner-charts.yaml +++ b/cluster/base/flux-system/charts/helm/nfs-subdir-external-provisioner-charts.yaml @@ -5,6 +5,6 @@ metadata: name: nfs-subdir-external-provisioner-charts namespace: flux-system spec: - interval: 15m + interval: 30m url: https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/ timeout: 3m diff --git a/cluster/base/flux-system/charts/helm/node-feature-discovery-charts.yaml b/cluster/base/flux-system/charts/helm/node-feature-discovery-charts.yaml index d23223a2..1a3f8488 100644 --- a/cluster/base/flux-system/charts/helm/node-feature-discovery-charts.yaml +++ b/cluster/base/flux-system/charts/helm/node-feature-discovery-charts.yaml @@ -5,6 +5,6 @@ metadata: name: node-feature-discovery-charts namespace: flux-system spec: - interval: 15m + interval: 30m url: https://kubernetes-sigs.github.io/node-feature-discovery/charts timeout: 3m diff --git a/cluster/base/flux-system/charts/helm/prometheus-community-charts.yaml b/cluster/base/flux-system/charts/helm/prometheus-community-charts.yaml index 3a5574a1..8c35b201 100644 --- a/cluster/base/flux-system/charts/helm/prometheus-community-charts.yaml +++ b/cluster/base/flux-system/charts/helm/prometheus-community-charts.yaml @@ -5,6 +5,6 @@ metadata: name: prometheus-community-charts namespace: flux-system spec: - interval: 15m + interval: 30m url: https://prometheus-community.github.io/helm-charts timeout: 3m diff --git a/cluster/base/flux-system/charts/helm/rook-ceph-charts.yaml b/cluster/base/flux-system/charts/helm/rook-ceph-charts.yaml index 00ec74f0..5843edde 100644 --- a/cluster/base/flux-system/charts/helm/rook-ceph-charts.yaml +++ b/cluster/base/flux-system/charts/helm/rook-ceph-charts.yaml @@ -5,6 +5,6 @@ metadata: name: rook-ceph-charts namespace: flux-system spec: - interval: 15m + interval: 30m url: https://charts.rook.io/release timeout: 3m diff --git a/cluster/base/flux-system/charts/helm/stakater-charts.yaml b/cluster/base/flux-system/charts/helm/stakater-charts.yaml index 83d3ac5f..ed4ba95c 100644 --- a/cluster/base/flux-system/charts/helm/stakater-charts.yaml +++ b/cluster/base/flux-system/charts/helm/stakater-charts.yaml @@ -5,6 +5,6 @@ metadata: name: stakater-charts namespace: flux-system spec: - interval: 15m + interval: 30m url: https://stakater.github.io/stakater-charts timeout: 3m diff --git a/cluster/base/flux-system/charts/helm/traefik-charts.yaml b/cluster/base/flux-system/charts/helm/traefik-charts.yaml index dda0b320..5dc9f18a 100644 --- a/cluster/base/flux-system/charts/helm/traefik-charts.yaml +++ b/cluster/base/flux-system/charts/helm/traefik-charts.yaml @@ -5,6 +5,6 @@ metadata: name: traefik-charts namespace: flux-system spec: - interval: 15m + interval: 30m url: https://helm.traefik.io/traefik timeout: 3m diff --git a/cluster/base/flux-system/charts/helm/weaveworks-kured-charts.yaml b/cluster/base/flux-system/charts/helm/weaveworks-kured-charts.yaml index e10873a0..c33446e1 100644 --- a/cluster/base/flux-system/charts/helm/weaveworks-kured-charts.yaml +++ b/cluster/base/flux-system/charts/helm/weaveworks-kured-charts.yaml @@ -5,6 +5,6 @@ metadata: name: weaveworks-kured-charts namespace: flux-system spec: - interval: 15m + interval: 30m url: https://weaveworks.github.io/kured timeout: 3m diff --git a/cluster/crds/traefik/crds.yaml b/cluster/crds/traefik/crds.yaml index d7f1abc3..b4bb6be2 100644 --- a/cluster/crds/traefik/crds.yaml +++ b/cluster/crds/traefik/crds.yaml @@ -22,7 +22,7 @@ metadata: name: traefik-crds namespace: flux-system spec: - interval: 15m + interval: 30m prune: false sourceRef: kind: GitRepository diff --git a/provision/terraform/cloudflare/main.tf b/provision/terraform/cloudflare/main.tf index 018d3632..ca69c16e 100644 --- a/provision/terraform/cloudflare/main.tf +++ b/provision/terraform/cloudflare/main.tf @@ -108,3 +108,12 @@ resource "cloudflare_record" "hajimari" { type = "CNAME" ttl = 1 } + +resource "cloudflare_record" "echo_server" { + name = "echo-server" + zone_id = lookup(data.cloudflare_zones.domain.zones[0], "id") + value = "ipv4.${data.sops_file.cloudflare_secrets.data["cloudflare_domain"]}" + proxied = true + type = "CNAME" + ttl = 1 +}