Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Let Composable implement the Composite design pattern. #81

Open
vadimeisenbergibm opened this issue May 6, 2020 · 0 comments
Open

Let Composable implement the Composite design pattern. #81

vadimeisenbergibm opened this issue May 6, 2020 · 0 comments
Labels
enhancement New feature or request

Comments

@vadimeisenbergibm
Copy link

It could be nice if Composable could implement the Composite design pattern https://en.wikipedia.org/wiki/Composite_pattern.

I want a construct similar to the Bundle concept in Juju. Take a look at the end of this short video https://vimeo.com/206253937/6530fa911d that shows at the end examples of software applications, packaged together as bundles.

The use case: I want to be able to compose a group of Kubernetes resources into logical units, that can be further composable into other logical units. Similar to primitive types and structs in a programming language, I want to be able to compose CRDs out of existing CRDs. Consider a "microservice" Composite: A Deployment, a Service, a Config Map and a Secret. I want to specify them in one CR, together with the dependencies between them. I want the operator to create the child CRs for me, handling the dependencies dynamically.

I want to be able to add properties to the Composite itself. And then I want to compose an application: a CR that will contain multiple CRs of multiple Microservices, and will handle the dependencies between them. Optionally, I may want to create the CRs in the topological order of the dependencies. And I want to allow any property to reference any property using YAML syntax (not the JSONPath as in the examples). The Operator could translate the YAML paths into JSON paths for me, or just query the CRs directly. Some CRs could be referenced CRs (not created by the operator, but created elsewhere and only referenced by the CR - the way the Composable operator operates today).

@xvzf xvzf added the enhancement New feature or request label Jun 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants