clean-engineer-75963
10/04/2019, 5:08 PMpulumi_random
provider to generate a password, then store it in a Kubernetes secret with pulumi_kubernetes
. The code looks like this:
python
password = pulumi_random.RandomPassword(password_name, length=32)
secret = corev1.Secret(
password_name,
data={"pw": password.result.apply(lambda result: base64.b64encode(result.encode("utf-8")))},
)
data
arg to the Secret, and none of them are working.password.result.apply(lambda result: "{}".format(result))
seems to work to get the result of the RandomPassword provider, but the Kubernetes provider complains that it's not valid base64.numerous-easter-93888
10/04/2019, 5:10 PMclean-engineer-75963
10/04/2019, 5:10 PMdata={"pw": password.result}
complains that the input isn't base64 encoded.numerous-easter-93888
10/04/2019, 5:12 PMclean-engineer-75963
10/04/2019, 5:12 PMerror: Plan apply failed: resource <my-resource> was not successfully created by the Kubernetes API server : Secret in version "v1" cannot be handled as a Secret: v1.Secret.ObjectMeta: v1.ObjectMeta.TypeMeta: Kind: Data: decode base64: illegal base64 data at input byte 1, error found in #10 byte of ...|3{wTr*_uh"},"kind":"|..., bigger context ...|1","data":{"pw":"z%lyta@9S}h@-dESK+Yk#=x3{wTr*_uh"},"kind":"Secret","metadata":{"annotations":{"kube|...
numerous-easter-93888
10/04/2019, 5:13 PMpassword.result.apply(lambda result: base64.b64encode(result.encode("utf-8")))
as a variable just below password
and passing that variable in?clean-engineer-75963
10/04/2019, 5:14 PMdata={"pw": password.result.apply(lambda result: base64.b64encode(result.encode("utf-8")).decode())},
numerous-easter-93888
10/04/2019, 5:15 PMclean-engineer-75963
10/04/2019, 5:16 PMSecret
has a string_data
arg provided as a convenience method that does do the encoding for you.password.result
directly to that.creamy-potato-29402
10/04/2019, 11:27 PM