Skip to content

Latest commit

 

History

History
118 lines (106 loc) · 16.5 KB

File metadata and controls

118 lines (106 loc) · 16.5 KB

Terraform variables inputs and outputs

This document gives an overview of variables used in the Ignition of the Kubernetes master module.

Requirements

Name Version
terraform >= 1.5.0
ignition 2.1.2

Providers

Name Version
ignition 2.1.2

Modules

Name Source Version
admin_kubeconfig ./modules/kubeconfig n/a
bootstrapping_kubeconfig ./modules/kubeconfig n/a
controller_manager_kubeconfig ./modules/kubeconfig n/a
kubelet ./modules/kubelet n/a
kubelet_kubeconfig ./modules/kubeconfig n/a
scheduler_kubeconfig ./modules/kubeconfig n/a

Resources

Name Type
ignition_file.apiserver_cert data source
ignition_file.apiserver_etcd_client_cert data source
ignition_file.apiserver_etcd_client_key data source
ignition_file.apiserver_key data source
ignition_file.apiserver_kubelet_client_cert data source
ignition_file.apiserver_kubelet_client_key data source
ignition_file.audit_log_policy data source
ignition_file.aws_cloud_controller_manager data source
ignition_file.aws_network_policy_controller_yaml data source
ignition_file.aws_vpc_cni_yaml data source
ignition_file.bootstrap_token_rbac data source
ignition_file.bootstrap_token_secret data source
ignition_file.ca_config_json_tpl data source
ignition_file.cilium_vxlan_yaml data source
ignition_file.coredns data source
ignition_file.encryption_config data source
ignition_file.etcd_ca_cert data source
ignition_file.flannel_yaml data source
ignition_file.front_proxy_ca_cert data source
ignition_file.front_proxy_ca_key data source
ignition_file.front_proxy_client_cert data source
ignition_file.front_proxy_client_key data source
ignition_file.init_addons_sh data source
ignition_file.kube_apiserver data source
ignition_file.kube_controller_manager data source
ignition_file.kube_proxy data source
ignition_file.kube_proxy_cm data source
ignition_file.kube_scheduler data source
ignition_file.kubelet_csr_json_tpl data source
ignition_file.kubernetes_ca_cert data source
ignition_file.kubernetes_ca_key data source
ignition_file.service_account_private_key data source
ignition_file.service_account_public_key data source
ignition_systemd_unit.kubeinit_addons data source

Inputs

