Hacker Newsnew | past | comments | ask | show | jobs | submit | levi_b's commentslogin

We just released an operator with similar goals, but it works across clouds. More details here: https://www.pulumi.com/blog/pulumi-kubernetes-operator/


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"
  });


[disclaimer: I work at Pulumi]

The Pulumi engine uses a desired state model[1]. You can use imperative language features like loops and conditionals, but all of that gets mapped to a declarative resource graph prior to diffs/updates.

[1] https://www.pulumi.com/docs/intro/concepts/how-pulumi-works/


Thanks for sharing! Interested to try this out


Glad to hear you’re enjoying it! We just released a bunch of new k8s content/features this week that you might want to check out. [1]

(I maintain the k8s provider at Pulumi)

[1] https://www.pulumi.com/blog/crosswalk-kubernetes/


Support for C# (and other .NET languages) just landed last week[1].

(I work on the k8s provider at Pulumi)

[1] https://www.pulumi.com/blog/pulumi-dotnet-core/


Wow that is awesome, thank you! I'll have to check it out.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: