terraform-aws: variable driven ami selection (#10520)
* modify variables.tf to accept AMI attributes via variables * update README to guide users on utilizing variable-driven AMI configuration * fix markdown lint errorpull/10540/head
parent
3f1409d87d
commit
e52d70885e
|
@ -50,70 +50,32 @@ Example (this one assumes you are using Ubuntu)
|
||||||
ansible-playbook -i ./inventory/hosts ./cluster.yml -e ansible_user=ubuntu -b --become-user=root --flush-cache
|
ansible-playbook -i ./inventory/hosts ./cluster.yml -e ansible_user=ubuntu -b --become-user=root --flush-cache
|
||||||
```
|
```
|
||||||
|
|
||||||
***Using other distrib than Ubuntu***
|
## Using other distrib than Ubuntu***
|
||||||
If you want to use another distribution than Ubuntu 18.04 (Bionic) LTS, you can modify the search filters of the 'data "aws_ami" "distro"' in variables.tf.
|
|
||||||
|
|
||||||
For example, to use:
|
To leverage a Linux distribution other than Ubuntu 18.04 (Bionic) LTS for your Terraform configurations, you can adjust the AMI search filters within the 'data "aws_ami" "distro"' block by utilizing variables in your `terraform.tfvars` file. This approach ensures a flexible configuration that adapts to various Linux distributions without directly modifying the core Terraform files.
|
||||||
|
|
||||||
- Debian Jessie, replace 'data "aws_ami" "distro"' in variables.tf with
|
### Example Usages
|
||||||
|
|
||||||
```ini
|
- **Debian Jessie**: To configure the usage of Debian Jessie, insert the subsequent lines into your `terraform.tfvars`:
|
||||||
data "aws_ami" "distro" {
|
|
||||||
most_recent = true
|
|
||||||
|
|
||||||
filter {
|
```hcl
|
||||||
name = "name"
|
ami_name_pattern = "debian-jessie-amd64-hvm-*"
|
||||||
values = ["debian-jessie-amd64-hvm-*"]
|
ami_owners = ["379101102735"]
|
||||||
}
|
```
|
||||||
|
|
||||||
filter {
|
- **Ubuntu 16.04**: To utilize Ubuntu 16.04 instead, apply the following configuration in your `terraform.tfvars`:
|
||||||
name = "virtualization-type"
|
|
||||||
values = ["hvm"]
|
|
||||||
}
|
|
||||||
|
|
||||||
owners = ["379101102735"]
|
```hcl
|
||||||
}
|
ami_name_pattern = "ubuntu/images/hvm-ssd/ubuntu-xenial-16.04-amd64-*"
|
||||||
```
|
ami_owners = ["099720109477"]
|
||||||
|
```
|
||||||
|
|
||||||
- Ubuntu 16.04, replace 'data "aws_ami" "distro"' in variables.tf with
|
- **Centos 7**: For employing Centos 7, incorporate these lines into your `terraform.tfvars`:
|
||||||
|
|
||||||
```ini
|
```hcl
|
||||||
data "aws_ami" "distro" {
|
ami_name_pattern = "dcos-centos7-*"
|
||||||
most_recent = true
|
ami_owners = ["688023202711"]
|
||||||
|
```
|
||||||
filter {
|
|
||||||
name = "name"
|
|
||||||
values = ["ubuntu/images/hvm-ssd/ubuntu-xenial-16.04-amd64-*"]
|
|
||||||
}
|
|
||||||
|
|
||||||
filter {
|
|
||||||
name = "virtualization-type"
|
|
||||||
values = ["hvm"]
|
|
||||||
}
|
|
||||||
|
|
||||||
owners = ["099720109477"]
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
- Centos 7, replace 'data "aws_ami" "distro"' in variables.tf with
|
|
||||||
|
|
||||||
```ini
|
|
||||||
data "aws_ami" "distro" {
|
|
||||||
most_recent = true
|
|
||||||
|
|
||||||
filter {
|
|
||||||
name = "name"
|
|
||||||
values = ["dcos-centos7-*"]
|
|
||||||
}
|
|
||||||
|
|
||||||
filter {
|
|
||||||
name = "virtualization-type"
|
|
||||||
values = ["hvm"]
|
|
||||||
}
|
|
||||||
|
|
||||||
owners = ["688023202711"]
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## Connecting to Kubernetes
|
## Connecting to Kubernetes
|
||||||
|
|
||||||
|
|
|
@ -20,20 +20,38 @@ variable "aws_cluster_name" {
|
||||||
description = "Name of AWS Cluster"
|
description = "Name of AWS Cluster"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
variable "ami_name_pattern" {
|
||||||
|
description = "The name pattern to use for AMI lookup"
|
||||||
|
type = string
|
||||||
|
default = "debian-10-amd64-*"
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "ami_virtualization_type" {
|
||||||
|
description = "The virtualization type to use for AMI lookup"
|
||||||
|
type = string
|
||||||
|
default = "hvm"
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "ami_owners" {
|
||||||
|
description = "The owners to use for AMI lookup"
|
||||||
|
type = list(string)
|
||||||
|
default = ["136693071363"]
|
||||||
|
}
|
||||||
|
|
||||||
data "aws_ami" "distro" {
|
data "aws_ami" "distro" {
|
||||||
most_recent = true
|
most_recent = true
|
||||||
|
|
||||||
filter {
|
filter {
|
||||||
name = "name"
|
name = "name"
|
||||||
values = ["debian-10-amd64-*"]
|
values = [var.ami_name_pattern]
|
||||||
}
|
}
|
||||||
|
|
||||||
filter {
|
filter {
|
||||||
name = "virtualization-type"
|
name = "virtualization-type"
|
||||||
values = ["hvm"]
|
values = [var.ami_virtualization_type]
|
||||||
}
|
}
|
||||||
|
|
||||||
owners = ["136693071363"] # Debian-10
|
owners = var.ami_owners
|
||||||
}
|
}
|
||||||
|
|
||||||
//AWS VPC Variables
|
//AWS VPC Variables
|
||||||
|
|
Loading…
Reference in New Issue