From a924b4987928f0eaae72bbd87eac44f71e2ae133 Mon Sep 17 00:00:00 2001 From: Suraj Deshmukh Date: Fri, 5 Feb 2021 14:59:16 +0530 Subject: [PATCH] EM: Add `node_private_cidrs` as list of string - Mark `node_private_cidr` as deprecated. - This is added to support multi-facility worker pools. Different facility in an EM project can have different private node CIDR, hence allow user to provide multiple CIDRs. Signed-off-by: Suraj Deshmukh --- .../kubernetes/calico-host-protection.tf | 5 +- .../flatcar-linux/kubernetes/variables.tf | 6 +- ci/packet/packet-cluster.lokocfg.envsubst | 2 +- .../packet_arm-cluster.lokocfg.envsubst | 2 +- .../packet_fluo-cluster.lokocfg.envsubst | 2 +- cli/cmd/cluster/utils_internal_test.go | 6 +- .../platforms/packet.md | 7 ++- docs/quickstarts/packet.md | 2 +- examples/packet-production/cluster.lokocfg | 4 +- examples/packet-testing/cluster.lokocfg | 6 +- pkg/assets/generated_assets.go | 12 ++-- pkg/platform/packet/packet.go | 59 ++++++++++++++++--- pkg/platform/packet/template.go | 2 +- 13 files changed, 79 insertions(+), 36 deletions(-) diff --git a/assets/terraform-modules/packet/flatcar-linux/kubernetes/calico-host-protection.tf b/assets/terraform-modules/packet/flatcar-linux/kubernetes/calico-host-protection.tf index be6417b7a..c9fb388fb 100644 --- a/assets/terraform-modules/packet/flatcar-linux/kubernetes/calico-host-protection.tf +++ b/assets/terraform-modules/packet/flatcar-linux/kubernetes/calico-host-protection.tf @@ -30,11 +30,10 @@ resource "local_file" "calico_host_protection" { } ], management_cidrs = var.management_cidrs - cluster_cidrs = [ - var.node_private_cidr, + cluster_cidrs = concat([ var.pod_cidr, var.service_cidr - ], + ], var.node_private_cidrs), }) filename = "${var.asset_dir}/charts/kube-system/calico-host-protection.yaml" diff --git a/assets/terraform-modules/packet/flatcar-linux/kubernetes/variables.tf b/assets/terraform-modules/packet/flatcar-linux/kubernetes/variables.tf index 0d7d2a064..114552969 100644 --- a/assets/terraform-modules/packet/flatcar-linux/kubernetes/variables.tf +++ b/assets/terraform-modules/packet/flatcar-linux/kubernetes/variables.tf @@ -134,9 +134,9 @@ variable "management_cidrs" { type = list(string) } -variable "node_private_cidr" { - description = "Private IPv4 CIDR of the nodes used to allow inter-node traffic" - type = string +variable "node_private_cidrs" { + description = "List of private IPv4 CIDRs of the nodes used to allow inter-node traffic" + type = list(string) } variable "enable_aggregation" { diff --git a/ci/packet/packet-cluster.lokocfg.envsubst b/ci/packet/packet-cluster.lokocfg.envsubst index 06eb69ebd..c71f77ba7 100644 --- a/ci/packet/packet-cluster.lokocfg.envsubst +++ b/ci/packet/packet-cluster.lokocfg.envsubst @@ -30,7 +30,7 @@ EOF ssh_pubkeys = ["$PUB_KEY"] management_cidrs = ["0.0.0.0/0"] - node_private_cidr = "10.0.0.0/8" + node_private_cidrs = ["10.0.0.0/8"] worker_pool "pool-1" { count = 2 diff --git a/ci/packet_arm/packet_arm-cluster.lokocfg.envsubst b/ci/packet_arm/packet_arm-cluster.lokocfg.envsubst index 7f263fffe..116e98998 100644 --- a/ci/packet_arm/packet_arm-cluster.lokocfg.envsubst +++ b/ci/packet_arm/packet_arm-cluster.lokocfg.envsubst @@ -34,7 +34,7 @@ EOF ssh_pubkeys = ["$PUB_KEY"] management_cidrs = ["0.0.0.0/0"] - node_private_cidr = "10.0.0.0/8" + node_private_cidrs = ["10.0.0.0/8"] worker_pool "pool-1" { count = 1 diff --git a/ci/packet_fluo/packet_fluo-cluster.lokocfg.envsubst b/ci/packet_fluo/packet_fluo-cluster.lokocfg.envsubst index f46da2c4e..8c19eea49 100644 --- a/ci/packet_fluo/packet_fluo-cluster.lokocfg.envsubst +++ b/ci/packet_fluo/packet_fluo-cluster.lokocfg.envsubst @@ -30,7 +30,7 @@ EOF ssh_pubkeys = ["$PUB_KEY"] management_cidrs = ["0.0.0.0/0"] - node_private_cidr = "10.0.0.0/8" + node_private_cidrs = ["10.0.0.0/8"] worker_pool "general" { count = 1 diff --git a/cli/cmd/cluster/utils_internal_test.go b/cli/cmd/cluster/utils_internal_test.go index 4b31203fd..6c76048f7 100644 --- a/cli/cmd/cluster/utils_internal_test.go +++ b/cli/cmd/cluster/utils_internal_test.go @@ -176,7 +176,7 @@ func TestGetKubeconfigSourceFlag(t *testing.T) { controller_count = 0 facility = "" management_cidrs = [] - node_private_cidr = "" + node_private_cidrs = [] project_id = "" ssh_pubkeys = [] dns { @@ -218,7 +218,7 @@ func TestGetKubeconfigSourceConfigFile(t *testing.T) { controller_count = 0 facility = "" management_cidrs = [] - node_private_cidr = "" + node_private_cidrs = [] project_id = "" ssh_pubkeys = [] dns { @@ -281,7 +281,7 @@ func TestGetKubeconfigFromAssetsDir(t *testing.T) { controller_count = 0 facility = "" management_cidrs = [] - node_private_cidr = "" + node_private_cidrs = [] project_id = "" ssh_pubkeys = [] dns { diff --git a/docs/configuration-reference/platforms/packet.md b/docs/configuration-reference/platforms/packet.md index e84e90c0a..8ffd2f183 100644 --- a/docs/configuration-reference/platforms/packet.md +++ b/docs/configuration-reference/platforms/packet.md @@ -36,6 +36,7 @@ variable "packet_project_id" {} variable "ssh_public_keys" {} variable "management_cidrs" {} variable "node_private_cidr" {} +variable "node_private_cidrs" {} variable "state_s3_bucket" {} variable "lock_dynamodb_table" {} variable "oidc_issuer_url" {} @@ -90,7 +91,8 @@ cluster "packet" { management_cidrs = var.management_cidrs - node_private_cidr = var.node_private_cidr + node_private_cidr = var.node_private_cidr + node_private_cidrs = var.node_private_cidrs cluster_domain_suffix = "cluster.local" @@ -222,7 +224,8 @@ node_type = var.custom_default_worker_type | `os_version` | Flatcar Container Linux version to install. Version such as "2303.3.1" or "current". | "current" | string | false | | `ipxe_script_url` | Boot via iPXE. Required for arm64. | - | string | false | | `management_cidrs` | List of IPv4 CIDRs authorized to access or manage the cluster. Example ["0.0.0.0/0"] to allow all. | - | list(string) | true | -| `node_private_cidr` | Private IPv4 CIDR of the nodes used to allow inter-node traffic. Example "10.0.0.0/8" | - | string | true | +| `node_private_cidr` | (Deprecated) Private IPv4 CIDR of the nodes used to allow inter-node traffic. Example "10.0.0.0/8". | - | string | true | +| `node_private_cidrs` | List of Private IPv4 CIDRs of the nodes used to allow inter-node traffic. Example ["10.0.0.0/8"]. | - | list(string) | true | | `enable_aggregation` | Enable the Kubernetes Aggregation Layer. | true | bool | false | | `enable_tls_bootstrap` | Enable TLS bootstraping for Kubelet. | true | bool | false | | `encrypt_pod_traffic` | Enable in-cluster pod traffic encryption. If true `network_mtu` is reduced by 60 to make room for the encryption header. | false | bool | false | diff --git a/docs/quickstarts/packet.md b/docs/quickstarts/packet.md index e95884758..2c40c55db 100644 --- a/docs/quickstarts/packet.md +++ b/docs/quickstarts/packet.md @@ -109,7 +109,7 @@ cluster "packet" { ssh_pubkeys = ["ssh-rsa AAAA..."] management_cidrs = ["0.0.0.0/0"] - node_private_cidr = "10.0.0.0/8" + node_private_cidrs = ["10.0.0.0/8"] controller_count = 1 diff --git a/examples/packet-production/cluster.lokocfg b/examples/packet-production/cluster.lokocfg index 993bfc8f7..bcc68d588 100644 --- a/examples/packet-production/cluster.lokocfg +++ b/examples/packet-production/cluster.lokocfg @@ -3,7 +3,7 @@ variable "route53_zone_id" {} variable "packet_project_id" {} variable "ssh_public_keys" {} variable "management_cidrs" {} -variable "node_private_cidr" {} +variable "node_private_cidrs" {} variable "cert_manager_email" {} variable "state_s3_bucket" {} variable "lock_dynamodb_table" {} @@ -78,7 +78,7 @@ cluster "packet" { ssh_pubkeys = var.ssh_public_keys management_cidrs = var.management_cidrs - node_private_cidr = var.node_private_cidr + node_private_cidrs = var.node_private_cidrs worker_pool "pool-1" { count = var.workers_count diff --git a/examples/packet-testing/cluster.lokocfg b/examples/packet-testing/cluster.lokocfg index e368f75e4..aca143f85 100644 --- a/examples/packet-testing/cluster.lokocfg +++ b/examples/packet-testing/cluster.lokocfg @@ -33,8 +33,8 @@ variable "management_cidrs" { default = "0.0.0.0/0" } -variable "node_private_cidr" { - default = "10.0.0.0/8" +variable "node_private_cidrs" { + default = ["10.0.0.0/8"] } cluster "packet" { @@ -56,7 +56,7 @@ cluster "packet" { ssh_pubkeys = var.ssh_public_keys management_cidrs = var.management_cidrs - node_private_cidr = var.node_private_cidr + node_private_cidrs = var.node_private_cidrs worker_pool "pool-1" { count = var.workers_count diff --git a/pkg/assets/generated_assets.go b/pkg/assets/generated_assets.go index 25d02c86c..9315f4418 100644 --- a/pkg/assets/generated_assets.go +++ b/pkg/assets/generated_assets.go @@ -6587,9 +6587,9 @@ var vfsgenAssets = func() http.FileSystem { "/terraform-modules/packet/flatcar-linux/kubernetes/bootkube.tf": &vfsgen۰CompressedFileInfo{ name: "bootkube.tf", modTime: time.Date(1970, 1, 1, 0, 0, 1, 0, time.UTC), - uncompressedSize: 2112, + uncompressedSize: 2125, - compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x56\xdd\x6a\x23\x47\x13\xbd\xd7\x53\x14\xda\x6f\x61\xfd\x61\x8f\xd6\xce\x06\x76\x0d\x22\x24\x76\x08\xbe\x31\x26\x7b\x91\x0b\x63\x9a\x56\x77\x8d\xa6\x51\xab\x6b\xe8\xaa\x91\xac\x2c\x7e\xf7\x50\xd3\x1a\x79\x2c\xdb\x21\x83\xc1\xd0\xe7\xcc\xa9\xae\xbf\x33\x8a\xe4\x6c\x64\xf8\x31\x01\xb0\x6d\x30\x8c\x79\x83\x19\xe6\x50\x53\x5e\x5b\xf9\x34\xfd\xc8\x67\x6d\x0e\x1b\x2b\x58\x7d\xe4\xe9\x29\x6c\x6c\xae\x5c\xec\x58\x30\x9b\x64\xd7\x58\x4e\x7c\x62\xf3\x37\x25\x3c\x99\x3c\x4d\x26\x6b\xf2\x5d\x44\x98\x2e\x88\x64\xd5\x2d\x70\xda\xab\x33\x75\xd9\x21\x94\x67\x0e\xd3\xaa\x9a\x95\xbf\x03\x6d\x02\x30\x56\x86\xf9\xab\x60\x93\x09\xc0\x07\xb8\xb2\x29\x91\x40\xc7\x08\x6e\xe7\x62\x70\xe0\xb1\xc5\xe4\x31\xb9\x80\x0c\x94\xc0\x51\x92\x4c\x31\x62\x66\xa0\x0c\xd2\x60\xc8\x70\x7d\xfb\x1d\x32\x3a\xca\x9e\x5f\x24\xcb\x70\x78\xe6\x70\xdf\xd7\xa3\x7a\x46\x1f\x5e\x72\x0d\x3e\x0a\xe6\x64\xa3\x72\x9f\x6b\xf4\x9f\x6a\xa3\x52\x28\xce\xbf\x8a\x5b\xa4\x20\x9c\x82\x87\x90\xa0\xb5\x6e\x85\x62\x3c\x6e\x82\xc3\x6a\x9c\xcb\xe5\xb8\x2d\x2a\xf5\xd1\xbf\x17\x39\xbc\x11\xdc\x32\xab\x6e\xc8\x00\xe3\x9c\x95\x77\x80\x26\x00\x09\x65\x4b\x79\x65\xd6\xd2\x1d\xd3\x46\xd0\x90\x0c\x26\xdf\x52\x48\xc2\x07\xe2\xbb\xf7\xaf\xfe\x5f\x59\xe7\x90\xd9\xec\x47\xca\x84\x76\xf3\xa5\x34\xf5\x3b\x46\x74\x02\x7b\x00\xee\x7a\x0d\xb8\xbd\xb9\x82\xc5\x0e\x3a\x0e\x69\xa9\x6d\x04\x67\xd3\x59\x46\xeb\x1a\xb8\xb2\x31\x38\x02\xdb\x09\x79\x14\x74\x12\x28\x01\xb5\xfd\xbf\x6d\x90\xa6\xa7\xd7\x21\xb3\xf4\xfa\x0d\xb1\x68\x71\xa9\xcb\x87\x20\x57\x37\xd7\x7f\x56\xa3\x84\x43\x6b\x5e\xc8\x99\x35\x4a\x43\x5e\xa7\xf5\x10\x77\xfe\xbf\x1f\x2e\xf8\xac\x72\x9f\xfa\x8a\x90\xc7\x43\x3a\x8a\x9c\xc2\xf9\xc9\xd3\x54\x93\x6a\xc9\xf7\x27\x00\xaf\xeb\x3d\x60\xba\x18\x98\xb5\x50\x47\xd4\x42\x1b\x63\xa3\xf5\xf0\xb4\xb6\x21\x19\xee\xea\x3a\x3c\x1e\xed\xc9\x0b\x4c\x9b\x94\xec\x22\xa2\xc9\xd8\x52\x16\x2d\xe3\x48\xfe\x18\x7b\xa6\xdb\xe5\x32\xe3\xd2\xf6\xd5\x3c\xa6\x8f\x30\x4d\xd3\x61\x16\x36\x1b\x1b\x83\x0f\xb2\x33\x2d\xe6\x40\xde\x34\xd4\x65\x1e\xae\xf6\x3e\xa3\x34\xff\x3a\xb0\x2a\xf7\x2d\x63\x8c\x75\xdf\x2d\xf4\xa0\xb6\x10\x51\xb4\x47\xbe\x50\x8c\xc2\xa6\xc0\x66\x0f\xef\xa3\xfc\x0b\xa3\x0f\xf2\xfb\xa3\x64\x0b\x75\xb4\x4b\x06\x21\xf8\xf5\xee\x06\xca\x22\xaa\xbc\x12\x8d\x6d\x43\x39\xd1\x2d\xcf\xd6\x14\x6e\x51\x7f\x9f\x50\x52\xf8\x2d\x92\x5b\x41\x19\x6f\x95\xdf\x0f\xf0\x1a\xc5\x7a\x2b\x76\xe8\xb2\xc6\xfa\x50\x06\x52\xa4\xe5\xcb\xd9\x6c\xbb\xdd\x56\x65\x63\x2a\x47\xeb\x99\xc7\x0d\x46\x6a\x31\xf3\xcc\x93\xe3\xd9\xde\x2b\x66\x2b\xdc\x9d\xd5\x68\xa5\xcb\xc8\xb3\x41\x75\x76\x50\x1b\x4e\x06\xa9\x84\x02\xdc\x50\x17\x3d\xd8\xb8\xb5\x3b\x86\x8c\x4c\x71\x83\x7a\xb7\xf3\x6f\x17\xd5\xd7\xcf\xd5\xd7\xea\xfc\xe2\x8b\x5e\x68\xa1\x77\x47\x6f\x06\x91\x7e\xdc\x34\xf1\xfb\xe9\x98\x3a\xfb\xe9\x62\xfa\xa0\xd9\xaa\x63\xb3\x64\xdb\x1a\xa1\x15\x26\x7e\x3d\x51\x12\xd9\x1c\x58\xf0\x8b\x1a\xb2\xb3\xf2\x69\xef\xae\xcf\x96\x60\x8e\xa4\x1e\x8a\x6b\xe9\x36\xbe\x06\xf9\x04\x2e\xe1\xfe\xe1\x79\x48\x5f\x46\x79\xff\x02\xa5\x43\x7f\x21\x84\xc4\x62\x63\x04\xd7\x7b\xc7\x99\x0e\xc9\x59\x9b\x69\x70\x0f\xd7\xd8\x2c\xfa\xfd\xd8\x37\x6f\xdb\x04\xd7\x00\x37\xa1\x65\xf8\xe3\xf6\x8e\x4f\x81\x09\xb6\xbd\x09\x0d\xf3\x08\xb5\x0d\x91\x6d\x8d\xa0\x2b\xc4\xea\x30\xc5\x98\xb4\xae\x03\x66\x42\x5a\x50\x97\x7c\x3f\x95\xa6\x10\xe7\x43\x26\x2e\xef\x5a\x3d\xf4\x46\xb2\xad\xeb\xe0\x8e\x2c\xe0\x0d\x86\xe6\x13\x96\x89\x32\x9a\xc7\x9f\x3f\x7f\x33\x2e\x19\xd7\xa0\x5b\xed\xdf\x78\x0b\xea\x17\x95\x52\x92\x6c\xdd\xca\xac\xed\xa3\x6e\xa1\x71\x94\x0f\x9f\xd9\x37\xc1\xfe\xb5\x48\x9d\x37\x6d\xa6\x4d\xf0\xfd\x4f\x83\xe9\xf0\x0d\x9c\x4e\x9e\x26\xff\x04\x00\x00\xff\xff\xd6\xf1\x4c\xed\x40\x08\x00\x00"), + compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x56\xdf\x6b\xe3\x46\x10\x7e\xf7\x5f\x31\xe8\x1a\x7a\x57\x12\x29\x97\x5e\xe1\x2e\x60\x4a\x9b\x2b\x25\x2f\x21\x70\x0f\x7d\x08\x61\x59\xef\x8e\xac\xc5\xeb\x1d\xb1\x33\xb2\xe3\x1e\xf9\xdf\xcb\x6a\x2d\x5b\x76\xec\x72\x22\x10\xd8\xef\xd3\x37\xfb\xcd\x2f\xd9\x93\xd1\x9e\xe1\xfb\x04\x40\xb7\x4e\x31\xc6\x15\x46\x98\x42\x4d\x71\xa9\xe5\x7d\x71\xc1\x57\x6d\x74\x2b\x2d\x58\x5e\x70\x71\x09\x2b\x1d\x4b\xe3\x3b\x16\x8c\x2a\xe8\x25\xe6\x13\x1b\x58\xfd\x4b\x01\x3f\x4c\x5e\x27\x93\x25\xd9\xce\x23\x14\x33\x22\x59\x74\x33\x2c\x7a\x75\xa6\x2e\x1a\x84\xfc\x4c\xa1\x28\xcb\x2a\xff\xed\x68\x13\x80\xb1\x32\x4c\xdf\x04\x9b\x4c\x00\xde\xc1\x9d\x0e\x81\x04\x3a\x46\x30\x1b\xe3\x9d\x01\x8b\x2d\x06\x8b\xc1\x38\x64\xa0\x00\x86\x82\x44\xf2\x1e\x23\x03\x45\x90\x06\x5d\x84\xaf\x0f\xdf\x20\xa2\xa1\x68\xf9\xc0\x2c\xc3\xee\x99\xc2\x53\x9f\x8f\x72\x8f\x3e\x1f\x72\x15\xbe\x08\xc6\xa0\x7d\xe2\xee\x73\xf4\x43\xb9\x49\x52\x28\xc6\xbe\x89\x9b\xa5\xc0\x5d\x82\x05\x17\xa0\xd5\x66\x81\xa2\x2c\xae\x9c\xc1\x72\xec\xe5\x76\x5c\x96\x24\x75\x61\xcf\x45\x76\x27\x82\x6b\xe6\xa4\xeb\x22\xc0\xd8\x73\xe2\xed\xa0\x09\x40\x40\x59\x53\x5c\xa8\xa5\x74\xc7\xb4\x11\x34\x98\xc1\x60\x5b\x72\x41\x78\x47\x3c\x7b\xff\xf2\x97\x52\x1b\x83\xcc\x6a\xdb\x52\xca\xb5\xab\x4f\xb9\xa8\xdf\xd0\xa3\x11\xd8\x02\xf0\xd8\x6b\xc0\xc3\xfd\x1d\xcc\x36\xd0\xb1\x0b\xf3\x54\x46\x30\x3a\x5c\x45\xd4\xa6\x81\x3b\xed\x9d\x21\xd0\x9d\x90\x45\x41\x23\x8e\x02\x50\xdb\xff\x5b\x3b\x69\x7a\x7a\xed\x22\x4b\xaf\xbf\xbf\xc6\xcf\xbc\x8b\x72\xff\x58\x8e\xfc\xba\x56\x1d\xa8\xa9\x25\x4a\x43\x36\x35\xeb\x2e\xec\xf4\xa7\xef\x67\xed\x3d\x5d\x3f\x9f\xf2\xf7\x5a\x24\x87\x2d\x59\x65\x9c\x3d\x48\xfd\x90\xd5\x01\x4b\x53\x82\x31\xc9\x1e\x51\x33\x6d\x8c\x8d\x66\xc5\xd2\x52\xbb\xa0\xb8\xab\x6b\xf7\x72\x34\x34\x07\x58\xaa\x58\xd0\x33\x8f\x2a\x62\x4b\x51\x52\x4e\x47\xf2\xc7\xd8\x9e\xae\xe7\xf3\x88\x73\xdd\xa7\xf6\x98\x3e\xc2\x92\x4d\x83\x51\x58\xad\xb4\x77\xd6\xc9\x46\xb5\x18\x1d\x59\xd5\x50\x17\x79\xb8\xda\x79\x46\xee\x84\xaf\x8e\x93\x72\x5f\x3f\x46\x5f\x43\x43\x2c\x68\x21\xed\x08\x8f\x92\x2a\x66\x33\x45\x25\x58\x65\x58\x6d\xe1\x6d\x94\xff\x61\xf4\x41\xfe\x7a\x91\xa8\xa1\xf6\x7a\xce\x20\x04\x7f\x3c\xde\x43\x9e\xca\x24\x9f\x88\x4a\xb7\x2e\x9f\xa4\x91\x8f\x5a\x65\x6e\x56\x3f\x4f\xc8\x16\xfe\xf4\x64\x16\x90\x7b\x21\xc9\x6f\xbb\x79\x89\xa2\xad\x16\x3d\x54\x39\xc5\x7a\xd7\xbf\xd0\x88\xb4\x7c\x5b\x55\xeb\xf5\xba\xcc\xfd\x55\x1a\x5a\x56\x16\x57\xe8\xa9\xc5\xc8\x95\x25\xc3\xd5\x76\x71\x54\x0b\xdc\x5c\xd5\xa8\xa5\x8b\xc8\xd5\xa0\x5a\xed\xd4\x86\x93\x41\x2a\xa0\x00\x37\xd4\x79\x0b\xda\xaf\xf5\x86\x21\x22\x93\x5f\x61\xba\xdb\xc7\x2f\x37\xe5\xe7\xeb\xf2\x73\xf9\xf1\xe6\x53\xba\xd0\x2c\xdd\x1d\xad\x1a\x44\xfa\x76\x4b\xc6\x9f\x8a\x31\xb5\xfa\xf5\xa6\x78\x4e\x6e\xd3\xfa\x66\x89\xba\x55\x42\x0b\x0c\xfc\xb6\xa3\xc4\xb3\xda\xb1\xe0\xf7\x34\x8a\x46\xcb\xfb\xed\xaa\xdd\x0f\x90\x3a\x92\x7a\xce\x2b\x2c\xcd\xe6\x5b\x90\x3f\xc0\x2d\x3c\x3d\xef\x9b\xf4\x30\xca\xf9\x0b\xe4\x0a\xfd\x83\xe0\x02\x8b\xf6\x1e\x4c\xbf\x48\xae\x52\x93\x5c\xb5\x91\x86\x55\x62\x1a\x1d\x25\x7d\x4c\xb6\xc5\x5b\x37\xce\x34\xc0\x8d\x6b\x19\xfe\x7e\x78\xe4\x4b\x60\x82\x75\xbf\x91\x86\x7e\x84\x5a\x3b\xcf\xba\x46\x48\x23\xc4\x69\x97\xe7\x2d\x95\xf2\x3a\x60\xca\x85\x19\x75\xc1\xf6\x5d\xa9\x32\x71\x3a\x38\x31\x71\xd3\xa6\x43\xab\x24\xea\xba\x76\xe6\x68\x05\x9c\x60\x24\x3f\x6e\x1e\x28\xa2\x7a\xf9\xed\xfa\x8b\x32\x41\x99\x06\xcd\x62\xfb\xc6\x29\xa8\x1f\x54\x0a\x41\xa2\x36\x0b\xb5\xd4\x2f\x69\x0a\x95\xa1\xb8\xfb\xe6\x9e\x04\xfb\xd7\x3c\x75\x56\xb5\x91\x56\xce\xf6\xbf\x13\x8a\xe1\x83\x58\x4c\x5e\x27\xff\x05\x00\x00\xff\xff\xcf\x35\x0f\x17\x4d\x08\x00\x00"), }, "/terraform-modules/packet/flatcar-linux/kubernetes/bootstrap-configs.tf": &vfsgen۰CompressedFileInfo{ name: "bootstrap-configs.tf", @@ -6601,9 +6601,9 @@ var vfsgenAssets = func() http.FileSystem { "/terraform-modules/packet/flatcar-linux/kubernetes/calico-host-protection.tf": &vfsgen۰CompressedFileInfo{ name: "calico-host-protection.tf", modTime: time.Date(1970, 1, 1, 0, 0, 1, 0, time.UTC), - uncompressedSize: 1504, + uncompressedSize: 1507, - compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x53\x4f\xab\xe3\x46\x0c\xbf\xfb\x53\x08\xb3\x87\x6e\x49\x3c\xdd\x43\x29\x3c\xc8\xe9\xed\xa1\xb7\x85\xf6\xdd\x4a\x09\xca\x58\x79\x1e\x22\x8f\xcc\x48\xce\x6b\x78\xe4\xbb\x97\x19\xdb\x71\xc8\x6e\xb7\x6c\x2e\x06\x8d\x7e\x7f\xf4\x93\xe2\x1c\xbc\x7c\xf9\xfc\xe5\x09\x9e\xc7\x94\x28\x1a\x5f\x36\x70\x10\xb1\xd3\x78\x20\x08\x51\x0d\x99\x15\x90\x19\x7c\x87\xc9\x14\x42\x84\x01\x13\x32\x13\x6f\xe0\xad\x0b\xbe\x03\x8f\xa3\x92\x56\xce\x81\x47\x0e\x5e\xb6\x9d\xa8\x6d\x87\x24\x46\xde\x82\xc4\x09\xba\xb0\x61\x29\x99\xc0\x11\x03\x83\x78\x8f\x1a\x24\x22\x67\x65\x54\x08\x96\x89\x5e\xa9\x48\x15\x00\xb5\x70\xa0\xa3\x24\x02\xeb\x08\x9e\x8b\xc4\x42\x69\x4a\x7c\x6c\x2a\xe7\x32\xe8\x45\xe0\x4d\xd2\x09\x93\x8c\xb1\x05\xeb\x82\x42\x50\x1d\x69\x03\x6f\x04\x3d\x9e\x08\x30\x02\xfd\x63\x09\xc1\xcb\x70\x01\x39\xde\x33\x3e\xff\xf1\x39\x4b\x9a\x64\xaa\x5c\xbf\xc5\xd0\x63\x0c\x47\x52\x53\x68\x43\x22\x6f\x92\x26\xab\xd6\x89\x12\xbc\x05\x66\x38\x10\xe0\x30\x70\xa0\x36\xa3\x67\xbb\x39\xb5\xdf\x89\xfb\x39\xba\x06\x5e\xb2\x25\x8a\x3a\x26\xca\x68\xb4\x49\x3f\x0b\x63\x22\xf0\x89\xd0\x6e\xd3\x2e\x36\xbe\x9f\xe9\x5d\x4a\x4b\x0c\x7f\x12\x41\x67\x36\xe8\x93\x73\xaf\xc1\xba\xf1\xd0\x78\xe9\xdd\x29\xc4\xb3\xf0\xc9\xb1\x9c\xa4\x17\x0b\x67\x72\x25\x1d\x75\x9f\x3e\xfd\xf6\x2b\x1c\x25\x41\x9f\x5d\xb7\x64\x18\x58\x9b\x2a\x91\xca\x98\x3c\x41\xcd\xe2\x91\xf7\xc7\xc0\x54\x43\x3d\xf9\xd9\xfb\xd4\x6a\x0d\xef\x15\x64\xe4\x9e\xd0\x77\xb0\x83\xdc\xa2\x64\x3f\xd5\x1f\xde\xcf\x98\x1a\x54\x25\xdb\xb7\x21\x5d\xdd\x14\x81\xcb\x79\x6e\xf5\xa2\x46\xbd\x9b\x88\x5c\x21\xda\x40\xfd\x73\x73\xc1\x9e\xeb\x8f\x55\x05\xe0\x25\x1a\x45\x83\x99\xf2\x87\xf9\xdc\x87\xf7\xec\xa8\x39\x23\x8f\x74\xad\x3f\x66\x97\x81\x29\x62\x4f\xb0\x83\xaf\xd9\x6e\x1b\xde\xce\x69\xfb\x36\x3d\x92\x54\xd7\xea\x7f\x22\xc9\x2b\xda\xaf\x2b\x9a\xd2\x59\x46\xd9\x81\x51\x3f\x30\x1a\x2d\x13\x0d\x68\x5d\xd3\x4b\x3b\x32\x5d\xdd\xb7\xb7\x5c\x22\x69\xac\x1f\xb8\xde\x14\x36\x80\x22\x42\xb1\x1d\x24\x44\x53\xd8\xc1\x5f\xa5\x5c\xd6\x00\x2d\x9d\x83\xa7\xe9\x3f\xea\x4f\x79\xba\x52\x68\xb2\x89\x24\xcc\x94\x14\x9e\xe6\xfe\xf7\xf9\x0b\x50\x62\x59\x7f\x25\xa0\x19\x98\xd5\xf2\xf3\x75\x7b\x90\xd8\xfe\x52\x6f\x56\x90\xb4\xb4\x5f\x91\x3b\x78\x40\xac\x9d\x21\x1a\xa5\x23\xfa\xb9\x7d\x07\xf5\x23\x17\xe3\x81\x38\xcf\xb2\x7a\x02\xa8\x4b\x16\xcb\xa4\x75\xc6\x85\xf8\x9a\x48\xb5\xbe\xef\xca\x3e\xec\x32\x50\x7d\x33\xbf\x0e\xbb\x36\x5e\xab\xfb\xef\xdf\x93\x74\x8f\x11\x5f\xa9\xa7\x68\x7b\x1f\xda\x94\x0d\xe4\xbb\x78\x2c\x97\x5e\xcf\xa3\x1a\xa5\x5b\xe3\x92\x7a\x06\x94\x28\x86\x14\xce\x68\x54\x1a\x36\x77\x8f\x83\xb4\x5f\xd5\x94\x52\xce\xaa\xd4\x57\x43\xd7\x72\xfa\xdf\xbd\xd3\xff\xbc\xfa\x6f\x1e\x4e\x3e\xd9\x7f\x03\x00\x00\xff\xff\x52\x2d\x58\x11\xe0\x05\x00\x00"), + compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x53\x4f\x8b\xeb\x46\x0c\xbf\xfb\x53\x08\xf3\x0e\x6f\x4b\xe2\xe9\x3b\x94\xc2\x42\x4e\xfb\x0e\xbd\x3d\x68\xf7\x56\x4a\x50\xc6\xca\x7a\x88\x3c\x32\x23\x39\xdb\xb0\xe4\xbb\x97\x19\xdb\x71\xd8\xbe\x6e\x79\xb9\x18\x34\xfa\xfd\xd1\x4f\x8a\x73\xf0\xfc\xed\xeb\xb7\x47\x78\x1a\x53\xa2\x68\x7c\xd9\xc0\x41\xc4\x4e\xe3\x81\x20\x44\x35\x64\x56\x40\x66\xf0\x1d\x26\x53\x08\x11\x06\x4c\xc8\x4c\xbc\x81\xd7\x2e\xf8\x0e\x3c\x8e\x4a\x5a\x39\x07\x1e\x39\x78\xd9\x76\xa2\xb6\x1d\x92\x18\x79\x0b\x12\x27\xe8\xc2\x86\xa5\x64\x02\x47\x0c\x0c\xe2\x3d\x6a\x90\x88\x9c\x95\x51\x21\x58\x26\x7a\xa1\x22\x55\x00\xd4\xc2\x81\x8e\x92\x08\xac\x23\x78\x2a\x12\x0b\xa5\x29\xf1\xb1\xa9\x9c\xcb\xa0\x67\x81\x57\x49\x27\x4c\x32\xc6\x16\xac\x0b\x0a\x41\x75\xa4\x0d\xbc\x12\xf4\x78\x22\xc0\x08\xf4\xb7\x25\x04\x2f\xc3\x05\xe4\x78\xcf\xf8\xf4\xfb\xd7\x2c\x69\x92\xa9\x72\xfd\x16\x43\x8f\x31\x1c\x49\x4d\xa1\x0d\x89\xbc\x49\x9a\xac\x5a\x27\x4a\xf0\x1a\x98\xe1\x40\x80\xc3\xc0\x81\xda\x8c\x9e\xed\xe6\xd4\x7e\x23\xee\xe7\xe8\x1a\x78\xce\x96\x28\xea\x98\x28\xa3\xd1\x26\xfd\x2c\x8c\x89\xc0\x27\x42\xbb\x4d\xbb\xd8\xf8\x38\xd3\xbb\x94\x96\x18\xfe\x20\x82\xce\x6c\xd0\x47\xe7\x5e\x82\x75\xe3\xa1\xf1\xd2\xbb\x53\x88\x67\xe1\x93\x63\x39\x49\x2f\x16\xce\xe4\x4a\x3a\xea\xbe\x7c\xf9\xf5\x17\x38\x4a\x82\x3e\xbb\x6e\xc9\x30\xb0\x36\x55\x22\x95\x31\x79\x82\x9a\xc5\x23\xef\x8f\x81\xa9\x86\x7a\xf2\xb3\xf7\xa9\xd5\x1a\xde\x2a\xc8\xc8\x3d\xa1\xef\x60\x07\xb9\x45\xc9\x3e\xd7\x9f\xde\xce\x98\x1a\x54\x25\xdb\xb7\x21\x5d\xdd\x14\x81\xcb\x79\x6e\xf5\xa2\x46\xbd\x9b\x88\x5c\x21\xda\x40\xfd\x53\x73\xc1\x9e\xeb\x87\xaa\x02\xf0\x12\x8d\xa2\xc1\x4c\xf9\xc3\x7c\xee\xd3\x5b\x76\xd4\x9c\x91\x47\xba\xd6\x0f\xd9\x65\x60\x8a\xd8\x13\xec\xe0\xdf\x6c\xb7\x0d\x6f\xe7\xb4\x7d\x9b\xde\x93\x54\xd7\xea\x7f\x22\xc9\x2b\xda\xaf\x2b\x9a\xd2\x59\x46\xd9\x81\x51\x3f\x30\x1a\x2d\x13\x0d\x68\x5d\xd3\x4b\x3b\x32\x5d\xdd\xf7\xb7\x5c\x22\x69\xac\x1f\xb8\xde\x14\x36\x80\x22\x42\xb1\x1d\x24\x44\x53\xd8\xc1\x9f\xa5\x5c\xd6\x00\x2d\x9d\x83\xa7\xe9\x3f\xea\x4f\x79\xba\x52\x68\xb2\x89\x24\xcc\x94\x14\x1e\xe7\xfe\xb7\xf9\x0b\x50\x62\x59\x7f\x25\xa0\x19\x98\xd5\xf2\xf3\x75\x7b\x90\xd8\xfe\x5c\x6f\x56\x90\xb4\xb4\x5f\x91\x3b\x78\x87\x58\x3b\x43\x34\x4a\x47\xf4\x73\xfb\x0e\xea\xf7\x5c\x8c\x07\xe2\x3c\xcb\xea\x09\xa0\x2e\x59\x2c\x93\xd6\x19\x17\xe2\x4b\x22\xd5\xfa\xbe\x2b\xfb\xb0\xcb\x40\xf5\xcd\xfc\x3a\xec\xda\x78\xad\xee\xbf\x7f\x4d\xd2\x3d\x46\x7c\xa1\x9e\xa2\xed\x7d\x68\x53\x36\x90\xef\xe2\x7d\xb9\xf4\x7a\x1e\xd5\x28\xdd\x1a\xbd\x44\x8f\xf6\x79\x09\x3f\xe3\x06\x69\xcb\xf3\xe6\xae\xa6\x94\x72\x2a\xa5\x3e\x4b\x97\x7a\x49\x6f\x48\xe1\x8c\x36\x3d\xea\x43\x86\x5d\xcb\xf5\x7f\x78\xaa\xff\x79\xf8\xdf\xbd\x9d\x7c\xb5\xff\x04\x00\x00\xff\xff\x72\x8f\x3a\x1a\xe3\x05\x00\x00"), }, "/terraform-modules/packet/flatcar-linux/kubernetes/calico-host-protection.yaml.tmpl": &vfsgen۰CompressedFileInfo{ name: "calico-host-protection.yaml.tmpl", @@ -6666,9 +6666,9 @@ var vfsgenAssets = func() http.FileSystem { "/terraform-modules/packet/flatcar-linux/kubernetes/variables.tf": &vfsgen۰CompressedFileInfo{ name: "variables.tf", modTime: time.Date(1970, 1, 1, 0, 0, 1, 0, time.UTC), - uncompressedSize: 6428, + uncompressedSize: 6444, - compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xa4\x58\x7b\x53\xdc\x38\x12\xff\x7f\x3e\x45\xd7\xec\x56\x01\x55\xd8\x3c\x96\x25\x81\xda\x5c\x55\x02\xc9\x86\x0b\xb0\xdc\x41\xee\xae\xf6\x36\xe5\x68\xa4\xb6\xad\x45\x96\x7c\x92\x3c\x8f\xa4\xf2\xdd\xaf\x5a\xb2\x87\x79\x78\x08\xdc\xe5\x9f\x00\x6e\xfd\xfa\xa7\x7e\xb7\x7e\x80\xf3\xeb\x5b\xb0\xc8\x8d\x15\x6e\x30\x18\x33\x2b\xd9\x48\x21\x0c\xb9\x6a\x9c\x47\x9b\x69\x56\xe1\x10\xbe\x0e\x00\xfc\xac\x46\x68\xff\xbd\x02\xe7\xad\xd4\xc5\x00\x40\xa0\xe3\x56\xd6\x5e\x1a\x0d\xaf\x60\xf8\x51\xcb\xff\x34\x08\xed\x71\xa0\xe3\xb0\x5d\x5b\xac\x51\x0b\x14\xe0\x0d\x08\xed\xb2\x2f\x46\xe3\xce\x70\xf0\x6d\x51\x63\xf7\xf7\xe7\x68\x23\xf2\xbf\x1b\x8d\xb0\x8d\x69\x91\x02\x4e\x59\x55\x2b\x4c\xb9\xa9\x56\xd1\x6b\x6b\xfe\x44\xee\x33\x29\x22\xfe\x0a\xd0\x0d\xe3\xf7\xe8\xa1\x95\x82\x8b\xf3\x16\xf1\x68\xff\x67\xcc\xf1\x84\x27\x9c\xe3\x49\x72\xc4\x5f\x1c\x24\x2f\x5f\xf0\x83\xe4\xe4\xe8\x84\x1f\x9e\xec\x8f\x0e\x5f\x08\xbe\xaa\x8a\x35\xbe\xcc\xbc\xb9\x47\xfd\x98\xaa\xd7\x8d\x2f\x21\x48\x75\xaa\x3e\x7c\x3c\xff\xfd\xe2\xcc\xeb\x0f\xf9\xf5\xbb\xa3\xe6\xaf\xb7\xbf\x4e\xa7\x97\xf2\xe8\xd7\xf2\x9f\xd3\xf2\xcb\x87\x9b\x3f\xa3\x9a\x1f\xe0\xda\x08\x5c\x72\x95\x71\x19\xb3\xbc\xfc\x8e\xdd\x72\xd6\x28\xdf\xfe\x79\xc8\x2a\x71\x7c\x34\x5c\xe7\xf6\x4e\x31\xcf\x99\x85\x33\xa3\x3d\x93\x1a\x2d\x5c\x4a\xdd\x4c\x81\xf0\xa5\x47\xee\x1b\x8b\xe4\x43\xa9\x9d\x67\x4a\xc1\x76\x00\xda\x05\x66\xab\xe3\xa3\x55\x3b\x18\x97\xf1\x92\x69\x8d\xea\x39\xd4\x9c\xa7\xd3\xcf\xe0\xd6\xea\x58\xa4\x95\x5b\x53\xc1\x76\x44\xda\x85\x11\x7a\xb6\x0b\x4c\xd5\x25\xdb\x05\x14\xc5\x5a\xe4\x19\x97\x8d\xd1\x3a\x69\xf4\x73\x88\xf2\xc6\x5a\xd4\xfe\x19\x4c\x5b\x25\x4b\x06\xcc\x8d\xed\xc2\x16\xb6\x0e\x0f\x4e\x0e\xd2\x9f\xd3\xfd\x2d\x48\xc0\x21\x42\xe9\x7d\xed\x4e\xf7\xf6\x26\x93\x49\x9a\x47\xd0\x44\x11\x54\x6a\x6c\xb1\x67\x51\x21\x73\xe8\xf6\x76\x76\xc1\x68\x35\x03\xc2\x92\x37\xff\x7a\xbb\x72\x3d\x6e\xb4\xb7\x46\x29\xb4\x19\x37\x8d\xf6\x7d\x97\xd4\x4d\x35\x42\xbb\x76\xc9\x83\xf5\xcb\x5d\x07\x49\x30\x39\x3c\xe0\x3a\xd8\x96\x29\xa6\x50\x31\x4a\x7a\xb7\x6a\xdf\x05\x02\xa4\xf5\x59\x46\xfe\x29\x75\x15\x53\x2a\x9d\xbe\x3c\xee\xb1\x74\x9b\x4b\xc1\x9a\x9a\x63\x04\x25\x33\x2c\x70\x5b\x21\x23\xeb\x29\x66\x11\x24\x6b\xec\x62\x68\xce\x59\x0c\x00\x28\xcd\x3c\x9e\x06\x73\x26\x23\x63\xbc\xd4\x05\x74\x7e\x35\x1a\x5a\xc5\x66\x8c\x16\xde\xdf\xdd\xdd\xdc\x82\x74\x90\x33\xa9\x48\x4e\x34\x21\x49\x18\x8c\x9a\x02\xa4\x0e\x20\x69\x00\xbd\x2b\xa5\x83\x9a\x79\x5e\x92\xbc\x6b\xea\xda\xb8\x58\x15\x73\x39\x05\x5f\x4a\x77\x1a\x9c\x7e\xba\xb7\x57\x48\x9f\x12\xd7\xe0\xea\xf0\x43\x21\xfd\x1e\x37\x55\x25\xbd\x90\x79\xbe\x37\x3a\xce\x73\x3c\x7c\xc9\x0e\x03\xf2\x7b\x33\xc1\x31\xda\x5d\xf0\x25\x42\x53\x3b\x6f\x91\x55\x01\x95\x33\x0d\x13\x63\xef\x63\x8c\x4c\x4a\xd4\x41\x26\xb2\x76\x68\xe9\x0a\xc2\xa0\x03\x6d\x3c\x58\x54\x33\xba\x1f\x2a\x45\x56\xe6\x01\x9b\x37\x76\x8c\x2e\x85\x5b\x03\x13\x04\x57\x9a\x46\x09\x68\x5c\x87\x31\x8f\xbd\x08\xe6\x60\x22\x7d\x69\x1a\x3f\x07\x69\x01\x76\x81\x69\x01\xc6\x97\x68\x27\xd2\x61\x80\xee\x50\x52\x78\x67\xac\x6f\x34\xf3\xa8\x66\xbb\xe0\x24\x79\x33\x26\x70\xda\xc6\xf9\x4a\x06\x68\xf4\x4f\xa4\x2d\x7d\xc7\x99\x44\x47\x08\x8c\xea\xfc\x48\x61\x45\xce\xf1\x25\xf3\xc0\x09\x3f\x1c\xba\xf0\x50\x32\x07\x23\x44\x0d\xb5\x71\x4e\x52\xd0\x78\x03\x9a\x79\x39\x26\x2d\x5d\xe6\x76\xc1\x20\x2b\x56\xa0\x03\xe6\xc0\xe4\xb9\xe4\x92\x29\xf8\xed\x16\x4c\x0c\xd1\x79\xa4\xec\x06\xf0\x51\xe3\x1f\xac\x15\x4a\x67\x0a\x77\x25\x5a\xa4\x68\xd0\x26\x96\xd1\x65\x64\x60\x63\x26\x55\x08\xdd\x39\x58\xba\x90\x27\xaf\x60\x38\x1c\xac\x27\xc6\xa5\xe1\xcc\xb7\xb5\x46\x19\x26\x82\xcb\xeb\x29\x02\xc5\x32\x44\xd1\x50\x26\x57\xb2\x23\x67\x5c\x2a\xe9\x67\xcf\x69\xc2\x6d\x2e\x74\x47\x43\x8f\xc7\x5a\x99\x59\x50\xda\x4d\x02\x52\x3f\x52\x96\x14\xcf\x9c\x96\x75\x8d\xde\xf5\x69\x56\xd2\xf9\xed\xa8\x7e\x67\x5d\xff\xd9\x1c\x68\xad\xe2\x9e\x19\x9d\xcb\x02\xe6\xd8\x6b\x05\xe6\xdf\x9f\x62\x53\x8d\x82\x8d\x0d\x46\x5b\x64\xe9\x5c\x99\xdd\xe3\xec\x7f\xa0\x75\x7b\xfb\x1e\xea\x66\xa4\x24\x07\x02\x08\x3e\x6f\x1c\x5a\xd8\xe2\xc6\xe2\xd6\xea\xd0\xe0\x1c\xfa\x4c\x48\xbb\x61\x66\x08\xc3\x02\x30\x10\xd2\x22\xf7\xc6\x86\x4c\xb6\x08\x05\x6a\xb4\xcc\xa3\x80\x80\xe0\xba\x50\x1f\x21\xd4\x8a\x71\x14\xb0\xcd\xa3\x51\x1c\x38\xe4\x16\x3d\x95\xe7\x0d\xae\x5d\x62\xa4\xd1\x53\xd9\xc8\x2a\xdf\xf4\x73\x2a\x67\x4e\x72\xa6\xe0\x3a\x0a\xc2\xd5\xdd\xc7\x74\x1d\xba\xed\x2c\xbd\xd0\xb2\xce\x58\xe3\x8d\x40\x1a\x2d\xa4\xd1\x59\x85\xbe\x34\xfd\x13\xda\x55\xf8\x14\x8c\x30\x3f\x12\x02\xac\x34\xce\xc3\xc5\xcd\xf8\x08\x98\x10\x16\x9d\xdb\x78\xbd\xb5\xee\x92\x4b\xeb\x7c\x92\x9b\x46\x8b\xd5\x71\xd1\x88\x8c\x4b\xd1\xef\x8d\xb3\x8b\xf3\xbf\x47\x8d\x96\xe9\x22\xd6\x7a\xe7\x64\xa1\xe1\x43\x33\x42\xab\xd1\xa3\x83\xda\x88\x67\x30\x39\xd8\x4f\x0f\xd3\xfd\x74\x7f\xef\xe0\x78\x85\x09\x15\x55\xc9\x71\x23\x9b\x5f\x7e\x79\xfb\xdb\xf9\xe0\x49\x94\x5a\x28\x97\x0e\xee\x4a\x84\x83\x60\x36\x98\x48\xa5\x28\x5a\x2c\x86\xf2\x2d\x42\x9c\xde\x37\x23\xcc\x58\x2d\x63\x45\x8f\x4d\xe5\x60\xdf\x97\x1b\x0f\x50\x48\x0b\xed\xd2\x01\x91\x19\x2c\x5c\xbb\xe7\xca\xf1\xba\x3f\xf5\x5f\xb7\xdb\x3b\x84\xa9\x98\xd4\x99\x6b\xf2\x5c\x4e\x7b\xbd\xf0\xb7\x06\xad\xc4\x98\x57\x51\x3a\x76\x9e\x40\x36\x9e\x9b\x73\x65\xda\x4d\xd0\xa2\x80\xd1\x6c\x4e\x15\xce\x5b\x3e\xd2\x75\x45\x2a\x55\x86\x02\x3a\xce\xe3\xb9\x31\x69\x4b\x39\x75\x63\x9e\x2e\xc9\xec\xc0\xd3\x7d\xbb\x74\x70\xe5\xba\xa8\xe9\xff\xcc\x62\x6d\x2c\xcd\x18\x7d\x65\x66\x64\x8c\x5a\xbf\xfe\xdb\x70\x12\x1a\x47\x4d\x82\xda\x89\x66\x6a\xe6\x25\x77\x30\x07\xa3\x28\xe8\x46\x01\x07\xdb\x67\x4c\x49\x6e\x76\xd6\x8b\x60\xce\x94\xc3\x65\x5e\x15\xd3\xac\xc0\x0a\xb5\x0f\x81\xe7\x7a\x3d\x70\x29\x9d\xa7\x41\x30\xc4\x1d\x45\xa0\xa3\xdc\x2c\x8d\x95\x5f\xe2\x50\xc3\x38\x47\xe7\x88\x5d\xc4\x5b\x6c\x08\xeb\xf6\x5b\x2a\xa7\xcb\xf5\xc2\x08\xcc\x6a\x2b\xc7\xcc\x6f\x4e\x84\xe1\x4d\x14\x78\xa0\x43\xdc\x48\x23\x1d\x77\x54\x7b\x23\x29\xa5\xcc\x04\xa4\xf6\x68\x13\xfa\x02\xde\x32\xea\xdc\x4f\xab\x8a\xad\xc3\x58\x51\x58\x2c\x42\xb7\xe8\xe5\xd2\x7a\x87\xb4\x2f\x24\xe0\xeb\x87\x53\x70\xc9\x66\x68\x61\xbb\xf5\x84\x23\x66\xde\x36\xd8\x53\x9c\xe7\xfe\x5f\xf4\x19\xc9\x2e\x33\x8b\xf9\x18\xc0\x33\x29\xfa\x3d\x76\x5b\x23\x97\xf9\xac\x1b\x5f\x4b\x66\xc5\x84\x59\x8a\xbf\xc5\xb3\x71\x91\x68\x67\x6a\x97\xc2\x6b\xa8\x58\xdd\xf6\x1b\xba\xd1\x3d\x86\x09\xa6\x62\x21\x77\xb6\x1e\x1a\x79\xf2\xe3\x8f\x5f\xa5\x16\x38\xfd\xb6\x15\x66\x3d\x12\x1e\x33\xd5\x84\xf9\x86\x7e\x59\xd0\x03\x17\xe7\x69\xdc\x65\xc3\x58\x56\xd3\x27\xed\xe3\x44\x86\x51\x21\x25\x2f\x0d\x88\x0f\x30\x26\x87\xcf\x2b\xf7\xcc\x5a\xbb\x7c\x86\xce\x14\x29\xbc\x8d\x0b\xd5\x29\xac\xc8\xc2\x2b\xf8\xba\xb0\x1a\x24\xfb\xf0\x0a\xfe\x18\xfe\xb2\x2c\xf5\x97\x3f\x86\xf0\x6d\xdd\x0b\x15\xab\x97\x7a\xfd\xa2\x33\xbe\x7e\x7b\xd4\x15\x1d\xc5\xcd\xe5\xfb\xa6\x9b\x34\xc3\x35\xdd\x29\x0c\x87\xc1\x80\x43\x8d\x53\x9f\xcc\x47\xc0\x61\x3a\x18\x74\x2e\x64\x73\x0e\xcb\x46\x0d\xce\xd3\x73\xbb\x52\x52\xa1\xe8\xcc\xba\x6a\xbc\xcf\x83\x8a\xd5\x29\xbc\xd6\x80\x55\xed\x67\x6d\xc4\x43\x85\x4c\x3b\x18\x92\xed\xb5\x99\x47\xc9\xa2\xa2\x61\x0a\x9f\x97\xb9\x7d\x0e\xfe\x1a\xf0\xd2\x18\x47\x05\x77\xb6\xc4\x2b\x4c\xd9\x15\x2d\x3e\x18\x23\xa1\x36\x46\x6d\x39\x10\x48\x1d\x29\x9a\x9a\x2e\xdc\x0d\x91\x4f\x6d\x24\xab\x6f\x48\xd2\x85\xf4\x74\xa8\xf2\x8c\x06\x03\x14\x19\xf5\x32\x85\xbd\xc6\x1f\x9e\x47\xf9\xd8\x32\x50\xe5\x10\xcf\x40\x7b\xa6\x1b\xf6\x63\xe3\xe8\xbc\xd8\x9f\xa0\x7d\x55\xc2\x2b\x97\xd1\xc0\xed\xbc\x65\xf5\x63\x75\xe2\xee\xf2\x16\xde\x74\x82\xc1\x83\x1f\x22\x83\x9e\x81\x6a\x5d\x1b\xcd\x52\x68\x1f\x34\xc5\xc7\xa7\xc7\x6b\x76\x10\x49\xa4\x88\x79\x1a\x7e\x89\xe3\x21\x7d\x44\xc6\xcb\x10\x43\x3d\xea\x43\x95\x66\x7a\xb6\xd3\x0e\xce\x68\xbd\xcc\x25\x67\x7e\xf9\x51\x8a\xa3\xf5\x2e\x1b\x33\x25\x85\xf4\xb3\xac\x46\x2b\x8d\xc8\x4a\xd3\x6c\xe8\x25\xff\x68\x25\x49\x3d\xad\x57\xa1\x53\x2c\x60\x53\x04\xc7\xd3\x4f\x7d\xbb\x78\xf9\xe2\x78\x7f\xd9\x4e\x9e\x15\xdf\x31\x0a\x2b\x5c\x0c\xd5\x6e\x70\xa8\xad\xa9\x59\x11\xe6\x6b\x6f\xda\xf7\x8d\x98\x5d\xdf\xe9\x5f\x6b\x8b\xc6\xf0\x2a\xb4\x40\xf1\x66\x76\x7a\x69\xee\x4d\x65\x68\x9f\x1c\xee\xc2\xf0\xcc\x22\xe1\xbf\x99\x9d\x7e\xd4\x2e\x24\xb7\x44\x31\xfc\xb4\xde\x01\xa9\x8e\xd4\xa8\x45\xb6\xa1\xe7\x5c\xb1\xfb\xb6\xc3\x3e\x2c\x44\xb1\x10\xc4\x73\x60\x62\x11\x50\xed\x6d\x2d\x3a\xd3\xd8\x50\xe1\xaf\x64\x51\xfa\xf0\x92\x56\xe0\x2e\x54\x8d\xf3\xdd\xae\x1c\xba\xe6\x68\x06\x4c\x03\x6a\x91\xd0\x02\xf3\x58\x4c\xac\x5e\x5b\x37\x6a\x25\x58\x97\x47\xcb\x0c\xa7\xde\xb2\x2c\x57\x9b\x5c\xf3\x96\xbe\x43\xf8\x0e\x35\xad\x38\xc1\x11\x94\xab\xc9\x42\xae\x26\x73\xc0\x4d\x11\xbb\xd1\x2f\x9f\x56\x33\x97\xdb\x59\xed\x33\x5a\x00\xba\xc1\xe0\x91\xc4\x95\x3a\xe9\x16\xdc\x9a\xb6\x93\x78\x02\x5a\x14\x69\xf4\xa6\x04\x7e\xc2\x0c\x26\x0b\x6d\x2c\x66\xd3\x9f\xf7\x4f\x32\xae\x33\x5e\x22\xbf\xef\xe5\x72\x11\x04\xe1\xec\x1a\x82\x4c\xc8\x15\x3a\xb5\x94\x40\xff\x07\x11\x6e\xb4\xf6\x96\xf1\xfb\xac\x62\x53\x4a\xe5\x8c\x66\xe8\x5e\x2a\x49\x32\x17\x4e\x2a\x36\x4d\x6a\xb4\x09\x09\xb7\xfd\xbb\xdb\x2d\x92\xda\x9a\xe9\x2c\x85\x2b\x36\x95\x55\x53\xb5\x29\x4c\x41\x79\xfd\xfa\x8e\xe2\x57\xc7\x85\xb0\x1d\x8b\x18\xbf\x87\x9a\xd6\xfb\x9b\x8f\x61\x7c\x87\xed\xfd\xf0\xb0\x81\x6c\x8c\x6d\x48\x57\xd2\x03\x73\x89\x74\xa1\xa0\x45\xd3\x75\xc9\xd0\xf1\x91\x7a\x41\x79\x88\xa9\x9d\xc7\x16\xd6\xff\x06\x00\x00\xff\xff\xe5\x3f\xd7\xa3\x1c\x19\x00\x00"), + compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xa4\x58\x7b\x53\xdc\x38\x12\xff\x7f\x3e\x45\xd7\xec\x56\x01\x55\xd8\x3c\x96\x25\x81\xda\x5c\x55\x02\xc9\x86\x0b\xb0\xdc\x41\xee\xae\xf6\x36\xe5\x68\xa4\xb6\xad\x45\x96\x7c\x6a\x79\x1e\x49\xe5\xbb\x5f\x49\xb2\x87\x79\x78\x08\xdc\xe5\x9f\x00\x6e\xfd\xfa\xa7\x7e\xb7\x7e\x80\xf3\xeb\x5b\xb0\xc8\x8d\x15\x34\x18\x8c\x99\x95\x6c\xa4\x10\x86\x5c\x35\xe4\xd0\x66\x9a\x55\x38\x84\xaf\x03\x00\x37\xab\x11\xda\x7f\xaf\x80\x9c\x95\xba\x18\x00\x08\x24\x6e\x65\xed\xa4\xd1\xf0\x0a\x86\x1f\xb5\xfc\x4f\x83\xd0\x1e\x07\x7f\x1c\xb6\x6b\x8b\x35\x6a\x81\x02\x9c\x01\xa1\x29\xfb\x62\x34\xee\x0c\x07\xdf\x16\x35\x76\x7f\x7f\x8e\x36\x4f\xfe\x77\xa3\x11\xb6\x31\x2d\x52\xc0\x29\xab\x6a\x85\x29\x37\xd5\x2a\x7a\x6d\xcd\x9f\xc8\x5d\x26\x45\xc4\x5f\x01\xba\x61\xfc\x1e\x1d\xb4\x52\x70\x71\xde\x22\x1e\xed\xff\x8c\x39\x9e\xf0\x84\x73\x3c\x49\x8e\xf8\x8b\x83\xe4\xe5\x0b\x7e\x90\x9c\x1c\x9d\xf0\xc3\x93\xfd\xd1\xe1\x0b\xc1\x57\x55\xb1\xc6\x95\x99\x33\xf7\xa8\x1f\x53\xf5\xba\x71\x25\x04\xa9\x4e\xd5\x87\x8f\xe7\xbf\x5f\x9c\x39\xfd\x21\xbf\x7e\x77\xd4\xfc\xf5\xf6\xd7\xe9\xf4\x52\x1e\xfd\x5a\xfe\x73\x5a\x7e\xf9\x70\xf3\x67\x54\xf3\x03\x5c\x1b\x81\x4b\xae\x32\x94\x31\xcb\xcb\xef\xd8\x2d\x67\x8d\x72\xed\x9f\x87\xac\x12\xc7\x47\xc3\x75\x6e\xef\x14\x73\x9c\x59\x38\x33\xda\x31\xa9\xd1\xc2\xa5\xd4\xcd\x14\x3c\xbe\x74\xc8\x5d\x63\xd1\xfb\x50\x6a\x72\x4c\x29\xd8\x0e\x40\xbb\xc0\x6c\x75\x7c\xb4\x6a\x07\x43\x19\x2f\x99\xd6\xa8\x9e\x43\x8d\x9c\x3f\xfd\x0c\x6e\xad\x8e\x45\x5a\xb9\x35\x15\x6c\x47\xa4\x5d\x18\xa1\x63\xbb\xc0\x54\x5d\xb2\x5d\x40\x51\xac\x45\x9e\xa1\x6c\x8c\x96\xa4\xd1\xcf\x21\xca\x1b\x6b\x51\xbb\x67\x30\x6d\x95\x2c\x19\x30\x37\xb6\x0b\x5b\xd8\x3a\x3c\x38\x39\x48\x7f\x4e\xf7\xb7\x20\x01\x42\x84\xd2\xb9\x9a\x4e\xf7\xf6\x26\x93\x49\x9a\x47\xd0\x44\x79\xa8\xd4\xd8\x62\xcf\xa2\x42\x46\x48\x7b\x3b\xbb\x60\xb4\x9a\x81\xc7\x92\x37\xff\x7a\xbb\x72\x3d\x6e\xb4\xb3\x46\x29\xb4\x19\x37\x8d\x76\x7d\x97\xd4\x4d\x35\x42\xbb\x76\xc9\x83\xf5\xcb\x5d\x07\x49\x30\x39\x3c\xe0\x12\x6c\xcb\x14\x53\xa8\x98\x4f\x7a\x5a\xb5\xef\x02\x01\xaf\xf5\x59\x46\xfe\x29\xa5\x8a\x29\x95\x4e\x5f\x1e\xf7\x58\xba\xcd\xa5\x60\x4d\xcd\x31\x82\x7a\x33\x2c\x70\x5b\x21\x23\xeb\x29\x66\x11\x24\x6b\xec\x62\x68\xce\x59\x0c\x00\x7c\x9a\x39\x3c\x0d\xe6\x4c\x46\xc6\x38\xa9\x0b\xe8\xfc\x6a\x34\xb4\x8a\xcd\x18\x2d\xbc\xbf\xbb\xbb\xb9\x05\x49\x90\x33\xa9\xbc\x9c\x68\x42\x92\x30\x18\x35\x05\x48\x1d\x40\xd2\x00\x7a\x57\x4a\x82\x9a\x39\x5e\x7a\x79\x6a\xea\xda\x50\xac\x8a\xb9\x9c\x82\x2b\x25\x9d\x06\xa7\x9f\xee\xed\x15\xd2\xa5\x9e\x6b\x70\x75\xf8\xa1\x90\x6e\x8f\x9b\xaa\x92\x4e\xc8\x3c\xdf\x1b\x1d\xe7\x39\x1e\xbe\x64\x87\x01\xf9\xbd\x99\xe0\x18\xed\x2e\xb8\x12\xa1\xa9\xc9\x59\x64\x55\x40\xe5\x4c\xc3\xc4\xd8\xfb\x18\x23\x93\x12\x75\x90\x89\xac\x09\xad\xbf\x82\x30\x48\xa0\x8d\x03\x8b\x6a\xe6\xef\x87\x4a\x79\x2b\xf3\x80\xcd\x1b\x3b\x46\x4a\xe1\xd6\xc0\x04\x81\x4a\xd3\x28\x01\x0d\x75\x18\xf3\xd8\x8b\x60\x04\x13\xe9\x4a\xd3\xb8\x39\x48\x0b\xb0\x0b\x4c\x0b\x30\xae\x44\x3b\x91\x84\x01\xba\x43\x49\xe1\x9d\xb1\xae\xd1\xcc\xa1\x9a\xed\x02\x49\xef\xcd\x98\xc0\x69\x1b\xe7\x2b\x19\xa0\xd1\x3d\x91\xb6\x74\x1d\x67\x2f\x3a\x42\x60\xbe\xce\x8f\x14\x56\xde\x39\xae\x64\x0e\xb8\xc7\x0f\x87\x2e\x1c\x94\x8c\x60\x84\xa8\xa1\x36\x44\xd2\x07\x8d\x33\xa0\x99\x93\x63\xaf\xa5\xcb\xdc\x2e\x18\x64\xc5\x0a\x24\x60\x04\x26\xcf\x25\x97\x4c\xc1\x6f\xb7\x60\x62\x88\xce\x23\x65\x37\x80\x8f\x1a\xf7\x60\xad\x50\x3a\x53\xb8\x2b\xd1\xa2\x8f\x06\x6d\x62\x19\x5d\x46\x06\x36\x66\x52\x85\xd0\x9d\x83\xa5\x0b\x79\xf2\x0a\x86\xc3\xc1\x7a\x62\x5c\x1a\xce\x5c\x5b\x6b\x94\x61\x22\xb8\xbc\x9e\x22\xf8\x58\x86\x28\x1a\xca\xe4\x4a\x76\xe4\x8c\x4b\x25\xdd\xec\x39\x4d\xb8\xcd\x85\xee\x68\xe8\xf1\x58\x2b\x33\x0b\x4a\xbb\x49\x40\xea\x47\xca\x92\xe2\x19\x69\x59\xd7\xe8\xa8\x4f\xb3\x92\xe4\xb6\xa3\xfa\x9d\x75\xfd\x67\x73\xa0\xb5\x8a\x7b\x66\x74\x2e\x0b\x98\x63\xaf\x15\x98\x7f\x7f\x8a\x4d\x35\x0a\x36\x36\x18\x6d\x91\x25\x51\x99\xdd\xe3\xec\x7f\xa0\x75\x7b\xfb\x1e\xea\x66\xa4\x24\x07\x0f\x10\x7c\xde\x10\x5a\xd8\xe2\xc6\xe2\xd6\xea\xd0\x40\x84\x2e\x13\xd2\x6e\x98\x19\xc2\xb0\x00\x0c\x84\xb4\xc8\x9d\xb1\x21\x93\x2d\x42\x81\x1a\x2d\x73\x28\x20\x20\x50\x17\xea\x23\x84\x5a\x31\x8e\x02\xb6\x79\x34\x0a\x01\x21\xb7\xe8\x7c\x79\xde\xe0\xda\x25\x46\x1a\x9d\x2f\x1b\x59\xe5\x9a\x7e\x4e\xe5\x8c\x24\x67\x0a\xae\xa3\x20\x5c\xdd\x7d\x4c\xd7\xa1\xdb\xce\xd2\x0b\x2d\xeb\x8c\x35\xce\x08\xf4\xa3\x85\x34\x3a\xab\xd0\x95\xa6\x7f\x42\xbb\x0a\x9f\x82\x11\xe6\x47\x42\x80\x95\x86\x1c\x5c\xdc\x8c\x8f\x80\x09\x61\x91\x68\xe3\xf5\xd6\xba\x4b\x2e\x2d\xb9\x24\x37\x8d\x16\xab\xe3\xa2\x11\x19\x97\xa2\xdf\x1b\x67\x17\xe7\x7f\x8f\x1a\x2d\xd3\x45\xac\xf5\x44\xb2\xd0\xf0\xa1\x19\xa1\xd5\xe8\x90\xa0\x36\xe2\x19\x4c\x0e\xf6\xd3\xc3\x74\x3f\xdd\xdf\x3b\x38\x5e\x61\xe2\x8b\xaa\xe4\xb8\x91\xcd\x2f\xbf\xbc\xfd\xed\x7c\xf0\x24\x4a\x2d\x14\xa5\x83\xbb\x12\xe1\x20\x98\x0d\x26\x52\x29\x1f\x2d\x16\x43\xf9\x16\x21\x4e\xef\x9b\x11\x66\xac\x96\xb1\xa2\xc7\xa6\x72\xb0\xef\xca\x8d\x07\x7c\x48\x0b\x4d\xe9\xc0\x93\x19\x2c\x5c\xbb\xe7\xca\xf1\xba\x3f\xf5\x5f\xb7\xdb\x3b\x84\xa9\x98\xd4\x19\x35\x79\x2e\xa7\xbd\x5e\xf8\x5b\x83\x56\x62\xcc\xab\x28\x1d\x3b\x4f\x20\x1b\xcf\xcd\xb9\x32\x4d\x13\xb4\x28\x60\x34\x9b\x53\x85\xf3\x96\x8f\xa4\xae\x48\xa5\xca\xf8\x80\x8e\xf3\x78\x6e\x4c\xda\x52\x4e\x69\xcc\xd3\x25\x99\x1d\x78\xba\x6f\x97\x0e\xae\x5c\x17\xb5\xff\x3f\xb3\x58\x1b\xeb\x67\x8c\xbe\x32\x33\x32\x46\xad\x5f\xff\x6d\x38\x09\x0d\xf9\x26\xe1\xdb\x89\x66\x6a\xe6\x24\x27\x98\x83\xf9\x28\xe8\x46\x01\x82\xed\x33\xa6\x24\x37\x3b\xeb\x45\x30\x67\x8a\x70\x99\x57\xc5\x34\x2b\xb0\x42\xed\x42\xe0\x51\xaf\x07\x2e\x25\x39\x3f\x08\x86\xb8\xf3\x11\x48\x3e\x37\x4b\x63\xe5\x97\x38\xd4\x30\xce\x91\xc8\xb3\x8b\x78\x8b\x0d\x61\xdd\x7e\x4b\xe5\x74\xb9\x5e\x18\x81\x59\x6d\xe5\x98\x39\x7c\x02\x9f\x56\x72\x91\x97\xc9\x83\x6e\x0f\x44\xbe\x0a\x47\x7a\x4a\x99\x09\x48\xed\xd0\x26\xfe\x0b\x38\xcb\x7c\x0f\x7f\x0e\xb5\xd6\x81\xac\x28\x2c\x16\xa1\x7b\xf4\x52\x6b\xbd\xe5\x39\x2c\x24\xe4\xeb\x87\x53\x70\xc9\x66\x68\x61\xbb\xf5\x0c\x79\x7e\xce\x36\xd8\x53\xac\xe7\xf1\xb0\xe8\x43\x2f\xbb\xcc\x2c\xe6\x67\x00\xcf\xa4\xe8\xb7\xd8\x6d\x8d\x5c\xe6\xb3\x6e\x9c\x2d\x99\x15\x13\x66\x7d\x3c\x2e\x9e\x8d\x8b\x45\x3b\x63\x53\x0a\xaf\xa1\x62\x75\xdb\x7f\xfc\x8d\xee\x31\x4c\x34\x15\x0b\xb9\xb4\xf5\xd0\xd8\x93\x1f\x7f\xfc\x2a\xb5\xc0\xe9\xb7\xad\x30\xfb\x79\xe1\x31\x53\x4d\x98\x77\xfc\x2f\x0b\x7a\xe0\xe2\x3c\x8d\xbb\x6d\x18\xd3\x6a\xff\x49\xbb\x38\xa1\x61\x54\xe8\x93\xd9\x0f\x8c\x0f\x30\x26\x87\xcf\x2b\xf7\xcc\x5a\xbb\x7c\x86\xce\x14\x29\xbc\x8d\x0b\xd6\x29\xac\xc8\xc2\x2b\xf8\xba\xb0\x2a\x24\xfb\xf0\x0a\xfe\x18\xfe\xb2\x2c\xf5\x97\x3f\x86\xf0\x6d\xdd\x0b\x15\xab\x97\x7a\xff\xa2\x33\xbe\x7e\x7b\xd4\x15\x1d\xc5\xcd\xe5\xfc\xa6\x9b\x3c\xc3\x35\xe9\x14\x86\xc3\x60\xc0\xa1\xc6\xa9\x4b\xe6\x23\xe1\x30\x1d\x0c\x3a\x17\xb2\x39\x87\x65\xa3\x06\xe7\xe9\xb9\x5d\x7d\x24\xa3\xe8\xcc\xba\x6a\xbc\xcf\x83\x8a\xd5\x29\xbc\xd6\x80\x55\xed\x66\x6d\x49\x83\x0a\x99\x26\x18\x7a\xdb\x6b\x33\x8f\x92\x45\x45\xc3\x14\x3e\x2f\x73\xfb\x1c\xfc\x35\xe0\xa5\x31\xe4\x0b\xf0\x6c\x89\x57\x98\xba\x2b\xbf\x08\x61\x8c\x84\xda\x18\xb5\x45\x20\xd0\x77\xa8\x68\x6a\x7f\xe1\x6e\xa8\x7c\x6a\x63\x59\x7d\x53\x92\x14\xd2\x93\x50\xe5\x99\x1f\x14\x50\x64\xbe\xb7\x29\xec\x35\xfe\xf0\x3c\xca\xc7\x16\x82\x2a\x87\x78\x06\xda\x33\xdd\xf0\x1f\x1b\x49\xe7\xc5\xfe\x04\xed\xab\x12\x4e\x51\xe6\x07\x70\x72\x96\xd5\x8f\xd5\x89\xbb\xcb\x5b\x78\xd3\x09\x06\x0f\x7e\x88\x0c\x7a\x06\xac\x75\x6d\x7e\xb6\x42\xfb\xa0\x29\x3e\x46\x3d\x5e\x33\x83\x48\x22\x45\xcc\xd3\xf0\x4b\x1c\x17\xfd\x47\x64\xbc\x0c\x31\xd4\xa3\x3e\x94\x46\xa6\x67\x3b\xed\x20\x8d\xd6\xc9\x5c\x72\xe6\x96\x1f\xa9\x38\x5a\x47\xd9\x98\x29\x29\xa4\x9b\x65\x35\x5a\x69\x44\x56\x9a\x66\x43\x2d\xff\x47\x2b\xe9\xd5\xfb\x75\x2b\x74\x8e\x05\x6c\x1f\xc1\xf1\xf4\x53\xdf\x32\x5e\xbe\x38\xde\x5f\xb6\x93\x63\xc5\x77\x8c\xc2\x0a\x8a\xa1\xda\x0d\x12\xb5\x35\x35\x2b\xc2\xbc\xed\x4c\xfb\xde\x11\xb3\xeb\x3b\x4d\x63\x6d\xf1\x18\x5e\x85\x96\x28\xde\xcc\x4e\x2f\xcd\xbd\xa9\x8c\xdf\x2f\x87\xbb\x30\x3c\xb3\xe8\xf1\xdf\xcc\x4e\x3f\x6a\x0a\xc9\x2d\x51\x0c\x3f\xad\x77\x44\x5f\x47\x6a\xd4\x22\xdb\xd0\x73\xae\xd8\x7d\xdb\x71\x1f\x16\xa4\x58\x08\xe2\x39\x30\xb1\x08\xa8\xf6\xb6\x16\xc9\x34\x36\x54\xf8\x2b\x59\x94\x2e\xbc\xac\x15\xb8\x0b\x55\x43\xae\xdb\x9d\x43\xef\x1c\xcd\x80\x69\x40\x2d\x12\xbf\xd0\x3c\x16\x13\xab\xd7\xd6\x8d\x5a\x09\xd6\xe5\x51\x33\xc3\xa9\xb3\x2c\xcb\xd5\x26\xd7\xbc\xf5\xdf\x21\x7c\x87\xda\xaf\x3c\xc1\x11\x3e\x57\x93\x85\x5c\x4d\xe6\x80\x9b\x22\x76\xa3\x5f\x3e\xad\x66\x2e\xb7\xb3\xda\x65\x7e\x21\xe8\xc6\x83\x47\x12\x57\xea\xa4\x5b\x78\x6b\xbf\xad\xc4\x13\xd0\xa2\x48\xa3\x37\x25\xf0\x13\x66\x32\x59\x68\x63\x31\x9b\xfe\xbc\x7f\x92\x71\x9d\xf1\x12\xf9\x7d\x2f\x97\x8b\x20\x08\x67\xd7\x10\x64\x42\xae\xf8\x53\x4b\x09\xf4\x7f\x10\xe1\x46\x6b\x67\x19\xbf\xcf\x2a\x36\xf5\xa9\x9c\xf9\x99\xba\x97\x4a\x92\xcc\x85\x93\x8a\x4d\x93\x1a\x6d\xe2\x85\xdb\xfe\xdd\xed\x1a\x49\x6d\xcd\x74\x96\xc2\x15\x9b\xca\xaa\xa9\xda\x14\xf6\x41\x79\xfd\xfa\xce\xc7\xaf\x8e\x0b\x62\x3b\x16\x31\x7e\x0f\xb5\x5f\xf7\x6f\x3e\x86\x71\x1e\xb6\xf7\xc3\x43\x07\xb2\x31\xb6\x21\x5d\x49\x07\x8c\x12\x49\xa1\xa0\x45\xd3\x75\xc9\xd0\xf1\x91\x7a\x41\x79\x88\xa9\x9d\xc7\x16\xd8\xff\x06\x00\x00\xff\xff\x1e\x75\x0e\xc4\x2c\x19\x00\x00"), }, "/terraform-modules/packet/flatcar-linux/kubernetes/versions.tf": &vfsgen۰CompressedFileInfo{ name: "versions.tf", diff --git a/pkg/platform/packet/packet.go b/pkg/platform/packet/packet.go index 4c987a991..9421ae1fe 100644 --- a/pkg/platform/packet/packet.go +++ b/pkg/platform/packet/packet.go @@ -83,7 +83,8 @@ type config struct { OSVersion string `hcl:"os_version,optional"` IPXEScriptURL string `hcl:"ipxe_script_url,optional"` ManagementCIDRs []string `hcl:"management_cidrs"` - NodePrivateCIDR string `hcl:"node_private_cidr"` + NodePrivateCIDR string `hcl:"node_private_cidr,optional"` + NodePrivateCIDRs []string `hcl:"node_private_cidrs,optional"` EnableAggregation bool `hcl:"enable_aggregation,optional"` NetworkMTU int `hcl:"network_mtu,optional"` PodCIDR string `hcl:"pod_cidr,optional"` @@ -236,6 +237,27 @@ func createTerraformConfigFile(cfg *config, terraformPath string) error { // TODO: Render manually instead of marshaling. return fmt.Errorf("marshaling management CIDRs: %w", err) } + + nodePrivateCIDRList := cfg.NodePrivateCIDRs + if cfg.NodePrivateCIDR != "" { + nodePrivateCIDRList = append(nodePrivateCIDRList, cfg.NodePrivateCIDR) + } + + nodePrivateCIDRList, err = uniqueStrings(nodePrivateCIDRList) + if err != nil { + return fmt.Errorf("multiple entries of node private CIDR: %w", err) + } + + nodePrivateCIDRs, err := json.Marshal(nodePrivateCIDRList) + if err != nil { + // TODO: Render manually instead of marshaling. + return fmt.Errorf("marshalling node private CIDRs: %w", err) + } + + if len(nodePrivateCIDRs) == 0 { + return fmt.Errorf("neither `node_private_cidr` nor `node_private_cidrs` provided") + } + // Configure oidc flags and set it to KubeAPIServerExtraFlags. if cfg.OIDC != nil { // Skipping the error checking here because its done in checkValidConfig(). @@ -270,15 +292,17 @@ func createTerraformConfigFile(cfg *config, terraformPath string) error { cfg.terraformAddDeps() terraformCfg := struct { - Config config - Tags string - SSHPublicKeys string - ManagementCIDRs string + Config config + Tags string + SSHPublicKeys string + ManagementCIDRs string + NodePrivateCIDRs string }{ - Config: *cfg, - Tags: string(tags), - SSHPublicKeys: string(keyListBytes), - ManagementCIDRs: string(managementCIDRs), + Config: *cfg, + Tags: string(tags), + SSHPublicKeys: string(keyListBytes), + ManagementCIDRs: string(managementCIDRs), + NodePrivateCIDRs: string(nodePrivateCIDRs), } if err := t.Execute(f, terraformCfg); err != nil { @@ -667,3 +691,20 @@ func checkResFormat(reservationIDs map[string]string, name, errorPrefix, resPref return diagnostics } + +func uniqueStrings(strs []string) ([]string, error) { + uniqueStrs := make(map[string]interface{}, len(strs)) + ret := make([]string, 0) + + for _, str := range strs { + if _, ok := uniqueStrs[str]; ok { + return nil, fmt.Errorf("found multiple entries of: %q", str) + } + + uniqueStrs[str] = nil + + ret = append(ret, str) + } + + return ret, nil +} diff --git a/pkg/platform/packet/template.go b/pkg/platform/packet/template.go index d4fa2d0be..87f4e9176 100644 --- a/pkg/platform/packet/template.go +++ b/pkg/platform/packet/template.go @@ -53,7 +53,7 @@ module "packet-{{.Config.ClusterName}}" { ipxe_script_url = "{{ .Config.IPXEScriptURL }}" {{ end }} management_cidrs = {{.ManagementCIDRs}} - node_private_cidr = "{{.Config.NodePrivateCIDR}}" + node_private_cidrs = {{.NodePrivateCIDRs}} enable_aggregation = {{.Config.EnableAggregation}}