-
Notifications
You must be signed in to change notification settings - Fork 560
Add support for kubernetes --feature-gates in template #2021
Comments
@jackfrancis, @CecileRobertMichon, @JackQuincy - would love your thoughts on the approach :-) |
@croomes - does this look like it would fit your requirements? |
Looking at the implementation, "kubernetesConfig": {
"kubeletConfig": {
"--cluster-dns": "172.17.1.11",
"--max-pods": "30",
"--feature-gates": "MountPropagation=true,TaintNodesByCondition=true",
<etc...>
},
"apiserverConfig": {
"--storage-backend": "etcd3",
"--feature-gates": "MountPropagation=true",
<etc...>
}
} The implementation would need to split the feature gates that are specified (in order to apply the Accelerators=true on the agents for >= v1.6.0) |
@jackfrancis implemented the apiServerConfig interface in #2012 which was merged yesterday |
I think we can re-use the existing (since yesterday!)
In other words, My representation of JSON inside of a JSON string is crude, someone has probably solved that problem before. We should do something like that, in my view. |
Thanks @CecileRobertMichon and @jackfrancis! I have started implementing this with the comma-separated format for now, and spotted the apiServerConfig as I was going through making the changes :-) Once I have a version working I'll submit a PR for review and we can refine the config format along with any other changes from the review - does that sound ok? |
I was just thinking about the handling for As I understand the behaviour there, any value that is specified in the So in the case of the following (pseudo config) "kubernetesConfig": {
"kubeletConfig": {
"--dummysetting1": "shared1",
"--dummysetting2": "shared2",
<etc...>
}
}
"masterProfile" : {
"kubernetesConfig" : {
"kubeletConfig" : {
"--dummysetting1": "master1",
}
} the "masterProfile" : {
"kubernetesConfig" : {
"kubeletConfig" : {
"--dummysetting1": "master1",
"--dummysetting2": "shared2",
}
} So... for feature gates, what level should we merge at? I.e. if our input is as below, what should the output be? "kubernetesConfig": {
"kubeletConfig": {
"--feature-gates": "gate1=true"
<etc...>
}
}
"masterProfile" : {
"kubernetesConfig" : {
"kubeletConfig" : {
"--feature-gates": "gate2=true"
}
} One option is to simply override to give this effective master config: "masterProfile" : {
"kubernetesConfig" : {
"kubeletConfig" : {
"--feature-gates": "gate2=true"
}
} Another option is to treat the feature gates as another level that should be merged, like the "masterProfile" : {
"kubernetesConfig" : {
"kubeletConfig" : {
"--feature-gates": "gate1=true,gate2=true"
}
} I already have the code for merging (to support adding in |
I hope that makes sense and answers your questions! |
@jackfrancis - as the PR stands:
|
@jackfrancis can you re-open to track changes to kubernetes components (I forgot to update the PR comment to prevent the issue being auto-closed)! |
Done. |
@jackfrancis Please when considering |
@campbelldgunn the |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contribution. Note that acs-engine is deprecated--see https://github.com/Azure/aks-engine instead. |
Is this a request for help?: No
Is this an ISSUE or FEATURE REQUEST? (choose one): FEATURE REQUEST
What version of acs-engine?: latest master (8fd4ac4)
Orchestrator and version (e.g. Kubernetes, DC/OS, Swarm): Kubernetes - all versions
What you expected to happen: Various behaviours (and preview features) in Kubernetes are controlled by
--feature-gates
. As per the docs, specifying--feature-gates
is currently not permitted.Proposal:
--feature-gates
to be specified in thekubeletConfig
.Looking at the code, the agents currently include
Accelerators=true
in--feature-gates
for kubernetes version 1.6.0 and above, so this behaviour should be preserved.apiserverConfig
section tokubernetesConfig
as per thekubeletConfig
to allow apiserver specific configuration (including--feature-gates
). This was discussed in a comment hereSample config:
Update:
As per the comments from @paulbouwer we should ensure that this covers settings
--feature-gates
for:The text was updated successfully, but these errors were encountered: