From 79706c90ffd74302629cef143b4207d818a6ec25 Mon Sep 17 00:00:00 2001 From: rblundon Date: Mon, 4 Aug 2025 14:04:50 -0500 Subject: [PATCH] deploy metallb to internal cluster and rebove ingress --- .../ingress-nginx-appset.yaml | 0 cluster/metallb-operator-appset.yaml | 46 +++++++++++++++++++ .../base/bgp_advertisement.yaml | 11 +++++ .../metallb-operator/base/kustomization.yaml | 15 ++++++ cluster/metallb-operator/base/metallb.yaml | 7 +++ cluster/metallb-operator/base/namespace.yaml | 13 ++++++ .../metallb-operator/base/operatorgroup.yaml | 9 ++++ .../metallb-operator/base/subscription.yaml | 12 +++++ .../metallb-operator/external/bgp_peer.yaml | 12 +++++ .../external/ip_addresspool.yaml | 12 +++++ .../metallb-operator/internal/bgp_peer.yaml | 12 +++++ .../internal/ip_addresspool.yaml | 12 +++++ .../internal/kustomization.yaml | 10 ++++ 13 files changed, 171 insertions(+) rename cluster/{ => ingress-nginx}/ingress-nginx-appset.yaml (100%) create mode 100644 cluster/metallb-operator-appset.yaml create mode 100644 cluster/metallb-operator/base/bgp_advertisement.yaml create mode 100644 cluster/metallb-operator/base/kustomization.yaml create mode 100644 cluster/metallb-operator/base/metallb.yaml create mode 100644 cluster/metallb-operator/base/namespace.yaml create mode 100644 cluster/metallb-operator/base/operatorgroup.yaml create mode 100644 cluster/metallb-operator/base/subscription.yaml create mode 100644 cluster/metallb-operator/external/bgp_peer.yaml create mode 100644 cluster/metallb-operator/external/ip_addresspool.yaml create mode 100644 cluster/metallb-operator/internal/bgp_peer.yaml create mode 100644 cluster/metallb-operator/internal/ip_addresspool.yaml create mode 100644 cluster/metallb-operator/internal/kustomization.yaml diff --git a/cluster/ingress-nginx-appset.yaml b/cluster/ingress-nginx/ingress-nginx-appset.yaml similarity index 100% rename from cluster/ingress-nginx-appset.yaml rename to cluster/ingress-nginx/ingress-nginx-appset.yaml diff --git a/cluster/metallb-operator-appset.yaml b/cluster/metallb-operator-appset.yaml new file mode 100644 index 0000000..56ea8aa --- /dev/null +++ b/cluster/metallb-operator-appset.yaml @@ -0,0 +1,46 @@ +--- + +apiVersion: argoproj.io/v1alpha1 +kind: ApplicationSet +metadata: + name: metallb-operator + namespace: openshift-gitops + finalizers: + - resources-finalizer.argocd.argoproj.io +spec: + goTemplate: true + goTemplateOptions: ["missingkey=error"] + generators: + # - clusters: {} # Variable is .name + - list: # Variable is .cluster + elements: + - cluster: internal + template: + metadata: + name: '{{.cluster}}-metallb-operator' + annotations: + argocd.argoproj.io/sync-wave: "2" + spec: + destination: + name: '{{.cluster}}' + namespace: metallb-system + project: default + source: + path: cluster/metallb-operator/overlays/{{.cluster}} + repoURL: https://github.com/rblundon/homelab.git + targetRevision: HEAD + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - RespectIgnoreDifferences=true + - CreateNamespace=true + managedNamespaceMetadata: + labels: + argocd.argoproj.io/managed-by: argocd + ignoreDifferences: + - group: apps + kind: Deployment + jsonPointers: + - /spec/replicas diff --git a/cluster/metallb-operator/base/bgp_advertisement.yaml b/cluster/metallb-operator/base/bgp_advertisement.yaml new file mode 100644 index 0000000..ef44f99 --- /dev/null +++ b/cluster/metallb-operator/base/bgp_advertisement.yaml @@ -0,0 +1,11 @@ +--- +apiVersion: metallb.io/v1beta1 +kind: BGPAdvertisement +metadata: + name: bgp-advert + namespace: metallb-system +spec: + aggregationLength: 32 + aggregationLengthV6: 128 + ipAddressPools: + - bgp-ip-addresspool diff --git a/cluster/metallb-operator/base/kustomization.yaml b/cluster/metallb-operator/base/kustomization.yaml new file mode 100644 index 0000000..9c6569e --- /dev/null +++ b/cluster/metallb-operator/base/kustomization.yaml @@ -0,0 +1,15 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +commonAnnotations: + argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true + +resources: +# Operator deployment +- namespace.yaml +- subscription.yaml +- operatorgroup.yaml +# Deploy cluster resources +- metallb.yaml +- bgp_advertisement.yaml diff --git a/cluster/metallb-operator/base/metallb.yaml b/cluster/metallb-operator/base/metallb.yaml new file mode 100644 index 0000000..b71dedb --- /dev/null +++ b/cluster/metallb-operator/base/metallb.yaml @@ -0,0 +1,7 @@ +--- +apiVersion: metallb.io/v1beta1 +kind: MetalLB +metadata: + name: metallb + namespace: metallb-system +spec: {} \ No newline at end of file diff --git a/cluster/metallb-operator/base/namespace.yaml b/cluster/metallb-operator/base/namespace.yaml new file mode 100644 index 0000000..1b4d263 --- /dev/null +++ b/cluster/metallb-operator/base/namespace.yaml @@ -0,0 +1,13 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + labels: + kubernetes.io/metadata.name: metallb-system + name: metallb-system + argocd.argoproj.io/managed-by: openshift-gitops-operator + openshift.io/cluster-monitoring: 'true' + name: metallb-system +spec: + finalizers: + - kubernetes \ No newline at end of file diff --git a/cluster/metallb-operator/base/operatorgroup.yaml b/cluster/metallb-operator/base/operatorgroup.yaml new file mode 100644 index 0000000..06a7f02 --- /dev/null +++ b/cluster/metallb-operator/base/operatorgroup.yaml @@ -0,0 +1,9 @@ +--- +apiVersion: operators.coreos.com/v1 +kind: OperatorGroup +metadata: + name: metallb-operator + namespace: metallb-system +#spec: +# targetNamespaces: +# - metallb-system \ No newline at end of file diff --git a/cluster/metallb-operator/base/subscription.yaml b/cluster/metallb-operator/base/subscription.yaml new file mode 100644 index 0000000..bd5a7ab --- /dev/null +++ b/cluster/metallb-operator/base/subscription.yaml @@ -0,0 +1,12 @@ +--- +apiVersion: operators.coreos.com/v1alpha1 +kind: Subscription +metadata: + name: metallb-operator + namespace: metallb-system +spec: + channel: stable + installPlanApproval: Automatic #Manual + name: metallb-operator + source: redhat-operators + sourceNamespace: openshift-marketplace diff --git a/cluster/metallb-operator/external/bgp_peer.yaml b/cluster/metallb-operator/external/bgp_peer.yaml new file mode 100644 index 0000000..ba594a3 --- /dev/null +++ b/cluster/metallb-operator/external/bgp_peer.yaml @@ -0,0 +1,12 @@ +--- +apiVersion: metallb.io/v1beta2 +kind: BGPPeer +metadata: + name: bgp-peer-worlddrive + namespace: metallb-system +spec: + disableMP: false + myASN: 65003 + peerASN: 65002 + peerAddress: 10.1.71.1 + peerPort: 179 \ No newline at end of file diff --git a/cluster/metallb-operator/external/ip_addresspool.yaml b/cluster/metallb-operator/external/ip_addresspool.yaml new file mode 100644 index 0000000..bfd73d9 --- /dev/null +++ b/cluster/metallb-operator/external/ip_addresspool.yaml @@ -0,0 +1,12 @@ +--- +apiVersion: metallb.io/v1beta1 +kind: IPAddressPool +metadata: + name: bgp-ip-addresspool + namespace: metallb-system +spec: + addresses: + - 10.1.182.0/24 + autoAssign: true + avoidBuggyIPs: false + \ No newline at end of file diff --git a/cluster/metallb-operator/internal/bgp_peer.yaml b/cluster/metallb-operator/internal/bgp_peer.yaml new file mode 100644 index 0000000..e949617 --- /dev/null +++ b/cluster/metallb-operator/internal/bgp_peer.yaml @@ -0,0 +1,12 @@ +--- +apiVersion: metallb.io/v1beta2 +kind: BGPPeer +metadata: + name: bgp-peer-worlddrive + namespace: metallb-system +spec: + disableMP: false + myASN: 65001 + peerASN: 65002 + peerAddress: 10.1.71.1 + peerPort: 179 \ No newline at end of file diff --git a/cluster/metallb-operator/internal/ip_addresspool.yaml b/cluster/metallb-operator/internal/ip_addresspool.yaml new file mode 100644 index 0000000..dec26d4 --- /dev/null +++ b/cluster/metallb-operator/internal/ip_addresspool.yaml @@ -0,0 +1,12 @@ +--- +apiVersion: metallb.io/v1beta1 +kind: IPAddressPool +metadata: + name: bgp-ip-addresspool + namespace: metallb-system +spec: + addresses: + - 10.1.82.0/24 + autoAssign: true + avoidBuggyIPs: false + \ No newline at end of file diff --git a/cluster/metallb-operator/internal/kustomization.yaml b/cluster/metallb-operator/internal/kustomization.yaml new file mode 100644 index 0000000..9ba5c3f --- /dev/null +++ b/cluster/metallb-operator/internal/kustomization.yaml @@ -0,0 +1,10 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +commonAnnotations: + argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true + +resources: +- ../../base +- bgp_peer.yaml +- ip_addresspool.yaml \ No newline at end of file