From ea5c6b5f23567524751b6d50bad3a37a40ba8b19 Mon Sep 17 00:00:00 2001 From: lsviben Date: Tue, 27 Aug 2024 12:34:44 +0200 Subject: [PATCH] feat: add Validated condition to STC Signed-off-by: lsviben --- .../observability/v1alpha1/telemetry_types.go | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/apis/observability/v1alpha1/telemetry_types.go b/apis/observability/v1alpha1/telemetry_types.go index a522c8c..e679de9 100644 --- a/apis/observability/v1alpha1/telemetry_types.go +++ b/apis/observability/v1alpha1/telemetry_types.go @@ -37,6 +37,7 @@ const SharedTelemetryConfigAnnotation = "spaces.upbound.io/sharedtelemetryconfig // +kubebuilder:printcolumn:name="Selected",type="string",JSONPath=`.metadata.annotations.sharedtelemetryconfig\.internal\.spaces\.upbound\.io/selected` // +kubebuilder:printcolumn:name="Failed",type="string",JSONPath=`.metadata.annotations.sharedtelemetryconfig\.internal\.spaces\.upbound\.io/failed` // +kubebuilder:printcolumn:name="Provisioned",type="string",JSONPath=`.metadata.annotations.sharedtelemetryconfig\.internal\.spaces\.upbound\.io/provisioned` +// +kubebuilder:printcolumn:name="Validated",type="string",JSONPath=".status.conditions[?(@.type=='Validated')].status" // +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" // +kubebuilder:resource:scope=Namespaced,categories=observability,shortName=stc @@ -145,6 +146,9 @@ const ( // ConditionTypeFailed indicates that the controlplane telemetry // provisioning has failed. ConditionTypeFailed xpv1.ConditionType = "Failed" + // ConditionTypeValidated indicates if the telemetry configuration + // is valid. + ConditionTypeValidated xpv1.ConditionType = "Validated" ) const ( @@ -154,6 +158,12 @@ const ( // ReasonInvalidConfig indicates that the telemetry configuration is // invalid. ReasonInvalidConfig xpv1.ConditionReason = "InvalidTelemetryConfig" + // ReasonValidExportConfig indicates that the telemetry export configuration has + // been tested and is valid. + ReasonValidExportConfig xpv1.ConditionReason = "ValidExportConfig" + // ReasonInvalidExportConfig indicates that the telemetry export configuration has + // been tested and is invalid. + ReasonInvalidExportConfig xpv1.ConditionReason = "InvalidExportConfig" ) // SelectorConflict returns a condition that indicates the controlplane is @@ -180,6 +190,29 @@ func InvalidConfig(msg string) xpv1.Condition { } } +// InvalidExportConfig returns a condition that indicates the telemetry export +// configuration is invalid. +func InvalidExportConfig(msg string) xpv1.Condition { + return xpv1.Condition{ + Type: ConditionTypeValidated, + Status: corev1.ConditionFalse, + LastTransitionTime: metav1.Now(), + Reason: ReasonInvalidExportConfig, + Message: msg, + } +} + +// ValidExportConfig returns a condition that indicates the telemetry export +// configuration is valid. +func ValidExportConfig() xpv1.Condition { + return xpv1.Condition{ + Type: ConditionTypeValidated, + Status: corev1.ConditionTrue, + LastTransitionTime: metav1.Now(), + Reason: ReasonValidExportConfig, + } +} + var ( // SharedTelemetryConfigKind is the kind of a SharedTelemetryConfig. SharedTelemetryConfigKind = reflect.TypeOf(SharedTelemetryConfig{}).Name()