163 lines
4.7 KiB
YAML
163 lines
4.7 KiB
YAML
|
---
|
||
|
kind: ConfigMap
|
||
|
apiVersion: v1
|
||
|
metadata:
|
||
|
name: kube-flannel-windows-cfg
|
||
|
namespace: kube-system
|
||
|
labels:
|
||
|
tier: node
|
||
|
app: flannel
|
||
|
data:
|
||
|
run.ps1: |
|
||
|
$ErrorActionPreference = "Stop";
|
||
|
|
||
|
mkdir -force /host/etc/cni/net.d
|
||
|
mkdir -force /host/etc/kube-flannel
|
||
|
mkdir -force /host/opt/cni/bin
|
||
|
mkdir -force /host/k/flannel
|
||
|
mkdir -force /host/k/flannel/var/run/secrets/kubernetes.io/serviceaccount
|
||
|
|
||
|
$cniJson = get-content /etc/kube-flannel-windows/cni-conf.json | ConvertFrom-Json
|
||
|
$serviceSubnet = yq r /etc/kubeadm-config/ClusterConfiguration networking.serviceSubnet
|
||
|
$podSubnet = yq r /etc/kubeadm-config/ClusterConfiguration networking.podSubnet
|
||
|
$networkJson = wins cli net get | convertfrom-json
|
||
|
|
||
|
$cniJson.delegate.policies[0].Value.ExceptionList = $serviceSubnet, $podSubnet
|
||
|
$cniJson.delegate.policies[1].Value.DestinationPrefix = $serviceSubnet
|
||
|
Set-Content -Path /host/etc/cni/net.d/10-flannel.conf ($cniJson | ConvertTo-Json -depth 100)
|
||
|
|
||
|
cp -force /etc/kube-flannel/net-conf.json /host/etc/kube-flannel
|
||
|
cp -force -recurse /cni/* /host/opt/cni/bin
|
||
|
cp -force /k/flannel/* /host/k/flannel/
|
||
|
cp -force /kube-proxy/kubeconfig.conf /host/k/flannel/kubeconfig.yml
|
||
|
cp -force /var/run/secrets/kubernetes.io/serviceaccount/* /host/k/flannel/var/run/secrets/kubernetes.io/serviceaccount/
|
||
|
wins cli process run --path /k/flannel/setup.exe --args "--mode=overlay --interface=Ethernet"
|
||
|
wins cli route add --addresses 169.254.169.254
|
||
|
wins cli process run --path /k/flannel/flanneld.exe --args "--kube-subnet-mgr --kubeconfig-file /k/flannel/kubeconfig.yml" --envs "POD_NAME=$env:POD_NAME POD_NAMESPACE=$env:POD_NAMESPACE"
|
||
|
cni-conf.json: |
|
||
|
{
|
||
|
"name": "flannel.4096",
|
||
|
"cniVersion": "0.3.0",
|
||
|
"type": "flannel",
|
||
|
"capabilities": {
|
||
|
"dns": true
|
||
|
},
|
||
|
"delegate": {
|
||
|
"type": "win-overlay",
|
||
|
"policies": [
|
||
|
{
|
||
|
"Name": "EndpointPolicy",
|
||
|
"Value": {
|
||
|
"Type": "OutBoundNAT",
|
||
|
"ExceptionList": []
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"Name": "EndpointPolicy",
|
||
|
"Value": {
|
||
|
"Type": "ROUTE",
|
||
|
"DestinationPrefix": "",
|
||
|
"NeedEncap": true
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
---
|
||
|
apiVersion: apps/v1
|
||
|
kind: DaemonSet
|
||
|
metadata:
|
||
|
name: kube-flannel-ds-windows-amd64
|
||
|
labels:
|
||
|
tier: node
|
||
|
app: flannel
|
||
|
namespace: kube-system
|
||
|
spec:
|
||
|
selector:
|
||
|
matchLabels:
|
||
|
app: flannel
|
||
|
template:
|
||
|
metadata:
|
||
|
labels:
|
||
|
tier: node
|
||
|
app: flannel
|
||
|
spec:
|
||
|
affinity:
|
||
|
nodeAffinity:
|
||
|
requiredDuringSchedulingIgnoredDuringExecution:
|
||
|
nodeSelectorTerms:
|
||
|
- matchExpressions:
|
||
|
- key: kubernetes.io/os
|
||
|
operator: In
|
||
|
values:
|
||
|
- windows
|
||
|
- key: kubernetes.io/arch
|
||
|
operator: In
|
||
|
values:
|
||
|
- amd64
|
||
|
hostNetwork: true
|
||
|
serviceAccountName: flannel
|
||
|
tolerations:
|
||
|
- operator: Exists
|
||
|
effect: NoSchedule
|
||
|
containers:
|
||
|
- name: kube-flannel
|
||
|
image: sigwindowstools/flannel:0.12.0
|
||
|
command:
|
||
|
- powershell
|
||
|
args:
|
||
|
- -file
|
||
|
- /etc/kube-flannel-windows/run.ps1
|
||
|
volumeMounts:
|
||
|
- name: wins
|
||
|
mountPath: \\.\pipe\rancher_wins
|
||
|
- name: host
|
||
|
mountPath: /host
|
||
|
- name: kube-proxy
|
||
|
mountPath: /kube-proxy
|
||
|
- name: cni
|
||
|
mountPath: /etc/cni/net.d
|
||
|
- name: flannel-cfg
|
||
|
mountPath: /etc/kube-flannel/
|
||
|
- name: flannel-windows-cfg
|
||
|
mountPath: /etc/kube-flannel-windows/
|
||
|
- name: kubeadm-config
|
||
|
mountPath: /etc/kubeadm-config/
|
||
|
env:
|
||
|
- name: POD_NAME
|
||
|
valueFrom:
|
||
|
fieldRef:
|
||
|
apiVersion: v1
|
||
|
fieldPath: metadata.name
|
||
|
- name: POD_NAMESPACE
|
||
|
valueFrom:
|
||
|
fieldRef:
|
||
|
apiVersion: v1
|
||
|
fieldPath: metadata.namespace
|
||
|
volumes:
|
||
|
- name: opt
|
||
|
hostPath:
|
||
|
path: /opt
|
||
|
- name: host
|
||
|
hostPath:
|
||
|
path: /
|
||
|
- name: cni
|
||
|
hostPath:
|
||
|
path: /etc
|
||
|
- name: flannel-cfg
|
||
|
configMap:
|
||
|
name: kube-flannel-cfg
|
||
|
- name: flannel-windows-cfg
|
||
|
configMap:
|
||
|
name: kube-flannel-windows-cfg
|
||
|
- name: kube-proxy
|
||
|
configMap:
|
||
|
name: kube-proxy
|
||
|
- name: kubeadm-config
|
||
|
configMap:
|
||
|
name: kubeadm-config
|
||
|
- name: wins
|
||
|
hostPath:
|
||
|
path: \\.\pipe\rancher_wins
|
||
|
type: null
|