Compare commits

...

99 Commits

Author SHA1 Message Date
aa6a14979d disable CaaS for now
It's using a shitload of bandwidth
2025-06-01 11:14:31 -05:00
8b644bb4fc remove my-cluster 2025-05-22 16:07:56 -05:00
d53ae8082c Add Flux sync manifests 2025-05-22 21:02:38 +00:00
d2e4b3dc6e Add Flux v2.4.0 component manifests 2025-05-22 21:02:23 +00:00
e0743f2a68 add k3s cluster 2025-05-22 16:01:20 -05:00
82d8eb59dc kubernaut v0.2.2 2025-05-10 18:43:43 -05:00
e6ebdfde7b add Kubernaut secrets 2025-05-10 18:43:43 -05:00
16042a068d remove Istio sidecar injections from Kubernaut 2025-05-10 17:37:10 -05:00
e150c253cc sealed-secrets v0.29.0 2025-05-10 17:18:54 -05:00
709a880973 change kubernaut kubernetes.io/ingress.class to traefik 2025-05-09 18:08:05 -05:00
e93a85e4c6 kubernaut v0.2.1 2025-04-30 22:50:18 -05:00
ce67724c52 kubernaut v0.2.0 2025-04-29 14:47:54 -05:00
a246e3c4e9 add Envoy Gateway 2025-04-29 14:47:54 -05:00
7b8f81b9f0 kubernaut v0.1.4 2025-04-03 23:05:44 -05:00
6a7a733518 kubernaut v0.1.3 2025-04-02 21:15:49 -05:00
39278c0d2d kubernaut v0.1.2 2025-04-01 21:09:58 -05:00
033d78746c kubernaut v0.1.1 2025-04-01 20:55:40 -05:00
40738f47c7 move spegel to k8s 2025-03-26 00:26:18 -05:00
f903ad4b70 rename kipunji to kubernaut 2025-03-09 15:54:55 -05:00
6cee062b6a add CaaS 2025-03-07 21:38:09 -06:00
77188e577d enable Istio sidecar injection on kipunji namespace 2025-03-06 09:08:51 -06:00
0037c7b06a fixup no_proxy format 2025-03-05 17:13:44 -06:00
452b589d26 remove Istio 2025-03-05 17:08:16 -06:00
e980ab1860 add Istio 2025-03-05 16:57:59 -06:00
456eecace2 add '.' at the end of proxy name 2025-03-04 22:28:35 -06:00
e12c431362 don't use registry mirror 2025-03-04 22:16:15 -06:00
416f09fccf add Spegel 2025-03-04 17:40:40 -06:00
41912f685b install Gateway API 2025-03-04 17:02:26 -06:00
03e8312568 remove k6-operator 2025-03-04 14:44:02 -06:00
109ff161b6 remove kubelet-csr-approver 2025-03-04 14:43:44 -06:00
9f54cfcdfd traefik should only watch for kubernetes.io/ingress.class: traefik 2025-03-04 14:37:43 -06:00
7b715677c7 add ingress for kipunji 2025-03-04 14:07:36 -06:00
213e9c0a25 add k6 2025-02-22 12:46:25 -06:00
70bb994037 fix routes 2025-02-22 11:29:34 -06:00
7b61f80d34 test bgp 2025-02-22 11:29:34 -06:00
e45c1c547d traefik: remove externalTrafficPolicy=Local 2025-02-07 10:30:39 -06:00
c674d236c5 remove Traefik publishedService 2025-02-07 10:26:25 -06:00
e6614f80c9 fix kipunji kustomize URL 2025-02-07 00:33:14 -06:00
52346483e4 k8s: add kube-vip-cloud-controller 2025-02-06 17:39:28 -06:00
b34fbd0b6f k8s: add Kube-VIP 2025-02-06 17:39:28 -06:00
83bd27e4ae temporarily remove MetalLB from k8s cluster 2025-02-06 17:39:28 -06:00
02f89363a8 use 10.100.101.0/24 for metallb 2025-01-31 14:05:42 -06:00
f89b4217d1 flux: add pull through proxy to no_proxy 2025-01-29 11:42:09 -06:00
723337f8ec use pull through cache for flagger 2025-01-29 11:42:09 -06:00
6f47d93949 add flagger 2025-01-29 00:44:28 -06:00
ee096b3d72 apps depends on infra-configs 2025-01-28 02:01:26 -06:00
df33b81c44 add empty configs directory 2025-01-28 01:52:26 -06:00
50daefd307 remove flagger 2025-01-28 01:49:27 -06:00
7c275de45a add kipunji 2025-01-28 01:42:57 -06:00
4edc3041d8 add kubelet-csr-approver 2025-01-23 14:50:48 -06:00
6cdfd62401 install metallb first 2025-01-23 14:22:09 -06:00
4d9117cf26 remove metallb cruft 2025-01-22 22:27:53 -06:00
4590d0fda5 add metrics-server 2025-01-22 18:15:58 -06:00
14a4b668d5 Add Flux sync manifests 2025-01-22 15:39:44 -06:00
31e718b01e Add Flux v2.4.0 component manifests 2025-01-22 15:39:44 -06:00
e9cacb2ae2 restructure repository 2025-01-22 15:39:44 -06:00
1d0565551e remove metal lb pools 2025-01-22 14:17:40 -06:00
1087586e9c remove flux from k3s cluster 2025-01-22 13:42:35 -06:00
1ac690fd02 upgrade flux on k3s cluster 2025-01-22 13:32:54 -06:00
a2ca2c3fe8 share metallb between all clusters 2025-01-22 13:10:38 -06:00
50078194a1 share apps between all clusters 2025-01-22 12:00:10 -06:00
0adf29aea3 add ingress-nginx to all clusters 2025-01-22 11:58:12 -06:00
5978a46a6c add flagger to all clusters 2025-01-21 23:45:20 -06:00
9b97276263 add traefik to all clusters 2025-01-21 23:31:21 -06:00
547980a1d3 use shared directory structure 2025-01-21 23:28:13 -06:00
df4dbb06ec k8s-cluster: add reloader 2025-01-21 17:19:39 -06:00
9c4afac9f2 k8s-cluster: add sealedsecrets 2025-01-21 17:19:16 -06:00
01ea9b8fde k8s-cluster: add metallb 2025-01-21 17:16:50 -06:00
1ce673153d add proxy environment variables to k8s-cluster flux 2025-01-21 17:05:37 -06:00
c7e2c28d6d Add Flux sync manifests 2025-01-21 18:02:18 -05:00
0870040f30 Add Flux v2.4.0 component manifests 2025-01-21 18:01:23 -05:00
42b94eeb37 sealedsecrets v0.28.0 2025-01-18 11:15:24 -06:00
445ea6f19e nginx ingress 4.12.0 2025-01-18 11:12:35 -06:00
e5c705057f argocd v2.13.3 2025-01-18 11:09:01 -06:00
44550bc413 add laptop SSH key to allowed_signers 2025-01-18 10:16:35 -06:00
c1505d9986 remove descheduler, kured, argo workflows, longhorn 2025-01-18 10:15:39 -06:00
82679a2516 Add allowed_signers file 2025-01-13 16:41:45 -06:00
dc7c29be11 Remove Eraser 2025-01-13 16:31:11 -06:00
6330564cb8 Eraser v1.4.0 2024-09-21 17:07:44 -05:00
8ff21cf95b Add Goldpinger 2024-09-21 17:07:25 -05:00
9141228d53 Add Flagger 2024-08-28 20:23:32 -05:00
740076c19f Switch Reloader to Helm deployment 2024-08-26 15:36:37 -05:00
03e218e945 Run Reloader in the default namespace 2024-08-26 13:23:20 -05:00
0d56ae7188 Argo Rollouts v1.7.2 2024-08-26 13:17:07 -05:00
f59fa329e7 ArgoCD v2.12.1 2024-08-18 00:54:04 -05:00
2ae6c5ef7e Temporarily remove Rook Ceph 2024-08-17 12:12:05 -05:00
bebf2e8f76 Add Rook Ceph cluster 2024-08-17 12:05:46 -05:00
8ba50d2680 Add Rook Ceph 2024-08-15 23:41:49 -05:00
792611befb Use tag for Reloader 2024-08-14 16:23:04 -05:00
a697909c6c Add Argo Workflows 2024-08-11 22:15:21 -05:00
38d1fa638f Add Argo Rollouts 2024-08-11 13:11:25 -05:00
f971c8bc1f Add Kured 2024-08-10 12:38:26 -05:00
8d6af9f2b5 Add Eraser 2024-08-10 11:57:07 -05:00
47c9992515 Add Descheduler 2024-08-10 11:57:03 -05:00
dc78d2190a Traefik: enable local traffic policy 2024-08-07 23:13:55 -05:00
ef312f10fa Traefik providers.kubernetesIngress.publishedService.enabled=true 2024-08-07 12:35:21 -05:00
0ccddfabb6 Add Reloader 2024-08-07 10:35:29 -05:00
6fae8b82af Add ingress for Longhorn 2024-08-06 19:51:56 -05:00
4a4b18b116 Add nginx-ingress 2024-08-06 19:44:20 -05:00
57 changed files with 14097 additions and 532 deletions

