News for hackers. Stuff that matters.
Re:New Pulumi Open Source Projects for Kubernetes by levi_b on Friday August 14, 2020 @06:46PM (#24164182)
Here’s a recent example I came across — data is set as a JSON string in an annotation, and the user wanted to use a nested value from that annotation in a later function call. Normally, this type of thing would involve some glue code in a scripting language, but it’s fairly easy to implement as a callback in Pulumi. As someone who had to do a bunch of that prior to Pulumi, I think it’s a great improvement to keep all that logic in the same place. (disclaimer: I work on Kubernetes at Pulumi)

Here’s the annotation:

  cloud.google.com/neg-status: '{"network_endpoint_groups":{"443":"k8s1-5487ae62-istio-system-istio-ingressgateway-443-811432aa"},"zones":["us-east1-d"]}'
And here’s the Pulumi code snippet in TypeScript required to parse it.

  // This defines a callback that runs once the Service is provisioned.
  const neg_status = svc.metadata.annotations.apply(x => {
      const status = x['cloud.google.com/neg-status'];
      const obj = JSON.parse(status);
      return obj["network_endpoint_groups"]["443"]
  });
  // Using the computed value from the callback to dynamically retrieve another value.
  const neg = gcp.compute.getNetworkEndpointGroup({
      name: neg_status,
      zone: "us-east1-d"
  });

There are no comments on this comment yet.