This repository was archived by the owner on Nov 19, 2025. It is now read-only.

Description
Summary
The resulting user-data script from cluster up has an erroneous newline which results in an invalid user-data script being sent to the EC2 instance. Older versions of Cloud-init ignored the issue (19-?, seen in AL2), but newer versions (22.2.2, seen in AL2023) correctly parse shell-scripts, causing the provided script to fail.
Description
Bug is here:
|
joinClusterUserData := ` |
|
#!/bin/bash |
|
echo ECS_CLUSTER=%s >> /etc/ecs/ecs.config |
|
` |
Golang's MIME multipart writer already inserts a newline, leaving the resulting script with an erroneous newline at the start of the file:
https://github.com/golang/go/blob/master/src/mime/multipart/writer.go#L120
Expected Behavior
/var/lib/cloud/instance/scripts/part-001:
#!/bin/bash
echo ECS_CLUSTER=cluster-name >> /etc/ecs/ecs.config
...
Observed Behavior
/var/lib/cloud/instance/scripts/part-001:
#!/bin/bash
echo ECS_CLUSTER=cluster-name >> /etc/ecs/ecs.config
...