diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d2cb6215b9641ddb7f411de680a466679b087c81..8a3a7e43a392a33ed1005b1ffa1b1f3218fdf6f8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,7 +7,8 @@ stages: - deploy variables: - IMAGE: debian-9-x86_64_hadoop_rc + IMAGE_NAME: debian-9-x86_64_hadoop_rc + IMAGE_VISIBILITY: community JOB: check PYTHONUNBUFFERED: 1 SENSITIVE: 1 @@ -34,7 +35,7 @@ terraform-single: - ".terraform/" - "*.tfstate" script: - - ./launch.sh -var type=hadoop-single -var flavor=standard.large -var n=0 -var domain=terra1 -var image=$IMAGE + - ./launch.sh -var type=hadoop-single -var flavor=standard.large -var n=0 -var domain=terra1 -var image_name=$IMAGE_NAME -var image_visibility=$IMAGE_VISIBILITY - eval $(ssh-agent -s) - ssh-add ./ssh-key.terra1.txt - ansible -i ./inventory -m synchronize -a 'use_ssh_args=yes verify_host=yes src=image/tests dest=/opt/ mode=push' master @@ -56,7 +57,7 @@ terraform-cluster: - ".terraform/" - "*.tfstate" script: - - ./launch.sh -var type=hadoop -var domain=terra2 -var image=$IMAGE + - ./launch.sh -var type=hadoop -var domain=terra2 -var image_name=$IMAGE_NAME -var image_visibility=$IMAGE_VISIBILITY - eval $(ssh-agent -s) - ssh-add ./ssh-key.terra2.txt - ansible -i ./inventory -m synchronize -a 'use_ssh_args=yes verify_host=yes src=image/tests dest=/opt/ mode=push' master diff --git a/deploy.tf b/deploy.tf index b44d887b61eb45c1becccaf409d0af5c10b89491..f3e4cb76027223e77603c53fea8870ebf19bbf11 100644 --- a/deploy.tf +++ b/deploy.tf @@ -18,6 +18,13 @@ data "openstack_compute_keypair_v2" "userkey" { name = var.ssh } +data "openstack_images_image_v2" "image" { + name = var.image_name + owner = var.image_owner + visibility = var.image_visibility + most_recent = true +} + data "template_file" "user_data_common" { count = var.n + 1 template = file("common/ctx.yaml") @@ -102,7 +109,7 @@ resource "openstack_compute_instance_v2" "server" { count = var.n + 1 name = format("%s.%s", data.template_file.user_data_common[count.index].vars.host, var.domain) flavor_name = var.flavor - image_name = var.image + image_id = var.image_id == null ? data.openstack_images_image_v2.image.id : var.image_id key_pair = var.ssh security_groups = [ openstack_networking_secgroup_v2.all.name, diff --git a/variables.tf b/variables.tf index 1c1d1ca075676085ba63543d49e7669e6731cbbe..b2800e9bd8caf44b7c36cd30313421d1aa16d97a 100644 --- a/variables.tf +++ b/variables.tf @@ -28,9 +28,24 @@ variable "flavor" { default = "standard.medium" } -variable "image" { - description = "Image name" - default = "debian-9-x86_64" +variable "image_id" { + description = "Image id (override other image search values)" + default = null +} + +variable "image_name" { + description = "Image search name" + default = "debian-9-x86_64_hadoop" +} + +variable "image_owner" { + description = "Image search owner" + default = "85c8a74440e94d4b91d0dc067308cb64" # meta-hadoop +} + +variable "image_visibility" { + description = "Image search visibility" + default = "public" } variable "image_user" {