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

[helm-charts]: handling of CRDs #12

Open
shanduur opened this issue Mar 14, 2024 · 3 comments
Open

[helm-charts]: handling of CRDs #12

shanduur opened this issue Mar 14, 2024 · 3 comments
Assignees
Labels
area/helm Issues or PRs related to Helm chart. kind/discussion ADR discussions.

Comments

@shanduur
Copy link
Member

shanduur commented Mar 14, 2024

Context and Problem Statement

The decision regarding how to manage Custom Resource Definitions (CRDs) within the chart structure is critical for ensuring smooth deployment and maintenance of registry-operator.

We need to determine the most efficient and user-friendly approach for handling CRDs within our Helm chart structure for the registry-operator project.

Considered Options

  • Create separate CRD chart and add it as a dependency to main chart (see Helm Best Practices - Custom Resource Definitions)

    • Pros: Modularity, Clear separation of concerns, Allows for easier management and versioning of CRDs independently.
    • Cons: Adds complexity to chart structure, Requires additional maintenance effort to manage multiple charts.
  • Add CRDs to crd directory in the main chart (see Helm Best Practices - Custom Resource Definitions)

    • Pros: Simplifies chart structure, Easier to maintain and deploy as a single unit, Ensures CRDs are tightly coupled with the main chart.
    • Cons: Limited flexibility for managing CRDs independently, Potential conflicts with other resources in the chart directory, CRDs are not automatically upgraded with chart upgrades.
  • Ask users to manually install CRDs

    • Pros: Minimal chart complexity, Provides flexibility for users to manage CRDs according to their preferences, Allows for easier integration with existing workflows.
    • Cons: Increases burden on users, Potential for errors or inconsistencies in CRD installation, Lack of control over CRD versions and updates.
@shanduur shanduur added area/helm Issues or PRs related to Helm chart. kind/discussion ADR discussions. labels Mar 14, 2024
@malgorzatadutka
Copy link
Contributor

I want a chart for the CRDs, manually installation won't be efficient.

I support separate CRDs chart, it enables granular access control for custom resources, enhancing security and compliance. Moreover, we don't have to bump up CRDs chart while only small changes in operator are made and the upgrade procedure is safer.

@purpleturtll
Copy link

purpleturtll commented Apr 3, 2024

There is also Argo CD which is using crds folder in templates folder. This enables templating and upgradeability.

That said, I think we should start with crds folder in main helm chart repo. It's the most "working out of the box" solution and Helm is natively recognizing this as place for CRDs. When we run into limitations with this approach, then we can consider other options.

@shanduur
Copy link
Member Author

And to add to those, there is also the approach of kanister operator which handles installation and management of the CRDs itself, which is a clever approach, but maybe too clever.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/helm Issues or PRs related to Helm chart. kind/discussion ADR discussions.
Projects
Status: Todo
Development

No branches or pull requests

3 participants