Name Description Type Default Required
annotate_pod_ip (Optional) enable to fix pod startup connectivity issue on installing Calico with aws-vpc-cni plugin. (Issue: aws/amazon-vpc-cni-k8s#493) bool false no
apiserver_flags The flags of kube-apiserver. The variables need to follow https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/. Do not use underline. map(any) {} no
apiserver_secure_port n/a number 6443 no
audit_log_flags The flags of audit log in kube-apiserver. The variables need to follow https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/. Do not use underline. map(any) {} no
audit_log_policy_content The policy content for auditing log. string "" no
auth_webhook_config_path The path of webhook config for kube-apiserver. string "/etc/kubernetes/config/aws-iam-authenticator/kubeconfig" no
binaries Desired binaries(cni_plugin) url and checksum.
map(object({
source = string
checksum = string
}))
{} no
ccm_config The cloud contorller manager configuration. map(any) {} no
certs The kubernetes and etcd certificate. map(string) {} no
cloud_provider The cloud provider configuration. string "" no
components_resource Desired resource requests and limits of kubernetes components(kube-apiserver, kube-controller-manager, kube-scheduler, etc.)
map(object({
cpu_request = string
cpu_limit = string
memory_request = string
memory_limit = string
}))
{} no
containers Desired containers(kube-apiserver, kube-controller-manager, cfssl, coredns, and so on) repo and tag.
map(object({
repo = string
tag = string
}))
{} no
controller_manager_flags The flags of kube-controller-manager. The variables need to follow https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/. Do not use underline. map(any) {} no
coredns_config The configuration of CoreDNS. map(any) {} no
enable_eni_prefix (Optional) assign prefix to AWS EC2 network interface bool true no
enable_iam_auth Enable AWS IAM authenticator or not. bool false no
enable_irsa Enable AWS IAM role service account or not. bool false no
enable_network_policy (Optional) [AWS VPC CNI] Enable AWS Network Policy Agent. bool false no
encryption_secret The secret key for encrypting string "" no
etcd_endpoints The comma separated list of etcd endpoints (e.g., 'http://etcd1:2379,http://etcd2:2379'). string "" no
external_snat (Optional) [AWS VPC CNI] Specifies whether an external NAT gateway should be used to provide SNAT of secondary ENI IP addresses. If set to true, the SNAT iptables rule and off-VPC IP rule are not applied, and these rules are removed if they have already been applied. bool false no
feature_gates A set of key=value pairs that describe feature gates for alpha/experimental features. map(bool) {} no
internal_endpoint The internal endpoint of kube-apiserver. string "https://127.0.0.1:6443" no
kube_proxy_config The configuration of kube-proxy. The variables need to follow https://github.com/kubernetes/kube-proxy/blob/master/config/v1alpha1/types.go. Do not use underline. map(any) {} no
kubelet_cert The kubelet cert property.
object({
algo = string
size = number
expiry = string
})
{
"algo": "rsa",
"expiry": "87600h",
"size": 2048
}
no
kubelet_config The configuration of kubelet. The variables need to follow https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/kubelet/config/v1beta1/types.go. Do not use underline. map(any) {} no
kubelet_flags The flags of kubelet. The variables need to follow https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/. Do not use underline. map(any) {} no
kubernetes_version Desired Kubernetes version. string "v1.31.1" no
log_level Log level and verbosity of each components
object({
aws_cloud_controller_manager = optional(string, "2") # 2: Info, 3: Extended Info, 4: Debug, 5: Trace
aws_vpc_cni = optional(string, "DEBUG") # DEBUG, INFO, WARN, ERROR, FATAL
containerd = optional(string, "info") # trace, debug, info, warn, error, fatal, panic
cilium_cni = optional(string, "DEBUG") # DEBUG: enable debug logging, INFO: disable debug logging
docker = optional(string, "info") # debug, info, warn, error, fatal
kube_apiserver = optional(string, "2") # 2: Info, 3: Extended Info, 4: Debug, 5: Trace
kube_controller_manager = optional(string, "2") # 2: Info, 3: Extended Info, 4: Debug, 5: Trace
kube_scheduler = optional(string, "2") # 2: Info, 3: Extended Info, 4: Debug, 5: Trace
kube_proxy = optional(string, "2") # 2: Info, 3: Extended Info, 4: Debug, 5: Trace
kubelet = optional(string, "2") # 2: Info, 3: Extended Info, 4: Debug, 5: Trace
})
n/a yes
max_pods (Optional) the max pod number in the node when enable eni prefix string "110" no
network_plugin Desired network plugin which is use for Kubernetes cluster. e.g. 'flannel', 'amazon-vpc', 'cilium-vxlan' string "amazon-vpc" no
node_cidr_mask_size (Optional)[cilium-vxlan] Mask size for node cidr in cluster. number 24 no
oidc_config The service account config to enable pod identity feature.
object({
issuer = string
api_audiences = string
})
{
"api_audiences": "",
"issuer": ""
}
no
pod_network_cidr The CIDR pool used to assign IP addresses to pods in the cluster. string "10.244.0.0/16" no
scheduler_flags The flags of kube-scheduler. The variables need to follow https://kubernetes.io/docs/reference/command-line-tools-reference/kube-scheduler/. Do not use underline. map(any) {} no
service_network_cidr This is the virtual IP address that will be assigned to services created on Kubernetes. string "10.96.0.0/12" no
tls_bootstrap_token The token uses to authenticate API server.
object({
id = string
secret = string
})
{
"id": "",
"secret": ""
}
no

Outputs

Name Description
admin_kubeconfig_content n/a
bootstrap_kubeconfig_content n/a
cert_files n/a
files n/a
systemd_units n/a