Skip to content

Commit

Permalink
feat(ctrl): warning when missing maven settings
Browse files Browse the repository at this point in the history
Closes #5876
  • Loading branch information
squakez committed Feb 11, 2025
1 parent 8b05f27 commit a6affb1
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 1 deletion.
2 changes: 2 additions & 0 deletions pkg/apis/camel/v1/integrationplatform_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,8 @@ const (
IntegrationPlatformConditionCamelCatalogAvailable IntegrationPlatformConditionType = "CamelCatalogAvailable"
// IntegrationPlatformConditionKameletCatalogAvailable is the condition for the availability of a Kamelet catalog.
IntegrationPlatformConditionKameletCatalogAvailable IntegrationPlatformConditionType = "KameletCatalogAvailable"
// IntegrationPlatformConditionMavenSettingsAvailable is the condition for the availability of a Maven settings configuration.
IntegrationPlatformConditionMavenSettingsAvailable IntegrationPlatformConditionType = "MavenSettingsAvailable"

// IntegrationPlatformConditionCreatedReason represents the reason that the IntegrationPlatform is created.
IntegrationPlatformConditionCreatedReason = "IntegrationPlatformCreated"
Expand Down
25 changes: 25 additions & 0 deletions pkg/controller/integrationplatform/monitor.go
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ func (action *monitorAction) Handle(ctx context.Context, platform *v1.Integratio
}
}
action.checkTraitAnnotationsDeprecatedNotice(platform)
action.checkMavenSettings(platform)
if err = action.addPlainQuarkusCatalog(ctx, catalog); err != nil {
// Only warn the user, we don't want to fail
action.L.Infof(
Expand Down Expand Up @@ -157,6 +158,30 @@ func (action *monitorAction) checkTraitAnnotationsDeprecatedNotice(platform *v1.
}
}

func (action *monitorAction) checkMavenSettings(platform *v1.IntegrationPlatform) {
if platform.Status.Build.Maven.Settings.ConfigMapKeyRef != nil ||
platform.Status.Build.Maven.Settings.SecretKeyRef != nil {
platform.Status.SetCondition(
v1.IntegrationPlatformConditionMavenSettingsAvailable,
corev1.ConditionTrue,
"MavenSettingsAvailable",
"Maven settings are available.",
)
} else {
platform.Status.SetCondition(
v1.IntegrationPlatformConditionMavenSettingsAvailable,
corev1.ConditionFalse,
"MavenSettingsAvailable",
"Maven settings are missing. You need to provide at least a Maven proxy configuration for performance reasons.",
)
action.L.Infof(
"WARN: Maven settings are missing for platform %s. "+
"You need to provide at least a Maven proxy configuration for performance reasons.",
platform.Name,
)
}
}

func specOrDefault(runtimeVersionSpec string) string {
if runtimeVersionSpec == "" {
return defaults.DefaultRuntimeVersion
Expand Down
11 changes: 10 additions & 1 deletion pkg/controller/integrationplatform/monitor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,10 @@ func TestMonitorReady(t *testing.T) {
ip.Spec.Build.Registry.Address = "1.2.3.4"
ip.Spec.Build.RuntimeVersion = "1.2.3"
ip.Spec.Build.RuntimeProvider = v1.RuntimeProviderQuarkus
ip.Spec.Build.Maven.Settings.ConfigMapKeyRef = &corev1.ConfigMapKeySelector{
Key: "k",
LocalObjectReference: corev1.LocalObjectReference{Name: "v"},
}
ip.Status.Build.RuntimeVersion = "1.2.3"
ip.Status.Build.RuntimeProvider = v1.RuntimeProviderQuarkus
ip.Status.Build.Registry.Address = "1.2.3.4"
Expand All @@ -86,8 +90,11 @@ func TestMonitorReady(t *testing.T) {
assert.NotNil(t, answer)

assert.Equal(t, v1.IntegrationPlatformPhaseReady, answer.Status.Phase)
assert.Equal(t, corev1.ConditionTrue, answer.Status.GetCondition(v1.IntegrationPlatformConditionTypeRegistryAvailable).Status)
assert.Equal(t, corev1.ConditionTrue,
answer.Status.GetCondition(v1.IntegrationPlatformConditionTypeRegistryAvailable).Status)
assert.Nil(t, answer.Status.GetCondition(v1.IntegrationPlatformConditionType("InsecureRegistryWarning")))
assert.Equal(t, corev1.ConditionTrue,
answer.Status.GetCondition(v1.IntegrationPlatformConditionMavenSettingsAvailable).Status)
assert.Equal(t, "3.2.1", answer.Status.Build.RuntimeCoreVersion)
}

Expand Down Expand Up @@ -142,6 +149,8 @@ func TestMonitorDriftDefault(t *testing.T) {
assert.NotNil(t, answer)

assert.Equal(t, v1.IntegrationPlatformPhaseReady, answer.Status.Phase)
assert.Equal(t, corev1.ConditionFalse,
answer.Status.GetCondition(v1.IntegrationPlatformConditionMavenSettingsAvailable).Status)
assert.Equal(t, "3.2.1", answer.Status.Build.RuntimeCoreVersion)
}

Expand Down

0 comments on commit a6affb1

Please sign in to comment.