The procedure has been tested on a ubuntu 22.04LTS 64GB Ram.
RKE2 config
Install multus and calico CNI
/etc/rancher/rke2/config.yaml
cni: - multus - calico
Install metallb (LoadBalancer)
Prepare metallb_config.yaml
metallb_config.yaml
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
namespace: metallb-system
name: default-pool
spec:
addresses:
- 10.10.6.240-10.10.6.250 # Adjust to your available range
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
namespace: metallb-system
name: l2
spec:
ipAddressPools:
- default-pool
RKE
## metallb rke2 apply -f https://raw.githubusercontent.com/metallb/metallb/v0.15.0/config/manifests/metallb-native.yaml rke2 apply -f metallb_config.yaml
Install local_path storage class
RKE
kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/deploy/local-path-storage.yaml
Install ARGOCD
prepare argocd_ingress.yaml
argocd_ingress.yaml
# argocd-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: argocd-ingress
namespace: argocd
annotations:
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
rules:
- host: argocd.da
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: argocd-server
port:
number: 443
RKE
kubectl create namespace argocd kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml ### wait kubectl get pod -n argocd -w kubectl apply -f argocd_ingress.yaml local_path storage class: kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/deploy/local-path-storage.yaml