// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.

// Code generated by hack/docgen tool. DO NOT EDIT.

package k8s

import (
	"github.com/siderolabs/talos/pkg/machinery/config/encoder"
)

func (KubeAdmissionControlConfigV1Alpha1) Doc() *encoder.Doc {
	doc := &encoder.Doc{
		Type:        "KubeAdmissionControlConfig",
		Comments:    [3]string{"" /* encoder.HeadComment */, "KubeAdmissionControlConfig configures kube-apiserver admission control plugins." /* encoder.LineComment */, "" /* encoder.FootComment */},
		Description: "KubeAdmissionControlConfig configures kube-apiserver admission control plugins.",
		Fields: []encoder.Doc{
			{
				Type:   "Meta",
				Inline: true,
			},
			{
				Name:        "name",
				Type:        "string",
				Note:        "",
				Description: "Admission control plugin name, should be a valid Kubernetes admission control plugin name.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Admission control plugin name, should be a valid Kubernetes admission control plugin name." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "configuration",
				Type:        "Unstructured",
				Note:        "",
				Description: "Kubernetes API server [admission control plugins](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/).\nThe value is the literal Kubernetes admission control configuration.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Kubernetes API server [admission control plugins](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/)." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
		},
	}

	doc.AddExample("", exampleKubeAdmissionControlConfigV1Alpha1())

	return doc
}

func (KubeAPIServerConfigV1Alpha1) Doc() *encoder.Doc {
	doc := &encoder.Doc{
		Type:        "KubeAPIServerConfig",
		Comments:    [3]string{"" /* encoder.HeadComment */, "KubeAPIServerConfig configures kube-apiserver controlplane static pod." /* encoder.LineComment */, "" /* encoder.FootComment */},
		Description: "KubeAPIServerConfig configures kube-apiserver controlplane static pod.",
		Fields: []encoder.Doc{
			{
				Type:   "Meta",
				Inline: true,
			},
			{
				Name:        "image",
				Type:        "string",
				Note:        "",
				Description: "The container image used to run the kube-apiserver component.\n\nThe image reference should contain the tag, even if it is pinned by digest.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "The container image used to run the kube-apiserver component." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "extraArgs",
				Type:        "Args",
				Note:        "",
				Description: "Extra command line arguments to supply to the kube-apiserver.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Extra command line arguments to supply to the kube-apiserver." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "env",
				Type:        "map[string]string",
				Note:        "",
				Description: "The `env` field allows for the addition of environment variables for the kube-apiserver.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "The `env` field allows for the addition of environment variables for the kube-apiserver." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "resources",
				Type:        "ResourcesConfig",
				Note:        "",
				Description: "Configure the kube-apiserver resources.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Configure the kube-apiserver resources." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "apiPort",
				Type:        "int",
				Note:        "",
				Description: "The port on which the kube-apiserver will listen for requests.\n\nDefault is 6443.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "The port on which the kube-apiserver will listen for requests." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "certExtraSANs",
				Type:        "[]string",
				Note:        "",
				Description: "Provide extra certificate SANs (hostnames, IPs) to add to the kube-apiserver serving certificate.\n\nTalos automatically adds machine's addresses and hostnames, Kubernetes names, and control plane endpoint\nderived SANs to the kube-apiserver serving certificate.\nThis field allows for adding additional SANs to the serving certificate.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Provide extra certificate SANs (hostnames, IPs) to add to the kube-apiserver serving certificate." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "startupProbes",
				Type:        "bool",
				Note:        "",
				Description: "Enable or disable startup probes for kube-apiserver.\n\nDefault is enabled.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Enable or disable startup probes for kube-apiserver." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
		},
	}

	doc.AddExample("", exampleKubeAPIServerConfigV1Alpha1())

	return doc
}

func (KubeAuditPolicyConfigV1Alpha1) Doc() *encoder.Doc {
	doc := &encoder.Doc{
		Type:        "KubeAuditPolicyConfig",
		Comments:    [3]string{"" /* encoder.HeadComment */, "KubeAuditPolicyConfig configures kube-apiserver audit policy." /* encoder.LineComment */, "" /* encoder.FootComment */},
		Description: "KubeAuditPolicyConfig configures kube-apiserver audit policy.",
		Fields: []encoder.Doc{
			{
				Type:   "Meta",
				Inline: true,
			},
			{
				Name:        "configuration",
				Type:        "Unstructured",
				Note:        "",
				Description: "Kubernetes API server [audit policy](https://kubernetes.io/docs/tasks/debug-application-cluster/audit/) configuration.\nThe value is the literal Kubernetes audit policy configuration.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Kubernetes API server [audit policy](https://kubernetes.io/docs/tasks/debug-application-cluster/audit/) configuration." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
		},
	}

	doc.AddExample("", exampleKubeAuditPolicyConfigV1Alpha1())

	return doc
}

func (KubeAuthenticationConfigV1Alpha1) Doc() *encoder.Doc {
	doc := &encoder.Doc{
		Type:        "KubeAuthenticationConfig",
		Comments:    [3]string{"" /* encoder.HeadComment */, "KubeAuthenticationConfig configures kube-apiserver authentication." /* encoder.LineComment */, "" /* encoder.FootComment */},
		Description: "KubeAuthenticationConfig configures kube-apiserver authentication.",
		Fields: []encoder.Doc{
			{
				Type:   "Meta",
				Inline: true,
			},
			{
				Name:        "configuration",
				Type:        "Unstructured",
				Note:        "",
				Description: "Kubernetes API server [authentication](https://kubernetes.io/docs/reference/access-authn-authz/authentication/) configuration.\nThe value is the literal Kubernetes authentication configuration.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Kubernetes API server [authentication](https://kubernetes.io/docs/reference/access-authn-authz/authentication/) configuration." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
		},
	}

	doc.AddExample("", exampleKubeAuthenticationConfigV1Alpha1())

	return doc
}

func (KubeAuthorizerConfigV1Alpha1) Doc() *encoder.Doc {
	doc := &encoder.Doc{
		Type:        "KubeAuthorizerConfig",
		Comments:    [3]string{"" /* encoder.HeadComment */, "KubeAuthorizerConfig configures kube-apiserver authorization by configuring a specific authorization plugin." /* encoder.LineComment */, "" /* encoder.FootComment */},
		Description: "KubeAuthorizerConfig configures kube-apiserver authorization by configuring a specific authorization plugin.",
		Fields: []encoder.Doc{
			{
				Type:   "Meta",
				Inline: true,
			},
			{
				Name:        "name",
				Type:        "string",
				Note:        "",
				Description: "Name of the authorizer, should be be DNS1123 labels like myauthorizername or subdomains like myauthorizer.example.domain.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Name of the authorizer, should be be DNS1123 labels like myauthorizername or subdomains like myauthorizer.example.domain." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "type",
				Type:        "string",
				Note:        "",
				Description: "Type is the name of the authorizer.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Type is the name of the authorizer." /* encoder.LineComment */, "" /* encoder.FootComment */},
				Values: []string{
					"Node",
					"RBAC",
					"Webhook",
				},
			},
			{
				Name:        "webhook",
				Type:        "Unstructured",
				Note:        "",
				Description: "Webhook is the configuration for the webhook authorizer.\n\nThis field is required if the AuthorizerType is Webhook, should not be set for other authorizer types.\nThe value is the literal Kubernetes webhook authorizer configuration.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Webhook is the configuration for the webhook authorizer." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
		},
	}

	doc.AddExample("", exampleKubeAuthorizerConfigV1Alpha1())

	doc.AddExample("", exampleKubeAuthorizerConfigV1Alpha2())

	doc.AddExample("", exampleKubeAuthorizerConfigV1Alpha3())

	doc.AddExample("", exampleKubeAuthorizerConfigV1Alpha4())

	return doc
}

func (ResourcesConfig) Doc() *encoder.Doc {
	doc := &encoder.Doc{
		Type:        "ResourcesConfig",
		Comments:    [3]string{"" /* encoder.HeadComment */, "ResourcesConfig represents the pod resources." /* encoder.LineComment */, "" /* encoder.FootComment */},
		Description: "ResourcesConfig represents the pod resources.\n",
		AppearsIn: []encoder.Appearance{
			{
				TypeName:  "KubeAPIServerConfigV1Alpha1",
				FieldName: "resources",
			},
			{
				TypeName:  "KubeControllerManagerConfigV1Alpha1",
				FieldName: "resources",
			},
			{
				TypeName:  "KubeFlannelCNIConfigV1Alpha1",
				FieldName: "resources",
			},
			{
				TypeName:  "KubeProxyConfigV1Alpha1",
				FieldName: "resources",
			},
			{
				TypeName:  "KubeSchedulerConfigV1Alpha1",
				FieldName: "resources",
			},
		},
		Fields: []encoder.Doc{
			{
				Name:        "requests",
				Type:        "Unstructured",
				Note:        "",
				Description: "Requests configures the reserved cpu/memory resources.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Requests configures the reserved cpu/memory resources." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "limits",
				Type:        "Unstructured",
				Note:        "",
				Description: "Limits configures the maximum cpu/memory limits a pod can use.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Limits configures the maximum cpu/memory limits a pod can use." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
		},
	}

	doc.Fields[0].AddExample("resources requests.", resourcesConfigRequestsExample())
	doc.Fields[1].AddExample("resources limits.", resourcesConfigLimitsExample())

	return doc
}

func (KubeControllerManagerConfigV1Alpha1) Doc() *encoder.Doc {
	doc := &encoder.Doc{
		Type:        "KubeControllerManagerConfig",
		Comments:    [3]string{"" /* encoder.HeadComment */, "KubeControllerManagerConfig configures kube-controller-manager controlplane static pod." /* encoder.LineComment */, "" /* encoder.FootComment */},
		Description: "KubeControllerManagerConfig configures kube-controller-manager controlplane static pod.",
		Fields: []encoder.Doc{
			{
				Type:   "Meta",
				Inline: true,
			},
			{
				Name:        "enabled",
				Type:        "bool",
				Note:        "",
				Description: "By default, kube-controller-manager static pod is enabled.\nSet to false to disable the kube-controller-manager (assuming it runs on other controlplane node).",
				Comments:    [3]string{"" /* encoder.HeadComment */, "By default, kube-controller-manager static pod is enabled." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "image",
				Type:        "string",
				Note:        "",
				Description: "The container image used to run the kube-controller-manager component.\n\nThe image reference should contain the tag, even if it is pinned by digest.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "The container image used to run the kube-controller-manager component." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "extraArgs",
				Type:        "Args",
				Note:        "",
				Description: "Extra command line arguments to supply to the kube-controller-manager.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Extra command line arguments to supply to the kube-controller-manager." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "env",
				Type:        "map[string]string",
				Note:        "",
				Description: "The `env` field allows for the addition of environment variables for the kube-controller-manager.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "The `env` field allows for the addition of environment variables for the kube-controller-manager." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "resources",
				Type:        "ResourcesConfig",
				Note:        "",
				Description: "Configure the kube-controller-manager resources.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Configure the kube-controller-manager resources." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
		},
	}

	doc.AddExample("", exampleKubeControllerManagerConfigV1Alpha1())

	return doc
}

func (KubeEtcdEncryptionConfigV1Alpha1) Doc() *encoder.Doc {
	doc := &encoder.Doc{
		Type:        "KubeEtcdEncryptionConfig",
		Comments:    [3]string{"" /* encoder.HeadComment */, "KubeEtcdEncryptionConfig configures kube-apiserver etcd encryption rules." /* encoder.LineComment */, "" /* encoder.FootComment */},
		Description: "KubeEtcdEncryptionConfig configures kube-apiserver etcd encryption rules.",
		Fields: []encoder.Doc{
			{
				Type:   "Meta",
				Inline: true,
			},
			{
				Name:        "config",
				Type:        "Unstructured",
				Note:        "",
				Description: "Kubernetes API server [encryption of secret data at rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/).\nKey value should be exact contents of the configuration file, excluding the apiVersion and kind fields.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Kubernetes API server [encryption of secret data at rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/)." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
		},
	}

	doc.AddExample("", exampleKubeEtcdEncryptionConfigV1Alpha1())

	return doc
}

func (KubeFlannelCNIConfigV1Alpha1) Doc() *encoder.Doc {
	doc := &encoder.Doc{
		Type:        "KubeFlannelCNIConfig",
		Comments:    [3]string{"" /* encoder.HeadComment */, "KubeFlannelCNIConfig deploys Flannel CNI to the cluster." /* encoder.LineComment */, "" /* encoder.FootComment */},
		Description: "KubeFlannelCNIConfig deploys Flannel CNI to the cluster.",
		Fields: []encoder.Doc{
			{
				Type:   "Meta",
				Inline: true,
			},
			{
				Name:        "backendType",
				Type:        "string",
				Note:        "",
				Description: "Type of the Flannel backend to use.\n\nSee Flannel documentation for supported backend types.\nThe default value in generated machine configuration is \"vxlan\".",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Type of the Flannel backend to use." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "backendPort",
				Type:        "uint16",
				Note:        "",
				Description: "UDP port used by Flannel for encapsulating traffic (if the backend type requires encapsulation).\n\nThe default value in generated machine configuration is 4789.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "UDP port used by Flannel for encapsulating traffic (if the backend type requires encapsulation)." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "backendMTU",
				Type:        "uint32",
				Note:        "",
				Description: "Transport MTU to be used for the pod network.\n\nFlannel will subtract encapsulation overhead from this MTU to calculate\nthe MTU of the pod interface.\nIf not set, the default is auto-detection of MTU by Flannel.\nIf KubeSpan is enabled, and the value is not set, defaults to KubeSpan MTU.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Transport MTU to be used for the pod network." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "backendExtraConfig",
				Type:        "Unstructured",
				Note:        "",
				Description: "Extra configuration for Flannel backend.\n\nThe content of this field depends on the backend type used.\nThe value of this field will be patched into Flannel configuration 'Backend' section as-is.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Extra configuration for Flannel backend." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "resources",
				Type:        "ResourcesConfig",
				Note:        "",
				Description: "Resources configuration for Flannel main container.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Resources configuration for Flannel main container." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "extraArgs",
				Type:        "[]string",
				Note:        "",
				Description: "Extra arguments for 'flanneld'.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Extra arguments for 'flanneld'." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "kubeNetworkPoliciesEnabled",
				Type:        "bool",
				Note:        "",
				Description: "Deploys kube-network-policies along with Flannel.\n\nThis enables Kubernetes Network Policies support in the cluster.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Deploys kube-network-policies along with Flannel." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
		},
	}

	doc.AddExample("", exampleKubeFlannelCNIConfigV1Alpha1())

	doc.Fields[6].AddExample("", []string{"--iface-can-reach=192.168.1.1"})

	return doc
}

func (KubeNetworkConfigV1Alpha1) Doc() *encoder.Doc {
	doc := &encoder.Doc{
		Type:        "KubeNetworkConfig",
		Comments:    [3]string{"" /* encoder.HeadComment */, "KubeNetworkConfig configures Kubernetes base network settings." /* encoder.LineComment */, "" /* encoder.FootComment */},
		Description: "KubeNetworkConfig configures Kubernetes base network settings.",
		Fields: []encoder.Doc{
			{
				Type:   "Meta",
				Inline: true,
			},
			{
				Name:        "dnsDomain",
				Type:        "string",
				Note:        "",
				Description: "The domain used by Kubernetes DNS.\nThe default is `cluster.local`",
				Comments:    [3]string{"" /* encoder.HeadComment */, "The domain used by Kubernetes DNS." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "podSubnets",
				Type:        "[]Prefix",
				Note:        "",
				Description: "The pod subnet (CIDR), this can be a single value or two values for dual-stack clusters.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "The pod subnet (CIDR), this can be a single value or two values for dual-stack clusters." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "serviceSubnets",
				Type:        "[]Prefix",
				Note:        "",
				Description: "The service subnet (CIDR), this can be a single value or two values for dual-stack clusters.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "The service subnet (CIDR), this can be a single value or two values for dual-stack clusters." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
		},
	}

	doc.AddExample("", exampleKubeNetworkConfig1V1Alpha1())

	doc.AddExample("", exampleKubeNetworkConfig2V1Alpha1())

	doc.AddExample("", exampleKubeNetworkConfig3V1Alpha1())

	return doc
}

func (KubeProxyConfigV1Alpha1) Doc() *encoder.Doc {
	doc := &encoder.Doc{
		Type:        "KubeProxyConfig",
		Comments:    [3]string{"" /* encoder.HeadComment */, "KubeProxyConfig deploys Flannel CNI to the cluster." /* encoder.LineComment */, "" /* encoder.FootComment */},
		Description: "KubeProxyConfig deploys Flannel CNI to the cluster.",
		Fields: []encoder.Doc{
			{
				Type:   "Meta",
				Inline: true,
			},
			{
				Name:        "enabled",
				Type:        "bool",
				Note:        "",
				Description: "Enable or disable kube-proxy deployment on cluster bootstrap.\n\nDefault is enabled.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Enable or disable kube-proxy deployment on cluster bootstrap." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "image",
				Type:        "string",
				Note:        "",
				Description: "The container image used in the kube-proxy manifest.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "The container image used in the kube-proxy manifest." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "mode",
				Type:        "string",
				Note:        "",
				Description: "description: |\n    Proxy mode of kube-proxy.\n\n   The default value is 'nftables'.\n   It is not recommended to use any other value.\n values:\n   - iptables\n   - ipvs\n   - nftables\n",
				Comments:    [3]string{"" /* encoder.HeadComment */, "description: |" /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "config",
				Type:        "Unstructured",
				Note:        "",
				Description: "Provide configuration for the kube-proxy.\n\nThere is no need  to specify kind and apiVersion fields (they will be set automatically),\nbut the rest of the configuration should be provided as is.\n\nSee https://kubernetes.io/docs/reference/config-api/kube-proxy-config.v1alpha1/ for the details of the configuration schema.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Provide configuration for the kube-proxy." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "extraArgs",
				Type:        "Args",
				Note:        "",
				Description: "Extra arguments to supply to kube-proxy.\n\nPlease note that kube-proxy is configured with a configuration file,\nso most flags have no effect.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Extra arguments to supply to kube-proxy." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "resources",
				Type:        "ResourcesConfig",
				Note:        "",
				Description: "Configure the kube-proxy resources.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Configure the kube-proxy resources." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
		},
	}

	doc.AddExample("", exampleKubeProxyConfigV1Alpha1())

	return doc
}

func (KubeSchedulerConfigV1Alpha1) Doc() *encoder.Doc {
	doc := &encoder.Doc{
		Type:        "KubeSchedulerConfig",
		Comments:    [3]string{"" /* encoder.HeadComment */, "KubeSchedulerConfig configures kube-scheduler controlplane static pod." /* encoder.LineComment */, "" /* encoder.FootComment */},
		Description: "KubeSchedulerConfig configures kube-scheduler controlplane static pod.",
		Fields: []encoder.Doc{
			{
				Type:   "Meta",
				Inline: true,
			},
			{
				Name:        "enabled",
				Type:        "bool",
				Note:        "",
				Description: "By default, kube-scheduler static pod is enabled.\nSet to false to disable the kube-scheduler (assuming it runs on other controlplane node).",
				Comments:    [3]string{"" /* encoder.HeadComment */, "By default, kube-scheduler static pod is enabled." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "image",
				Type:        "string",
				Note:        "",
				Description: "The container image used to run the kube-scheduler component.\n\nThe image reference should contain the tag, even if it is pinned by digest.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "The container image used to run the kube-scheduler component." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "config",
				Type:        "Unstructured",
				Note:        "",
				Description: "Provide configuration for the kube-scheduler static pod.\n\nThere is no need  to specify kind and apiVersion fields (they will be set automatically),\nbut the rest of the configuration should be provided as is.\n\nSee https://kubernetes.io/docs/reference/scheduling/config/ for the details of the configuration schema.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Provide configuration for the kube-scheduler static pod." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "extraArgs",
				Type:        "Args",
				Note:        "",
				Description: "Extra command line arguments to supply to the kube-scheduler.\n\nIt is preferable to use `config` field to provide configuration overrides.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Extra command line arguments to supply to the kube-scheduler." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "env",
				Type:        "map[string]string",
				Note:        "",
				Description: "The `env` field allows for the addition of environment variables for the kube-scheduler.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "The `env` field allows for the addition of environment variables for the kube-scheduler." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
			{
				Name:        "resources",
				Type:        "ResourcesConfig",
				Note:        "",
				Description: "Configure the kube-scheduler resources.",
				Comments:    [3]string{"" /* encoder.HeadComment */, "Configure the kube-scheduler resources." /* encoder.LineComment */, "" /* encoder.FootComment */},
			},
		},
	}

	doc.AddExample("", exampleKubeSchedulerConfigV1Alpha1())

	return doc
}

// GetFileDoc returns documentation for the file k8s_doc.go.
func GetFileDoc() *encoder.FileDoc {
	return &encoder.FileDoc{
		Name:        "k8s",
		Description: "",
		Structs: []*encoder.Doc{
			KubeAdmissionControlConfigV1Alpha1{}.Doc(),
			KubeAPIServerConfigV1Alpha1{}.Doc(),
			KubeAuditPolicyConfigV1Alpha1{}.Doc(),
			KubeAuthenticationConfigV1Alpha1{}.Doc(),
			KubeAuthorizerConfigV1Alpha1{}.Doc(),
			ResourcesConfig{}.Doc(),
			KubeControllerManagerConfigV1Alpha1{}.Doc(),
			KubeEtcdEncryptionConfigV1Alpha1{}.Doc(),
			KubeFlannelCNIConfigV1Alpha1{}.Doc(),
			KubeNetworkConfigV1Alpha1{}.Doc(),
			KubeProxyConfigV1Alpha1{}.Doc(),
			KubeSchedulerConfigV1Alpha1{}.Doc(),
		},
	}
}
