From a852d7217b8555912cf8440d31fbea437f2e2823 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?c=C4=83t=C4=83lin?= Date: Mon, 24 Aug 2026 15:41:05 +0200 Subject: [PATCH] feat: add lldap VIP --- README.md | 3 ++- k8s/argo-apps/lldap.yaml | 9 ++++++- k8s/charts/lldap/Chart.yaml | 5 ++-- k8s/charts/lldap/templates/service-ldap.yaml | 24 +++++++++++++++++++ k8s/charts/lldap/values.yaml | 7 ++++++ k8s/services/metallb/l2advert-adguard.yaml | 9 ------- k8s/services/metallb/l2advert-prod.yaml | 9 ------- ...pool-adguard.yaml => metallb-adguard.yaml} | 9 +++++++ k8s/services/metallb/metallb-ldap.yaml | 19 +++++++++++++++ .../{pool-prod.yaml => metallb-traefik.yaml} | 9 +++++++ 10 files changed, 81 insertions(+), 22 deletions(-) create mode 100644 k8s/charts/lldap/templates/service-ldap.yaml delete mode 100644 k8s/services/metallb/l2advert-adguard.yaml delete mode 100644 k8s/services/metallb/l2advert-prod.yaml rename k8s/services/metallb/{pool-adguard.yaml => metallb-adguard.yaml} (52%) create mode 100644 k8s/services/metallb/metallb-ldap.yaml rename k8s/services/metallb/{pool-prod.yaml => metallb-traefik.yaml} (67%) diff --git a/README.md b/README.md index 3da2575..748180b 100644 --- a/README.md +++ b/README.md @@ -22,5 +22,6 @@ scripts/users.py add -u catalin -n cătălin -e catalin@roboces.dev ## MetalLB and reserved VIPs -- traefik VIP: 192.168.1.127 +- traefik VIP: 192.168.1.126 - adguard dns VIP: 192.168.1.125 +- ldap VIP: 192.168.1.124 diff --git a/k8s/argo-apps/lldap.yaml b/k8s/argo-apps/lldap.yaml index 577dfd3..b3bf3f6 100644 --- a/k8s/argo-apps/lldap.yaml +++ b/k8s/argo-apps/lldap.yaml @@ -12,7 +12,7 @@ spec: sources: - repoURL: git.roboces.dev/catalin/fukuops chart: lldap - targetRevision: 1.0.1 + targetRevision: 1.0.2 helm: valuesObject: lldap: @@ -20,6 +20,13 @@ spec: type: ClusterIP httpPort: 17170 ldapPort: 3890 + ldapService: + enabled: true + type: LoadBalancer + port: 3890 + loadBalancerIP: 192.168.1.124 + annotations: + metallb.universe.tf/address-pool: ldap-pool ingress: enabled: true className: traefik diff --git a/k8s/charts/lldap/Chart.yaml b/k8s/charts/lldap/Chart.yaml index 059a454..ebe4b49 100644 --- a/k8s/charts/lldap/Chart.yaml +++ b/k8s/charts/lldap/Chart.yaml @@ -2,11 +2,12 @@ apiVersion: v2 name: lldap description: Light LDAP implementation for authentication type: application -version: 1.0.0 +version: 1.0.2 appVersion: stable annotations: artifacthub.io/images: "- name: lldap\n image: lldap/lldap:stable\n" - artifacthub.io/changes: "- kind: added\n description: Initial chart release\n" + artifacthub.io/changes: "- kind: added\n description: Add optional LDAP LoadBalancer\ + \ service\n" artifacthub.io/maintainers: "- name: catalin\n email: catalin@roboces.dev\n" keywords: - lldap diff --git a/k8s/charts/lldap/templates/service-ldap.yaml b/k8s/charts/lldap/templates/service-ldap.yaml new file mode 100644 index 0000000..ca8aab4 --- /dev/null +++ b/k8s/charts/lldap/templates/service-ldap.yaml @@ -0,0 +1,24 @@ +{{- if .Values.lldap.ldapService.enabled }} +apiVersion: v1 +kind: Service +metadata: + name: {{ include "fullname" . }}-ldap + labels: + {{- include "labels" . | nindent 4 }} + {{- with .Values.lldap.ldapService.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + type: {{ .Values.lldap.ldapService.type }} + {{- if .Values.lldap.ldapService.loadBalancerIP }} + loadBalancerIP: {{ .Values.lldap.ldapService.loadBalancerIP }} + {{- end }} + ports: + - port: {{ .Values.lldap.ldapService.port }} + targetPort: ldap + protocol: TCP + name: ldap + selector: + {{- include "selectorLabels" . | nindent 4 }} +{{- end }} diff --git a/k8s/charts/lldap/values.yaml b/k8s/charts/lldap/values.yaml index 0a3230f..a56391b 100644 --- a/k8s/charts/lldap/values.yaml +++ b/k8s/charts/lldap/values.yaml @@ -11,6 +11,13 @@ lldap: httpPort: 17170 ldapPort: 3890 + ldapService: + enabled: false + type: LoadBalancer + port: 3890 + loadBalancerIP: "" + annotations: {} + ingress: enabled: false className: "traefik" diff --git a/k8s/services/metallb/l2advert-adguard.yaml b/k8s/services/metallb/l2advert-adguard.yaml deleted file mode 100644 index 707c837..0000000 --- a/k8s/services/metallb/l2advert-adguard.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -apiVersion: metallb.io/v1beta1 -kind: L2Advertisement -metadata: - name: adguard-dns-l2 - namespace: metallb-system -spec: - ipAddressPools: - - adguard-dns-pool diff --git a/k8s/services/metallb/l2advert-prod.yaml b/k8s/services/metallb/l2advert-prod.yaml deleted file mode 100644 index 6b422c2..0000000 --- a/k8s/services/metallb/l2advert-prod.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -apiVersion: metallb.io/v1beta1 -kind: L2Advertisement -metadata: - name: ingress-l2 - namespace: metallb-system -spec: - ipAddressPools: - - ingress-pool diff --git a/k8s/services/metallb/pool-adguard.yaml b/k8s/services/metallb/metallb-adguard.yaml similarity index 52% rename from k8s/services/metallb/pool-adguard.yaml rename to k8s/services/metallb/metallb-adguard.yaml index 12f9c77..0075d91 100644 --- a/k8s/services/metallb/pool-adguard.yaml +++ b/k8s/services/metallb/metallb-adguard.yaml @@ -8,3 +8,12 @@ spec: addresses: - 192.168.1.125/32 autoAssign: false +--- +apiVersion: metallb.io/v1beta1 +kind: L2Advertisement +metadata: + name: adguard-dns-l2 + namespace: metallb-system +spec: + ipAddressPools: + - adguard-dns-pool diff --git a/k8s/services/metallb/metallb-ldap.yaml b/k8s/services/metallb/metallb-ldap.yaml new file mode 100644 index 0000000..cc306c1 --- /dev/null +++ b/k8s/services/metallb/metallb-ldap.yaml @@ -0,0 +1,19 @@ +--- +apiVersion: metallb.io/v1beta1 +kind: IPAddressPool +metadata: + name: ldap-pool + namespace: metallb-system +spec: + addresses: + - 192.168.1.124/32 + autoAssign: false +--- +apiVersion: metallb.io/v1beta1 +kind: L2Advertisement +metadata: + name: ldap-l2 + namespace: metallb-system +spec: + ipAddressPools: + - ldap-pool diff --git a/k8s/services/metallb/pool-prod.yaml b/k8s/services/metallb/metallb-traefik.yaml similarity index 67% rename from k8s/services/metallb/pool-prod.yaml rename to k8s/services/metallb/metallb-traefik.yaml index b090516..22bbd9d 100644 --- a/k8s/services/metallb/pool-prod.yaml +++ b/k8s/services/metallb/metallb-traefik.yaml @@ -10,3 +10,12 @@ spec: # Only Traefik should get this IP. Other LoadBalancer services that are # not yet migrated will stay pending instead of stealing the single VIP. autoAssign: false +--- +apiVersion: metallb.io/v1beta1 +kind: L2Advertisement +metadata: + name: ingress-l2 + namespace: metallb-system +spec: + ipAddressPools: + - ingress-pool