From 36e1cc85f97a820cc760eec7423574b6c8d51162 Mon Sep 17 00:00:00 2001 From: Harsh panwar Date: Sun, 12 Apr 2026 09:26:04 +0530 Subject: [PATCH] refactor: cloud-init files --- .../cloud-init/cloud-config.yaml.tftpl | 34 ++++++++++++++++++- .../aws-linux/cloud-init/userdata.sh.tftpl | 2 +- registry/coder/templates/aws-linux/main.tf | 16 ++------- 3 files changed, 37 insertions(+), 15 deletions(-) diff --git a/registry/coder/templates/aws-linux/cloud-init/cloud-config.yaml.tftpl b/registry/coder/templates/aws-linux/cloud-init/cloud-config.yaml.tftpl index 14da76945..78a61c261 100644 --- a/registry/coder/templates/aws-linux/cloud-init/cloud-config.yaml.tftpl +++ b/registry/coder/templates/aws-linux/cloud-init/cloud-config.yaml.tftpl @@ -4,5 +4,37 @@ cloud_final_modules: hostname: ${hostname} users: - name: ${linux_user} - sudo: ALL=(ALL) NOPASSWD:ALL + sudo: ["ALL=(ALL) NOPASSWD:ALL"] + groups: sudo shell: /bin/bash +write_files: + - path: /opt/coder/init + permissions: "0755" + encoding: b64 + content: ${init_script} + - path: /etc/systemd/system/coder-agent.service + permissions: "0644" + content: | + [Unit] + Description=Coder Agent + After=network-online.target + Wants=network-online.target + + [Service] + User=${linux_user} + ExecStart=/opt/coder/init + Restart=always + RestartSec=10 + TimeoutStopSec=90 + KillMode=process + + OOMScoreAdjust=-900 + SyslogIdentifier=coder-agent + + [Install] + WantedBy=multi-user.target +runcmd: + - mkdir -p /home/${linux_user} + - chown ${linux_user}:${linux_user} /home/${linux_user} + - systemctl enable coder-agent + - systemctl start coder-agent \ No newline at end of file diff --git a/registry/coder/templates/aws-linux/cloud-init/userdata.sh.tftpl b/registry/coder/templates/aws-linux/cloud-init/userdata.sh.tftpl index 2070bc4df..78fa2bc8c 100644 --- a/registry/coder/templates/aws-linux/cloud-init/userdata.sh.tftpl +++ b/registry/coder/templates/aws-linux/cloud-init/userdata.sh.tftpl @@ -1,2 +1,2 @@ #!/bin/bash -sudo -u '${linux_user}' sh -c '${init_script}' +# sudo -u '${linux_user}' sh -c '${init_script}' diff --git a/registry/coder/templates/aws-linux/main.tf b/registry/coder/templates/aws-linux/main.tf index 407a4a44f..4d3918813 100644 --- a/registry/coder/templates/aws-linux/main.tf +++ b/registry/coder/templates/aws-linux/main.tf @@ -232,19 +232,9 @@ data "cloudinit_config" "user_data" { content_type = "text/cloud-config" content = templatefile("${path.module}/cloud-init/cloud-config.yaml.tftpl", { - hostname = local.hostname - linux_user = local.linux_user - }) - } - - part { - filename = "userdata.sh" - content_type = "text/x-shellscript" - - content = templatefile("${path.module}/cloud-init/userdata.sh.tftpl", { - linux_user = local.linux_user - - init_script = try(coder_agent.dev[0].init_script, "") + hostname = local.hostname + linux_user = local.linux_user + init_script = base64encode(try(coder_agent.dev[0].init_script, "")) }) } }