├── .gitignore ├── 01-Infrastructure-as-Code-IaC-Basics └── README.md ├── 02-Terraform-Basics ├── 02-01-Install-Tools-TerraformCLI-AWSCLI-VSCodeIDE │ └── README.md ├── 02-02-Terraform-Command-Basics │ ├── README.md │ └── terraform-manifests │ │ └── ec2-instance.tf └── 02-03-Terraform-Language-Syntax │ ├── README.md │ └── terraform-manifests │ └── top-level-blocks-samples.tf ├── 03-Terraform-Settings-Providers-Resources ├── README.md └── terraform-manifests │ ├── app1-install.sh │ ├── c1-versions.tf │ └── c2-ec2instance.tf ├── 04-Terraform-Variables-and-Datasources ├── README.md └── terraform-manifests │ ├── app1-install.sh │ ├── c1-versions.tf │ ├── c2-variables.tf │ ├── c3-ec2securitygroups.tf │ ├── c4-ami-datasource.tf │ ├── c5-ec2instance.tf │ ├── c6-outputs.tf │ └── private-key │ └── terraform-key.pem ├── 05-Terraform-Loops-MetaArguments-SplatOperator ├── 05-01-MetaArgument-Count-For-Loops-Lists-Maps │ ├── README.md │ └── terraform-manifests │ │ ├── app1-install.sh │ │ ├── c1-versions.tf │ │ ├── c2-variables.tf │ │ ├── c3-ec2securitygroups.tf │ │ ├── c4-ami-datasource.tf │ │ ├── c5-ec2instance.tf │ │ ├── c6-outputs.tf │ │ └── private-key │ │ └── terraform-key.pem ├── 05-02-MetaArgument-for_each │ ├── README.md │ └── terraform-manifests │ │ ├── app1-install.sh │ │ ├── c1-versions.tf │ │ ├── c2-variables.tf │ │ ├── c3-ec2securitygroups.tf │ │ ├── c4-ami-datasource.tf │ │ ├── c5-ec2instance.tf │ │ ├── c6-outputs.tf │ │ └── private-key │ │ └── terraform-key.pem ├── 05-03-Utility-Project │ ├── README.md │ └── terraform-manifests │ │ ├── c1-versions.tf │ │ ├── c2-v1-get-instancetype-supported-per-az-in-a-region.tf │ │ ├── c2-v2-get-instancetype-supported-per-az-in-a-region.tf │ │ └── c2-v3-get-instancetype-supported-per-az-in-a-region.tf └── 05-04-for_each-with-az-instancetype-check │ ├── README.md │ └── terraform-manifests │ ├── app1-install.sh │ ├── backup │ └── c5-ec2instance.tf │ ├── c1-versions.tf │ ├── c2-variables.tf │ ├── c3-ec2securitygroups.tf │ ├── c4-ami-datasource.tf │ ├── c5-ec2instance.tf │ ├── c6-outputs.tf │ ├── c7-get-instancetype-supported-per-az-in-a-region.tf │ └── private-key │ └── terraform-key.pem ├── 06-AWS-VPC ├── 06-01-AWS-VPC-using-Mgmt-Console │ └── README.md └── 06-02-AWS-VPC-using-Terraform │ ├── README.md │ └── terraform-manifests │ ├── v1-vpc-module │ ├── c1-versions.tf │ ├── c2-generic-variables.tf │ └── c3-vpc.tf │ └── v2-vpc-module-standardized │ ├── c1-versions.tf │ ├── c2-generic-variables.tf │ ├── c3-local-values.tf │ ├── c4-01-vpc-variables.tf │ ├── c4-02-vpc-module.tf │ ├── c4-03-vpc-outputs.tf │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 07-AWS-EC2-BastionHost ├── README.md └── terraform-manifests │ ├── c1-versions.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ └── creation-time-vpc-id.txt │ ├── private-key │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 08-AWS-EKS-Cluster-Basics ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars └── README.md ├── 09-Kubernetes-Fundamentals └── README.md ├── 10-Kubernetes-Deployment-and-Service ├── README.md └── kube-manifests │ ├── 01-Deployment.yaml │ ├── 02-CLB-LoadBalancer-Service.yaml │ ├── 03-NodePort-Service.yaml │ └── 04-NLB-LoadBalancer-Service.yaml ├── 11-Kubernetes-Resources-via-Terraform ├── 02-k8sresources-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-kubernetes-deployment.tf │ ├── c5-kubernetes-loadbalancer-service-clb.tf │ ├── c6-kubernetes-nodeport-service.tf │ └── c7-kubernetes-loadbalancer-service-nlb.tf └── README.md ├── 12-Terraform-Remote-State-Storage ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-k8sresources-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-kubernetes-deployment.tf │ ├── c5-kubernetes-loadbalancer-service-clb.tf │ ├── c6-kubernetes-nodeport-service.tf │ └── c7-kubernetes-loadbalancer-service-nlb.tf └── README.md ├── 13-EKS-IRSA ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-eks-irsa-demo-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-providers.tf │ ├── c4-02-irsa-iam-policy-and-role.tf │ ├── c4-03-irsa-k8s-service-account.tf │ ├── c4-04-irsa-k8s-job.tf │ └── terraform.tfvars └── README.md ├── 14-EBS-CSI-Install-Kubernetes-Storage ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-ebs-terraform-manifests │ ├── .terraform.lock.hcl │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-ebs-csi-datasources.tf │ ├── c4-02-ebs-csi-iam-policy-and-role.tf │ ├── c4-03-ebs-csi-helm-provider.tf │ ├── c4-04-ebs-csi-install-using-helm.tf │ ├── c4-05-ebs-csi-outputs.tf │ └── terraform.tfvars ├── README.md └── other-files-for-review │ ├── 01-ebs-csi-controller-deployment-description.txt │ └── 02-ebs-csi-controller-pod-description.txt ├── 15-EBS-Kubernetes-SampleApp-YAML ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-ebs-terraform-manifests │ ├── .terraform.lock.hcl │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-ebs-csi-datasources.tf │ ├── c4-02-ebs-csi-iam-policy-and-role.tf │ ├── c4-03-ebs-csi-helm-provider.tf │ ├── c4-04-ebs-csi-install-using-helm.tf │ ├── c4-05-ebs-csi-outputs.tf │ └── terraform.tfvars ├── 03-kube-manifests-UMS-WebApp │ ├── 01-storage-class.yaml │ ├── 02-persistent-volume-claim.yaml │ ├── 03-UserManagement-ConfigMap.yaml │ ├── 04-mysql-deployment.yaml │ ├── 05-mysql-clusterip-service.yaml │ ├── 06-UserMgmtWebApp-Deployment.yaml │ ├── 07-UserMgmtWebApp-Classic-LoadBalancer-Service.yaml │ ├── 08-UserMgmtWebApp-Network-LoadBalancer.yaml │ └── 09-UserMgmtWebApp-NodePort-Service.yaml └── README.md ├── 16-EBS-Kubernetes-SampleApp-Terraform ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-ebs-terraform-manifests │ ├── .terraform.lock.hcl │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-ebs-csi-datasources.tf │ ├── c4-02-ebs-csi-iam-policy-and-role.tf │ ├── c4-03-ebs-csi-helm-provider.tf │ ├── c4-04-ebs-csi-install-using-helm.tf │ ├── c4-05-ebs-csi-outputs.tf │ └── terraform.tfvars ├── 03-terraform-manifests-UMS-WebApp │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-01-storage-class.tf │ ├── c4-02-persistent-volume-claim.tf │ ├── c4-03-UserMgmtWebApp-ConfigMap.tf │ ├── c4-04-mysql-deployment.tf │ ├── c4-05-mysql-clusterip-service.tf │ ├── c4-06-UserMgmtWebApp-deployment.tf │ ├── c4-07-UserMgmtWebApp-loadbalancer-service.tf │ ├── c4-08-UserMgmtWebApp-network-loadbalancer-service.tf │ ├── c4-09-UserMgmtWebApp-nodeport-service.tf │ └── webappdb.sql └── README.md ├── 17-EBS-Resizing-on-EKS ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-ebs-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-ebs-csi-datasources.tf │ ├── c4-02-ebs-csi-iam-policy-and-role.tf │ ├── c4-03-ebs-csi-helm-provider.tf │ ├── c4-04-ebs-csi-install-using-helm.tf │ ├── c4-05-ebs-csi-outputs.tf │ └── terraform.tfvars ├── 03-terraform-manifests-UMS-WebApp │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-01-storage-class.tf │ ├── c4-02-persistent-volume-claim.tf │ ├── c4-03-UserMgmtWebApp-ConfigMap.tf │ ├── c4-04-mysql-deployment.tf │ ├── c4-05-mysql-clusterip-service.tf │ ├── c4-06-UserMgmtWebApp-deployment.tf │ ├── c4-07-UserMgmtWebApp-loadbalancer-service.tf │ ├── c4-08-UserMgmtWebApp-network-loadbalancer-service.tf │ ├── c4-09-UserMgmtWebApp-nodeport-service.tf │ └── webappdb.sql └── README.md ├── 18-EBS-CSI-Install-using-EKS-AddOn ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-ebs-addon-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-ebs-csi-datasources.tf │ ├── c4-02-ebs-csi-iam-policy-and-role.tf │ ├── c4-03-ebs-csi-addon-install.tf │ ├── c4-04-ebs-csi-outputs.tf │ └── terraform.tfvars ├── 03-terraform-manifests-UMS-WebApp │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-01-storage-class.tf │ ├── c4-02-persistent-volume-claim.tf │ ├── c4-03-UserMgmtWebApp-ConfigMap.tf │ ├── c4-04-mysql-deployment.tf │ ├── c4-05-mysql-clusterip-service.tf │ ├── c4-06-UserMgmtWebApp-deployment.tf │ ├── c4-07-UserMgmtWebApp-loadbalancer-service.tf │ ├── c4-08-UserMgmtWebApp-network-loadbalancer-service.tf │ ├── c4-09-UserMgmtWebApp-nodeport-service.tf │ └── webappdb.sql ├── README.md └── backup │ ├── c4-03-ebs-csi-addon-install.tf │ └── c4-04-ebs-csi-outputs.tf ├── 19-EKS-Admins-AWS-Admin-User ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars └── README.md ├── 20-EKS-Admins-AWS-Basic-User ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── README.md └── iam-files │ └── eks-full-access-policy.json ├── 21-EKS-Admins-as-AWS-IAM-Users ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars └── README.md ├── 22-EKS-Admins-with-AWS-IAM-Roles ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── ec2bastion.auto.tfvars │ ├── eks-full-access-policy.json │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── README.md └── iam-files │ └── eks-full-access-policy.json ├── 23-EKS-Admins-with-AWS-IAM-Roles-TF ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars └── README.md ├── 24-EKS-ReadOnly-IAM-Users ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-kube-manifests-crb-cr │ └── eks-readonly-access.yaml ├── README.md └── for-reference-aws-auth.yaml ├── 25-EKS-DeveloperAccess-IAM-Users ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-kube-manifests-rb-r │ ├── 00-k8s-dev-namespace.yaml │ ├── 01-k8s-clusterrole-clusterrolebinding.yaml │ └── 02-k8s-role-rolebinding-dev-namespace.yaml ├── 03-app1-kube-manifests │ ├── 01-Deployment.yaml │ ├── 02-CLB-LoadBalancer-Service.yaml │ ├── 03-NodePort-Service.yaml │ └── 04-NLB-LoadBalancer-Service.yaml ├── 04-k8sresources-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-kubernetes-deployment.tf │ ├── c5-kubernetes-loadbalancer-service-clb.tf │ ├── c6-kubernetes-nodeport-service.tf │ └── c7-kubernetes-loadbalancer-service-nlb.tf ├── README.md ├── for-reference-aws-auth.yaml └── other-files │ ├── eks-console-full-access.yaml │ └── eks-console-restricted-access.yaml ├── 26-EKS-with-LoadBalancer-Controller ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-lbc-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-lbc-datasources.tf │ ├── c4-02-lbc-iam-policy-and-role.tf │ ├── c4-03-lbc-helm-provider.tf │ ├── c4-04-lbc-install.tf │ ├── c4-05-lbc-outputs.tf │ ├── c5-01-kubernetes-provider.tf │ ├── c5-02-ingress-class.tf │ └── terraform.tfvars └── README.md ├── 27-EKS-Ingress-Basics ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-lbc-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-lbc-datasources.tf │ ├── c4-02-lbc-iam-policy-and-role.tf │ ├── c4-03-lbc-helm-provider.tf │ ├── c4-04-lbc-install.tf │ ├── c4-05-lbc-outputs.tf │ ├── c5-01-kubernetes-provider.tf │ ├── c5-02-ingress-class.tf │ └── terraform.tfvars ├── 03-kube-manifests-ingress-basics │ ├── 01-Nginx-App1-Deployment-and-NodePortService.yml │ └── 02-ALB-Ingress-Basic.yml ├── 04-ingress-basics-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-kubernetes-app3-deployment.tf │ ├── c5-kubernetes-app3-nodeport-service.tf │ └── c6-kubernetes-ingress-service.tf └── README.md ├── 28-EKS-Ingress-Context-Path-Routing ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-lbc-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-lbc-datasources.tf │ ├── c4-02-lbc-iam-policy-and-role.tf │ ├── c4-03-lbc-helm-provider.tf │ ├── c4-04-lbc-install.tf │ ├── c4-05-lbc-outputs.tf │ ├── c5-01-kubernetes-provider.tf │ ├── c5-02-ingress-class.tf │ └── terraform.tfvars ├── 03-kube-manifests-ingress-cpr │ ├── 01-Nginx-App1-Deployment-and-NodePortService.yml │ ├── 02-Nginx-App2-Deployment-and-NodePortService.yml │ ├── 03-Nginx-App3-Deployment-and-NodePortService.yml │ └── 04-ALB-Ingress-ContextPath-Based-Routing.yml ├── 04-ingress-cpr-terraform-manifests │ ├── c1-versions.tf │ ├── c10-kubernetes-ingress-service.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-kubernetes-app1-deployment.tf │ ├── c5-kubernetes-app2-deployment.tf │ ├── c6-kubernetes-app3-deployment.tf │ ├── c7-kubernetes-app1-nodeport-service.tf │ ├── c8-kubernetes-app2-nodeport-service.tf │ └── c9-kubernetes-app3-nodeport-service.tf └── README.md ├── 29-EKS-Ingress-SSL-SSLRedirect ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-lbc-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-lbc-datasources.tf │ ├── c4-02-lbc-iam-policy-and-role.tf │ ├── c4-03-lbc-helm-provider.tf │ ├── c4-04-lbc-install.tf │ ├── c4-05-lbc-outputs.tf │ ├── c5-01-kubernetes-provider.tf │ ├── c5-02-ingress-class.tf │ └── terraform.tfvars ├── 03-kube-manifests-Ingress-SSL │ ├── 01-Nginx-App1-Deployment-and-NodePortService.yml │ ├── 02-Nginx-App2-Deployment-and-NodePortService.yml │ ├── 03-Nginx-App3-Deployment-and-NodePortService.yml │ └── 04-ALB-Ingress-SSL-Redirect.yml ├── 04-ingress-ssl-terraform-manifests │ ├── c1-versions.tf │ ├── c10-kubernetes-ingress-service.tf │ ├── c11-acm-certificate.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-kubernetes-app1-deployment.tf │ ├── c5-kubernetes-app2-deployment.tf │ ├── c5-kubernetes-app3-deployment.tf │ ├── c7-kubernetes-app1-nodeport-service.tf │ ├── c8-kubernetes-app2-nodeport-service.tf │ ├── c9-kubernetes-app3-nodeport-service.tf │ └── listen-ports │ │ └── listen-ports.json └── README.md ├── 30-EKS-ExternalDNS-Install ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-lbc-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-lbc-datasources.tf │ ├── c4-02-lbc-iam-policy-and-role.tf │ ├── c4-03-lbc-helm-provider.tf │ ├── c4-04-lbc-install.tf │ ├── c4-05-lbc-outputs.tf │ ├── c5-01-kubernetes-provider.tf │ ├── c5-02-ingress-class.tf │ └── terraform.tfvars ├── 03-externaldns-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-externaldns-iam-policy-and-role.tf │ ├── c4-02-externaldns-helm-provider.tf │ ├── c4-03-externaldns-install.tf │ ├── c4-04-externaldns-outputs.tf │ └── terraform.tfvars └── README.md ├── 31-EKS-ExternalDNS-with-Ingress-Service ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-lbc-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-lbc-datasources.tf │ ├── c4-02-lbc-iam-policy-and-role.tf │ ├── c4-03-lbc-helm-provider.tf │ ├── c4-04-lbc-install.tf │ ├── c4-05-lbc-outputs.tf │ ├── c5-01-kubernetes-provider.tf │ ├── c5-02-ingress-class.tf │ └── terraform.tfvars ├── 03-externaldns-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-externaldns-iam-policy-and-role.tf │ ├── c4-02-externaldns-helm-provider.tf │ ├── c4-03-externaldns-install.tf │ ├── c4-04-externaldns-outputs.tf │ └── terraform.tfvars ├── 04-kube-manifests-ingress-externaldns │ ├── 01-Nginx-App1-Deployment-and-NodePortService.yml │ ├── 02-Nginx-App2-Deployment-and-NodePortService.yml │ ├── 03-Nginx-App3-Deployment-and-NodePortService.yml │ └── 04-ALB-Ingress-SSL-Redirect-ExternalDNS.yml ├── 05-ingress-externaldns-terraform-manifests │ ├── c1-versions.tf │ ├── c10-kubernetes-ingress-service.tf │ ├── c11-acm-certificate.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-kubernetes-app1-deployment.tf │ ├── c5-kubernetes-app2-deployment.tf │ ├── c5-kubernetes-app3-deployment.tf │ ├── c7-kubernetes-app1-nodeport-service.tf │ ├── c8-kubernetes-app2-nodeport-service.tf │ ├── c9-kubernetes-app3-nodeport-service.tf │ └── listen-ports │ │ └── listen-ports.json └── README.md ├── 32-EKS-ExternalDNS-with-k8s-Service ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-lbc-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-lbc-datasources.tf │ ├── c4-02-lbc-iam-policy-and-role.tf │ ├── c4-03-lbc-helm-provider.tf │ ├── c4-04-lbc-install.tf │ ├── c4-05-lbc-outputs.tf │ ├── c5-01-kubernetes-provider.tf │ ├── c5-02-ingress-class.tf │ └── terraform.tfvars ├── 03-externaldns-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-externaldns-iam-policy-and-role.tf │ ├── c4-02-externaldns-helm-provider.tf │ ├── c4-03-externaldns-install.tf │ ├── c4-04-externaldns-outputs.tf │ └── terraform.tfvars ├── 04-kube-manifests-k8sService-externaldns │ ├── 01-Nginx-App1-Deployment.yml │ └── 02-Nginx-App1-LoadBalancer-Service.yml ├── 05-k8sService-externaldns-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-kubernetes-app1-deployment.tf │ └── c5-kubernetes-app1-loadbalancer-service.tf └── README.md ├── 33-EKS-Ingress-NameBasedVirtualHost-Routing ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-lbc-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-lbc-datasources.tf │ ├── c4-02-lbc-iam-policy-and-role.tf │ ├── c4-03-lbc-helm-provider.tf │ ├── c4-04-lbc-install.tf │ ├── c4-05-lbc-outputs.tf │ ├── c5-01-kubernetes-provider.tf │ ├── c5-02-ingress-class.tf │ └── terraform.tfvars ├── 03-externaldns-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-externaldns-iam-policy-and-role.tf │ ├── c4-02-externaldns-helm-provider.tf │ ├── c4-03-externaldns-install.tf │ ├── c4-04-externaldns-outputs.tf │ └── terraform.tfvars ├── 04-kube-manifests-ingress-nvhr │ ├── 01-Nginx-App1-Deployment-and-NodePortService.yml │ ├── 02-Nginx-App2-Deployment-and-NodePortService.yml │ ├── 03-Nginx-App3-Deployment-and-NodePortService.yml │ └── 04-ALB-Ingress-HostHeader-Routing.yml ├── 05-ingress-nvhr-terraform-manifests │ ├── c1-versions.tf │ ├── c10-kubernetes-ingress-service.tf │ ├── c11-acm-certificate.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-kubernetes-app1-deployment.tf │ ├── c5-kubernetes-app2-deployment.tf │ ├── c5-kubernetes-app3-deployment.tf │ ├── c7-kubernetes-app1-nodeport-service.tf │ ├── c8-kubernetes-app2-nodeport-service.tf │ ├── c9-kubernetes-app3-nodeport-service.tf │ └── listen-ports │ │ └── listen-ports.json └── README.md ├── 34-EKS-Ingress-SSLDiscovery-Host ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-lbc-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-lbc-datasources.tf │ ├── c4-02-lbc-iam-policy-and-role.tf │ ├── c4-03-lbc-helm-provider.tf │ ├── c4-04-lbc-install.tf │ ├── c4-05-lbc-outputs.tf │ ├── c5-01-kubernetes-provider.tf │ ├── c5-02-ingress-class.tf │ └── terraform.tfvars ├── 03-externaldns-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-externaldns-iam-policy-and-role.tf │ ├── c4-02-externaldns-helm-provider.tf │ ├── c4-03-externaldns-install.tf │ ├── c4-04-externaldns-outputs.tf │ └── terraform.tfvars ├── 04-kube-manifests-SSLDiscoveryHost │ ├── 01-Nginx-App1-Deployment-and-NodePortService.yml │ ├── 02-Nginx-App2-Deployment-and-NodePortService.yml │ ├── 03-Nginx-App3-Deployment-and-NodePortService.yml │ └── 04-ALB-Ingress-CertDiscovery-host.yml ├── 05-ingress-SSLDiscoveryHost-terraform-manifests │ ├── c1-versions.tf │ ├── c10-kubernetes-ingress-service.tf │ ├── c11-acm-certificate.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-kubernetes-app1-deployment.tf │ ├── c5-kubernetes-app2-deployment.tf │ ├── c5-kubernetes-app3-deployment.tf │ ├── c7-kubernetes-app1-nodeport-service.tf │ ├── c8-kubernetes-app2-nodeport-service.tf │ ├── c9-kubernetes-app3-nodeport-service.tf │ └── listen-ports │ │ └── listen-ports.json └── README.md ├── 35-EKS-Ingress-SSLDiscovery-TLS ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-lbc-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-lbc-datasources.tf │ ├── c4-02-lbc-iam-policy-and-role.tf │ ├── c4-03-lbc-helm-provider.tf │ ├── c4-04-lbc-install.tf │ ├── c4-05-lbc-outputs.tf │ ├── c5-01-kubernetes-provider.tf │ ├── c5-02-ingress-class.tf │ └── terraform.tfvars ├── 03-externaldns-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-externaldns-iam-policy-and-role.tf │ ├── c4-02-externaldns-helm-provider.tf │ ├── c4-03-externaldns-install.tf │ ├── c4-04-externaldns-outputs.tf │ └── terraform.tfvars ├── 04-kube-manifests-SSLDiscoveryTLS │ ├── 01-Nginx-App1-Deployment-and-NodePortService.yml │ ├── 02-Nginx-App2-Deployment-and-NodePortService.yml │ ├── 03-Nginx-App3-Deployment-and-NodePortService.yml │ └── 04-ALB-Ingress-CertDiscovery-tls.yml ├── 05-ingress-SSLDiscoveryTLS-terraform-manifests │ ├── c1-versions.tf │ ├── c10-kubernetes-ingress-service.tf │ ├── c11-acm-certificate.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-kubernetes-app1-deployment.tf │ ├── c5-kubernetes-app2-deployment.tf │ ├── c5-kubernetes-app3-deployment.tf │ ├── c7-kubernetes-app1-nodeport-service.tf │ ├── c8-kubernetes-app2-nodeport-service.tf │ ├── c9-kubernetes-app3-nodeport-service.tf │ └── listen-ports │ │ └── listen-ports.json └── README.md ├── 36-EKS-Ingress-Groups ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-lbc-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-lbc-datasources.tf │ ├── c4-02-lbc-iam-policy-and-role.tf │ ├── c4-03-lbc-helm-provider.tf │ ├── c4-04-lbc-install.tf │ ├── c4-05-lbc-outputs.tf │ ├── c5-01-kubernetes-provider.tf │ ├── c5-02-ingress-class.tf │ └── terraform.tfvars ├── 03-externaldns-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-externaldns-iam-policy-and-role.tf │ ├── c4-02-externaldns-helm-provider.tf │ ├── c4-03-externaldns-install.tf │ ├── c4-04-externaldns-outputs.tf │ └── terraform.tfvars ├── 04-kube-manifests-ingress-groups │ ├── app1 │ │ ├── 01-Nginx-App1-Deployment-and-NodePortService.yml │ │ └── 02-App1-Ingress.yml │ ├── app2 │ │ ├── 01-Nginx-App2-Deployment-and-NodePortService.yml │ │ └── 02-App2-Ingress.yml │ └── app3 │ │ ├── 01-Nginx-App3-Deployment-and-NodePortService.yml │ │ └── 02-App3-Ingress-default-backend.yml ├── 05-ingress-groups-terraform-manifests │ ├── c1-versions.tf │ ├── c10-kubernetes-app1-ingress-service.tf │ ├── c11-kubernetes-app2-ingress-service.tf │ ├── c12-kubernetes-app3-ingress-service.tf │ ├── c13-acm-certificate.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-kubernetes-app1-deployment.tf │ ├── c5-kubernetes-app2-deployment.tf │ ├── c5-kubernetes-app3-deployment.tf │ ├── c7-kubernetes-app1-nodeport-service.tf │ ├── c8-kubernetes-app2-nodeport-service.tf │ ├── c9-kubernetes-app3-nodeport-service.tf │ └── listen-ports │ │ └── listen-ports.json └── README.md ├── 37-EKS-Ingress-TargetType-IP ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-lbc-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-lbc-datasources.tf │ ├── c4-02-lbc-iam-policy-and-role.tf │ ├── c4-03-lbc-helm-provider.tf │ ├── c4-04-lbc-install.tf │ ├── c4-05-lbc-outputs.tf │ ├── c5-01-kubernetes-provider.tf │ ├── c5-02-ingress-class.tf │ └── terraform.tfvars ├── 03-externaldns-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-externaldns-iam-policy-and-role.tf │ ├── c4-02-externaldns-helm-provider.tf │ ├── c4-03-externaldns-install.tf │ ├── c4-04-externaldns-outputs.tf │ └── terraform.tfvars ├── 04-kube-manifests-ingress-TargetType-IP │ ├── 01-Nginx-App1-Deployment-and-ClusterIPService.yml │ ├── 02-Nginx-App2-Deployment-and-ClusterIPService.yml │ ├── 03-Nginx-App3-Deployment-and-ClusterIPService.yml │ └── 04-ALB-Ingress-target-type-ip.yml ├── 05-ingress-TargetType-IP-terraform-manifests │ ├── c1-versions.tf │ ├── c10-kubernetes-ingress-service.tf │ ├── c11-acm-certificate.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-kubernetes-app1-deployment.tf │ ├── c5-kubernetes-app2-deployment.tf │ ├── c5-kubernetes-app3-deployment.tf │ ├── c7-kubernetes-app1-nodeport-service.tf │ ├── c8-kubernetes-app2-nodeport-service.tf │ ├── c9-kubernetes-app3-nodeport-service.tf │ └── listen-ports │ │ └── listen-ports.json └── README.md ├── 38-EKS-Ingress-InternalLB ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-lbc-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-lbc-datasources.tf │ ├── c4-02-lbc-iam-policy-and-role.tf │ ├── c4-03-lbc-helm-provider.tf │ ├── c4-04-lbc-install.tf │ ├── c4-05-lbc-outputs.tf │ ├── c5-01-kubernetes-provider.tf │ ├── c5-02-ingress-class.tf │ └── terraform.tfvars ├── 03-externaldns-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-externaldns-iam-policy-and-role.tf │ ├── c4-02-externaldns-helm-provider.tf │ ├── c4-03-externaldns-install.tf │ ├── c4-04-externaldns-outputs.tf │ └── terraform.tfvars ├── 04-kube-manifests-ingress-InternalLB │ ├── 01-Nginx-App1-Deployment-and-NodePortService.yml │ ├── 02-Nginx-App2-Deployment-and-NodePortService.yml │ ├── 03-Nginx-App3-Deployment-and-NodePortService.yml │ └── 04-ALB-Ingress-Internal-LB.yml ├── 05-kube-manifests-curl │ └── 01-curl-pod.yml ├── 06-ingress-InternalLB-terraform-manifests │ ├── c1-versions.tf │ ├── c10-kubernetes-ingress-service.tf │ ├── c11-kubernetes-curl-pod-for-testing-InternalLB.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-kubernetes-app1-deployment.tf │ ├── c5-kubernetes-app2-deployment.tf │ ├── c5-kubernetes-app3-deployment.tf │ ├── c7-kubernetes-app1-nodeport-service.tf │ ├── c8-kubernetes-app2-nodeport-service.tf │ └── c9-kubernetes-app3-nodeport-service.tf └── README.md ├── 39-EKS-Ingress-Cross-Namespaces ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-lbc-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-lbc-datasources.tf │ ├── c4-02-lbc-iam-policy-and-role.tf │ ├── c4-03-lbc-helm-provider.tf │ ├── c4-04-lbc-install.tf │ ├── c4-05-lbc-outputs.tf │ ├── c5-01-kubernetes-provider.tf │ ├── c5-02-ingress-class.tf │ └── terraform.tfvars ├── 03-externaldns-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-externaldns-iam-policy-and-role.tf │ ├── c4-02-externaldns-helm-provider.tf │ ├── c4-03-externaldns-install.tf │ ├── c4-04-externaldns-outputs.tf │ └── terraform.tfvars ├── 04-kube-manifests-ingress-cross-ns │ ├── app1 │ │ ├── 00-namespace.yml │ │ ├── 01-Nginx-App1-Deployment-and-NodePortService.yml │ │ └── 02-App1-Ingress.yml │ ├── app2 │ │ ├── 00-namespace.yml │ │ ├── 01-Nginx-App2-Deployment-and-NodePortService.yml │ │ └── 02-App2-Ingress.yml │ └── app3 │ │ ├── 00-namespace.yml │ │ ├── 01-Nginx-App3-Deployment-and-NodePortService.yml │ │ └── 03-App3-Ingress-default-backend.yml ├── 05-ingress-cross-ns-terraform-manifests │ ├── c1-versions.tf │ ├── c10-kubernetes-app1-ingress-service.tf │ ├── c11-kubernetes-app2-ingress-service.tf │ ├── c12-kubernetes-app3-ingress-service.tf │ ├── c13-kubernetes-namespaces.tf │ ├── c14-acm-certificate.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-kubernetes-app1-deployment.tf │ ├── c5-kubernetes-app2-deployment.tf │ ├── c5-kubernetes-app3-deployment.tf │ ├── c7-kubernetes-app1-nodeport-service.tf │ ├── c8-kubernetes-app2-nodeport-service.tf │ ├── c9-kubernetes-app3-nodeport-service.tf │ └── listen-ports │ │ └── listen-ports.json └── README.md ├── 40-EKS-NLB-Basics ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-lbc-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-lbc-datasources.tf │ ├── c4-02-lbc-iam-policy-and-role.tf │ ├── c4-03-lbc-helm-provider.tf │ ├── c4-04-lbc-install.tf │ ├── c4-05-lbc-outputs.tf │ ├── c5-01-kubernetes-provider.tf │ ├── c5-02-ingress-class.tf │ └── terraform.tfvars ├── 03-externaldns-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-externaldns-iam-policy-and-role.tf │ ├── c4-02-externaldns-helm-provider.tf │ ├── c4-03-externaldns-install.tf │ ├── c4-04-externaldns-outputs.tf │ └── terraform.tfvars ├── 04-kube-manifests-nlb-basics │ ├── 01-Nginx-App3-Deployment.yml │ └── 02-LBC-NLB-LoadBalancer-Service.yml ├── 05-nlb-basics-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-kubernetes-app3-deployment.tf │ └── c5-kubernetes-app3-nlb-service.tf └── README.md ├── 41-EKS-NLB-TLS-externaldns ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-lbc-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-lbc-datasources.tf │ ├── c4-02-lbc-iam-policy-and-role.tf │ ├── c4-03-lbc-helm-provider.tf │ ├── c4-04-lbc-install.tf │ ├── c4-05-lbc-outputs.tf │ ├── c5-01-kubernetes-provider.tf │ ├── c5-02-ingress-class.tf │ └── terraform.tfvars ├── 03-externaldns-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-externaldns-iam-policy-and-role.tf │ ├── c4-02-externaldns-helm-provider.tf │ ├── c4-03-externaldns-install.tf │ ├── c4-04-externaldns-outputs.tf │ └── terraform.tfvars ├── 04-kube-manifests-nlb-tls-externaldns │ ├── 01-Nginx-App3-Deployment.yml │ └── 02-LBC-NLB-LoadBalancer-Service.yml ├── 05-nlb-tls-extdns-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-kubernetes-app3-deployment.tf │ ├── c5-kubernetes-app3-nlb-service.tf │ └── c6-acm-certificate.tf └── README.md ├── 42-EKS-NLB-InternalLB ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-lbc-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-lbc-datasources.tf │ ├── c4-02-lbc-iam-policy-and-role.tf │ ├── c4-03-lbc-helm-provider.tf │ ├── c4-04-lbc-install.tf │ ├── c4-05-lbc-outputs.tf │ ├── c5-01-kubernetes-provider.tf │ ├── c5-02-ingress-class.tf │ └── terraform.tfvars ├── 03-externaldns-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-externaldns-iam-policy-and-role.tf │ ├── c4-02-externaldns-helm-provider.tf │ ├── c4-03-externaldns-install.tf │ ├── c4-04-externaldns-outputs.tf │ └── terraform.tfvars ├── 04-kube-manifests-nlb-internal │ ├── 01-Nginx-App3-Deployment.yml │ └── 02-LBC-NLB-LoadBalancer-Service.yml ├── 05-kube-manifests-curl │ └── 01-curl-pod.yml ├── 06-nlb-internal-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-kubernetes-app3-deployment.tf │ ├── c5-kubernetes-app3-nlb-service.tf │ └── c6-kubernetes-curl-pod-for-testing-InternalLB.tf └── README.md ├── 43-EKS-Fargate-Profiles ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-lbc-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-lbc-datasources.tf │ ├── c4-02-lbc-iam-policy-and-role.tf │ ├── c4-03-lbc-helm-provider.tf │ ├── c4-04-lbc-install.tf │ ├── c4-05-lbc-outputs.tf │ ├── c5-01-kubernetes-provider.tf │ ├── c5-02-ingress-class.tf │ └── terraform.tfvars ├── 03-externaldns-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-externaldns-iam-policy-and-role.tf │ ├── c4-02-externaldns-helm-provider.tf │ ├── c4-03-externaldns-install.tf │ ├── c4-04-externaldns-outputs.tf │ └── terraform.tfvars ├── 04-fargate-profiles-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-kubernetes-provider.tf │ ├── c4-02-kubernetes-namespace.tf │ ├── c5-01-fargate-profile-iam-role-and-policy.tf │ ├── c5-02-fargate-profile.tf │ ├── c5-03-fargate-profile-outputs.tf │ └── terraform.tfvars ├── README.md └── sample-aws-auth-configmap.yaml ├── 44-EKS-Run-k8s-workloads-on-Fargate ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-lbc-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-lbc-datasources.tf │ ├── c4-02-lbc-iam-policy-and-role.tf │ ├── c4-03-lbc-helm-provider.tf │ ├── c4-04-lbc-install.tf │ ├── c4-05-lbc-outputs.tf │ ├── c5-01-kubernetes-provider.tf │ ├── c5-02-ingress-class.tf │ └── terraform.tfvars ├── 03-externaldns-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-externaldns-iam-policy-and-role.tf │ ├── c4-02-externaldns-helm-provider.tf │ ├── c4-03-externaldns-install.tf │ ├── c4-04-externaldns-outputs.tf │ └── terraform.tfvars ├── 04-fargate-profiles-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-kubernetes-provider.tf │ ├── c4-02-kubernetes-namespace.tf │ ├── c5-01-fargate-profile-iam-role-and-policy.tf │ ├── c5-02-fargate-profile.tf │ ├── c5-03-fargate-profile-outputs.tf │ └── terraform.tfvars ├── 05-kube-manifests-Run-On-Fargate │ ├── 01-Nginx-App1-Deployment-and-ClusterIPService.yml │ ├── 02-Nginx-App2-Deployment-and-ClusterIPService.yml │ ├── 03-Nginx-App3-Deployment-and-ClusterIPService.yml │ └── 04-ALB-Ingress-target-type-ip.yml ├── 06-run-on-fargate-terraform-manifests │ ├── c1-versions.tf │ ├── c10-kubernetes-ingress-service.tf │ ├── c11-acm-certificate.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-kubernetes-app1-deployment.tf │ ├── c5-kubernetes-app2-deployment.tf │ ├── c6-kubernetes-app3-deployment.tf │ ├── c7-kubernetes-app1-nodeport-service.tf │ ├── c8-kubernetes-app2-nodeport-service.tf │ ├── c9-kubernetes-app3-nodeport-service.tf │ └── listen-ports │ │ └── listen-ports.json └── README.md ├── 45-Fargate-Only-EKS-Cluster ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-eks-variables.tf │ ├── c4-02-eks-outputs.tf │ ├── c4-03-iamrole-for-eks-cluster.tf │ ├── c4-04-eks-cluster.tf │ ├── c4-05-fargate-profile-iam-role-and-policy.tf │ ├── c4-06-fargate-profile-kube-system-namespace.tf │ ├── c4-08-fargate-profile-default-namespace.tf │ ├── c4-08-fargate-profile-fp-ns-app1-namespace.tf │ ├── c5-01-iam-oidc-connect-provider-variables.tf │ ├── c5-02-iam-oidc-connect-provider.tf │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-lbc-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-lbc-datasources.tf │ ├── c4-02-lbc-iam-policy-and-role.tf │ ├── c4-03-lbc-helm-provider.tf │ ├── c4-04-lbc-install.tf │ ├── c4-05-lbc-outputs.tf │ ├── c5-01-kubernetes-provider.tf │ ├── c5-02-ingress-class.tf │ └── terraform.tfvars ├── 03-externaldns-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-externaldns-iam-policy-and-role.tf │ ├── c4-02-externaldns-helm-provider.tf │ ├── c4-03-externaldns-install.tf │ ├── c4-04-externaldns-outputs.tf │ └── terraform.tfvars ├── 04-run-on-fargate-terraform-manifests │ ├── c1-versions.tf │ ├── c10-kubernetes-ingress-service.tf │ ├── c11-acm-certificate.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-kubernetes-app1-deployment.tf │ ├── c5-kubernetes-app2-deployment.tf │ ├── c6-kubernetes-app3-deployment.tf │ ├── c7-kubernetes-app1-nodeport-service.tf │ ├── c8-kubernetes-app2-nodeport-service.tf │ ├── c9-kubernetes-app3-nodeport-service.tf │ └── listen-ports │ │ └── listen-ports.json └── README.md ├── 46-EKS-EFS-CSI-Install ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-efs-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-efs-csi-datasources.tf │ ├── c4-02-efs-csi-iam-policy-and-role.tf │ ├── c4-03-efs-helm-provider.tf │ ├── c4-04-efs-csi-install.tf │ ├── c4-05-efs-outputs.tf │ └── terraform.tfvars └── README.md ├── 47-EKS-EFS-Static-Provisioning ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c5-09-fargate-profile-iam-role-and-policy.tf │ ├── c5-10-fargate-profile.tf │ ├── c5-11-fargate-profile-outputs.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-efs-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-efs-csi-datasources.tf │ ├── c4-02-efs-csi-iam-policy-and-role.tf │ ├── c4-03-efs-helm-provider.tf │ ├── c4-04-efs-csi-install.tf │ ├── c4-05-efs-outputs.tf │ └── terraform.tfvars ├── 03-efs-static-prov-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-01-efs-resource.tf │ ├── c4-02-storage-class.tf │ ├── c4-03-persistent-volume-claim.tf │ ├── c4-04-persistent-volume.tf │ ├── c5-write-to-efs-pod.tf │ ├── c6-01-myapp1-deployment.tf │ ├── c6-02-myapp1-loadbalancer-service.tf │ └── c6-03-myapp1-network-loadbalancer-service.tf └── README.md ├── 48-EKS-EFS-Dynamic-Provisioning ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c5-09-fargate-profile-iam-role-and-policy.tf │ ├── c5-10-fargate-profile.tf │ ├── c5-11-fargate-profile-outputs.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-efs-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-efs-csi-datasources.tf │ ├── c4-02-efs-csi-iam-policy-and-role.tf │ ├── c4-03-efs-helm-provider.tf │ ├── c4-04-efs-csi-install.tf │ ├── c4-05-efs-outputs.tf │ └── terraform.tfvars ├── 03-efs-dynamic-prov-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-01-efs-resource.tf │ ├── c4-02-storage-class.tf │ ├── c4-03-persistent-volume-claim.tf │ ├── c5-write-to-efs-pod.tf │ ├── c6-01-myapp1-deployment.tf │ ├── c6-02-myapp1-loadbalancer-service.tf │ └── c6-03-myapp1-network-loadbalancer-service.tf └── README.md ├── 49-EKS-EFS-Fargate ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-efs-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-efs-csi-datasources.tf │ ├── c4-02-efs-csi-iam-policy-and-role.tf │ ├── c4-03-efs-helm-provider.tf │ ├── c4-04-efs-csi-install.tf │ ├── c4-06-efs-outputs.tf │ └── terraform.tfvars ├── 03-fargate-profiles-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-kubernetes-provider.tf │ ├── c4-02-kubernetes-namespace.tf │ ├── c5-01-fargate-profile-iam-role-and-policy.tf │ ├── c5-02-fargate-profile.tf │ ├── c5-03-fargate-profile-outputs.tf │ └── terraform.tfvars ├── 04-efs-static-prov-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-01-efs-resource.tf │ ├── c4-02-storage-class.tf │ ├── c4-03-persistent-volume-claim.tf │ ├── c4-04-persistent-volume.tf │ ├── c5-write-to-efs-pod.tf │ ├── c6-01-myapp1-deployment.tf │ ├── c6-02-myapp1-loadbalancer-service.tf │ └── c6-03-myapp1-network-loadbalancer-service.tf ├── 05-efs-dynamic-prov-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-01-efs-resource.tf │ ├── c4-02-storage-class.tf │ ├── c4-03-persistent-volume-claim.tf │ ├── c5-write-to-efs-pod.tf │ ├── c6-01-myapp1-deployment.tf │ ├── c6-02-myapp1-loadbalancer-service.tf │ └── c6-03-myapp1-network-loadbalancer-service.tf └── README.md ├── 50-EKS-Cluster-Autoscaler ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-cluster-autoscaler-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-cluster-autoscaler-iam-policy-and-role.tf │ ├── c4-02-cluster-autoscaler-helm-provider.tf │ ├── c4-03-cluster-autoscaler-install.tf │ ├── c4-04-cluster-autoscaler-outputs.tf │ └── terraform.tfvars └── README.md ├── 51-EKS-Cluster-Autoscaler-Testing ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-cluster-autoscaler-install-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-cluster-autoscaler-iam-policy-and-role.tf │ ├── c4-02-cluster-autoscaler-helm-provider.tf │ ├── c4-03-cluster-autoscaler-install.tf │ ├── c4-04-cluster-autoscaler-outputs.tf │ └── terraform.tfvars ├── 03-cluster-autoscaler-sample-app │ └── cluster-autoscaler-sample-app.yaml └── README.md ├── 52-EKS-Horizontal-Pod-Autoscaler ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-k8s-metrics-server-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-helm-provider.tf │ ├── c4-02-metrics-server-install.tf │ ├── c4-03-metrics-server-outputs.tf │ └── terraform.tfvars ├── 03-hpa-demo-yaml │ ├── 01-deployment.yaml │ ├── 02-service.yaml │ └── 03-hpa.yaml ├── 04-hpa-demo-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-providers.tf │ ├── c4-kubernetes-app3-deployment.tf │ ├── c5-kubernetes-app3-clusterip-service.tf │ └── c6-hpa-resource.tf └── README.md ├── 53-EKS-Vertical-Pod-Autoscaler-Install ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-k8s-metrics-server-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-helm-provider.tf │ ├── c4-02-metrics-server-install.tf │ ├── c4-03-metrics-server-outputs.tf │ └── terraform.tfvars ├── 03-vpa-install-terraform-manifests │ ├── .terraform.lock.hcl │ ├── c1-versions.tf │ └── c2-vpa-install.tf ├── 04-vpa-demo-yaml │ ├── 01-vpa-demo-app.yaml │ └── 02-vpa-resource.yaml ├── 05-vpa-demo-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-terraform-providers.tf │ ├── c4-02-vpa-sample-app-deployment.tf │ ├── c4-03-vpa-sample-app-service.tf │ ├── c4-04-vpa-resource.tf │ └── terraform.tfvars └── README.md ├── 54-EKS-Monitoring-Logging-kubectl ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-cwagent-container-insights │ ├── 01-cw-agent-configmap.yaml │ └── 02-cw-fluentbit-configmap.yaml ├── 03-sample-app-test-container-insights │ ├── 01-Deployment.yaml │ ├── 02-CLB-LoadBalancer-Service.yaml │ └── 03-NLB-LoadBalancer-Service.yaml └── README.md ├── 55-EKS-Monitoring-Logging-Terraform ├── 01-ekscluster-terraform-manifests │ ├── c1-versions.tf │ ├── c10-01-iam-role-eksreadonly.tf │ ├── c10-02-iam-group-and-user-eksreadonly.tf │ ├── c10-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-01-iam-role-eksdeveloper.tf │ ├── c11-02-iam-group-and-user-eksdeveloper.tf │ ├── c11-03-k8s-clusterrole-clusterrolebinding.tf │ ├── c11-04-namespaces.tf │ ├── c11-05-k8s-role-rolebinding.tf │ ├── c2-01-generic-variables.tf │ ├── c2-02-local-values.tf │ ├── c3-01-vpc-variables.tf │ ├── c3-02-vpc-module.tf │ ├── c3-03-vpc-outputs.tf │ ├── c4-01-ec2bastion-variables.tf │ ├── c4-02-ec2bastion-outputs.tf │ ├── c4-03-ec2bastion-securitygroups.tf │ ├── c4-04-ami-datasource.tf │ ├── c4-05-ec2bastion-instance.tf │ ├── c4-06-ec2bastion-elasticip.tf │ ├── c4-07-ec2bastion-provisioners.tf │ ├── c5-01-eks-variables.tf │ ├── c5-02-eks-outputs.tf │ ├── c5-03-iamrole-for-eks-cluster.tf │ ├── c5-04-iamrole-for-eks-nodegroup.tf │ ├── c5-05-securitygroups-eks.tf │ ├── c5-06-eks-cluster.tf │ ├── c5-07-eks-node-group-public.tf │ ├── c5-08-eks-node-group-private.tf │ ├── c6-01-iam-oidc-connect-provider-variables.tf │ ├── c6-02-iam-oidc-connect-provider.tf │ ├── c7-01-kubernetes-provider.tf │ ├── c7-02-kubernetes-configmap.tf │ ├── c8-01-iam-admin-user.tf │ ├── c8-02-iam-basic-user.tf │ ├── c9-01-iam-role-eksadmins.tf │ ├── c9-02-iam-group-and-user-eksadmins.tf │ ├── ec2bastion.auto.tfvars │ ├── eks.auto.tfvars │ ├── local-exec-output-files │ │ └── creation-time-vpc-id.txt │ ├── private-key │ │ └── eks-terraform-key.pem │ ├── terraform.tfvars │ └── vpc.auto.tfvars ├── 02-cloudwatchagent-fluentbit-terraform-manifests │ ├── c1-versions.tf │ ├── c2-remote-state-datasource.tf │ ├── c3-01-generic-variables.tf │ ├── c3-02-local-values.tf │ ├── c4-01-terraform-providers.tf │ ├── c4-02-cwagent-namespace.tf │ ├── c4-03-cwagent-service-accounts-cr-crb.tf │ ├── c4-04-cwagent-configmap.tf │ ├── c4-05-cwagent-daemonset.tf │ ├── c5-01-fluentbit-configmap.tf │ ├── c5-02-fluentbit-daemonset.tf │ └── terraform.tfvars ├── 03-sample-app-test-container-insights │ ├── 01-Deployment.yaml │ ├── 02-CLB-LoadBalancer-Service.yaml │ └── 03-NLB-LoadBalancer-Service.yaml └── README.md ├── README.md ├── course-presentation └── Terraform-on-AWS-EKS-v5.pptx └── git-deploy.sh /03-Terraform-Settings-Providers-Resources/terraform-manifests/c2-ec2instance.tf: -------------------------------------------------------------------------------- 1 | # Resource: EC2 Instance 2 | resource "aws_instance" "myec2vm" { 3 | ami = "ami-0742b4e673072066f" 4 | instance_type = "t3.micro" 5 | user_data = file("${path.module}/app1-install.sh") 6 | tags = { 7 | "Name" = "EC2 Demo" 8 | } 9 | } -------------------------------------------------------------------------------- /06-AWS-VPC/06-02-AWS-VPC-using-Terraform/terraform-manifests/v1-vpc-module/c2-generic-variables.tf: -------------------------------------------------------------------------------- 1 | # Input Variables 2 | 3 | # AWS Region 4 | variable "aws_region" { 5 | description = "Region in which AWS Resources to be created" 6 | type = string 7 | default = "us-east-1" 8 | } 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /06-AWS-VPC/06-02-AWS-VPC-using-Terraform/terraform-manifests/v2-vpc-module-standardized/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "stag" 4 | business_divsion = "HR" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /07-AWS-EC2-BastionHost/terraform-manifests/c1-versions.tf: -------------------------------------------------------------------------------- 1 | # Terraform Settings Block 2 | terraform { 3 | required_version = ">= 1.0.0" 4 | required_providers { 5 | aws = { 6 | source = "hashicorp/aws" 7 | version = "~> 3.63" 8 | } 9 | } 10 | } 11 | 12 | # Terraform Provider Block 13 | provider "aws" { 14 | region = "us-east-1" 15 | } -------------------------------------------------------------------------------- /07-AWS-EC2-BastionHost/terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | -------------------------------------------------------------------------------- /07-AWS-EC2-BastionHost/terraform-manifests/c5-01-eks-variables.tf: -------------------------------------------------------------------------------- 1 | # EKS Cluster Input Variables 2 | variable "cluster_name" { 3 | description = "Name of the EKS cluster. Also used as a prefix in names of related resources." 4 | type = string 5 | default = "eksdemo" 6 | } 7 | -------------------------------------------------------------------------------- /07-AWS-EC2-BastionHost/terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /07-AWS-EC2-BastionHost/terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | -------------------------------------------------------------------------------- /07-AWS-EC2-BastionHost/terraform-manifests/local-exec-output-files/creation-time-vpc-id.txt: -------------------------------------------------------------------------------- 1 | VPC created on Thu Dec 30 10:15:44 IST 2021 and VPC ID: vpc-0890747e601f1c1be 2 | -------------------------------------------------------------------------------- /07-AWS-EC2-BastionHost/terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "stag" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /08-AWS-EKS-Cluster-Basics/01-ekscluster-terraform-manifests/c1-versions.tf: -------------------------------------------------------------------------------- 1 | # Terraform Settings Block 2 | terraform { 3 | required_version = ">= 1.0.0" 4 | required_providers { 5 | aws = { 6 | source = "hashicorp/aws" 7 | version = "~> 3.63" 8 | } 9 | } 10 | } 11 | 12 | # Terraform Provider Block 13 | provider "aws" { 14 | region = var.aws_region 15 | } -------------------------------------------------------------------------------- /08-AWS-EKS-Cluster-Basics/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /08-AWS-EKS-Cluster-Basics/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /08-AWS-EKS-Cluster-Basics/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /08-AWS-EKS-Cluster-Basics/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | 8 | -------------------------------------------------------------------------------- /08-AWS-EKS-Cluster-Basics/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "stag" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /10-Kubernetes-Deployment-and-Service/kube-manifests/03-NodePort-Service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: myapp1-nodeport-service 5 | spec: 6 | type: NodePort # ClusterIp, # NodePort, #LoadBalancer 7 | selector: 8 | app: myapp1 9 | ports: 10 | - name: http 11 | port: 80 # Service Port 12 | targetPort: 80 # Container Port 13 | nodePort: 31280 # Node Port -------------------------------------------------------------------------------- /11-Kubernetes-Resources-via-Terraform/02-k8sresources-terraform-manifests/c1-versions.tf: -------------------------------------------------------------------------------- 1 | # Terraform Settings Block 2 | terraform { 3 | required_version = ">= 1.0.0" 4 | required_providers { 5 | aws = { 6 | source = "hashicorp/aws" 7 | version = "~> 3.70" 8 | } 9 | kubernetes = { 10 | source = "hashicorp/kubernetes" 11 | version = "~> 2.7" 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /11-Kubernetes-Resources-via-Terraform/02-k8sresources-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource 2 | data "terraform_remote_state" "eks" { 3 | backend = "local" 4 | config = { 5 | path = "../../08-AWS-EKS-Cluster-Basics/01-ekscluster-terraform-manifests/terraform.tfstate" 6 | } 7 | } 8 | 9 | -------------------------------------------------------------------------------- /12-Terraform-Remote-State-Storage/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /12-Terraform-Remote-State-Storage/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /12-Terraform-Remote-State-Storage/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /12-Terraform-Remote-State-Storage/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | 8 | -------------------------------------------------------------------------------- /12-Terraform-Remote-State-Storage/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /13-EKS-IRSA/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /13-EKS-IRSA/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /13-EKS-IRSA/01-ekscluster-terraform-manifests/c6-01-iam-oidc-connect-provider-variables.tf: -------------------------------------------------------------------------------- 1 | # Input Variables - AWS IAM OIDC Connect Provider 2 | 3 | 4 | # EKS OIDC ROOT CA Thumbprint - valid until 2037 5 | variable "eks_oidc_root_ca_thumbprint" { 6 | type = string 7 | description = "Thumbprint of Root CA for EKS OIDC, Valid until 2037" 8 | default = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 9 | } -------------------------------------------------------------------------------- /13-EKS-IRSA/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /13-EKS-IRSA/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /13-EKS-IRSA/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /13-EKS-IRSA/02-eks-irsa-demo-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /13-EKS-IRSA/02-eks-irsa-demo-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /14-EBS-CSI-Install-Kubernetes-Storage/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /14-EBS-CSI-Install-Kubernetes-Storage/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /14-EBS-CSI-Install-Kubernetes-Storage/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /14-EBS-CSI-Install-Kubernetes-Storage/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /14-EBS-CSI-Install-Kubernetes-Storage/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /14-EBS-CSI-Install-Kubernetes-Storage/02-ebs-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /14-EBS-CSI-Install-Kubernetes-Storage/02-ebs-terraform-manifests/c4-05-ebs-csi-outputs.tf: -------------------------------------------------------------------------------- 1 | # EBS CSI Helm Release Outputs 2 | output "ebs_csi_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.ebs_csi_driver.metadata 5 | } -------------------------------------------------------------------------------- /14-EBS-CSI-Install-Kubernetes-Storage/02-ebs-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /15-EBS-Kubernetes-SampleApp-YAML/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /15-EBS-Kubernetes-SampleApp-YAML/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /15-EBS-Kubernetes-SampleApp-YAML/01-ekscluster-terraform-manifests/c6-01-iam-oidc-connect-provider-variables.tf: -------------------------------------------------------------------------------- 1 | # Input Variables - AWS IAM OIDC Connect Provider 2 | 3 | 4 | # EKS OIDC ROOT CA Thumbprint - valid until 2037 5 | variable "eks_oidc_root_ca_thumbprint" { 6 | type = string 7 | description = "Thumbprint of Root CA for EKS OIDC, Valid until 2037" 8 | default = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 9 | } -------------------------------------------------------------------------------- /15-EBS-Kubernetes-SampleApp-YAML/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /15-EBS-Kubernetes-SampleApp-YAML/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /15-EBS-Kubernetes-SampleApp-YAML/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /15-EBS-Kubernetes-SampleApp-YAML/02-ebs-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /15-EBS-Kubernetes-SampleApp-YAML/02-ebs-terraform-manifests/c4-05-ebs-csi-outputs.tf: -------------------------------------------------------------------------------- 1 | # EBS CSI Helm Release Outputs 2 | output "ebs_csi_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.ebs_csi_driver.metadata 5 | } -------------------------------------------------------------------------------- /15-EBS-Kubernetes-SampleApp-YAML/02-ebs-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /15-EBS-Kubernetes-SampleApp-YAML/03-kube-manifests-UMS-WebApp/05-mysql-clusterip-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: mysql 5 | spec: 6 | selector: 7 | app: mysql 8 | ports: 9 | - port: 3306 10 | clusterIP: None # This means we are going to use Pod IP -------------------------------------------------------------------------------- /15-EBS-Kubernetes-SampleApp-YAML/03-kube-manifests-UMS-WebApp/07-UserMgmtWebApp-Classic-LoadBalancer-Service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: usermgmt-webapp-clb-service 5 | labels: 6 | app: usermgmt-webapp 7 | spec: 8 | type: LoadBalancer 9 | selector: 10 | app: usermgmt-webapp 11 | ports: 12 | - port: 80 # Service Port 13 | targetPort: 8080 # Container Port -------------------------------------------------------------------------------- /16-EBS-Kubernetes-SampleApp-Terraform/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /16-EBS-Kubernetes-SampleApp-Terraform/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /16-EBS-Kubernetes-SampleApp-Terraform/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /16-EBS-Kubernetes-SampleApp-Terraform/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /16-EBS-Kubernetes-SampleApp-Terraform/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /16-EBS-Kubernetes-SampleApp-Terraform/02-ebs-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /16-EBS-Kubernetes-SampleApp-Terraform/02-ebs-terraform-manifests/c4-05-ebs-csi-outputs.tf: -------------------------------------------------------------------------------- 1 | # EBS CSI Helm Release Outputs 2 | output "ebs_csi_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.ebs_csi_driver.metadata 5 | } -------------------------------------------------------------------------------- /16-EBS-Kubernetes-SampleApp-Terraform/02-ebs-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /16-EBS-Kubernetes-SampleApp-Terraform/03-terraform-manifests-UMS-WebApp/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = "us-east-1" 8 | } 9 | } -------------------------------------------------------------------------------- /16-EBS-Kubernetes-SampleApp-Terraform/03-terraform-manifests-UMS-WebApp/c4-01-storage-class.tf: -------------------------------------------------------------------------------- 1 | # Resource: Kubernetes Storage Class 2 | resource "kubernetes_storage_class_v1" "ebs_sc" { 3 | metadata { 4 | name = "ebs-sc" 5 | } 6 | storage_provisioner = "ebs.csi.aws.com" 7 | volume_binding_mode = "WaitForFirstConsumer" 8 | } -------------------------------------------------------------------------------- /16-EBS-Kubernetes-SampleApp-Terraform/03-terraform-manifests-UMS-WebApp/c4-03-UserMgmtWebApp-ConfigMap.tf: -------------------------------------------------------------------------------- 1 | # Resource: Config Map 2 | resource "kubernetes_config_map_v1" "config_map" { 3 | metadata { 4 | name = "usermanagement-dbcreation-script" 5 | } 6 | data = { 7 | "webappdb.sql" = "${file("${path.module}/webappdb.sql")}" 8 | } 9 | } -------------------------------------------------------------------------------- /16-EBS-Kubernetes-SampleApp-Terraform/03-terraform-manifests-UMS-WebApp/webappdb.sql: -------------------------------------------------------------------------------- 1 | DROP DATABASE IF EXISTS webappdb; 2 | CREATE DATABASE webappdb; -------------------------------------------------------------------------------- /17-EBS-Resizing-on-EKS/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /17-EBS-Resizing-on-EKS/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /17-EBS-Resizing-on-EKS/01-ekscluster-terraform-manifests/c6-01-iam-oidc-connect-provider-variables.tf: -------------------------------------------------------------------------------- 1 | # Input Variables - AWS IAM OIDC Connect Provider 2 | 3 | 4 | # EKS OIDC ROOT CA Thumbprint - valid until 2037 5 | variable "eks_oidc_root_ca_thumbprint" { 6 | type = string 7 | description = "Thumbprint of Root CA for EKS OIDC, Valid until 2037" 8 | default = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 9 | } -------------------------------------------------------------------------------- /17-EBS-Resizing-on-EKS/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /17-EBS-Resizing-on-EKS/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /17-EBS-Resizing-on-EKS/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /17-EBS-Resizing-on-EKS/02-ebs-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /17-EBS-Resizing-on-EKS/02-ebs-terraform-manifests/c4-05-ebs-csi-outputs.tf: -------------------------------------------------------------------------------- 1 | # EBS CSI Helm Release Outputs 2 | output "ebs_csi_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.ebs_csi_driver.metadata 5 | } -------------------------------------------------------------------------------- /17-EBS-Resizing-on-EKS/02-ebs-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /17-EBS-Resizing-on-EKS/03-terraform-manifests-UMS-WebApp/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = "us-east-1" 8 | } 9 | } -------------------------------------------------------------------------------- /17-EBS-Resizing-on-EKS/03-terraform-manifests-UMS-WebApp/c4-03-UserMgmtWebApp-ConfigMap.tf: -------------------------------------------------------------------------------- 1 | # Resource: Config Map 2 | resource "kubernetes_config_map_v1" "config_map" { 3 | metadata { 4 | name = "usermanagement-dbcreation-script" 5 | } 6 | data = { 7 | "webappdb.sql" = "${file("${path.module}/webappdb.sql")}" 8 | } 9 | } -------------------------------------------------------------------------------- /17-EBS-Resizing-on-EKS/03-terraform-manifests-UMS-WebApp/webappdb.sql: -------------------------------------------------------------------------------- 1 | DROP DATABASE IF EXISTS webappdb; 2 | CREATE DATABASE webappdb; -------------------------------------------------------------------------------- /18-EBS-CSI-Install-using-EKS-AddOn/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /18-EBS-CSI-Install-using-EKS-AddOn/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /18-EBS-CSI-Install-using-EKS-AddOn/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /18-EBS-CSI-Install-using-EKS-AddOn/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /18-EBS-CSI-Install-using-EKS-AddOn/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /18-EBS-CSI-Install-using-EKS-AddOn/02-ebs-addon-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /18-EBS-CSI-Install-using-EKS-AddOn/02-ebs-addon-terraform-manifests/c4-04-ebs-csi-outputs.tf: -------------------------------------------------------------------------------- 1 | # EKS AddOn - EBS CSI Driver Outputs 2 | output "ebs_eks_addon_arn" { 3 | description = "EKS AddOn - EBS CSI Driver ARN" 4 | value = aws_eks_addon.ebs_eks_addon.arn 5 | } 6 | output "ebs_eks_addon_id" { 7 | description = "EKS AddOn - EBS CSI Driver ID" 8 | value = aws_eks_addon.ebs_eks_addon.id 9 | } 10 | -------------------------------------------------------------------------------- /18-EBS-CSI-Install-using-EKS-AddOn/02-ebs-addon-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /18-EBS-CSI-Install-using-EKS-AddOn/03-terraform-manifests-UMS-WebApp/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = "us-east-1" 8 | } 9 | } -------------------------------------------------------------------------------- /18-EBS-CSI-Install-using-EKS-AddOn/03-terraform-manifests-UMS-WebApp/c4-01-storage-class.tf: -------------------------------------------------------------------------------- 1 | # Resource: Kubernetes Storage Class 2 | resource "kubernetes_storage_class_v1" "ebs_sc" { 3 | metadata { 4 | name = "ebs-sc" 5 | } 6 | storage_provisioner = "ebs.csi.aws.com" 7 | volume_binding_mode = "WaitForFirstConsumer" 8 | } -------------------------------------------------------------------------------- /18-EBS-CSI-Install-using-EKS-AddOn/03-terraform-manifests-UMS-WebApp/c4-03-UserMgmtWebApp-ConfigMap.tf: -------------------------------------------------------------------------------- 1 | # Resource: Config Map 2 | resource "kubernetes_config_map_v1" "config_map" { 3 | metadata { 4 | name = "usermanagement-dbcreation-script" 5 | } 6 | data = { 7 | "webappdb.sql" = "${file("${path.module}/webappdb.sql")}" 8 | } 9 | } -------------------------------------------------------------------------------- /18-EBS-CSI-Install-using-EKS-AddOn/03-terraform-manifests-UMS-WebApp/webappdb.sql: -------------------------------------------------------------------------------- 1 | DROP DATABASE IF EXISTS webappdb; 2 | CREATE DATABASE webappdb; -------------------------------------------------------------------------------- /18-EBS-CSI-Install-using-EKS-AddOn/backup/c4-04-ebs-csi-outputs.tf: -------------------------------------------------------------------------------- 1 | # EKS AddOn - EBS CSI Driver Outputs 2 | output "ebs_eks_addon_arn" { 3 | description = "EKS AddOn - EBS CSI Driver ARN" 4 | value = aws_eks_addon.ebs_eks_addon.arn 5 | } 6 | output "ebs_eks_addon_id" { 7 | description = "EKS AddOn - EBS CSI Driver ID" 8 | value = aws_eks_addon.ebs_eks_addon.id 9 | } 10 | -------------------------------------------------------------------------------- /19-EKS-Admins-AWS-Admin-User/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /19-EKS-Admins-AWS-Admin-User/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /19-EKS-Admins-AWS-Admin-User/01-ekscluster-terraform-manifests/c6-01-iam-oidc-connect-provider-variables.tf: -------------------------------------------------------------------------------- 1 | # Input Variables - AWS IAM OIDC Connect Provider 2 | 3 | 4 | # EKS OIDC ROOT CA Thumbprint - valid until 2037 5 | variable "eks_oidc_root_ca_thumbprint" { 6 | type = string 7 | description = "Thumbprint of Root CA for EKS OIDC, Valid until 2037" 8 | default = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 9 | } -------------------------------------------------------------------------------- /19-EKS-Admins-AWS-Admin-User/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /19-EKS-Admins-AWS-Admin-User/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /19-EKS-Admins-AWS-Admin-User/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /20-EKS-Admins-AWS-Basic-User/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /20-EKS-Admins-AWS-Basic-User/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /20-EKS-Admins-AWS-Basic-User/01-ekscluster-terraform-manifests/c6-01-iam-oidc-connect-provider-variables.tf: -------------------------------------------------------------------------------- 1 | # Input Variables - AWS IAM OIDC Connect Provider 2 | 3 | 4 | # EKS OIDC ROOT CA Thumbprint - valid until 2037 5 | variable "eks_oidc_root_ca_thumbprint" { 6 | type = string 7 | description = "Thumbprint of Root CA for EKS OIDC, Valid until 2037" 8 | default = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 9 | } -------------------------------------------------------------------------------- /20-EKS-Admins-AWS-Basic-User/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /20-EKS-Admins-AWS-Basic-User/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /20-EKS-Admins-AWS-Basic-User/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /20-EKS-Admins-AWS-Basic-User/iam-files/eks-full-access-policy.json: -------------------------------------------------------------------------------- 1 | { 2 | "Version": "2012-10-17", 3 | "Statement": [ 4 | { 5 | "Effect": "Allow", 6 | "Action": [ 7 | "iam:ListRoles", 8 | "eks:*", 9 | "ssm:GetParameter" 10 | ], 11 | "Resource": "*" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /21-EKS-Admins-as-AWS-IAM-Users/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /21-EKS-Admins-as-AWS-IAM-Users/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /21-EKS-Admins-as-AWS-IAM-Users/01-ekscluster-terraform-manifests/c6-01-iam-oidc-connect-provider-variables.tf: -------------------------------------------------------------------------------- 1 | # Input Variables - AWS IAM OIDC Connect Provider 2 | 3 | 4 | # EKS OIDC ROOT CA Thumbprint - valid until 2037 5 | variable "eks_oidc_root_ca_thumbprint" { 6 | type = string 7 | description = "Thumbprint of Root CA for EKS OIDC, Valid until 2037" 8 | default = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 9 | } -------------------------------------------------------------------------------- /21-EKS-Admins-as-AWS-IAM-Users/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /21-EKS-Admins-as-AWS-IAM-Users/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /21-EKS-Admins-as-AWS-IAM-Users/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /22-EKS-Admins-with-AWS-IAM-Roles/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /22-EKS-Admins-with-AWS-IAM-Roles/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /22-EKS-Admins-with-AWS-IAM-Roles/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /22-EKS-Admins-with-AWS-IAM-Roles/01-ekscluster-terraform-manifests/eks-full-access-policy.json: -------------------------------------------------------------------------------- 1 | { 2 | "Version": "2012-10-17", 3 | "Statement": [ 4 | { 5 | "Effect": "Allow", 6 | "Action": [ 7 | "iam:ListRoles", 8 | "eks:*", 9 | "ssm:GetParameter" 10 | ], 11 | "Resource": "*" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /22-EKS-Admins-with-AWS-IAM-Roles/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /22-EKS-Admins-with-AWS-IAM-Roles/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /22-EKS-Admins-with-AWS-IAM-Roles/iam-files/eks-full-access-policy.json: -------------------------------------------------------------------------------- 1 | { 2 | "Version": "2012-10-17", 3 | "Statement": [ 4 | { 5 | "Effect": "Allow", 6 | "Action": [ 7 | "iam:ListRoles", 8 | "eks:*", 9 | "ssm:GetParameter" 10 | ], 11 | "Resource": "*" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /23-EKS-Admins-with-AWS-IAM-Roles-TF/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /23-EKS-Admins-with-AWS-IAM-Roles-TF/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /23-EKS-Admins-with-AWS-IAM-Roles-TF/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /23-EKS-Admins-with-AWS-IAM-Roles-TF/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /23-EKS-Admins-with-AWS-IAM-Roles-TF/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /24-EKS-ReadOnly-IAM-Users/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /24-EKS-ReadOnly-IAM-Users/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /24-EKS-ReadOnly-IAM-Users/01-ekscluster-terraform-manifests/c6-01-iam-oidc-connect-provider-variables.tf: -------------------------------------------------------------------------------- 1 | # Input Variables - AWS IAM OIDC Connect Provider 2 | 3 | 4 | # EKS OIDC ROOT CA Thumbprint - valid until 2037 5 | variable "eks_oidc_root_ca_thumbprint" { 6 | type = string 7 | description = "Thumbprint of Root CA for EKS OIDC, Valid until 2037" 8 | default = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 9 | } -------------------------------------------------------------------------------- /24-EKS-ReadOnly-IAM-Users/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /24-EKS-ReadOnly-IAM-Users/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /24-EKS-ReadOnly-IAM-Users/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /25-EKS-DeveloperAccess-IAM-Users/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /25-EKS-DeveloperAccess-IAM-Users/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /25-EKS-DeveloperAccess-IAM-Users/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /25-EKS-DeveloperAccess-IAM-Users/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /25-EKS-DeveloperAccess-IAM-Users/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /25-EKS-DeveloperAccess-IAM-Users/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /25-EKS-DeveloperAccess-IAM-Users/02-kube-manifests-rb-r/00-k8s-dev-namespace.yaml: -------------------------------------------------------------------------------- 1 | # Kubernetes Resource: Namespace 2 | apiVersion: v1 3 | kind: Namespace 4 | metadata: 5 | name: dev -------------------------------------------------------------------------------- /25-EKS-DeveloperAccess-IAM-Users/04-k8sresources-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = "us-east-1" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /26-EKS-with-LoadBalancer-Controller/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /26-EKS-with-LoadBalancer-Controller/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /26-EKS-with-LoadBalancer-Controller/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /26-EKS-with-LoadBalancer-Controller/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /26-EKS-with-LoadBalancer-Controller/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /26-EKS-with-LoadBalancer-Controller/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /26-EKS-with-LoadBalancer-Controller/02-lbc-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /26-EKS-with-LoadBalancer-Controller/02-lbc-install-terraform-manifests/c4-05-lbc-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "lbc_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.loadbalancer_controller.metadata 5 | } -------------------------------------------------------------------------------- /26-EKS-with-LoadBalancer-Controller/02-lbc-install-terraform-manifests/c5-01-kubernetes-provider.tf: -------------------------------------------------------------------------------- 1 | # Terraform Kubernetes Provider 2 | provider "kubernetes" { 3 | host = data.terraform_remote_state.eks.outputs.cluster_endpoint 4 | cluster_ca_certificate = base64decode(data.terraform_remote_state.eks.outputs.cluster_certificate_authority_data) 5 | token = data.aws_eks_cluster_auth.cluster.token 6 | } -------------------------------------------------------------------------------- /26-EKS-with-LoadBalancer-Controller/02-lbc-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /27-EKS-Ingress-Basics/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /27-EKS-Ingress-Basics/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /27-EKS-Ingress-Basics/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /27-EKS-Ingress-Basics/01-ekscluster-terraform-manifests/c6-01-iam-oidc-connect-provider-variables.tf: -------------------------------------------------------------------------------- 1 | # Input Variables - AWS IAM OIDC Connect Provider 2 | 3 | 4 | # EKS OIDC ROOT CA Thumbprint - valid until 2037 5 | variable "eks_oidc_root_ca_thumbprint" { 6 | type = string 7 | description = "Thumbprint of Root CA for EKS OIDC, Valid until 2037" 8 | default = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 9 | } -------------------------------------------------------------------------------- /27-EKS-Ingress-Basics/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /27-EKS-Ingress-Basics/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /27-EKS-Ingress-Basics/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /27-EKS-Ingress-Basics/02-lbc-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /27-EKS-Ingress-Basics/02-lbc-install-terraform-manifests/c4-05-lbc-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "lbc_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.loadbalancer_controller.metadata 5 | } -------------------------------------------------------------------------------- /27-EKS-Ingress-Basics/02-lbc-install-terraform-manifests/c5-01-kubernetes-provider.tf: -------------------------------------------------------------------------------- 1 | # Terraform Kubernetes Provider 2 | provider "kubernetes" { 3 | host = data.terraform_remote_state.eks.outputs.cluster_endpoint 4 | cluster_ca_certificate = base64decode(data.terraform_remote_state.eks.outputs.cluster_certificate_authority_data) 5 | token = data.aws_eks_cluster_auth.cluster.token 6 | } -------------------------------------------------------------------------------- /27-EKS-Ingress-Basics/02-lbc-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /27-EKS-Ingress-Basics/04-ingress-basics-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = "us-east-1" 8 | } 9 | } -------------------------------------------------------------------------------- /28-EKS-Ingress-Context-Path-Routing/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /28-EKS-Ingress-Context-Path-Routing/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /28-EKS-Ingress-Context-Path-Routing/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /28-EKS-Ingress-Context-Path-Routing/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /28-EKS-Ingress-Context-Path-Routing/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /28-EKS-Ingress-Context-Path-Routing/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /28-EKS-Ingress-Context-Path-Routing/02-lbc-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /28-EKS-Ingress-Context-Path-Routing/02-lbc-install-terraform-manifests/c4-05-lbc-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "lbc_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.loadbalancer_controller.metadata 5 | } -------------------------------------------------------------------------------- /28-EKS-Ingress-Context-Path-Routing/02-lbc-install-terraform-manifests/c5-01-kubernetes-provider.tf: -------------------------------------------------------------------------------- 1 | # Terraform Kubernetes Provider 2 | provider "kubernetes" { 3 | host = data.terraform_remote_state.eks.outputs.cluster_endpoint 4 | cluster_ca_certificate = base64decode(data.terraform_remote_state.eks.outputs.cluster_certificate_authority_data) 5 | token = data.aws_eks_cluster_auth.cluster.token 6 | } -------------------------------------------------------------------------------- /28-EKS-Ingress-Context-Path-Routing/02-lbc-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /28-EKS-Ingress-Context-Path-Routing/04-ingress-cpr-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = "us-east-1" 8 | } 9 | } -------------------------------------------------------------------------------- /29-EKS-Ingress-SSL-SSLRedirect/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /29-EKS-Ingress-SSL-SSLRedirect/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /29-EKS-Ingress-SSL-SSLRedirect/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /29-EKS-Ingress-SSL-SSLRedirect/01-ekscluster-terraform-manifests/c6-01-iam-oidc-connect-provider-variables.tf: -------------------------------------------------------------------------------- 1 | # Input Variables - AWS IAM OIDC Connect Provider 2 | 3 | 4 | # EKS OIDC ROOT CA Thumbprint - valid until 2037 5 | variable "eks_oidc_root_ca_thumbprint" { 6 | type = string 7 | description = "Thumbprint of Root CA for EKS OIDC, Valid until 2037" 8 | default = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 9 | } -------------------------------------------------------------------------------- /29-EKS-Ingress-SSL-SSLRedirect/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /29-EKS-Ingress-SSL-SSLRedirect/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /29-EKS-Ingress-SSL-SSLRedirect/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /29-EKS-Ingress-SSL-SSLRedirect/02-lbc-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /29-EKS-Ingress-SSL-SSLRedirect/02-lbc-install-terraform-manifests/c4-05-lbc-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "lbc_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.loadbalancer_controller.metadata 5 | } -------------------------------------------------------------------------------- /29-EKS-Ingress-SSL-SSLRedirect/02-lbc-install-terraform-manifests/c5-01-kubernetes-provider.tf: -------------------------------------------------------------------------------- 1 | # Terraform Kubernetes Provider 2 | provider "kubernetes" { 3 | host = data.terraform_remote_state.eks.outputs.cluster_endpoint 4 | cluster_ca_certificate = base64decode(data.terraform_remote_state.eks.outputs.cluster_certificate_authority_data) 5 | token = data.aws_eks_cluster_auth.cluster.token 6 | } -------------------------------------------------------------------------------- /29-EKS-Ingress-SSL-SSLRedirect/02-lbc-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /29-EKS-Ingress-SSL-SSLRedirect/04-ingress-ssl-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = "us-east-1" 8 | } 9 | } -------------------------------------------------------------------------------- /29-EKS-Ingress-SSL-SSLRedirect/04-ingress-ssl-terraform-manifests/listen-ports/listen-ports.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "HTTP": 80 3 | }, { 4 | "HTTPS": 443 5 | }] -------------------------------------------------------------------------------- /30-EKS-ExternalDNS-Install/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /30-EKS-ExternalDNS-Install/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /30-EKS-ExternalDNS-Install/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /30-EKS-ExternalDNS-Install/01-ekscluster-terraform-manifests/c6-01-iam-oidc-connect-provider-variables.tf: -------------------------------------------------------------------------------- 1 | # Input Variables - AWS IAM OIDC Connect Provider 2 | 3 | 4 | # EKS OIDC ROOT CA Thumbprint - valid until 2037 5 | variable "eks_oidc_root_ca_thumbprint" { 6 | type = string 7 | description = "Thumbprint of Root CA for EKS OIDC, Valid until 2037" 8 | default = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 9 | } -------------------------------------------------------------------------------- /30-EKS-ExternalDNS-Install/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /30-EKS-ExternalDNS-Install/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /30-EKS-ExternalDNS-Install/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /30-EKS-ExternalDNS-Install/02-lbc-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /30-EKS-ExternalDNS-Install/02-lbc-install-terraform-manifests/c4-05-lbc-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "lbc_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.loadbalancer_controller.metadata 5 | } -------------------------------------------------------------------------------- /30-EKS-ExternalDNS-Install/02-lbc-install-terraform-manifests/c5-01-kubernetes-provider.tf: -------------------------------------------------------------------------------- 1 | # Terraform Kubernetes Provider 2 | provider "kubernetes" { 3 | host = data.terraform_remote_state.eks.outputs.cluster_endpoint 4 | cluster_ca_certificate = base64decode(data.terraform_remote_state.eks.outputs.cluster_certificate_authority_data) 5 | token = data.aws_eks_cluster_auth.cluster.token 6 | } -------------------------------------------------------------------------------- /30-EKS-ExternalDNS-Install/02-lbc-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /30-EKS-ExternalDNS-Install/03-externaldns-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /30-EKS-ExternalDNS-Install/03-externaldns-install-terraform-manifests/c4-04-externaldns-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "externaldns_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.external_dns.metadata 5 | } -------------------------------------------------------------------------------- /30-EKS-ExternalDNS-Install/03-externaldns-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /31-EKS-ExternalDNS-with-Ingress-Service/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /31-EKS-ExternalDNS-with-Ingress-Service/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /31-EKS-ExternalDNS-with-Ingress-Service/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /31-EKS-ExternalDNS-with-Ingress-Service/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /31-EKS-ExternalDNS-with-Ingress-Service/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /31-EKS-ExternalDNS-with-Ingress-Service/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /31-EKS-ExternalDNS-with-Ingress-Service/02-lbc-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /31-EKS-ExternalDNS-with-Ingress-Service/02-lbc-install-terraform-manifests/c4-05-lbc-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "lbc_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.loadbalancer_controller.metadata 5 | } -------------------------------------------------------------------------------- /31-EKS-ExternalDNS-with-Ingress-Service/02-lbc-install-terraform-manifests/c5-01-kubernetes-provider.tf: -------------------------------------------------------------------------------- 1 | # Terraform Kubernetes Provider 2 | provider "kubernetes" { 3 | host = data.terraform_remote_state.eks.outputs.cluster_endpoint 4 | cluster_ca_certificate = base64decode(data.terraform_remote_state.eks.outputs.cluster_certificate_authority_data) 5 | token = data.aws_eks_cluster_auth.cluster.token 6 | } -------------------------------------------------------------------------------- /31-EKS-ExternalDNS-with-Ingress-Service/02-lbc-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /31-EKS-ExternalDNS-with-Ingress-Service/03-externaldns-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /31-EKS-ExternalDNS-with-Ingress-Service/03-externaldns-install-terraform-manifests/c4-04-externaldns-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "externaldns_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.external_dns.metadata 5 | } -------------------------------------------------------------------------------- /31-EKS-ExternalDNS-with-Ingress-Service/03-externaldns-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /31-EKS-ExternalDNS-with-Ingress-Service/05-ingress-externaldns-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = "us-east-1" 8 | } 9 | } -------------------------------------------------------------------------------- /31-EKS-ExternalDNS-with-Ingress-Service/05-ingress-externaldns-terraform-manifests/listen-ports/listen-ports.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "HTTP": 80 3 | }, { 4 | "HTTPS": 443 5 | }] -------------------------------------------------------------------------------- /32-EKS-ExternalDNS-with-k8s-Service/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /32-EKS-ExternalDNS-with-k8s-Service/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /32-EKS-ExternalDNS-with-k8s-Service/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /32-EKS-ExternalDNS-with-k8s-Service/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /32-EKS-ExternalDNS-with-k8s-Service/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /32-EKS-ExternalDNS-with-k8s-Service/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /32-EKS-ExternalDNS-with-k8s-Service/02-lbc-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /32-EKS-ExternalDNS-with-k8s-Service/02-lbc-install-terraform-manifests/c4-05-lbc-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "lbc_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.loadbalancer_controller.metadata 5 | } -------------------------------------------------------------------------------- /32-EKS-ExternalDNS-with-k8s-Service/02-lbc-install-terraform-manifests/c5-01-kubernetes-provider.tf: -------------------------------------------------------------------------------- 1 | # Terraform Kubernetes Provider 2 | provider "kubernetes" { 3 | host = data.terraform_remote_state.eks.outputs.cluster_endpoint 4 | cluster_ca_certificate = base64decode(data.terraform_remote_state.eks.outputs.cluster_certificate_authority_data) 5 | token = data.aws_eks_cluster_auth.cluster.token 6 | } -------------------------------------------------------------------------------- /32-EKS-ExternalDNS-with-k8s-Service/02-lbc-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /32-EKS-ExternalDNS-with-k8s-Service/03-externaldns-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /32-EKS-ExternalDNS-with-k8s-Service/03-externaldns-install-terraform-manifests/c4-04-externaldns-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "externaldns_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.external_dns.metadata 5 | } -------------------------------------------------------------------------------- /32-EKS-ExternalDNS-with-k8s-Service/03-externaldns-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /32-EKS-ExternalDNS-with-k8s-Service/05-k8sService-externaldns-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = "us-east-1" 8 | } 9 | } -------------------------------------------------------------------------------- /33-EKS-Ingress-NameBasedVirtualHost-Routing/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /33-EKS-Ingress-NameBasedVirtualHost-Routing/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /33-EKS-Ingress-NameBasedVirtualHost-Routing/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /33-EKS-Ingress-NameBasedVirtualHost-Routing/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /33-EKS-Ingress-NameBasedVirtualHost-Routing/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /33-EKS-Ingress-NameBasedVirtualHost-Routing/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /33-EKS-Ingress-NameBasedVirtualHost-Routing/02-lbc-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /33-EKS-Ingress-NameBasedVirtualHost-Routing/02-lbc-install-terraform-manifests/c4-05-lbc-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "lbc_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.loadbalancer_controller.metadata 5 | } -------------------------------------------------------------------------------- /33-EKS-Ingress-NameBasedVirtualHost-Routing/02-lbc-install-terraform-manifests/c5-01-kubernetes-provider.tf: -------------------------------------------------------------------------------- 1 | # Terraform Kubernetes Provider 2 | provider "kubernetes" { 3 | host = data.terraform_remote_state.eks.outputs.cluster_endpoint 4 | cluster_ca_certificate = base64decode(data.terraform_remote_state.eks.outputs.cluster_certificate_authority_data) 5 | token = data.aws_eks_cluster_auth.cluster.token 6 | } -------------------------------------------------------------------------------- /33-EKS-Ingress-NameBasedVirtualHost-Routing/02-lbc-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /33-EKS-Ingress-NameBasedVirtualHost-Routing/03-externaldns-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /33-EKS-Ingress-NameBasedVirtualHost-Routing/03-externaldns-install-terraform-manifests/c4-04-externaldns-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "externaldns_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.external_dns.metadata 5 | } -------------------------------------------------------------------------------- /33-EKS-Ingress-NameBasedVirtualHost-Routing/03-externaldns-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /33-EKS-Ingress-NameBasedVirtualHost-Routing/05-ingress-nvhr-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = "us-east-1" 8 | } 9 | } -------------------------------------------------------------------------------- /33-EKS-Ingress-NameBasedVirtualHost-Routing/05-ingress-nvhr-terraform-manifests/listen-ports/listen-ports.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "HTTP": 80 3 | }, { 4 | "HTTPS": 443 5 | }] -------------------------------------------------------------------------------- /34-EKS-Ingress-SSLDiscovery-Host/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /34-EKS-Ingress-SSLDiscovery-Host/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /34-EKS-Ingress-SSLDiscovery-Host/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /34-EKS-Ingress-SSLDiscovery-Host/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /34-EKS-Ingress-SSLDiscovery-Host/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /34-EKS-Ingress-SSLDiscovery-Host/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /34-EKS-Ingress-SSLDiscovery-Host/02-lbc-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /34-EKS-Ingress-SSLDiscovery-Host/02-lbc-install-terraform-manifests/c4-05-lbc-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "lbc_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.loadbalancer_controller.metadata 5 | } -------------------------------------------------------------------------------- /34-EKS-Ingress-SSLDiscovery-Host/02-lbc-install-terraform-manifests/c5-01-kubernetes-provider.tf: -------------------------------------------------------------------------------- 1 | # Terraform Kubernetes Provider 2 | provider "kubernetes" { 3 | host = data.terraform_remote_state.eks.outputs.cluster_endpoint 4 | cluster_ca_certificate = base64decode(data.terraform_remote_state.eks.outputs.cluster_certificate_authority_data) 5 | token = data.aws_eks_cluster_auth.cluster.token 6 | } -------------------------------------------------------------------------------- /34-EKS-Ingress-SSLDiscovery-Host/02-lbc-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /34-EKS-Ingress-SSLDiscovery-Host/03-externaldns-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /34-EKS-Ingress-SSLDiscovery-Host/03-externaldns-install-terraform-manifests/c4-04-externaldns-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "externaldns_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.external_dns.metadata 5 | } -------------------------------------------------------------------------------- /34-EKS-Ingress-SSLDiscovery-Host/03-externaldns-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /34-EKS-Ingress-SSLDiscovery-Host/05-ingress-SSLDiscoveryHost-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = "us-east-1" 8 | } 9 | } -------------------------------------------------------------------------------- /34-EKS-Ingress-SSLDiscovery-Host/05-ingress-SSLDiscoveryHost-terraform-manifests/listen-ports/listen-ports.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "HTTP": 80 3 | }, { 4 | "HTTPS": 443 5 | }] -------------------------------------------------------------------------------- /35-EKS-Ingress-SSLDiscovery-TLS/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /35-EKS-Ingress-SSLDiscovery-TLS/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /35-EKS-Ingress-SSLDiscovery-TLS/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /35-EKS-Ingress-SSLDiscovery-TLS/01-ekscluster-terraform-manifests/c6-01-iam-oidc-connect-provider-variables.tf: -------------------------------------------------------------------------------- 1 | # Input Variables - AWS IAM OIDC Connect Provider 2 | 3 | 4 | # EKS OIDC ROOT CA Thumbprint - valid until 2037 5 | variable "eks_oidc_root_ca_thumbprint" { 6 | type = string 7 | description = "Thumbprint of Root CA for EKS OIDC, Valid until 2037" 8 | default = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 9 | } -------------------------------------------------------------------------------- /35-EKS-Ingress-SSLDiscovery-TLS/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /35-EKS-Ingress-SSLDiscovery-TLS/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /35-EKS-Ingress-SSLDiscovery-TLS/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /35-EKS-Ingress-SSLDiscovery-TLS/02-lbc-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /35-EKS-Ingress-SSLDiscovery-TLS/02-lbc-install-terraform-manifests/c4-05-lbc-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "lbc_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.loadbalancer_controller.metadata 5 | } -------------------------------------------------------------------------------- /35-EKS-Ingress-SSLDiscovery-TLS/02-lbc-install-terraform-manifests/c5-01-kubernetes-provider.tf: -------------------------------------------------------------------------------- 1 | # Terraform Kubernetes Provider 2 | provider "kubernetes" { 3 | host = data.terraform_remote_state.eks.outputs.cluster_endpoint 4 | cluster_ca_certificate = base64decode(data.terraform_remote_state.eks.outputs.cluster_certificate_authority_data) 5 | token = data.aws_eks_cluster_auth.cluster.token 6 | } -------------------------------------------------------------------------------- /35-EKS-Ingress-SSLDiscovery-TLS/02-lbc-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /35-EKS-Ingress-SSLDiscovery-TLS/03-externaldns-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /35-EKS-Ingress-SSLDiscovery-TLS/03-externaldns-install-terraform-manifests/c4-04-externaldns-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "externaldns_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.external_dns.metadata 5 | } -------------------------------------------------------------------------------- /35-EKS-Ingress-SSLDiscovery-TLS/03-externaldns-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /35-EKS-Ingress-SSLDiscovery-TLS/05-ingress-SSLDiscoveryTLS-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = "us-east-1" 8 | } 9 | } -------------------------------------------------------------------------------- /35-EKS-Ingress-SSLDiscovery-TLS/05-ingress-SSLDiscoveryTLS-terraform-manifests/listen-ports/listen-ports.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "HTTP": 80 3 | }, { 4 | "HTTPS": 443 5 | }] -------------------------------------------------------------------------------- /36-EKS-Ingress-Groups/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /36-EKS-Ingress-Groups/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /36-EKS-Ingress-Groups/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /36-EKS-Ingress-Groups/01-ekscluster-terraform-manifests/c6-01-iam-oidc-connect-provider-variables.tf: -------------------------------------------------------------------------------- 1 | # Input Variables - AWS IAM OIDC Connect Provider 2 | 3 | 4 | # EKS OIDC ROOT CA Thumbprint - valid until 2037 5 | variable "eks_oidc_root_ca_thumbprint" { 6 | type = string 7 | description = "Thumbprint of Root CA for EKS OIDC, Valid until 2037" 8 | default = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 9 | } -------------------------------------------------------------------------------- /36-EKS-Ingress-Groups/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /36-EKS-Ingress-Groups/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /36-EKS-Ingress-Groups/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /36-EKS-Ingress-Groups/02-lbc-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /36-EKS-Ingress-Groups/02-lbc-install-terraform-manifests/c4-05-lbc-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "lbc_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.loadbalancer_controller.metadata 5 | } -------------------------------------------------------------------------------- /36-EKS-Ingress-Groups/02-lbc-install-terraform-manifests/c5-01-kubernetes-provider.tf: -------------------------------------------------------------------------------- 1 | # Terraform Kubernetes Provider 2 | provider "kubernetes" { 3 | host = data.terraform_remote_state.eks.outputs.cluster_endpoint 4 | cluster_ca_certificate = base64decode(data.terraform_remote_state.eks.outputs.cluster_certificate_authority_data) 5 | token = data.aws_eks_cluster_auth.cluster.token 6 | } -------------------------------------------------------------------------------- /36-EKS-Ingress-Groups/02-lbc-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /36-EKS-Ingress-Groups/03-externaldns-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /36-EKS-Ingress-Groups/03-externaldns-install-terraform-manifests/c4-04-externaldns-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "externaldns_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.external_dns.metadata 5 | } -------------------------------------------------------------------------------- /36-EKS-Ingress-Groups/03-externaldns-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /36-EKS-Ingress-Groups/05-ingress-groups-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = "us-east-1" 8 | } 9 | } -------------------------------------------------------------------------------- /36-EKS-Ingress-Groups/05-ingress-groups-terraform-manifests/listen-ports/listen-ports.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "HTTP": 80 3 | }, { 4 | "HTTPS": 443 5 | }] -------------------------------------------------------------------------------- /37-EKS-Ingress-TargetType-IP/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /37-EKS-Ingress-TargetType-IP/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /37-EKS-Ingress-TargetType-IP/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /37-EKS-Ingress-TargetType-IP/01-ekscluster-terraform-manifests/c6-01-iam-oidc-connect-provider-variables.tf: -------------------------------------------------------------------------------- 1 | # Input Variables - AWS IAM OIDC Connect Provider 2 | 3 | 4 | # EKS OIDC ROOT CA Thumbprint - valid until 2037 5 | variable "eks_oidc_root_ca_thumbprint" { 6 | type = string 7 | description = "Thumbprint of Root CA for EKS OIDC, Valid until 2037" 8 | default = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 9 | } -------------------------------------------------------------------------------- /37-EKS-Ingress-TargetType-IP/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /37-EKS-Ingress-TargetType-IP/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /37-EKS-Ingress-TargetType-IP/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /37-EKS-Ingress-TargetType-IP/02-lbc-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /37-EKS-Ingress-TargetType-IP/02-lbc-install-terraform-manifests/c4-05-lbc-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "lbc_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.loadbalancer_controller.metadata 5 | } -------------------------------------------------------------------------------- /37-EKS-Ingress-TargetType-IP/02-lbc-install-terraform-manifests/c5-01-kubernetes-provider.tf: -------------------------------------------------------------------------------- 1 | # Terraform Kubernetes Provider 2 | provider "kubernetes" { 3 | host = data.terraform_remote_state.eks.outputs.cluster_endpoint 4 | cluster_ca_certificate = base64decode(data.terraform_remote_state.eks.outputs.cluster_certificate_authority_data) 5 | token = data.aws_eks_cluster_auth.cluster.token 6 | } -------------------------------------------------------------------------------- /37-EKS-Ingress-TargetType-IP/02-lbc-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /37-EKS-Ingress-TargetType-IP/03-externaldns-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /37-EKS-Ingress-TargetType-IP/03-externaldns-install-terraform-manifests/c4-04-externaldns-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "externaldns_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.external_dns.metadata 5 | } -------------------------------------------------------------------------------- /37-EKS-Ingress-TargetType-IP/03-externaldns-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /37-EKS-Ingress-TargetType-IP/05-ingress-TargetType-IP-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = "us-east-1" 8 | } 9 | } -------------------------------------------------------------------------------- /37-EKS-Ingress-TargetType-IP/05-ingress-TargetType-IP-terraform-manifests/listen-ports/listen-ports.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "HTTP": 80 3 | }, { 4 | "HTTPS": 443 5 | }] -------------------------------------------------------------------------------- /38-EKS-Ingress-InternalLB/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /38-EKS-Ingress-InternalLB/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /38-EKS-Ingress-InternalLB/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /38-EKS-Ingress-InternalLB/01-ekscluster-terraform-manifests/c6-01-iam-oidc-connect-provider-variables.tf: -------------------------------------------------------------------------------- 1 | # Input Variables - AWS IAM OIDC Connect Provider 2 | 3 | 4 | # EKS OIDC ROOT CA Thumbprint - valid until 2037 5 | variable "eks_oidc_root_ca_thumbprint" { 6 | type = string 7 | description = "Thumbprint of Root CA for EKS OIDC, Valid until 2037" 8 | default = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 9 | } -------------------------------------------------------------------------------- /38-EKS-Ingress-InternalLB/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /38-EKS-Ingress-InternalLB/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /38-EKS-Ingress-InternalLB/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /38-EKS-Ingress-InternalLB/02-lbc-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /38-EKS-Ingress-InternalLB/02-lbc-install-terraform-manifests/c4-05-lbc-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "lbc_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.loadbalancer_controller.metadata 5 | } -------------------------------------------------------------------------------- /38-EKS-Ingress-InternalLB/02-lbc-install-terraform-manifests/c5-01-kubernetes-provider.tf: -------------------------------------------------------------------------------- 1 | # Terraform Kubernetes Provider 2 | provider "kubernetes" { 3 | host = data.terraform_remote_state.eks.outputs.cluster_endpoint 4 | cluster_ca_certificate = base64decode(data.terraform_remote_state.eks.outputs.cluster_certificate_authority_data) 5 | token = data.aws_eks_cluster_auth.cluster.token 6 | } -------------------------------------------------------------------------------- /38-EKS-Ingress-InternalLB/02-lbc-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /38-EKS-Ingress-InternalLB/03-externaldns-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /38-EKS-Ingress-InternalLB/03-externaldns-install-terraform-manifests/c4-04-externaldns-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "externaldns_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.external_dns.metadata 5 | } -------------------------------------------------------------------------------- /38-EKS-Ingress-InternalLB/03-externaldns-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /38-EKS-Ingress-InternalLB/05-kube-manifests-curl/01-curl-pod.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: curl-pod 5 | spec: 6 | containers: 7 | - name: curl 8 | image: curlimages/curl 9 | command: [ "sleep", "600" ] -------------------------------------------------------------------------------- /38-EKS-Ingress-InternalLB/06-ingress-InternalLB-terraform-manifests/c11-kubernetes-curl-pod-for-testing-InternalLB.tf: -------------------------------------------------------------------------------- 1 | # Kubernetes Curl Pod for Internal LB Testing 2 | resource "kubernetes_pod_v1" "curl_pod" { 3 | metadata { 4 | name = "curl-pod" 5 | } 6 | spec { 7 | container { 8 | image = "curlimages/curl" 9 | name = "curl" 10 | command = [ "sleep", "600" ] 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /38-EKS-Ingress-InternalLB/06-ingress-InternalLB-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = "us-east-1" 8 | } 9 | } -------------------------------------------------------------------------------- /39-EKS-Ingress-Cross-Namespaces/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /39-EKS-Ingress-Cross-Namespaces/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /39-EKS-Ingress-Cross-Namespaces/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /39-EKS-Ingress-Cross-Namespaces/01-ekscluster-terraform-manifests/c6-01-iam-oidc-connect-provider-variables.tf: -------------------------------------------------------------------------------- 1 | # Input Variables - AWS IAM OIDC Connect Provider 2 | 3 | 4 | # EKS OIDC ROOT CA Thumbprint - valid until 2037 5 | variable "eks_oidc_root_ca_thumbprint" { 6 | type = string 7 | description = "Thumbprint of Root CA for EKS OIDC, Valid until 2037" 8 | default = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 9 | } -------------------------------------------------------------------------------- /39-EKS-Ingress-Cross-Namespaces/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /39-EKS-Ingress-Cross-Namespaces/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /39-EKS-Ingress-Cross-Namespaces/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /39-EKS-Ingress-Cross-Namespaces/02-lbc-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /39-EKS-Ingress-Cross-Namespaces/02-lbc-install-terraform-manifests/c4-05-lbc-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "lbc_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.loadbalancer_controller.metadata 5 | } -------------------------------------------------------------------------------- /39-EKS-Ingress-Cross-Namespaces/02-lbc-install-terraform-manifests/c5-01-kubernetes-provider.tf: -------------------------------------------------------------------------------- 1 | # Terraform Kubernetes Provider 2 | provider "kubernetes" { 3 | host = data.terraform_remote_state.eks.outputs.cluster_endpoint 4 | cluster_ca_certificate = base64decode(data.terraform_remote_state.eks.outputs.cluster_certificate_authority_data) 5 | token = data.aws_eks_cluster_auth.cluster.token 6 | } -------------------------------------------------------------------------------- /39-EKS-Ingress-Cross-Namespaces/02-lbc-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /39-EKS-Ingress-Cross-Namespaces/03-externaldns-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /39-EKS-Ingress-Cross-Namespaces/03-externaldns-install-terraform-manifests/c4-04-externaldns-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "externaldns_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.external_dns.metadata 5 | } -------------------------------------------------------------------------------- /39-EKS-Ingress-Cross-Namespaces/03-externaldns-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /39-EKS-Ingress-Cross-Namespaces/04-kube-manifests-ingress-cross-ns/app1/00-namespace.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: ns-app1 5 | -------------------------------------------------------------------------------- /39-EKS-Ingress-Cross-Namespaces/04-kube-manifests-ingress-cross-ns/app2/00-namespace.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: ns-app2 5 | -------------------------------------------------------------------------------- /39-EKS-Ingress-Cross-Namespaces/04-kube-manifests-ingress-cross-ns/app3/00-namespace.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: ns-app3 5 | -------------------------------------------------------------------------------- /39-EKS-Ingress-Cross-Namespaces/05-ingress-cross-ns-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = "us-east-1" 8 | } 9 | } -------------------------------------------------------------------------------- /39-EKS-Ingress-Cross-Namespaces/05-ingress-cross-ns-terraform-manifests/listen-ports/listen-ports.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "HTTP": 80 3 | }, { 4 | "HTTPS": 443 5 | }] -------------------------------------------------------------------------------- /40-EKS-NLB-Basics/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /40-EKS-NLB-Basics/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /40-EKS-NLB-Basics/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /40-EKS-NLB-Basics/01-ekscluster-terraform-manifests/c6-01-iam-oidc-connect-provider-variables.tf: -------------------------------------------------------------------------------- 1 | # Input Variables - AWS IAM OIDC Connect Provider 2 | 3 | 4 | # EKS OIDC ROOT CA Thumbprint - valid until 2037 5 | variable "eks_oidc_root_ca_thumbprint" { 6 | type = string 7 | description = "Thumbprint of Root CA for EKS OIDC, Valid until 2037" 8 | default = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 9 | } -------------------------------------------------------------------------------- /40-EKS-NLB-Basics/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /40-EKS-NLB-Basics/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /40-EKS-NLB-Basics/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /40-EKS-NLB-Basics/02-lbc-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /40-EKS-NLB-Basics/02-lbc-install-terraform-manifests/c4-05-lbc-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "lbc_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.loadbalancer_controller.metadata 5 | } -------------------------------------------------------------------------------- /40-EKS-NLB-Basics/02-lbc-install-terraform-manifests/c5-01-kubernetes-provider.tf: -------------------------------------------------------------------------------- 1 | # Terraform Kubernetes Provider 2 | provider "kubernetes" { 3 | host = data.terraform_remote_state.eks.outputs.cluster_endpoint 4 | cluster_ca_certificate = base64decode(data.terraform_remote_state.eks.outputs.cluster_certificate_authority_data) 5 | token = data.aws_eks_cluster_auth.cluster.token 6 | } -------------------------------------------------------------------------------- /40-EKS-NLB-Basics/02-lbc-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /40-EKS-NLB-Basics/03-externaldns-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /40-EKS-NLB-Basics/03-externaldns-install-terraform-manifests/c4-04-externaldns-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "externaldns_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.external_dns.metadata 5 | } -------------------------------------------------------------------------------- /40-EKS-NLB-Basics/03-externaldns-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /40-EKS-NLB-Basics/05-nlb-basics-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = "us-east-1" 8 | } 9 | } -------------------------------------------------------------------------------- /41-EKS-NLB-TLS-externaldns/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /41-EKS-NLB-TLS-externaldns/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /41-EKS-NLB-TLS-externaldns/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /41-EKS-NLB-TLS-externaldns/01-ekscluster-terraform-manifests/c6-01-iam-oidc-connect-provider-variables.tf: -------------------------------------------------------------------------------- 1 | # Input Variables - AWS IAM OIDC Connect Provider 2 | 3 | 4 | # EKS OIDC ROOT CA Thumbprint - valid until 2037 5 | variable "eks_oidc_root_ca_thumbprint" { 6 | type = string 7 | description = "Thumbprint of Root CA for EKS OIDC, Valid until 2037" 8 | default = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 9 | } -------------------------------------------------------------------------------- /41-EKS-NLB-TLS-externaldns/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /41-EKS-NLB-TLS-externaldns/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /41-EKS-NLB-TLS-externaldns/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /41-EKS-NLB-TLS-externaldns/02-lbc-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /41-EKS-NLB-TLS-externaldns/02-lbc-install-terraform-manifests/c4-05-lbc-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "lbc_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.loadbalancer_controller.metadata 5 | } -------------------------------------------------------------------------------- /41-EKS-NLB-TLS-externaldns/02-lbc-install-terraform-manifests/c5-01-kubernetes-provider.tf: -------------------------------------------------------------------------------- 1 | # Terraform Kubernetes Provider 2 | provider "kubernetes" { 3 | host = data.terraform_remote_state.eks.outputs.cluster_endpoint 4 | cluster_ca_certificate = base64decode(data.terraform_remote_state.eks.outputs.cluster_certificate_authority_data) 5 | token = data.aws_eks_cluster_auth.cluster.token 6 | } -------------------------------------------------------------------------------- /41-EKS-NLB-TLS-externaldns/02-lbc-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /41-EKS-NLB-TLS-externaldns/03-externaldns-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /41-EKS-NLB-TLS-externaldns/03-externaldns-install-terraform-manifests/c4-04-externaldns-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "externaldns_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.external_dns.metadata 5 | } -------------------------------------------------------------------------------- /41-EKS-NLB-TLS-externaldns/03-externaldns-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /41-EKS-NLB-TLS-externaldns/05-nlb-tls-extdns-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = "us-east-1" 8 | } 9 | } -------------------------------------------------------------------------------- /42-EKS-NLB-InternalLB/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /42-EKS-NLB-InternalLB/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /42-EKS-NLB-InternalLB/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /42-EKS-NLB-InternalLB/01-ekscluster-terraform-manifests/c6-01-iam-oidc-connect-provider-variables.tf: -------------------------------------------------------------------------------- 1 | # Input Variables - AWS IAM OIDC Connect Provider 2 | 3 | 4 | # EKS OIDC ROOT CA Thumbprint - valid until 2037 5 | variable "eks_oidc_root_ca_thumbprint" { 6 | type = string 7 | description = "Thumbprint of Root CA for EKS OIDC, Valid until 2037" 8 | default = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 9 | } -------------------------------------------------------------------------------- /42-EKS-NLB-InternalLB/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /42-EKS-NLB-InternalLB/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /42-EKS-NLB-InternalLB/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /42-EKS-NLB-InternalLB/02-lbc-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /42-EKS-NLB-InternalLB/02-lbc-install-terraform-manifests/c4-05-lbc-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "lbc_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.loadbalancer_controller.metadata 5 | } -------------------------------------------------------------------------------- /42-EKS-NLB-InternalLB/02-lbc-install-terraform-manifests/c5-01-kubernetes-provider.tf: -------------------------------------------------------------------------------- 1 | # Terraform Kubernetes Provider 2 | provider "kubernetes" { 3 | host = data.terraform_remote_state.eks.outputs.cluster_endpoint 4 | cluster_ca_certificate = base64decode(data.terraform_remote_state.eks.outputs.cluster_certificate_authority_data) 5 | token = data.aws_eks_cluster_auth.cluster.token 6 | } -------------------------------------------------------------------------------- /42-EKS-NLB-InternalLB/02-lbc-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /42-EKS-NLB-InternalLB/03-externaldns-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /42-EKS-NLB-InternalLB/03-externaldns-install-terraform-manifests/c4-04-externaldns-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "externaldns_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.external_dns.metadata 5 | } -------------------------------------------------------------------------------- /42-EKS-NLB-InternalLB/03-externaldns-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /42-EKS-NLB-InternalLB/05-kube-manifests-curl/01-curl-pod.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: curl-pod 5 | spec: 6 | containers: 7 | - name: curl 8 | image: curlimages/curl 9 | command: [ "sleep", "600" ] -------------------------------------------------------------------------------- /42-EKS-NLB-InternalLB/06-nlb-internal-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = "us-east-1" 8 | } 9 | } -------------------------------------------------------------------------------- /42-EKS-NLB-InternalLB/06-nlb-internal-terraform-manifests/c6-kubernetes-curl-pod-for-testing-InternalLB.tf: -------------------------------------------------------------------------------- 1 | # Kubernetes Curl Pod for Internal LB Testing 2 | resource "kubernetes_pod_v1" "curl_pod" { 3 | metadata { 4 | name = "curl-pod" 5 | } 6 | 7 | spec { 8 | container { 9 | image = "curlimages/curl" 10 | name = "curl" 11 | command = [ "sleep", "600" ] 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /43-EKS-Fargate-Profiles/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /43-EKS-Fargate-Profiles/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /43-EKS-Fargate-Profiles/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /43-EKS-Fargate-Profiles/01-ekscluster-terraform-manifests/c6-01-iam-oidc-connect-provider-variables.tf: -------------------------------------------------------------------------------- 1 | # Input Variables - AWS IAM OIDC Connect Provider 2 | 3 | 4 | # EKS OIDC ROOT CA Thumbprint - valid until 2037 5 | variable "eks_oidc_root_ca_thumbprint" { 6 | type = string 7 | description = "Thumbprint of Root CA for EKS OIDC, Valid until 2037" 8 | default = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 9 | } -------------------------------------------------------------------------------- /43-EKS-Fargate-Profiles/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /43-EKS-Fargate-Profiles/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /43-EKS-Fargate-Profiles/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /43-EKS-Fargate-Profiles/02-lbc-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /43-EKS-Fargate-Profiles/02-lbc-install-terraform-manifests/c4-05-lbc-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "lbc_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.loadbalancer_controller.metadata 5 | } -------------------------------------------------------------------------------- /43-EKS-Fargate-Profiles/02-lbc-install-terraform-manifests/c5-01-kubernetes-provider.tf: -------------------------------------------------------------------------------- 1 | # Terraform Kubernetes Provider 2 | provider "kubernetes" { 3 | host = data.terraform_remote_state.eks.outputs.cluster_endpoint 4 | cluster_ca_certificate = base64decode(data.terraform_remote_state.eks.outputs.cluster_certificate_authority_data) 5 | token = data.aws_eks_cluster_auth.cluster.token 6 | } -------------------------------------------------------------------------------- /43-EKS-Fargate-Profiles/02-lbc-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /43-EKS-Fargate-Profiles/03-externaldns-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /43-EKS-Fargate-Profiles/03-externaldns-install-terraform-manifests/c4-04-externaldns-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "externaldns_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.external_dns.metadata 5 | } -------------------------------------------------------------------------------- /43-EKS-Fargate-Profiles/03-externaldns-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /43-EKS-Fargate-Profiles/04-fargate-profiles-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /43-EKS-Fargate-Profiles/04-fargate-profiles-terraform-manifests/c4-02-kubernetes-namespace.tf: -------------------------------------------------------------------------------- 1 | # Resource: Kubernetes Namespace fp-ns-app1 2 | resource "kubernetes_namespace_v1" "fp_ns_app1" { 3 | metadata { 4 | name = "fp-ns-app1" 5 | } 6 | } -------------------------------------------------------------------------------- /43-EKS-Fargate-Profiles/04-fargate-profiles-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /44-EKS-Run-k8s-workloads-on-Fargate/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /44-EKS-Run-k8s-workloads-on-Fargate/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /44-EKS-Run-k8s-workloads-on-Fargate/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /44-EKS-Run-k8s-workloads-on-Fargate/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /44-EKS-Run-k8s-workloads-on-Fargate/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /44-EKS-Run-k8s-workloads-on-Fargate/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /44-EKS-Run-k8s-workloads-on-Fargate/02-lbc-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /44-EKS-Run-k8s-workloads-on-Fargate/02-lbc-install-terraform-manifests/c4-05-lbc-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "lbc_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.loadbalancer_controller.metadata 5 | } -------------------------------------------------------------------------------- /44-EKS-Run-k8s-workloads-on-Fargate/02-lbc-install-terraform-manifests/c5-01-kubernetes-provider.tf: -------------------------------------------------------------------------------- 1 | # Terraform Kubernetes Provider 2 | provider "kubernetes" { 3 | host = data.terraform_remote_state.eks.outputs.cluster_endpoint 4 | cluster_ca_certificate = base64decode(data.terraform_remote_state.eks.outputs.cluster_certificate_authority_data) 5 | token = data.aws_eks_cluster_auth.cluster.token 6 | } -------------------------------------------------------------------------------- /44-EKS-Run-k8s-workloads-on-Fargate/02-lbc-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /44-EKS-Run-k8s-workloads-on-Fargate/03-externaldns-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /44-EKS-Run-k8s-workloads-on-Fargate/03-externaldns-install-terraform-manifests/c4-04-externaldns-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "externaldns_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.external_dns.metadata 5 | } -------------------------------------------------------------------------------- /44-EKS-Run-k8s-workloads-on-Fargate/03-externaldns-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /44-EKS-Run-k8s-workloads-on-Fargate/04-fargate-profiles-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /44-EKS-Run-k8s-workloads-on-Fargate/04-fargate-profiles-terraform-manifests/c4-02-kubernetes-namespace.tf: -------------------------------------------------------------------------------- 1 | # Resource: Kubernetes Namespace fp-ns-app1 2 | resource "kubernetes_namespace_v1" "fp_ns_app1" { 3 | metadata { 4 | name = "fp-ns-app1" 5 | } 6 | } -------------------------------------------------------------------------------- /44-EKS-Run-k8s-workloads-on-Fargate/04-fargate-profiles-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /44-EKS-Run-k8s-workloads-on-Fargate/06-run-on-fargate-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = "us-east-1" 8 | } 9 | } -------------------------------------------------------------------------------- /44-EKS-Run-k8s-workloads-on-Fargate/06-run-on-fargate-terraform-manifests/listen-ports/listen-ports.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "HTTP": 80 3 | }, { 4 | "HTTPS": 443 5 | }] -------------------------------------------------------------------------------- /45-Fargate-Only-EKS-Cluster/01-ekscluster-terraform-manifests/c5-01-iam-oidc-connect-provider-variables.tf: -------------------------------------------------------------------------------- 1 | # Input Variables - AWS IAM OIDC Connect Provider 2 | 3 | 4 | # EKS OIDC ROOT CA Thumbprint - valid until 2037 5 | variable "eks_oidc_root_ca_thumbprint" { 6 | type = string 7 | description = "Thumbprint of Root CA for EKS OIDC, Valid until 2037" 8 | default = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 9 | } -------------------------------------------------------------------------------- /45-Fargate-Only-EKS-Cluster/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /45-Fargate-Only-EKS-Cluster/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /45-Fargate-Only-EKS-Cluster/02-lbc-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /45-Fargate-Only-EKS-Cluster/02-lbc-install-terraform-manifests/c4-05-lbc-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "lbc_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.loadbalancer_controller.metadata 5 | } -------------------------------------------------------------------------------- /45-Fargate-Only-EKS-Cluster/02-lbc-install-terraform-manifests/c5-01-kubernetes-provider.tf: -------------------------------------------------------------------------------- 1 | # Terraform Kubernetes Provider 2 | provider "kubernetes" { 3 | host = data.terraform_remote_state.eks.outputs.cluster_endpoint 4 | cluster_ca_certificate = base64decode(data.terraform_remote_state.eks.outputs.cluster_certificate_authority_data) 5 | token = data.aws_eks_cluster_auth.cluster.token 6 | } -------------------------------------------------------------------------------- /45-Fargate-Only-EKS-Cluster/02-lbc-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /45-Fargate-Only-EKS-Cluster/03-externaldns-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /45-Fargate-Only-EKS-Cluster/03-externaldns-install-terraform-manifests/c4-04-externaldns-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "externaldns_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.external_dns.metadata 5 | } -------------------------------------------------------------------------------- /45-Fargate-Only-EKS-Cluster/03-externaldns-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /45-Fargate-Only-EKS-Cluster/04-run-on-fargate-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = "us-east-1" 8 | } 9 | } -------------------------------------------------------------------------------- /45-Fargate-Only-EKS-Cluster/04-run-on-fargate-terraform-manifests/listen-ports/listen-ports.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "HTTP": 80 3 | }, { 4 | "HTTPS": 443 5 | }] -------------------------------------------------------------------------------- /46-EKS-EFS-CSI-Install/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /46-EKS-EFS-CSI-Install/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /46-EKS-EFS-CSI-Install/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /46-EKS-EFS-CSI-Install/01-ekscluster-terraform-manifests/c6-01-iam-oidc-connect-provider-variables.tf: -------------------------------------------------------------------------------- 1 | # Input Variables - AWS IAM OIDC Connect Provider 2 | 3 | 4 | # EKS OIDC ROOT CA Thumbprint - valid until 2037 5 | variable "eks_oidc_root_ca_thumbprint" { 6 | type = string 7 | description = "Thumbprint of Root CA for EKS OIDC, Valid until 2037" 8 | default = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 9 | } -------------------------------------------------------------------------------- /46-EKS-EFS-CSI-Install/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /46-EKS-EFS-CSI-Install/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /46-EKS-EFS-CSI-Install/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /46-EKS-EFS-CSI-Install/02-efs-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /46-EKS-EFS-CSI-Install/02-efs-install-terraform-manifests/c4-05-efs-outputs.tf: -------------------------------------------------------------------------------- 1 | # EFS CSI Helm Release Outputs 2 | output "efs_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.efs_csi_driver.metadata 5 | } 6 | -------------------------------------------------------------------------------- /46-EKS-EFS-CSI-Install/02-efs-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /47-EKS-EFS-Static-Provisioning/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /47-EKS-EFS-Static-Provisioning/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /47-EKS-EFS-Static-Provisioning/01-ekscluster-terraform-manifests/c6-01-iam-oidc-connect-provider-variables.tf: -------------------------------------------------------------------------------- 1 | # Input Variables - AWS IAM OIDC Connect Provider 2 | 3 | 4 | # EKS OIDC ROOT CA Thumbprint - valid until 2037 5 | variable "eks_oidc_root_ca_thumbprint" { 6 | type = string 7 | description = "Thumbprint of Root CA for EKS OIDC, Valid until 2037" 8 | default = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 9 | } -------------------------------------------------------------------------------- /47-EKS-EFS-Static-Provisioning/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /47-EKS-EFS-Static-Provisioning/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.21" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /47-EKS-EFS-Static-Provisioning/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /47-EKS-EFS-Static-Provisioning/02-efs-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /47-EKS-EFS-Static-Provisioning/02-efs-install-terraform-manifests/c4-05-efs-outputs.tf: -------------------------------------------------------------------------------- 1 | # EFS CSI Helm Release Outputs 2 | output "efs_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.efs_csi_driver.metadata 5 | } 6 | -------------------------------------------------------------------------------- /47-EKS-EFS-Static-Provisioning/02-efs-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /47-EKS-EFS-Static-Provisioning/03-efs-static-prov-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | # EKS Cluster Project 3 | data "terraform_remote_state" "eks" { 4 | backend = "s3" 5 | config = { 6 | bucket = "terraform-on-aws-eks" 7 | key = "dev/eks-cluster/terraform.tfstate" 8 | region = "us-east-1" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /47-EKS-EFS-Static-Provisioning/03-efs-static-prov-terraform-manifests/c4-02-storage-class.tf: -------------------------------------------------------------------------------- 1 | # Resource: Kubernetes Storage Class 2 | resource "kubernetes_storage_class_v1" "efs_sc" { 3 | metadata { 4 | name = "efs-sc" 5 | } 6 | storage_provisioner = "efs.csi.aws.com" 7 | } -------------------------------------------------------------------------------- /48-EKS-EFS-Dynamic-Provisioning/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /48-EKS-EFS-Dynamic-Provisioning/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /48-EKS-EFS-Dynamic-Provisioning/01-ekscluster-terraform-manifests/c6-01-iam-oidc-connect-provider-variables.tf: -------------------------------------------------------------------------------- 1 | # Input Variables - AWS IAM OIDC Connect Provider 2 | 3 | 4 | # EKS OIDC ROOT CA Thumbprint - valid until 2037 5 | variable "eks_oidc_root_ca_thumbprint" { 6 | type = string 7 | description = "Thumbprint of Root CA for EKS OIDC, Valid until 2037" 8 | default = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 9 | } -------------------------------------------------------------------------------- /48-EKS-EFS-Dynamic-Provisioning/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /48-EKS-EFS-Dynamic-Provisioning/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.21" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /48-EKS-EFS-Dynamic-Provisioning/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /48-EKS-EFS-Dynamic-Provisioning/02-efs-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /48-EKS-EFS-Dynamic-Provisioning/02-efs-install-terraform-manifests/c4-05-efs-outputs.tf: -------------------------------------------------------------------------------- 1 | # EFS CSI Helm Release Outputs 2 | output "efs_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.efs_csi_driver.metadata 5 | } 6 | -------------------------------------------------------------------------------- /48-EKS-EFS-Dynamic-Provisioning/02-efs-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /48-EKS-EFS-Dynamic-Provisioning/03-efs-dynamic-prov-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | # EKS Cluster Project 3 | data "terraform_remote_state" "eks" { 4 | backend = "s3" 5 | config = { 6 | bucket = "terraform-on-aws-eks" 7 | key = "dev/eks-cluster/terraform.tfstate" 8 | region = "us-east-1" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /49-EKS-EFS-Fargate/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /49-EKS-EFS-Fargate/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /49-EKS-EFS-Fargate/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /49-EKS-EFS-Fargate/01-ekscluster-terraform-manifests/c6-01-iam-oidc-connect-provider-variables.tf: -------------------------------------------------------------------------------- 1 | # Input Variables - AWS IAM OIDC Connect Provider 2 | 3 | 4 | # EKS OIDC ROOT CA Thumbprint - valid until 2037 5 | variable "eks_oidc_root_ca_thumbprint" { 6 | type = string 7 | description = "Thumbprint of Root CA for EKS OIDC, Valid until 2037" 8 | default = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 9 | } -------------------------------------------------------------------------------- /49-EKS-EFS-Fargate/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /49-EKS-EFS-Fargate/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /49-EKS-EFS-Fargate/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /49-EKS-EFS-Fargate/02-efs-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /49-EKS-EFS-Fargate/02-efs-install-terraform-manifests/c4-06-efs-outputs.tf: -------------------------------------------------------------------------------- 1 | # EFS CSI Helm Release Outputs 2 | output "efs_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.efs_csi_driver.metadata 5 | } 6 | -------------------------------------------------------------------------------- /49-EKS-EFS-Fargate/02-efs-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /49-EKS-EFS-Fargate/03-fargate-profiles-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } -------------------------------------------------------------------------------- /49-EKS-EFS-Fargate/03-fargate-profiles-terraform-manifests/c4-02-kubernetes-namespace.tf: -------------------------------------------------------------------------------- 1 | # Resource: Kubernetes Namespace fp-ns-app1 2 | resource "kubernetes_namespace_v1" "fp_ns_app1" { 3 | metadata { 4 | name = "fp-ns-app1" 5 | } 6 | } -------------------------------------------------------------------------------- /49-EKS-EFS-Fargate/03-fargate-profiles-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /49-EKS-EFS-Fargate/04-efs-static-prov-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | # EKS Cluster Project 3 | data "terraform_remote_state" "eks" { 4 | backend = "s3" 5 | config = { 6 | bucket = "terraform-on-aws-eks" 7 | key = "dev/eks-cluster/terraform.tfstate" 8 | region = "us-east-1" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /49-EKS-EFS-Fargate/04-efs-static-prov-terraform-manifests/c4-02-storage-class.tf: -------------------------------------------------------------------------------- 1 | # Resource: Kubernetes Storage Class 2 | resource "kubernetes_storage_class_v1" "efs_sc" { 3 | metadata { 4 | name = "efs-sc" 5 | } 6 | storage_provisioner = "efs.csi.aws.com" 7 | } -------------------------------------------------------------------------------- /49-EKS-EFS-Fargate/05-efs-dynamic-prov-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | # EKS Cluster Project 3 | data "terraform_remote_state" "eks" { 4 | backend = "s3" 5 | config = { 6 | bucket = "terraform-on-aws-eks" 7 | key = "dev/eks-cluster/terraform.tfstate" 8 | region = "us-east-1" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /50-EKS-Cluster-Autoscaler/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /50-EKS-Cluster-Autoscaler/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /50-EKS-Cluster-Autoscaler/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /50-EKS-Cluster-Autoscaler/01-ekscluster-terraform-manifests/c6-01-iam-oidc-connect-provider-variables.tf: -------------------------------------------------------------------------------- 1 | # Input Variables - AWS IAM OIDC Connect Provider 2 | 3 | 4 | # EKS OIDC ROOT CA Thumbprint - valid until 2037 5 | variable "eks_oidc_root_ca_thumbprint" { 6 | type = string 7 | description = "Thumbprint of Root CA for EKS OIDC, Valid until 2037" 8 | default = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 9 | } -------------------------------------------------------------------------------- /50-EKS-Cluster-Autoscaler/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /50-EKS-Cluster-Autoscaler/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /50-EKS-Cluster-Autoscaler/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /50-EKS-Cluster-Autoscaler/02-cluster-autoscaler-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } 10 | 11 | -------------------------------------------------------------------------------- /50-EKS-Cluster-Autoscaler/02-cluster-autoscaler-install-terraform-manifests/c4-04-cluster-autoscaler-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "cluster_autoscaler_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.cluster_autoscaler_release.metadata 5 | } 6 | -------------------------------------------------------------------------------- /50-EKS-Cluster-Autoscaler/02-cluster-autoscaler-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /51-EKS-Cluster-Autoscaler-Testing/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /51-EKS-Cluster-Autoscaler-Testing/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /51-EKS-Cluster-Autoscaler-Testing/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /51-EKS-Cluster-Autoscaler-Testing/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /51-EKS-Cluster-Autoscaler-Testing/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /51-EKS-Cluster-Autoscaler-Testing/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /51-EKS-Cluster-Autoscaler-Testing/02-cluster-autoscaler-install-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } 10 | 11 | -------------------------------------------------------------------------------- /51-EKS-Cluster-Autoscaler-Testing/02-cluster-autoscaler-install-terraform-manifests/c4-04-cluster-autoscaler-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "cluster_autoscaler_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.cluster_autoscaler_release.metadata 5 | } 6 | -------------------------------------------------------------------------------- /51-EKS-Cluster-Autoscaler-Testing/02-cluster-autoscaler-install-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /52-EKS-Horizontal-Pod-Autoscaler/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /52-EKS-Horizontal-Pod-Autoscaler/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /52-EKS-Horizontal-Pod-Autoscaler/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /52-EKS-Horizontal-Pod-Autoscaler/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /52-EKS-Horizontal-Pod-Autoscaler/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /52-EKS-Horizontal-Pod-Autoscaler/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /52-EKS-Horizontal-Pod-Autoscaler/02-k8s-metrics-server-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } 10 | 11 | -------------------------------------------------------------------------------- /52-EKS-Horizontal-Pod-Autoscaler/02-k8s-metrics-server-terraform-manifests/c4-03-metrics-server-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "metrics_server_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.metrics_server_release.metadata 5 | } 6 | -------------------------------------------------------------------------------- /52-EKS-Horizontal-Pod-Autoscaler/02-k8s-metrics-server-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /52-EKS-Horizontal-Pod-Autoscaler/03-hpa-demo-yaml/02-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: app3-nginx-cip-service 5 | labels: 6 | app: app3-nginx-cip-service 7 | spec: 8 | ports: 9 | - port: 80 10 | selector: 11 | app: app3-nginx-deployment -------------------------------------------------------------------------------- /52-EKS-Horizontal-Pod-Autoscaler/03-hpa-demo-yaml/03-hpa.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: autoscaling/v1 2 | kind: HorizontalPodAutoscaler 3 | metadata: 4 | name: hpa-app3 5 | spec: 6 | scaleTargetRef: 7 | apiVersion: apps/v1 8 | kind: Deployment 9 | name: app3-nginx-deployment 10 | minReplicas: 1 11 | maxReplicas: 10 12 | targetCPUUtilizationPercentage: 50 -------------------------------------------------------------------------------- /52-EKS-Horizontal-Pod-Autoscaler/04-hpa-demo-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = "us-east-1" 8 | } 9 | } -------------------------------------------------------------------------------- /53-EKS-Vertical-Pod-Autoscaler-Install/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /53-EKS-Vertical-Pod-Autoscaler-Install/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /53-EKS-Vertical-Pod-Autoscaler-Install/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /53-EKS-Vertical-Pod-Autoscaler-Install/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /53-EKS-Vertical-Pod-Autoscaler-Install/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /53-EKS-Vertical-Pod-Autoscaler-Install/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /53-EKS-Vertical-Pod-Autoscaler-Install/02-k8s-metrics-server-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } 10 | 11 | -------------------------------------------------------------------------------- /53-EKS-Vertical-Pod-Autoscaler-Install/02-k8s-metrics-server-terraform-manifests/c4-03-metrics-server-outputs.tf: -------------------------------------------------------------------------------- 1 | # Helm Release Outputs 2 | output "metrics_server_helm_metadata" { 3 | description = "Metadata Block outlining status of the deployed release." 4 | value = helm_release.metrics_server_release.metadata 5 | } 6 | -------------------------------------------------------------------------------- /53-EKS-Vertical-Pod-Autoscaler-Install/02-k8s-metrics-server-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /53-EKS-Vertical-Pod-Autoscaler-Install/05-vpa-demo-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } 10 | 11 | -------------------------------------------------------------------------------- /53-EKS-Vertical-Pod-Autoscaler-Install/05-vpa-demo-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /54-EKS-Monitoring-Logging-kubectl/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /54-EKS-Monitoring-Logging-kubectl/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /54-EKS-Monitoring-Logging-kubectl/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /54-EKS-Monitoring-Logging-kubectl/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /54-EKS-Monitoring-Logging-kubectl/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /54-EKS-Monitoring-Logging-kubectl/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /55-EKS-Monitoring-Logging-Terraform/01-ekscluster-terraform-manifests/c11-04-namespaces.tf: -------------------------------------------------------------------------------- 1 | # Resource: k8s namespace 2 | resource "kubernetes_namespace_v1" "k8s_dev" { 3 | metadata { 4 | name = "dev" 5 | } 6 | } -------------------------------------------------------------------------------- /55-EKS-Monitoring-Logging-Terraform/01-ekscluster-terraform-manifests/c4-06-ec2bastion-elasticip.tf: -------------------------------------------------------------------------------- 1 | # Create Elastic IP for Bastion Host 2 | # Resource - depends_on Meta-Argument 3 | resource "aws_eip" "bastion_eip" { 4 | depends_on = [ module.ec2_public, module.vpc ] 5 | instance = module.ec2_public.id 6 | vpc = true 7 | tags = local.common_tags 8 | } 9 | 10 | -------------------------------------------------------------------------------- /55-EKS-Monitoring-Logging-Terraform/01-ekscluster-terraform-manifests/c5-05-securitygroups-eks.tf: -------------------------------------------------------------------------------- 1 | # Security Group for EKS Node Group - Placeholder file 2 | -------------------------------------------------------------------------------- /55-EKS-Monitoring-Logging-Terraform/01-ekscluster-terraform-manifests/ec2bastion.auto.tfvars: -------------------------------------------------------------------------------- 1 | instance_type = "t3.micro" 2 | instance_keypair = "eks-terraform-key" -------------------------------------------------------------------------------- /55-EKS-Monitoring-Logging-Terraform/01-ekscluster-terraform-manifests/eks.auto.tfvars: -------------------------------------------------------------------------------- 1 | cluster_name = "eksdemo1" 2 | cluster_service_ipv4_cidr = "172.20.0.0/16" 3 | cluster_version = "1.22" 4 | cluster_endpoint_private_access = false 5 | cluster_endpoint_public_access = true 6 | cluster_endpoint_public_access_cidrs = ["0.0.0.0/0"] 7 | eks_oidc_root_ca_thumbprint = "9e99a48a9960b14926bb7f3b02e22da2b0ab7280" 8 | -------------------------------------------------------------------------------- /55-EKS-Monitoring-Logging-Terraform/01-ekscluster-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /55-EKS-Monitoring-Logging-Terraform/02-cloudwatchagent-fluentbit-terraform-manifests/c2-remote-state-datasource.tf: -------------------------------------------------------------------------------- 1 | # Terraform Remote State Datasource - Remote Backend AWS S3 2 | data "terraform_remote_state" "eks" { 3 | backend = "s3" 4 | config = { 5 | bucket = "terraform-on-aws-eks" 6 | key = "dev/eks-cluster/terraform.tfstate" 7 | region = var.aws_region 8 | } 9 | } 10 | 11 | -------------------------------------------------------------------------------- /55-EKS-Monitoring-Logging-Terraform/02-cloudwatchagent-fluentbit-terraform-manifests/c4-02-cwagent-namespace.tf: -------------------------------------------------------------------------------- 1 | ## Resource: Namespace 2 | resource "kubernetes_namespace_v1" "amazon_cloudwatch" { 3 | metadata { 4 | name = "amazon-cloudwatch" 5 | } 6 | } -------------------------------------------------------------------------------- /55-EKS-Monitoring-Logging-Terraform/02-cloudwatchagent-fluentbit-terraform-manifests/terraform.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | aws_region = "us-east-1" 3 | environment = "dev" 4 | business_divsion = "hr" 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /course-presentation/Terraform-on-AWS-EKS-v5.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ann-felix/terraform-on-aws-eks/f6837f5a5843814425f85a3b0d4ed3ee8a8a6688/course-presentation/Terraform-on-AWS-EKS-v5.pptx -------------------------------------------------------------------------------- /git-deploy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo "Add files and do local commit" 4 | git add . 5 | git commit -am "Welcome to StackSimplify by Kalyan Reddy Daida" 6 | 7 | echo "Pushing to Github Repository" 8 | git push 9 | --------------------------------------------------------------------------------