From 52346483e4e0ccc98b064c8cac8d7504436326d5 Mon Sep 17 00:00:00 2001 From: Ryan Cavicchioni Date: Wed, 5 Feb 2025 21:05:29 -0600 Subject: [PATCH] k8s: add kube-vip-cloud-controller --- .../kube-vip-cloud-controller/configmap.yaml | 7 ++ .../kube-vip-cloud-controller.yaml | 88 +++++++++++++++++++ .../kustomization.yaml | 6 ++ 3 files changed, 101 insertions(+) create mode 100644 clusters/k8s-cluster/kube-vip-cloud-controller/configmap.yaml create mode 100644 clusters/k8s-cluster/kube-vip-cloud-controller/kube-vip-cloud-controller.yaml create mode 100644 clusters/k8s-cluster/kube-vip-cloud-controller/kustomization.yaml diff --git a/clusters/k8s-cluster/kube-vip-cloud-controller/configmap.yaml b/clusters/k8s-cluster/kube-vip-cloud-controller/configmap.yaml new file mode 100644 index 0000000..769a248 --- /dev/null +++ b/clusters/k8s-cluster/kube-vip-cloud-controller/configmap.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: kubevip + namespace: kube-system +data: + cidr-global: 10.100.101.10-10.100.101.254 diff --git a/clusters/k8s-cluster/kube-vip-cloud-controller/kube-vip-cloud-controller.yaml b/clusters/k8s-cluster/kube-vip-cloud-controller/kube-vip-cloud-controller.yaml new file mode 100644 index 0000000..476a634 --- /dev/null +++ b/clusters/k8s-cluster/kube-vip-cloud-controller/kube-vip-cloud-controller.yaml @@ -0,0 +1,88 @@ +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 diff --git a/clusters/k8s-cluster/kube-vip-cloud-controller/kustomization.yaml b/clusters/k8s-cluster/kube-vip-cloud-controller/kustomization.yaml new file mode 100644 index 0000000..373dbdf --- /dev/null +++ b/clusters/k8s-cluster/kube-vip-cloud-controller/kustomization.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - kube-vip-cloud-controller.yaml + - configmap.yaml