bitovi/Deploy EKS to AWS
Deploy Kubernetes Service (EKS) to AWS
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Maintainedlast commit Mar 5, 2025
- License
- MIT
Pinned Snippet
uses: bitovi/github-actions-deploy-eks@a161c8b3f82dba716f470bea28ecdceb271c3b42 # v0.1.2tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| checkout | Specifies if this action should checkout the code | no | true |
| bitops_code_only | Will run only the generation phase of BitOps, where the Terraform and Ansible code is built. | no | — |
| bitops_code_store | Store BitOps code as a GitHub artifact | no | — |
| tf_stack_destroy | Set to "true" to Destroy the stack through Terraform. | no | — |
| tf_state_file_name | Change this to be anything you want to. Carefull to be consistent here. A missing file could trigger recreation, or stepping over destruction of non-defined objects. | no | — |
| tf_state_file_name_append | Append a string to the tf-state-file. Setting this to `unique` will generate `tf-state-aws-unique`. Can co-exist with the tf_state_file_name variable. | no | — |
| tf_state_bucket | AWS S3 bucket to use for Terraform state. Defaults to `${org}-${repo}-{branch}-tf-state` | no | — |
| tf_state_bucket_destroy | Force purge and deletion of S3 bucket defined. Any file contained there will be destroyed. `tf_stack_destroy` must also be `true` | no | — |
| aws_access_key_id | AWS access key ID | no | — |
| aws_secret_access_key | AWS secret access key | no | — |
| aws_session_token | AWS session token | no | — |
| aws_default_region | AWS default region | no | us-east-1 |
| aws_resource_identifier | Set to override the AWS resource identifier for the deployment. Defaults to `${org}-{repo}-{branch}`. Use with destroy to destroy specific resources. | no | — |
| aws_additional_tags | A JSON object of additional tags that will be included on created resources. Example: `{"key1": "value1", "key2": "value2"}` | no | — |
| aws_eks_create | Define if an EKS cluster should be created | no | true |
| aws_eks_security_group_name_cluster | SG for ${var.aws_resource_identifier} - ${var.aws_eks_environment} - EKS Master | no | — |
| aws_eks_security_group_name_node | SG for ${var.aws_resource_identifier} - ${var.aws_eks_environment} - EKS Worker | no | — |
| aws_eks_environment | Specify the eks environment name. Defaults to env | no | — |
| aws_eks_management_cidr | Enter your public IP or CIDR to add it to the allowed master security groups port 443. | no | — |
| aws_eks_allowed_ports | Allow incoming traffic from this port. Accepts comma separated values, matching 1 to 1 with aws_eks_allowed_ports_cidr. | no | — |
| aws_eks_allowed_ports_cidr | Allow incoming traffic from this CIDR block. Accepts comma separated values, matching 1 to 1 with aws_eks_allowed_ports. If none defined, will allow all incoming traffic. | no | — |
| aws_eks_cluster_name | EKS Cluster name. Defaults to eks-cluster | no | — |
| aws_eks_cluster_admin_role_arn | Role ARN to grant cluster-admin permissions | no | — |
| aws_eks_cluster_log_types | EKS Log types, comma separated list. Defaults to api,audit,authenticator | no | — |
| aws_eks_cluster_log_retention_days | Days to store logs. Defaults to 7. | no | — |
| aws_eks_cluster_log_skip_destroy | Skip deletion of cluster logs if set to true | no | — |
| aws_eks_cluster_version | Specify the k8s cluster version | no | — |
| aws_eks_instance_type | enter the aws instance type | no | — |
| aws_eks_instance_ami_id | AWS AMI ID. Will default to the latest Amazon EKS Node image for the cluster version. | no | — |
| aws_eks_instance_user_data_file | Relative path in the repo for a user provided script to be executed with Terraform EKS Node creation. | no | — |
| aws_eks_ec2_key_pair | Enter the existing ec2 key pair for worker nodes. If none, one will be created. | no | — |
| aws_eks_store_keypair_sm | If true, will store the newly created keys in Secret Manager | no | — |
| aws_eks_desired_capacity | Enter the desired capacity for the worker nodes | no | — |
| aws_eks_max_size | Enter the max_size for the worker nodes | no | — |
| aws_eks_min_size | Enter the min_size for the worker nodes | no | — |
| aws_eks_additional_tags | A JSON object of additional tags that will be included on created resources. Example: `{"key1": "value1", "key2": "value2"}` | no | — |
| prometheus_enable | Specifies if this action should checkout the code for this deployment | no | — |
| grafana_enable | Specifies if this action should checkout the code for this deployment | no | — |
| loki_enable | Specifies if this action should checkout the code for this deployment | no | — |
| nginx_enable | Specifies if this action should checkout the code for this deployment | no | — |
| input_helm_charts | Relative path to the folder from project containing Helm charts to be installed. Could be uncompressed or compressed (.tgz) files. | no | — |
| aws_vpc_create | Define if a VPC should be created | no | true |
| aws_vpc_name | Set a specific name for the VPC | no | — |
| aws_vpc_cidr_block | Define Base CIDR block which is divided into subnet CIDR blocks. Defaults to 10.0.0.0/16. | no | 10.0.0.0/16 |
| aws_vpc_public_subnets | Comma separated list of public subnets. Defaults to 10.10.110.0/24 | no | 10.0.101.0/24,10.0.102.0/24 |
| aws_vpc_private_subnets | Comma separated list of private subnets. If none, none will be created. | no | 10.0.1.0/24,10.0.2.0/24 |
| aws_vpc_availability_zones | Comma separated list of availability zones. Defaults to `aws_default_region. | no | us-east-1a,us-east-1b |
| aws_vpc_id | AWS VPC ID. Accepts `vpc-###` values. | no | — |
| aws_vpc_subnet_id | Specify a Subnet to be used with the instance. If none provided, will pick one. | no | — |
| aws_vpc_enable_nat_gateway | Enables NAT gateway | no | true |
| aws_vpc_single_nat_gateway | Creates only one NAT gateway | no | true |
| aws_vpc_external_nat_ip_ids | Comma separated list of IP IDS to reuse in the NAT gateways | no | — |
| aws_vpc_additional_tags | A JSON object of additional tags that will be included on created resources. Example: `{"key1": "value1", "key2": "value2"}` | no | — |
Outputs
| name | description |
|---|---|
| aws_vpc_id | The selected VPC ID used. |
| eks_cluster_name | EKS Cluster name |
| eks_cluster_role_arn | EKS Role ARN |