contrib/terraform-testing-infrastructure/aws/variables.tf (163 lines of code) (raw):

# # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # variable "instance_count" { default = "2" description = "The number of EC2 instances to create" nullable = false } variable "instance_type" { default = "m5.2xlarge" description = "The type of EC2 instances to create" nullable = false } variable "root_volume_gb" { default = "300" description = "The size, in GB, of the EC2 instance root volume" nullable = false } variable "software_root" { default = "/opt/accumulo-testing" description = "The full directory root where software will be installed" nullable = false } variable "security_group" { description = "The Security Group to use when creating AWS objects" nullable = false } variable "us_east_1b_subnet" { description = "The AWS subnet id for the us-east-1b subnet" nullable = false } variable "us_east_1e_subnet" { description = "The AWS subnet id for the us-east-1e subnet" nullable = false } variable "route53_zone" { description = "The name of the Route53 zone in which to create DNS addresses" nullable = false } variable "create_route53_records" { default = false description = "Indicates whether or not route53 records will be created" type = bool nullable = false } variable "private_network" { default = false description = "Indicates whether or not the user is on a private network and access to hosts should be through the private IP addresses rather than public ones." type = bool nullable = false } variable "ami_owner" { description = "The id of the AMI owner" nullable = false } variable "ami_name_pattern" { description = "The pattern of the name of the AMI to use" nullable = false } variable "authorized_ssh_keys" { description = "List of SSH keys for the developers that will log into the cluster" type = list(string) nullable = false } variable "authorized_ssh_key_files" { default = [] description = "List of SSH public key files for the developers that will log into the cluster" type = list(string) nullable = false } variable "accumulo_instance_name" { default = "accumulo-testing" type = string description = "The accumulo instance name." nullable = false } variable "accumulo_root_password" { default = null type = string description = "The password for the accumulo root user. A randomly generated password will be used if none is specified here." nullable = true } variable "zookeeper_dir" { default = "/data/zookeeper" description = "The ZooKeeper directory on each EC2 node" nullable = false } variable "hadoop_dir" { default = "/data/hadoop" description = "The Hadoop directory on each EC2 node" nullable = false } variable "accumulo_dir" { default = "/data/accumulo" description = "The Accumulo directory on each EC2 node" nullable = false } variable "maven_version" { default = "3.8.8" description = "The version of Maven to download and install" nullable = false } variable "zookeeper_version" { default = "3.8.0" description = "The version of ZooKeeper to download and install" nullable = false } variable "hadoop_version" { default = "3.3.4" description = "The version of Hadoop to download and install" nullable = false } variable "accumulo_version" { default = "2.1.0-SNAPSHOT" description = "The branch of Accumulo to download and install" nullable = false } variable "accumulo_repo" { default = "https://github.com/apache/accumulo.git" description = "URL of the Accumulo git repo" nullable = false } variable "accumulo_branch_name" { default = "main" description = "The name of the branch to build and install" nullable = false } variable "accumulo_testing_repo" { default = "https://github.com/apache/accumulo-testing.git" description = "URL of the Accumulo Testing git repo" nullable = false } variable "accumulo_testing_branch_name" { default = "main" description = "The name of the branch to build and install" nullable = false } variable "local_sources_dir" { default = "" description = "Directory on local machine that contains Maven, ZooKeeper or Hadoop binary distributions or Accumulo source tarball" nullable = true } variable "optional_cloudinit_config" { default = null type = string description = "An optional config block for the cloud-init script. If you set this, you should consider setting cloudinit_merge_type to handle merging with the default script as you need." nullable = true } variable "cloudinit_merge_type" { default = null type = string description = "Describes the merge behavior for overlapping config blocks in cloud-init." nullable = true } variable "os_distro" { description = "The distribution name of the operating system used by the AMI. Expected values: centos, rhel, or ubuntu" nullable = false validation { condition = contains(["centos", "rhel", "ubuntu"], var.os_distro) error_message = "The value of os_distro must be either 'centos', 'rhel', or 'ubuntu'." } } variable "os_version" { description = "The version of the operating system used by the AMI" nullable = false }