sylva-units values, restructure "workload_clusters" top-level key

We'll benefit from having a key in sylva-units that directly maps to the values of the workload-team-defs chart.

Proposed structure:

workload_clusters:
  #teams:  # was mapping to workload-team-defs.workload_cluster_teams -> removed in favor of workload_clusters.workload_team_defs.teams , breaks backwards compat
  teams_repo:  # maps to workload-teams-repo unit  (unchanged)
  # sylva_units_release_presets  -> removed, breaks backwards compat
  # sylva_units_release_preset_default  -> removed, breaks backwards compat
  workload_team_defs:   -> map to workload-team-defs values
    -> mount the schema of workload-team-defs
    # workload_cluster_teams ->   would change into "teams"
    # vault_settings:
    # sylva_units_release_presets:
    # sylva_units_release_preset_default
    # kustomization_default:
    # ...

Or even further simplified:

# workload_clusters: removed, breaks backwards compat
  #teams:  # was mapping to workload-team-defs.workload_cluster_teams -> removed in favor of workload_clusters.workload_team_defs.teams 
  # sylva_units_release_presets  
  # sylva_units_release_preset_default 

workload_teams_repo:  # maps to workload-teams-repo unit  (moved to top-level)

workload_team_defs:   #-> maps to workload-team-defs values
    #-> mount the schema of workload-team-defs

    # workload_cluster_teams ->   would change into "teams"
    # vault_settings:
    # sylva_units_release_presets:
    # sylva_units_release_preset_default
    # kustomization_default:
    # ...

The unit definition code would change into something like:

units:
  workload-team-defs
    helmrelease_spec:
      values: '{{ .Values._internal.workload_team_defs_values }}'
      
_internal:
  workload_team_defs_values: >-
    {{/* 
    merge 
    + workload_cluster_teams ...
    + 
            vault_settings:
          allowedRedirectURIs:
          - "https://{{ .Values.external_hostnames.vault }}/v1/auth/oidc/oidc/callback"
          - "https://{{ .Values.external_hostnames.vault }}/ui/vault/auth/oidc/oidc/callback"

    +         managed_clusters_settings: '{{ tuple . "mgmt_cluster_state_values" | include "interpret" }}{{ .Values.mgmt_cluster_state_values | include "set-if-defined" }}'
        
    }}

Things to do:

  • sylva-core MR to adapt sylva-units schema
    • includes adaptations to:
      • workload-team-defs unit definition
      • workload-teams-repo unit definition
  • workload-teams-defs MR to change workload_cluster_teams into teams

Note on breaking backwards compatibility:

  • this code simplification is useful and worth breaking what is done, but not yet much used in the release 1.6 version
  • we would hence propose to backport this to 1.6
Edited by Thomas Morin