From 892409c38de74c3932982a44f100a729da7dfe1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Sch=C3=BCnemann?= Date: Thu, 16 Oct 2025 16:03:41 +0200 Subject: [PATCH 1/2] feat: allow the user to specify its own template input data --- internal/config/config.go | 13 ++++---- .../deployment-repo/deploymentRepoManager.go | 1 + .../deploymentRepoManager_test.go | 8 +++++ .../openmcp/extra/test-configmap.yaml | 22 +++++++++----- .../01/extra-manifests/test-configmap.yaml | 30 ++++++++++--------- 5 files changed, 46 insertions(+), 28 deletions(-) diff --git a/internal/config/config.go b/internal/config/config.go index e95513d..abf7560 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -9,12 +9,13 @@ import ( ) type BootstrapperConfig struct { - Component Component `json:"component"` - DeploymentRepository DeploymentRepository `json:"repository"` - Providers Providers `json:"providers"` - ImagePullSecrets []string `json:"imagePullSecrets"` - OpenMCPOperator OpenMCPOperator `json:"openmcpOperator"` - Environment string `json:"environment"` + Component Component `json:"component"` + DeploymentRepository DeploymentRepository `json:"repository"` + Providers Providers `json:"providers"` + ImagePullSecrets []string `json:"imagePullSecrets"` + OpenMCPOperator OpenMCPOperator `json:"openmcpOperator"` + Environment string `json:"environment"` + TemplateInput map[string]interface{} `json:"templateInput"` } type Component struct { diff --git a/internal/deployment-repo/deploymentRepoManager.go b/internal/deployment-repo/deploymentRepoManager.go index d9aed35..ad63bc7 100644 --- a/internal/deployment-repo/deploymentRepoManager.go +++ b/internal/deployment-repo/deploymentRepoManager.go @@ -229,6 +229,7 @@ func (m *DeploymentRepoManager) ApplyTemplates(ctx context.Context) error { "config": m.Config.OpenMCPOperator.ConfigParsed, } + templateInput["user"] = m.Config.TemplateInput templateInput["fluxCDEnvPath"] = "./" + EnvsDirectoryName + "/" + m.Config.Environment + "/" + FluxCDDirectoryName templateInput["gitRepoEnvBranch"] = m.Config.DeploymentRepository.RepoBranch templateInput["fluxCDResourcesPath"] = "../../../" + ResourcesDirectoryName + "/" + FluxCDDirectoryName diff --git a/internal/deployment-repo/deploymentRepoManager_test.go b/internal/deployment-repo/deploymentRepoManager_test.go index ee52092..a30b125 100644 --- a/internal/deployment-repo/deploymentRepoManager_test.go +++ b/internal/deployment-repo/deploymentRepoManager_test.go @@ -74,6 +74,14 @@ func TestDeploymentRepoManager(t *testing.T) { }, }, ImagePullSecrets: []string{"imgpull-a", "imgpull-b"}, + TemplateInput: map[string]interface{}{ + "additionalKey1": "additionalValue1", + "additionalKey2": "additionalValue2", + "myMap": map[string]interface{}{ + "key1": "value1", + "key2": "value2", + }, + }, } bootstrapConfig.SetDefaults() diff --git a/internal/deployment-repo/testdata/01/expected-repo/resources/openmcp/extra/test-configmap.yaml b/internal/deployment-repo/testdata/01/expected-repo/resources/openmcp/extra/test-configmap.yaml index 1bbea97..b1e8168 100644 --- a/internal/deployment-repo/testdata/01/expected-repo/resources/openmcp/extra/test-configmap.yaml +++ b/internal/deployment-repo/testdata/01/expected-repo/resources/openmcp/extra/test-configmap.yaml @@ -4,11 +4,17 @@ metadata: name: test-configmap namespace: default data: - key: "value" - repository: "{{OCM_REPO_URL}}" - crossplaneComponentName: "github.com/openmcp-project/openmcp/releasechannel/crossplane" - crossplaneComponentVersion: "v0.0.1" - crossplaneImage: "ghcr.io/openmcp-project/releasechannel/crossplane" - crossplaneVersions: | - - v0.0.1 - - v0.0.2 \ No newline at end of file + userProvided: | + additionalKey1: additionalValue1 + additionalKey2: additionalValue2 + myMap: + key1: value1 + key2: value2 + key: "value" + repository: "{{OCM_REPO_URL}}" + crossplaneComponentName: "github.com/openmcp-project/openmcp/releasechannel/crossplane" + crossplaneComponentVersion: "v0.0.1" + crossplaneImage: "ghcr.io/openmcp-project/releasechannel/crossplane" + crossplaneVersions: | + - v0.0.1 + - v0.0.2 \ No newline at end of file diff --git a/internal/deployment-repo/testdata/01/extra-manifests/test-configmap.yaml b/internal/deployment-repo/testdata/01/extra-manifests/test-configmap.yaml index f8ef894..1b0476b 100644 --- a/internal/deployment-repo/testdata/01/extra-manifests/test-configmap.yaml +++ b/internal/deployment-repo/testdata/01/extra-manifests/test-configmap.yaml @@ -4,17 +4,19 @@ metadata: name: test-configmap namespace: default data: - key: "value" - repository: "{{ getOCMRepository }}" - {{- $releaseChannelCv := getComponentVersionByReference "releasechannel" }} - {{- $crossplaneCv := getComponentVersionByReference $releaseChannelCv "crossplane" }} - {{- $crossplaneImageResource := getResourceFromComponentVersion $crossplaneCv "image-crossplane" }} - {{- $imageReference := dig "access" "imageReference" "none" $crossplaneImageResource }} - {{- $parsedImage := parseImage $imageReference }} - {{- $crossplaneCvMap := componentVersionAsMap $crossplaneCv }} - crossplaneComponentName: "{{ dig "component" "name" "none" $crossplaneCvMap }}" - crossplaneComponentVersion: "{{ dig "component" "version" "none" $crossplaneCvMap }}" - crossplaneImage: "{{ dig "image" "none" $parsedImage }}" - crossplaneVersions: | - {{- $crossplaneVersions := listComponentVersions $crossplaneCv }} -{{ toYaml (sortAlpha $crossplaneVersions) | indent 6 }} \ No newline at end of file + userProvided: | +{{ toYaml .Values.user | indent 4 }} + key: "value" + repository: "{{ getOCMRepository }}" + {{- $releaseChannelCv := getComponentVersionByReference "releasechannel" }} + {{- $crossplaneCv := getComponentVersionByReference $releaseChannelCv "crossplane" }} + {{- $crossplaneImageResource := getResourceFromComponentVersion $crossplaneCv "image-crossplane" }} + {{- $imageReference := dig "access" "imageReference" "none" $crossplaneImageResource }} + {{- $parsedImage := parseImage $imageReference }} + {{- $crossplaneCvMap := componentVersionAsMap $crossplaneCv }} + crossplaneComponentName: "{{ dig "component" "name" "none" $crossplaneCvMap }}" + crossplaneComponentVersion: "{{ dig "component" "version" "none" $crossplaneCvMap }}" + crossplaneImage: "{{ dig "image" "none" $parsedImage }}" + crossplaneVersions: | + {{- $crossplaneVersions := listComponentVersions $crossplaneCv }} +{{ toYaml (sortAlpha $crossplaneVersions) | indent 4 }} \ No newline at end of file From 3c116886b2fd80767d6f38723016387ca8bf564e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Sch=C3=BCnemann?= Date: Thu, 16 Oct 2025 16:05:47 +0200 Subject: [PATCH 2/2] feat: release v0.3.0 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index a00dbcc..d4dfa56 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v0.2.2-dev \ No newline at end of file +v0.3.0 \ No newline at end of file