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

Document Commodore principles #36

Open
corvus-ch opened this issue Apr 2, 2020 · 1 comment
Open

Document Commodore principles #36

corvus-ch opened this issue Apr 2, 2020 · 1 comment

Comments

@corvus-ch
Copy link
Contributor

Based on a discussion I had with @tobru:

Initially, commodore component were envisioned to be self contained. For that reason, initial components take care of everything including like S3 buckets and such by using Crossplane.

We need to change the default in a way, that all external referenced can be passed in as parameters. The reasons for that are:

  • One might have Kubernetes clusters on infrastructure without Crossplane support. Adding support might not be an option.
  • One might already have those external resources and do not want Crossplane to create new ones.
@simu
Copy link
Member

simu commented Apr 7, 2020

As discussed:

  • The idea is that each component does one thing, and does it well
  • Components should not try to manage their platform-specific dependencies, but rather such dependencies should be separate components which are included iff the platform does not have the dependency (e.g. prometheus-operator) out of the box
  • Components need to support both provisioning their runtime dependencies (e.g. S3 buckets) if the required in-cluster infrastructure (e.g. Crossplane) exists and using externally provisioned runtime dependencies (e.g. S3 buckets managed by Terraform)
  • There must be a mechanism which components can use to determine whether their optional dependencies (e.g. Crossplane) are available at compile time, and configure themselves accordingly or throw an error.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants