Compare commits

..

1 Commits

Author SHA1 Message Date
ab7276a112 add flagger 2025-01-29 00:37:53 -06:00
32 changed files with 140 additions and 344 deletions

View File

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

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: ".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"
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"
target:
kind: Deployment
labelSelector: app.kubernetes.io/part-of=flux

View File

@@ -1,10 +1,37 @@
---
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.100.220-10.100.100.229
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

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

View File

@@ -1,88 +0,0 @@
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,6 +0,0 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- kube-vip-cloud-controller.yaml
- configmap.yaml

View File

@@ -1,71 +0,0 @@
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

@@ -1,45 +0,0 @@
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,16 +0,0 @@
---
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

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

@@ -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

@@ -2,4 +2,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: envoy-gateway-system
name: argo-rollouts

View File

@@ -0,0 +1,18 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: argocd
resources:
- namespace.yaml
- https://raw.githubusercontent.com/argoproj/argo-cd/v2.13.3/manifests/install.yaml
patches:
- patch: |
apiVersion: v1
kind: Service
metadata:
name: argocd-server
spec:
type: LoadBalancer
target:
kind: Service
labelSelector: app.kubernetes.io/name=argocd-server

View File

@@ -2,4 +2,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: spegel
name: argocd

View File

@@ -13,65 +13,6 @@ 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/k3s-cluster
path: ./clusters/my-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

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

View File

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

View File

@@ -0,0 +1,21 @@
---
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

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

View File

@@ -19,7 +19,7 @@ spec:
- op: replace
path: /spec/addresses
value:
- 10.100.101.16/28
- 10.100.100.210-10.100.100.219
target:
kind: IPAddressPool
name: first-pool

View File

@@ -1,12 +0,0 @@
---
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

@@ -1,11 +0,0 @@
---
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

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

View File

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

View File

@@ -0,0 +1,20 @@
---
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

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

View File

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