An opinionated Terraform module that can be used to install and manage Cilium on top of a Kubernetes cluster.
Ensure the Helm repository is pre-configured (the one you're referring to in the cilium_helm_chart
input variable). Example:
helm repo add cilium https://helm.cilium.io/
Check the official Cilium Installation using Helm documentation for more details.
Name | Version |
---|---|
terraform | >= 1.2.0 |
null | >= 3.1.1 |
Name | Version |
---|---|
null | >= 3.1.1 |
No modules.
Name | Type |
---|---|
null_resource.main | resource |
Name | Description | Type | Default | Required |
---|---|---|---|---|
cilium_helm_chart | The name of the Helm chart to use to install Cilium. It is assumed that the Helm repository containing this chart has been added beforehand (e.g. using 'helm repo add'). | string |
"cilium/cilium" |
no |
cilium_helm_extra_args | Extra arguments to be passed to the 'helm upgrade --install' command that installs Cilium. | string |
"" |
no |
cilium_helm_release_name | The name of the Helm release to use for Cilium. | string |
"cilium" |
no |
cilium_helm_values_file_path | The path to the file containing the values to use when installing Cilium. | string |
n/a | yes |
cilium_helm_values_override_file_path | The path to the file containing the values to use when installing Cilium. These values will override the ones in 'cilium_helm_values_file_path'. | string |
n/a | yes |
cilium_helm_version | The version of the Cilium Helm chart to install. | string |
n/a | yes |
cilium_namespace | The namespace in which to install Cilium. | string |
"kube-system" |
no |
control_plane_nodes_label_selector | The label selector used to filter control-plane nodes. | string |
"node-role.kubernetes.io/control-plane" |
no |
deploy_etcd_cluster | Whether to deploy an 'etcd' cluster suitable for usage as the Cilium key-value store (HIGHLY EXPERIMENTAL). | bool |
false |
no |
disable_kube_proxy | Whether to disable the kube proxy so the cluster uses kube-proxy replacement | bool |
false |
no |
extra_provisioner_environment_variables | A map of extra environment variables to include when executing the provisioning script. | map(string) |
{} |
no |
install_kube_prometheus_servicemonitor_crd | Whether to install the 'kube-prometheus' ServiceMonitor CRD. | bool |
true |
no |
ipsec_key | The IPsec key to use for transparent encryption. Leave empty for none to be created (in which case encryption should be disabled in Helm as well). | string |
"" |
no |
kube_prometheus_crds_version | Version of the 'kube-prometheus' ServiceMonitor CRD to install. | string |
"v0.13.0" |
no |
kube_proxy_namespace | Whether to disable the kube proxy so the cluster uses kube-proxy replacement | string |
"kube-system" |
no |
path_to_kubeconfig_file | The path to the kubeconfig file to use. | string |
n/a | yes |
post_cilium_install_script | A script to be run right after installing Cilium. | string |
"" |
no |
pre_cilium_install_script | A script to be run right before installing Cilium. | string |
"" |
no |
total_control_plane_nodes | The number of control-plane nodes expected in the cluster. | number |
3 |
no |
wait_for_total_control_plane_nodes | Whether to wait for the expected number of control-plane nodes to be registered before applying any changes. | bool |
false |
no |
No outputs.
Copyright 2022 Isovalent, Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.