Open filol opened 3 years ago
Thanks for reporting this, @filol!
Given that even we seem to keep confusing ourselves about having a function called uuid
that doesn't actually generate a UUID, my instinct here is to reverse our previous position and switch this function to generating a standards-compliant version 4 UUID.
Something that's changed since our original discussion about this is that we ended up adding a standards-compliant UUID library to Terraform's dependencies anyway, to implement the uuidv5
function, and so making the uuid
function also use that library (uuid.NewRandom
, specifically) wouldn't increase our dependency burden at all.
This does mean that the result of uuid
will, as a practical matter, be slightly less random than it was before, due to including the fixed version portions you're talking about here, but that shouldn't be a material difference for any reasonable existing use of this function, and our documentation has never promised that the result would be exactly 128 bits of random number. I think it's more intuitive to match the standard definition of what a UUID is, and thus allow folks to bring the same expectations they might make about version 4 UUIDs generated in other systems (122 bits of random).
I'd still appreciate if uuid
was UUIDv4 compliant
Terraform Version
Terraform Configuration Files
Expected Behavior
As write here : https://www.terraform.io/docs/language/functions/uuid.html
So the uuid should respect the RFC
Actual Behavior
Terraform outputs a UUID which doesn't encode the correct RFC 4122 v4 version information, for example,
800e82e5-b042-9ebd-944c-831673b7fc5d
References
It's a duplicate of this issue #18808 but the doc is still wrong