Yes, you can tie this knot 🙂 To bootstrap, you will need to do something like this:
1. define the infrastructure that the operator needs (i.e., a cluster);
2. define the operator installation, and a “root” Stack for it to apply;
3. in the root stack, define other Stacks as necessary to introduce apps etc.
You can choose whether the root stack points to itself (or even to the stack in 1.), or just creates other stacks.
The bit I’m not totally sure on is whether the operator is able to apply the deployment that runs itself — you may need to un-deadlock it by putting the annotation ``
pulumi.com/skipAwait: "true"`` on the operator deployment.
This WIP guide is about using the operator with Flux, but since it discusses bootstrapping, it might help:
https://github.com/pulumi/pulumi-kubernetes-operator/blob/897d9b4593a1a066c76d9c4dde64e3230ee6b91e/docs/flux.md