Hi @apparentlymart,
I tried as per your suggestions by moving the merge pattern under spec.
${yamlencode({
"apiVersion": "core.gardener.cloud/v1beta1",
"kind": "Shoot",
"metadata": {
"name": shoot_cluster_name,
"namespace": project_name,
},
"timeouts": {
"create": create_timeout,
"update": update_timeout,
"delete": delete_timeout,
},
merge({
"spec": {
"addons": {
"kubernetesDashboard": {
"authenticationMode": "token",
"enabled": dashboard_enabled,
},
"nginxIngress": {
"enabled": nginx_enabled,
"externalTrafficPolicy": "Cluster",
}
},
"cloudProfileName": target_profile,
"hibernation": {
"enabled": false,
},
"kubernetes": {
"allowPrivilegedContainers": true,
"version": kubernetes_version,
},
"maintenance": {
"autoUpdate": {
"kubernetesVersion": maintenance_k8s_version_enabled,
"machineImageVersion": maintenance_machine_image_version_enabled,
},
"timeWindow": {
"begin": "210000+0000",
"end": "220000+0000",
}
},
"networking": {
"nodes": networking_nodes,
"pods": networking_pods,
"services": networking_services,
"type": networking_type,
},
"provider": {
"infrastructureConfig": {
"apiVersion": "aws.provider.extensions.gardener.cloud/v1alpha1",
"kind": "InfrastructureConfig",
"networks": {
"vpc": {
"cidr": vnetcidr,
},
"zones": [
for subnet in subnets : {
internal = subnet.internal
name = subnet.name
public = subnet.public
workers = subnet.workers
}
]
}
},
"type": cloud_provider,
"workers": [
{
"machine": {
"image":{
"name": machine_image_name,
"version": machine_image_version,
},
"type": machine_type,
},
"maxSurge": worker_max_surge,
"maxUnavailable": worker_max_unavailable,
"maximum": worker_maximum,
"minimum": worker_minimum,
"name": worker_name,
"volume": {
"size": disk_size,
"type": disk_type,
},
"zones": zones,
}
]
},
"purpose": "evaluation",
"region": location,
"secretBindingName": target_secret,
}
gardener_dns_management ? {
"spec": {
"dns": {
"domain" : "${shoot_cluster_name}.${element(split("-",project_name),1)}.${gardenerdomain}",
"providers": [
{
"domains": {
"include": included_dns_domains,
},
"secretName": dns_secret_name,
"type": dns_type,
}
]
},
"extensions": [
{
"type": "shoot-dns-service",
}
]
},
} : {}, ----> ERROR on this line.
gardener_dns_ssl_management ? {
"spec": {
"dns": {
"domain" : "${shoot_cluster_name}.${element(split("-",project_name),1)}.${gardenerdomain}",
"providers": [
{
"domains": {
"include": included_dns_domains,
},
"secretName": dns_secret_name,
"type": dns_type,
}
]
},
"extensions": [
{
"type": "shoot-dns-service",
},
{
"providerConfig": {
"apiVersion": "service.cert.extensions.gardener.cloud/v1alpha1",
"issuers": [
{
"email": email_id,
"name": subdomain,
"server": "https://acme-v02.api.letsencrypt.org/directory",
}
],
},
"type": "shoot-cert-service",
}
]
},
} : {},
})
})}
Error as follows
Call to function "templatefile" failed:
./templates/gardener-shoot.yaml_wip.tmpl:114,11-12: Missing attribute value;
Expected an attribute value, introduced by an equals sign ("=")..
I am not confident if i am doing it correct .
Kevin