mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 03:41:45 +00:00
kubeadm: do not use --admission-control for the API server
The API server argument --admission-control is deprecated. Use the following arguments instead: --enable-admission-plugins=NodeRestriction --disable-admission-plugins=PersistentVolumeLabel Add comment that PersistentVolumeLabel should be removed at some point in 1.11.
This commit is contained in:
parent
d057795f3b
commit
8d84ef63ad
@ -39,8 +39,6 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/util/version"
|
"k8s.io/kubernetes/pkg/util/version"
|
||||||
)
|
)
|
||||||
|
|
||||||
const defaultAdmissionControl = "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
|
|
||||||
|
|
||||||
// CreateInitStaticPodManifestFiles will write all static pod manifest files needed to bring up the control plane.
|
// CreateInitStaticPodManifestFiles will write all static pod manifest files needed to bring up the control plane.
|
||||||
func CreateInitStaticPodManifestFiles(manifestDir string, cfg *kubeadmapi.MasterConfiguration) error {
|
func CreateInitStaticPodManifestFiles(manifestDir string, cfg *kubeadmapi.MasterConfiguration) error {
|
||||||
glog.V(1).Infoln("[controlplane] creating static pod files")
|
glog.V(1).Infoln("[controlplane] creating static pod files")
|
||||||
@ -141,9 +139,14 @@ func createStaticPodFiles(manifestDir string, cfg *kubeadmapi.MasterConfiguratio
|
|||||||
// getAPIServerCommand builds the right API server command from the given config object and version
|
// getAPIServerCommand builds the right API server command from the given config object and version
|
||||||
func getAPIServerCommand(cfg *kubeadmapi.MasterConfiguration) []string {
|
func getAPIServerCommand(cfg *kubeadmapi.MasterConfiguration) []string {
|
||||||
defaultArguments := map[string]string{
|
defaultArguments := map[string]string{
|
||||||
"advertise-address": cfg.API.AdvertiseAddress,
|
"advertise-address": cfg.API.AdvertiseAddress,
|
||||||
"insecure-port": "0",
|
"insecure-port": "0",
|
||||||
"admission-control": defaultAdmissionControl,
|
"enable-admission-plugins": "NodeRestriction",
|
||||||
|
// TODO: remove `PersistentVolumeLabel` in kubeadm v1.11, as it's automatically disabled in v1.11.
|
||||||
|
// ref: https://github.com/kubernetes/kubernetes/pull/64326
|
||||||
|
// we can't skip it now as we support v1.10 clusters still.
|
||||||
|
// remove it from the unit tests too.
|
||||||
|
"disable-admission-plugins": "PersistentVolumeLabel",
|
||||||
"service-cluster-ip-range": cfg.Networking.ServiceSubnet,
|
"service-cluster-ip-range": cfg.Networking.ServiceSubnet,
|
||||||
"service-account-key-file": filepath.Join(cfg.CertificatesDir, kubeadmconstants.ServiceAccountPublicKeyName),
|
"service-account-key-file": filepath.Join(cfg.CertificatesDir, kubeadmconstants.ServiceAccountPublicKeyName),
|
||||||
"client-ca-file": filepath.Join(cfg.CertificatesDir, kubeadmconstants.CACertName),
|
"client-ca-file": filepath.Join(cfg.CertificatesDir, kubeadmconstants.CACertName),
|
||||||
|
@ -154,7 +154,8 @@ func TestGetAPIServerCommand(t *testing.T) {
|
|||||||
expected: []string{
|
expected: []string{
|
||||||
"kube-apiserver",
|
"kube-apiserver",
|
||||||
"--insecure-port=0",
|
"--insecure-port=0",
|
||||||
"--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota",
|
"--enable-admission-plugins=NodeRestriction",
|
||||||
|
"--disable-admission-plugins=PersistentVolumeLabel",
|
||||||
"--service-cluster-ip-range=bar",
|
"--service-cluster-ip-range=bar",
|
||||||
"--service-account-key-file=" + testCertsDir + "/sa.pub",
|
"--service-account-key-file=" + testCertsDir + "/sa.pub",
|
||||||
"--client-ca-file=" + testCertsDir + "/ca.crt",
|
"--client-ca-file=" + testCertsDir + "/ca.crt",
|
||||||
@ -196,7 +197,8 @@ func TestGetAPIServerCommand(t *testing.T) {
|
|||||||
expected: []string{
|
expected: []string{
|
||||||
"kube-apiserver",
|
"kube-apiserver",
|
||||||
"--insecure-port=0",
|
"--insecure-port=0",
|
||||||
"--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota",
|
"--enable-admission-plugins=NodeRestriction",
|
||||||
|
"--disable-admission-plugins=PersistentVolumeLabel",
|
||||||
"--service-cluster-ip-range=bar",
|
"--service-cluster-ip-range=bar",
|
||||||
"--service-account-key-file=" + testCertsDir + "/sa.pub",
|
"--service-account-key-file=" + testCertsDir + "/sa.pub",
|
||||||
"--client-ca-file=" + testCertsDir + "/ca.crt",
|
"--client-ca-file=" + testCertsDir + "/ca.crt",
|
||||||
@ -233,7 +235,8 @@ func TestGetAPIServerCommand(t *testing.T) {
|
|||||||
expected: []string{
|
expected: []string{
|
||||||
"kube-apiserver",
|
"kube-apiserver",
|
||||||
"--insecure-port=0",
|
"--insecure-port=0",
|
||||||
"--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota",
|
"--enable-admission-plugins=NodeRestriction",
|
||||||
|
"--disable-admission-plugins=PersistentVolumeLabel",
|
||||||
"--service-cluster-ip-range=bar",
|
"--service-cluster-ip-range=bar",
|
||||||
"--service-account-key-file=" + testCertsDir + "/sa.pub",
|
"--service-account-key-file=" + testCertsDir + "/sa.pub",
|
||||||
"--client-ca-file=" + testCertsDir + "/ca.crt",
|
"--client-ca-file=" + testCertsDir + "/ca.crt",
|
||||||
@ -279,7 +282,8 @@ func TestGetAPIServerCommand(t *testing.T) {
|
|||||||
expected: []string{
|
expected: []string{
|
||||||
"kube-apiserver",
|
"kube-apiserver",
|
||||||
"--insecure-port=0",
|
"--insecure-port=0",
|
||||||
"--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota",
|
"--enable-admission-plugins=NodeRestriction",
|
||||||
|
"--disable-admission-plugins=PersistentVolumeLabel",
|
||||||
"--service-cluster-ip-range=bar",
|
"--service-cluster-ip-range=bar",
|
||||||
"--service-account-key-file=" + testCertsDir + "/sa.pub",
|
"--service-account-key-file=" + testCertsDir + "/sa.pub",
|
||||||
"--client-ca-file=" + testCertsDir + "/ca.crt",
|
"--client-ca-file=" + testCertsDir + "/ca.crt",
|
||||||
@ -322,7 +326,8 @@ func TestGetAPIServerCommand(t *testing.T) {
|
|||||||
expected: []string{
|
expected: []string{
|
||||||
"kube-apiserver",
|
"kube-apiserver",
|
||||||
"--insecure-port=0",
|
"--insecure-port=0",
|
||||||
"--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota",
|
"--enable-admission-plugins=NodeRestriction",
|
||||||
|
"--disable-admission-plugins=PersistentVolumeLabel",
|
||||||
"--service-cluster-ip-range=bar",
|
"--service-cluster-ip-range=bar",
|
||||||
"--service-account-key-file=" + testCertsDir + "/sa.pub",
|
"--service-account-key-file=" + testCertsDir + "/sa.pub",
|
||||||
"--client-ca-file=" + testCertsDir + "/ca.crt",
|
"--client-ca-file=" + testCertsDir + "/ca.crt",
|
||||||
@ -360,7 +365,8 @@ func TestGetAPIServerCommand(t *testing.T) {
|
|||||||
expected: []string{
|
expected: []string{
|
||||||
"kube-apiserver",
|
"kube-apiserver",
|
||||||
"--insecure-port=0",
|
"--insecure-port=0",
|
||||||
"--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota",
|
"--enable-admission-plugins=NodeRestriction",
|
||||||
|
"--disable-admission-plugins=PersistentVolumeLabel",
|
||||||
"--service-cluster-ip-range=bar",
|
"--service-cluster-ip-range=bar",
|
||||||
"--service-account-key-file=" + testCertsDir + "/sa.pub",
|
"--service-account-key-file=" + testCertsDir + "/sa.pub",
|
||||||
"--client-ca-file=" + testCertsDir + "/ca.crt",
|
"--client-ca-file=" + testCertsDir + "/ca.crt",
|
||||||
@ -402,7 +408,8 @@ func TestGetAPIServerCommand(t *testing.T) {
|
|||||||
expected: []string{
|
expected: []string{
|
||||||
"kube-apiserver",
|
"kube-apiserver",
|
||||||
"--insecure-port=0",
|
"--insecure-port=0",
|
||||||
"--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota",
|
"--enable-admission-plugins=NodeRestriction",
|
||||||
|
"--disable-admission-plugins=PersistentVolumeLabel",
|
||||||
"--service-cluster-ip-range=bar",
|
"--service-cluster-ip-range=bar",
|
||||||
"--service-account-key-file=" + testCertsDir + "/sa.pub",
|
"--service-account-key-file=" + testCertsDir + "/sa.pub",
|
||||||
"--client-ca-file=" + testCertsDir + "/ca.crt",
|
"--client-ca-file=" + testCertsDir + "/ca.crt",
|
||||||
@ -447,7 +454,8 @@ func TestGetAPIServerCommand(t *testing.T) {
|
|||||||
expected: []string{
|
expected: []string{
|
||||||
"kube-apiserver",
|
"kube-apiserver",
|
||||||
"--insecure-port=0",
|
"--insecure-port=0",
|
||||||
"--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota",
|
"--enable-admission-plugins=NodeRestriction",
|
||||||
|
"--disable-admission-plugins=PersistentVolumeLabel",
|
||||||
"--service-cluster-ip-range=baz",
|
"--service-cluster-ip-range=baz",
|
||||||
"--service-account-key-file=" + testCertsDir + "/sa.pub",
|
"--service-account-key-file=" + testCertsDir + "/sa.pub",
|
||||||
"--client-ca-file=" + testCertsDir + "/ca.crt",
|
"--client-ca-file=" + testCertsDir + "/ca.crt",
|
||||||
@ -491,7 +499,8 @@ func TestGetAPIServerCommand(t *testing.T) {
|
|||||||
expected: []string{
|
expected: []string{
|
||||||
"kube-apiserver",
|
"kube-apiserver",
|
||||||
"--insecure-port=0",
|
"--insecure-port=0",
|
||||||
"--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota",
|
"--enable-admission-plugins=NodeRestriction",
|
||||||
|
"--disable-admission-plugins=PersistentVolumeLabel",
|
||||||
"--service-cluster-ip-range=bar",
|
"--service-cluster-ip-range=bar",
|
||||||
"--service-account-key-file=" + testCertsDir + "/sa.pub",
|
"--service-account-key-file=" + testCertsDir + "/sa.pub",
|
||||||
"--client-ca-file=" + testCertsDir + "/ca.crt",
|
"--client-ca-file=" + testCertsDir + "/ca.crt",
|
||||||
@ -531,7 +540,8 @@ func TestGetAPIServerCommand(t *testing.T) {
|
|||||||
expected: []string{
|
expected: []string{
|
||||||
"kube-apiserver",
|
"kube-apiserver",
|
||||||
"--insecure-port=1234",
|
"--insecure-port=1234",
|
||||||
"--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota",
|
"--enable-admission-plugins=NodeRestriction",
|
||||||
|
"--disable-admission-plugins=PersistentVolumeLabel",
|
||||||
"--service-cluster-ip-range=bar",
|
"--service-cluster-ip-range=bar",
|
||||||
"--service-account-key-file=" + testCertsDir + "/sa.pub",
|
"--service-account-key-file=" + testCertsDir + "/sa.pub",
|
||||||
"--client-ca-file=" + testCertsDir + "/ca.crt",
|
"--client-ca-file=" + testCertsDir + "/ca.crt",
|
||||||
@ -571,7 +581,8 @@ func TestGetAPIServerCommand(t *testing.T) {
|
|||||||
expected: []string{
|
expected: []string{
|
||||||
"kube-apiserver",
|
"kube-apiserver",
|
||||||
"--insecure-port=0",
|
"--insecure-port=0",
|
||||||
"--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota",
|
"--enable-admission-plugins=NodeRestriction",
|
||||||
|
"--disable-admission-plugins=PersistentVolumeLabel",
|
||||||
"--service-cluster-ip-range=bar",
|
"--service-cluster-ip-range=bar",
|
||||||
"--service-account-key-file=" + testCertsDir + "/sa.pub",
|
"--service-account-key-file=" + testCertsDir + "/sa.pub",
|
||||||
"--client-ca-file=" + testCertsDir + "/ca.crt",
|
"--client-ca-file=" + testCertsDir + "/ca.crt",
|
||||||
|
Loading…
Reference in New Issue
Block a user