Compare commits

...

41 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
36 changed files with 391 additions and 109 deletions

View File

@ -1,5 +0,0 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- https://git.kill0.net/ryanc/kipunji/raw/branch/main/kustomize/kustomization.yaml

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

@ -13,6 +13,65 @@ metadata:
pod-security.kubernetes.io/warn-version: latest
name: flux-system
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
labels:
app.kubernetes.io/instance: flux-system
app.kubernetes.io/part-of: flux
app.kubernetes.io/version: v2.4.0
name: allow-egress
namespace: flux-system
spec:
egress:
- {}
ingress:
- from:
- podSelector: {}
podSelector: {}
policyTypes:
- Ingress
- Egress
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
labels:
app.kubernetes.io/instance: flux-system
app.kubernetes.io/part-of: flux
app.kubernetes.io/version: v2.4.0
name: allow-scraping
namespace: flux-system
spec:
ingress:
- from:
- namespaceSelector: {}
ports:
- port: 8080
protocol: TCP
podSelector: {}
policyTypes:
- Ingress
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
labels:
app.kubernetes.io/instance: flux-system
app.kubernetes.io/part-of: flux
app.kubernetes.io/version: v2.4.0
name: allow-webhooks
namespace: flux-system
spec:
ingress:
- from:
- namespaceSelector: {}
podSelector:
matchLabels:
app: notification-controller
policyTypes:
- Ingress
---
apiVersion: v1
kind: ResourceQuota
metadata:

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

@ -17,9 +17,9 @@ 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: ".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"
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

@ -1,37 +1,10 @@
---
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.0/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

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

@ -1,7 +1,6 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: kube-system
resources:
- repository.yaml
- release.yaml
- 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

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

View File

@ -2,4 +2,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: goldpinger
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,21 +0,0 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: goldpinger
namespace: goldpinger
spec:
chart:
spec:
chart: goldpinger
sourceRef:
kind: HelmRepository
name: goldpinger
interval: 50m
install:
remediation:
retries: 3
values:
goldpinger:
isArgoRollouts: true
reloadStrategy: annotations

View File

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

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

@ -5,6 +5,5 @@ metadata:
namespace: flagger-system
spec:
interval: 1h
url: oci://registry.lab.kill0.net:5004/fluxcd/charts
url: oci://ghcr.io/fluxcd/charts
type: oci
insecure: true

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

@ -1,20 +0,0 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: kubelet-csr-approver
namespace: kube-system
spec:
releaseName: kubelet-csr-approver
chart:
spec:
chart: kubelet-csr-approver
sourceRef:
kind: HelmRepository
name: kubelet-csr-approver
values:
providerRegex: ^(?:(?:kube|k[038]s))\d+$
providerIpPrefixes: 10.100.100.0/24
maxExpirationSeconds: 86400
bypassDnsResolution: false
interval: 1m

View File

@ -1,9 +0,0 @@
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: kubelet-csr-approver
namespace: kube-system
spec:
interval: 5m
url: https://postfinance.github.io/kubelet-csr-approver

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.28.0/controller.yaml
- https://github.com/bitnami-labs/sealed-secrets/releases/download/v0.29.0/controller.yaml

View File

@ -17,9 +17,6 @@ spec:
remediation:
retries: 3
values:
providers.kubernetesIngress.publishedService.enabled: true
additionalArguments:
- --providers.kubernetesingress.ingressendpoint.publishedservice=traefik/traefik
service:
spec:
externalTrafficPolicy: Local
ingressClass:
enabled: true
isDefaultClass: false