feat!: refactor namespaces and add descheduler (#1110)
Signed-off-by: Devin Buhl <devin@buhl.casa>
This commit is contained in:
1 parent
a8bc633ff1
commit
e167882e64
70 files changed
+208
-104
No files matched your search
+1
-1
@@ -37,4 +37,4 @@ spec:
|
||||
enabled: true
|
||||
servicemonitor:
|
||||
enabled: true
|
||||
prometheusInstance: monitoring
|
||||
prometheusInstance: observability
|
||||
@@ -6,13 +6,4 @@ resources:
|
||||
- ./namespace.yaml
|
||||
- ./cilium/ks.yaml
|
||||
- ./coredns/ks.yaml
|
||||
- ./local-path-provisioner/ks.yaml
|
||||
- ./metrics-server/ks.yaml
|
||||
- ./reloader/ks.yaml
|
||||
- ./snapshot-controller/ks.yaml
|
||||
{% if csi_driver_nfs.enabled | default(false) %}
|
||||
- ./csi-driver-nfs/ks.yaml
|
||||
{% endif %}
|
||||
{% if system_upgrade_controller.enabled | default(false) %}
|
||||
- ./system-upgrade-controller/ks.yaml
|
||||
{% endif %}
|
||||
@@ -1,22 +0,0 @@
|
||||
---
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
name: &app local-path-provisioner
|
||||
namespace: flux-system
|
||||
labels:
|
||||
substitution.flux.home.arpa/disabled: "true"
|
||||
spec:
|
||||
targetNamespace: kube-system
|
||||
commonMetadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: *app
|
||||
path: ./kubernetes/apps/kube-system/local-path-provisioner/app
|
||||
prune: true
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
name: home-kubernetes
|
||||
wait: false
|
||||
interval: 30m
|
||||
retryInterval: 1m
|
||||
timeout: 5m
|
||||
+2
-2
@@ -4,11 +4,11 @@ originRequest:
|
||||
|
||||
ingress:
|
||||
- hostname: "${SECRET_DOMAIN}"
|
||||
service: https://nginx-external-controller.networking.svc.cluster.local:443
|
||||
service: https://nginx-external-controller.network.svc.cluster.local:443
|
||||
originRequest:
|
||||
originServerName: "external.${SECRET_DOMAIN}"
|
||||
- hostname: "*.${SECRET_DOMAIN}"
|
||||
service: https://nginx-external-controller.networking.svc.cluster.local:443
|
||||
service: https://nginx-external-controller.network.svc.cluster.local:443
|
||||
originRequest:
|
||||
originServerName: "external.${SECRET_DOMAIN}"
|
||||
- service: http_status:404
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+2
-2
@@ -5,13 +5,13 @@ metadata:
|
||||
name: &app cloudflared
|
||||
namespace: flux-system
|
||||
spec:
|
||||
targetNamespace: networking
|
||||
targetNamespace: network
|
||||
commonMetadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: *app
|
||||
dependsOn:
|
||||
- name: external-dns
|
||||
path: ./kubernetes/apps/networking/cloudflared/app
|
||||
path: ./kubernetes/apps/network/cloudflared/app
|
||||
prune: true
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
File renamed without changes.
File renamed without changes.
+2
-2
@@ -5,11 +5,11 @@ metadata:
|
||||
name: &app echo-server
|
||||
namespace: flux-system
|
||||
spec:
|
||||
targetNamespace: networking
|
||||
targetNamespace: network
|
||||
commonMetadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: *app
|
||||
path: ./kubernetes/apps/networking/echo-server/app
|
||||
path: ./kubernetes/apps/network/echo-server/app
|
||||
prune: true
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+2
-2
@@ -5,11 +5,11 @@ metadata:
|
||||
name: &app external-dns
|
||||
namespace: flux-system
|
||||
spec:
|
||||
targetNamespace: networking
|
||||
targetNamespace: network
|
||||
commonMetadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: *app
|
||||
path: ./kubernetes/apps/networking/external-dns/app
|
||||
path: ./kubernetes/apps/network/external-dns/app
|
||||
prune: true
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
File renamed without changes.
File renamed without changes.
+2
-2
@@ -5,11 +5,11 @@ metadata:
|
||||
name: &app k8s-gateway
|
||||
namespace: flux-system
|
||||
spec:
|
||||
targetNamespace: networking
|
||||
targetNamespace: network
|
||||
commonMetadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: *app
|
||||
path: ./kubernetes/apps/networking/k8s-gateway/app
|
||||
path: ./kubernetes/apps/network/k8s-gateway/app
|
||||
prune: true
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
File renamed without changes.
+1
-1
@@ -2,6 +2,6 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: volsync
|
||||
name: network
|
||||
labels:
|
||||
kustomize.toolkit.fluxcd.io/prune: disabled
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
+3
-5
@@ -4,7 +4,6 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: nginx-external
|
||||
namespace: &namespace networking
|
||||
spec:
|
||||
interval: 30m
|
||||
chart:
|
||||
@@ -27,7 +26,7 @@ spec:
|
||||
keepHistory: false
|
||||
dependsOn:
|
||||
- name: cloudflared
|
||||
namespace: networking
|
||||
namespace: network
|
||||
values:
|
||||
fullnameOverride: nginx-external
|
||||
controller:
|
||||
@@ -70,14 +69,13 @@ spec:
|
||||
enabled: true
|
||||
serviceMonitor:
|
||||
enabled: true
|
||||
namespace: *namespace
|
||||
namespaceSelector:
|
||||
any: true
|
||||
extraArgs:
|
||||
{% if bootstrap_acme_production_enabled | default(false) %}
|
||||
default-ssl-certificate: "networking/${SECRET_DOMAIN/./-}-production-tls"
|
||||
default-ssl-certificate: "network/${SECRET_DOMAIN/./-}-production-tls"
|
||||
{% else %}
|
||||
default-ssl-certificate: "networking/${SECRET_DOMAIN/./-}-staging-tls"
|
||||
default-ssl-certificate: "network/${SECRET_DOMAIN/./-}-staging-tls"
|
||||
{% endif %}
|
||||
topologySpreadConstraints:
|
||||
- maxSkew: 1
|
||||
File renamed without changes.
+3
-4
@@ -4,7 +4,7 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: nginx-internal
|
||||
namespace: &namespace networking
|
||||
namespace: &namespace network
|
||||
spec:
|
||||
interval: 30m
|
||||
chart:
|
||||
@@ -67,14 +67,13 @@ spec:
|
||||
enabled: true
|
||||
serviceMonitor:
|
||||
enabled: true
|
||||
namespace: *namespace
|
||||
namespaceSelector:
|
||||
any: true
|
||||
extraArgs:
|
||||
{% if bootstrap_acme_production_enabled | default(false) %}
|
||||
default-ssl-certificate: "networking/${SECRET_DOMAIN/./-}-production-tls"
|
||||
default-ssl-certificate: "network/${SECRET_DOMAIN/./-}-production-tls"
|
||||
{% else %}
|
||||
default-ssl-certificate: "networking/${SECRET_DOMAIN/./-}-staging-tls"
|
||||
default-ssl-certificate: "network/${SECRET_DOMAIN/./-}-staging-tls"
|
||||
{% endif %}
|
||||
topologySpreadConstraints:
|
||||
- maxSkew: 1
|
||||
File renamed without changes.
+6
-6
@@ -5,13 +5,13 @@ metadata:
|
||||
name: &app nginx-certificates
|
||||
namespace: flux-system
|
||||
spec:
|
||||
targetNamespace: networking
|
||||
targetNamespace: network
|
||||
commonMetadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: *app
|
||||
dependsOn:
|
||||
- name: cert-manager-issuers
|
||||
path: ./kubernetes/apps/networking/nginx/certificates
|
||||
path: ./kubernetes/apps/network/nginx/certificates
|
||||
prune: true
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
@@ -27,13 +27,13 @@ metadata:
|
||||
name: &app nginx-external
|
||||
namespace: flux-system
|
||||
spec:
|
||||
targetNamespace: networking
|
||||
targetNamespace: network
|
||||
commonMetadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: *app
|
||||
dependsOn:
|
||||
- name: nginx-certificates
|
||||
path: ./kubernetes/apps/networking/nginx/external
|
||||
path: ./kubernetes/apps/network/nginx/external
|
||||
prune: true
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
@@ -49,13 +49,13 @@ metadata:
|
||||
name: &app nginx-internal
|
||||
namespace: flux-system
|
||||
spec:
|
||||
targetNamespace: networking
|
||||
targetNamespace: network
|
||||
commonMetadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: *app
|
||||
dependsOn:
|
||||
- name: nginx-certificates
|
||||
path: ./kubernetes/apps/networking/nginx/internal
|
||||
path: ./kubernetes/apps/network/nginx/internal
|
||||
prune: true
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
File renamed without changes.
@@ -0,0 +1,7 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: observability
|
||||
labels:
|
||||
kustomize.toolkit.fluxcd.io/prune: disabled
|
||||
@@ -0,0 +1,12 @@
|
||||
#jinja2: trim_blocks: True, lstrip_blocks: True
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ./namespace.yaml
|
||||
- ./local-path-provisioner/ks.yaml
|
||||
- ./snapshot-controller/ks.yaml
|
||||
- ./volsync/ks.yaml
|
||||
{% if csi_driver_nfs.enabled | default(false) %}
|
||||
- ./csi-driver-nfs/ks.yaml
|
||||
{% endif %}
|
||||
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,20 @@
|
||||
---
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
name: &app local-path-provisioner
|
||||
namespace: flux-system
|
||||
spec:
|
||||
targetNamespace: storage
|
||||
commonMetadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: *app
|
||||
path: ./kubernetes/apps/storage/local-path-provisioner/app
|
||||
prune: true
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
name: home-kubernetes
|
||||
wait: false
|
||||
interval: 30m
|
||||
retryInterval: 1m
|
||||
timeout: 5m
|
||||
+1
-1
@@ -2,6 +2,6 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: monitoring
|
||||
name: storage
|
||||
labels:
|
||||
kustomize.toolkit.fluxcd.io/prune: disabled
|
||||
File renamed without changes.
File renamed without changes.
+2
-2
@@ -5,11 +5,11 @@ metadata:
|
||||
name: &app snapshot-controller
|
||||
namespace: flux-system
|
||||
spec:
|
||||
targetNamespace: kube-system
|
||||
targetNamespace: storage
|
||||
commonMetadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: *app
|
||||
path: ./kubernetes/apps/kube-system/snapshot-controller/app
|
||||
path: ./kubernetes/apps/storage/snapshot-controller/app
|
||||
prune: true
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
+1
-1
@@ -25,7 +25,7 @@ spec:
|
||||
keepHistory: false
|
||||
dependsOn:
|
||||
- name: snapshot-controller
|
||||
namespace: kube-system
|
||||
namespace: storage
|
||||
values:
|
||||
manageCRDs: true
|
||||
image:
|
||||
File renamed without changes.
File renamed without changes.
+2
-2
@@ -5,11 +5,11 @@ metadata:
|
||||
name: &app volsync
|
||||
namespace: flux-system
|
||||
spec:
|
||||
targetNamespace: volsync
|
||||
targetNamespace: storage
|
||||
commonMetadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: *app
|
||||
path: ./kubernetes/apps/volsync/volsync/app
|
||||
path: ./kubernetes/apps/storage/volsync/app
|
||||
prune: true
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
@@ -0,0 +1,62 @@
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2beta2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: descheduler
|
||||
spec:
|
||||
interval: 30m
|
||||
chart:
|
||||
spec:
|
||||
chart: descheduler
|
||||
version: 0.29.0
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: descheduler
|
||||
namespace: flux-system
|
||||
maxHistory: 2
|
||||
install:
|
||||
remediation:
|
||||
retries: 3
|
||||
upgrade:
|
||||
cleanupOnFail: true
|
||||
remediation:
|
||||
retries: 3
|
||||
uninstall:
|
||||
keepHistory: false
|
||||
values:
|
||||
kind: Deployment
|
||||
deschedulerPolicyAPIVersion: descheduler/v1alpha2
|
||||
deschedulerPolicy:
|
||||
profiles:
|
||||
- name: Default
|
||||
pluginConfig:
|
||||
- name: DefaultEvictor
|
||||
args:
|
||||
evictFailedBarePods: true
|
||||
evictLocalStoragePods: true
|
||||
evictSystemCriticalPods: true
|
||||
nodeFit: true
|
||||
- name: RemovePodsViolatingInterPodAntiAffinity
|
||||
- name: RemovePodsViolatingNodeAffinity
|
||||
args:
|
||||
nodeAffinityType:
|
||||
- requiredDuringSchedulingIgnoredDuringExecution
|
||||
- name: RemovePodsViolatingNodeTaints
|
||||
- name: RemovePodsViolatingTopologySpreadConstraint
|
||||
args:
|
||||
constraints:
|
||||
- DoNotSchedule
|
||||
- ScheduleAnyway
|
||||
plugins:
|
||||
balance:
|
||||
enabled:
|
||||
- RemovePodsViolatingTopologySpreadConstraint
|
||||
deschedule:
|
||||
enabled:
|
||||
- RemovePodsViolatingInterPodAntiAffinity
|
||||
- RemovePodsViolatingNodeAffinity
|
||||
- RemovePodsViolatingNodeTaints
|
||||
service:
|
||||
enabled: true
|
||||
serviceMonitor:
|
||||
enabled: true
|
||||
File renamed without changes.
@@ -0,0 +1,20 @@
|
||||
---
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
name: &app descheduler
|
||||
namespace: flux-system
|
||||
spec:
|
||||
targetNamespace: tools
|
||||
commonMetadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: *app
|
||||
path: ./kubernetes/apps/tools/descheduler/app
|
||||
prune: true
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
name: home-kubernetes
|
||||
wait: false
|
||||
interval: 30m
|
||||
retryInterval: 1m
|
||||
timeout: 5m
|
||||
@@ -0,0 +1,11 @@
|
||||
#jinja2: trim_blocks: True, lstrip_blocks: True
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ./namespace.yaml
|
||||
- ./descheduler/ks.yaml
|
||||
- ./reloader/ks.yaml
|
||||
{% if system_upgrade_controller.enabled | default(false) %}
|
||||
- ./system-upgrade-controller/ks.yaml
|
||||
{% endif %}
|
||||
+1
-1
@@ -2,6 +2,6 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: networking
|
||||
name: tools
|
||||
labels:
|
||||
kustomize.toolkit.fluxcd.io/prune: disabled
|
||||
+2
-3
@@ -3,7 +3,6 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: reloader
|
||||
namespace: &namespace kube-system
|
||||
spec:
|
||||
interval: 30m
|
||||
chart:
|
||||
@@ -27,7 +26,7 @@ spec:
|
||||
values:
|
||||
fullnameOverride: reloader
|
||||
reloader:
|
||||
reloadStrategy: annotations
|
||||
readOnlyRootFileSystem: true
|
||||
podMonitor:
|
||||
enabled: true
|
||||
namespace: *namespace
|
||||
namespace: "{{ .Release.Namespace }}"
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ./helmrelease.yaml
|
||||
+2
-2
@@ -5,11 +5,11 @@ metadata:
|
||||
name: &app reloader
|
||||
namespace: flux-system
|
||||
spec:
|
||||
targetNamespace: kube-system
|
||||
targetNamespace: tools
|
||||
commonMetadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: *app
|
||||
path: ./kubernetes/apps/kube-system/reloader/app
|
||||
path: ./kubernetes/apps/tools/reloader/app
|
||||
prune: true
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
@@ -1,8 +0,0 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
# Pre Flux-Kustomizations
|
||||
- ./namespace.yaml
|
||||
# Flux-Kustomizations
|
||||
- ./volsync/ks.yaml
|
||||
@@ -0,0 +1,9 @@
|
||||
---
|
||||
apiVersion: source.toolkit.fluxcd.io/v1beta2
|
||||
kind: HelmRepository
|
||||
metadata:
|
||||
name: descheduler
|
||||
namespace: flux-system
|
||||
spec:
|
||||
interval: 1h
|
||||
url: https://kubernetes-sigs.github.io/descheduler
|
||||
@@ -9,6 +9,7 @@ resources:
|
||||
- ./coredns.yaml
|
||||
- ./csi-driver-nfs.yaml
|
||||
- ./democratic-csi.yaml
|
||||
- ./descheduler.yaml
|
||||
- ./external-dns.yaml
|
||||
- ./grafana.yaml
|
||||
- ./hajimari.yaml
|
||||
|
||||
Reference in new issue
Block a user