We just released an operator with similar goals, but it works across clouds. More details here: https://www.pulumi.com/blog/pulumi-kubernetes-operator/
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"
});