feat: migrate purelb to ArgoCD (#84)

Migrate PureLB load balancer from Terragrunt to ArgoCD/Kustomize.
Deploys purelb v0.13.0 with two LBNodeAgent and two ServiceGroup CRs
(common: 198.18.200.0/24, dmz: 198.18.199.0/24).
Adds LBNodeAgent and ServiceGroup to kubeconform skip list (no CRD catalog schema).

💘 Generated with Crush

Assisted-by: Claude Sonnet 4.6 via Crush <crush@charm.land>

Reviewed-on: #84
This commit was merged in pull request #84.
This commit is contained in:
2026-04-07 19:52:17 +10:00
parent f0bdc0231a
commit 7d555cd31a
9 changed files with 152 additions and 1 deletions
+8
View File
@@ -0,0 +1,8 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- namespace.yaml
- lbnodeagents.yaml
- servicegroups.yaml
+28
View File
@@ -0,0 +1,28 @@
---
apiVersion: purelb.io/v1
kind: LBNodeAgent
metadata:
labels:
app.kubernetes.io/component: lbnodeagent
app.kubernetes.io/name: purelb
name: common
namespace: purelb
spec:
local:
extlbint: kube-lb0
localint: default
sendgarp: false
---
apiVersion: purelb.io/v1
kind: LBNodeAgent
metadata:
labels:
app.kubernetes.io/component: lbnodeagent
app.kubernetes.io/name: purelb
name: dmz
namespace: purelb
spec:
local:
extlbint: kube-lb0
localint: default
sendgarp: false
+7
View File
@@ -0,0 +1,7 @@
---
apiVersion: v1
kind: Namespace
metadata:
labels:
app.kubernetes.io/name: purelb
name: purelb
+30
View File
@@ -0,0 +1,30 @@
---
apiVersion: purelb.io/v1
kind: ServiceGroup
metadata:
labels:
app.kubernetes.io/component: servicegroup
app.kubernetes.io/name: purelb
name: common
namespace: purelb
spec:
local:
v4pools:
- aggregation: /32
pool: 198.18.200.0/24
subnet: 198.18.200.0/24
---
apiVersion: purelb.io/v1
kind: ServiceGroup
metadata:
labels:
app.kubernetes.io/component: servicegroup
app.kubernetes.io/name: purelb
name: dmz
namespace: purelb
spec:
local:
v4pools:
- aggregation: /32
pool: 198.18.199.0/24
subnet: 198.18.199.0/24
@@ -0,0 +1,16 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: purelb
resources:
- ../../../base/purelb
helmCharts:
- name: purelb
repo: https://gitlab.com/api/v4/projects/20400619/packages/helm/stable
version: "v0.13.0"
releaseName: purelb
namespace: purelb
valuesFile: values.yaml
+56
View File
@@ -0,0 +1,56 @@
image:
repository: registry.gitlab.com/purelb/purelb
tag: v0.13.0
pullPolicy: Always
allocator:
securityContext:
runAsNonRoot: true
runAsUser: 65534
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- all
readOnlyRootFilesystem: true
tolerations: []
lbnodeagent:
extlbint: kube-lb0
localint: default
sendgarp: false
tolerations: []
containerSecurityContext:
capabilities:
add:
- NET_ADMIN
- NET_RAW
drop:
- ALL
readOnlyRootFilesystem: false
runAsGroup: 0
runAsUser: 0
defaultAnnouncer: PureLB
serviceGroup:
create: false
name: default
Prometheus:
allocator:
Metrics:
enabled: false
serviceMonitor:
enabled: false
prometheusRules:
enabled: false
lbnodeagent:
Metrics:
enabled: false
serviceMonitor:
enabled: false
prometheusRules:
enabled: false
memberlistSecretKey: 8sb7ikA5qHwQQqxc
+1
View File
@@ -21,6 +21,7 @@ spec:
- path: apps/overlays/*/jfrog
- path: apps/overlays/*/node-feature-discovery
- path: apps/overlays/*/puppet
- path: apps/overlays/*/purelb
- path: apps/overlays/*/reflector-system
- path: apps/overlays/*/reloader-system
- path: apps/overlays/*/reposync
+5
View File
@@ -12,6 +12,7 @@ spec:
- https://cloudnative-pg.github.io/charts
- https://helm.elastic.co
- https://helm.releases.hashicorp.com
- https://purelb.github.io/purelb/charts
- https://intel.github.io/helm-charts/
- https://kubernetes-sigs.github.io/external-dns/
- https://releases.rancher.com/server-charts/stable
@@ -34,6 +35,8 @@ spec:
server: https://kubernetes.default.svc
- namespace: 'node-feature-discovery'
server: https://kubernetes.default.svc
- namespace: 'purelb'
server: https://kubernetes.default.svc
- namespace: 'puppet'
server: https://kubernetes.default.svc
- namespace: 'reposync'
@@ -55,6 +58,8 @@ spec:
kind: ValidatingWebhookConfiguration
- group: 'scheduling.k8s.io'
kind: PriorityClass
- group: 'purelb.io'
kind: '*'
- group: 'nfd.k8s-sigs.io'
kind: NodeFeatureRule
- group: 'deviceplugin.intel.com'
+1 -1
View File
@@ -18,6 +18,6 @@ while IFS= read -r -d "" k; do
-summary \
-output pretty \
-verbose \
-skip CustomResourceDefinition,GpuDevicePlugin \
-skip CustomResourceDefinition,GpuDevicePlugin,LBNodeAgent,ServiceGroup \
"${schema_args[@]}"
done < <(find apps/overlays -name kustomization.yaml -print0)