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

User-data script has erroneous newline breaking shebang, incompatible with Cloud-init versions on AL2023  #1167

@AdamMcAdamson

Description

@AdamMcAdamson

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
...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions