You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by dm...@apache.org on 2019/09/25 08:49:36 UTC
[incubator-dlab] 01/01: [DLAB-edge] Created terraform scripts for
project deployment
This is an automated email from the ASF dual-hosted git repository.
dmysakovets pushed a commit to branch DLAB-edge
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
commit d37e478d850707830cc54e04aa6e2bf4054108ed
Author: Dyoma33 <de...@gmail.com>
AuthorDate: Wed Sep 25 11:49:20 2019 +0300
[DLAB-edge] Created terraform scripts for project deployment
---
.../aws/project/main/files/edge-assume-policy.json | 13 +
.../aws/project/main/files/edge-policy.json | 123 +++++++++
.../aws/project/main/files/nb-assume-policy.json | 13 +
.../aws/project/main/files/nb-policy.json | 43 ++++
.../terraform/aws/project/main/iam.tf | 108 ++++++++
.../terraform/aws/project/main/instance.tf | 50 ++++
.../terraform/aws/project/main/main.tf | 27 ++
.../terraform/aws/project/main/network.tf | 275 +++++++++++++++++++++
.../terraform/aws/project/main/variales.tf | 64 +++++
9 files changed, 716 insertions(+)
diff --git a/infrastructure-provisioning/terraform/aws/project/main/files/edge-assume-policy.json b/infrastructure-provisioning/terraform/aws/project/main/files/edge-assume-policy.json
new file mode 100644
index 0000000..680b6f8
--- /dev/null
+++ b/infrastructure-provisioning/terraform/aws/project/main/files/edge-assume-policy.json
@@ -0,0 +1,13 @@
+{
+ "Version": "2012-10-17",
+ "Statement": [
+ {
+ "Action": "sts:AssumeRole",
+ "Principal": {
+ "Service": "ec2.amazonaws.com"
+ },
+ "Effect": "Allow",
+ "Sid": ""
+ }
+ ]
+}
\ No newline at end of file
diff --git a/infrastructure-provisioning/terraform/aws/project/main/files/edge-policy.json b/infrastructure-provisioning/terraform/aws/project/main/files/edge-policy.json
new file mode 100644
index 0000000..89f28c5
--- /dev/null
+++ b/infrastructure-provisioning/terraform/aws/project/main/files/edge-policy.json
@@ -0,0 +1,123 @@
+{
+ "Version": "2012-10-17",
+ "Statement": [
+ {
+ "Action": [
+ "iam:CreateRole",
+ "iam:CreateInstanceProfile",
+ "iam:CreatePolicy",
+ "iam:AttachRolePolicy",
+ "iam:AddRoleToInstanceProfile",
+ "iam:DetachRolePolicy",
+ "iam:DeleteInstanceProfile",
+ "iam:DeletePolicy",
+ "iam:DeleteRolePolicy",
+ "iam:DeleteRole",
+ "iam:RemoveRoleFromInstanceProfile",
+ "iam:GetRole",
+ "iam:GetRolePolicy",
+ "iam:GetInstanceProfile",
+ "iam:GetPolicy",
+ "iam:GetUser",
+ "iam:ListUsers",
+ "iam:ListAccessKeys",
+ "iam:PassRole",
+ "iam:ListUserPolicies",
+ "iam:PutRolePolicy",
+ "iam:ListInstanceProfiles",
+ "iam:ListAttachedRolePolicies",
+ "iam:ListInstanceProfilesForRole",
+ "iam:ListRoles",
+ "iam:ListPolicies",
+ "iam:ListRolePolicies",
+ "iam:TagRole"
+ ],
+ "Effect": "Allow",
+ "Resource": "*"
+ },
+ {
+ "Action": [
+ "ec2:CreateVpcEndpoint",
+ "ec2:CreateSubnet",
+ "ec2:CreateTags",
+ "ec2:CreateImage",
+ "ec2:CreateRoute",
+ "ec2:DeregisterImage",
+ "ec2:DescribeImages",
+ "ec2:DescribeAddresses",
+ "ec2:AssociateAddress",
+ "ec2:DisassociateAddress",
+ "ec2:AllocateAddress",
+ "ec2:ReleaseAddress",
+ "ec2:CreateRouteTable",
+ "ec2:CreateSecurityGroup",
+ "ec2:AuthorizeSecurityGroupEgress",
+ "ec2:AuthorizeSecurityGroupIngress",
+ "ec2:AssociateRouteTable",
+ "ec2:DeleteRouteTable",
+ "ec2:DeleteSubnet",
+ "ec2:DeleteTags",
+ "ec2:DeleteSecurityGroup",
+ "ec2:DeleteSnapshot",
+ "ec2:DescribeRouteTables",
+ "ec2:DescribeSpotInstanceRequests",
+ "ec2:ModifyVpcEndpoint",
+ "ec2:RunInstances",
+ "ec2:StartInstances",
+ "ec2:StopInstances",
+ "ec2:TerminateInstances",
+ "ec2:DescribeSubnets",
+ "ec2:DescribeVpcs",
+ "ec2:DescribeSecurityGroups",
+ "ec2:DescribeInstances",
+ "ec2:DescribeInstanceStatus",
+ "ec2:ModifyInstanceAttribute",
+ "ec2:RevokeSecurityGroupEgress",
+ "ec2:RevokeSecurityGroupIngress",
+ "ec2:AuthorizeSecurityGroupEgress",
+ "ec2:AuthorizeSecurityGroupIngress"
+ ],
+ "Effect": "Allow",
+ "Resource": "*"
+ },
+ {
+ "Action": [
+ "s3:CreateBucket",
+ "s3:ListAllMyBuckets",
+ "s3:GetBucketLocation",
+ "s3:GetBucketTagging",
+ "s3:PutBucketTagging",
+ "s3:PutBucketPolicy",
+ "s3:GetBucketPolicy",
+ "s3:DeleteBucket",
+ "s3:DeleteObject",
+ "s3:GetObject",
+ "s3:ListBucket",
+ "s3:PutObject",
+ "s3:PutEncryptionConfiguration"
+ ],
+ "Effect": "Allow",
+ "Resource": "*"
+ },
+ {
+ "Action": [
+ "elasticmapreduce:AddTags",
+ "elasticmapreduce:RemoveTags",
+ "elasticmapreduce:DescribeCluster",
+ "elasticmapreduce:ListClusters",
+ "elasticmapreduce:RunJobFlow",
+ "elasticmapreduce:ListInstances",
+ "elasticmapreduce:TerminateJobFlows"
+ ],
+ "Effect": "Allow",
+ "Resource": "*"
+ },
+ {
+ "Action": [
+ "pricing:GetProducts"
+ ],
+ "Effect": "Allow",
+ "Resource": "*"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/infrastructure-provisioning/terraform/aws/project/main/files/nb-assume-policy.json b/infrastructure-provisioning/terraform/aws/project/main/files/nb-assume-policy.json
new file mode 100644
index 0000000..680b6f8
--- /dev/null
+++ b/infrastructure-provisioning/terraform/aws/project/main/files/nb-assume-policy.json
@@ -0,0 +1,13 @@
+{
+ "Version": "2012-10-17",
+ "Statement": [
+ {
+ "Action": "sts:AssumeRole",
+ "Principal": {
+ "Service": "ec2.amazonaws.com"
+ },
+ "Effect": "Allow",
+ "Sid": ""
+ }
+ ]
+}
\ No newline at end of file
diff --git a/infrastructure-provisioning/terraform/aws/project/main/files/nb-policy.json b/infrastructure-provisioning/terraform/aws/project/main/files/nb-policy.json
new file mode 100644
index 0000000..b03af44
--- /dev/null
+++ b/infrastructure-provisioning/terraform/aws/project/main/files/nb-policy.json
@@ -0,0 +1,43 @@
+{
+ "Version": "2012-10-17",
+ "Statement": [
+ {
+ "Effect": "Allow",
+ "Action": "s3:ListAllMyBuckets",
+ "Resource": "arn:aws:s3:::*"
+ },
+ {
+ "Effect": "Allow",
+ "Action": [
+ "s3:ListBucket",
+ "s3:GetBucketLocation",
+ "s3:PutBucketPolicy",
+ "s3:PutEncryptionConfiguration"
+ ],
+ "Resource": [
+ "arn:aws:s3:::${sbn}*"
+ ]
+ },
+ {
+ "Effect": "Allow",
+ "Action": [
+ "s3:GetObject",
+ "s3:HeadObject"
+ ],
+ "Resource": "arn:aws:s3:::${sbn}-ssn-bucket/*"
+ },
+ {
+ "Effect": "Allow",
+ "Action": [
+ "s3:HeadObject",
+ "s3:PutObject",
+ "s3:GetObject",
+ "s3:DeleteObject"
+ ],
+ "Resource": [
+ "arn:aws:s3:::${sbn}-bucket/*",
+ "arn:aws:s3:::${sbn}-shared-bucket/*"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/infrastructure-provisioning/terraform/aws/project/main/iam.tf b/infrastructure-provisioning/terraform/aws/project/main/iam.tf
new file mode 100644
index 0000000..42fc02b
--- /dev/null
+++ b/infrastructure-provisioning/terraform/aws/project/main/iam.tf
@@ -0,0 +1,108 @@
+# *****************************************************************************
+#
+# 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
+#
+# http://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.
+#
+# ******************************************************************************
+
+locals {
+ edge_role_name = "${var.service_base_name}-edge-role"
+ edge_role_profile = "${var.service_base_name}-edge-profile"
+ edge_policy_name = "${var.service_base_name}-edge-policy"
+ nb_role_name = "${var.service_base_name}-nb-de-Role"
+ nb_role_profile = "${var.service_base_name}-nb-Profile"
+ nb_policy_name = "${var.service_base_name}-strict_to_S3-Policy"
+}
+
+data "template_file" "edge_policy" {
+ template = file("./files/edge-policy.json")
+}
+
+data "template_file" "nb_policy" {
+ template = file("./files/nb-policy.json")
+ vars = {
+ sbn = var.service_base_name
+ }
+}
+
+#################
+### Edge node ###
+#################
+
+resource "aws_iam_role" "edge_role" {
+ name = local.edge_role_name
+ assume_role_policy = file("./files/edge-assume-policy.json")
+ tags = {
+ Name = "${local.edge_role_name}"
+ "${local.additional_tag[0]}" = local.additional_tag[1]
+ "${var.tag_resource_id}" = "${var.service_base_name}:${local.edge_role_name}"
+ "${var.service_base_name}-Tag" = local.edge_role_name
+ }
+}
+
+resource "aws_iam_instance_profile" "edge_profile" {
+ name = local.edge_role_profile
+ role = aws_iam_role.edge_role.name
+}
+
+resource "aws_iam_policy" "edge_policy" {
+ name = local.edge_policy_name
+ policy = data.template_file.edge_policy.rendered
+}
+
+resource "aws_iam_role_policy_attachment" "edge_policy_attach" {
+ role = aws_iam_role.edge_role.name
+ policy_arn = aws_iam_policy.edge_policy.arn
+}
+
+############################################################
+### Explotratory environment and computational resources ###
+############################################################
+
+resource "aws_iam_role" "nb_de_role" {
+ name = local.nb_role_name
+ assume_role_policy = file("./files/nb-assume-policy.json")
+
+ tags = {
+ Name = local.nb_role_name
+ Environment_tag = var.service_base_name
+ "${var.service_base_name}-Tag" = local.nb_role_name
+ "${local.additional_tag[0]}" = local.additional_tag[1]
+ Project_name = var.project_name
+ Project_tag = var.project_tag
+ Endpoint_tag = var.endpoint_tag
+ "user:tag" = "${var.service_base_name}:${local.nb_role_name}"
+ User_tag = var.user_tag
+ Custom_tag = var.custom_tag
+ }
+}
+
+resource "aws_iam_instance_profile" "nb_profile" {
+ name = local.nb_role_profile
+ role = aws_iam_role.nb_de_role.name
+}
+
+resource "aws_iam_policy" "nb_policy" {
+ name = local.nb_policy_name
+ description = "Strict Bucket only policy"
+ policy = data.template_file.nb_policy.rendered
+}
+
+resource "aws_iam_role_policy_attachment" "nb_policy-attach" {
+ role = aws_iam_role.nb_de_role.name
+ policy_arn = aws_iam_policy.nb_policy.arn
+}
\ No newline at end of file
diff --git a/infrastructure-provisioning/terraform/aws/project/main/instance.tf b/infrastructure-provisioning/terraform/aws/project/main/instance.tf
new file mode 100644
index 0000000..7b4cddc
--- /dev/null
+++ b/infrastructure-provisioning/terraform/aws/project/main/instance.tf
@@ -0,0 +1,50 @@
+# *****************************************************************************
+#
+# 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
+#
+# http://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.
+#
+# ******************************************************************************
+
+locals {
+ edge_instance_name = "${var.service_base_name}-edge"
+}
+
+resource "aws_instance" "edge" {
+ ami = var.ami
+ instance_type = var.instance_type
+ key_name = var.key_name
+ subnet_id = var.subnet_id
+ security_groups = [aws_security_group.edge_sg.id]
+ iam_instance_profile = aws_iam_instance_profile.edge_profile.id
+ root_block_device {
+ volume_type = "gp2"
+ volume_size = var.edge_volume_size
+ delete_on_termination = true
+ }
+ tags = {
+ Name = local.edge_instance_name
+ "${local.additional_tag[0]}" = local.additional_tag[1]
+ "${var.tag_resource_id}" = "${var.service_base_name}:${local.edge_instance_name}"
+ "${var.service_base_name}-Tag" = local.edge_instance_name
+ "Endpoint_tag" = var.endpoint_tag
+ }
+}
+
+resource "aws_eip_association" "edge_ip_assoc" {
+ instance_id = aws_instance.edge.id
+ allocation_id = aws_eip.edge_ip.id
+}
diff --git a/infrastructure-provisioning/terraform/aws/project/main/main.tf b/infrastructure-provisioning/terraform/aws/project/main/main.tf
new file mode 100644
index 0000000..6f5ac81
--- /dev/null
+++ b/infrastructure-provisioning/terraform/aws/project/main/main.tf
@@ -0,0 +1,27 @@
+# *****************************************************************************
+#
+# 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
+#
+# http://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.
+#
+# ******************************************************************************
+
+provider "aws" {
+ access_key = var.access_key_id
+ secret_key = var.secret_access_key
+ region = var.region
+}
+
diff --git a/infrastructure-provisioning/terraform/aws/project/main/network.tf b/infrastructure-provisioning/terraform/aws/project/main/network.tf
new file mode 100644
index 0000000..d1064cd
--- /dev/null
+++ b/infrastructure-provisioning/terraform/aws/project/main/network.tf
@@ -0,0 +1,275 @@
+# *****************************************************************************
+#
+# 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
+#
+# http://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.
+#
+# ******************************************************************************
+
+locals {
+ edge_sg_name = "${var.service_base_name}-${var.project_name}-edge-sg"
+ edge_ip_name = "${var.service_base_name}-${var.project_name}-edge-EIP"
+ additional_tag = split(":", var.additional_tag)
+ nb_subnet_name = "${var.service_base_name}-${var.project_name}-nb-subnet"
+ sg_name = "${var.service_base_name}-${var.project_name}-nb-sg" #sg - security group
+ sbn = var.service_base_name
+}
+
+#################
+### Edge node ###
+#################
+
+resource "aws_eip" "edge_ip" {
+ vpc = true
+ tags = {
+ Name = local.edge_ip_name
+ "${local.additional_tag[0]}" = local.additional_tag[1]
+ "${var.tag_resource_id}" = "${var.service_base_name}:${local.edge_ip_name}"
+ "${var.service_base_name}-Tag" = local.edge_ip_name
+ }
+}
+
+resource "aws_security_group" "edge_sg" {
+ name = local.edge_sg_name
+ vpc_id = var.vpc_id
+
+ ingress {
+ from_port = 0
+ protocol = "-1"
+ to_port = 0
+ cidr_blocks = [var.nb_cidr, var.edge_cidr]
+ }
+
+ ingress {
+ from_port = 22
+ to_port = 22
+ protocol = "tcp"
+ cidr_blocks = ["0.0.0.0/0"]
+ }
+
+ ingress {
+ from_port = 8080
+ to_port = 8080
+ protocol = "tcp"
+ cidr_blocks = ["0.0.0.0/0"]
+ }
+
+ ingress {
+ from_port = 80
+ to_port = 80
+ protocol = "tcp"
+ cidr_blocks = ["0.0.0.0/0"]
+ }
+
+ ingress {
+ from_port = 3128
+ to_port = 3128
+ protocol = "tcp"
+ cidr_blocks = ["0.0.0.0/0"]
+ }
+
+ egress {
+ from_port = 80
+ to_port = 80
+ protocol = "tcp"
+ cidr_blocks = ["0.0.0.0/0"]
+ }
+
+ egress {
+ from_port = 8080
+ protocol = "tcp"
+ to_port = 8080
+ cidr_blocks = [var.nb_cidr]
+ }
+
+ egress {
+ from_port = 6006
+ protocol = "tcp"
+ to_port = 6006
+ cidr_blocks = [var.nb_cidr]
+ }
+
+ egress {
+ from_port = 8085
+ protocol = "tcp"
+ to_port = 8085
+ cidr_blocks = [var.nb_cidr]
+ }
+
+ egress {
+ from_port = 18080
+ protocol = "tcp"
+ to_port = 18080
+ cidr_blocks = [var.nb_cidr]
+ }
+
+ egress {
+ from_port = 8088
+ protocol = "tcp"
+ to_port = 8088
+ cidr_blocks = [var.nb_cidr]
+ }
+
+ egress {
+ from_port = 4040
+ protocol = "tcp"
+ to_port = 4140
+ cidr_blocks = [var.nb_cidr]
+ }
+
+ egress {
+ from_port = 50070
+ protocol = "tcp"
+ to_port = 50070
+ cidr_blocks = [var.nb_cidr]
+ }
+
+ egress {
+ from_port = 8888
+ protocol = "tcp"
+ to_port = 8888
+ cidr_blocks = [var.nb_cidr]
+ }
+
+ egress {
+ from_port = 8042
+ protocol = "tcp"
+ to_port = 8042
+ cidr_blocks = [var.nb_cidr]
+ }
+
+ egress {
+ from_port = 20888
+ protocol = "tcp"
+ to_port = 20888
+ cidr_blocks = [var.nb_cidr]
+ }
+
+ egress {
+ from_port = 8787
+ protocol = "tcp"
+ to_port = 8787
+ cidr_blocks = [var.nb_cidr]
+ }
+
+ egress {
+ from_port = 8081
+ protocol = "tcp"
+ to_port = 8081
+ cidr_blocks = [var.nb_cidr]
+ }
+
+ egress {
+ from_port = 53
+ to_port = 53
+ protocol = "tcp"
+ cidr_blocks = ["0.0.0.0/0"]
+ }
+
+ egress {
+ from_port = 389
+ to_port = 389
+ protocol = "tcp"
+ cidr_blocks = ["0.0.0.0/0"]
+ }
+
+ egress {
+ from_port = 123
+ to_port = 123
+ protocol = "tcp"
+ cidr_blocks = ["0.0.0.0/0"]
+ }
+
+ egress {
+ from_port = 443
+ to_port = 443
+ protocol = "tcp"
+ cidr_blocks = ["0.0.0.0/0"]
+ }
+
+ egress {
+ from_port = 22
+ to_port = 22
+ protocol = "tcp"
+ cidr_blocks = ["0.0.0.0/0"]
+ }
+
+ tags = {
+ Name = local.edge_sg_name
+ "${local.additional_tag[0]}" = local.additional_tag[1]
+ "${var.tag_resource_id}" = "${var.service_base_name}:${local.edge_sg_name}"
+ "${var.service_base_name}-Tag" = local.edge_sg_name
+ }
+}
+
+############################################################
+### Explotratory environment and computational resources ###
+############################################################
+
+resource "aws_subnet" "private_subnet" {
+ vpc_id = var.vpc_id
+ cidr_block = var.nb_cidr
+
+ tags = {
+ Name = local.nb_subnet_name
+ "${local.sbn}-Tag" = local.nb_subnet_name
+ "${local.additional_tag[0]}" = local.additional_tag[1]
+ Project_name = var.project_name
+ Project_tag = var.project_tag
+ Endpoint_tag = var.endpoint_tag
+ "user:tag" = "${local.sbn}:${local.nb_subnet_name}"
+ User_tag = var.user_tag
+ Custom_tag = var.custom_tag
+ }
+}
+
+resource "aws_security_group" "nb-sg" {
+ name = local.sg_name
+ vpc_id = var.vpc_id
+
+ ingress {
+ from_port = 0
+ to_port = 0
+ protocol = "-1"
+ cidr_blocks = [var.nb_cidr, var.edge_cidr]
+ }
+
+ egress {
+ from_port = 0
+ to_port = 0
+ protocol = "-1"
+ cidr_blocks = ["0.0.0.0/0"]
+ }
+
+ egress {
+ from_port = 443
+ to_port = 443
+ protocol = "TCP"
+ cidr_blocks = ["0.0.0.0/0"]
+ }
+
+ tags = {
+ Name = local.sg_name
+ "${local.sbn}-Tag" = local.sg_name
+ "${local.additional_tag[0]}" = local.additional_tag[1]
+ Project_name = var.project_name
+ Project_tag = var.project_tag
+ Endpoint_tag = var.endpoint_tag
+ "user:tag" = "${local.sbn}:${local.sg_name}"
+ User_tag = var.user_tag
+ Custom_tag = var.custom_tag
+ }
+}
\ No newline at end of file
diff --git a/infrastructure-provisioning/terraform/aws/project/main/variales.tf b/infrastructure-provisioning/terraform/aws/project/main/variales.tf
new file mode 100644
index 0000000..dfa7dc3
--- /dev/null
+++ b/infrastructure-provisioning/terraform/aws/project/main/variales.tf
@@ -0,0 +1,64 @@
+# *****************************************************************************
+#
+# 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
+#
+# http://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 "access_key_id" {}
+
+variable "secret_access_key" {}
+
+variable "service_base_name" {}
+
+variable "project_name" {}
+
+variable "project_tag" {}
+
+variable "endpoint_tag" {}
+
+variable "user_tag" {}
+
+variable "custom_tag" {}
+
+variable "region" {}
+
+variable "zone" {}
+
+variable "vpc_id" {}
+
+variable "subnet_id" {}
+
+variable "nb_cidr" {}
+
+variable "edge_cidr" {}
+
+variable "ami" {}
+
+variable "instance_type" {}
+
+variable "key_name" {}
+
+variable "edge_volume_size" {}
+
+variable "additional_tag" {
+ default = "product:dlab"
+}
+
+variable "tag_resource_id" {
+ default = "user:tag"
+}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org