diff --git a/lib/aws/bootstrap/backend.j2.tf b/lib/aws/bootstrap-ec2/backend.j2.tf similarity index 100% rename from lib/aws/bootstrap/backend.j2.tf rename to lib/aws/bootstrap-ec2/backend.j2.tf diff --git a/lib/aws/bootstrap/documentdb.tf b/lib/aws/bootstrap-ec2/documentdb.tf similarity index 100% rename from lib/aws/bootstrap/documentdb.tf rename to lib/aws/bootstrap-ec2/documentdb.tf diff --git a/lib/aws/bootstrap/eks-vpc-common.j2.tf b/lib/aws/bootstrap-ec2/eks-vpc-common.j2.tf similarity index 100% rename from lib/aws/bootstrap/eks-vpc-common.j2.tf rename to lib/aws/bootstrap-ec2/eks-vpc-common.j2.tf diff --git a/lib/aws/bootstrap/eks-vpc-without-nat-gateways.j2.tf b/lib/aws/bootstrap-ec2/eks-vpc-without-nat-gateways.j2.tf similarity index 100% rename from lib/aws/bootstrap/eks-vpc-without-nat-gateways.j2.tf rename to lib/aws/bootstrap-ec2/eks-vpc-without-nat-gateways.j2.tf diff --git a/lib/aws/bootstrap/elasticcache.tf b/lib/aws/bootstrap-ec2/elasticcache.tf similarity index 100% rename from lib/aws/bootstrap/elasticcache.tf rename to lib/aws/bootstrap-ec2/elasticcache.tf diff --git a/lib/aws/bootstrap/elasticsearch.tf b/lib/aws/bootstrap-ec2/elasticsearch.tf similarity index 100% rename from lib/aws/bootstrap/elasticsearch.tf rename to lib/aws/bootstrap-ec2/elasticsearch.tf diff --git a/lib/aws/bootstrap/qovery-vault.j2.tf b/lib/aws/bootstrap-ec2/qovery-vault.j2.tf similarity index 100% rename from lib/aws/bootstrap/qovery-vault.j2.tf rename to lib/aws/bootstrap-ec2/qovery-vault.j2.tf diff --git a/lib/aws/bootstrap/rds.tf b/lib/aws/bootstrap-ec2/rds.tf similarity index 100% rename from lib/aws/bootstrap/rds.tf rename to lib/aws/bootstrap-ec2/rds.tf diff --git a/lib/aws/bootstrap/s3-qovery-buckets.tf b/lib/aws/bootstrap-ec2/s3-qovery-buckets.tf similarity index 100% rename from lib/aws/bootstrap/s3-qovery-buckets.tf rename to lib/aws/bootstrap-ec2/s3-qovery-buckets.tf diff --git a/lib/aws/bootstrap/tf-default-vars.j2.tf b/lib/aws/bootstrap-ec2/tf-default-vars.j2.tf similarity index 100% rename from lib/aws/bootstrap/tf-default-vars.j2.tf rename to lib/aws/bootstrap-ec2/tf-default-vars.j2.tf diff --git a/lib/aws/bootstrap/tf-providers-aws.j2.tf b/lib/aws/bootstrap-ec2/tf-providers-aws.j2.tf similarity index 100% rename from lib/aws/bootstrap/tf-providers-aws.j2.tf rename to lib/aws/bootstrap-ec2/tf-providers-aws.j2.tf diff --git a/lib/aws/bootstrap/README.md b/lib/aws/bootstrap-eks/README.md similarity index 100% rename from lib/aws/bootstrap/README.md rename to lib/aws/bootstrap-eks/README.md diff --git a/lib/aws/bootstrap-eks/backend.j2.tf b/lib/aws/bootstrap-eks/backend.j2.tf new file mode 100644 index 00000000..a1418800 --- /dev/null +++ b/lib/aws/bootstrap-eks/backend.j2.tf @@ -0,0 +1,10 @@ +terraform { + backend "s3" { + access_key = "{{ aws_access_key_tfstates_account }}" + secret_key = "{{ aws_secret_key_tfstates_account }}" + bucket = "{{ aws_terraform_backend_bucket }}" + key = "{{ kubernetes_cluster_id }}/{{ aws_terraform_backend_bucket }}.tfstate" + dynamodb_table = "{{ aws_terraform_backend_dynamodb_table }}" + region = "{{ aws_region_tfstates_account }}" + } +} diff --git a/lib/aws/bootstrap/chart_values/external-dns.j2.yaml b/lib/aws/bootstrap-eks/chart_values/external-dns.j2.yaml similarity index 100% rename from lib/aws/bootstrap/chart_values/external-dns.j2.yaml rename to lib/aws/bootstrap-eks/chart_values/external-dns.j2.yaml diff --git a/lib/aws/bootstrap/chart_values/grafana.j2.yaml b/lib/aws/bootstrap-eks/chart_values/grafana.j2.yaml similarity index 100% rename from lib/aws/bootstrap/chart_values/grafana.j2.yaml rename to lib/aws/bootstrap-eks/chart_values/grafana.j2.yaml diff --git a/lib/aws/bootstrap/chart_values/kube-prometheus-stack.yaml b/lib/aws/bootstrap-eks/chart_values/kube-prometheus-stack.yaml similarity index 100% rename from lib/aws/bootstrap/chart_values/kube-prometheus-stack.yaml rename to lib/aws/bootstrap-eks/chart_values/kube-prometheus-stack.yaml diff --git a/lib/aws/bootstrap/chart_values/loki.yaml b/lib/aws/bootstrap-eks/chart_values/loki.yaml similarity index 100% rename from lib/aws/bootstrap/chart_values/loki.yaml rename to lib/aws/bootstrap-eks/chart_values/loki.yaml diff --git a/lib/aws/bootstrap/chart_values/metrics-server.yaml b/lib/aws/bootstrap-eks/chart_values/metrics-server.yaml similarity index 100% rename from lib/aws/bootstrap/chart_values/metrics-server.yaml rename to lib/aws/bootstrap-eks/chart_values/metrics-server.yaml diff --git a/lib/aws/bootstrap/chart_values/nginx-ingress.yaml b/lib/aws/bootstrap-eks/chart_values/nginx-ingress.yaml similarity index 100% rename from lib/aws/bootstrap/chart_values/nginx-ingress.yaml rename to lib/aws/bootstrap-eks/chart_values/nginx-ingress.yaml diff --git a/lib/aws/bootstrap/chart_values/pleco.yaml b/lib/aws/bootstrap-eks/chart_values/pleco.yaml similarity index 100% rename from lib/aws/bootstrap/chart_values/pleco.yaml rename to lib/aws/bootstrap-eks/chart_values/pleco.yaml diff --git a/lib/aws/bootstrap/charts/aws-calico/.helmignore b/lib/aws/bootstrap-eks/charts/aws-calico/.helmignore similarity index 100% rename from lib/aws/bootstrap/charts/aws-calico/.helmignore rename to lib/aws/bootstrap-eks/charts/aws-calico/.helmignore diff --git a/lib/aws/bootstrap/charts/aws-calico/Chart.yaml b/lib/aws/bootstrap-eks/charts/aws-calico/Chart.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-calico/Chart.yaml rename to lib/aws/bootstrap-eks/charts/aws-calico/Chart.yaml diff --git a/lib/aws/bootstrap/charts/aws-calico/README.md b/lib/aws/bootstrap-eks/charts/aws-calico/README.md similarity index 100% rename from lib/aws/bootstrap/charts/aws-calico/README.md rename to lib/aws/bootstrap-eks/charts/aws-calico/README.md diff --git a/lib/aws/bootstrap/charts/aws-calico/crds/crds.yaml b/lib/aws/bootstrap-eks/charts/aws-calico/crds/crds.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-calico/crds/crds.yaml rename to lib/aws/bootstrap-eks/charts/aws-calico/crds/crds.yaml diff --git a/lib/aws/bootstrap/charts/aws-calico/templates/_helpers.tpl b/lib/aws/bootstrap-eks/charts/aws-calico/templates/_helpers.tpl similarity index 100% rename from lib/aws/bootstrap/charts/aws-calico/templates/_helpers.tpl rename to lib/aws/bootstrap-eks/charts/aws-calico/templates/_helpers.tpl diff --git a/lib/aws/bootstrap/charts/aws-calico/templates/config-map.yaml b/lib/aws/bootstrap-eks/charts/aws-calico/templates/config-map.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-calico/templates/config-map.yaml rename to lib/aws/bootstrap-eks/charts/aws-calico/templates/config-map.yaml diff --git a/lib/aws/bootstrap/charts/aws-calico/templates/daemon-set.yaml b/lib/aws/bootstrap-eks/charts/aws-calico/templates/daemon-set.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-calico/templates/daemon-set.yaml rename to lib/aws/bootstrap-eks/charts/aws-calico/templates/daemon-set.yaml diff --git a/lib/aws/bootstrap/charts/aws-calico/templates/deployment.yaml b/lib/aws/bootstrap-eks/charts/aws-calico/templates/deployment.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-calico/templates/deployment.yaml rename to lib/aws/bootstrap-eks/charts/aws-calico/templates/deployment.yaml diff --git a/lib/aws/bootstrap/charts/aws-calico/templates/pod-disruption-budget.yaml b/lib/aws/bootstrap-eks/charts/aws-calico/templates/pod-disruption-budget.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-calico/templates/pod-disruption-budget.yaml rename to lib/aws/bootstrap-eks/charts/aws-calico/templates/pod-disruption-budget.yaml diff --git a/lib/aws/bootstrap/charts/aws-calico/templates/podsecuritypolicy.yaml b/lib/aws/bootstrap-eks/charts/aws-calico/templates/podsecuritypolicy.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-calico/templates/podsecuritypolicy.yaml rename to lib/aws/bootstrap-eks/charts/aws-calico/templates/podsecuritypolicy.yaml diff --git a/lib/aws/bootstrap/charts/aws-calico/templates/rbac.yaml b/lib/aws/bootstrap-eks/charts/aws-calico/templates/rbac.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-calico/templates/rbac.yaml rename to lib/aws/bootstrap-eks/charts/aws-calico/templates/rbac.yaml diff --git a/lib/aws/bootstrap/charts/aws-calico/templates/service-accounts.yaml b/lib/aws/bootstrap-eks/charts/aws-calico/templates/service-accounts.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-calico/templates/service-accounts.yaml rename to lib/aws/bootstrap-eks/charts/aws-calico/templates/service-accounts.yaml diff --git a/lib/aws/bootstrap/charts/aws-calico/templates/service.yaml b/lib/aws/bootstrap-eks/charts/aws-calico/templates/service.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-calico/templates/service.yaml rename to lib/aws/bootstrap-eks/charts/aws-calico/templates/service.yaml diff --git a/lib/aws/bootstrap/charts/aws-calico/values.yaml b/lib/aws/bootstrap-eks/charts/aws-calico/values.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-calico/values.yaml rename to lib/aws/bootstrap-eks/charts/aws-calico/values.yaml diff --git a/lib/aws/bootstrap/charts/aws-limits-exporter/.helmignore b/lib/aws/bootstrap-eks/charts/aws-limits-exporter/.helmignore similarity index 100% rename from lib/aws/bootstrap/charts/aws-limits-exporter/.helmignore rename to lib/aws/bootstrap-eks/charts/aws-limits-exporter/.helmignore diff --git a/lib/aws/bootstrap/charts/aws-limits-exporter/Chart.yaml b/lib/aws/bootstrap-eks/charts/aws-limits-exporter/Chart.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-limits-exporter/Chart.yaml rename to lib/aws/bootstrap-eks/charts/aws-limits-exporter/Chart.yaml diff --git a/lib/aws/bootstrap/charts/aws-limits-exporter/templates/_helpers.tpl b/lib/aws/bootstrap-eks/charts/aws-limits-exporter/templates/_helpers.tpl similarity index 100% rename from lib/aws/bootstrap/charts/aws-limits-exporter/templates/_helpers.tpl rename to lib/aws/bootstrap-eks/charts/aws-limits-exporter/templates/_helpers.tpl diff --git a/lib/aws/bootstrap/charts/aws-limits-exporter/templates/deployment.yaml b/lib/aws/bootstrap-eks/charts/aws-limits-exporter/templates/deployment.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-limits-exporter/templates/deployment.yaml rename to lib/aws/bootstrap-eks/charts/aws-limits-exporter/templates/deployment.yaml diff --git a/lib/aws/bootstrap/charts/aws-limits-exporter/templates/secrets.yaml b/lib/aws/bootstrap-eks/charts/aws-limits-exporter/templates/secrets.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-limits-exporter/templates/secrets.yaml rename to lib/aws/bootstrap-eks/charts/aws-limits-exporter/templates/secrets.yaml diff --git a/lib/aws/bootstrap/charts/aws-limits-exporter/templates/service.yaml b/lib/aws/bootstrap-eks/charts/aws-limits-exporter/templates/service.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-limits-exporter/templates/service.yaml rename to lib/aws/bootstrap-eks/charts/aws-limits-exporter/templates/service.yaml diff --git a/lib/aws/bootstrap/charts/aws-limits-exporter/templates/serviceaccount.yaml b/lib/aws/bootstrap-eks/charts/aws-limits-exporter/templates/serviceaccount.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-limits-exporter/templates/serviceaccount.yaml rename to lib/aws/bootstrap-eks/charts/aws-limits-exporter/templates/serviceaccount.yaml diff --git a/lib/aws/bootstrap/charts/aws-limits-exporter/templates/servicemonitor.yaml b/lib/aws/bootstrap-eks/charts/aws-limits-exporter/templates/servicemonitor.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-limits-exporter/templates/servicemonitor.yaml rename to lib/aws/bootstrap-eks/charts/aws-limits-exporter/templates/servicemonitor.yaml diff --git a/lib/aws/bootstrap/charts/aws-limits-exporter/values.yaml b/lib/aws/bootstrap-eks/charts/aws-limits-exporter/values.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-limits-exporter/values.yaml rename to lib/aws/bootstrap-eks/charts/aws-limits-exporter/values.yaml diff --git a/lib/aws/bootstrap/charts/aws-node-termination-handler/.helmignore b/lib/aws/bootstrap-eks/charts/aws-node-termination-handler/.helmignore similarity index 100% rename from lib/aws/bootstrap/charts/aws-node-termination-handler/.helmignore rename to lib/aws/bootstrap-eks/charts/aws-node-termination-handler/.helmignore diff --git a/lib/aws/bootstrap/charts/aws-node-termination-handler/Chart.yaml b/lib/aws/bootstrap-eks/charts/aws-node-termination-handler/Chart.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-node-termination-handler/Chart.yaml rename to lib/aws/bootstrap-eks/charts/aws-node-termination-handler/Chart.yaml diff --git a/lib/aws/bootstrap/charts/aws-node-termination-handler/README.md b/lib/aws/bootstrap-eks/charts/aws-node-termination-handler/README.md similarity index 100% rename from lib/aws/bootstrap/charts/aws-node-termination-handler/README.md rename to lib/aws/bootstrap-eks/charts/aws-node-termination-handler/README.md diff --git a/lib/aws/bootstrap/charts/aws-node-termination-handler/templates/_helpers.tpl b/lib/aws/bootstrap-eks/charts/aws-node-termination-handler/templates/_helpers.tpl similarity index 100% rename from lib/aws/bootstrap/charts/aws-node-termination-handler/templates/_helpers.tpl rename to lib/aws/bootstrap-eks/charts/aws-node-termination-handler/templates/_helpers.tpl diff --git a/lib/aws/bootstrap/charts/aws-node-termination-handler/templates/clusterrole.yaml b/lib/aws/bootstrap-eks/charts/aws-node-termination-handler/templates/clusterrole.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-node-termination-handler/templates/clusterrole.yaml rename to lib/aws/bootstrap-eks/charts/aws-node-termination-handler/templates/clusterrole.yaml diff --git a/lib/aws/bootstrap/charts/aws-node-termination-handler/templates/clusterrolebinding.yaml b/lib/aws/bootstrap-eks/charts/aws-node-termination-handler/templates/clusterrolebinding.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-node-termination-handler/templates/clusterrolebinding.yaml rename to lib/aws/bootstrap-eks/charts/aws-node-termination-handler/templates/clusterrolebinding.yaml diff --git a/lib/aws/bootstrap/charts/aws-node-termination-handler/templates/daemonset.yaml b/lib/aws/bootstrap-eks/charts/aws-node-termination-handler/templates/daemonset.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-node-termination-handler/templates/daemonset.yaml rename to lib/aws/bootstrap-eks/charts/aws-node-termination-handler/templates/daemonset.yaml diff --git a/lib/aws/bootstrap/charts/aws-node-termination-handler/templates/psp.yaml b/lib/aws/bootstrap-eks/charts/aws-node-termination-handler/templates/psp.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-node-termination-handler/templates/psp.yaml rename to lib/aws/bootstrap-eks/charts/aws-node-termination-handler/templates/psp.yaml diff --git a/lib/aws/bootstrap/charts/aws-node-termination-handler/templates/serviceaccount.yaml b/lib/aws/bootstrap-eks/charts/aws-node-termination-handler/templates/serviceaccount.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-node-termination-handler/templates/serviceaccount.yaml rename to lib/aws/bootstrap-eks/charts/aws-node-termination-handler/templates/serviceaccount.yaml diff --git a/lib/aws/bootstrap/charts/aws-node-termination-handler/values.yaml b/lib/aws/bootstrap-eks/charts/aws-node-termination-handler/values.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-node-termination-handler/values.yaml rename to lib/aws/bootstrap-eks/charts/aws-node-termination-handler/values.yaml diff --git a/lib/aws/bootstrap/charts/aws-ui-view/.helmignore b/lib/aws/bootstrap-eks/charts/aws-ui-view/.helmignore similarity index 100% rename from lib/aws/bootstrap/charts/aws-ui-view/.helmignore rename to lib/aws/bootstrap-eks/charts/aws-ui-view/.helmignore diff --git a/lib/aws/bootstrap/charts/aws-ui-view/Chart.yaml b/lib/aws/bootstrap-eks/charts/aws-ui-view/Chart.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-ui-view/Chart.yaml rename to lib/aws/bootstrap-eks/charts/aws-ui-view/Chart.yaml diff --git a/lib/aws/bootstrap/charts/aws-ui-view/templates/_helpers.tpl b/lib/aws/bootstrap-eks/charts/aws-ui-view/templates/_helpers.tpl similarity index 100% rename from lib/aws/bootstrap/charts/aws-ui-view/templates/_helpers.tpl rename to lib/aws/bootstrap-eks/charts/aws-ui-view/templates/_helpers.tpl diff --git a/lib/aws/bootstrap/charts/aws-ui-view/templates/clusterrole.yaml b/lib/aws/bootstrap-eks/charts/aws-ui-view/templates/clusterrole.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-ui-view/templates/clusterrole.yaml rename to lib/aws/bootstrap-eks/charts/aws-ui-view/templates/clusterrole.yaml diff --git a/lib/aws/bootstrap/charts/aws-ui-view/templates/clusterrolebinding.yaml b/lib/aws/bootstrap-eks/charts/aws-ui-view/templates/clusterrolebinding.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-ui-view/templates/clusterrolebinding.yaml rename to lib/aws/bootstrap-eks/charts/aws-ui-view/templates/clusterrolebinding.yaml diff --git a/lib/aws/bootstrap/charts/aws-ui-view/values.yaml b/lib/aws/bootstrap-eks/charts/aws-ui-view/values.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-ui-view/values.yaml rename to lib/aws/bootstrap-eks/charts/aws-ui-view/values.yaml diff --git a/lib/aws/bootstrap/charts/aws-vpc-cni/.helmignore b/lib/aws/bootstrap-eks/charts/aws-vpc-cni/.helmignore similarity index 100% rename from lib/aws/bootstrap/charts/aws-vpc-cni/.helmignore rename to lib/aws/bootstrap-eks/charts/aws-vpc-cni/.helmignore diff --git a/lib/aws/bootstrap/charts/aws-vpc-cni/Chart.yaml b/lib/aws/bootstrap-eks/charts/aws-vpc-cni/Chart.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-vpc-cni/Chart.yaml rename to lib/aws/bootstrap-eks/charts/aws-vpc-cni/Chart.yaml diff --git a/lib/aws/bootstrap/charts/aws-vpc-cni/README.md b/lib/aws/bootstrap-eks/charts/aws-vpc-cni/README.md similarity index 100% rename from lib/aws/bootstrap/charts/aws-vpc-cni/README.md rename to lib/aws/bootstrap-eks/charts/aws-vpc-cni/README.md diff --git a/lib/aws/bootstrap/charts/aws-vpc-cni/templates/_helpers.tpl b/lib/aws/bootstrap-eks/charts/aws-vpc-cni/templates/_helpers.tpl similarity index 100% rename from lib/aws/bootstrap/charts/aws-vpc-cni/templates/_helpers.tpl rename to lib/aws/bootstrap-eks/charts/aws-vpc-cni/templates/_helpers.tpl diff --git a/lib/aws/bootstrap/charts/aws-vpc-cni/templates/clusterrole.yaml b/lib/aws/bootstrap-eks/charts/aws-vpc-cni/templates/clusterrole.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-vpc-cni/templates/clusterrole.yaml rename to lib/aws/bootstrap-eks/charts/aws-vpc-cni/templates/clusterrole.yaml diff --git a/lib/aws/bootstrap/charts/aws-vpc-cni/templates/clusterrolebinding.yaml b/lib/aws/bootstrap-eks/charts/aws-vpc-cni/templates/clusterrolebinding.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-vpc-cni/templates/clusterrolebinding.yaml rename to lib/aws/bootstrap-eks/charts/aws-vpc-cni/templates/clusterrolebinding.yaml diff --git a/lib/aws/bootstrap/charts/aws-vpc-cni/templates/configmap.yaml b/lib/aws/bootstrap-eks/charts/aws-vpc-cni/templates/configmap.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-vpc-cni/templates/configmap.yaml rename to lib/aws/bootstrap-eks/charts/aws-vpc-cni/templates/configmap.yaml diff --git a/lib/aws/bootstrap/charts/aws-vpc-cni/templates/customresourcedefinition.yaml b/lib/aws/bootstrap-eks/charts/aws-vpc-cni/templates/customresourcedefinition.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-vpc-cni/templates/customresourcedefinition.yaml rename to lib/aws/bootstrap-eks/charts/aws-vpc-cni/templates/customresourcedefinition.yaml diff --git a/lib/aws/bootstrap/charts/aws-vpc-cni/templates/daemonset.yaml b/lib/aws/bootstrap-eks/charts/aws-vpc-cni/templates/daemonset.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-vpc-cni/templates/daemonset.yaml rename to lib/aws/bootstrap-eks/charts/aws-vpc-cni/templates/daemonset.yaml diff --git a/lib/aws/bootstrap/charts/aws-vpc-cni/templates/eniconfig.yaml b/lib/aws/bootstrap-eks/charts/aws-vpc-cni/templates/eniconfig.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-vpc-cni/templates/eniconfig.yaml rename to lib/aws/bootstrap-eks/charts/aws-vpc-cni/templates/eniconfig.yaml diff --git a/lib/aws/bootstrap/charts/aws-vpc-cni/templates/serviceaccount.yaml b/lib/aws/bootstrap-eks/charts/aws-vpc-cni/templates/serviceaccount.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-vpc-cni/templates/serviceaccount.yaml rename to lib/aws/bootstrap-eks/charts/aws-vpc-cni/templates/serviceaccount.yaml diff --git a/lib/aws/bootstrap/charts/aws-vpc-cni/values.yaml b/lib/aws/bootstrap-eks/charts/aws-vpc-cni/values.yaml similarity index 100% rename from lib/aws/bootstrap/charts/aws-vpc-cni/values.yaml rename to lib/aws/bootstrap-eks/charts/aws-vpc-cni/values.yaml diff --git a/lib/aws/bootstrap/charts/coredns-config/.helmignore b/lib/aws/bootstrap-eks/charts/coredns-config/.helmignore similarity index 100% rename from lib/aws/bootstrap/charts/coredns-config/.helmignore rename to lib/aws/bootstrap-eks/charts/coredns-config/.helmignore diff --git a/lib/aws/bootstrap/charts/coredns-config/Chart.yaml b/lib/aws/bootstrap-eks/charts/coredns-config/Chart.yaml similarity index 100% rename from lib/aws/bootstrap/charts/coredns-config/Chart.yaml rename to lib/aws/bootstrap-eks/charts/coredns-config/Chart.yaml diff --git a/lib/aws/bootstrap/charts/coredns-config/templates/_helpers.tpl b/lib/aws/bootstrap-eks/charts/coredns-config/templates/_helpers.tpl similarity index 100% rename from lib/aws/bootstrap/charts/coredns-config/templates/_helpers.tpl rename to lib/aws/bootstrap-eks/charts/coredns-config/templates/_helpers.tpl diff --git a/lib/aws/bootstrap/charts/coredns-config/templates/configmap.yml b/lib/aws/bootstrap-eks/charts/coredns-config/templates/configmap.yml similarity index 100% rename from lib/aws/bootstrap/charts/coredns-config/templates/configmap.yml rename to lib/aws/bootstrap-eks/charts/coredns-config/templates/configmap.yml diff --git a/lib/aws/bootstrap/charts/coredns-config/values.yaml b/lib/aws/bootstrap-eks/charts/coredns-config/values.yaml similarity index 100% rename from lib/aws/bootstrap/charts/coredns-config/values.yaml rename to lib/aws/bootstrap-eks/charts/coredns-config/values.yaml diff --git a/lib/aws/bootstrap/charts/iam-eks-user-mapper/.helmignore b/lib/aws/bootstrap-eks/charts/iam-eks-user-mapper/.helmignore similarity index 100% rename from lib/aws/bootstrap/charts/iam-eks-user-mapper/.helmignore rename to lib/aws/bootstrap-eks/charts/iam-eks-user-mapper/.helmignore diff --git a/lib/aws/bootstrap/charts/iam-eks-user-mapper/Chart.yaml b/lib/aws/bootstrap-eks/charts/iam-eks-user-mapper/Chart.yaml similarity index 100% rename from lib/aws/bootstrap/charts/iam-eks-user-mapper/Chart.yaml rename to lib/aws/bootstrap-eks/charts/iam-eks-user-mapper/Chart.yaml diff --git a/lib/aws/bootstrap/charts/iam-eks-user-mapper/templates/_helpers.tpl b/lib/aws/bootstrap-eks/charts/iam-eks-user-mapper/templates/_helpers.tpl similarity index 100% rename from lib/aws/bootstrap/charts/iam-eks-user-mapper/templates/_helpers.tpl rename to lib/aws/bootstrap-eks/charts/iam-eks-user-mapper/templates/_helpers.tpl diff --git a/lib/aws/bootstrap/charts/iam-eks-user-mapper/templates/deployment.yaml b/lib/aws/bootstrap-eks/charts/iam-eks-user-mapper/templates/deployment.yaml similarity index 100% rename from lib/aws/bootstrap/charts/iam-eks-user-mapper/templates/deployment.yaml rename to lib/aws/bootstrap-eks/charts/iam-eks-user-mapper/templates/deployment.yaml diff --git a/lib/aws/bootstrap/charts/iam-eks-user-mapper/templates/rbac.yaml b/lib/aws/bootstrap-eks/charts/iam-eks-user-mapper/templates/rbac.yaml similarity index 100% rename from lib/aws/bootstrap/charts/iam-eks-user-mapper/templates/rbac.yaml rename to lib/aws/bootstrap-eks/charts/iam-eks-user-mapper/templates/rbac.yaml diff --git a/lib/aws/bootstrap/charts/iam-eks-user-mapper/templates/secret.yaml b/lib/aws/bootstrap-eks/charts/iam-eks-user-mapper/templates/secret.yaml similarity index 100% rename from lib/aws/bootstrap/charts/iam-eks-user-mapper/templates/secret.yaml rename to lib/aws/bootstrap-eks/charts/iam-eks-user-mapper/templates/secret.yaml diff --git a/lib/aws/bootstrap/charts/iam-eks-user-mapper/templates/serviceaccount.yaml b/lib/aws/bootstrap-eks/charts/iam-eks-user-mapper/templates/serviceaccount.yaml similarity index 100% rename from lib/aws/bootstrap/charts/iam-eks-user-mapper/templates/serviceaccount.yaml rename to lib/aws/bootstrap-eks/charts/iam-eks-user-mapper/templates/serviceaccount.yaml diff --git a/lib/aws/bootstrap/charts/iam-eks-user-mapper/values.yaml b/lib/aws/bootstrap-eks/charts/iam-eks-user-mapper/values.yaml similarity index 100% rename from lib/aws/bootstrap/charts/iam-eks-user-mapper/values.yaml rename to lib/aws/bootstrap-eks/charts/iam-eks-user-mapper/values.yaml diff --git a/lib/aws/bootstrap/charts/q-storageclass/.helmignore b/lib/aws/bootstrap-eks/charts/q-storageclass/.helmignore similarity index 100% rename from lib/aws/bootstrap/charts/q-storageclass/.helmignore rename to lib/aws/bootstrap-eks/charts/q-storageclass/.helmignore diff --git a/lib/aws/bootstrap/charts/q-storageclass/Chart.yaml b/lib/aws/bootstrap-eks/charts/q-storageclass/Chart.yaml similarity index 100% rename from lib/aws/bootstrap/charts/q-storageclass/Chart.yaml rename to lib/aws/bootstrap-eks/charts/q-storageclass/Chart.yaml diff --git a/lib/aws/bootstrap/charts/q-storageclass/templates/_helpers.tpl b/lib/aws/bootstrap-eks/charts/q-storageclass/templates/_helpers.tpl similarity index 100% rename from lib/aws/bootstrap/charts/q-storageclass/templates/_helpers.tpl rename to lib/aws/bootstrap-eks/charts/q-storageclass/templates/_helpers.tpl diff --git a/lib/aws/bootstrap/charts/q-storageclass/templates/storageclass.yaml b/lib/aws/bootstrap-eks/charts/q-storageclass/templates/storageclass.yaml similarity index 100% rename from lib/aws/bootstrap/charts/q-storageclass/templates/storageclass.yaml rename to lib/aws/bootstrap-eks/charts/q-storageclass/templates/storageclass.yaml diff --git a/lib/aws/bootstrap/charts/q-storageclass/values.yaml b/lib/aws/bootstrap-eks/charts/q-storageclass/values.yaml similarity index 100% rename from lib/aws/bootstrap/charts/q-storageclass/values.yaml rename to lib/aws/bootstrap-eks/charts/q-storageclass/values.yaml diff --git a/lib/aws/bootstrap-eks/documentdb.tf b/lib/aws/bootstrap-eks/documentdb.tf new file mode 100644 index 00000000..ea04fec0 --- /dev/null +++ b/lib/aws/bootstrap-eks/documentdb.tf @@ -0,0 +1,81 @@ +locals { + tags_documentdb = merge( + aws_eks_cluster.eks_cluster.tags, + { + "Service" = "DocumentDB" + } + ) +} + +# Network + +resource "aws_subnet" "documentdb_zone_a" { + count = length(var.documentdb_subnets_zone_a) + + availability_zone = var.aws_availability_zones[0] + cidr_block = var.documentdb_subnets_zone_a[count.index] + vpc_id = aws_vpc.eks.id + + tags = local.tags_documentdb +} + +resource "aws_subnet" "documentdb_zone_b" { + count = length(var.documentdb_subnets_zone_b) + + availability_zone = var.aws_availability_zones[1] + cidr_block = var.documentdb_subnets_zone_b[count.index] + vpc_id = aws_vpc.eks.id + + tags = local.tags_documentdb +} + +resource "aws_subnet" "documentdb_zone_c" { + count = length(var.documentdb_subnets_zone_c) + + availability_zone = var.aws_availability_zones[2] + cidr_block = var.documentdb_subnets_zone_c[count.index] + vpc_id = aws_vpc.eks.id + + tags = local.tags_documentdb +} + +resource "aws_route_table_association" "documentdb_cluster_zone_a" { + count = length(var.documentdb_subnets_zone_a) + + subnet_id = aws_subnet.documentdb_zone_a.*.id[count.index] + route_table_id = aws_route_table.eks_cluster.id +} + +resource "aws_route_table_association" "documentdb_cluster_zone_b" { + count = length(var.documentdb_subnets_zone_b) + + subnet_id = aws_subnet.documentdb_zone_b.*.id[count.index] + route_table_id = aws_route_table.eks_cluster.id +} + +resource "aws_route_table_association" "documentdb_cluster_zone_c" { + count = length(var.documentdb_subnets_zone_c) + + subnet_id = aws_subnet.documentdb_zone_c.*.id[count.index] + route_table_id = aws_route_table.eks_cluster.id +} + +resource "aws_docdb_subnet_group" "documentdb" { + description = "DocumentDB linked to ${var.kubernetes_cluster_id}" + name = "documentdb-${aws_vpc.eks.id}" + subnet_ids = flatten([aws_subnet.documentdb_zone_a.*.id, aws_subnet.documentdb_zone_b.*.id, aws_subnet.documentdb_zone_c.*.id]) + + tags = local.tags_documentdb +} + +# Todo: create a bastion to avoid this + +resource "aws_security_group_rule" "documentdb_remote_access" { + cidr_blocks = ["0.0.0.0/0"] + description = "Allow DocumentDB incoming access from anywhere" + from_port = 27017 + protocol = "tcp" + security_group_id = aws_security_group.eks_cluster_workers.id + to_port = 27017 + type = "ingress" +} diff --git a/lib/aws/bootstrap/eks-ebs-csi-driver.tf b/lib/aws/bootstrap-eks/eks-ebs-csi-driver.tf similarity index 100% rename from lib/aws/bootstrap/eks-ebs-csi-driver.tf rename to lib/aws/bootstrap-eks/eks-ebs-csi-driver.tf diff --git a/lib/aws/bootstrap/eks-gen-kubectl-config.j2.tf b/lib/aws/bootstrap-eks/eks-gen-kubectl-config.j2.tf similarity index 100% rename from lib/aws/bootstrap/eks-gen-kubectl-config.j2.tf rename to lib/aws/bootstrap-eks/eks-gen-kubectl-config.j2.tf diff --git a/lib/aws/bootstrap/eks-master-cluster.j2.tf b/lib/aws/bootstrap-eks/eks-master-cluster.j2.tf similarity index 100% rename from lib/aws/bootstrap/eks-master-cluster.j2.tf rename to lib/aws/bootstrap-eks/eks-master-cluster.j2.tf diff --git a/lib/aws/bootstrap/eks-master-iam.tf b/lib/aws/bootstrap-eks/eks-master-iam.tf similarity index 100% rename from lib/aws/bootstrap/eks-master-iam.tf rename to lib/aws/bootstrap-eks/eks-master-iam.tf diff --git a/lib/aws/bootstrap/eks-master-sec-group.tf b/lib/aws/bootstrap-eks/eks-master-sec-group.tf similarity index 100% rename from lib/aws/bootstrap/eks-master-sec-group.tf rename to lib/aws/bootstrap-eks/eks-master-sec-group.tf diff --git a/lib/aws/bootstrap/eks-s3-kubeconfig-store.tf b/lib/aws/bootstrap-eks/eks-s3-kubeconfig-store.tf similarity index 100% rename from lib/aws/bootstrap/eks-s3-kubeconfig-store.tf rename to lib/aws/bootstrap-eks/eks-s3-kubeconfig-store.tf diff --git a/lib/aws/bootstrap-eks/eks-vpc-common.j2.tf b/lib/aws/bootstrap-eks/eks-vpc-common.j2.tf new file mode 100644 index 00000000..63b91880 --- /dev/null +++ b/lib/aws/bootstrap-eks/eks-vpc-common.j2.tf @@ -0,0 +1,42 @@ +data "aws_availability_zones" "available" {} + +locals { + tags_eks_vpc = merge( + local.tags_common, + { + Name = "qovery-eks-workers", + "kubernetes.io/cluster/qovery-${var.kubernetes_cluster_id}" = "shared", + "kubernetes.io/role/elb" = 1, + {% if resource_expiration_in_seconds is defined %}ttl = var.resource_expiration_in_seconds,{% endif %} + } + ) + + tags_eks_vpc_public = merge( + local.tags_eks_vpc, + { + "Public" = "true" + } + ) + + tags_eks_vpc_private = merge( + local.tags_eks, + { + "Public" = "false" + } + ) +} + +# VPC +resource "aws_vpc" "eks" { + cidr_block = var.vpc_cidr_block + enable_dns_hostnames = true + + tags = local.tags_eks_vpc +} + +# Internet gateway +resource "aws_internet_gateway" "eks_cluster" { + vpc_id = aws_vpc.eks.id + + tags = local.tags_eks_vpc +} \ No newline at end of file diff --git a/lib/aws/bootstrap/eks-vpc-with-nat-gateways.j2.tf b/lib/aws/bootstrap-eks/eks-vpc-with-nat-gateways.j2.tf similarity index 100% rename from lib/aws/bootstrap/eks-vpc-with-nat-gateways.j2.tf rename to lib/aws/bootstrap-eks/eks-vpc-with-nat-gateways.j2.tf diff --git a/lib/aws/bootstrap-eks/eks-vpc-without-nat-gateways.j2.tf b/lib/aws/bootstrap-eks/eks-vpc-without-nat-gateways.j2.tf new file mode 100644 index 00000000..d0174308 --- /dev/null +++ b/lib/aws/bootstrap-eks/eks-vpc-without-nat-gateways.j2.tf @@ -0,0 +1,75 @@ +{% if vpc_qovery_network_mode == "WithoutNatGateways" %} +# Public subnets +resource "aws_subnet" "eks_zone_a" { + count = length(var.eks_subnets_zone_a_private) + + availability_zone = var.aws_availability_zones[0] + cidr_block = var.eks_subnets_zone_a_private[count.index] + vpc_id = aws_vpc.eks.id + map_public_ip_on_launch = true + + tags = local.tags_eks_vpc +} + +resource "aws_subnet" "eks_zone_b" { + count = length(var.eks_subnets_zone_b_private) + + availability_zone = var.aws_availability_zones[1] + cidr_block = var.eks_subnets_zone_b_private[count.index] + vpc_id = aws_vpc.eks.id + map_public_ip_on_launch = true + + tags = local.tags_eks_vpc +} + +resource "aws_subnet" "eks_zone_c" { + count = length(var.eks_subnets_zone_c_private) + + availability_zone = var.aws_availability_zones[2] + cidr_block = var.eks_subnets_zone_c_private[count.index] + vpc_id = aws_vpc.eks.id + map_public_ip_on_launch = true + + tags = local.tags_eks_vpc +} + +resource "aws_route_table" "eks_cluster" { + vpc_id = aws_vpc.eks.id + + route { + cidr_block = "0.0.0.0/0" + gateway_id = aws_internet_gateway.eks_cluster.id + } + + // todo(pmavro): add tests for it when it will be available in the SDK + {% for route in vpc_custom_routing_table %} + route { + cidr_block = "{{ route.destination }}" + gateway_id = "{{ route.target }}" + } + {% endfor %} + + tags = local.tags_eks_vpc +} + +resource "aws_route_table_association" "eks_cluster_zone_a" { + count = length(var.eks_subnets_zone_a_private) + + subnet_id = aws_subnet.eks_zone_a.*.id[count.index] + route_table_id = aws_route_table.eks_cluster.id +} + +resource "aws_route_table_association" "eks_cluster_zone_b" { + count = length(var.eks_subnets_zone_b_private) + + subnet_id = aws_subnet.eks_zone_b.*.id[count.index] + route_table_id = aws_route_table.eks_cluster.id +} + +resource "aws_route_table_association" "eks_cluster_zone_c" { + count = length(var.eks_subnets_zone_c_private) + + subnet_id = aws_subnet.eks_zone_c.*.id[count.index] + route_table_id = aws_route_table.eks_cluster.id +} +{% endif %} \ No newline at end of file diff --git a/lib/aws/bootstrap/eks-workers-iam.tf b/lib/aws/bootstrap-eks/eks-workers-iam.tf similarity index 100% rename from lib/aws/bootstrap/eks-workers-iam.tf rename to lib/aws/bootstrap-eks/eks-workers-iam.tf diff --git a/lib/aws/bootstrap/eks-workers-nodes.j2.tf b/lib/aws/bootstrap-eks/eks-workers-nodes.j2.tf similarity index 100% rename from lib/aws/bootstrap/eks-workers-nodes.j2.tf rename to lib/aws/bootstrap-eks/eks-workers-nodes.j2.tf diff --git a/lib/aws/bootstrap/eks-workers-sec-group.tf b/lib/aws/bootstrap-eks/eks-workers-sec-group.tf similarity index 100% rename from lib/aws/bootstrap/eks-workers-sec-group.tf rename to lib/aws/bootstrap-eks/eks-workers-sec-group.tf diff --git a/lib/aws/bootstrap-eks/elasticcache.tf b/lib/aws/bootstrap-eks/elasticcache.tf new file mode 100644 index 00000000..44073c63 --- /dev/null +++ b/lib/aws/bootstrap-eks/elasticcache.tf @@ -0,0 +1,80 @@ +locals { + tags_elasticache = merge( + aws_eks_cluster.eks_cluster.tags, + { + "Service" = "Elasticache" + } + ) +} + +# Network + +resource "aws_subnet" "elasticache_zone_a" { + count = length(var.elasticache_subnets_zone_a) + + availability_zone = var.aws_availability_zones[0] + cidr_block = var.elasticache_subnets_zone_a[count.index] + vpc_id = aws_vpc.eks.id + + tags = local.tags_elasticache +} + +resource "aws_subnet" "elasticache_zone_b" { + count = length(var.elasticache_subnets_zone_b) + + availability_zone = var.aws_availability_zones[1] + cidr_block = var.elasticache_subnets_zone_b[count.index] + vpc_id = aws_vpc.eks.id + + tags = local.tags_elasticache +} + +resource "aws_subnet" "elasticache_zone_c" { + count = length(var.elasticache_subnets_zone_c) + + availability_zone = var.aws_availability_zones[2] + cidr_block = var.elasticache_subnets_zone_c[count.index] + vpc_id = aws_vpc.eks.id + + tags = local.tags_elasticache +} + +resource "aws_route_table_association" "elasticache_cluster_zone_a" { + count = length(var.elasticache_subnets_zone_a) + + subnet_id = aws_subnet.elasticache_zone_a.*.id[count.index] + route_table_id = aws_route_table.eks_cluster.id +} + +resource "aws_route_table_association" "elasticache_cluster_zone_b" { + count = length(var.elasticache_subnets_zone_b) + + subnet_id = aws_subnet.elasticache_zone_b.*.id[count.index] + route_table_id = aws_route_table.eks_cluster.id +} + +resource "aws_route_table_association" "elasticache_cluster_zone_c" { + count = length(var.elasticache_subnets_zone_c) + + subnet_id = aws_subnet.elasticache_zone_c.*.id[count.index] + route_table_id = aws_route_table.eks_cluster.id +} + +resource "aws_elasticache_subnet_group" "elasticache" { + description = "Elasticache linked to ${var.kubernetes_cluster_id}" + # WARNING: this "name" value is used into elasticache clusters, you need to update it accordingly + name = "elasticache-${aws_vpc.eks.id}" + subnet_ids = flatten([aws_subnet.elasticache_zone_a.*.id, aws_subnet.elasticache_zone_b.*.id, aws_subnet.elasticache_zone_c.*.id]) +} + +# Todo: create a bastion to avoid this + +resource "aws_security_group_rule" "elasticache_remote_access" { + cidr_blocks = ["0.0.0.0/0"] + description = "Allow Redis incoming access from anywhere" + from_port = 6379 + protocol = "tcp" + security_group_id = aws_security_group.eks_cluster_workers.id + to_port = 6379 + type = "ingress" +} diff --git a/lib/aws/bootstrap-eks/elasticsearch.tf b/lib/aws/bootstrap-eks/elasticsearch.tf new file mode 100644 index 00000000..f5e873dd --- /dev/null +++ b/lib/aws/bootstrap-eks/elasticsearch.tf @@ -0,0 +1,79 @@ +locals { + tags_elasticsearch = merge( + local.tags_eks, + { + "Service" = "Elasticsearch" + } + ) +} + +# Network + +resource "aws_subnet" "elasticsearch_zone_a" { + count = length(var.elasticsearch_subnets_zone_a) + + availability_zone = var.aws_availability_zones[0] + cidr_block = var.elasticsearch_subnets_zone_a[count.index] + vpc_id = aws_vpc.eks.id + + tags = local.tags_elasticsearch +} + +resource "aws_subnet" "elasticsearch_zone_b" { + count = length(var.elasticsearch_subnets_zone_b) + + availability_zone = var.aws_availability_zones[1] + cidr_block = var.elasticsearch_subnets_zone_b[count.index] + vpc_id = aws_vpc.eks.id + + tags = local.tags_elasticsearch +} + +resource "aws_subnet" "elasticsearch_zone_c" { + count = length(var.elasticsearch_subnets_zone_c) + + availability_zone = var.aws_availability_zones[2] + cidr_block = var.elasticsearch_subnets_zone_c[count.index] + vpc_id = aws_vpc.eks.id + + tags = local.tags_elasticsearch +} + +resource "aws_route_table_association" "elasticsearch_cluster_zone_a" { + count = length(var.elasticsearch_subnets_zone_a) + + subnet_id = aws_subnet.elasticsearch_zone_a.*.id[count.index] + route_table_id = aws_route_table.eks_cluster.id +} + +resource "aws_route_table_association" "elasticsearch_cluster_zone_b" { + count = length(var.elasticsearch_subnets_zone_b) + + subnet_id = aws_subnet.elasticsearch_zone_b.*.id[count.index] + route_table_id = aws_route_table.eks_cluster.id +} + +resource "aws_route_table_association" "elasticsearch_cluster_zone_c" { + count = length(var.elasticsearch_subnets_zone_c) + + subnet_id = aws_subnet.elasticsearch_zone_c.*.id[count.index] + route_table_id = aws_route_table.eks_cluster.id +} + +resource "aws_security_group" "elasticsearch" { + name = "elasticsearch-${var.kubernetes_cluster_id}" + description = "Elasticsearch security group" + vpc_id = aws_vpc.eks.id + + ingress { + from_port = 443 + to_port = 443 + protocol = "tcp" + + cidr_blocks = [ + aws_vpc.eks.cidr_block + ] + } + + tags = local.tags_elasticsearch +} diff --git a/lib/aws/bootstrap/helm-aws-iam-eks-user-mapper.tf b/lib/aws/bootstrap-eks/helm-aws-iam-eks-user-mapper.tf similarity index 100% rename from lib/aws/bootstrap/helm-aws-iam-eks-user-mapper.tf rename to lib/aws/bootstrap-eks/helm-aws-iam-eks-user-mapper.tf diff --git a/lib/aws/bootstrap/helm-cluster-autoscaler.j2.tf b/lib/aws/bootstrap-eks/helm-cluster-autoscaler.j2.tf similarity index 100% rename from lib/aws/bootstrap/helm-cluster-autoscaler.j2.tf rename to lib/aws/bootstrap-eks/helm-cluster-autoscaler.j2.tf diff --git a/lib/aws/bootstrap/helm-grafana.j2.tf b/lib/aws/bootstrap-eks/helm-grafana.j2.tf similarity index 100% rename from lib/aws/bootstrap/helm-grafana.j2.tf rename to lib/aws/bootstrap-eks/helm-grafana.j2.tf diff --git a/lib/aws/bootstrap/helm-loki.j2.tf b/lib/aws/bootstrap-eks/helm-loki.j2.tf similarity index 100% rename from lib/aws/bootstrap/helm-loki.j2.tf rename to lib/aws/bootstrap-eks/helm-loki.j2.tf diff --git a/lib/aws/bootstrap/helm-nginx-ingress.tf b/lib/aws/bootstrap-eks/helm-nginx-ingress.tf similarity index 100% rename from lib/aws/bootstrap/helm-nginx-ingress.tf rename to lib/aws/bootstrap-eks/helm-nginx-ingress.tf diff --git a/lib/aws/bootstrap/helper.j2.sh b/lib/aws/bootstrap-eks/helper.j2.sh similarity index 100% rename from lib/aws/bootstrap/helper.j2.sh rename to lib/aws/bootstrap-eks/helper.j2.sh diff --git a/lib/aws/bootstrap/qovery-tf-config.j2.tf b/lib/aws/bootstrap-eks/qovery-tf-config.j2.tf similarity index 100% rename from lib/aws/bootstrap/qovery-tf-config.j2.tf rename to lib/aws/bootstrap-eks/qovery-tf-config.j2.tf diff --git a/lib/aws/bootstrap-eks/qovery-vault.j2.tf b/lib/aws/bootstrap-eks/qovery-vault.j2.tf new file mode 100644 index 00000000..b12afa38 --- /dev/null +++ b/lib/aws/bootstrap-eks/qovery-vault.j2.tf @@ -0,0 +1,29 @@ +locals { + kubeconfig_base64 = base64encode(local.kubeconfig) +} +// do not run for tests clusters to avoid uncleaned info. +// do not try to use count into resource, it will fails trying to connect to vault +{% if vault_auth_method != "none" and not test_cluster %} +resource "vault_generic_secret" "cluster-access" { + path = "official-clusters-access/${var.organization_id}-${var.kubernetes_cluster_id}" + + data_json = <, + pub ec2_zone_b_subnet_blocks: Vec, + pub ec2_zone_c_subnet_blocks: Vec, pub eks_zone_a_subnet_blocks: Vec, pub eks_zone_b_subnet_blocks: Vec, pub eks_zone_c_subnet_blocks: Vec, @@ -154,7 +156,7 @@ impl EKS { logger: Box, ) -> Result { let event_details = event_details(&cloud_provider, id, name, ®ion, &context); - let template_directory = format!("{}/aws/bootstrap", context.lib_root_dir()); + let template_directory = format!("{}/aws/bootstrap-eks", context.lib_root_dir()); let aws_zones = aws_zones(zones, ®ion, &event_details)?; @@ -796,7 +798,7 @@ impl EC2 { logger: Box, ) -> Result { let event_details = event_details(&cloud_provider, id, name, ®ion, &context); - let template_directory = format!("{}/aws/bootstrap", context.lib_root_dir()); + let template_directory = format!("{}/aws/bootstrap-ec2", context.lib_root_dir()); let aws_zones = aws_zones(zones, ®ion, &event_details)?; let s3 = s3(&context, ®ion, &**cloud_provider); @@ -1267,6 +1269,30 @@ fn tera_context( VpcQoveryNetworkMode::WithoutNatGateways => {} }; + let mut ec2_zone_a_subnet_blocks_private = format_ips(&options.ec2_zone_a_subnet_blocks); + let mut ec2_zone_b_subnet_blocks_private = format_ips(&options.ec2_zone_b_subnet_blocks); + let mut ec2_zone_c_subnet_blocks_private = format_ips(&options.ec2_zone_c_subnet_blocks); + + match options.vpc_qovery_network_mode { + VpcQoveryNetworkMode::WithNatGateways => { + let max_subnet_zone_a = check_odd_subnets(event_details.clone(), "a", &ec2_zone_a_subnet_blocks_private)?; + let max_subnet_zone_b = check_odd_subnets(event_details.clone(), "b", &ec2_zone_b_subnet_blocks_private)?; + let max_subnet_zone_c = check_odd_subnets(event_details.clone(), "c", &ec2_zone_c_subnet_blocks_private)?; + + let ec2_zone_a_subnet_blocks_public: Vec = + ec2_zone_a_subnet_blocks_private.drain(max_subnet_zone_a..).collect(); + let ec2_zone_b_subnet_blocks_public: Vec = + ec2_zone_b_subnet_blocks_private.drain(max_subnet_zone_b..).collect(); + let ec2_zone_c_subnet_blocks_public: Vec = + ec2_zone_c_subnet_blocks_private.drain(max_subnet_zone_c..).collect(); + + context.insert("ec2_zone_a_subnet_blocks_public", &ec2_zone_a_subnet_blocks_public); + context.insert("ec2_zone_b_subnet_blocks_public", &ec2_zone_b_subnet_blocks_public); + context.insert("ec2_zone_c_subnet_blocks_public", &ec2_zone_c_subnet_blocks_public); + } + VpcQoveryNetworkMode::WithoutNatGateways => {} + }; + context.insert("vpc_qovery_network_mode", &options.vpc_qovery_network_mode.to_string()); let rds_zone_a_subnet_blocks = format_ips(&options.rds_zone_a_subnet_blocks); @@ -1434,7 +1460,10 @@ fn tera_context( context.insert("kubernetes_cluster_id", kubernetes.id()); context.insert("kubernetes_full_cluster_id", kubernetes.context().cluster_id()); context.insert("eks_region_cluster_id", region_cluster_id.as_str()); - context.insert("eks_worker_nodes", &node_groups); // FIXME + context.insert("eks_worker_nodes", &node_groups); + context.insert("ec2_zone_a_subnet_blocks_private", &ec2_zone_a_subnet_blocks_private); + context.insert("ec2_zone_b_subnet_blocks_private", &ec2_zone_b_subnet_blocks_private); + context.insert("ec2_zone_c_subnet_blocks_private", &ec2_zone_c_subnet_blocks_private); context.insert("eks_zone_a_subnet_blocks_private", &eks_zone_a_subnet_blocks_private); context.insert("eks_zone_b_subnet_blocks_private", &eks_zone_b_subnet_blocks_private); context.insert("eks_zone_c_subnet_blocks_private", &eks_zone_c_subnet_blocks_private); @@ -1792,8 +1821,8 @@ fn pause( )); } - // copy lib/common/bootstrap/charts directory (and sub directory) into the lib/aws/bootstrap/common/charts directory. - // this is due to the required dependencies of lib/aws/bootstrap/*.tf files + // copy lib/common/bootstrap/charts directory (and sub directory) into the lib/aws/bootstrap-{type}/common/charts directory. + // this is due to the required dependencies of lib/aws/bootstrap-{type}/*.tf files let bootstrap_charts_dir = format!("{}/common/bootstrap/charts", kubernetes.context().lib_root_dir()); let common_charts_temp_dir = format!("{}/common/charts", temp_dir.as_str()); if let Err(e) = crate::template::copy_non_template_files(&bootstrap_charts_dir, common_charts_temp_dir.as_str()) { @@ -1916,6 +1945,7 @@ fn pause( kubernetes .logger() .log(EngineEvent::Info(event_details, EventMessage::new_from_safe(message))); + Ok(()) } Err(e) => Err(EngineError::new_terraform_error_while_executing_pipeline(event_details, e)), diff --git a/test_utilities/src/aws.rs b/test_utilities/src/aws.rs index 8a692f45..c6c5c4b1 100644 --- a/test_utilities/src/aws.rs +++ b/test_utilities/src/aws.rs @@ -154,6 +154,9 @@ impl Cluster for AWS { fn kubernetes_cluster_options(secrets: FuncTestsSecrets, _cluster_name: Option) -> Options { Options { + ec2_zone_a_subnet_blocks: vec!["10.0.0.0/20".to_string(), "10.0.16.0/20".to_string()], + ec2_zone_b_subnet_blocks: vec!["10.0.32.0/20".to_string(), "10.0.48.0/20".to_string()], + ec2_zone_c_subnet_blocks: vec!["10.0.64.0/20".to_string(), "10.0.80.0/20".to_string()], eks_zone_a_subnet_blocks: vec!["10.0.0.0/20".to_string(), "10.0.16.0/20".to_string()], eks_zone_b_subnet_blocks: vec!["10.0.32.0/20".to_string(), "10.0.48.0/20".to_string()], eks_zone_c_subnet_blocks: vec!["10.0.64.0/20".to_string(), "10.0.80.0/20".to_string()],