From c991fa82223260c0a6398435852dfc0e30e7c9bb Mon Sep 17 00:00:00 2001 From: Andrii Chubatiuk Date: Sun, 23 Nov 2025 13:47:48 +0200 Subject: [PATCH] chore: removed deprecations, that were planned to be removed in 0.52 --- .github/workflows/main.yaml | 9 +--- .github/workflows/release.yaml | 9 +--- api/operator/v1/vlagent_types.go | 28 +++++------ api/operator/v1/vlcluster_types.go | 21 ++++---- api/operator/v1/vlsingle_types.go | 28 +++++------ api/operator/v1/vmanomaly_types.go | 30 +++++------- api/operator/v1/vtcluster_types.go | 21 ++++---- api/operator/v1/vtsingle_types.go | 29 +++++------ api/operator/v1beta1/vlogs_types.go | 39 +++++---------- api/operator/v1beta1/vmagent_types.go | 40 +++++----------- api/operator/v1beta1/vmalert_types.go | 39 +++++---------- api/operator/v1beta1/vmalertmanager_types.go | 39 +++++---------- api/operator/v1beta1/vmauth_types.go | 48 +++++-------------- api/operator/v1beta1/vmcluster_types.go | 46 ++++-------------- api/operator/v1beta1/vmextra_types.go | 31 ------------ api/operator/v1beta1/vmsingle_types.go | 46 ++++++------------ api/operator/v1beta1/vmuser_types.go | 37 +++++++------- api/operator/v1beta1/zz_generated.deepcopy.go | 5 ++ config/crd/overlay/crd.specless.yaml | 8 ---- config/crd/overlay/crd.yaml | 31 ++++++++---- config/olm/kind.yaml | 6 +++ docs/CHANGELOG.md | 7 ++- docs/api.md | 3 +- docs/env.md | 2 - internal/config/config.go | 2 - .../operator/factory/build/build.go | 4 +- .../operator/factory/build/cache.go | 4 +- .../operator/factory/build/cluster.go | 9 +--- .../controller/operator/factory/build/hpa.go | 4 +- .../controller/operator/factory/build/pdb.go | 4 +- .../operator/factory/build/service.go | 4 +- .../operator/factory/build/service_account.go | 8 ++-- .../operator/factory/finalize/common.go | 2 +- .../operator/factory/vlagent/vlagent.go | 4 +- .../operator/factory/vlcluster/vmauth_lb.go | 4 +- .../operator/factory/vlsingle/vlogs.go | 4 +- .../operator/factory/vlsingle/vlsingle.go | 4 +- .../operator/factory/vmagent/rbac.go | 16 +++---- .../operator/factory/vmagent/vmagent.go | 16 +++---- .../operator/factory/vmalert/vmalert.go | 4 +- .../vmalertmanager/alertmanager_test.go | 10 ++-- .../operator/factory/vmalertmanager/rbac.go | 8 ++-- .../factory/vmalertmanager/statefulset.go | 8 ++-- .../operator/factory/vmanomaly/statefulset.go | 4 +- .../operator/factory/vmauth/rbac.go | 8 ++-- .../operator/factory/vmauth/vmauth.go | 6 +-- .../operator/factory/vmauth/vmusers_config.go | 4 +- .../operator/factory/vmcluster/vmcluster.go | 14 +++--- .../operator/factory/vmsingle/vmsingle.go | 4 +- .../operator/factory/vtcluster/vmauth_lb.go | 4 +- .../operator/factory/vtsingle/vtsingle.go | 4 +- internal/manager/manager.go | 2 - 52 files changed, 295 insertions(+), 476 deletions(-) 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 9d43d4c3d..45601fa06 100644 --- a/api/operator/v1beta1/vmauth_types.go +++ b/api/operator/v1beta1/vmauth_types.go @@ -558,15 +558,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 @@ -598,20 +589,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", @@ -629,21 +606,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 ca75a293f..af6e536a1 100644 --- a/api/operator/v1beta1/zz_generated.deepcopy.go +++ b/api/operator/v1beta1/zz_generated.deepcopy.go @@ -6880,6 +6880,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 64779564f..1f34731b2 100644 --- a/config/crd/overlay/crd.yaml +++ b/config/crd/overlay/crd.yaml @@ -29729,10 +29729,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"' @@ -39364,10 +39360,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 @@ -40406,6 +40398,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 3b45779ae..fabbc7b72 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -13,11 +13,16 @@ 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). * FEATURE: [config-reloader](https://github.com/VictoriaMetrics/operator/blob/master/cmd/config-reloader/README.md): set default config reloader image version equal to current operator version. See [#2562](https://github.com/VictoriaMetrics/helm-charts/pull/2562). * FEATURE: [vmagent](https://docs.victoriametrics.com/operator/resources/vmagent/): do not set `promscrape.cluster.membersCount` and `promscrape.cluster.memberNum` flags in ingestOnly mode. See [#1594](https://github.com/VictoriaMetrics/operator/issues/1594). +* 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). @@ -454,7 +459,7 @@ If you still want to upgrade, you can override the vmagent image version by sett ![AppVersion: v1.3.2](https://img.shields.io/badge/v1.3.2-success?label=Default%20VL%20version&logo=VictoriaMetrics&labelColor=gray&link=https%3A%2F%2Fdocs.victoriametrics.com%2Fvictorialogs%2Fchangelog%2F%23v132) **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 861800c1f..f3b004799 100644 --- a/docs/api.md +++ b/docs/api.md @@ -2209,7 +2209,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 | | --- | --- | @@ -4859,6 +4859,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 1c5744f4f..f305c2336 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 79455657e..336e5cc63 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 2c7ed2618..2607a4b36 100644 --- a/internal/controller/operator/factory/vmauth/vmauth.go +++ b/internal/controller/operator/factory/vmauth/vmauth.go @@ -135,8 +135,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{ @@ -443,7 +443,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 8d61ad0f3..6ca5b11b6 100644 --- a/internal/manager/manager.go +++ b/internal/manager/manager.go @@ -306,8 +306,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 }