Skip to content
This repository has been archived by the owner on Jan 11, 2023. It is now read-only.

Update Calico to 3.1 #2521

Merged
merged 7 commits into from
Apr 23, 2018
Merged

Update Calico to 3.1 #2521

merged 7 commits into from
Apr 23, 2018

Conversation

dtzar
Copy link
Contributor

@dtzar dtzar commented Mar 24, 2018

What this PR does / why we need it:
Updates Calico from 2.6 to the latest 3.0 which enables additional functionality.

Which issue this PR fixes
This lays the foundation for the requested IPAM support via these issues
#2227
#1930

Potentially fixes #1621
fixes #2202

If applicable:

  • documentation
  • network policy e2e test(s)
  • tested backward compatibility (ie. deploy with the previous version, upgrade with this branch)
Updates Calico from 2.6 to the latest 3.0

@tmjd
Copy link

tmjd commented Mar 27, 2018

LGTM from a Calico perspective for the changes to parts/k8s/addons/kubernetesmasteraddons-calico-daemonset.yaml

@jackfrancis
Copy link
Member

@dtzar is this PR ready for further testing/merging when the merge conflict is fixed?

@dtzar
Copy link
Contributor Author

dtzar commented Apr 2, 2018

@jackfrancis - Resolved the merge conflict. This is ready for further testing/merging. Would be great to let Circle CI do all the existing e2e tests as they are now.

Sorry, I just haven't had a chance to work on creating a new e2e test for Calico.

@jackfrancis
Copy link
Member

We'll do the standard drill, and then validate that examples/networkpolicy/kubernetes-calico.json can build a working k8s cluster.

As you mention, we don't have calico-specific E2E validations yet, do you want to wait for those to merge? What's your manual testing telling you at this point?

@dtzar
Copy link
Contributor Author

dtzar commented Apr 2, 2018

I've only manually tested a K8s 1.9 cluster a couple times by going through the advanced network policy guide and everything worked great there in regards to Calico. There should be zero effective change on 1.7 (since this code won't hit there). It would be good to manually test Calico on 1.8 and possibly 1.10 if we want to be safe (it should work!).

It would be ideal to have the e2e tests, but I don't want nor do I think we need to wait for those to merge since this improves things significantly from where we are at today.

@@ -10,19 +10,13 @@
"masterProfile": {
"count": 1,
"dnsPrefix": "",
"vmSize": "Standard_D2_v2"
"vmSize": "Standard_DS2_v2"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any reason for the change to the VM SKU in the example api model?

Copy link
Contributor Author

@dtzar dtzar Apr 2, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, this uses the faster premium storage based VMs and is the default on many other examples.

@jackfrancis
Copy link
Member

@dtzar How are you getting past the lack of CNI implementation in your testing?

azureuser@k8s-master-19545415-0:~$ ls -la /etc/cni/net.d
ls: cannot access '/etc/cni/net.d': No such file or directory

I'm getting this in kubelet logs:

cni.go:196] Unable to update cni config: No networks found in /etc/cni/net.d

tldr; current calico policy sets kubelet runtime config to --network-policy=cni. How does this work in this implementation of calico?

# Deprecated in 1.10, Removed in 1.11. kubernetes.io/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods
scheduler.alpha.kubernetes.io/critical-pod: ''
spec:
annotations:
Copy link
Contributor Author

@dtzar dtzar Apr 2, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like I gave myself a problem here which I didn't catch because I wasn't using the updated acs-engine binary with the change. Fixing now.

@dtzar
Copy link
Contributor Author

dtzar commented Apr 3, 2018

After my latest fix, I validated manually that calico worked properly with the advanced policy demo on a 1.8 cluster. Something went wrong on 1.10 - looking into this now.

@dtzar
Copy link
Contributor Author

dtzar commented Apr 3, 2018

Wasn't able to fix the 1.10 issue, but did check again that 1.9 works also.

@codecov
Copy link

codecov bot commented Apr 23, 2018

Codecov Report

Merging #2521 into master will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff           @@
##           master    #2521   +/-   ##
=======================================
  Coverage   47.03%   47.03%           
=======================================
  Files          86       86           
  Lines       12715    12715           
=======================================
  Hits         5980     5980           
  Misses       6182     6182           
  Partials      553      553

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8677e78...bf7bcb9. Read the comment docs.

@dtzar dtzar changed the title Update Calico to 3.0 Update Calico to 3.1 Apr 23, 2018
@CecileRobertMichon CecileRobertMichon mentioned this pull request Apr 23, 2018
3 tasks
@dtzar
Copy link
Contributor Author

dtzar commented Apr 23, 2018

I updated to the latest 3.1 Calico, rebased from master with a new binary, and tested it manually against a 1.8, 1.9, and 1.10 cluster and all work great.

I also started working on an e2e test, but would like to merge that in a separate PR as I expect it will take me more time to complete.

Copy link
Member

@jackfrancis jackfrancis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
3 participants