feat: cilium add-mode support (#312)
* feat: cilium add-mode support when cni management by kilo is disable, we can use existing cluster's cni setup thanks to add-on mode https://kilo.squat.ai/docs/introduction#add-on-mode * feat: manifest example for cilium addon mode * fix: apply comment from PR review * fix: add mutex to interface retrieval into flannel addon mode
This commit is contained in:
		
							
								
								
									
										142
									
								
								manifests/kilo-kubeadm-cilium.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										142
									
								
								manifests/kilo-kubeadm-cilium.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,142 @@ | ||||
| apiVersion: v1 | ||||
| kind: ServiceAccount | ||||
| metadata: | ||||
|   name: kilo | ||||
|   namespace: kube-system | ||||
| --- | ||||
| apiVersion: rbac.authorization.k8s.io/v1 | ||||
| kind: ClusterRole | ||||
| metadata: | ||||
|   name: kilo | ||||
| rules: | ||||
| - apiGroups: | ||||
|   - "" | ||||
|   resources: | ||||
|   - nodes | ||||
|   verbs: | ||||
|   - list | ||||
|   - patch | ||||
|   - watch | ||||
| - apiGroups: | ||||
|   - kilo.squat.ai | ||||
|   resources: | ||||
|   - peers | ||||
|   verbs: | ||||
|   - list | ||||
|   - watch | ||||
| - apiGroups: | ||||
|   - apiextensions.k8s.io | ||||
|   resources: | ||||
|   - customresourcedefinitions | ||||
|   verbs: | ||||
|   - get | ||||
| --- | ||||
| apiVersion: rbac.authorization.k8s.io/v1 | ||||
| kind: ClusterRoleBinding | ||||
| metadata: | ||||
|   name: kilo | ||||
| roleRef: | ||||
|   apiGroup: rbac.authorization.k8s.io | ||||
|   kind: ClusterRole | ||||
|   name: kilo | ||||
| subjects: | ||||
|   - kind: ServiceAccount | ||||
|     name: kilo | ||||
|     namespace: kube-system | ||||
| --- | ||||
| apiVersion: apps/v1 | ||||
| kind: DaemonSet | ||||
| metadata: | ||||
|   name: kilo | ||||
|   namespace: kube-system | ||||
|   labels: | ||||
|     app.kubernetes.io/name: kilo | ||||
|     app.kubernetes.io/part-of: kilo | ||||
| spec: | ||||
|   selector: | ||||
|     matchLabels: | ||||
|       app.kubernetes.io/name: kilo | ||||
|       app.kubernetes.io/part-of: kilo | ||||
|   template: | ||||
|     metadata: | ||||
|       labels: | ||||
|         app.kubernetes.io/name: kilo | ||||
|         app.kubernetes.io/part-of: kilo | ||||
|     spec: | ||||
|       serviceAccountName: kilo | ||||
|       hostNetwork: true | ||||
|       containers: | ||||
|       - name: kilo | ||||
|         image: squat/kilo:0.5.0 | ||||
|         args: | ||||
|         - --kubeconfig=/etc/kubernetes/kubeconfig | ||||
|         - --hostname=$(NODE_NAME) | ||||
|         - --cni=false | ||||
|         - --compatibility=cilium | ||||
|         - --local=false | ||||
|         # additional and also optional flag | ||||
|         - --encapsulate=crosssubnet | ||||
|         - --clean-up-interface=true | ||||
|         - --subnet=172.31.254.0/24 | ||||
|         - --log-level=all | ||||
|         env: | ||||
|         - name: NODE_NAME | ||||
|           valueFrom: | ||||
|             fieldRef: | ||||
|               fieldPath: spec.nodeName | ||||
|         ports: | ||||
|         - containerPort: 1107 | ||||
|           name: metrics | ||||
|         securityContext: | ||||
|           privileged: true | ||||
|         volumeMounts: | ||||
|         - name: kilo-dir | ||||
|           mountPath: /var/lib/kilo | ||||
|  | ||||
|         # with kube-proxy configmap | ||||
|         # - name: kubeconfig | ||||
|         #   mountPath: /etc/kubernetes | ||||
|         #   readOnly: true | ||||
|  | ||||
|         # without kube-proxy host kubeconfig binding | ||||
|         - name: kubeconfig | ||||
|           mount_path: /etc/kubernetes/kubeconfig | ||||
|           sub_path: admin.conf | ||||
|           read_only: true | ||||
|  | ||||
|         - name: lib-modules | ||||
|           mountPath: /lib/modules | ||||
|           readOnly: true | ||||
|         - name: xtables-lock | ||||
|           mountPath: /run/xtables.lock | ||||
|           readOnly: false | ||||
|       tolerations: | ||||
|       - effect: NoSchedule | ||||
|         operator: Exists | ||||
|       - effect: NoExecute | ||||
|         operator: Exists | ||||
|       volumes: | ||||
|       - name: kilo-dir | ||||
|         hostPath: | ||||
|           path: /var/lib/kilo | ||||
|  | ||||
|       # with kube-proxy configmap | ||||
|       # - name: kubeconfig | ||||
|       #   configMap: | ||||
|       #     name: kube-proxy | ||||
|       #     items: | ||||
|       #       - key: kubeconfig.conf | ||||
|       #         path: kubeconfig | ||||
|  | ||||
|       # without kube-proxy host kubeconfig binding | ||||
|       - name: kubeconfig | ||||
|         host_path: | ||||
|           path: /etc/kubernetes | ||||
|  | ||||
|       - name: lib-modules | ||||
|         hostPath: | ||||
|           path: /lib/modules | ||||
|       - name: xtables-lock | ||||
|         hostPath: | ||||
|           path: /run/xtables.lock | ||||
|           type: FileOrCreate | ||||
		Reference in New Issue
	
	Block a user