@@ -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,8 @@ 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
+
51
+ deprecatedv1 "github.com/awgreene/deprecated-crd/api/v1"
51
52
)
52
53
53
54
var _ = Describe ("Install Plan" , func () {
@@ -76,11 +77,11 @@ var _ = Describe("Install Plan", func() {
76
77
77
78
When ("an InstallPlan step contains a deprecated resource version" , func () {
78
79
var (
79
- csv operatorsv1alpha1.ClusterServiceVersion
80
- plan operatorsv1alpha1.InstallPlan
81
- pdb policyv1beta1. PodDisruptionBudget
82
- manifest string
83
- counter float64
80
+ csv operatorsv1alpha1.ClusterServiceVersion
81
+ plan operatorsv1alpha1.InstallPlan
82
+ deprecated deprecatedv1. Deprecated
83
+ manifest string
84
+ counter float64
84
85
)
85
86
86
87
BeforeEach (func () {
@@ -107,26 +108,74 @@ var _ = Describe("Install Plan", func() {
107
108
counter = metric .Value
108
109
}
109
110
}
111
+ deprecatedCRD := & apiextensionsv1.CustomResourceDefinition {
112
+ ObjectMeta : metav1.ObjectMeta {
113
+ Name : "deprecateds.operators.io.operator-framework" ,
114
+ },
115
+ Spec : apiextensionsv1.CustomResourceDefinitionSpec {
116
+ Names : apiextensionsv1.CustomResourceDefinitionNames {
117
+ Plural : "deprecateds" ,
118
+ ListKind : "DeprecatedList" ,
119
+ Singular : "deprecated" ,
120
+ Kind : "Deprecated" ,
121
+ },
122
+ Scope : "Namespaced" ,
123
+ Group : "operators.io.operator-framework" ,
124
+ Versions : []apiextensionsv1.CustomResourceDefinitionVersion {
125
+ {
126
+ Name : "v1" ,
127
+ Served : true ,
128
+ Storage : true ,
129
+ Deprecated : true ,
130
+ Schema : & apiextensionsv1.CustomResourceValidation {
131
+ OpenAPIV3Schema : & apiextensionsv1.JSONSchemaProps {
132
+ Type : "object" ,
133
+ Properties : map [string ]apiextensionsv1.JSONSchemaProps {
134
+ "spec" : {
135
+ Type : "object" ,
136
+ Description : "Spec of a test object." ,
137
+ Properties : map [string ]apiextensionsv1.JSONSchemaProps {
138
+ "foo" : {
139
+ Type : "string" ,
140
+ },
141
+ },
142
+ },
143
+ "status" : {
144
+ Type : "object" ,
145
+ Description : "Spec of a test object." ,
146
+ },
147
+ },
148
+ },
149
+ },
150
+ },
151
+ },
152
+ },
153
+ Status : apiextensionsv1.CustomResourceDefinitionStatus {
154
+ StoredVersions : []string {"v1" },
155
+ },
156
+ }
157
+
158
+ Expect (ctx .Ctx ().Client ().Create (context .Background (), deprecatedCRD )).To (Succeed ())
110
159
111
160
csv = newCSV (genName ("test-csv-" ), ns .GetName (), "" , semver.Version {}, nil , nil , nil )
112
161
Expect (ctx .Ctx ().Client ().Create (context .Background (), & csv )).To (Succeed ())
113
162
114
- pdb = policyv1beta1.PodDisruptionBudget {
115
- ObjectMeta : metav1.ObjectMeta {
116
- Name : genName ("test-pdb-" ),
117
- },
163
+ deprecated = deprecatedv1.Deprecated {
118
164
TypeMeta : metav1.TypeMeta {
119
- Kind : "PodDisruptionBudget" ,
120
- APIVersion : policyv1beta1 .SchemeGroupVersion .String (),
165
+ APIVersion : "operators.io.operator-framework/v1" ,
166
+ Kind : "Deprecated" ,
167
+ },
168
+ ObjectMeta : metav1.ObjectMeta {
169
+ Namespace : ns .GetName (),
170
+ Name : "foo" ,
121
171
},
122
- Spec : policyv1beta1.PodDisruptionBudgetSpec {},
123
172
}
124
173
125
174
scheme := runtime .NewScheme ()
126
- Expect (policyv1beta1 .AddToScheme (scheme )).To (Succeed ())
175
+ Expect (deprecatedv1 .AddToScheme (scheme )).To (Succeed ())
127
176
{
128
177
var b bytes.Buffer
129
- Expect (k8sjson .NewSerializer (k8sjson .DefaultMetaFactory , scheme , scheme , false ).Encode (& pdb , & b )).To (Succeed ())
178
+ Expect (k8sjson .NewSerializer (k8sjson .DefaultMetaFactory , scheme , scheme , false ).Encode (& deprecated , & b )).To (Succeed ())
130
179
manifest = b .String ()
131
180
}
132
181
@@ -150,9 +199,9 @@ var _ = Describe("Install Plan", func() {
150
199
Resolving : csv .GetName (),
151
200
Status : operatorsv1alpha1 .StepStatusUnknown ,
152
201
Resource : operatorsv1alpha1.StepResource {
153
- Name : pdb .GetName (),
154
- Version : pdb . APIVersion ,
155
- Kind : pdb . Kind ,
202
+ Name : deprecated .GetName (),
203
+ Version : "v1" ,
204
+ Kind : "Deprecated" ,
156
205
Manifest : manifest ,
157
206
},
158
207
},
@@ -168,9 +217,17 @@ var _ = Describe("Install Plan", func() {
168
217
Eventually (func () error {
169
218
return client .IgnoreNotFound (ctx .Ctx ().Client ().Delete (context .Background (), & csv ))
170
219
}).Should (Succeed ())
220
+ Eventually (func () error {
221
+ deprecatedCRD := & apiextensionsv1.CustomResourceDefinition {
222
+ ObjectMeta : metav1.ObjectMeta {
223
+ Name : "deprecateds.operators.io.operator-framework" ,
224
+ },
225
+ }
226
+ return client .IgnoreNotFound (ctx .Ctx ().Client ().Delete (context .Background (), deprecatedCRD ))
227
+ }).Should (Succeed ())
171
228
})
172
229
173
- It ("creates an Event surfacing the deprecation warning" , func () {
230
+ FIt ("creates an Event surfacing the deprecation warning" , func () {
174
231
Eventually (func () ([]corev1.Event , error ) {
175
232
var events corev1.EventList
176
233
if err := ctx .Ctx ().Client ().List (context .Background (), & events , client .InNamespace (ns .GetName ())); err != nil {
@@ -200,12 +257,11 @@ var _ = Describe("Install Plan", func() {
200
257
FieldPath : "status.plan[0]" ,
201
258
},
202
259
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 ()),
260
+ 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
261
}))
205
-
206
262
})
207
263
208
- It ("increments a metric counting the warning" , func () {
264
+ FIt ("increments a metric counting the warning" , func () {
209
265
Eventually (func () []Metric {
210
266
return getMetricsFromPod (ctx .Ctx ().KubeClient (), getPodWithLabel (ctx .Ctx ().KubeClient (), "app=catalog-operator" ))
211
267
}).Should (ContainElement (LikeMetric (
0 commit comments