-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Change Cilium templates to standalone version #7474
Conversation
This is great! It would be good to remove the code that opens the etcd ports to the nodes as well. |
b6435d3
to
8889400
Compare
24d16e2
to
0db3311
Compare
6bbdeba
to
5caf4b7
Compare
/retest |
c80742a
to
a38d09f
Compare
/test pull-kops-verify-bazel |
a38d09f
to
6617f6c
Compare
This commit doesn't include any Cilium configuration, just takes the quick install yaml from https://github.com/cilium/cilium/blob/v1.6.0/install/kubernetes/quick-install.yaml Signed-off-by: Maciej Kwiek <[email protected]>
6617f6c
to
d2ebd0f
Compare
k8s/crds/kops_v1alpha2_cluster.yaml
Outdated
@@ -118,10 +122,26 @@ spec: | |||
properties: | |||
aws: | |||
properties: | |||
cpuLimit: | |||
description: CPULimit CPU limit of AWS IAM Authenticator container. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why are these limits required for cilium?
k8s/crds/kops_v1alpha2_cluster.yaml
Outdated
@@ -654,6 +674,9 @@ spec: | |||
items: | |||
type: string | |||
type: array | |||
admissionControlConfigFile: | |||
description: AdmissionControlConfigFile is the location of the admission-control-config-file |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this really required to install cilium?
k8s/crds/kops_v1alpha2_cluster.yaml
Outdated
description: The duration to cache authorized responses from the | ||
webhook token authorizer. Default is 30s. (default 30s) | ||
type: string | ||
authorizationWebhookConfigFile: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
And once again, looks like you mixed some upstream things into one PR?
- bpfCTGlobalTCPMax | ||
- bpfCTGlobalAnyMax | ||
- preallocateBPFMaps | ||
- sidecarIstioProxyImage |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
istio for cilium? correct me if I am wrong but they don't belong together I feel?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cilium can run alongside istio, docs are here: http://docs.cilium.io/en/v1.6/gettingstarted/istio
Signed-off-by: Maciej Kwiek <[email protected]>
Signed-off-by: Maciej Kwiek <[email protected]>
Signed-off-by: Maciej Kwiek <[email protected]>
09fba19
to
7fd24b9
Compare
@chrisz100 I did have some weird changes in this PR, thanks for pointing it out! Should be all good now. |
/retest |
/lgtm |
It’s been long enough for people to also review. |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: chrisz100, nebril The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
I was planning to review this after all the current CVE's and Centos fixes were in but oh well. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have a few concerns with this being merged since it's a pretty significant update in cilium and we're forcing it upon all users, even 1.7 and up? I personally would prefer this to be a new manifest that only works with 1.13 or 1.14 and up, that way we encourage people to move to new versions as they upgrade.
What's the ugprade path between 1.0 and 1.6?
Also for this to apply to existing clusters, this will also need to up updated accordingly
kops/upup/pkg/fi/cloudup/bootstrapchannelbuilder.go
Lines 1091 to 1122 in 3b9821d
if b.cluster.Spec.Networking.Cilium != nil { | |
key := "networking.cilium.io" | |
version := "v1.0-kops.2" | |
{ | |
id := "k8s-1.7" | |
location := key + "/" + id + ".yaml" | |
addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ | |
Name: fi.String(key), | |
Version: fi.String(version), | |
Selector: networkingSelector, | |
Manifest: fi.String(location), | |
KubernetesVersion: ">=1.7.0 <1.12.0", | |
Id: id, | |
}) | |
} | |
{ | |
id := "k8s-1.12" | |
location := key + "/" + id + ".yaml" | |
addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{ | |
Name: fi.String(key), | |
Version: fi.String(version), | |
Selector: networkingSelector, | |
Manifest: fi.String(location), | |
KubernetesVersion: ">=1.12.0", | |
Id: id, | |
}) | |
} | |
} |
@@ -155,7 +155,7 @@ type AmazonVPCNetworkingSpec struct { | |||
ImageName string `json:"imageName,omitempty"` | |||
} | |||
|
|||
const CiliumDefaultVersion = "v1.0-stable" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are we really upgrading from 1.0 to 1.6.1?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What’s more concerning to me: did we really not care about cilium for 6 minor versions?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Anyone is welcome to update at anytime, but especially when leaping versions we need to ensure a smooth upgrade path for all users.
@@ -1,412 +1,136 @@ | |||
{{- $etcd_scheme := EtcdScheme }} | |||
kind: ConfigMap | |||
apiVersion: v1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
According to https://github.com/kubernetes/kops/pull/7474/files#diff-dec2adb888d136e5fcab51a2af69403dL425 Cilium doesn't support 1.7 so this shouldn't be updated? Also I really don't like forcing old users to this new version, especially when they really shouldn't be using k8s that's this old anyway.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I’m a little confused with that statement: people should use sth that old so we shouldn’t force people to update?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If a user is still running k8s 1.7 - k8s 1.12, forcing a cilium upgrade of this magnitude is likely aggressive and has a strong likelihood of causing instability.
@nebril Can you test an upgrade from before this PR to post this PR? We might need to break this into smaller upgrades: According to https://docs.cilium.io/en/v1.5/install/upgrade/#upgrading-from-1-2-x-to-1-3-y
|
The change with the most impact is probably changing state store from etcd to CRD. There will be network disruptions for the brief time cilium rebuilds the state. I did a test upgrade from kops 1.13.0 to master now. The add-on version isn't bumped, so the manifests aren't applied. But even with the version bumped, nothing happens. So that is at least one thing to look into. What else needs to happen for the manifests to be applied? |
Cilium resources also miss So that should be added to the manifests. But even when I label existing resources and then update, it doesn't change the daemonset. |
@mikesplain the biggest issue is that Cilium addon was actually broken for several versions since kops closed access to etcd clusters for addons (I don't remember which exact kops version it happened). I was trying to make a PR with etcd operator, but etcd operator is still hardly production ready, so instead I waited for Cilium to support being backed by CRDs, which landed in 1.6. |
…4-origin-release-1.15 Automated cherry pick of #7474: Change Cilium templates to standalone version
Based on
https://github.com/cilium/cilium/blob/v1.6.0/install/kubernetes/quick-install.yaml