From bbcf3f27b53ee3c9c9eb32ded2d635e4dabe25c8 Mon Sep 17 00:00:00 2001
From: Stefan Prodan
Date: Sat, 4 May 2024 12:23:24 +0300
Subject: [PATCH] Remove deprecated `patchesStrategicMerge` and
`patchesJson6902` from v2 API
Signed-off-by: Stefan Prodan
---
api/v2/condition_types.go | 16 ---
api/v2/helmrelease_types.go | 10 --
api/v2/zz_generated.deepcopy.go | 36 ++----
.../helm.toolkit.fluxcd.io_helmreleases.yaml | 103 ------------------
docs/api/v2/helm.md | 30 -----
internal/postrender/build.go | 6 +-
internal/postrender/kustomize.go | 24 ----
internal/postrender/kustomize_test.go | 75 +++----------
8 files changed, 27 insertions(+), 273 deletions(-)
diff --git a/api/v2/condition_types.go b/api/v2/condition_types.go
index 26a6d807a..fb4c6d65f 100644
--- a/api/v2/condition_types.go
+++ b/api/v2/condition_types.go
@@ -76,23 +76,7 @@ const (
// HelmRelease failed.
ArtifactFailedReason string = "ArtifactFailed"
- // InitFailedReason represents the fact that the initialization of the Helm
- // configuration failed.
- InitFailedReason string = "InitFailed"
-
- // GetLastReleaseFailedReason represents the fact that observing the last
- // release failed.
- GetLastReleaseFailedReason string = "GetLastReleaseFailed"
-
// DependencyNotReadyReason represents the fact that
// one of the dependencies is not ready.
DependencyNotReadyReason string = "DependencyNotReady"
-
- // ReconciliationSucceededReason represents the fact that
- // the reconciliation succeeded.
- ReconciliationSucceededReason string = "ReconciliationSucceeded"
-
- // ReconciliationFailedReason represents the fact that
- // the reconciliation failed.
- ReconciliationFailedReason string = "ReconciliationFailed"
)
diff --git a/api/v2/helmrelease_types.go b/api/v2/helmrelease_types.go
index f9c3d9619..688db28d0 100644
--- a/api/v2/helmrelease_types.go
+++ b/api/v2/helmrelease_types.go
@@ -49,16 +49,6 @@ type Kustomize struct {
// +optional
Patches []kustomize.Patch `json:"patches,omitempty"`
- // Strategic merge patches, defined as inline YAML objects.
- // Deprecated: use Patches instead.
- // +optional
- PatchesStrategicMerge []apiextensionsv1.JSON `json:"patchesStrategicMerge,omitempty"`
-
- // JSON 6902 patches, defined as inline YAML objects.
- // Deprecated: use Patches instead.
- // +optional
- PatchesJSON6902 []kustomize.JSON6902Patch `json:"patchesJson6902,omitempty"`
-
// Images is a list of (image name, new name, new tag or digest)
// for changing image names, tags or digests. This can also be achieved with a
// patch, but this operator is simpler to specify.
diff --git a/api/v2/zz_generated.deepcopy.go b/api/v2/zz_generated.deepcopy.go
index 6f477e31c..57e62b402 100644
--- a/api/v2/zz_generated.deepcopy.go
+++ b/api/v2/zz_generated.deepcopy.go
@@ -23,8 +23,8 @@ package v2
import (
"github.com/fluxcd/pkg/apis/kustomize"
"github.com/fluxcd/pkg/apis/meta"
- "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
+ "k8s.io/apimachinery/pkg/apis/meta/v1"
runtime "k8s.io/apimachinery/pkg/runtime"
)
@@ -151,7 +151,7 @@ func (in *HelmChartTemplateSpec) DeepCopyInto(out *HelmChartTemplateSpec) {
out.SourceRef = in.SourceRef
if in.Interval != nil {
in, out := &in.Interval, &out.Interval
- *out = new(metav1.Duration)
+ *out = new(v1.Duration)
**out = **in
}
if in.ValuesFiles != nil {
@@ -277,7 +277,7 @@ func (in *HelmReleaseSpec) DeepCopyInto(out *HelmReleaseSpec) {
}
if in.Timeout != nil {
in, out := &in.Timeout, &out.Timeout
- *out = new(metav1.Duration)
+ *out = new(v1.Duration)
**out = **in
}
if in.MaxHistory != nil {
@@ -327,7 +327,7 @@ func (in *HelmReleaseSpec) DeepCopyInto(out *HelmReleaseSpec) {
}
if in.Values != nil {
in, out := &in.Values, &out.Values
- *out = new(v1.JSON)
+ *out = new(apiextensionsv1.JSON)
(*in).DeepCopyInto(*out)
}
if in.PostRenderers != nil {
@@ -354,7 +354,7 @@ func (in *HelmReleaseStatus) DeepCopyInto(out *HelmReleaseStatus) {
*out = *in
if in.Conditions != nil {
in, out := &in.Conditions, &out.Conditions
- *out = make([]metav1.Condition, len(*in))
+ *out = make([]v1.Condition, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
@@ -413,7 +413,7 @@ func (in *Install) DeepCopyInto(out *Install) {
*out = *in
if in.Timeout != nil {
in, out := &in.Timeout, &out.Timeout
- *out = new(metav1.Duration)
+ *out = new(v1.Duration)
**out = **in
}
if in.Remediation != nil {
@@ -468,20 +468,6 @@ func (in *Kustomize) DeepCopyInto(out *Kustomize) {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
- if in.PatchesStrategicMerge != nil {
- in, out := &in.PatchesStrategicMerge, &out.PatchesStrategicMerge
- *out = make([]v1.JSON, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- if in.PatchesJSON6902 != nil {
- in, out := &in.PatchesJSON6902, &out.PatchesJSON6902
- *out = make([]kustomize.JSON6902Patch, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
if in.Images != nil {
in, out := &in.Images, &out.Images
*out = make([]kustomize.Image, len(*in))
@@ -524,7 +510,7 @@ func (in *Rollback) DeepCopyInto(out *Rollback) {
*out = *in
if in.Timeout != nil {
in, out := &in.Timeout, &out.Timeout
- *out = new(metav1.Duration)
+ *out = new(v1.Duration)
**out = **in
}
}
@@ -607,7 +593,7 @@ func (in *Test) DeepCopyInto(out *Test) {
*out = *in
if in.Timeout != nil {
in, out := &in.Timeout, &out.Timeout
- *out = new(metav1.Duration)
+ *out = new(v1.Duration)
**out = **in
}
if in.Filters != nil {
@@ -653,7 +639,7 @@ func (in *Uninstall) DeepCopyInto(out *Uninstall) {
*out = *in
if in.Timeout != nil {
in, out := &in.Timeout, &out.Timeout
- *out = new(metav1.Duration)
+ *out = new(v1.Duration)
**out = **in
}
if in.DeletionPropagation != nil {
@@ -678,7 +664,7 @@ func (in *Upgrade) DeepCopyInto(out *Upgrade) {
*out = *in
if in.Timeout != nil {
in, out := &in.Timeout, &out.Timeout
- *out = new(metav1.Duration)
+ *out = new(v1.Duration)
**out = **in
}
if in.Remediation != nil {
diff --git a/config/crd/bases/helm.toolkit.fluxcd.io_helmreleases.yaml b/config/crd/bases/helm.toolkit.fluxcd.io_helmreleases.yaml
index 7ed2816c2..f60447460 100644
--- a/config/crd/bases/helm.toolkit.fluxcd.io_helmreleases.yaml
+++ b/config/crd/bases/helm.toolkit.fluxcd.io_helmreleases.yaml
@@ -581,109 +581,6 @@ spec:
- patch
type: object
type: array
- patchesJson6902:
- description: |-
- JSON 6902 patches, defined as inline YAML objects.
- Deprecated: use Patches instead.
- items:
- description: JSON6902Patch contains a JSON6902 patch and
- the target the patch should be applied to.
- properties:
- patch:
- description: Patch contains the JSON6902 patch document
- with an array of operation objects.
- items:
- description: |-
- JSON6902 is a JSON6902 operation object.
- https://datatracker.ietf.org/doc/html/rfc6902#section-4
- properties:
- from:
- description: |-
- From contains a JSON-pointer value that references a location within the target document where the operation is
- performed. The meaning of the value depends on the value of Op, and is NOT taken into account by all operations.
- type: string
- op:
- description: |-
- Op indicates the operation to perform. Its value MUST be one of "add", "remove", "replace", "move", "copy", or
- "test".
- https://datatracker.ietf.org/doc/html/rfc6902#section-4
- enum:
- - test
- - remove
- - add
- - replace
- - move
- - copy
- type: string
- path:
- description: |-
- Path contains the JSON-pointer value that references a location within the target document where the operation
- is performed. The meaning of the value depends on the value of Op.
- type: string
- value:
- description: |-
- Value contains a valid JSON structure. The meaning of the value depends on the value of Op, and is NOT taken into
- account by all operations.
- x-kubernetes-preserve-unknown-fields: true
- required:
- - op
- - path
- type: object
- type: array
- target:
- description: Target points to the resources that the
- patch document should be applied to.
- properties:
- annotationSelector:
- description: |-
- AnnotationSelector is a string that follows the label selection expression
- https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
- It matches with the resource annotations.
- type: string
- group:
- description: |-
- Group is the API group to select resources from.
- Together with Version and Kind it is capable of unambiguously identifying and/or selecting resources.
- https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
- type: string
- kind:
- description: |-
- Kind of the API Group to select resources from.
- Together with Group and Version it is capable of unambiguously
- identifying and/or selecting resources.
- https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
- type: string
- labelSelector:
- description: |-
- LabelSelector is a string that follows the label selection expression
- https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
- It matches with the resource labels.
- type: string
- name:
- description: Name to match resources with.
- type: string
- namespace:
- description: Namespace to select resources from.
- type: string
- version:
- description: |-
- Version of the API Group to select resources from.
- Together with Group and Kind it is capable of unambiguously identifying and/or selecting resources.
- https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
- type: string
- type: object
- required:
- - patch
- - target
- type: object
- type: array
- patchesStrategicMerge:
- description: |-
- Strategic merge patches, defined as inline YAML objects.
- Deprecated: use Patches instead.
- items:
- x-kubernetes-preserve-unknown-fields: true
- type: array
type: object
type: object
type: array
diff --git a/docs/api/v2/helm.md b/docs/api/v2/helm.md
index 20a251a9d..08472f1b8 100644
--- a/docs/api/v2/helm.md
+++ b/docs/api/v2/helm.md
@@ -1983,36 +1983,6 @@ capable of targeting objects based on kind, label and annotation selectors.
-patchesStrategicMerge
-
-
-[]Kubernetes pkg/apis/apiextensions/v1.JSON
-
-
- |
-
-(Optional)
- Strategic merge patches, defined as inline YAML objects.
-Deprecated: use Patches instead.
- |
-
-
-
-patchesJson6902
-
-
-[]github.com/fluxcd/pkg/apis/kustomize.JSON6902Patch
-
-
- |
-
-(Optional)
- JSON 6902 patches, defined as inline YAML objects.
-Deprecated: use Patches instead.
- |
-
-
-
images
diff --git a/internal/postrender/build.go b/internal/postrender/build.go
index de637431f..bac4ea48b 100644
--- a/internal/postrender/build.go
+++ b/internal/postrender/build.go
@@ -32,10 +32,8 @@ func BuildPostRenderers(rel *v2.HelmRelease) helmpostrender.PostRenderer {
for _, r := range rel.Spec.PostRenderers {
if r.Kustomize != nil {
renderers = append(renderers, &Kustomize{
- Patches: r.Kustomize.Patches,
- PatchesStrategicMerge: r.Kustomize.PatchesStrategicMerge,
- PatchesJSON6902: r.Kustomize.PatchesJSON6902,
- Images: r.Kustomize.Images,
+ Patches: r.Kustomize.Patches,
+ Images: r.Kustomize.Images,
})
}
}
diff --git a/internal/postrender/kustomize.go b/internal/postrender/kustomize.go
index 9195be811..5e74954f4 100644
--- a/internal/postrender/kustomize.go
+++ b/internal/postrender/kustomize.go
@@ -21,7 +21,6 @@ import (
"encoding/json"
"sync"
- apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
"sigs.k8s.io/kustomize/api/krusty"
"sigs.k8s.io/kustomize/api/resmap"
kustypes "sigs.k8s.io/kustomize/api/types"
@@ -34,12 +33,6 @@ import (
type Kustomize struct {
// Patches is a list of patches to apply to the rendered manifests.
Patches []kustomize.Patch
- // PatchesStrategicMerge is a list of strategic merge patches to apply to
- // the rendered manifests.
- PatchesStrategicMerge []apiextensionsv1.JSON
- // PatchesJSON6902 is a list of JSON patches to apply to the rendered
- // manifests.
- PatchesJSON6902 []kustomize.JSON6902Patch
// Images is a list of images to replace in the rendered manifests.
Images []kustomize.Image
}
@@ -66,23 +59,6 @@ func (k *Kustomize) Run(renderedManifests *bytes.Buffer) (modifiedManifests *byt
})
}
- // Add strategic merge patches.
- for _, m := range k.PatchesStrategicMerge {
- cfg.PatchesStrategicMerge = append(cfg.PatchesStrategicMerge, kustypes.PatchStrategicMerge(m.Raw))
- }
-
- // Add JSON 6902 patches.
- for i, m := range k.PatchesJSON6902 {
- patch, err := json.Marshal(m.Patch)
- if err != nil {
- return nil, err
- }
- cfg.PatchesJson6902 = append(cfg.PatchesJson6902, kustypes.Patch{
- Patch: string(patch),
- Target: adaptSelector(&k.PatchesJSON6902[i].Target),
- })
- }
-
// Write kustomization config to file.
kustomization, err := json.Marshal(cfg)
if err != nil {
diff --git a/internal/postrender/kustomize_test.go b/internal/postrender/kustomize_test.go
index 801086580..7681603c1 100644
--- a/internal/postrender/kustomize_test.go
+++ b/internal/postrender/kustomize_test.go
@@ -18,11 +18,9 @@ package postrender
import (
"bytes"
- "encoding/json"
"testing"
. "github.com/onsi/gomega"
- v1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
"sigs.k8s.io/yaml"
"github.com/fluxcd/pkg/apis/kustomize"
@@ -61,14 +59,12 @@ spec:
func Test_postRendererKustomize_Run(t *testing.T) {
tests := []struct {
- name string
- renderedManifests string
- patches string
- patchesStrategicMerge string
- patchesJson6902 string
- images string
- expectManifests string
- expectErr bool
+ name string
+ renderedManifests string
+ patches string
+ images string
+ expectManifests string
+ expectErr bool
}{
{
name: "image tag",
@@ -121,12 +117,12 @@ spec:
{
name: "json 6902",
renderedManifests: json6902Mock,
- patchesJson6902: `
+ patches: `
- target:
version: v1
kind: Pod
name: json6902
- patch:
+ patch: |
- op: test
path: /metadata/annotations/c
value: foo
@@ -188,33 +184,6 @@ metadata:
d: "42"
e: "42"
name: json6902
-`,
- },
- {
- name: "strategic merge test",
- renderedManifests: strategicMergeMock,
- patchesStrategicMerge: `
-- apiVersion: apps/v1
- kind: Deployment
- metadata:
- name: nginx
- spec:
- template:
- spec:
- containers:
- - name: nginx
- image: nignx:latest
-`,
- expectManifests: `apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: nginx
-spec:
- template:
- spec:
- containers:
- - image: nignx:latest
- name: nginx
`,
},
{
@@ -255,14 +224,12 @@ spec:
t.Run(tt.name, func(t *testing.T) {
g := NewWithT(t)
- spec, err := mockKustomize(tt.patches, tt.patchesStrategicMerge, tt.patchesJson6902, tt.images)
+ spec, err := mockKustomize(tt.patches, tt.images)
g.Expect(err).ToNot(HaveOccurred())
k := &Kustomize{
- Patches: spec.Patches,
- PatchesStrategicMerge: spec.PatchesStrategicMerge,
- PatchesJSON6902: spec.PatchesJSON6902,
- Images: spec.Images,
+ Patches: spec.Patches,
+ Images: spec.Images,
}
gotModifiedManifests, err := k.Run(bytes.NewBufferString(tt.renderedManifests))
if tt.expectErr {
@@ -277,31 +244,17 @@ spec:
}
}
-func mockKustomize(patches, patchesStrategicMerge, patchesJson6902, images string) (*v2.Kustomize, error) {
+func mockKustomize(patches, images string) (*v2.Kustomize, error) {
var targeted []kustomize.Patch
if err := yaml.Unmarshal([]byte(patches), &targeted); err != nil {
return nil, err
}
- b, err := yaml.YAMLToJSON([]byte(patchesStrategicMerge))
- if err != nil {
- return nil, err
- }
- var strategicMerge []v1.JSON
- if err := json.Unmarshal(b, &strategicMerge); err != nil {
- return nil, err
- }
- var json6902 []kustomize.JSON6902Patch
- if err := yaml.Unmarshal([]byte(patchesJson6902), &json6902); err != nil {
- return nil, err
- }
var imgs []kustomize.Image
if err := yaml.Unmarshal([]byte(images), &imgs); err != nil {
return nil, err
}
return &v2.Kustomize{
- Patches: targeted,
- PatchesStrategicMerge: strategicMerge,
- PatchesJSON6902: json6902,
- Images: imgs,
+ Patches: targeted,
+ Images: imgs,
}, nil
}
|