2
allowed_signers Normal file
View File

@ -0,0 +1,2 @@
ryan@cavi.cc namespaces="git" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGznaofIstAxYsX1MH8xQiZU4aOO4SUw9OlRbyFMfQTx ryan@workstation
ryan@cavi.cc namespaces="git" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICndorpp/6aKlLq2K1YP81r8zA80VGp1qAUeCZtdVhAw lappy486

View File

@ -0,0 +1,19 @@
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: traefik
name: kubernaut-ingress
namespace: kubernaut
spec:
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: kubernaut
port:
name: web

View File

@ -0,0 +1,8 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: kubernaut
resources:
- secrets.yaml
- https://git.kill0.net/ryanc/kubernaut/kustomize?ref=v0.2.2
- ingress.yaml

View File

@ -0,0 +1,16 @@
---
apiVersion: bitnami.com/v1alpha1
kind: SealedSecret
metadata:
creationTimestamp: null
name: kubernaut
namespace: kubernaut
spec:
encryptedData:
jwt_secret: AgBcARUqnBw3V5At/AbhfVoC1E+jgVXOkWHiWXFw+6ZoIljVOP3s2IJ1ORq5Lcynr1trwlre8cQrMCwTr8q05e2jH1MjVkZ33elzB1wpAjrZlrOwSgKURC8OfWOeIUQenq5pg8RLuOWFmvG/VLutus+lYBZ01kJICP0N0iZkIwZHRuJ527fXK9vhSA598Mn9Fki9W6dw0cA0PCUIDmyrIlBtKBnYrO/T899wbQakNoL3SXIgJ5gPug2gJG6O5YhJu5f2SBP0+paKcbRiGDIRVS17S8O49W/cNvYGGhovKWxozexYO/okDDeRToGCpeHcT0thZfpe6PvOVWM+tcW/ZPd8dhJF57wDliBPa3iC+kAzj3t2wLqNC5sEy2P3ZPEnRz3cHsyD51dbfpXZzXczNLai2shrsd872vCISkBGPF3b1r0aVbYcL1wyJRt1OI0CQq1cPomXrjyWZFK+oNyXXIdfdXz9zbLmmOCS7vL7cZu5sRbl33ClUWFPoTdjKe0whZ6oeUMXgI/AmVpLdqVUVs55MYt7qhTa6Eraws5gFBu2JKSn0W/fHOdhvzeU/SrWwpQR/iQmt/lRJS34Z8a22GrG3BqETwt6FWeLdNNpoHuoXtIQnO89y81cxVKUYKIhayLU0NNwegkENZ4WMm2aULqmtNo3F0tQkEfWB23cSOYQIVFVXf0F0WN5E6yPO4qiD926tJJbeMrzj9toEjGEl+FFLAwyfiuvC4TMregz8y2YUSmhkZ9WS0i8BTkCNq5jnZECg3DVBi5uP7exTXPYoc/q8TwvCw7owAK9c6g97fot5JST3mj+BPZyzCkALnyC8Ap4PHNpvWGG+MlGUzLzsieXb/FcamKepC8pR9AX5A+Pfrg=
session_secret: AgB3+WGGt7x9Rn3ZcyP9z7xr1572aR1dLROI3815kj/98kJpvhIAjisWSfVQaaJRnLWaLBeWQgwIVQSFN7zcm7n4pYxVO4BqCwb/k3ZYJsUI5maR/meNnOvXrpp1+yKxmJXSHlh7/2WzzKUK9OwDT4qmoT2oJnjrKJNRoXvIbR42NTiO8CDtzHiJ6MNEY6oH+dra4GamJ/KjNXC7NUdSZSeq1HpOBudrsrYoCZ6MZxZfMsDG7ROHvIakcSN1ibfQwOjjucDJdZWm/L41cxgW3glvTql6cJtqa9yZpije2Wja1HUHGalnwaWyXFp/5jVpPgFGYZ4SHtyQOy5Hy275Gmee8qSQjvW8iLSor4/pXiEBArWRX0iPDqVudO9onMaYtQz+hz/MEXkhMvopfokrAyrSvUogrTq/1XfRABe1nAMXVrYo74w/27RiiBDEcoRzEra1f5UxrXHJ1B1LZ+iqTSRLrBw1iqPpOG7HDSSv80+m5OKai+ppptY3OcERF9HUA/BWeRHo7h2SbMfPRqVXXihtbgArCZoU570FryGfcHjwEffQIvKYKq/KjTcpRP0dTO/99mfY/Uw7VmdmYiQC4kG/kcxQ8yPgypQNl1YSfLnSBNZH1SRgXQAsY3hETZ74jbCyaPTvpoL/IVzTDo1YrBgTVjUcZoqYW+gwwj5bt9kQZFRL4FMsCNQ7V+wAtT9GmRNkf2cxbNawHknKYx4arGpWP0y6jorebaGzSpWPl8hY1jCipU2MZw2g7f9QVw+10Tik9FlzfkK457fR1pjBNRXlAe5e0MNfNNiuJtKfHZfbj32CNEEK7JZUumqkkUl1J+Lsa8vL3HvANxYgvhohNfJSY9D2G+DD8xbD2jk7P52150Y=
template:
metadata:
creationTimestamp: null
name: kubernaut
namespace: kubernaut

