@@ -20,7 +20,6 @@ import (
20
20
appsv1 "k8s.io/api/apps/v1"
21
21
authorizationv1 "k8s.io/api/authorization/v1"
22
22
corev1 "k8s.io/api/core/v1"
23
- policyv1beta1 "k8s.io/api/policy/v1beta1"
24
23
rbacv1 "k8s.io/api/rbac/v1"
25
24
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions"
26
25
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
@@ -48,6 +47,7 @@ import (
48
47
"github.com/operator-framework/operator-lifecycle-manager/pkg/lib/operatorclient"
49
48
"github.com/operator-framework/operator-lifecycle-manager/pkg/lib/ownerutil"
50
49
"github.com/operator-framework/operator-lifecycle-manager/test/e2e/ctx"
50
+ "github.com/operator-framework/operator-lifecycle-manager/test/e2e/util"
51
51
)
52
52
53
53
var _ = Describe ("Install Plan" , func () {
@@ -76,11 +76,11 @@ var _ = Describe("Install Plan", func() {
76
76
77
77
When ("an InstallPlan step contains a deprecated resource version" , func () {
78
78
var (
79
- csv operatorsv1alpha1.ClusterServiceVersion
80
- plan operatorsv1alpha1.InstallPlan
81
- pdb policyv1beta1. PodDisruptionBudget
82
- manifest string
83
- counter float64
79
+ csv operatorsv1alpha1.ClusterServiceVersion
80
+ plan operatorsv1alpha1.InstallPlan
81
+ deprecated client. Object
82
+ manifest string
83
+ counter float64
84
84
)
85
85
86
86
BeforeEach (func () {
@@ -90,13 +90,8 @@ var _ = Describe("Install Plan", func() {
90
90
v , err := dc .ServerVersion ()
91
91
Expect (err ).ToNot (HaveOccurred ())
92
92
93
- if minor , err := strconv .Atoi (v .Minor ); err == nil && minor < 21 {
94
- // This is a tactical can-kick with
95
- // the expectation that the
96
- // event-emitting behavior being
97
- // tested in this context will have
98
- // moved by the time 1.25 arrives.
99
- Skip ("hack: test is dependent on 1.21+ behavior" )
93
+ if minor , err := strconv .Atoi (v .Minor ); err == nil && minor < 16 {
94
+ Skip ("test is dependent on CRD v1 introduced at 1.16" )
100
95
}
101
96
})
102
97
@@ -107,26 +102,21 @@ var _ = Describe("Install Plan", func() {
107
102
counter = metric .Value
108
103
}
109
104
}
105
+ deprecatedCRD , err := util .DecodeFile ("./testdata/deprecated-crd/deprecated.crd.yaml" , & apiextensionsv1.CustomResourceDefinition {})
106
+ Expect (err ).NotTo (HaveOccurred ())
107
+
108
+ Expect (ctx .Ctx ().Client ().Create (context .Background (), deprecatedCRD )).To (Succeed ())
110
109
111
110
csv = newCSV (genName ("test-csv-" ), ns .GetName (), "" , semver.Version {}, nil , nil , nil )
112
111
Expect (ctx .Ctx ().Client ().Create (context .Background (), & csv )).To (Succeed ())
113
112
114
- pdb = policyv1beta1.PodDisruptionBudget {
115
- ObjectMeta : metav1.ObjectMeta {
116
- Name : genName ("test-pdb-" ),
117
- },
118
- TypeMeta : metav1.TypeMeta {
119
- Kind : "PodDisruptionBudget" ,
120
- APIVersion : policyv1beta1 .SchemeGroupVersion .String (),
121
- },
122
- Spec : policyv1beta1.PodDisruptionBudgetSpec {},
123
- }
113
+ deprecated , err = util .DecodeFile ("./testdata/deprecated-crd/deprecated.cr.yaml" , & unstructured.Unstructured {}, util .WithNamespace (ns .GetName ()))
114
+ Expect (err ).NotTo (HaveOccurred ())
124
115
125
116
scheme := runtime .NewScheme ()
126
- Expect (policyv1beta1 .AddToScheme (scheme )).To (Succeed ())
127
117
{
128
118
var b bytes.Buffer
129
- Expect (k8sjson .NewSerializer (k8sjson .DefaultMetaFactory , scheme , scheme , false ).Encode (& pdb , & b )).To (Succeed ())
119
+ Expect (k8sjson .NewSerializer (k8sjson .DefaultMetaFactory , scheme , scheme , false ).Encode (deprecated , & b )).To (Succeed ())
130
120
manifest = b .String ()
131
121
}
132
122
@@ -150,9 +140,9 @@ var _ = Describe("Install Plan", func() {
150
140
Resolving : csv .GetName (),
151
141
Status : operatorsv1alpha1 .StepStatusUnknown ,
152
142
Resource : operatorsv1alpha1.StepResource {
153
- Name : pdb .GetName (),
154
- Version : pdb . APIVersion ,
155
- Kind : pdb . Kind ,
143
+ Name : deprecated .GetName (),
144
+ Version : "v1" ,
145
+ Kind : "Deprecated" ,
156
146
Manifest : manifest ,
157
147
},
158
148
},
@@ -168,6 +158,14 @@ var _ = Describe("Install Plan", func() {
168
158
Eventually (func () error {
169
159
return client .IgnoreNotFound (ctx .Ctx ().Client ().Delete (context .Background (), & csv ))
170
160
}).Should (Succeed ())
161
+ Eventually (func () error {
162
+ deprecatedCRD := & apiextensionsv1.CustomResourceDefinition {
163
+ ObjectMeta : metav1.ObjectMeta {
164
+ Name : "deprecateds.operators.io.operator-framework" ,
165
+ },
166
+ }
167
+ return client .IgnoreNotFound (ctx .Ctx ().Client ().Delete (context .Background (), deprecatedCRD ))
168
+ }).Should (Succeed ())
171
169
})
172
170
173
171
It ("creates an Event surfacing the deprecation warning" , func () {
@@ -200,9 +198,8 @@ var _ = Describe("Install Plan", func() {
200
198
FieldPath : "status.plan[0]" ,
201
199
},
202
200
Reason : "AppliedWithWarnings" ,
203
- Message : fmt .Sprintf ("1 warning(s) generated during installation of operator \" %s\" (PodDisruptionBudget \" %s\" ): policy/v1beta1 PodDisruptionBudget is deprecated in v1.21+, unavailable in v1.25+; use policy/v1 PodDisruptionBudget " , csv .GetName (), pdb .GetName ()),
201
+ Message : fmt .Sprintf ("1 warning(s) generated during installation of operator \" %s\" (Deprecated \" %s\" ): operators.io.operator-framework/v1 Deprecated is deprecated" , csv .GetName (), deprecated .GetName ()),
204
202
}))
205
-
206
203
})
207
204
208
205
It ("increments a metric counting the warning" , func () {
0 commit comments