Skip to content

Commit c794d7b

Browse files
committed
only apply kustomization manifest
1 parent 6d7f29e commit c794d7b

File tree

3 files changed

+25
-37
lines changed

3 files changed

+25
-37
lines changed

internal/deployment-repo/deploymentRepoManager.go

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package deploymentrepo
22

33
import (
4+
"bytes"
45
"context"
56
"fmt"
67
"io"
@@ -592,11 +593,22 @@ func (m *DeploymentRepoManager) RunKustomizeAndApply(ctx context.Context) error
592593
return fmt.Errorf("failed to convert kustomized resources to YAML: %w", err)
593594
}
594595

595-
logger.Infof("Applying kustomized resources to target cluster")
596-
err = util.ApplyManifests(ctx, m.TargetCluster, resourcesYAML)
596+
reader := bytes.NewReader(resourcesYAML)
597+
manifests, err := util.ParseManifests(reader)
597598
if err != nil {
598-
return fmt.Errorf("failed to apply kustomized resources to cluster: %w", err)
599+
return fmt.Errorf("failed to parse kustomized resources: %w", err)
599600
}
601+
602+
for _, manifest := range manifests {
603+
if manifest.GetKind() == "Kustomization" && strings.Contains(manifest.GetAPIVersion(), "kustomize.toolkit.fluxcd.io") {
604+
logger.Infof("Applying Kustomization manifest: %s/%s", manifest.GetNamespace(), manifest.GetName())
605+
err = util.ApplyUnstructuredObject(ctx, m.TargetCluster, manifest)
606+
if err != nil {
607+
return fmt.Errorf("failed to apply Kustomization manifest %s/%s: %w", manifest.GetNamespace(), manifest.GetName(), err)
608+
}
609+
}
610+
}
611+
600612
return nil
601613
}
602614

internal/deployment-repo/deploymentRepoManager_test.go

Lines changed: 6 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -121,38 +121,15 @@ func TestDeploymentRepoManager(t *testing.T) {
121121

122122
testutils.AssertDirectoriesEqualWithNormalization(t, expectedRepoDir, actualRepoDir, createGitRepoNormalizer(originDir))
123123

124-
clusterProviderTest := &unstructured.Unstructured{}
125-
clusterProviderTest.SetGroupVersionKind(schema.GroupVersionKind{
126-
Group: "openmcp.cloud",
127-
Version: "v1alpha1",
128-
Kind: "ClusterProvider",
124+
fluxKustomization := &unstructured.Unstructured{}
125+
fluxKustomization.SetGroupVersionKind(schema.GroupVersionKind{
126+
Group: "kustomize.toolkit.fluxcd.io",
127+
Version: "v1",
128+
Kind: "Kustomization",
129129
})
130130

131-
err = platformClient.Get(t.Context(), client.ObjectKey{Name: "test"}, clusterProviderTest)
131+
err = platformClient.Get(t.Context(), client.ObjectKey{Name: "bootstrap", Namespace: "default"}, fluxKustomization)
132132
assert.NoError(t, err)
133-
assert.Equal(t, "test", clusterProviderTest.GetName())
134-
135-
serviceProviderTest := &unstructured.Unstructured{}
136-
serviceProviderTest.SetGroupVersionKind(schema.GroupVersionKind{
137-
Group: "openmcp.cloud",
138-
Version: "v1alpha1",
139-
Kind: "ServiceProvider",
140-
})
141-
142-
err = platformClient.Get(t.Context(), client.ObjectKey{Name: "test"}, serviceProviderTest)
143-
assert.NoError(t, err)
144-
assert.Equal(t, "test", serviceProviderTest.GetName())
145-
146-
platformServiceTest := &unstructured.Unstructured{}
147-
platformServiceTest.SetGroupVersionKind(schema.GroupVersionKind{
148-
Group: "openmcp.cloud",
149-
Version: "v1alpha1",
150-
Kind: "PlatformService",
151-
})
152-
153-
err = platformClient.Get(t.Context(), client.ObjectKey{Name: "test"}, platformServiceTest)
154-
assert.NoError(t, err)
155-
assert.Equal(t, "test", platformServiceTest.GetName())
156133
}
157134

158135
// CreateGitRepoNormalizer creates a normalizer function that replaces dynamic git repository URLs

internal/util/kubernetes.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,25 +58,24 @@ func createCluster(kubeconfigPath, id string, scheme *runtime.Scheme) (*clusters
5858
}
5959

6060
func ApplyManifests(ctx context.Context, cluster *clusters.Cluster, manifests []byte) error {
61-
6261
// Parse manifests into unstructured objects
6362
reader := bytes.NewReader(manifests)
64-
unstructuredObjects, err := parseManifests(reader)
63+
unstructuredObjects, err := ParseManifests(reader)
6564
if err != nil {
6665
return fmt.Errorf("error parsing manifests: %w", err)
6766
}
6867

6968
// Apply objects to the platform cluster
7069
for _, u := range unstructuredObjects {
71-
if err = applyUnstructuredObject(ctx, cluster, u); err != nil {
70+
if err = ApplyUnstructuredObject(ctx, cluster, u); err != nil {
7271
return err
7372
}
7473
}
7574

7675
return nil
7776
}
7877

79-
func parseManifests(reader io.Reader) ([]*unstructured.Unstructured, error) {
78+
func ParseManifests(reader io.Reader) ([]*unstructured.Unstructured, error) {
8079
decoder := yaml.NewYAMLOrJSONDecoder(reader, 4096)
8180
var result []*unstructured.Unstructured
8281
for {
@@ -96,7 +95,7 @@ func parseManifests(reader io.Reader) ([]*unstructured.Unstructured, error) {
9695
return result, nil
9796
}
9897

99-
func applyUnstructuredObject(ctx context.Context, cluster *clusters.Cluster, u *unstructured.Unstructured) error {
98+
func ApplyUnstructuredObject(ctx context.Context, cluster *clusters.Cluster, u *unstructured.Unstructured) error {
10099
logger := log.GetLogger()
101100
objectKey := client.ObjectKeyFromObject(u)
102101
objectLogString := fmt.Sprintf("%s %s", u.GetObjectKind().GroupVersionKind().String(), objectKey.String())

0 commit comments

Comments
 (0)