Skip to content

make cloudinit content easier to pass to instance #74

@kral2

Description

@kral2

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment

Description

Currently, cloud-init script content can be passed to an instance using var.user_data. This is in line with the provider argument, but it is not really explicit from a user perspective. Also, the content of user_data needs to be provided in the correct format: a base64-encoded string.

The proposition is to use var.cloud_init_file to provide the content of user_data to oci_core_instance. This would effectively deprecate var.user_data from the module.

Cloud-init files being mostly multi-line, it is probably more easy to restrict the input to be a file, rather than allow for any arbitrary string. Multi-line strings are possible using HEREDOC strings, but it would only add complexity without real benefits for the user.

New or Affected Resource(s)

oci_core_instance

Potential Terraform Configuration

metadata = {
...
user_data = var.cloud_init_file != "disabled" ? "${filebase64(var.cloud_init_file)}" : null
...
}
  • implement the new feature
  • add examples

References

Terraform Filebase64 Function

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions