@@ -100,6 +100,13 @@ def parse_args(argv: list[str]) -> argparse.Namespace:
100
100
default = [],
101
101
)
102
102
103
+ parser .add_argument (
104
+ "--skip-operator" ,
105
+ help = "Skip given operator(s) when installing a release." ,
106
+ nargs = "*" ,
107
+ default = [],
108
+ )
109
+
103
110
parser .add_argument (
104
111
"--test" ,
105
112
help = "Kuttl test to run." ,
@@ -180,6 +187,7 @@ def have_requirements() -> None:
180
187
@contextlib .contextmanager
181
188
def release_file (
182
189
operators : list [tuple [str , str ]] = [],
190
+ skip_ops : list [str ] = [],
183
191
) -> collections .abc .Generator [str , None , None ]:
184
192
"""Patch release.yaml with operator versions if needed.
185
193
@@ -209,7 +217,22 @@ def release_file(
209
217
patch_version = version
210
218
ops_copy .remove ((op , version )) # found an operator to patch
211
219
break
212
- patched_release .append (line )
220
+ patched_release .append (line .rstrip ('\n ' ))
221
+
222
+ # Filter out skip operators
223
+ skipped_release = []
224
+ for line in patched_release :
225
+ skip = False
226
+ if skip :
227
+ skip = False
228
+ else :
229
+ if any ((op in line for op in skip_ops )):
230
+ skip = True
231
+ break
232
+ else :
233
+ skipped_release .append (line )
234
+ patched_release = skipped_release
235
+
213
236
if ops_copy :
214
237
# Some --operator args were not found in the release file. This is
215
238
# most likely a typo and CI pipelines should terminate early in such
@@ -223,7 +246,7 @@ def release_file(
223
246
delete = False ,
224
247
prefix = "patched" ,
225
248
) as f :
226
- pcontents = "" .join (patched_release )
249
+ pcontents = "\n " .join (patched_release )
227
250
logging .debug (f"Writing patched release to { f .name } : { pcontents } \n " )
228
251
f .write (pcontents )
229
252
return f .name
@@ -353,7 +376,7 @@ def main(argv) -> int:
353
376
logging .basicConfig (encoding = "utf-8" , level = opts .log_level )
354
377
have_requirements ()
355
378
gen_tests (opts .test_suite )
356
- with release_file (opts .operator ) as f :
379
+ with release_file (opts .operator , opts . skip_operator ) as f :
357
380
maybe_install_release (opts .skip_release , f )
358
381
if opts .skip_tests :
359
382
logging .info ("Skip running tests." )
0 commit comments