Skip to content
This repository was archived by the owner on Nov 26, 2025. It is now read-only.
This repository was archived by the owner on Nov 26, 2025. It is now read-only.

Helm vs Timoni deployment duplication in opencloud-microservices chart #120

@michaelstingl

Description

@michaelstingl

Problem

The opencloud-microservices chart maintains two parallel deployment methods:

  1. Helm via Helmfile (deployments/helm/helmfile.yaml)
  2. Timoni via CUE (deployments/timoni/*.cue + supporting files)

Both methods deploy the same chart but require separate configuration maintenance.

Current Structure

charts/opencloud-microservices/deployments/
├── helm/
│   └── helmfile.yaml          # Helm values in YAML
└── timoni/
    ├── opencloud.cue          # Timoni module definition
    ├── runtime.cue            # Runtime configuration  
    ├── configmap.yaml         # Environment variables
    └── README.md

Issues

  1. Duplication: Same configuration values must be maintained in multiple files
  2. Different Formats: YAML (Helm) vs CUE (Timoni)
  3. Synchronization Risk: Easy to update one and forget the other
  4. Confusion: Unclear which is the "source of truth"

Example

When adding COLLABORA_DOMAIN in PR #115, it had to be added to:

  • configmap.yaml
  • runtime.cue
  • opencloud.cue
  • ❓ But not in helmfile.yaml (missed!)

Proposed Solutions

Option A: Remove Timoni

  • Most users are familiar with Helm
  • Reduces maintenance burden
  • Single source of truth

Option B: Make Timoni a thin wrapper

  • Timoni reads values from a shared file
  • No duplication of configuration

Option C: Clear documentation

  • Declare one as "primary"
  • Auto-generate the other (CI/CD)
  • Add checks to ensure synchronization

Questions for Discussion

  1. How many users actually use the Timoni deployment method?
  2. Is supporting both methods worth the maintenance overhead?
  3. If we keep both, how do we ensure they stay in sync?

cc @suse-coder (as the original contributor of the opencloud-microservices chart)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions