littlejo / terraform-aks-cilium-clustermesh

Create a clustermesh with cilium on AKS

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

terraform-aks-cilium-clustermesh

Create a clustermesh with cilium on AKS

Requirements

Name Version
terraform >= 1.3
azurerm 3.82.0
helm 2.11.0
kubectl 1.14.0
kubernetes 2.24.0
local 2.4.0

Providers

Name Version
kubernetes.mesh1 2.24.0
kubernetes.mesh2 2.24.0
local 2.4.0
terraform n/a

Modules

Name Source Version
aks ./modules/aks n/a
cilium_enable_mesh1 ./modules/cilium-clustermesh n/a
cilium_enable_mesh2 ./modules/cilium-clustermesh n/a
cilium_mesh1 ./modules/cilium n/a
cilium_mesh2 ./modules/cilium n/a
peering ./modules/peering n/a
vnet ./modules/network n/a

Resources

Name Type
kubernetes_secret.cilium_ca resource
local_file.kubeconfig_aks_1 resource
local_file.kubeconfig_aks_2 resource
terraform_data.enable_mesh1_mesh2 resource
terraform_data.kubeconfig_global resource
kubernetes_secret.cilium_ca data source

Inputs

Name Description Type Default Required
aks Feature of aks any
{
"mesh1": {
"kubeconfig": "kubeconfig-cluster1",
"name": "cilium-clustermesh1",
"network_profile": {
"dns_service_ip": "10.11.0.10",
"service_cidr": "10.11.0.0/16"
},
"version": "1.27"
},
"mesh2": {
"kubeconfig": "kubeconfig-cluster2",
"name": "cilium-clustermesh2",
"network_profile": {
"dns_service_ip": "10.21.0.10",
"service_cidr": "10.21.0.0/16"
},
"version": "1.27"
}
}
no
cilium Feature of cilium
map(object({
type = string
version = optional(string, "1.14.3")
kube-proxy-replacement = optional(bool, false)
ebpf-hostrouting = optional(bool, false)
hubble = optional(bool, false)
hubble-ui = optional(bool, false)
gateway-api = optional(bool, false)
shared_ca = optional(bool, true)
preflight-version = optional(string, null)
upgrade-compatibility = optional(string, null)
set_values = optional(list(object({ name = string, value = string })))
}))
{
"mesh1": {
"ebpf-hostrouting": true,
"hubble": true,
"kube-proxy-replacement": true,
"set_values": [
{
"name": "cluster.id",
"value": "1"
},
{
"name": "cluster.name",
"value": "cilium-clustermesh1"
},
{
"name": "ipam.operator.clusterPoolIPv4PodCIDRList",
"value": "{10.10.0.0/16}"
}
],
"shared_ca": false,
"type": "cilium_custom",
"version": "1.14.3"
},
"mesh2": {
"ebpf-hostrouting": true,
"hubble": true,
"kube-proxy-replacement": true,
"set_values": [
{
"name": "cluster.id",
"value": "2"
},
{
"name": "cluster.name",
"value": "cilium-clustermesh2"
},
{
"name": "ipam.operator.clusterPoolIPv4PodCIDRList",
"value": "{10.20.0.0/16}"
}
],
"type": "cilium_custom",
"version": "1.14.3"
}
}
no
location Location string n/a yes
resource_group_name Resource group name string n/a yes
vnet Feature of vnet any
{
"mesh1": {
"address_space": [
"192.168.10.0/24"
],
"name": "clustermesh1",
"subnet_cidr": [
"192.168.10.0/24"
],
"subnet_name": "nodesubnet"
},
"mesh2": {
"address_space": [
"192.168.20.0/24"
],
"name": "clustermesh2",
"subnet_cidr": [
"192.168.20.0/24"
],
"subnet_name": "nodesubnet"
}
}
no

Outputs

No outputs.

About

Create a clustermesh with cilium on AKS


Languages

Language:HCL 99.0%Language:Shell 1.0%