View File

@ -0,0 +1,17 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: apps
namespace: flux-system
spec:
interval: 10m0s
dependsOn:
- name: infra-configs
sourceRef:
kind: GitRepository
name: flux-system
path: ./apps
prune: true
wait: true
timeout: 5m0s

View File

@ -0,0 +1,7 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: argo-rollouts
resources:
- namespace.yaml
- https://github.com/argoproj/argo-rollouts/releases/download/v1.7.2/install.yaml

View File

@ -0,0 +1,5 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: argo-rollouts

View File

@ -4,7 +4,7 @@ kind: Kustomization
namespace: argocd
resources:
- namespace.yaml
- https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
- https://raw.githubusercontent.com/argoproj/argo-cd/v2.13.3/manifests/install.yaml
patches:
- patch: |
apiVersion: v1

View File

@ -20,7 +20,7 @@ metadata:
namespace: flux-system
spec:
interval: 10m0s
path: ./clusters/my-cluster
path: ./clusters/k3s-cluster
prune: true
sourceRef:
kind: GitRepository

View File

@ -17,7 +17,7 @@ patches:
- name: manager
env:
- name: "HTTPS_PROXY"
value: "http://proxy-lb.lab.kill0.net:3128"
value: "http://proxy-lb.lab.kill0.net.:3128"
- name: "NO_PROXY"
value: ".cluster.local.,.cluster.local,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16"
target:

