Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade Canal to v3.20 with k8s 1.22 support #12584

Merged
merged 2 commits into from
Oct 24, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cmd/kops/integration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -377,7 +377,7 @@ func TestPrivateCiliumAdvanced(t *testing.T) {
func TestPrivateCanal(t *testing.T) {
newIntegrationTest("privatecanal.example.com", "privatecanal").
withPrivate().
withAddons("networking.projectcalico.org.canal-k8s-1.16", dnsControllerAddon).
withAddons("networking.projectcalico.org.canal-k8s-1.22", "aws-ebs-csi-driver.addons.k8s.io-k8s-1.17", dnsControllerAddon).
runTestTerraformAWS(t)
}

Expand Down
4 changes: 0 additions & 4 deletions pkg/apis/kops/validation/validation.go
Original file line number Diff line number Diff line change
Expand Up @@ -815,10 +815,6 @@ func validateNetworkingCanal(c *kops.Cluster, v *kops.CanalNetworkingSpec, fldPa
allErrs = append(allErrs, IsValidValue(fldPath.Child("iptablesBackend"), &v.IptablesBackend, valid)...)
}

if c.IsKubernetesGTE("1.22") {
allErrs = append(allErrs, field.Forbidden(fldPath, "Canal is supported only for Kubernetes 1.21 and lower"))
}

return allErrs
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,8 @@ ensure-install-dir
cat > conf/cluster_spec.yaml << '__EOF_CLUSTER_SPEC'
cloudConfig:
awsEBSCSIDriver:
enabled: false
enabled: true
version: v1.4.0
manageStorageClasses: true
containerRuntime: containerd
containerd:
Expand All @@ -136,9 +137,9 @@ docker:
encryptionConfig: null
etcdClusters:
events:
version: 3.4.13
version: 3.5.0
main:
version: 3.4.13
version: 3.5.0
kubeAPIServer:
allowPrivileged: true
anonymousAuth: false
Expand All @@ -162,7 +163,7 @@ kubeAPIServer:
- https://127.0.0.1:4001
etcdServersOverrides:
- /events#https://127.0.0.1:4002
image: k8s.gcr.io/kube-apiserver:v1.21.0
image: k8s.gcr.io/kube-apiserver:v1.22.0
kubeletPreferredAddressTypes:
- InternalIP
- Hostname
Expand All @@ -188,7 +189,9 @@ kubeControllerManager:
clusterCIDR: 100.96.0.0/11
clusterName: privatecanal.example.com
configureCloudRoutes: false
image: k8s.gcr.io/kube-controller-manager:v1.21.0
featureGates:
CSIMigrationAWS: "true"
image: k8s.gcr.io/kube-controller-manager:v1.22.0
leaderElection:
leaderElect: true
logLevel: 2
Expand All @@ -197,10 +200,10 @@ kubeProxy:
clusterCIDR: 100.96.0.0/11
cpuRequest: 100m
hostnameOverride: '@aws'
image: k8s.gcr.io/kube-proxy:v1.21.0
image: k8s.gcr.io/kube-proxy:v1.22.0
logLevel: 2
kubeScheduler:
image: k8s.gcr.io/kube-scheduler:v1.21.0
image: k8s.gcr.io/kube-scheduler:v1.22.0
leaderElection:
leaderElect: true
logLevel: 2
Expand All @@ -213,12 +216,16 @@ kubelet:
clusterDomain: cluster.local
enableDebuggingHandlers: true
evictionHard: memory.available<100Mi,nodefs.available<10%,nodefs.inodesFree<5%,imagefs.available<10%,imagefs.inodesFree<5%
featureGates:
CSIMigrationAWS: "true"
InTreePluginAWSUnregister: "true"
hostnameOverride: '@aws'
kubeconfigPath: /var/lib/kubelet/kubeconfig
logLevel: 2
networkPluginName: cni
nonMasqueradeCIDR: 100.64.0.0/10
podManifestPath: /etc/kubernetes/manifests
protectKernelDefaults: true
masterKubelet:
anonymousAuth: false
cgroupDriver: systemd
Expand All @@ -228,12 +235,16 @@ masterKubelet:
clusterDomain: cluster.local
enableDebuggingHandlers: true
evictionHard: memory.available<100Mi,nodefs.available<10%,nodefs.inodesFree<5%,imagefs.available<10%,imagefs.inodesFree<5%
featureGates:
CSIMigrationAWS: "true"
InTreePluginAWSUnregister: "true"
hostnameOverride: '@aws'
kubeconfigPath: /var/lib/kubelet/kubeconfig
logLevel: 2
networkPluginName: cni
nonMasqueradeCIDR: 100.64.0.0/10
podManifestPath: /etc/kubernetes/manifests
protectKernelDefaults: true
registerSchedulable: false

__EOF_CLUSTER_SPEC
Expand All @@ -243,7 +254,7 @@ CloudProvider: aws
ConfigBase: memfs://clusters.example.com/privatecanal.example.com
InstanceGroupName: master-us-test-1a
InstanceGroupRole: Master
NodeupConfigHash: KYvsy5BReL0Xr64Y49pvZchubc2wvbhQhVQHvRI5Exw=
NodeupConfigHash: cDWy7b28g2HeI4L2fYq3N4v96GeAjsauylqNFQvNTEI=

__EOF_KUBE_ENV

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,8 @@ ensure-install-dir
cat > conf/cluster_spec.yaml << '__EOF_CLUSTER_SPEC'
cloudConfig:
awsEBSCSIDriver:
enabled: false
enabled: true
version: v1.4.0
manageStorageClasses: true
containerRuntime: containerd
containerd:
Expand All @@ -137,7 +138,7 @@ kubeProxy:
clusterCIDR: 100.96.0.0/11
cpuRequest: 100m
hostnameOverride: '@aws'
image: k8s.gcr.io/kube-proxy:v1.21.0
image: k8s.gcr.io/kube-proxy:v1.22.0
logLevel: 2
kubelet:
anonymousAuth: false
Expand All @@ -148,12 +149,16 @@ kubelet:
clusterDomain: cluster.local
enableDebuggingHandlers: true
evictionHard: memory.available<100Mi,nodefs.available<10%,nodefs.inodesFree<5%,imagefs.available<10%,imagefs.inodesFree<5%
featureGates:
CSIMigrationAWS: "true"
InTreePluginAWSUnregister: "true"
hostnameOverride: '@aws'
kubeconfigPath: /var/lib/kubelet/kubeconfig
logLevel: 2
networkPluginName: cni
nonMasqueradeCIDR: 100.64.0.0/10
podManifestPath: /etc/kubernetes/manifests
protectKernelDefaults: true

__EOF_CLUSTER_SPEC

Expand All @@ -162,7 +167,7 @@ CloudProvider: aws
ConfigBase: memfs://clusters.example.com/privatecanal.example.com
InstanceGroupName: nodes
InstanceGroupRole: Node
NodeupConfigHash: GbTQ9y60njLR8mZO898FmHzRH7QpWPe3zvOE4j5T0UE=
NodeupConfigHash: yaHIJa6pnpGnjNVhmc6Q+KUAQEfb2aZQnSNqwggjxms=

__EOF_KUBE_ENV

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ spec:
channel: stable
cloudConfig:
awsEBSCSIDriver:
enabled: false
enabled: true
version: v1.4.0
manageStorageClasses: true
cloudProvider: aws
clusterDNSDomain: cluster.local
Expand All @@ -33,14 +34,14 @@ spec:
- instanceGroup: master-us-test-1a
name: us-test-1a
name: main
version: 3.4.13
version: 3.5.0
- backups:
backupStore: memfs://clusters.example.com/privatecanal.example.com/backups/etcd/events
etcdMembers:
- instanceGroup: master-us-test-1a
name: us-test-1a
name: events
version: 3.4.13
version: 3.5.0
externalDns:
provider: dns-controller
iam:
Expand Down Expand Up @@ -69,7 +70,7 @@ spec:
- https://127.0.0.1:4001
etcdServersOverrides:
- /events#https://127.0.0.1:4002
image: k8s.gcr.io/kube-apiserver:v1.21.0
image: k8s.gcr.io/kube-apiserver:v1.22.0
kubeletPreferredAddressTypes:
- InternalIP
- Hostname
Expand All @@ -95,7 +96,9 @@ spec:
clusterCIDR: 100.96.0.0/11
clusterName: privatecanal.example.com
configureCloudRoutes: false
image: k8s.gcr.io/kube-controller-manager:v1.21.0
featureGates:
CSIMigrationAWS: "true"
image: k8s.gcr.io/kube-controller-manager:v1.22.0
leaderElection:
leaderElect: true
logLevel: 2
Expand All @@ -119,10 +122,10 @@ spec:
clusterCIDR: 100.96.0.0/11
cpuRequest: 100m
hostnameOverride: '@aws'
image: k8s.gcr.io/kube-proxy:v1.21.0
image: k8s.gcr.io/kube-proxy:v1.22.0
logLevel: 2
kubeScheduler:
image: k8s.gcr.io/kube-scheduler:v1.21.0
image: k8s.gcr.io/kube-scheduler:v1.22.0
leaderElection:
leaderElect: true
logLevel: 2
Expand All @@ -135,15 +138,19 @@ spec:
clusterDomain: cluster.local
enableDebuggingHandlers: true
evictionHard: memory.available<100Mi,nodefs.available<10%,nodefs.inodesFree<5%,imagefs.available<10%,imagefs.inodesFree<5%
featureGates:
CSIMigrationAWS: "true"
InTreePluginAWSUnregister: "true"
hostnameOverride: '@aws'
kubeconfigPath: /var/lib/kubelet/kubeconfig
logLevel: 2
networkPluginName: cni
nonMasqueradeCIDR: 100.64.0.0/10
podManifestPath: /etc/kubernetes/manifests
protectKernelDefaults: true
kubernetesApiAccess:
- 0.0.0.0/0
kubernetesVersion: 1.21.0
kubernetesVersion: 1.22.0
masterInternalName: api.internal.privatecanal.example.com
masterKubelet:
anonymousAuth: false
Expand All @@ -154,12 +161,16 @@ spec:
clusterDomain: cluster.local
enableDebuggingHandlers: true
evictionHard: memory.available<100Mi,nodefs.available<10%,nodefs.inodesFree<5%,imagefs.available<10%,imagefs.inodesFree<5%
featureGates:
CSIMigrationAWS: "true"
InTreePluginAWSUnregister: "true"
hostnameOverride: '@aws'
kubeconfigPath: /var/lib/kubelet/kubeconfig
logLevel: 2
networkPluginName: cni
nonMasqueradeCIDR: 100.64.0.0/10
podManifestPath: /etc/kubernetes/manifests
protectKernelDefaults: true
registerSchedulable: false
masterPublicName: api.privatecanal.example.com
networkCIDR: 172.20.0.0/16
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"memberCount": 1,
"etcdVersion": "3.4.13"
"etcdVersion": "3.5.0"
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"memberCount": 1,
"etcdVersion": "3.4.13"
"etcdVersion": "3.5.0"
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ APIServerConfig:
- https://127.0.0.1:4001
etcdServersOverrides:
- /events#https://127.0.0.1:4002
image: k8s.gcr.io/kube-apiserver:v1.21.0
image: k8s.gcr.io/kube-apiserver:v1.22.0
kubeletPreferredAddressTypes:
- InternalIP
- Hostname
Expand Down Expand Up @@ -52,16 +52,16 @@ APIServerConfig:
-----END RSA PUBLIC KEY-----
Assets:
amd64:
- 681c81b7934ae2bf38b9f12d891683972d1fbbf6d7d97e50940a47b139d41b35@https://storage.googleapis.com/kubernetes-release/release/v1.21.0/bin/linux/amd64/kubelet
- 9f74f2fa7ee32ad07e17211725992248470310ca1988214518806b39b1dad9f0@https://storage.googleapis.com/kubernetes-release/release/v1.21.0/bin/linux/amd64/kubectl
- 977824932d5667c7a37aa6a3cbba40100a6873e7bd97e83e8be837e3e7afd0a8@https://storage.googleapis.com/k8s-artifacts-cni/release/v0.8.7/cni-plugins-linux-amd64-v0.8.7.tgz
- fec5c596f7f815f17f5d7d955e9707df1ef02a2ca5e788b223651f83376feb7f@https://storage.googleapis.com/kubernetes-release/release/v1.22.0/bin/linux/amd64/kubelet
- 703e70d49b82271535bc66bc7bd469a58c11d47f188889bd37101c9772f14fa1@https://storage.googleapis.com/kubernetes-release/release/v1.22.0/bin/linux/amd64/kubectl
- 962100bbc4baeaaa5748cdbfce941f756b1531c2eadb290129401498bfac21e7@https://storage.googleapis.com/k8s-artifacts-cni/release/v0.9.1/cni-plugins-linux-amd64-v0.9.1.tgz
- a4a4af4776316833cad5996c66d59f8b4a2af4da716b7902b7a2d5f5ac362dcc@https://github.com/containerd/containerd/releases/download/v1.4.11/cri-containerd-cni-1.4.11-linux-amd64.tar.gz
- f90ed6dcef534e6d1ae17907dc7eb40614b8945ad4af7f0e98d2be7cde8165c6@https://artifacts.k8s.io/binaries/kops/1.21.0-alpha.1/linux/amd64/protokube,https://github.com/kubernetes/kops/releases/download/v1.21.0-alpha.1/protokube-linux-amd64
- 9992e7eb2a2e93f799e5a9e98eb718637433524bc65f630357201a79f49b13d0@https://artifacts.k8s.io/binaries/kops/1.21.0-alpha.1/linux/amd64/channels,https://github.com/kubernetes/kops/releases/download/v1.21.0-alpha.1/channels-linux-amd64
arm64:
- 17832b192be5ea314714f7e16efd5e5f65347974bbbf41def6b02f68931380c4@https://storage.googleapis.com/kubernetes-release/release/v1.21.0/bin/linux/arm64/kubelet
- a4dd7100f547a40d3e2f83850d0bab75c6ea5eb553f0a80adcf73155bef1fd0d@https://storage.googleapis.com/kubernetes-release/release/v1.21.0/bin/linux/arm64/kubectl
- ae13d7b5c05bd180ea9b5b68f44bdaa7bfb41034a2ef1d68fd8e1259797d642f@https://storage.googleapis.com/k8s-artifacts-cni/release/v0.8.7/cni-plugins-linux-arm64-v0.8.7.tgz
- cea637a7da4f1097b16b0195005351c07032a820a3d64c3ff326b9097cfac930@https://storage.googleapis.com/kubernetes-release/release/v1.22.0/bin/linux/arm64/kubelet
- 8d9cc92dcc942f5ea2b2fc93c4934875d9e0e8ddecbde24c7d4c4e092cfc7afc@https://storage.googleapis.com/kubernetes-release/release/v1.22.0/bin/linux/arm64/kubectl
- ef17764ffd6cdcb16d76401bac1db6acc050c9b088f1be5efa0e094ea3b01df0@https://storage.googleapis.com/k8s-artifacts-cni/release/v0.9.1/cni-plugins-linux-arm64-v0.9.1.tgz
- 0259f8b6572f02cf0dafd7388ca0e4adfdbbfaba81cfb1b7443e89fccbed22c7@https://download.docker.com/linux/static/stable/aarch64/docker-20.10.9.tgz
- 2f599c3d54f4c4bdbcc95aaf0c7b513a845d8f9503ec5b34c9f86aa1bc34fc0c@https://artifacts.k8s.io/binaries/kops/1.21.0-alpha.1/linux/arm64/protokube,https://github.com/kubernetes/kops/releases/download/v1.21.0-alpha.1/protokube-linux-arm64
- 9d842e3636a95de2315cdea2be7a282355aac0658ef0b86d5dc2449066538f13@https://artifacts.k8s.io/binaries/kops/1.21.0-alpha.1/linux/arm64/channels,https://github.com/kubernetes/kops/releases/download/v1.21.0-alpha.1/channels-linux-arm64
Expand Down Expand Up @@ -239,6 +239,9 @@ KubeletConfig:
clusterDomain: cluster.local
enableDebuggingHandlers: true
evictionHard: memory.available<100Mi,nodefs.available<10%,nodefs.inodesFree<5%,imagefs.available<10%,imagefs.inodesFree<5%
featureGates:
CSIMigrationAWS: "true"
InTreePluginAWSUnregister: "true"
hostnameOverride: '@aws'
kubeconfigPath: /var/lib/kubelet/kubeconfig
logLevel: 2
Expand All @@ -251,6 +254,7 @@ KubeletConfig:
node.kubernetes.io/exclude-from-external-load-balancers: ""
nonMasqueradeCIDR: 100.64.0.0/10
podManifestPath: /etc/kubernetes/manifests
protectKernelDefaults: true
registerSchedulable: false
UpdatePolicy: automatic
channels:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
Assets:
amd64:
- 681c81b7934ae2bf38b9f12d891683972d1fbbf6d7d97e50940a47b139d41b35@https://storage.googleapis.com/kubernetes-release/release/v1.21.0/bin/linux/amd64/kubelet
- 9f74f2fa7ee32ad07e17211725992248470310ca1988214518806b39b1dad9f0@https://storage.googleapis.com/kubernetes-release/release/v1.21.0/bin/linux/amd64/kubectl
- 977824932d5667c7a37aa6a3cbba40100a6873e7bd97e83e8be837e3e7afd0a8@https://storage.googleapis.com/k8s-artifacts-cni/release/v0.8.7/cni-plugins-linux-amd64-v0.8.7.tgz
- fec5c596f7f815f17f5d7d955e9707df1ef02a2ca5e788b223651f83376feb7f@https://storage.googleapis.com/kubernetes-release/release/v1.22.0/bin/linux/amd64/kubelet
- 703e70d49b82271535bc66bc7bd469a58c11d47f188889bd37101c9772f14fa1@https://storage.googleapis.com/kubernetes-release/release/v1.22.0/bin/linux/amd64/kubectl
- 962100bbc4baeaaa5748cdbfce941f756b1531c2eadb290129401498bfac21e7@https://storage.googleapis.com/k8s-artifacts-cni/release/v0.9.1/cni-plugins-linux-amd64-v0.9.1.tgz
- a4a4af4776316833cad5996c66d59f8b4a2af4da716b7902b7a2d5f5ac362dcc@https://github.com/containerd/containerd/releases/download/v1.4.11/cri-containerd-cni-1.4.11-linux-amd64.tar.gz
arm64:
- 17832b192be5ea314714f7e16efd5e5f65347974bbbf41def6b02f68931380c4@https://storage.googleapis.com/kubernetes-release/release/v1.21.0/bin/linux/arm64/kubelet
- a4dd7100f547a40d3e2f83850d0bab75c6ea5eb553f0a80adcf73155bef1fd0d@https://storage.googleapis.com/kubernetes-release/release/v1.21.0/bin/linux/arm64/kubectl
- ae13d7b5c05bd180ea9b5b68f44bdaa7bfb41034a2ef1d68fd8e1259797d642f@https://storage.googleapis.com/k8s-artifacts-cni/release/v0.8.7/cni-plugins-linux-arm64-v0.8.7.tgz
- cea637a7da4f1097b16b0195005351c07032a820a3d64c3ff326b9097cfac930@https://storage.googleapis.com/kubernetes-release/release/v1.22.0/bin/linux/arm64/kubelet
- 8d9cc92dcc942f5ea2b2fc93c4934875d9e0e8ddecbde24c7d4c4e092cfc7afc@https://storage.googleapis.com/kubernetes-release/release/v1.22.0/bin/linux/arm64/kubectl
- ef17764ffd6cdcb16d76401bac1db6acc050c9b088f1be5efa0e094ea3b01df0@https://storage.googleapis.com/k8s-artifacts-cni/release/v0.9.1/cni-plugins-linux-arm64-v0.9.1.tgz
- 0259f8b6572f02cf0dafd7388ca0e4adfdbbfaba81cfb1b7443e89fccbed22c7@https://download.docker.com/linux/static/stable/aarch64/docker-20.10.9.tgz
CAs:
kubernetes-ca: |
Expand Down Expand Up @@ -46,6 +46,9 @@ KubeletConfig:
clusterDomain: cluster.local
enableDebuggingHandlers: true
evictionHard: memory.available<100Mi,nodefs.available<10%,nodefs.inodesFree<5%,imagefs.available<10%,imagefs.inodesFree<5%
featureGates:
CSIMigrationAWS: "true"
InTreePluginAWSUnregister: "true"
hostnameOverride: '@aws'
kubeconfigPath: /var/lib/kubelet/kubeconfig
logLevel: 2
Expand All @@ -55,6 +58,7 @@ KubeletConfig:
node-role.kubernetes.io/node: ""
nonMasqueradeCIDR: 100.64.0.0/10
podManifestPath: /etc/kubernetes/manifests
protectKernelDefaults: true
UpdatePolicy: automatic
channels:
- memfs://clusters.example.com/privatecanal.example.com/addons/bootstrap-channel.yaml
Expand Down
Loading