Closed keithmcneill closed 1 year ago
RawManifest operations are string operations and thus ultimately powerful, but also a lot easier to accidentally produce invalid yaml etc.
So personally I would add an ObjectTransform that creates or duplicates objects. One way would be to mark a "template" object with an well-known annotation and then loop over your spec values and duplicate the object, removing the "template" object and adding the cloned instances to Items. In this case I would have something like:
apiVersion: animal.farm/v1beta1
kind: FarmAnimal
metadata:
annotations:
example.com/template: animal
And then you code would add metdata.name and spec.name.
If the object is fairly simple, you could also just generate it directly in the transform code. It's likely slightly simpler if the object is indeed as simple as your example, but it has the downside that it means that any changes to the object would need a code change (instead of just a manifest change).
The Kubernetes project currently lacks enough contributors to adequately respond to all issues.
This bot triages un-triaged issues according to the following rules:
lifecycle/stale
is appliedlifecycle/stale
was applied, lifecycle/rotten
is appliedlifecycle/rotten
was applied, the issue is closedYou can:
/remove-lifecycle stale
/close
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues.
This bot triages un-triaged issues according to the following rules:
lifecycle/stale
is appliedlifecycle/stale
was applied, lifecycle/rotten
is appliedlifecycle/rotten
was applied, the issue is closedYou can:
/remove-lifecycle rotten
/close
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle rotten
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.
This bot triages issues according to the following rules:
lifecycle/stale
is appliedlifecycle/stale
was applied, lifecycle/rotten
is appliedlifecycle/rotten
was applied, the issue is closedYou can:
/reopen
/remove-lifecycle rotten
Please send feedback to sig-contributor-experience at kubernetes/community.
/close not-planned
@k8s-triage-robot: Closing this issue, marking it as "Not Planned".
Would like to create a fanout of resources from a slice:
For example lets say the incoming declarativeObject has a list of animals
I have a resource template that I would like to expand:
And create one for each animal.
One route I see is to do something like
Using this with
WithRawManifestOperation
and a function that does some template processing.I'm able to expand this.
Another route is with using
WithObjectTransform
and manually expanding the list of*manifest.Objects
.What is the preferred route to do something like this?
Thanks!