View File

@ -0,0 +1,60 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: infra-loadbalancer
namespace: flux-system
spec:
interval: 1h
retryInterval: 1m
timeout: 5m
sourceRef:
kind: GitRepository
name: flux-system
path: ./infrastructure/loadbalancer
prune: true
wait: true
patches:
- patch: |
- op: replace
path: /spec/addresses
value:
- 10.100.101.16/28
target:
kind: IPAddressPool
name: first-pool
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: infra-controllers
namespace: flux-system
spec:
dependsOn:
- name: infra-loadbalancer
interval: 1h
retryInterval: 1m
timeout: 5m
sourceRef:
kind: GitRepository
name: flux-system
path: ./infrastructure/controllers
prune: true
wait: true
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: infra-configs
namespace: flux-system
spec:
dependsOn:
- name: infra-controllers
interval: 1h
retryInterval: 1m
timeout: 5m
sourceRef:
kind: GitRepository
name: flux-system
path: ./infrastructure/configs
prune: true

View File

@ -0,0 +1,17 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: apps
namespace: flux-system
spec:
interval: 10m0s
dependsOn:
- name: infra-configs
sourceRef:
kind: GitRepository
name: flux-system
path: ./apps
prune: true
wait: true
timeout: 5m0s

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,27 @@
# This manifest was generated by flux. DO NOT EDIT.
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: GitRepository
metadata:
name: flux-system
namespace: flux-system
spec:
interval: 1m0s
ref:
branch: main
secretRef:
name: flux-system
url: https://git.kill0.net/ryanc/fleet-infra.git
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: flux-system
namespace: flux-system
spec:
interval: 10m0s
path: ./clusters/k8s-cluster
prune: true
sourceRef:
kind: GitRepository
name: flux-system

