Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package pluto for openSUSE:Factory checked in at 2022-02-21 19:53:35 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/pluto (Old) and /work/SRC/openSUSE:Factory/.pluto.new.1958 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pluto" Mon Feb 21 19:53:35 2022 rev:2 rq:956309 version:5.4.0 Changes: -------- --- /work/SRC/openSUSE:Factory/pluto/pluto.changes 2022-01-26 21:28:15.553465058 +0100 +++ /work/SRC/openSUSE:Factory/.pluto.new.1958/pluto.changes 2022-02-21 19:53:37.854869087 +0100 @@ -1,0 +2,12 @@ +Wed Feb 16 20:04:02 UTC 2022 - ka...@b1-systems.de + +- Update to version 5.4.0: + * Add support for parsing manifests contained into List objects (#263) + +------------------------------------------------------------------- +Tue Feb 15 15:08:55 UTC 2022 - ka...@b1-systems.de + +- Update to version 5.3.5: + * Remove invalid istio version entry (#259) + +------------------------------------------------------------------- Old: ---- pluto-5.3.4.tar.gz New: ---- pluto-5.4.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ pluto.spec ++++++ --- /var/tmp/diff_new_pack.Qxfasf/_old 2022-02-21 19:53:38.894869290 +0100 +++ /var/tmp/diff_new_pack.Qxfasf/_new 2022-02-21 19:53:38.906869293 +0100 @@ -1,7 +1,7 @@ # # spec file for package pluto # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,7 +19,7 @@ %define __arch_install_post export NO_BRP_STRIP_DEBUG=true Name: pluto -Version: 5.3.4 +Version: 5.4.0 Release: 0 Summary: A cli tool to help discover deprecated apiVersions in Kubernetes License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.Qxfasf/_old 2022-02-21 19:53:38.970869305 +0100 +++ /var/tmp/diff_new_pack.Qxfasf/_new 2022-02-21 19:53:38.974869306 +0100 @@ -3,7 +3,7 @@ <param name="url">https://github.com/FairwindsOps/pluto</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v5.3.4</param> + <param name="revision">v5.4.0</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> <param name="versionrewrite-pattern">v(.*)</param> @@ -16,7 +16,7 @@ <param name="compression">gz</param> </service> <service name="go_modules" mode="disabled"> - <param name="archive">pluto-5.3.4.tar.gz</param> + <param name="archive">pluto-5.4.0.tar.gz</param> </service> </services> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.Qxfasf/_old 2022-02-21 19:53:38.994869310 +0100 +++ /var/tmp/diff_new_pack.Qxfasf/_new 2022-02-21 19:53:38.994869310 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/FairwindsOps/pluto</param> - <param name="changesrevision">c54aa8ab41dcb4ada34fbd2d00bc26361992d314</param></service></servicedata> + <param name="changesrevision">32a6a5787ff0805874ba02b26c0efd54e7f2238d</param></service></servicedata> (No newline at EOF) ++++++ pluto-5.3.4.tar.gz -> pluto-5.4.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pluto-5.3.4/e2e/tests/00_static_files.yaml new/pluto-5.4.0/e2e/tests/00_static_files.yaml --- old/pluto-5.3.4/e2e/tests/00_static_files.yaml 2022-01-25 17:59:17.000000000 +0100 +++ new/pluto-5.4.0/e2e/tests/00_static_files.yaml 2022-02-16 20:33:34.000000000 +0100 @@ -69,3 +69,12 @@ assertions: - result.code ShouldEqual 0 - result.systemout ShouldEqual "No output to display" + +- name: static files in a List + steps: + - script: pluto detect-files -d assets/list --target-versions k8s=v1.15.0 + assertions: + - result.code ShouldEqual 2 + - result.systemout ShouldContainSubstring "NAME KIND VERSION REPLACEMENT REMOVED DEPRECATED" + - result.systemout ShouldContainSubstring "utilities Deployment extensions/v1beta1 apps/v1 false true" + - result.systemout ShouldNotContainSubstring "utilities Deployment apps/v1 false false" \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pluto-5.3.4/e2e/tests/assets/list/list-deployment-deprecated-and-non-deprecated.yaml new/pluto-5.4.0/e2e/tests/assets/list/list-deployment-deprecated-and-non-deprecated.yaml --- old/pluto-5.3.4/e2e/tests/assets/list/list-deployment-deprecated-and-non-deprecated.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/pluto-5.4.0/e2e/tests/assets/list/list-deployment-deprecated-and-non-deprecated.yaml 2022-02-16 20:33:34.000000000 +0100 @@ -0,0 +1,78 @@ +apiVersion: v1 +items: +- apiVersion: extensions/v1beta1 + kind: Deployment + metadata: + name: utilities + labels: + app: utilities + spec: + replicas: 1 + selector: + matchLabels: + app: utilities + template: + metadata: + labels: + app: utilities + spec: + containers: + - name: utilities + image: quay.io/sudermanjr/utilities:latest + command: [ "/bin/bash", "-c", "--" ] + args: [ "while true; do sleep 30; done;" ] + securityContext: + readOnlyRootFilesystem: true + allowPrivilegeEscalation: false + runAsNonRoot: true + runAsUser: 10324 + capabilities: + drop: + - ALL + resources: + requests: + cpu: 30m + memory: 64Mi + limits: + cpu: 100m + memory: 128Mi +- apiVersion: apps/v1 + kind: Deployment + metadata: + name: utilities + labels: + app: utilities + spec: + replicas: 1 + selector: + matchLabels: + app: utilities + template: + metadata: + labels: + app: utilities + spec: + containers: + - name: utilities + image: quay.io/sudermanjr/utilities:latest + command: [ "/bin/bash", "-c", "--" ] + args: [ "while true; do sleep 30; done;" ] + securityContext: + readOnlyRootFilesystem: true + allowPrivilegeEscalation: false + runAsNonRoot: true + runAsUser: 10324 + capabilities: + drop: + - ALL + resources: + requests: + cpu: 30m + memory: 64Mi + limits: + cpu: 100m + memory: 128Mi +kind: List +metadata: + resourceVersion: '' + selfLink: '' \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pluto-5.3.4/e2e/tests/assets/list/list-deployment-non-deprecated.yaml new/pluto-5.4.0/e2e/tests/assets/list/list-deployment-non-deprecated.yaml --- old/pluto-5.3.4/e2e/tests/assets/list/list-deployment-non-deprecated.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/pluto-5.4.0/e2e/tests/assets/list/list-deployment-non-deprecated.yaml 2022-02-16 20:33:34.000000000 +0100 @@ -0,0 +1,42 @@ +apiVersion: v1 +items: +- apiVersion: apps/v1 + kind: Deployment + metadata: + name: utilities + labels: + app: utilities + spec: + replicas: 1 + selector: + matchLabels: + app: utilities + template: + metadata: + labels: + app: utilities + spec: + containers: + - name: utilities + image: quay.io/sudermanjr/utilities:latest + command: [ "/bin/bash", "-c", "--" ] + args: [ "while true; do sleep 30; done;" ] + securityContext: + readOnlyRootFilesystem: true + allowPrivilegeEscalation: false + runAsNonRoot: true + runAsUser: 10324 + capabilities: + drop: + - ALL + resources: + requests: + cpu: 30m + memory: 64Mi + limits: + cpu: 100m + memory: 128Mi +kind: List +metadata: + resourceVersion: '' + selfLink: '' \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pluto-5.3.4/pkg/api/versions.go new/pluto-5.4.0/pkg/api/versions.go --- old/pluto-5.3.4/pkg/api/versions.go 2022-01-25 17:59:17.000000000 +0100 +++ new/pluto-5.4.0/pkg/api/versions.go 2022-02-16 20:33:34.000000000 +0100 @@ -33,6 +33,7 @@ Kind string `json:"kind" yaml:"kind"` APIVersion string `json:"apiVersion" yaml:"apiVersion"` Metadata StubMeta `json:"metadata" yaml:"metadata"` + Items []Stub `json:"items" yaml:"items"` } // StubMeta will catch kube resource metadata @@ -132,7 +133,7 @@ if err != nil { return nil, err } - stubs = append(stubs, stub) + expandList(&stubs, stub) return stubs, nil } @@ -155,7 +156,7 @@ } return stubs, err } - stubs = append(stubs, stub) + expandList(&stubs, stub) } if stubs == nil && len(errs) > 0 { return nil, fmt.Errorf("one or more errors parsing yaml resulted in no versions found: %v", errs) @@ -163,6 +164,20 @@ return stubs, nil } +// expandList checks if we have a List manifest. +// If it is the case, the manifests inside are expanded, otherwise we just return the single manifest +func expandList(stubs *[]*Stub, currentStub *Stub) { + if currentStub.Items != nil { + klog.V(5).Infof("found a list with %d items, attempting to expand", len(currentStub.Items)) + for _, stub := range currentStub.Items { + currentItem := stub + *stubs = append(*stubs, ¤tItem) + } + } else { + *stubs = append(*stubs, currentStub) + } +} + // IsDeprecatedIn returns true if the version is deprecated in the applicable targetVersion // Will return false if the targetVersion passed is not a valid semver string func (v *Version) isDeprecatedIn(targetVersions map[string]string) bool { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pluto-5.3.4/pkg/api/versions_test.go new/pluto-5.4.0/pkg/api/versions_test.go --- old/pluto-5.3.4/pkg/api/versions_test.go 2022-01-25 17:59:17.000000000 +0100 +++ new/pluto-5.4.0/pkg/api/versions_test.go 2022-02-16 20:33:34.000000000 +0100 @@ -82,6 +82,12 @@ want: []*Stub{{Kind: "foo", APIVersion: "bar"}}, wantErr: false, }, + { + name: "json list is multiple stubs", + data: []byte(`{"kind": "List", "apiVersion": "v1", "items": [{"kind": "foo", "apiVersion": "bar"},{"kind": "bar", "apiVersion": "foo"}]}`), + want: []*Stub{{Kind: "foo", APIVersion: "bar"},{Kind: "bar", APIVersion: "foo"}}, + wantErr: false, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { @@ -122,6 +128,12 @@ want: []*Stub{{Kind: "foo", APIVersion: "bar"}}, wantErr: false, }, + { + name: "yaml list is multiple stubs", + data: []byte("kind: List\napiVersion: v1\nitems:\n- kind: foo\n apiVersion: bar\n- kind: bar\n apiVersion: foo"), + want: []*Stub{{Kind: "foo", APIVersion: "bar"},{Kind: "bar", APIVersion: "foo"}}, + wantErr: false, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { @@ -227,6 +239,12 @@ wantErr: false, }, { + name: "yaml list has version", + data: []byte("kind: List\napiVersion: v1\nitems:\n- kind: Deployment\n apiVersion: extensions/v1beta1"), + want: []*Output{{APIVersion: &testVersionDeployment}}, + wantErr: false, + }, + { name: "json no version", data: []byte("{}"), want: nil, @@ -250,6 +268,12 @@ want: []*Output{{APIVersion: &testVersionDeployment}}, wantErr: false, }, + { + name: "json list has version", + data: []byte(`{"kind": "List", "apiVersion": "v1", "items": [{"kind": "Deployment", "apiVersion": "extensions/v1beta1"}]}`), + want: []*Output{{APIVersion: &testVersionDeployment}}, + wantErr: false, + }, { name: "not yaml", data: []byte("*."), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pluto-5.3.4/versions.yaml new/pluto-5.4.0/versions.yaml --- old/pluto-5.3.4/versions.yaml 2022-01-25 17:59:17.000000000 +0100 +++ new/pluto-5.4.0/versions.yaml 2022-02-16 20:33:34.000000000 +0100 @@ -299,12 +299,6 @@ removed-in: v1.6.0 replacement-api: security.istio.io/v1beta1 component: istio - - version: networking.istio.io/v1alpha3 - kind: "" - deprecated-in: v1.5.0 - removed-in: "" - replacement-api: networking.istio.io/v1beta1 - component: istio - version: certmanager.k8s.io/v1alpha1 kind: Certificate deprecated-in: v0.11.0 ++++++ vendor.tar.gz ++++++