diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml
index 23b7bfd41..918b0507e 100644
--- a/.github/workflows/main.yaml
+++ b/.github/workflows/main.yaml
@@ -52,8 +52,8 @@ jobs:
echo "Saved $(formatByteCount $SAVED)"
- name: Checkout code
uses: actions/checkout@v5
- - name: Restore binaries from cache
- uses: actions/cache/restore@v4
+ - name: Prepare binary cache
+ uses: actions/cache@v4
with:
path: ./bin
key: binary
@@ -103,8 +103,3 @@ jobs:
if: success() || failure()
with:
report_paths: 'report.xml'
- - name: Prepare binary cache
- uses: actions/cache@v4
- with:
- path: ./bin
- key: binary
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
index 4473f00ec..a808ad834 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/release.yaml
@@ -14,8 +14,8 @@ jobs:
steps:
- name: Checkout code
uses: actions/checkout@v5
- - name: Restore binaries from cache
- uses: actions/cache/restore@v4
+ - name: Prepare binary cache
+ uses: actions/cache@v4
with:
path: ./bin
key: binary
@@ -39,11 +39,6 @@ jobs:
gh release upload ${{github.event.release.tag_name}} ./dist/install-no-webhook.yaml#install-no-webhook.yaml --clobber || echo "fix me NOT enough security permissions"
gh release upload ${{github.event.release.tag_name}} ./dist/install-with-webhook.yaml#install-with-webhook.yaml --clobber || echo "fix me NOT enough security permissions"
gh release upload ${{github.event.release.tag_name}} ./config/crd/overlay/crd.yaml#crd.yaml --clobber || echo "fix me NOT enough security permissions"
- - name: Prepare binary cache
- uses: actions/cache@v4
- with:
- path: ./bin
- key: binary
- uses: actions/upload-artifact@v5
with:
name: olm
diff --git a/api/operator/v1/vlagent_types.go b/api/operator/v1/vlagent_types.go
index 1c5f35bb2..5e6160440 100644
--- a/api/operator/v1/vlagent_types.go
+++ b/api/operator/v1/vlagent_types.go
@@ -289,16 +289,13 @@ func (cr *VLAgent) DefaultStatusFields(vs *VLAgentStatus) {
vs.Replicas = replicaCount
}
-// AnnotationsFiltered implements build.builderOpts interface
-func (cr *VLAgent) AnnotationsFiltered() map[string]string {
- if cr.Spec.ManagedMetadata == nil {
- return nil
- }
- dst := make(map[string]string, len(cr.Spec.ManagedMetadata.Annotations))
- for k, v := range cr.Spec.ManagedMetadata.Annotations {
- dst[k] = v
+// FinalAnnotations implements build.builderOpts interface
+func (cr *VLAgent) FinalAnnotations() map[string]string {
+ var v map[string]string
+ if cr.Spec.ManagedMetadata != nil {
+ v = labels.Merge(cr.Spec.ManagedMetadata.Annotations, v)
}
- return dst
+ return v
}
// SelectorLabels returns selector labels for querying any vlagent related resources
@@ -321,14 +318,13 @@ func (cr *VLAgent) PodLabels() map[string]string {
return labels.Merge(cr.Spec.PodMetadata.Labels, lbls)
}
-// AllLabels returns global labels for all vlagent related resources
-func (cr *VLAgent) AllLabels() map[string]string {
- selectorLabels := cr.SelectorLabels()
- // fast path
- if cr.Spec.ManagedMetadata == nil {
- return selectorLabels
+// FinalLabels returns global labels for all vlagent related resources
+func (cr *VLAgent) FinalLabels() map[string]string {
+ v := cr.SelectorLabels()
+ if cr.Spec.ManagedMetadata != nil {
+ v = labels.Merge(cr.Spec.ManagedMetadata.Labels, v)
}
- return labels.Merge(selectorLabels, cr.Spec.ManagedMetadata.Labels)
+ return v
}
// PrefixedName returns name of resource with fixed prefix
diff --git a/api/operator/v1/vlcluster_types.go b/api/operator/v1/vlcluster_types.go
index 5e4073185..8fb3b8446 100644
--- a/api/operator/v1/vlcluster_types.go
+++ b/api/operator/v1/vlcluster_types.go
@@ -163,10 +163,11 @@ func (cr *VLCluster) PodAnnotations(kind vmv1beta1.ClusterComponent) map[string]
// FinalAnnotations returns global annotations to be applied by objects generate for vlcluster
func (cr *VLCluster) FinalAnnotations() map[string]string {
- if cr.Spec.ManagedMetadata == nil {
- return nil
+ var v map[string]string
+ if cr.Spec.ManagedMetadata != nil {
+ v = labels.Merge(cr.Spec.ManagedMetadata.Annotations, v)
}
- return cr.Spec.ManagedMetadata.Annotations
+ return v
}
// PrefixedName returns prefixed name for the given component kind
@@ -181,12 +182,11 @@ func (cr *VLCluster) PrefixedInternalName(kind vmv1beta1.ClusterComponent) strin
// FinalLabels adds cluster labels to the base labels and filters by prefix if needed
func (cr *VLCluster) FinalLabels(kind vmv1beta1.ClusterComponent) map[string]string {
- baseLabels := vmv1beta1.AddClusterLabels(cr.SelectorLabels(kind), "vl")
- if cr.Spec.ManagedMetadata == nil {
- // fast path
- return baseLabels
+ v := vmv1beta1.AddClusterLabels(cr.SelectorLabels(kind), "vl")
+ if cr.Spec.ManagedMetadata != nil {
+ v = labels.Merge(cr.Spec.ManagedMetadata.Labels, v)
}
- return labels.Merge(cr.Spec.ManagedMetadata.Labels, baseLabels)
+ return v
}
// UnmarshalJSON implements json.Unmarshaler interface
@@ -737,11 +737,6 @@ func (cr *VLCluster) AvailableStorageNodeIDs(requestsType string) []int32 {
return result
}
-// AnnotationsFiltered implements finalize.crdObject interface
-func (cr *VLCluster) AnnotationsFiltered() map[string]string {
- return cr.FinalAnnotations()
-}
-
// LastAppliedSpecAsPatch return last applied cluster spec as patch annotation
func (cr *VLCluster) LastAppliedSpecAsPatch() (client.Patch, error) {
return vmv1beta1.LastAppliedChangesAsPatch(cr.Spec)
diff --git a/api/operator/v1/vlsingle_types.go b/api/operator/v1/vlsingle_types.go
index 01f79a55d..5471021a2 100644
--- a/api/operator/v1/vlsingle_types.go
+++ b/api/operator/v1/vlsingle_types.go
@@ -227,15 +227,13 @@ func (cr *VLSingle) ProbeNeedLiveness() bool {
return false
}
-func (cr *VLSingle) AnnotationsFiltered() map[string]string {
- if cr.Spec.ManagedMetadata == nil {
- return nil
- }
- dst := make(map[string]string, len(cr.Spec.ManagedMetadata.Annotations))
- for k, v := range cr.Spec.ManagedMetadata.Annotations {
- dst[k] = v
+// FinalAnnotations returns annotations to be applied for created objects
+func (cr *VLSingle) FinalAnnotations() map[string]string {
+ var v map[string]string
+ if cr.Spec.ManagedMetadata != nil {
+ v = labels.Merge(cr.Spec.ManagedMetadata.Annotations, v)
}
- return dst
+ return v
}
// SelectorLabels returns unique labels for object
@@ -257,15 +255,13 @@ func (cr *VLSingle) PodLabels() map[string]string {
return labels.Merge(cr.Spec.PodMetadata.Labels, lbls)
}
-// AllLabels returns combination of selector and managed labels
-func (cr *VLSingle) AllLabels() map[string]string {
- selectorLabels := cr.SelectorLabels()
- // fast path
- if cr.Spec.ManagedMetadata == nil {
- return selectorLabels
+// FinalLabels returns combination of selector and managed labels
+func (cr *VLSingle) FinalLabels() map[string]string {
+ v := cr.SelectorLabels()
+ if cr.Spec.ManagedMetadata != nil {
+ v = labels.Merge(cr.Spec.ManagedMetadata.Labels, v)
}
-
- return labels.Merge(selectorLabels, cr.Spec.ManagedMetadata.Labels)
+ return v
}
func (cr *VLSingle) PrefixedName() string {
diff --git a/api/operator/v1/vmanomaly_types.go b/api/operator/v1/vmanomaly_types.go
index 9a3b5be65..b61eeb8fc 100644
--- a/api/operator/v1/vmanomaly_types.go
+++ b/api/operator/v1/vmanomaly_types.go
@@ -252,16 +252,13 @@ func (cr *VMAnomaly) AsOwner() metav1.OwnerReference {
}
}
-// AnnotationsFiltered returns global annotations to be applied for created objects
-func (cr *VMAnomaly) AnnotationsFiltered() map[string]string {
- if cr.Spec.ManagedMetadata == nil {
- return nil
- }
- dst := make(map[string]string, len(cr.Spec.ManagedMetadata.Annotations))
- for k, v := range cr.Spec.ManagedMetadata.Annotations {
- dst[k] = v
+// FinalAnnotations returns global annotations to be applied for created objects
+func (cr *VMAnomaly) FinalAnnotations() map[string]string {
+ var v map[string]string
+ if cr.Spec.ManagedMetadata != nil {
+ v = labels.Merge(cr.Spec.ManagedMetadata.Annotations, v)
}
- return dst
+ return v
}
// PodAnnotations returns annotations to be applied to Pod
@@ -309,18 +306,13 @@ func (cr *VMAnomaly) PodLabels() map[string]string {
return labels.Merge(cr.Spec.PodMetadata.Labels, lbls)
}
-// AllLabels returns global labels to be applied for created objects
-func (cr *VMAnomaly) AllLabels() map[string]string {
- selectorLabels := cr.SelectorLabels()
- // fast path
- if cr.Labels == nil && cr.Spec.ManagedMetadata == nil {
- return selectorLabels
- }
- var result map[string]string
+// FinalLabels returns global labels to be applied for created objects
+func (cr *VMAnomaly) FinalLabels() map[string]string {
+ v := cr.SelectorLabels()
if cr.Spec.ManagedMetadata != nil {
- result = labels.Merge(result, cr.Spec.ManagedMetadata.Labels)
+ v = labels.Merge(cr.Spec.ManagedMetadata.Labels, v)
}
- return labels.Merge(result, selectorLabels)
+ return v
}
// PrefixedName format name of the component with hard-coded prefix
diff --git a/api/operator/v1/vtcluster_types.go b/api/operator/v1/vtcluster_types.go
index 2e04bacb1..8b9b7c4d5 100644
--- a/api/operator/v1/vtcluster_types.go
+++ b/api/operator/v1/vtcluster_types.go
@@ -163,10 +163,11 @@ func (cr *VTCluster) PodAnnotations(kind vmv1beta1.ClusterComponent) map[string]
// FinalAnnotations returns global annotations to be applied by objects generate for vtcluster
func (cr *VTCluster) FinalAnnotations() map[string]string {
- if cr.Spec.ManagedMetadata == nil {
- return nil
+ var v map[string]string
+ if cr.Spec.ManagedMetadata != nil {
+ v = labels.Merge(cr.Spec.ManagedMetadata.Annotations, v)
}
- return cr.Spec.ManagedMetadata.Annotations
+ return v
}
// PrefixedName returns prefixed name for the given component kind
@@ -181,12 +182,11 @@ func (cr *VTCluster) PrefixedInternalName(kind vmv1beta1.ClusterComponent) strin
// FinalLabels adds cluster labels to the base labels and filters by prefix if needed
func (cr *VTCluster) FinalLabels(kind vmv1beta1.ClusterComponent) map[string]string {
- baseLabels := vmv1beta1.AddClusterLabels(cr.SelectorLabels(kind), "vt")
- if cr.Spec.ManagedMetadata == nil {
- // fast path
- return baseLabels
+ v := vmv1beta1.AddClusterLabels(cr.SelectorLabels(kind), "vt")
+ if cr.Spec.ManagedMetadata != nil {
+ v = labels.Merge(cr.Spec.ManagedMetadata.Labels, v)
}
- return labels.Merge(cr.Spec.ManagedMetadata.Labels, baseLabels)
+ return v
}
// UnmarshalJSON implements json.Unmarshaler interface
@@ -652,11 +652,6 @@ func (cr *VTCluster) AvailableStorageNodeIDs(requestsType string) []int32 {
return result
}
-// AnnotationsFiltered implements finalize.crdObject interface
-func (cr *VTCluster) AnnotationsFiltered() map[string]string {
- return cr.FinalAnnotations()
-}
-
// LastAppliedSpecAsPatch return last applied cluster spec as patch annotation
func (cr *VTCluster) LastAppliedSpecAsPatch() (client.Patch, error) {
return vmv1beta1.LastAppliedChangesAsPatch(cr.Spec)
diff --git a/api/operator/v1/vtsingle_types.go b/api/operator/v1/vtsingle_types.go
index ceade0bf4..5f49a1b89 100644
--- a/api/operator/v1/vtsingle_types.go
+++ b/api/operator/v1/vtsingle_types.go
@@ -231,16 +231,13 @@ func (cr *VTSingle) ProbeNeedLiveness() bool {
return false
}
-// AnnotationsFiltered returns global annotations to be applied for created objects
-func (cr *VTSingle) AnnotationsFiltered() map[string]string {
- if cr.Spec.ManagedMetadata == nil {
- return nil
- }
- dst := make(map[string]string, len(cr.Spec.ManagedMetadata.Annotations))
- for k, v := range cr.Spec.ManagedMetadata.Annotations {
- dst[k] = v
+// FinalAnnotations returns annotations to be applied for created objects
+func (cr *VTSingle) FinalAnnotations() map[string]string {
+ var v map[string]string
+ if cr.Spec.ManagedMetadata != nil {
+ v = labels.Merge(cr.Spec.ManagedMetadata.Annotations, v)
}
- return dst
+ return v
}
// SelectorLabels returns unique labels for object
@@ -262,15 +259,13 @@ func (cr *VTSingle) PodLabels() map[string]string {
return labels.Merge(cr.Spec.PodMetadata.Labels, lbls)
}
-// AllLabels returns combination of selector and managed labels
-func (cr *VTSingle) AllLabels() map[string]string {
- selectorLabels := cr.SelectorLabels()
- // fast path
- if cr.Spec.ManagedMetadata == nil {
- return selectorLabels
+// FinalLabels returns combination of selector and managed labels
+func (cr *VTSingle) FinalLabels() map[string]string {
+ v := cr.SelectorLabels()
+ if cr.Spec.ManagedMetadata != nil {
+ v = labels.Merge(cr.Spec.ManagedMetadata.Labels, v)
}
-
- return labels.Merge(selectorLabels, cr.Spec.ManagedMetadata.Labels)
+ return v
}
// PrefixedName format name of the component with hard-coded prefix
diff --git a/api/operator/v1beta1/vlogs_types.go b/api/operator/v1beta1/vlogs_types.go
index 8e23eb847..1c2d8d094 100644
--- a/api/operator/v1beta1/vlogs_types.go
+++ b/api/operator/v1beta1/vlogs_types.go
@@ -217,20 +217,6 @@ func (cr *VLogs) ProbeNeedLiveness() bool {
return false
}
-func (cr *VLogs) AnnotationsFiltered() map[string]string {
- // TODO: @f41gh7 deprecated at will be removed at v0.52.0 release
- dst := filterMapKeysByPrefixes(cr.Annotations, annotationFilterPrefixes)
- if cr.Spec.ManagedMetadata != nil {
- if dst == nil {
- dst = make(map[string]string)
- }
- for k, v := range cr.Spec.ManagedMetadata.Annotations {
- dst[k] = v
- }
- }
- return dst
-}
-
func (cr *VLogs) SelectorLabels() map[string]string {
return map[string]string{
"app.kubernetes.io/name": "vlogs",
@@ -248,21 +234,22 @@ func (cr *VLogs) PodLabels() map[string]string {
return labels.Merge(cr.Spec.PodMetadata.Labels, lbls)
}
-func (cr *VLogs) AllLabels() map[string]string {
- selectorLabels := cr.SelectorLabels()
- // fast path
- if cr.Labels == nil && cr.Spec.ManagedMetadata == nil {
- return selectorLabels
- }
- var result map[string]string
- // TODO: @f41gh7 deprecated at will be removed at v0.52.0 release
- if cr.Labels != nil {
- result = filterMapKeysByPrefixes(cr.Labels, labelFilterPrefixes)
+// FinalLabels returns combination of selector and managed labels
+func (cr *VLogs) FinalLabels() map[string]string {
+ v := cr.SelectorLabels()
+ if cr.Spec.ManagedMetadata != nil {
+ v = labels.Merge(cr.Spec.ManagedMetadata.Labels, v)
}
+ return v
+}
+
+// FinalAnnotations returns annotations to be applied for created objects
+func (cr *VLogs) FinalAnnotations() map[string]string {
+ var v map[string]string
if cr.Spec.ManagedMetadata != nil {
- result = labels.Merge(result, cr.Spec.ManagedMetadata.Labels)
+ v = labels.Merge(cr.Spec.ManagedMetadata.Annotations, v)
}
- return labels.Merge(result, selectorLabels)
+ return v
}
func (cr *VLogs) PrefixedName() string {
diff --git a/api/operator/v1beta1/vmagent_types.go b/api/operator/v1beta1/vmagent_types.go
index dce376c2e..861a6c838 100644
--- a/api/operator/v1beta1/vmagent_types.go
+++ b/api/operator/v1beta1/vmagent_types.go
@@ -690,21 +690,6 @@ func (cr *VMAgent) DefaultStatusFields(vs *VMAgentStatus) {
vs.Selector = labels.SelectorFromSet(cr.SelectorLabels()).String()
}
-func (cr *VMAgent) AnnotationsFiltered() map[string]string {
- // TODO: @f41gh7 deprecated at will be removed at v0.52.0 release
- dst := filterMapKeysByPrefixes(cr.Annotations, annotationFilterPrefixes)
- if cr.Spec.ManagedMetadata != nil {
- if dst == nil {
- dst = make(map[string]string)
- }
- for k, v := range cr.Spec.ManagedMetadata.Annotations {
- dst[k] = v
- }
- }
-
- return dst
-}
-
func (cr *VMAgent) SelectorLabels() map[string]string {
return map[string]string{
"app.kubernetes.io/name": "vmagent",
@@ -723,21 +708,22 @@ func (cr *VMAgent) PodLabels() map[string]string {
return labels.Merge(cr.Spec.PodMetadata.Labels, lbls)
}
-func (cr *VMAgent) AllLabels() map[string]string {
- selectorLabels := cr.SelectorLabels()
- // fast path
- if cr.Labels == nil && cr.Spec.ManagedMetadata == nil {
- return selectorLabels
- }
- var result map[string]string
- // TODO: @f41gh7 deprecated at will be removed at v0.52.0 release
- if cr.Labels != nil {
- result = filterMapKeysByPrefixes(cr.Labels, labelFilterPrefixes)
+// FinalLabels returns combination of selector and managed labels
+func (cr *VMAgent) FinalLabels() map[string]string {
+ v := cr.SelectorLabels()
+ if cr.Spec.ManagedMetadata != nil {
+ v = labels.Merge(cr.Spec.ManagedMetadata.Labels, v)
}
+ return v
+}
+
+// FinalAnnotations returns annotations to be applied for created objects
+func (cr *VMAgent) FinalAnnotations() map[string]string {
+ var v map[string]string
if cr.Spec.ManagedMetadata != nil {
- result = labels.Merge(result, cr.Spec.ManagedMetadata.Labels)
+ v = labels.Merge(cr.Spec.ManagedMetadata.Annotations, v)
}
- return labels.Merge(result, selectorLabels)
+ return v
}
func (cr *VMAgent) PrefixedName() string {
diff --git a/api/operator/v1beta1/vmalert_types.go b/api/operator/v1beta1/vmalert_types.go
index ceda7f545..2d0687cb0 100644
--- a/api/operator/v1beta1/vmalert_types.go
+++ b/api/operator/v1beta1/vmalert_types.go
@@ -350,20 +350,6 @@ func (cr *VMAlert) PodAnnotations() map[string]string {
return annotations
}
-func (cr *VMAlert) AnnotationsFiltered() map[string]string {
- // TODO: @f41gh7 deprecated at will be removed at v0.52.0 release
- dst := filterMapKeysByPrefixes(cr.Annotations, annotationFilterPrefixes)
- if cr.Spec.ManagedMetadata != nil {
- if dst == nil {
- dst = make(map[string]string)
- }
- for k, v := range cr.Spec.ManagedMetadata.Annotations {
- dst[k] = v
- }
- }
- return dst
-}
-
// Validate checks VMAlert spec
func (cr *VMAlert) Validate() error {
if MustSkipCRValidation(cr) {
@@ -422,21 +408,22 @@ func (cr *VMAlert) PodLabels() map[string]string {
return labels.Merge(cr.Spec.PodMetadata.Labels, lbls)
}
-func (cr *VMAlert) AllLabels() map[string]string {
- selectorLabels := cr.SelectorLabels()
- // fast path
- if cr.Labels == nil && cr.Spec.ManagedMetadata == nil {
- return selectorLabels
- }
- var result map[string]string
- // TODO: @f41gh7 deprecated at will be removed at v0.52.0 release
- if cr.Labels != nil {
- result = filterMapKeysByPrefixes(cr.Labels, labelFilterPrefixes)
+// FinalLabels returns combination of selector and managed labels
+func (cr *VMAlert) FinalLabels() map[string]string {
+ v := cr.SelectorLabels()
+ if cr.Spec.ManagedMetadata != nil {
+ v = labels.Merge(cr.Spec.ManagedMetadata.Labels, v)
}
+ return v
+}
+
+// FinalAnnotations returns annotations to be applied for created objects
+func (cr *VMAlert) FinalAnnotations() map[string]string {
+ var v map[string]string
if cr.Spec.ManagedMetadata != nil {
- result = labels.Merge(result, cr.Spec.ManagedMetadata.Labels)
+ v = labels.Merge(cr.Spec.ManagedMetadata.Annotations, v)
}
- return labels.Merge(result, selectorLabels)
+ return v
}
func (cr *VMAlert) PrefixedName() string {
diff --git a/api/operator/v1beta1/vmalertmanager_types.go b/api/operator/v1beta1/vmalertmanager_types.go
index 8b07181cf..9badcfd41 100644
--- a/api/operator/v1beta1/vmalertmanager_types.go
+++ b/api/operator/v1beta1/vmalertmanager_types.go
@@ -291,20 +291,6 @@ func (cr *VMAlertmanager) PodAnnotations() map[string]string {
return annotations
}
-func (cr *VMAlertmanager) AnnotationsFiltered() map[string]string {
- // TODO: @f41gh7 deprecated at will be removed at v0.52.0 release
- dst := filterMapKeysByPrefixes(cr.Annotations, annotationFilterPrefixes)
- if cr.Spec.ManagedMetadata != nil {
- if dst == nil {
- dst = make(map[string]string)
- }
- for k, v := range cr.Spec.ManagedMetadata.Annotations {
- dst[k] = v
- }
- }
- return dst
-}
-
func (cr *VMAlertmanager) SelectorLabels() map[string]string {
return map[string]string{
"app.kubernetes.io/name": "vmalertmanager",
@@ -322,21 +308,22 @@ func (cr *VMAlertmanager) PodLabels() map[string]string {
return labels.Merge(cr.Spec.PodMetadata.Labels, lbls)
}
-func (cr *VMAlertmanager) AllLabels() map[string]string {
- selectorLabels := cr.SelectorLabels()
- // fast path
- if cr.Labels == nil && cr.Spec.ManagedMetadata == nil {
- return selectorLabels
- }
- var result map[string]string
- // TODO: @f41gh7 deprecated at will be removed at v0.52.0 release
- if cr.Labels != nil {
- result = filterMapKeysByPrefixes(cr.Labels, labelFilterPrefixes)
+// FinalLabels returns combination of selector and managed labels
+func (cr *VMAlertmanager) FinalLabels() map[string]string {
+ v := cr.SelectorLabels()
+ if cr.Spec.ManagedMetadata != nil {
+ v = labels.Merge(cr.Spec.ManagedMetadata.Labels, v)
}
+ return v
+}
+
+// FinalAnnotations returns annotations to be applied for created objects
+func (cr *VMAlertmanager) FinalAnnotations() map[string]string {
+ var v map[string]string
if cr.Spec.ManagedMetadata != nil {
- result = labels.Merge(result, cr.Spec.ManagedMetadata.Labels)
+ v = labels.Merge(cr.Spec.ManagedMetadata.Annotations, v)
}
- return labels.Merge(result, selectorLabels)
+ return v
}
// ConfigSecretName returns configuration secret name for alertmanager
diff --git a/api/operator/v1beta1/vmauth_types.go b/api/operator/v1beta1/vmauth_types.go
index 870973d54..d0716e6eb 100644
--- a/api/operator/v1beta1/vmauth_types.go
+++ b/api/operator/v1beta1/vmauth_types.go
@@ -581,15 +581,6 @@ func (*VMAuth) ProbeNeedLiveness() bool {
return true
}
-// FinalLabels adds cluster labels to the base labels and filters by prefix if needed
-func (cr *VMAuth) FinalLabels(selectorLabels map[string]string) map[string]string {
- if cr.Spec.ManagedMetadata == nil {
- // fast path
- return selectorLabels
- }
- return labels.Merge(cr.Spec.ManagedMetadata.Labels, selectorLabels)
-}
-
// +kubebuilder:object:root=true
// VMAuthList contains a list of VMAuth
@@ -621,20 +612,6 @@ func (cr *VMAuth) PodAnnotations() map[string]string {
return annotations
}
-func (cr *VMAuth) AnnotationsFiltered() map[string]string {
- // TODO: @f41gh7 deprecated at will be removed at v0.52.0 release
- dst := filterMapKeysByPrefixes(cr.Annotations, annotationFilterPrefixes)
- if cr.Spec.ManagedMetadata != nil {
- if dst == nil {
- dst = make(map[string]string)
- }
- for k, v := range cr.Spec.ManagedMetadata.Annotations {
- dst[k] = v
- }
- }
- return dst
-}
-
func (cr *VMAuth) SelectorLabels() map[string]string {
return map[string]string{
"app.kubernetes.io/name": "vmauth",
@@ -652,21 +629,22 @@ func (cr *VMAuth) PodLabels() map[string]string {
return labels.Merge(cr.Spec.PodMetadata.Labels, lbls)
}
-func (cr *VMAuth) AllLabels() map[string]string {
- selectorLabels := cr.SelectorLabels()
- // fast path
- if cr.Labels == nil && cr.Spec.ManagedMetadata == nil {
- return selectorLabels
- }
- var result map[string]string
- // TODO: @f41gh7 deprecated at will be removed at v0.52.0 release
- if cr.Labels != nil {
- result = filterMapKeysByPrefixes(cr.Labels, labelFilterPrefixes)
+// FinalLabels returns combination of selector and managed labels
+func (cr *VMAuth) FinalLabels() map[string]string {
+ v := cr.SelectorLabels()
+ if cr.Spec.ManagedMetadata != nil {
+ v = labels.Merge(cr.Spec.ManagedMetadata.Labels, v)
}
+ return v
+}
+
+// FinalAnnotations returns annotations to be applied for created objects
+func (cr *VMAuth) FinalAnnotations() map[string]string {
+ var v map[string]string
if cr.Spec.ManagedMetadata != nil {
- result = labels.Merge(result, cr.Spec.ManagedMetadata.Labels)
+ v = labels.Merge(cr.Spec.ManagedMetadata.Annotations, v)
}
- return labels.Merge(result, selectorLabels)
+ return v
}
func (cr *VMAuth) PrefixedName() string {
diff --git a/api/operator/v1beta1/vmcluster_types.go b/api/operator/v1beta1/vmcluster_types.go
index 9eefce0bd..62c6a5ce0 100644
--- a/api/operator/v1beta1/vmcluster_types.go
+++ b/api/operator/v1beta1/vmcluster_types.go
@@ -165,14 +165,6 @@ func (cr *VMCluster) PodAnnotations(kind ClusterComponent) map[string]string {
return podMetadata.Annotations
}
-// FinalAnnotations returns global annotations to be applied by objects generate for vmcluster
-func (cr *VMCluster) FinalAnnotations() map[string]string {
- if cr.Spec.ManagedMetadata == nil {
- return nil
- }
- return cr.Spec.ManagedMetadata.Annotations
-}
-
// PrefixedName returns prefixed name for the given component kind
func (cr *VMCluster) PrefixedName(kind ClusterComponent) string {
return ClusterPrefixedName(kind, cr.Name, "vm", false)
@@ -245,9 +237,7 @@ func (cr *VMCluster) GetStatus() *VMClusterStatus {
}
// DefaultStatusFields implements reconcile.ObjectWithDeepCopyAndStatus interface
-func (cr *VMCluster) DefaultStatusFields(vs *VMClusterStatus) {
- vs.LegacyStatus = vs.UpdateStatus
-}
+func (cr *VMCluster) DefaultStatusFields(vs *VMClusterStatus) {}
// AsOwner returns owner references with current object as owner
func (cr *VMCluster) AsOwner() metav1.OwnerReference {
@@ -264,8 +254,6 @@ func (cr *VMCluster) AsOwner() metav1.OwnerReference {
// VMClusterStatus defines the observed state of VMCluster
type VMClusterStatus struct {
StatusMetadata `json:",inline"`
- // LegacyStatus is deprecated and will be removed at v0.52.0 version
- LegacyStatus UpdateStatus `json:"clusterStatus,omitempty"`
}
// GetStatusMetadata returns metadata for object status
@@ -724,36 +712,20 @@ func (cr *VMCluster) AvailableStorageNodeIDs(requestsType string) []int32 {
// FinalLabels adds cluster labels to the base labels and filters by prefix if needed
func (cr *VMCluster) FinalLabels(kind ClusterComponent) map[string]string {
- baseLabels := AddClusterLabels(cr.SelectorLabels(kind), "vm")
- if cr.Labels == nil && cr.Spec.ManagedMetadata == nil {
- // fast path
- return baseLabels
- }
- var result map[string]string
- // TODO: @f41gh7 deprecated at will be removed at v0.52.0 release
- if cr.Labels != nil {
- result = filterMapKeysByPrefixes(cr.Labels, labelFilterPrefixes)
- }
+ v := AddClusterLabels(cr.SelectorLabels(kind), "vm")
if cr.Spec.ManagedMetadata != nil {
- result = labels.Merge(result, cr.Spec.ManagedMetadata.Labels)
+ v = labels.Merge(cr.Spec.ManagedMetadata.Labels, v)
}
- return labels.Merge(result, baseLabels)
+ return v
}
-// AnnotationsFiltered returns global annotations to be applied by objects generate for vmcluster
-func (cr *VMCluster) AnnotationsFiltered() map[string]string {
- // TODO: @f41gh7 deprecated at will be removed at v0.52.0 release
- dst := filterMapKeysByPrefixes(cr.Annotations, annotationFilterPrefixes)
+// FinalAnnotations returns global annotations to be applied by objects generate for vmcluster
+func (cr *VMCluster) FinalAnnotations() map[string]string {
+ var v map[string]string
if cr.Spec.ManagedMetadata != nil {
- if dst == nil {
- dst = make(map[string]string)
- }
- for k, v := range cr.Spec.ManagedMetadata.Annotations {
- dst[k] = v
- }
+ v = labels.Merge(cr.Spec.ManagedMetadata.Annotations, v)
}
- return dst
-
+ return v
}
// LastAppliedSpecAsPatch return last applied cluster spec as patch annotation
diff --git a/api/operator/v1beta1/vmextra_types.go b/api/operator/v1beta1/vmextra_types.go
index 3683d6c60..56c199349 100644
--- a/api/operator/v1beta1/vmextra_types.go
+++ b/api/operator/v1beta1/vmextra_types.go
@@ -85,37 +85,6 @@ const (
// SchemeGroupVersion is group version used to register these objects
var SchemeGroupVersion = schema.GroupVersion{Group: "operator.victoriametrics.com", Version: "v1beta1"}
-var (
- // TODO: @f41gh7 deprecated at will be removed at v0.52.0 release
- labelFilterPrefixes []string
- // default ignored annotations
- // TODO: @f41gh7 deprecated at will be removed at v0.52.0 release
- annotationFilterPrefixes = []string{"kubectl.kubernetes.io/", "operator.victoriametrics.com/", "operator.victoriametrics/"}
-)
-
-// SetLabelAndAnnotationPrefixes configures global filtering for child labels and annotations
-// cannot be used concurrently and should be called only once at lib init
-// TODO: @f41gh7 deprecated at will be removed at v0.52.0 release
-func SetLabelAndAnnotationPrefixes(labelPrefixes, annotationPrefixes []string) {
- labelFilterPrefixes = labelPrefixes
- annotationFilterPrefixes = append(annotationFilterPrefixes, annotationPrefixes...)
-}
-
-// TODO: @f41gh7 deprecated at will be removed at v0.52.0 release
-func filterMapKeysByPrefixes(src map[string]string, prefixes []string) map[string]string {
- dst := make(map[string]string, len(src))
-OUTER:
- for key, value := range src {
- for _, matchPrefix := range prefixes {
- if strings.HasPrefix(key, matchPrefix) {
- continue OUTER
- }
- }
- dst[key] = value
- }
- return dst
-}
-
// skip validation, if object has annotation.
func MustSkipCRValidation(cr client.Object) bool {
return cr.GetAnnotations()[SkipValidationAnnotation] == SkipValidationValue
diff --git a/api/operator/v1beta1/vmsingle_types.go b/api/operator/v1beta1/vmsingle_types.go
index e1b7fee31..caa634dc4 100644
--- a/api/operator/v1beta1/vmsingle_types.go
+++ b/api/operator/v1beta1/vmsingle_types.go
@@ -125,8 +125,6 @@ func (cr *VMSingleSpec) UnmarshalJSON(src []byte) error {
// +k8s:openapi-gen=true
type VMSingleStatus struct {
StatusMetadata `json:",inline"`
- // LegacyStatus is deprecated and will be removed at v0.52.0 version
- LegacyStatus UpdateStatus `json:"singleStatus,omitempty"`
}
// VMSingle is fast, cost-effective and scalable time-series database.
@@ -159,9 +157,7 @@ func (cr *VMSingle) GetStatus() *VMSingleStatus {
}
// DefaultStatusFields implements reconcile.ObjectWithDeepCopyAndStatus interface
-func (cr *VMSingle) DefaultStatusFields(vs *VMSingleStatus) {
- vs.LegacyStatus = vs.UpdateStatus
-}
+func (cr *VMSingle) DefaultStatusFields(_ *VMSingleStatus) {}
func (cr *VMSingle) Probe() *EmbeddedProbes {
return cr.Spec.EmbeddedProbes
@@ -213,21 +209,6 @@ func (cr *VMSingle) PodAnnotations() map[string]string {
return annotations
}
-func (cr *VMSingle) AnnotationsFiltered() map[string]string {
- // TODO: @f41gh7 deprecated at will be removed at v0.52.0 release
- dst := filterMapKeysByPrefixes(cr.Annotations, annotationFilterPrefixes)
- if cr.Spec.ManagedMetadata != nil {
- if dst == nil {
- dst = make(map[string]string)
- }
- for k, v := range cr.Spec.ManagedMetadata.Annotations {
- dst[k] = v
- }
- }
- return dst
-
-}
-
func (cr *VMSingle) SelectorLabels() map[string]string {
return map[string]string{
"app.kubernetes.io/name": "vmsingle",
@@ -245,21 +226,22 @@ func (cr *VMSingle) PodLabels() map[string]string {
return labels.Merge(cr.Spec.PodMetadata.Labels, lbls)
}
-func (cr *VMSingle) AllLabels() map[string]string {
- selectorLabels := cr.SelectorLabels()
- // fast path
- if cr.Labels == nil && cr.Spec.ManagedMetadata == nil {
- return selectorLabels
- }
- var result map[string]string
- // TODO: @f41gh7 deprecated at will be removed at v0.52.0 release
- if cr.Labels != nil {
- result = filterMapKeysByPrefixes(cr.Labels, labelFilterPrefixes)
+// FinalLabels returns combination of selector and managed labels
+func (cr *VMSingle) FinalLabels() map[string]string {
+ v := cr.SelectorLabels()
+ if cr.Spec.ManagedMetadata != nil {
+ v = labels.Merge(cr.Spec.ManagedMetadata.Labels, v)
}
+ return v
+}
+
+// FinalAnnotations returns annotations to be applied for created objects
+func (cr *VMSingle) FinalAnnotations() map[string]string {
+ var v map[string]string
if cr.Spec.ManagedMetadata != nil {
- result = labels.Merge(result, cr.Spec.ManagedMetadata.Labels)
+ v = labels.Merge(cr.Spec.ManagedMetadata.Annotations, v)
}
- return labels.Merge(result, selectorLabels)
+ return v
}
func (cr *VMSingle) PrefixedName() string {
diff --git a/api/operator/v1beta1/vmuser_types.go b/api/operator/v1beta1/vmuser_types.go
index 944438a7f..4f31d5df3 100644
--- a/api/operator/v1beta1/vmuser_types.go
+++ b/api/operator/v1beta1/vmuser_types.go
@@ -2,10 +2,10 @@ package v1beta1
import (
"fmt"
- "strings"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ "k8s.io/apimachinery/pkg/labels"
"k8s.io/utils/ptr"
"sigs.k8s.io/controller-runtime/pkg/client"
)
@@ -46,6 +46,10 @@ type VMUserSpec struct {
// DisableSecretCreation skips related secret creation for vmuser
DisableSecretCreation bool `json:"disable_secret_creation,omitempty"`
+
+ // ManagedMetadata defines metadata that will be added to the all objects
+ // created by operator for the given CustomResource
+ ManagedMetadata *ManagedObjectsMetadata `json:"managedMetadata,omitempty"`
}
// TargetRef describes target for user traffic forwarding.
@@ -185,14 +189,13 @@ func (cr *VMUser) AsOwner() metav1.OwnerReference {
}
}
-func (cr *VMUser) AnnotationsFiltered() map[string]string {
- annotations := make(map[string]string)
- for annotation, value := range cr.Annotations {
- if !strings.HasPrefix(annotation, "kubectl.kubernetes.io/") {
- annotations[annotation] = value
- }
+// FinalAnnotations returns annotations to be applied for created objects
+func (cr *VMUser) FinalAnnotations() map[string]string {
+ var v map[string]string
+ if cr.Spec.ManagedMetadata != nil {
+ v = labels.Merge(cr.Spec.ManagedMetadata.Annotations, v)
}
- return annotations
+ return v
}
func (cr *VMUser) SelectorLabels() map[string]string {
@@ -204,19 +207,13 @@ func (cr *VMUser) SelectorLabels() map[string]string {
}
}
-// AllLabels returns combined labels for VMUser
-func (cr *VMUser) AllLabels() map[string]string {
- labels := cr.SelectorLabels()
- if cr.Labels != nil {
- for label, value := range cr.Labels {
- if _, ok := labels[label]; ok {
- // forbid changes for selector labels
- continue
- }
- labels[label] = value
- }
+// FinalLabels returns combination of selector and managed labels
+func (cr *VMUser) FinalLabels() map[string]string {
+ v := cr.SelectorLabels()
+ if cr.Spec.ManagedMetadata != nil {
+ v = labels.Merge(cr.Spec.ManagedMetadata.Labels, v)
}
- return labels
+ return v
}
// GetStatusMetadata implements reconcile.objectWithStatus interface
diff --git a/api/operator/v1beta1/zz_generated.deepcopy.go b/api/operator/v1beta1/zz_generated.deepcopy.go
index e7f70d824..69a3411dd 100644
--- a/api/operator/v1beta1/zz_generated.deepcopy.go
+++ b/api/operator/v1beta1/zz_generated.deepcopy.go
@@ -6963,6 +6963,11 @@ func (in *VMUserSpec) DeepCopyInto(out *VMUserSpec) {
(*out)[key] = val
}
}
+ if in.ManagedMetadata != nil {
+ in, out := &in.ManagedMetadata, &out.ManagedMetadata
+ *out = new(ManagedObjectsMetadata)
+ (*in).DeepCopyInto(*out)
+ }
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VMUserSpec.
diff --git a/config/crd/overlay/crd.specless.yaml b/config/crd/overlay/crd.specless.yaml
index 3eec95bef..536a74a42 100644
--- a/config/crd/overlay/crd.specless.yaml
+++ b/config/crd/overlay/crd.specless.yaml
@@ -1521,10 +1521,6 @@ spec:
status:
description: VMClusterStatus defines the observed state of VMCluster
properties:
- clusterStatus:
- description: LegacyStatus is deprecated and will be removed at v0.52.0
- version
- type: string
conditions:
description: 'Known .status.conditions.type are: "Available", "Progressing",
and "Degraded"'
@@ -2577,10 +2573,6 @@ spec:
reason:
description: Reason defines human readable error reason
type: string
- singleStatus:
- description: LegacyStatus is deprecated and will be removed at v0.52.0
- version
- type: string
updateStatus:
description: UpdateStatus defines a status for update rollout
type: string
diff --git a/config/crd/overlay/crd.yaml b/config/crd/overlay/crd.yaml
index 79aa8ab08..bcdf83ec6 100644
--- a/config/crd/overlay/crd.yaml
+++ b/config/crd/overlay/crd.yaml
@@ -30004,10 +30004,6 @@ spec:
status:
description: VMClusterStatus defines the observed state of VMCluster
properties:
- clusterStatus:
- description: LegacyStatus is deprecated and will be removed at v0.52.0
- version
- type: string
conditions:
description: 'Known .status.conditions.type are: "Available", "Progressing",
and "Degraded"'
@@ -39639,10 +39635,6 @@ spec:
reason:
description: Reason defines human readable error reason
type: string
- singleStatus:
- description: LegacyStatus is deprecated and will be removed at v0.52.0
- version
- type: string
updateStatus:
description: UpdateStatus defines a status for update rollout
type: string
@@ -40681,6 +40673,29 @@ spec:
- least_loaded
- first_available
type: string
+ managedMetadata:
+ description: |-
+ ManagedMetadata defines metadata that will be added to the all objects
+ created by operator for the given CustomResource
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ description: |-
+ Annotations is an unstructured key value map stored with a resource that may be
+ set by external tools to store and retrieve arbitrary metadata. They are not
+ queryable and should be preserved when modifying objects.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ description: |-
+ Labels Map of string keys and values that can be used to organize and categorize
+ (scope and select) objects.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels
+ type: object
+ type: object
max_concurrent_requests:
description: |-
MaxConcurrentRequests defines max concurrent requests per user
diff --git a/config/olm/kind.yaml b/config/olm/kind.yaml
index 57bc356d2..c2d62fc48 100644
--- a/config/olm/kind.yaml
+++ b/config/olm/kind.yaml
@@ -1,5 +1,11 @@
apiVersion: kind.x-k8s.io/v1alpha4
kind: Cluster
+kubeadmConfigPatches:
+- |
+ kind: ClusterConfiguration
+ scheduler:
+ extraArgs:
+ bind-address: "0.0.0.0"
containerdConfigPatches:
- |-
[plugins."io.containerd.grpc.v1.cri".registry]
diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md
index d9398500c..941024b2d 100644
--- a/docs/CHANGELOG.md
+++ b/docs/CHANGELOG.md
@@ -13,6 +13,10 @@ aliases:
## tip
+**Update note 1: `labels` and `annotations` inheritance is removed. It was deprecated in v0.51.0. Consider moving all needed labels and annotations to the `spec.managedMetadata` fields.**
+
+**Update node 2: removed VMCluster's `status.clusterStatus` and VMSingle's `status.singleStatus`, that were deprecated in v0.51.0.**
+
* Dependency: [vmoperator](https://docs.victoriametrics.com/operator/): Updated default versions for VM apps to [v1.130.0](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.130.0) version
* FEATURE: [vmoperator](https://docs.victoriametrics.com/operator/): add `VM_ENABLETCP6` variable that runs all operator CRs in IPv6 mode. See [#1581](https://github.com/VictoriaMetrics/operator/issues/1581).
@@ -21,7 +25,7 @@ aliases:
* FEATURE: [vmauth](https://docs.victoriametrics.com/operator/resources/vmauth/): Add httproute support for vmauth. See[#1625](https://github.com/VictoriaMetrics/operator/issues/1625)
* FEATURE: [vmauth](https://docs.victoriametrics.com/operator/resources/vmauth/): allow overriding default path for embedded ingress. See [#1617](https://github.com/VictoriaMetrics/operator/issues/1617).
* FEATURE: [vmalertmanagerconfig](https://docs.victoriametrics.com/operator/resources/vmalertmanagerconfig/): support incident.io receiver. See [#1637](https://github.com/VictoriaMetrics/operator/issues/1637).
-
+* FEATURE: [vmuser](https://docs.victoriametrics.com/operator/resources/vmuser/): introduce `spec.managedMetadata` for custom labels and annotations that should be attached to a Secret.
* BUGFIX: [vmalertmanager](https://docs.victoriametrics.com/operator/resources/vmalertmanager/): check `mute_time_intervals` in subroutes: See [#1618](https://github.com/VictoriaMetrics/operator/issues/1618).
* BUGFIX: [vmoperator](https://docs.victoriametrics.com/operator/): remove incorrect key argument in structured log for when the actual PVC storage size is larger than the currently configured size and properly indicate which is the new and which is the existing size: See PR [#1636](https://github.com/VictoriaMetrics/operator/pull/1636) for details.
@@ -459,7 +463,7 @@ If you still want to upgrade, you can override the vmagent image version by sett

**Update note 1: `labels` and `annotations` inheritance is deprecated and will be remove at upcoming `v0.52.0` release. It's recommend to move all needed labels and annotations to the `spec.managedMetadata` fields.
-Operator will preserve `annotations`, but any changes to it will be ignored. `labels` inherited from `CRD.metata.labels` will be removed after upgrade to `v0.52.0`.**
+Operator will preserve `annotations`, but any changes to it will be ignored. `labels` inherited from `CRD.metadata.labels` will be removed after upgrade to `v0.52.0`.**
**Update note 2: `VMAuth.spec.unauthorizedAccessConfig` is deprecated in favour of `VMAuth.spec.unauthorizedUserAccessSpec`. Operator still serves deprecated fields until `v1.0` release.**
diff --git a/docs/api.md b/docs/api.md
index b9a2ce763..d0cfd7b5a 100644
--- a/docs/api.md
+++ b/docs/api.md
@@ -2249,7 +2249,7 @@ Appears in: [Receiver](#receiver)
ManagedObjectsMetadata contains Labels and Annotations
-Appears in: [VLAgentSpec](#vlagentspec), [VLClusterSpec](#vlclusterspec), [VLSingleSpec](#vlsinglespec), [VLogsSpec](#vlogsspec), [VMAgentSpec](#vmagentspec), [VMAlertSpec](#vmalertspec), [VMAlertmanagerSpec](#vmalertmanagerspec), [VMAnomalySpec](#vmanomalyspec), [VMAuthSpec](#vmauthspec), [VMClusterSpec](#vmclusterspec), [VMSingleSpec](#vmsinglespec), [VTClusterSpec](#vtclusterspec), [VTSingleSpec](#vtsinglespec)
+Appears in: [VLAgentSpec](#vlagentspec), [VLClusterSpec](#vlclusterspec), [VLSingleSpec](#vlsinglespec), [VLogsSpec](#vlogsspec), [VMAgentSpec](#vmagentspec), [VMAlertSpec](#vmalertspec), [VMAlertmanagerSpec](#vmalertmanagerspec), [VMAnomalySpec](#vmanomalyspec), [VMAuthSpec](#vmauthspec), [VMClusterSpec](#vmclusterspec), [VMSingleSpec](#vmsinglespec), [VMUserSpec](#vmuserspec), [VTClusterSpec](#vtclusterspec), [VTSingleSpec](#vtsinglespec)
| Field | Description |
| --- | --- |
@@ -4901,6 +4901,7 @@ Appears in: [VMUser](#vmuser)
| headers
_string array_ | _(Optional)_
Headers represent additional http headers, that vmauth uses
in form of ["header_key: header_value"]
multiple values for header key:
["header_key: value1,value2"]
it's available since 1.68.0 version of vmauth |
| ip_filters#
_[VMUserIPFilters](#vmuseripfilters)_ | _(Optional)_
IPFilters defines per target src ip filters
supported only with enterprise version of [vmauth](https://docs.victoriametrics.com/victoriametrics/vmauth/#ip-filters) |
| load_balancing_policy#
_string_ | _(Optional)_
LoadBalancingPolicy defines load balancing policy to use for backend urls.
Supported policies: least_loaded, first_available.
See [here](https://docs.victoriametrics.com/victoriametrics/vmauth/#load-balancing) for more details (default "least_loaded") |
+| managedMetadata#
_[ManagedObjectsMetadata](#managedobjectsmetadata)_ | _(Required)_
ManagedMetadata defines metadata that will be added to the all objects
created by operator for the given CustomResource |
| max_concurrent_requests#
_integer_ | _(Optional)_
MaxConcurrentRequests defines max concurrent requests per user
300 is default value for vmauth |
| metric_labels#
_object (keys:string, values:string)_ | _(Optional)_
MetricLabels - additional labels for metrics exported by vmauth for given user. |
| name#
_string_ | _(Optional)_
Name of the VMUser object. |
diff --git a/docs/env.md b/docs/env.md
index fd0f0c09e..11243b1a8 100644
--- a/docs/env.md
+++ b/docs/env.md
@@ -190,8 +190,6 @@
| VM_ENABLEDPROMETHEUSCONVERTER_PROBE: `true` # |
| VM_ENABLEDPROMETHEUSCONVERTER_ALERTMANAGERCONFIG: `true` # |
| VM_ENABLEDPROMETHEUSCONVERTER_SCRAPECONFIG: `true` # |
-| VM_FILTERCHILDLABELPREFIXES: `-` # |
-| VM_FILTERCHILDANNOTATIONPREFIXES: `-` # |
| VM_PROMETHEUSCONVERTERADDARGOCDIGNOREANNOTATIONS: `false` #
adds compare-options and sync-options for prometheus objects converted by operator. It helps to properly use converter with ArgoCD |
| VM_ENABLEDPROMETHEUSCONVERTEROWNERREFERENCES: `false` # |
| VM_FILTERPROMETHEUSCONVERTERLABELPREFIXES: `-` #
allows filtering for converted labels, labels with matched prefix will be ignored |
diff --git a/internal/config/config.go b/internal/config/config.go
index 987955fac..68dba3012 100644
--- a/internal/config/config.go
+++ b/internal/config/config.go
@@ -523,8 +523,6 @@ type BaseOperatorConf struct {
AlertmanagerConfig bool `default:"true" env:"ALERTMANAGERCONFIG"`
ScrapeConfig bool `default:"true" env:"SCRAPECONFIG"`
} `prefix:"ENABLEDPROMETHEUSCONVERTER_"`
- FilterChildLabelPrefixes []string `default:"" env:"FILTERCHILDLABELPREFIXES"`
- FilterChildAnnotationPrefixes []string `default:"" env:"FILTERCHILDANNOTATIONPREFIXES"`
// adds compare-options and sync-options for prometheus objects converted by operator.
// It helps to properly use converter with ArgoCD
PrometheusConverterAddArgoCDIgnoreAnnotations bool `default:"false" env:"PROMETHEUSCONVERTERADDARGOCDIGNOREANNOTATIONS"`
diff --git a/internal/controller/operator/factory/build/build.go b/internal/controller/operator/factory/build/build.go
index e16bdd650..3f716ef75 100644
--- a/internal/controller/operator/factory/build/build.go
+++ b/internal/controller/operator/factory/build/build.go
@@ -25,8 +25,8 @@ func SetSkipRuntimeValidation(mustSkip bool) {
type builderOpts interface {
client.Object
PrefixedName() string
- AnnotationsFiltered() map[string]string
- AllLabels() map[string]string
+ FinalAnnotations() map[string]string
+ FinalLabels() map[string]string
SelectorLabels() map[string]string
AsOwner() metav1.OwnerReference
GetNamespace() string
diff --git a/internal/controller/operator/factory/build/cache.go b/internal/controller/operator/factory/build/cache.go
index 1141f3065..e90199b95 100644
--- a/internal/controller/operator/factory/build/cache.go
+++ b/internal/controller/operator/factory/build/cache.go
@@ -62,8 +62,8 @@ func ResourceMeta(kind ResourceKind, cr builderOpts) metav1.ObjectMeta {
return metav1.ObjectMeta{
Name: ResourceName(kind, cr),
Namespace: cr.GetNamespace(),
- Labels: cr.AllLabels(),
- Annotations: cr.AnnotationsFiltered(),
+ Labels: cr.FinalLabels(),
+ Annotations: cr.FinalAnnotations(),
OwnerReferences: []metav1.OwnerReference{cr.AsOwner()},
Finalizers: []string{vmv1beta1.FinalizerName},
}
diff --git a/internal/controller/operator/factory/build/cluster.go b/internal/controller/operator/factory/build/cluster.go
index 4820c4e4b..76e917979 100644
--- a/internal/controller/operator/factory/build/cluster.go
+++ b/internal/controller/operator/factory/build/cluster.go
@@ -32,16 +32,11 @@ func (b *ChildBuilder) PrefixedName() string {
return b.ParentOpts.PrefixedName(b.kind)
}
-// AllLabels implements build.svcBuilderArgs interface
-func (b *ChildBuilder) AllLabels() map[string]string {
+// FinalLabels implements build.svcBuilderArgs interface
+func (b *ChildBuilder) FinalLabels() map[string]string {
return b.finalLabels
}
-// AnnotationsFiltered implements build.svcBuilderArgs interface
-func (b *ChildBuilder) AnnotationsFiltered() map[string]string {
- return b.FinalAnnotations()
-}
-
// SelectorLabels implements build.svcBuilderArgs interface
func (b *ChildBuilder) SelectorLabels() map[string]string {
return b.selectorLabels
diff --git a/internal/controller/operator/factory/build/hpa.go b/internal/controller/operator/factory/build/hpa.go
index bb2f9ac83..be2d2b7b8 100644
--- a/internal/controller/operator/factory/build/hpa.go
+++ b/internal/controller/operator/factory/build/hpa.go
@@ -13,8 +13,8 @@ func HPA(opts builderOpts, targetRef autoscalingv2.CrossVersionObjectReference,
ObjectMeta: metav1.ObjectMeta{
Name: targetRef.Name,
Namespace: opts.GetNamespace(),
- Annotations: opts.AnnotationsFiltered(),
- Labels: opts.AllLabels(),
+ Annotations: opts.FinalAnnotations(),
+ Labels: opts.FinalLabels(),
OwnerReferences: []metav1.OwnerReference{opts.AsOwner()},
},
Spec: autoscalingv2.HorizontalPodAutoscalerSpec{
diff --git a/internal/controller/operator/factory/build/pdb.go b/internal/controller/operator/factory/build/pdb.go
index 22f91c0a8..8886b8366 100644
--- a/internal/controller/operator/factory/build/pdb.go
+++ b/internal/controller/operator/factory/build/pdb.go
@@ -12,8 +12,8 @@ func PodDisruptionBudget(cr builderOpts, spec *vmv1beta1.EmbeddedPodDisruptionBu
pdb := policyv1.PodDisruptionBudget{
ObjectMeta: metav1.ObjectMeta{
Name: cr.PrefixedName(),
- Annotations: cr.AnnotationsFiltered(),
- Labels: cr.AllLabels(),
+ Annotations: cr.FinalAnnotations(),
+ Labels: cr.FinalLabels(),
OwnerReferences: []metav1.OwnerReference{cr.AsOwner()},
Namespace: cr.GetNamespace(),
},
diff --git a/internal/controller/operator/factory/build/service.go b/internal/controller/operator/factory/build/service.go
index 27813d874..57ffa7c51 100644
--- a/internal/controller/operator/factory/build/service.go
+++ b/internal/controller/operator/factory/build/service.go
@@ -47,8 +47,8 @@ func Service(cr builderOpts, defaultPort string, setOptions func(svc *corev1.Ser
ObjectMeta: metav1.ObjectMeta{
Name: cr.PrefixedName(),
Namespace: cr.GetNamespace(),
- Labels: cr.AllLabels(),
- Annotations: cr.AnnotationsFiltered(),
+ Labels: cr.FinalLabels(),
+ Annotations: cr.FinalAnnotations(),
OwnerReferences: []metav1.OwnerReference{cr.AsOwner()},
Finalizers: []string{vmv1beta1.FinalizerName},
},
diff --git a/internal/controller/operator/factory/build/service_account.go b/internal/controller/operator/factory/build/service_account.go
index 0562bb04a..569b76f06 100644
--- a/internal/controller/operator/factory/build/service_account.go
+++ b/internal/controller/operator/factory/build/service_account.go
@@ -9,8 +9,8 @@ import (
)
type objectForServiceAccountBuilder interface {
- AllLabels() map[string]string
- AnnotationsFiltered() map[string]string
+ FinalLabels() map[string]string
+ FinalAnnotations() map[string]string
AsOwner() metav1.OwnerReference
GetNamespace() string
GetServiceAccountName() string
@@ -24,8 +24,8 @@ func ServiceAccount(cr objectForServiceAccountBuilder) *corev1.ServiceAccount {
ObjectMeta: metav1.ObjectMeta{
Name: cr.GetServiceAccountName(),
Namespace: cr.GetNamespace(),
- Labels: cr.AllLabels(),
- Annotations: cr.AnnotationsFiltered(),
+ Labels: cr.FinalLabels(),
+ Annotations: cr.FinalAnnotations(),
OwnerReferences: []metav1.OwnerReference{cr.AsOwner()},
Finalizers: []string{vmv1beta1.FinalizerName},
},
diff --git a/internal/controller/operator/factory/finalize/common.go b/internal/controller/operator/factory/finalize/common.go
index 2b7f35a17..0267d4448 100644
--- a/internal/controller/operator/factory/finalize/common.go
+++ b/internal/controller/operator/factory/finalize/common.go
@@ -17,7 +17,7 @@ import (
)
type crObject interface {
- AnnotationsFiltered() map[string]string
+ FinalAnnotations() map[string]string
GetLabels() map[string]string
PrefixedName() string
GetServiceAccountName() string
diff --git a/internal/controller/operator/factory/vlagent/vlagent.go b/internal/controller/operator/factory/vlagent/vlagent.go
index c11b850ab..cc331fa7a 100644
--- a/internal/controller/operator/factory/vlagent/vlagent.go
+++ b/internal/controller/operator/factory/vlagent/vlagent.go
@@ -150,8 +150,8 @@ func newDeploy(cr *vmv1.VLAgent) (*appsv1.StatefulSet, error) {
ObjectMeta: metav1.ObjectMeta{
Name: cr.PrefixedName(),
Namespace: cr.Namespace,
- Labels: cr.AllLabels(),
- Annotations: cr.AnnotationsFiltered(),
+ Labels: cr.FinalLabels(),
+ Annotations: cr.FinalAnnotations(),
OwnerReferences: []metav1.OwnerReference{cr.AsOwner()},
Finalizers: []string{vmv1beta1.FinalizerName},
},
diff --git a/internal/controller/operator/factory/vlcluster/vmauth_lb.go b/internal/controller/operator/factory/vlcluster/vmauth_lb.go
index c7a55e1b9..057bf77d3 100644
--- a/internal/controller/operator/factory/vlcluster/vmauth_lb.go
+++ b/internal/controller/operator/factory/vlcluster/vmauth_lb.go
@@ -230,7 +230,7 @@ func buildVMauthLBDeployment(cr *vmv1.VLCluster) (*appsv1.Deployment, error) {
func createOrUpdateVMAuthLBService(ctx context.Context, rclient client.Client, cr, prevCR *vmv1.VLCluster) error {
builder := func(r *vmv1.VLCluster) *build.ChildBuilder {
b := build.NewChildBuilder(r, vmv1beta1.ClusterComponentBalancer)
- b.SetFinalLabels(labels.Merge(b.AllLabels(), map[string]string{
+ b.SetFinalLabels(labels.Merge(b.FinalLabels(), map[string]string{
vmv1beta1.VMAuthLBServiceProxyTargetLabel: "vmauth",
}))
return b
@@ -270,7 +270,7 @@ func createOrUpdatePodDisruptionBudgetForVMAuthLB(ctx context.Context, rclient c
func createOrUpdateLBProxyService(ctx context.Context, rclient client.Client, cr, prevCR *vmv1.VLCluster, kind vmv1beta1.ClusterComponent, port, prevPort string) error {
builder := func(r *vmv1.VLCluster) *build.ChildBuilder {
b := build.NewChildBuilder(r, kind)
- b.SetFinalLabels(labels.Merge(b.AllLabels(), map[string]string{
+ b.SetFinalLabels(labels.Merge(b.FinalLabels(), map[string]string{
vmv1beta1.VMAuthLBServiceProxyTargetLabel: string(kind),
}))
b.SetSelectorLabels(cr.SelectorLabels(vmv1beta1.ClusterComponentBalancer))
diff --git a/internal/controller/operator/factory/vlsingle/vlogs.go b/internal/controller/operator/factory/vlsingle/vlogs.go
index 1aa2abb87..da5c887b5 100644
--- a/internal/controller/operator/factory/vlsingle/vlogs.go
+++ b/internal/controller/operator/factory/vlsingle/vlogs.go
@@ -120,8 +120,8 @@ func newVLogsDeployment(r *vmv1beta1.VLogs) (*appsv1.Deployment, error) {
ObjectMeta: metav1.ObjectMeta{
Name: r.PrefixedName(),
Namespace: r.Namespace,
- Labels: r.AllLabels(),
- Annotations: r.AnnotationsFiltered(),
+ Labels: r.FinalLabels(),
+ Annotations: r.FinalAnnotations(),
OwnerReferences: []metav1.OwnerReference{r.AsOwner()},
Finalizers: []string{vmv1beta1.FinalizerName},
},
diff --git a/internal/controller/operator/factory/vlsingle/vlsingle.go b/internal/controller/operator/factory/vlsingle/vlsingle.go
index 2747d2a78..13d1c0a0e 100644
--- a/internal/controller/operator/factory/vlsingle/vlsingle.go
+++ b/internal/controller/operator/factory/vlsingle/vlsingle.go
@@ -124,8 +124,8 @@ func newDeployment(r *vmv1.VLSingle) (*appsv1.Deployment, error) {
ObjectMeta: metav1.ObjectMeta{
Name: r.PrefixedName(),
Namespace: r.Namespace,
- Labels: r.AllLabels(),
- Annotations: r.AnnotationsFiltered(),
+ Labels: r.FinalLabels(),
+ Annotations: r.FinalAnnotations(),
OwnerReferences: []metav1.OwnerReference{r.AsOwner()},
Finalizers: []string{vmv1beta1.FinalizerName},
},
diff --git a/internal/controller/operator/factory/vmagent/rbac.go b/internal/controller/operator/factory/vmagent/rbac.go
index 3bc059615..9ac6d85bc 100644
--- a/internal/controller/operator/factory/vmagent/rbac.go
+++ b/internal/controller/operator/factory/vmagent/rbac.go
@@ -197,8 +197,8 @@ func buildClusterRoleBinding(cr *vmv1beta1.VMAgent) *rbacv1.ClusterRoleBinding {
ObjectMeta: metav1.ObjectMeta{
Name: cr.GetClusterRoleName(),
Namespace: cr.GetNamespace(),
- Labels: cr.AllLabels(),
- Annotations: cr.AnnotationsFiltered(),
+ Labels: cr.FinalLabels(),
+ Annotations: cr.FinalAnnotations(),
Finalizers: []string{vmv1beta1.FinalizerName},
// Kubernetes does not allow namespace-scoped resources to own cluster-scoped resources,
// use crd instead
@@ -224,8 +224,8 @@ func buildClusterRole(cr *vmv1beta1.VMAgent) *rbacv1.ClusterRole {
ObjectMeta: metav1.ObjectMeta{
Name: cr.GetClusterRoleName(),
Namespace: cr.GetNamespace(),
- Labels: cr.AllLabels(),
- Annotations: cr.AnnotationsFiltered(),
+ Labels: cr.FinalLabels(),
+ Annotations: cr.FinalAnnotations(),
Finalizers: []string{vmv1beta1.FinalizerName},
// Kubernetes does not allow namespace-scoped resources to own cluster-scoped resources,
// use crd instead
@@ -258,8 +258,8 @@ func buildNamespacedRole(cr *vmv1beta1.VMAgent) *rbacv1.Role {
ObjectMeta: metav1.ObjectMeta{
Name: cr.GetClusterRoleName(),
Namespace: cr.GetNamespace(),
- Labels: cr.AllLabels(),
- Annotations: cr.AnnotationsFiltered(),
+ Labels: cr.FinalLabels(),
+ Annotations: cr.FinalAnnotations(),
Finalizers: []string{vmv1beta1.FinalizerName},
OwnerReferences: []metav1.OwnerReference{cr.AsOwner()},
},
@@ -272,8 +272,8 @@ func buildNamespacedRoleBinding(cr *vmv1beta1.VMAgent) *rbacv1.RoleBinding {
ObjectMeta: metav1.ObjectMeta{
Name: cr.GetClusterRoleName(),
Namespace: cr.GetNamespace(),
- Labels: cr.AllLabels(),
- Annotations: cr.AnnotationsFiltered(),
+ Labels: cr.FinalLabels(),
+ Annotations: cr.FinalAnnotations(),
Finalizers: []string{vmv1beta1.FinalizerName},
OwnerReferences: []metav1.OwnerReference{cr.AsOwner()},
},
diff --git a/internal/controller/operator/factory/vmagent/vmagent.go b/internal/controller/operator/factory/vmagent/vmagent.go
index 819e7cc29..12f721644 100644
--- a/internal/controller/operator/factory/vmagent/vmagent.go
+++ b/internal/controller/operator/factory/vmagent/vmagent.go
@@ -362,8 +362,8 @@ func newK8sApp(cr *vmv1beta1.VMAgent, ac *build.AssetsCache) (client.Object, err
ObjectMeta: metav1.ObjectMeta{
Name: cr.PrefixedName(),
Namespace: cr.Namespace,
- Labels: cr.AllLabels(),
- Annotations: cr.AnnotationsFiltered(),
+ Labels: cr.FinalLabels(),
+ Annotations: cr.FinalAnnotations(),
OwnerReferences: []metav1.OwnerReference{cr.AsOwner()},
Finalizers: []string{vmv1beta1.FinalizerName},
},
@@ -392,8 +392,8 @@ func newK8sApp(cr *vmv1beta1.VMAgent, ac *build.AssetsCache) (client.Object, err
ObjectMeta: metav1.ObjectMeta{
Name: build.ShardName(cr),
Namespace: cr.Namespace,
- Labels: cr.AllLabels(),
- Annotations: cr.AnnotationsFiltered(),
+ Labels: cr.FinalLabels(),
+ Annotations: cr.FinalAnnotations(),
OwnerReferences: []metav1.OwnerReference{cr.AsOwner()},
Finalizers: []string{vmv1beta1.FinalizerName},
},
@@ -433,8 +433,8 @@ func newK8sApp(cr *vmv1beta1.VMAgent, ac *build.AssetsCache) (client.Object, err
ObjectMeta: metav1.ObjectMeta{
Name: build.ShardName(cr),
Namespace: cr.Namespace,
- Labels: cr.AllLabels(),
- Annotations: cr.AnnotationsFiltered(),
+ Labels: cr.FinalLabels(),
+ Annotations: cr.FinalAnnotations(),
OwnerReferences: []metav1.OwnerReference{cr.AsOwner()},
Finalizers: []string{vmv1beta1.FinalizerName},
},
@@ -761,8 +761,8 @@ func buildRelabelingsAssetsMeta(cr *vmv1beta1.VMAgent) metav1.ObjectMeta {
return metav1.ObjectMeta{
Namespace: cr.Namespace,
Name: cr.RelabelingAssetName(),
- Labels: cr.AllLabels(),
- Annotations: cr.AnnotationsFiltered(),
+ Labels: cr.FinalLabels(),
+ Annotations: cr.FinalAnnotations(),
OwnerReferences: []metav1.OwnerReference{cr.AsOwner()},
}
}
diff --git a/internal/controller/operator/factory/vmalert/vmalert.go b/internal/controller/operator/factory/vmalert/vmalert.go
index b52b17631..571303c25 100644
--- a/internal/controller/operator/factory/vmalert/vmalert.go
+++ b/internal/controller/operator/factory/vmalert/vmalert.go
@@ -163,8 +163,8 @@ func newDeploy(cr *vmv1beta1.VMAlert, ruleConfigMapNames []string, ac *build.Ass
ObjectMeta: metav1.ObjectMeta{
Name: cr.PrefixedName(),
Namespace: cr.Namespace,
- Labels: cr.AllLabels(),
- Annotations: cr.AnnotationsFiltered(),
+ Labels: cr.FinalLabels(),
+ Annotations: cr.FinalAnnotations(),
OwnerReferences: []metav1.OwnerReference{cr.AsOwner()},
Finalizers: []string{vmv1beta1.FinalizerName},
},
diff --git a/internal/controller/operator/factory/vmalertmanager/alertmanager_test.go b/internal/controller/operator/factory/vmalertmanager/alertmanager_test.go
index d4505bdd2..57bfbccb9 100644
--- a/internal/controller/operator/factory/vmalertmanager/alertmanager_test.go
+++ b/internal/controller/operator/factory/vmalertmanager/alertmanager_test.go
@@ -40,12 +40,14 @@ func TestCreateOrUpdateAlertManager(t *testing.T) {
ctx: context.TODO(),
cr: &vmv1beta1.VMAlertmanager{
ObjectMeta: metav1.ObjectMeta{
- Name: "test-am",
- Namespace: "monitoring",
- Annotations: map[string]string{"not": "touch"},
- Labels: map[string]string{"main": "system"},
+ Name: "test-am",
+ Namespace: "monitoring",
},
Spec: vmv1beta1.VMAlertmanagerSpec{
+ ManagedMetadata: &vmv1beta1.ManagedObjectsMetadata{
+ Annotations: map[string]string{"not": "touch"},
+ Labels: map[string]string{"main": "system"},
+ },
CommonApplicationDeploymentParams: vmv1beta1.CommonApplicationDeploymentParams{
ReplicaCount: ptr.To(int32(1)),
},
diff --git a/internal/controller/operator/factory/vmalertmanager/rbac.go b/internal/controller/operator/factory/vmalertmanager/rbac.go
index 227ebc6de..a378dba49 100644
--- a/internal/controller/operator/factory/vmalertmanager/rbac.go
+++ b/internal/controller/operator/factory/vmalertmanager/rbac.go
@@ -44,8 +44,8 @@ func buildRole(cr *vmv1beta1.VMAlertmanager) *rbacv1.Role {
ObjectMeta: metav1.ObjectMeta{
Name: cr.PrefixedName(),
Namespace: cr.Namespace,
- Labels: cr.AllLabels(),
- Annotations: cr.AnnotationsFiltered(),
+ Labels: cr.FinalLabels(),
+ Annotations: cr.FinalAnnotations(),
Finalizers: []string{vmv1beta1.FinalizerName},
OwnerReferences: []metav1.OwnerReference{cr.AsOwner()},
},
@@ -64,8 +64,8 @@ func buildRoleBinding(cr *vmv1beta1.VMAlertmanager) *rbacv1.RoleBinding {
ObjectMeta: metav1.ObjectMeta{
Name: cr.PrefixedName(),
Namespace: cr.Namespace,
- Labels: cr.AllLabels(),
- Annotations: cr.AnnotationsFiltered(),
+ Labels: cr.FinalLabels(),
+ Annotations: cr.FinalAnnotations(),
Finalizers: []string{vmv1beta1.FinalizerName},
OwnerReferences: []metav1.OwnerReference{cr.AsOwner()},
},
diff --git a/internal/controller/operator/factory/vmalertmanager/statefulset.go b/internal/controller/operator/factory/vmalertmanager/statefulset.go
index cccc9e54a..e2cb8fcf1 100644
--- a/internal/controller/operator/factory/vmalertmanager/statefulset.go
+++ b/internal/controller/operator/factory/vmalertmanager/statefulset.go
@@ -61,8 +61,8 @@ func newStsForAlertManager(cr *vmv1beta1.VMAlertmanager) (*appsv1.StatefulSet, e
statefulset := &appsv1.StatefulSet{
ObjectMeta: metav1.ObjectMeta{
Name: cr.PrefixedName(),
- Labels: cr.AllLabels(),
- Annotations: cr.AnnotationsFiltered(),
+ Labels: cr.FinalLabels(),
+ Annotations: cr.FinalAnnotations(),
Namespace: cr.Namespace,
OwnerReferences: []metav1.OwnerReference{cr.AsOwner()},
Finalizers: []string{vmv1beta1.FinalizerName},
@@ -594,8 +594,8 @@ func buildConfigSecretMeta(cr *vmv1beta1.VMAlertmanager) *metav1.ObjectMeta {
return &metav1.ObjectMeta{
Name: cr.ConfigSecretName(),
Namespace: cr.Namespace,
- Labels: cr.AllLabels(),
- Annotations: cr.AnnotationsFiltered(),
+ Labels: cr.FinalLabels(),
+ Annotations: cr.FinalAnnotations(),
OwnerReferences: []metav1.OwnerReference{cr.AsOwner()},
Finalizers: []string{vmv1beta1.FinalizerName},
}
diff --git a/internal/controller/operator/factory/vmanomaly/statefulset.go b/internal/controller/operator/factory/vmanomaly/statefulset.go
index 8c64b5a44..5a94a4931 100644
--- a/internal/controller/operator/factory/vmanomaly/statefulset.go
+++ b/internal/controller/operator/factory/vmanomaly/statefulset.go
@@ -127,8 +127,8 @@ func newK8sApp(cr *vmv1.VMAnomaly, configHash string, ac *build.AssetsCache) (*a
ObjectMeta: metav1.ObjectMeta{
Name: build.ShardName(cr),
Namespace: cr.GetNamespace(),
- Labels: cr.AllLabels(),
- Annotations: cr.AnnotationsFiltered(),
+ Labels: cr.FinalLabels(),
+ Annotations: cr.FinalAnnotations(),
OwnerReferences: []metav1.OwnerReference{cr.AsOwner()},
Finalizers: []string{vmv1beta1.FinalizerName},
},
diff --git a/internal/controller/operator/factory/vmauth/rbac.go b/internal/controller/operator/factory/vmauth/rbac.go
index 2d847774a..e6d23c458 100644
--- a/internal/controller/operator/factory/vmauth/rbac.go
+++ b/internal/controller/operator/factory/vmauth/rbac.go
@@ -44,8 +44,8 @@ func buildRole(cr *vmv1beta1.VMAuth) *rbacv1.Role {
ObjectMeta: metav1.ObjectMeta{
Name: cr.PrefixedName(),
Namespace: cr.Namespace,
- Labels: cr.AllLabels(),
- Annotations: cr.AnnotationsFiltered(),
+ Labels: cr.FinalLabels(),
+ Annotations: cr.FinalAnnotations(),
Finalizers: []string{vmv1beta1.FinalizerName},
OwnerReferences: []metav1.OwnerReference{cr.AsOwner()},
},
@@ -64,8 +64,8 @@ func buildRoleBinding(cr *vmv1beta1.VMAuth) *rbacv1.RoleBinding {
ObjectMeta: metav1.ObjectMeta{
Name: cr.PrefixedName(),
Namespace: cr.Namespace,
- Labels: cr.AllLabels(),
- Annotations: cr.AnnotationsFiltered(),
+ Labels: cr.FinalLabels(),
+ Annotations: cr.FinalAnnotations(),
Finalizers: []string{vmv1beta1.FinalizerName},
OwnerReferences: []metav1.OwnerReference{cr.AsOwner()},
},
diff --git a/internal/controller/operator/factory/vmauth/vmauth.go b/internal/controller/operator/factory/vmauth/vmauth.go
index e01e00111..2f0318ffc 100644
--- a/internal/controller/operator/factory/vmauth/vmauth.go
+++ b/internal/controller/operator/factory/vmauth/vmauth.go
@@ -162,8 +162,8 @@ func newDeployForVMAuth(cr *vmv1beta1.VMAuth) (*appsv1.Deployment, error) {
ObjectMeta: metav1.ObjectMeta{
Name: cr.PrefixedName(),
Namespace: cr.Namespace,
- Labels: cr.AllLabels(),
- Annotations: cr.AnnotationsFiltered(),
+ Labels: cr.FinalLabels(),
+ Annotations: cr.FinalAnnotations(),
OwnerReferences: []metav1.OwnerReference{cr.AsOwner()},
},
Spec: appsv1.DeploymentSpec{
@@ -470,7 +470,7 @@ func CreateOrUpdateConfig(ctx context.Context, rclient client.Client, cr *vmv1be
func buildConfigSecretMeta(cr *vmv1beta1.VMAuth) metav1.ObjectMeta {
return metav1.ObjectMeta{
Name: cr.ConfigSecretName(),
- Labels: cr.AllLabels(),
+ Labels: cr.FinalLabels(),
Annotations: map[string]string{
"generated": "true",
},
diff --git a/internal/controller/operator/factory/vmauth/vmusers_config.go b/internal/controller/operator/factory/vmauth/vmusers_config.go
index 18a229ef3..8bcbe64d2 100644
--- a/internal/controller/operator/factory/vmauth/vmusers_config.go
+++ b/internal/controller/operator/factory/vmauth/vmusers_config.go
@@ -962,8 +962,8 @@ func buildVMUserSecret(src *vmv1beta1.VMUser) (*corev1.Secret, error) {
ObjectMeta: metav1.ObjectMeta{
Name: src.SecretName(),
Namespace: src.Namespace,
- Labels: src.AllLabels(),
- Annotations: src.AnnotationsFiltered(),
+ Labels: src.FinalLabels(),
+ Annotations: src.FinalAnnotations(),
OwnerReferences: []metav1.OwnerReference{src.AsOwner()},
Finalizers: []string{vmv1beta1.FinalizerName},
},
diff --git a/internal/controller/operator/factory/vmcluster/vmcluster.go b/internal/controller/operator/factory/vmcluster/vmcluster.go
index 4b35970c9..7756c6c2e 100644
--- a/internal/controller/operator/factory/vmcluster/vmcluster.go
+++ b/internal/controller/operator/factory/vmcluster/vmcluster.go
@@ -247,7 +247,7 @@ func createOrUpdateVMSelectService(ctx context.Context, rclient client.Client, c
func createOrUpdateLBProxyService(ctx context.Context, rclient client.Client, cr, prevCR *vmv1beta1.VMCluster, kind vmv1beta1.ClusterComponent, port, prevPort string) error {
builder := func(r *vmv1beta1.VMCluster) *build.ChildBuilder {
b := build.NewChildBuilder(r, kind)
- b.SetFinalLabels(labels.Merge(b.AllLabels(), map[string]string{
+ b.SetFinalLabels(labels.Merge(b.FinalLabels(), map[string]string{
vmv1beta1.VMAuthLBServiceProxyTargetLabel: string(kind),
}))
b.SetSelectorLabels(cr.SelectorLabels(vmv1beta1.ClusterComponentBalancer))
@@ -446,7 +446,7 @@ func genVMSelectSpec(cr *vmv1beta1.VMCluster) (*appsv1.StatefulSet, error) {
Name: commonName,
Namespace: cr.Namespace,
Labels: cr.FinalLabels(vmv1beta1.ClusterComponentSelect),
- Annotations: cr.AnnotationsFiltered(),
+ Annotations: cr.FinalAnnotations(),
OwnerReferences: []metav1.OwnerReference{cr.AsOwner()},
Finalizers: []string{vmv1beta1.FinalizerName},
},
@@ -679,7 +679,7 @@ func genVMInsertSpec(cr *vmv1beta1.VMCluster) (*appsv1.Deployment, error) {
Name: commonName,
Namespace: cr.Namespace,
Labels: cr.FinalLabels(vmv1beta1.ClusterComponentInsert),
- Annotations: cr.AnnotationsFiltered(),
+ Annotations: cr.FinalAnnotations(),
OwnerReferences: []metav1.OwnerReference{cr.AsOwner()},
Finalizers: []string{vmv1beta1.FinalizerName},
},
@@ -879,7 +879,7 @@ func buildVMStorageSpec(ctx context.Context, cr *vmv1beta1.VMCluster) (*appsv1.S
Name: commonName,
Namespace: cr.Namespace,
Labels: cr.FinalLabels(vmv1beta1.ClusterComponentStorage),
- Annotations: cr.AnnotationsFiltered(),
+ Annotations: cr.FinalAnnotations(),
OwnerReferences: []metav1.OwnerReference{cr.AsOwner()},
Finalizers: []string{vmv1beta1.FinalizerName},
},
@@ -1259,7 +1259,7 @@ func buildLBConfigSecretMeta(cr *vmv1beta1.VMCluster) metav1.ObjectMeta {
Namespace: cr.Namespace,
Name: cr.PrefixedName(vmv1beta1.ClusterComponentBalancer),
Labels: cr.FinalLabels(vmv1beta1.ClusterComponentBalancer),
- Annotations: cr.AnnotationsFiltered(),
+ Annotations: cr.FinalAnnotations(),
OwnerReferences: []metav1.OwnerReference{cr.AsOwner()},
}
}
@@ -1381,7 +1381,7 @@ func buildVMAuthLBDeployment(cr *vmv1beta1.VMCluster) (*appsv1.Deployment, error
Namespace: cr.Namespace,
Name: cr.PrefixedName(vmv1beta1.ClusterComponentBalancer),
Labels: cr.FinalLabels(vmv1beta1.ClusterComponentBalancer),
- Annotations: cr.AnnotationsFiltered(),
+ Annotations: cr.FinalAnnotations(),
OwnerReferences: []metav1.OwnerReference{cr.AsOwner()},
},
Spec: appsv1.DeploymentSpec{
@@ -1414,7 +1414,7 @@ func buildVMAuthLBDeployment(cr *vmv1beta1.VMCluster) (*appsv1.Deployment, error
func createOrUpdateVMAuthLBService(ctx context.Context, rclient client.Client, cr, prevCR *vmv1beta1.VMCluster) error {
builder := func(r *vmv1beta1.VMCluster) *build.ChildBuilder {
b := build.NewChildBuilder(r, vmv1beta1.ClusterComponentBalancer)
- b.SetFinalLabels(labels.Merge(b.AllLabels(), map[string]string{
+ b.SetFinalLabels(labels.Merge(b.FinalLabels(), map[string]string{
vmv1beta1.VMAuthLBServiceProxyTargetLabel: "vmauth",
}))
return b
diff --git a/internal/controller/operator/factory/vmsingle/vmsingle.go b/internal/controller/operator/factory/vmsingle/vmsingle.go
index 8b945a197..79d5e473c 100644
--- a/internal/controller/operator/factory/vmsingle/vmsingle.go
+++ b/internal/controller/operator/factory/vmsingle/vmsingle.go
@@ -126,8 +126,8 @@ func newDeploy(ctx context.Context, cr *vmv1beta1.VMSingle) (*appsv1.Deployment,
ObjectMeta: metav1.ObjectMeta{
Name: cr.PrefixedName(),
Namespace: cr.Namespace,
- Labels: cr.AllLabels(),
- Annotations: cr.AnnotationsFiltered(),
+ Labels: cr.FinalLabels(),
+ Annotations: cr.FinalAnnotations(),
OwnerReferences: []metav1.OwnerReference{cr.AsOwner()},
Finalizers: []string{vmv1beta1.FinalizerName},
},
diff --git a/internal/controller/operator/factory/vtcluster/vmauth_lb.go b/internal/controller/operator/factory/vtcluster/vmauth_lb.go
index 83a883c9f..eea4ac862 100644
--- a/internal/controller/operator/factory/vtcluster/vmauth_lb.go
+++ b/internal/controller/operator/factory/vtcluster/vmauth_lb.go
@@ -229,7 +229,7 @@ func buildVMauthLBDeployment(cr *vmv1.VTCluster) (*appsv1.Deployment, error) {
func createOrUpdateVMAuthLBService(ctx context.Context, rclient client.Client, cr, prevCR *vmv1.VTCluster) error {
builder := func(r *vmv1.VTCluster) *build.ChildBuilder {
b := build.NewChildBuilder(r, vmv1beta1.ClusterComponentBalancer)
- b.SetFinalLabels(labels.Merge(b.AllLabels(), map[string]string{
+ b.SetFinalLabels(labels.Merge(b.FinalLabels(), map[string]string{
vmv1beta1.VMAuthLBServiceProxyTargetLabel: "vmauth",
}))
return b
@@ -268,7 +268,7 @@ func createOrUpdatePodDisruptionBudgetForVMAuthLB(ctx context.Context, rclient c
func createOrUpdateLBProxyService(ctx context.Context, rclient client.Client, cr, prevCR *vmv1.VTCluster, kind vmv1beta1.ClusterComponent, port, prevPort string) error {
builder := func(r *vmv1.VTCluster) *build.ChildBuilder {
b := build.NewChildBuilder(r, kind)
- b.SetFinalLabels(labels.Merge(b.AllLabels(), map[string]string{
+ b.SetFinalLabels(labels.Merge(b.FinalLabels(), map[string]string{
vmv1beta1.VMAuthLBServiceProxyTargetLabel: string(kind),
}))
b.SetSelectorLabels(cr.SelectorLabels(vmv1beta1.ClusterComponentBalancer))
diff --git a/internal/controller/operator/factory/vtsingle/vtsingle.go b/internal/controller/operator/factory/vtsingle/vtsingle.go
index cce5071ec..58ded5470 100644
--- a/internal/controller/operator/factory/vtsingle/vtsingle.go
+++ b/internal/controller/operator/factory/vtsingle/vtsingle.go
@@ -124,8 +124,8 @@ func newDeployment(r *vmv1.VTSingle) (*appsv1.Deployment, error) {
ObjectMeta: metav1.ObjectMeta{
Name: r.PrefixedName(),
Namespace: r.Namespace,
- Labels: r.AllLabels(),
- Annotations: r.AnnotationsFiltered(),
+ Labels: r.FinalLabels(),
+ Annotations: r.FinalAnnotations(),
OwnerReferences: []metav1.OwnerReference{r.AsOwner()},
Finalizers: []string{vmv1beta1.FinalizerName},
},
diff --git a/internal/manager/manager.go b/internal/manager/manager.go
index 753054d41..c46cb360a 100644
--- a/internal/manager/manager.go
+++ b/internal/manager/manager.go
@@ -308,8 +308,6 @@ func RunManager(ctx context.Context) error {
build.SetSkipRuntimeValidation(true)
}
- vmv1beta1.SetLabelAndAnnotationPrefixes(baseConfig.FilterChildLabelPrefixes, baseConfig.FilterChildAnnotationPrefixes)
-
if err := initControllers(mgr, ctrl.Log, baseConfig); err != nil {
return err
}