View File

@ -0,0 +1,25 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- gotk-components.yaml
- gotk-sync.yaml
patches:
- patch: |
apiVersion: apps/v1
kind: Deployment
metadata:
name: all
spec:
template:
spec:
containers:
- name: manager
env:
- name: "https_proxy"
value: "http://proxy-lb.lab.kill0.net.:3128"
- name: "no_proxy"
value: ".cluster.local., .cluster.local, .svc, 10.0.0.0/8, 127.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, k8s-ctrl-lb.lab.kill0.net, localhost, registry.lab.kill0.net"
target:
kind: Deployment
labelSelector: app.kubernetes.io/part-of=flux

View File

@ -0,0 +1,33 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: infra-controllers
namespace: flux-system
spec:
interval: 1h
retryInterval: 1m
timeout: 5m
sourceRef:
kind: GitRepository
name: flux-system
path: ./infrastructure/controllers
prune: true
wait: true
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: infra-configs
namespace: flux-system
spec:
dependsOn:
- name: infra-controllers
interval: 1h
retryInterval: 1m
timeout: 5m
sourceRef:
kind: GitRepository
name: flux-system
path: ./infrastructure/configs
prune: true

View File

@ -0,0 +1,7 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: kubevip
namespace: kube-system
data:
cidr-global: 10.99.99.10-10.99.99.254

View File

