From d16e7b31e9aa5213032113db3c1922e46855f038 Mon Sep 17 00:00:00 2001 From: Gianluca Arbezzano Date: Thu, 10 Sep 2020 15:58:11 +0200 Subject: [PATCH] Move terraform to sandbox This is not needed here anymore. Developer can figure out their best development environment. And this is used as Setup guide for users. So `sandbox` is a better place Signed-off-by: Gianluca Arbezzano --- deploy/terraform/hardware_data.tpl | 32 ------- deploy/terraform/install_package.sh | 66 ------------- deploy/terraform/main.tf | 141 ---------------------------- deploy/terraform/outputs.tf | 15 --- deploy/terraform/variables.tf | 32 ------- deploy/terraform/versions.tf | 3 - 6 files changed, 289 deletions(-) delete mode 100644 deploy/terraform/hardware_data.tpl delete mode 100644 deploy/terraform/install_package.sh delete mode 100644 deploy/terraform/main.tf delete mode 100644 deploy/terraform/outputs.tf delete mode 100644 deploy/terraform/variables.tf delete mode 100644 deploy/terraform/versions.tf diff --git a/deploy/terraform/hardware_data.tpl b/deploy/terraform/hardware_data.tpl deleted file mode 100644 index ce13c1db0..000000000 --- a/deploy/terraform/hardware_data.tpl +++ /dev/null @@ -1,32 +0,0 @@ -{ - "id": "${id}", - "metadata": { - "facility": { - "facility_code": "${facility_code}", - "plan_slug": "${plan_slug}", - "plan_version_slug": "" - }, - "instance": {}, - "state": "" - }, - "network": { - "interfaces": [ - { - "dhcp": { - "arch": "x86_64", - "ip": { - "address": "${address}", - "gateway": "192.168.1.1", - "netmask": "255.255.255.248" - }, - "mac": "${mac}", - "uefi": false - }, - "netboot": { - "allow_pxe": true, - "allow_workflow": true - } - } - ] - } -} diff --git a/deploy/terraform/install_package.sh b/deploy/terraform/install_package.sh deleted file mode 100644 index 95e86fdd5..000000000 --- a/deploy/terraform/install_package.sh +++ /dev/null @@ -1,66 +0,0 @@ -#!/usr/bin/env bash - -YUM="yum" -APT="apt" -PIP3="pip3" -YUM_CONFIG_MGR="yum-config-manager" -WHICH_YUM=$(command -v $YUM) -WHICH_APT=$(command -v $APT) -YUM_INSTALL="$YUM install" -APT_INSTALL="$APT install" -PIP3_INSTALL="$PIP3 install" -declare -a YUM_LIST=("https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm" - "docker-ce" - "docker-ce-cli" - "epel-release" - "pass" - "python3") -declare -a APT_LIST=("docker" - "docker-compose" "pass") - -add_yum_repo() ( - $YUM_CONFIG_MGR --add-repo https://download.docker.com/linux/centos/docker-ce.repo -) - -update_yum() ( - $YUM_INSTALL -y yum-utils - add_yum_repo -) - -update_apt() ( - $APT update - DEBIAN_FRONTEND=noninteractive $APT --yes --force-yes -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade -) - -restart_docker_service() ( - service docker restart -) -install_yum_packages() ( - $YUM_INSTALL "${YUM_LIST[@]}" -y -) - -install_pip3_packages() ( - $PIP3_INSTALL docker-compose -) - -install_apt_packages() ( - $APT_INSTALL "${APT_LIST[@]}" -y -) - -main() ( - if [[ -n $WHICH_YUM ]]; then - update_yum - install_yum_packages - install_pip3_packages - restart_docker_service - elif [[ -n $WHICH_APT ]]; then - update_apt - install_apt_packages - restart_docker_service - else - echo "Unknown platform. Error while installing the required packages" - exit 1 - fi -) - -main diff --git a/deploy/terraform/main.tf b/deploy/terraform/main.tf deleted file mode 100644 index 9cd4f12f7..000000000 --- a/deploy/terraform/main.tf +++ /dev/null @@ -1,141 +0,0 @@ -# Configure the Packet Provider. -terraform { - required_providers { - packet = { - source = "packethost/packet" - version = "~> 3.0.1" - } - null = { - source = "hashicorp/null" - } - } -} - -provider "packet" { - auth_token = var.packet_api_token -} - -# Create a new VLAN in datacenter "ewr1" -resource "packet_vlan" "provisioning_vlan" { - description = "provisioning_vlan" - facility = var.facility - project_id = var.project_id -} - -# Create a device and add it to tf_project_1 -resource "packet_device" "tink_provisioner" { - hostname = "tink-provisioner" - plan = var.device_type - facilities = [var.facility] - operating_system = "ubuntu_18_04" - billing_cycle = "hourly" - project_id = var.project_id - user_data = file("install_package.sh") -} - -resource "null_resource" "tink_directory" { - connection { - type = "ssh" - user = var.ssh_user - host = packet_device.tink_provisioner.network[0].address - } - - provisioner "remote-exec" { - inline = [ - "mkdir -p /root/tink/deploy" - ] - } - - provisioner "file" { - source = "../../setup.sh" - destination = "/root/tink/setup.sh" - } - - provisioner "file" { - source = "../../generate-envrc.sh" - destination = "/root/tink/generate-envrc.sh" - } - - provisioner "file" { - source = "../../deploy" - destination = "/root/tink" - } - - provisioner "remote-exec" { - inline = [ - "chmod +x /root/tink/*.sh /root/tink/deploy/tls/*.sh" - ] - } -} - -resource "packet_device_network_type" "tink_provisioner_network_type" { - device_id = packet_device.tink_provisioner.id - type = "hybrid" -} - -# Create a device and add it to tf_project_1 -resource "packet_device" "tink_worker" { - count = var.worker_count - - hostname = "tink-worker-${count.index}" - plan = var.device_type - facilities = [var.facility] - operating_system = "custom_ipxe" - ipxe_script_url = "https://boot.netboot.xyz" - always_pxe = "true" - billing_cycle = "hourly" - project_id = var.project_id -} - -resource "packet_device_network_type" "tink_worker_network_type" { - count = var.worker_count - - device_id = packet_device.tink_worker[count.index].id - type = "layer2-individual" -} - -# Attach VLAN to provisioner -resource "packet_port_vlan_attachment" "provisioner" { - depends_on = [packet_device_network_type.tink_provisioner_network_type] - device_id = packet_device.tink_provisioner.id - port_name = "eth1" - vlan_vnid = packet_vlan.provisioning_vlan.vxlan -} - -# Attach VLAN to worker -resource "packet_port_vlan_attachment" "worker" { - count = var.worker_count - depends_on = [packet_device_network_type.tink_worker_network_type] - - device_id = packet_device.tink_worker[count.index].id - port_name = "eth0" - vlan_vnid = packet_vlan.provisioning_vlan.vxlan -} - -data "template_file" "worker_hardware_data" { - count = var.worker_count - template = file("${path.module}/hardware_data.tpl") - vars = { - id = packet_device.tink_worker[count.index].id - facility_code = packet_device.tink_worker[count.index].deployed_facility - plan_slug = packet_device.tink_worker[count.index].plan - address = "192.168.1.${count.index + 5}" - mac = packet_device.tink_worker[count.index].ports[1].mac - } -} - -resource "null_resource" "hardware_data" { - count = var.worker_count - depends_on = [null_resource.tink_directory] - - connection { - type = "ssh" - user = var.ssh_user - host = packet_device.tink_provisioner.network[0].address - } - - provisioner "file" { - content = data.template_file.worker_hardware_data[count.index].rendered - destination = "/root/tink/deploy/hardware-data-${count.index}.json" - } -} diff --git a/deploy/terraform/outputs.tf b/deploy/terraform/outputs.tf deleted file mode 100644 index 936b2ed3b..000000000 --- a/deploy/terraform/outputs.tf +++ /dev/null @@ -1,15 +0,0 @@ -output "provisioner_dns_name" { - value = "${split("-", packet_device.tink_provisioner.id)[0]}.packethost.net" -} - -output "provisioner_ip" { - value = packet_device.tink_provisioner.network[0].address -} - -output "worker_mac_addr" { - value = formatlist("%s", packet_device.tink_worker[*].ports[1].mac) -} - -output "worker_sos" { - value = formatlist("%s@sos.%s.packet.net", packet_device.tink_worker[*].id, packet_device.tink_worker[*].deployed_facility) -} diff --git a/deploy/terraform/variables.tf b/deploy/terraform/variables.tf deleted file mode 100644 index 7b369ed8d..000000000 --- a/deploy/terraform/variables.tf +++ /dev/null @@ -1,32 +0,0 @@ -variable "packet_api_token" { - description = "Packet user api token" - type = string -} - -variable "project_id" { - description = "Project ID" - type = string -} - -variable "worker_count" { - description = "Number of Workers" - type = number - default = 1 -} -variable "facility" { - description = "Packet facility to provision in" - type = string - default = "sjc1" -} - -variable "device_type" { - type = string - description = "Type of device to provision" - default = "c3.small.x86" -} - -variable "ssh_user" { - description = "Username that will be used to transfer file from your local environment to the provisioner" - type = string - default = "root" -} diff --git a/deploy/terraform/versions.tf b/deploy/terraform/versions.tf deleted file mode 100644 index 6b6318def..000000000 --- a/deploy/terraform/versions.tf +++ /dev/null @@ -1,3 +0,0 @@ -terraform { - required_version = ">= 0.13" -}