From e1c9b6bb21e92ea6b25aab065dea49bbac6c0db9 Mon Sep 17 00:00:00 2001 From: Peter Kurfer Date: Thu, 15 Jun 2023 18:01:53 +0200 Subject: [PATCH] feat: push template from CI --- .drone.yml | 39 +++++++++++++++++++ .gitignore | 4 +- .../cloud-config.yaml.tftpl | 0 main.tf => hetzner-cloud/main.tf | 12 ++++-- 4 files changed, 50 insertions(+), 5 deletions(-) create mode 100644 .drone.yml rename cloud-config.yaml.tftpl => hetzner-cloud/cloud-config.yaml.tftpl (100%) rename main.tf => hetzner-cloud/main.tf (96%) diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..7efb795 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,39 @@ +--- +kind: pipeline +type: docker +name: default + +trigger: + event: + - push + - pull_request + - tag + +steps: + - name: Lint + image: docker.io/hashicorp/terraform + commands: + - cd hetzner-cloud/ + - terraform init + - terraform validate + + - name: Push + image: ghcr.io/coder/coder:v0.24.1 + commands: + - | + coder templates push \ + --name "$DRONE_COMMIT" \ + --directory "hetzner-cloud" \ + --variable hcloud_token="$HCLOUD_TOKEN" \ + --variable use_subdomain=true \ + --variable private_network_id="$HCLOUD_PRIVATE_NETWORK_ID" \ + --yes \ + "Hetzner-Cloud" + environment: + CODER_URL: https://ide.icb4dc0.de + CODER_SESSION_TOKEN: + from_secret: coder_token + HCLOUD_TOKEN: + from_secret: hcloud_token + HCLOUD_PRIVATE_NETWORK_ID: + from_secret: hcloud_private_network_id \ No newline at end of file diff --git a/.gitignore b/.gitignore index bd64114..29349e5 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ -*.tar \ No newline at end of file +*.tar +.terraform/ +*.lock.hcl \ No newline at end of file diff --git a/cloud-config.yaml.tftpl b/hetzner-cloud/cloud-config.yaml.tftpl similarity index 100% rename from cloud-config.yaml.tftpl rename to hetzner-cloud/cloud-config.yaml.tftpl diff --git a/main.tf b/hetzner-cloud/main.tf similarity index 96% rename from main.tf rename to hetzner-cloud/main.tf index d266474..b47c2a3 100644 --- a/main.tf +++ b/hetzner-cloud/main.tf @@ -252,13 +252,13 @@ resource "tls_private_key" "rsa_4096" { } resource "hcloud_ssh_key" "root" { - name = "coder-${data.coder_workspace.me.owner}-${data.coder_workspace.me.name}-root" + name = "coder-${data.coder_workspace.me.owner}-${data.coder_workspace.me.name}" public_key = tls_private_key.rsa_4096.public_key_openssh } resource "hcloud_server" "root" { count = data.coder_workspace.me.start_count - name = "coder-${data.coder_workspace.me.owner}-${data.coder_workspace.me.name}-root" + name = "coder-${data.coder_workspace.me.owner}-${data.coder_workspace.me.name}" server_type = data.coder_parameter.instance_type.value location = data.coder_parameter.instance_location.value image = data.coder_parameter.instance_os.value @@ -289,10 +289,14 @@ resource "hcloud_server" "root" { } resource "hcloud_volume" "root" { - name = "coder-${data.coder_workspace.me.owner}-${data.coder_workspace.me.name}-root" + name = "coder-${data.coder_workspace.me.id}-home" size = data.coder_parameter.volume_size.value format = "ext4" location = data.coder_parameter.instance_location.value + + lifecycle { + ignore_changes = all + } } resource "hcloud_volume_attachment" "root" { @@ -303,7 +307,7 @@ resource "hcloud_volume_attachment" "root" { } resource "hcloud_firewall" "root" { - name = "coder-${data.coder_workspace.me.owner}-${data.coder_workspace.me.name}-root" + name = "coder-${data.coder_workspace.me.owner_id}-${data.coder_workspace.me.id}-root" rule { direction = "in" protocol = "icmp"