@ -0,0 +1,88 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: kube-vip-cloud-controller
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
annotations:
rbac.authorization.kubernetes.io/autoupdate: "true"
name: system:kube-vip-cloud-controller-role
rules:
- apiGroups: ["coordination.k8s.io"]
resources: ["leases"]
verbs: ["get", "create", "update", "list", "put"]
- apiGroups: [""]
resources: ["configmaps", "endpoints","events","services/status", "leases"]
verbs: ["*"]
- apiGroups: [""]
resources: ["nodes", "services"]
verbs: ["list","get","watch","update"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: system:kube-vip-cloud-controller-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: system:kube-vip-cloud-controller-role
subjects:
- kind: ServiceAccount
name: kube-vip-cloud-controller
namespace: kube-system
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: kube-vip-cloud-provider
namespace: kube-system
spec:
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: kube-vip
component: kube-vip-cloud-provider
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
app: kube-vip
component: kube-vip-cloud-provider
spec:
containers:
- command:
- /kube-vip-cloud-provider
- --leader-elect-resource-name=kube-vip-cloud-controller
image: ghcr.io/kube-vip/kube-vip-cloud-provider:v0.0.11
name: kube-vip-cloud-provider
imagePullPolicy: Always
dnsPolicy: ClusterFirst
restartPolicy: Always
terminationGracePeriodSeconds: 30
serviceAccountName: kube-vip-cloud-controller
tolerations:
- key: node-role.kubernetes.io/master
effect: NoSchedule
- key: node-role.kubernetes.io/control-plane
effect: NoSchedule
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 10
preference:
matchExpressions:
- key: node-role.kubernetes.io/control-plane
operator: Exists
- weight: 10
preference:
matchExpressions:
- key: node-role.kubernetes.io/master
operator: Exists

View File

@ -0,0 +1,6 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- kube-vip-cloud-controller.yaml
- configmap.yaml

View File

@ -0,0 +1,71 @@
apiVersion: apps/v1
kind: DaemonSet
metadata:
creationTimestamp: null
labels:
app.kubernetes.io/name: kube-vip-ds
app.kubernetes.io/version: v0.8.9
name: kube-vip-ds
namespace: kube-system
spec:
selector:
matchLabels:
app.kubernetes.io/name: kube-vip-ds
template:
metadata:
creationTimestamp: null
labels:
app.kubernetes.io/name: kube-vip-ds
app.kubernetes.io/version: v0.8.9
spec:
containers:
- args:
- manager
env:
- name: vip_arp
value: "false"
- name: port
value: "6443"
- name: vip_nodename
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: vip_interface
value: lo
- name: bgp_routerinterface
value: "eth0"
- name: dns_mode
value: first
- name: svc_enable
value: "true"
- name: svc_leasename
value: plndr-svcs-lock
- name: bgp_enable
value: "true"
- name: bgp_routerid
- name: bgp_as
value: "4206942069"
- name: bgp_peeraddress
- name: bgp_peerpass
- name: bgp_peeras
value: "65000"
- name: bgp_peers
value: 10.100.100.1:4206942069::false
- name: vip_address
- name: vip_cidr
value: "32"
- name: prometheus_server
value: :2112
image: ghcr.io/kube-vip/kube-vip:v0.8.9
imagePullPolicy: IfNotPresent
name: kube-vip
resources: {}
securityContext:
capabilities:
add:
- NET_ADMIN
- NET_RAW
hostNetwork: true
serviceAccountName: kube-vip
updateStrategy: {}

View File

@ -0,0 +1,6 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- rbac.yaml
- daemonset.yaml

View File

@ -0,0 +1,45 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: kube-vip
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
annotations:
rbac.authorization.kubernetes.io/autoupdate: "true"
name: system:kube-vip-role
rules:
- apiGroups: [""]
resources: ["services/status"]
verbs: ["update"]
- apiGroups: [""]
resources: ["services", "endpoints"]
verbs: ["list","get","watch", "update"]
- apiGroups: [""]
resources: ["nodes"]
verbs: ["list","get","watch", "update", "patch"]
- apiGroups: ["coordination.k8s.io"]
resources: ["leases"]
verbs: ["list", "get", "watch", "update", "create"]
- apiGroups: ["discovery.k8s.io"]
resources: ["endpointslices"]
verbs: ["list","get","watch", "update"]
- apiGroups: [""]
resources: ["pods"]
verbs: ["list"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: system:kube-vip-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: system:kube-vip-role
subjects:
- kind: ServiceAccount
name: kube-vip
namespace: kube-system

View File

@ -0,0 +1,8 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: spegel
resources:
- namespace.yaml
- repository.yaml
- release.yaml

View File

@ -0,0 +1,5 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: spegel

View File

@ -0,0 +1,16 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: spegel
namespace: spegel
spec:
interval: 1m
chart:
spec:
chart: spegel
version: v0.0.30
interval: 5m
sourceRef:
kind: HelmRepository
name: spegel

View File

@ -0,0 +1,10 @@
---
apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: HelmRepository
metadata:
name: spegel
namespace: spegel
spec:
type: "oci"
interval: 5m0s
url: oci://ghcr.io/spegel-org/helm-charts

View File

@ -1,5 +0,0 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- https://raw.githubusercontent.com/longhorn/longhorn/v1.6.2/deploy/longhorn.yaml

View File

View File

@ -0,0 +1,5 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: envoy-gateway-system

View File

@ -0,0 +1,12 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: eg
namespace: envoy-gateway-system
spec:
interval: 10m
releaseName: eg
chartRef:
kind: OCIRepository
name: envoy-gateway

View File

@ -0,0 +1,11 @@
---
apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: OCIRepository
metadata:
name: envoy-gateway
namespace: envoy-gateway-system
spec:
interval: 10m
url: oci://docker.io/envoyproxy/gateway-helm
ref:
semver: ">=1.3.2"

View File

@ -0,0 +1,7 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- namespace.yaml
- repository.yaml
- release.yaml

View File

@ -0,0 +1,7 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: flagger-system
labels:
toolkit.fluxcd.io/tenant: sre-team

View File

@ -0,0 +1,26 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: flagger
namespace: flagger-system
spec:
interval: 1h
releaseName: flagger
install: # override existing Flagger CRDs
crds: CreateReplace
upgrade: # update Flagger CRDs
crds: CreateReplace
chart:
spec:
chart: flagger
version: 1.x # update Flagger to the latest minor version
interval: 6h # scan for new versions every six hours
sourceRef:
kind: HelmRepository
name: flagger
verify: # verify the chart signature with Cosign keyless
provider: cosign
values:
nodeSelector:
kubernetes.io/os: linux

View File

@ -0,0 +1,9 @@
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: flagger
namespace: flagger-system
spec:
interval: 1h
url: oci://ghcr.io/fluxcd/charts
type: oci

View File

@ -0,0 +1,5 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.2.0/standard-install.yaml

View File

@ -0,0 +1,8 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: ingress-nginx
resources:
- namespace.yaml
- repository.yaml
- release.yaml

View File

@ -0,0 +1,5 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: ingress-nginx

View File

@ -0,0 +1,15 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: ingress-nginx
namespace: ingress-nginx
spec:
interval: 30m
chart:
spec:
chart: ingress-nginx
sourceRef:
kind: HelmRepository
name: ingress-nginx
version: 4.12.0

View File

@ -0,0 +1,9 @@
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: ingress-nginx
namespace: ingress-nginx
spec:
interval: 5m
url: https://kubernetes.github.io/ingress-nginx

View File

@ -0,0 +1,201 @@
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
k8s-app: metrics-server
name: metrics-server
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
k8s-app: metrics-server
rbac.authorization.k8s.io/aggregate-to-admin: "true"
rbac.authorization.k8s.io/aggregate-to-edit: "true"
rbac.authorization.k8s.io/aggregate-to-view: "true"
name: system:aggregated-metrics-reader
rules:
- apiGroups:
- metrics.k8s.io
resources:
- pods
- nodes
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
k8s-app: metrics-server
name: system:metrics-server
rules:
- apiGroups:
- ""
resources:
- nodes/metrics
verbs:
- get
- apiGroups:
- ""
resources:
- pods
- nodes
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
labels:
k8s-app: metrics-server
name: metrics-server-auth-reader
namespace: kube-system
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: extension-apiserver-authentication-reader
subjects:
- kind: ServiceAccount
name: metrics-server
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
k8s-app: metrics-server
name: metrics-server:system:auth-delegator
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: system:auth-delegator
subjects:
- kind: ServiceAccount
name: metrics-server
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
k8s-app: metrics-server
name: system:metrics-server
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: system:metrics-server
subjects:
- kind: ServiceAccount
name: metrics-server
namespace: kube-system
---
apiVersion: v1
kind: Service
metadata:
labels:
k8s-app: metrics-server
name: metrics-server
namespace: kube-system
spec:
ports:
- name: https
port: 443
protocol: TCP
targetPort: https
selector:
k8s-app: metrics-server
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
k8s-app: metrics-server
name: metrics-server
namespace: kube-system
spec:
selector:
matchLabels:
k8s-app: metrics-server
strategy:
rollingUpdate:
maxUnavailable: 0
template:
metadata:
labels:
k8s-app: metrics-server
spec:
containers:
- args:
- --cert-dir=/tmp
- --secure-port=10250
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
- --kubelet-use-node-status-port
- --metric-resolution=15s
image: registry.k8s.io/metrics-server/metrics-server:v0.7.2
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 3
httpGet:
path: /livez
port: https
scheme: HTTPS
periodSeconds: 10
name: metrics-server
ports:
- containerPort: 10250
name: https
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /readyz
port: https
scheme: HTTPS
initialDelaySeconds: 20
periodSeconds: 10
resources:
requests:
cpu: 100m
memory: 200Mi
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 1000
seccompProfile:
type: RuntimeDefault
volumeMounts:
- mountPath: /tmp
name: tmp-dir
nodeSelector:
kubernetes.io/os: linux
priorityClassName: system-cluster-critical
serviceAccountName: metrics-server
volumes:
- emptyDir: {}
name: tmp-dir
---
apiVersion: apiregistration.k8s.io/v1
kind: APIService
metadata:
labels:
k8s-app: metrics-server
name: v1beta1.metrics.k8s.io
spec:
group: metrics.k8s.io
groupPriorityMinimum: 100
insecureSkipTLSVerify: true
service:
name: metrics-server
namespace: kube-system
version: v1beta1
versionPriority: 100

View File

@ -0,0 +1,5 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- components.yaml

View File

@ -0,0 +1,8 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: reloader
resources:
- namespace.yaml
- repository.yaml
- release.yaml

View File

@ -0,0 +1,5 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: reloader

View File

@ -0,0 +1,21 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: reloader
namespace: reloader
spec:
chart:
spec:
chart: reloader
sourceRef:
kind: HelmRepository
name: stakater
interval: 50m
install:
remediation:
retries: 3
values:
reloader:
isArgoRollouts: true
reloadStrategy: annotations

View File

@ -0,0 +1,9 @@
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: stakater
namespace: reloader
spec:
interval: 5m
url: https://stakater.github.io/stakater-charts

View File

@ -2,4 +2,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- https://github.com/bitnami-labs/sealed-secrets/releases/download/v0.27.1/controller.yaml
- https://github.com/bitnami-labs/sealed-secrets/releases/download/v0.29.0/controller.yaml

View File

@ -16,3 +16,7 @@ spec:
install:
remediation:
retries: 3
values:
ingressClass:
enabled: true
isDefaultClass: false

View File

@ -11,7 +11,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.14.0
controller-gen.kubebuilder.io/version: v0.16.3
name: bfdprofiles.metallb.io
spec:
group: metallb.io
@ -132,7 +132,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.14.0
controller-gen.kubebuilder.io/version: v0.16.3
name: bgpadvertisements.metallb.io
spec:
group: metallb.io
@ -349,7 +349,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.14.0
controller-gen.kubebuilder.io/version: v0.16.3
name: bgppeers.metallb.io
spec:
conversion:
@ -385,6 +385,8 @@ spec:
- jsonPath: .spec.ebgpMultiHop
name: Multi Hops
type: string
deprecated: true
deprecationWarning: v1beta1 is deprecated, please use v1beta2
name: v1beta1
schema:
openAPIV3Schema:
@ -552,16 +554,27 @@ spec:
description: To set if we want to disable MP BGP that will separate
IPv4 and IPv6 route exchanges into distinct BGP sessions.
type: boolean
dynamicASN:
description: |-
DynamicASN detects the AS number to use for the remote end of the session
without explicitly setting it via the ASN field. Limited to:
internal - if the neighbor's ASN is different than MyASN connection is denied.
external - if the neighbor's ASN is the same as MyASN the connection is denied.
ASN and DynamicASN are mutually exclusive and one of them must be specified.
enum:
- internal
- external
type: string
ebgpMultiHop:
description: To set if the BGPPeer is multi-hops away. Needed for
FRR mode only.
type: boolean
enableGracefulRestart:
description: |-
EnableGracefulRestart allows BGP peer to continue to forward data packets along
known routes while the routing protocol information is being restored.
This field is immutable because it requires restart of the BGP session
Supported for FRR mode only.
EnableGracefulRestart allows BGP peer to continue to forward data packets
along known routes while the routing protocol information is being
restored. This field is immutable because it requires restart of the BGP
session. Supported for FRR mode only.
type: boolean
x-kubernetes-validations:
- message: EnableGracefulRestart cannot be changed after creation
@ -654,7 +667,9 @@ spec:
type: object
x-kubernetes-map-type: atomic
peerASN:
description: AS number to expect from the remote end of the session.
description: |-
AS number to expect from the remote end of the session.
ASN and DynamicASN are mutually exclusive and one of them must be specified.
format: int32
maximum: 4294967295
minimum: 0
@ -681,7 +696,6 @@ spec:
type: string
required:
- myASN
- peerASN
- peerAddress
type: object
status:
@ -697,7 +711,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.14.0
controller-gen.kubebuilder.io/version: v0.16.3
name: communities.metallb.io
spec:
group: metallb.io
@ -762,7 +776,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.14.0
controller-gen.kubebuilder.io/version: v0.16.3
name: ipaddresspools.metallb.io
spec:
group: metallb.io
@ -978,7 +992,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.14.0
controller-gen.kubebuilder.io/version: v0.16.3
name: l2advertisements.metallb.io
spec:
group: metallb.io
@ -1165,7 +1179,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.14.0
controller-gen.kubebuilder.io/version: v0.16.3
name: servicel2statuses.metallb.io
spec:
group: metallb.io
@ -1480,7 +1494,6 @@ rules:
- metallb-webhook-configuration
resources:
- validatingwebhookconfigurations
- mutatingwebhookconfigurations
verbs:
- create
- delete
@ -1493,7 +1506,6 @@ rules:
- admissionregistration.k8s.io
resources:
- validatingwebhookconfigurations
- mutatingwebhookconfigurations
verbs:
- list
- watch
@ -1695,7 +1707,7 @@ spec:
value: memberlist
- name: METALLB_DEPLOYMENT
value: controller
image: quay.io/metallb/controller:v0.14.8
image: quay.io/metallb/controller:v0.14.9
livenessProbe:
failureThreshold: 3
httpGet:
@ -1792,7 +1804,7 @@ spec:
value: app=metallb,component=speaker
- name: METALLB_ML_SECRET_KEY_PATH
value: /etc/ml_secret_key
image: quay.io/metallb/speaker:v0.14.8
image: quay.io/metallb/speaker:v0.14.9
livenessProbe:
failureThreshold: 3
httpGet: