Skip to content

Document Commodore principles #36

Open

Description

@corvus-ch

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.

Activity

  1. simu commented on Apr 7, 2020

    @simu
    Member

    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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions