feat: move namespaces defs into apps and utilize fluxcd.io/prune label

Signed-off-by: Devin Buhl <devin@buhl.casa>
This commit is contained in:
Devin Buhl committed 2022-06-16 19:44:26 -04:00
1 parent fc7ddff94a
commit fb5b38e7a8
28 files changed
+84 -63

No files matched your search

@@ -17,11 +17,16 @@ spec:
interval: 5m interval: 5m
install: install:
createNamespace: true createNamespace: true
remediation:
retries: 3
upgrade:
remediation:
retries: 3
values: values:
global: global:
nameOverride: *app nameOverride: *app
controller: controller:
replicas: 2 replicas: 1
strategy: RollingUpdate strategy: RollingUpdate
image: image:
repository: docker.io/jmalloc/echo-server repository: docker.io/jmalloc/echo-server
@@ -84,15 +89,6 @@ spec:
- hosts: - hosts:
- *host - *host
secretName: "echo-server-tls" secretName: "echo-server-tls"
# # FIXME: Uncomment this block to ensure multiple
# # replicas of the pod are scheduled on different nodes
# topologySpreadConstraints:
# - maxSkew: 1
# topologyKey: kubernetes.io/hostname
# whenUnsatisfiable: DoNotSchedule
# labelSelector:
# matchLabels:
# app.kubernetes.io/name: *app
resources: resources:
requests: requests:
cpu: 50m cpu: 50m
+1
View File
@@ -2,5 +2,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
resources: resources:
- namespace.yaml
- echo-server - echo-server
- hajimari - hajimari
+7
View File
@@ -0,0 +1,7 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: default
labels:
kustomize.toolkit.fluxcd.io/prune: disabled
@@ -2,4 +2,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
resources: resources:
- kube-vip - namespace.yaml
+7
View File
@@ -0,0 +1,7 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: flux-system
labels:
kustomize.toolkit.fluxcd.io/prune: disabled
@@ -4,3 +4,6 @@ kind: Kustomization
resources: resources:
- rbac.yaml - rbac.yaml
- daemon-set.yaml - daemon-set.yaml
labels:
- pairs:
kustomize.toolkit.fluxcd.io/prune: disabled
@@ -2,6 +2,8 @@
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
resources: resources:
- namespace.yaml
- kube-vip
# - kured # - kured
- metrics-server - metrics-server
- reflector - reflector
+7
View File
@@ -0,0 +1,7 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: kube-system
labels:
kustomize.toolkit.fluxcd.io/prune: disabled
+3 -1
View File
@@ -2,7 +2,9 @@
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
resources: resources:
# - system-upgrade
- default - default
- flux-system
- kube-system - kube-system
- metallb-system
- networking - networking
# - system-upgrade
@@ -15,9 +15,6 @@ spec:
name: k8s-at-home name: k8s-at-home
namespace: flux-system namespace: flux-system
interval: 5m interval: 5m
dependsOn:
- name: traefik
namespace: networking
install: install:
createNamespace: true createNamespace: true
remediation: remediation:
@@ -25,6 +22,9 @@ spec:
upgrade: upgrade:
remediation: remediation:
retries: 3 retries: 3
dependsOn:
- name: traefik
namespace: networking
values: values:
image: image:
repository: ghcr.io/tarampampam/error-pages repository: ghcr.io/tarampampam/error-pages
@@ -17,6 +17,11 @@ spec:
interval: 5m interval: 5m
install: install:
createNamespace: true createNamespace: true
remediation:
retries: 3
upgrade:
remediation:
retries: 3
values: values:
interval: 5m interval: 5m
logLevel: debug logLevel: debug
@@ -15,6 +15,16 @@ spec:
name: k8s-gateway name: k8s-gateway
namespace: flux-system namespace: flux-system
interval: 5m interval: 5m
install:
createNamespace: true
remediation:
retries: 3
upgrade:
remediation:
retries: 3
dependsOn:
- name: metallb
namespace: networking
values: values:
fullnameOverride: k8s-gateway fullnameOverride: k8s-gateway
domain: ${SECRET_DOMAIN} domain: ${SECRET_DOMAIN}
@@ -25,17 +35,3 @@ spec:
annotations: annotations:
metallb.universe.tf/loadBalancerIPs: "${METALLB_K8S_GATEWAY_ADDR}" metallb.universe.tf/loadBalancerIPs: "${METALLB_K8S_GATEWAY_ADDR}"
externalTrafficPolicy: Local externalTrafficPolicy: Local
# Increase replicaCount and set an anti-affinity if you wish to scale this
# replicaCount: 1
# affinity:
# podAntiAffinity:
# preferredDuringSchedulingIgnoredDuringExecution:
# - weight: 100
# podAffinityTerm:
# labelSelector:
# matchExpressions:
# - key: app.kubernetes.io/name
# operator: In
# values:
# - k8s-gateway
# topologyKey: kubernetes.io/hostname
@@ -2,6 +2,7 @@
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
resources: resources:
- namespace.yaml
- error-pages - error-pages
- cloudflare-ddns - cloudflare-ddns
- external-dns - external-dns
@@ -3,7 +3,7 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: metallb name: metallb
namespace: metallb-system namespace: networking
spec: spec:
interval: 5m interval: 5m
chart: chart:
@@ -3,3 +3,5 @@ apiVersion: v1
kind: Namespace kind: Namespace
metadata: metadata:
name: networking name: networking
labels:
kustomize.toolkit.fluxcd.io/prune: disabled
@@ -15,9 +15,6 @@ spec:
name: traefik name: traefik
namespace: flux-system namespace: flux-system
interval: 5m interval: 5m
dependsOn:
- name: cert-manager
namespace: cert-manager
install: install:
createNamespace: true createNamespace: true
remediation: remediation:
@@ -25,6 +22,11 @@ spec:
upgrade: upgrade:
remediation: remediation:
retries: 3 retries: 3
dependsOn:
- name: cert-manager
namespace: cert-manager
- name: metallb
namespace: networking
values: values:
deployment: deployment:
kind: Deployment kind: Deployment
@@ -2,4 +2,5 @@
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
resources: resources:
- namespace.yaml
- system-upgrade-controller - system-upgrade-controller
@@ -3,3 +3,5 @@ apiVersion: v1
kind: Namespace kind: Namespace
metadata: metadata:
name: system-upgrade name: system-upgrade
labels:
kustomize.toolkit.fluxcd.io/prune: disabled
@@ -8,5 +8,14 @@ images:
- name: rancher/system-upgrade-controller - name: rancher/system-upgrade-controller
newName: docker.io/rancher/system-upgrade-controller newName: docker.io/rancher/system-upgrade-controller
newTag: v0.9.1 newTag: v0.9.1
commonLabels:
app.kubernetes.io/name: system-upgrade-controller
app.kubernetes.io/instance: system-upgrade-controller
patchesStrategicMerge: patchesStrategicMerge:
- ./system-upgrade-patches.yaml # Delete namespace resource
- |
$patch: delete
apiVersion: v1
kind: Namespace
metadata:
name: system-upgrade
@@ -1,9 +0,0 @@
---
# Namespace should already exist
# Delete the system-upgrade namespace
# from the kustomization
$patch: delete
apiVersion: v1
kind: Namespace
metadata:
name: system-upgrade
@@ -1,6 +1,7 @@
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
resources: resources:
- namespace.yaml
- helm-release.yaml - helm-release.yaml
- letsencrypt-production.yaml - letsencrypt-production.yaml
- letsencrypt-staging.yaml - letsencrypt-staging.yaml
@@ -3,3 +3,5 @@ apiVersion: v1
kind: Namespace kind: Namespace
metadata: metadata:
name: cert-manager name: cert-manager
labels:
kustomize.toolkit.fluxcd.io/prune: disabled
-3
View File
@@ -2,7 +2,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
resources: resources:
- namespaces
- cert-manager - cert-manager
- kube-system
- metallb-system
@@ -1,8 +0,0 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- cert-manager.yaml
- metallb-system.yaml
- networking.yaml
- system-upgrade.yaml
@@ -1,5 +0,0 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: metallb-system
Vendored
+4 -4
View File
@@ -46,7 +46,7 @@ main() {
envsubst < "${PROJECT_DIR}/tmpl/cluster/flux-cluster.yaml" \ envsubst < "${PROJECT_DIR}/tmpl/cluster/flux-cluster.yaml" \
> "${PROJECT_DIR}/cluster/flux/flux-system/flux-cluster.yaml" > "${PROJECT_DIR}/cluster/flux/flux-system/flux-cluster.yaml"
envsubst < "${PROJECT_DIR}/tmpl/cluster/kube-vip-daemonset.yaml" \ envsubst < "${PROJECT_DIR}/tmpl/cluster/kube-vip-daemonset.yaml" \
> "${PROJECT_DIR}/cluster/core/kube-system/kube-vip/daemon-set.yaml" > "${PROJECT_DIR}/cluster/apps/kube-system/kube-vip/daemon-set.yaml"
# generate cluster secrets # generate cluster secrets
envsubst < "${PROJECT_DIR}/tmpl/cluster/cluster-secrets.sops.yaml" \ envsubst < "${PROJECT_DIR}/tmpl/cluster/cluster-secrets.sops.yaml" \
> "${PROJECT_DIR}/cluster/config/cluster-secrets.sops.yaml" > "${PROJECT_DIR}/cluster/config/cluster-secrets.sops.yaml"
@@ -288,15 +288,15 @@ setup_github_webhook() {
export BOOTSTRAP_FLUX_GITHUB_WEBHOOK_SECRET="${WEBHOOK_SECRET}" export BOOTSTRAP_FLUX_GITHUB_WEBHOOK_SECRET="${WEBHOOK_SECRET}"
_log "INFO" "Using GitHub Token '${WEBHOOK_SECRET}' for Flux" _log "INFO" "Using GitHub Token '${WEBHOOK_SECRET}' for Flux"
cp -rf "${PROJECT_DIR}/tmpl/cluster/flux-system" "${PROJECT_DIR}/cluster/apps/" cp -rf "${PROJECT_DIR}/tmpl/cluster/flux-system/webhooks" "${PROJECT_DIR}/cluster/apps/flux-system"
envsubst < "${PROJECT_DIR}/tmpl/cluster/flux-system/webhooks/github/secret.sops.yaml" \ envsubst < "${PROJECT_DIR}/tmpl/cluster/flux-system/webhooks/github/secret.sops.yaml" \
> "${PROJECT_DIR}/cluster/apps/flux-system/webhooks/github/secret.sops.yaml" > "${PROJECT_DIR}/cluster/apps/flux-system/webhooks/github/secret.sops.yaml"
sops --encrypt --in-place "${PROJECT_DIR}/cluster/apps/flux-system/webhooks/github/secret.sops.yaml" sops --encrypt --in-place "${PROJECT_DIR}/cluster/apps/flux-system/webhooks/github/secret.sops.yaml"
if [[ $(yq eval --no-doc 'contains({"resources": ["flux-system"]})' "${PROJECT_DIR}/cluster/apps/kustomization.yaml") == false ]]; then if [[ $(yq eval --no-doc 'contains({"resources": ["webhooks"]})' "${PROJECT_DIR}/cluster/apps/flux-system/kustomization.yaml") == false ]]; then
yq --inplace '.resources += [ "flux-system" ]' "${PROJECT_DIR}/cluster/apps/kustomization.yaml" yq --inplace '.resources += [ "webhooks" ]' "${PROJECT_DIR}/cluster/apps/flux-system/kustomization.yaml"
fi fi
fi fi
} }