Skip to content

Commit e04b165

Browse files
cli: Mirror images across registries or to S3
A new command `oc image mirror` uses the Docker registry API to read from one or more images and copy them to remote registries (without locally storing those images). The command can also copy to an S3 bucket, creating the necessary structure to form a read-only registry.
1 parent 176a7a1 commit e04b165

File tree

15 files changed

+1627
-1
lines changed

15 files changed

+1627
-1
lines changed

contrib/completions/bash/oc

+106
Original file line numberDiff line numberDiff line change
@@ -12301,6 +12301,111 @@ _oc_idle()
1230112301
noun_aliases=()
1230212302
}
1230312303

12304+
_oc_image_mirror()
12305+
{
12306+
last_command="oc_image_mirror"
12307+
commands=()
12308+
12309+
flags=()
12310+
two_word_flags=()
12311+
local_nonpersistent_flags=()
12312+
flags_with_completion=()
12313+
flags_completion=()
12314+
12315+
flags+=("--filter-by-os=")
12316+
local_nonpersistent_flags+=("--filter-by-os=")
12317+
flags+=("--force")
12318+
local_nonpersistent_flags+=("--force")
12319+
flags+=("--insecure")
12320+
local_nonpersistent_flags+=("--insecure")
12321+
flags+=("--s3-source-bucket=")
12322+
local_nonpersistent_flags+=("--s3-source-bucket=")
12323+
flags+=("--skip-mount")
12324+
local_nonpersistent_flags+=("--skip-mount")
12325+
flags+=("--as=")
12326+
flags+=("--as-group=")
12327+
flags+=("--certificate-authority=")
12328+
flags_with_completion+=("--certificate-authority")
12329+
flags_completion+=("_filedir")
12330+
flags+=("--client-certificate=")
12331+
flags_with_completion+=("--client-certificate")
12332+
flags_completion+=("_filedir")
12333+
flags+=("--client-key=")
12334+
flags_with_completion+=("--client-key")
12335+
flags_completion+=("_filedir")
12336+
flags+=("--cluster=")
12337+
flags+=("--config=")
12338+
flags_with_completion+=("--config")
12339+
flags_completion+=("_filedir")
12340+
flags+=("--context=")
12341+
flags+=("--insecure-skip-tls-verify")
12342+
flags+=("--loglevel=")
12343+
flags+=("--logspec=")
12344+
flags+=("--match-server-version")
12345+
flags+=("--namespace=")
12346+
flags_with_completion+=("--namespace")
12347+
flags_completion+=("__oc_get_namespaces")
12348+
two_word_flags+=("-n")
12349+
flags_with_completion+=("-n")
12350+
flags_completion+=("__oc_get_namespaces")
12351+
flags+=("--request-timeout=")
12352+
flags+=("--server=")
12353+
flags+=("--token=")
12354+
flags+=("--user=")
12355+
12356+
must_have_one_flag=()
12357+
must_have_one_noun=()
12358+
noun_aliases=()
12359+
}
12360+
12361+
_oc_image()
12362+
{
12363+
last_command="oc_image"
12364+
commands=()
12365+
commands+=("mirror")
12366+
12367+
flags=()
12368+
two_word_flags=()
12369+
local_nonpersistent_flags=()
12370+
flags_with_completion=()
12371+
flags_completion=()
12372+
12373+
flags+=("--as=")
12374+
flags+=("--as-group=")
12375+
flags+=("--certificate-authority=")
12376+
flags_with_completion+=("--certificate-authority")
12377+
flags_completion+=("_filedir")
12378+
flags+=("--client-certificate=")
12379+
flags_with_completion+=("--client-certificate")
12380+
flags_completion+=("_filedir")
12381+
flags+=("--client-key=")
12382+
flags_with_completion+=("--client-key")
12383+
flags_completion+=("_filedir")
12384+
flags+=("--cluster=")
12385+
flags+=("--config=")
12386+
flags_with_completion+=("--config")
12387+
flags_completion+=("_filedir")
12388+
flags+=("--context=")
12389+
flags+=("--insecure-skip-tls-verify")
12390+
flags+=("--loglevel=")
12391+
flags+=("--logspec=")
12392+
flags+=("--match-server-version")
12393+
flags+=("--namespace=")
12394+
flags_with_completion+=("--namespace")
12395+
flags_completion+=("__oc_get_namespaces")
12396+
two_word_flags+=("-n")
12397+
flags_with_completion+=("-n")
12398+
flags_completion+=("__oc_get_namespaces")
12399+
flags+=("--request-timeout=")
12400+
flags+=("--server=")
12401+
flags+=("--token=")
12402+
flags+=("--user=")
12403+
12404+
must_have_one_flag=()
12405+
must_have_one_noun=()
12406+
noun_aliases=()
12407+
}
12408+
1230412409
_oc_import_app.json()
1230512410
{
1230612411
last_command="oc_import_app.json"
@@ -18112,6 +18217,7 @@ _oc()
1811218217
commands+=("extract")
1811318218
commands+=("get")
1811418219
commands+=("idle")
18220+
commands+=("image")
1811518221
commands+=("import")
1811618222
commands+=("import-image")
1811718223
commands+=("label")

contrib/completions/bash/openshift

+106
Original file line numberDiff line numberDiff line change
@@ -17559,6 +17559,111 @@ _openshift_cli_idle()
1755917559
noun_aliases=()
1756017560
}
1756117561

17562+
_openshift_cli_image_mirror()
17563+
{
17564+
last_command="openshift_cli_image_mirror"
17565+
commands=()
17566+
17567+
flags=()
17568+
two_word_flags=()
17569+
local_nonpersistent_flags=()
17570+
flags_with_completion=()
17571+
flags_completion=()
17572+
17573+
flags+=("--filter-by-os=")
17574+
local_nonpersistent_flags+=("--filter-by-os=")
17575+
flags+=("--force")
17576+
local_nonpersistent_flags+=("--force")
17577+
flags+=("--insecure")
17578+
local_nonpersistent_flags+=("--insecure")
17579+
flags+=("--s3-source-bucket=")
17580+
local_nonpersistent_flags+=("--s3-source-bucket=")
17581+
flags+=("--skip-mount")
17582+
local_nonpersistent_flags+=("--skip-mount")
17583+
flags+=("--as=")
17584+
flags+=("--as-group=")
17585+
flags+=("--certificate-authority=")
17586+
flags_with_completion+=("--certificate-authority")
17587+
flags_completion+=("_filedir")
17588+
flags+=("--client-certificate=")
17589+
flags_with_completion+=("--client-certificate")
17590+
flags_completion+=("_filedir")
17591+
flags+=("--client-key=")
17592+
flags_with_completion+=("--client-key")
17593+
flags_completion+=("_filedir")
17594+
flags+=("--cluster=")
17595+
flags+=("--config=")
17596+
flags_with_completion+=("--config")
17597+
flags_completion+=("_filedir")
17598+
flags+=("--context=")
17599+
flags+=("--insecure-skip-tls-verify")
17600+
flags+=("--loglevel=")
17601+
flags+=("--logspec=")
17602+
flags+=("--match-server-version")
17603+
flags+=("--namespace=")
17604+
flags_with_completion+=("--namespace")
17605+
flags_completion+=("__oc_get_namespaces")
17606+
two_word_flags+=("-n")
17607+
flags_with_completion+=("-n")
17608+
flags_completion+=("__oc_get_namespaces")
17609+
flags+=("--request-timeout=")
17610+
flags+=("--server=")
17611+
flags+=("--token=")
17612+
flags+=("--user=")
17613+
17614+
must_have_one_flag=()
17615+
must_have_one_noun=()
17616+
noun_aliases=()
17617+
}
17618+
17619+
_openshift_cli_image()
17620+
{
17621+
last_command="openshift_cli_image"
17622+
commands=()
17623+
commands+=("mirror")
17624+
17625+
flags=()
17626+
two_word_flags=()
17627+
local_nonpersistent_flags=()
17628+
flags_with_completion=()
17629+
flags_completion=()
17630+
17631+
flags+=("--as=")
17632+
flags+=("--as-group=")
17633+
flags+=("--certificate-authority=")
17634+
flags_with_completion+=("--certificate-authority")
17635+
flags_completion+=("_filedir")
17636+
flags+=("--client-certificate=")
17637+
flags_with_completion+=("--client-certificate")
17638+
flags_completion+=("_filedir")
17639+
flags+=("--client-key=")
17640+
flags_with_completion+=("--client-key")
17641+
flags_completion+=("_filedir")
17642+
flags+=("--cluster=")
17643+
flags+=("--config=")
17644+
flags_with_completion+=("--config")
17645+
flags_completion+=("_filedir")
17646+
flags+=("--context=")
17647+
flags+=("--insecure-skip-tls-verify")
17648+
flags+=("--loglevel=")
17649+
flags+=("--logspec=")
17650+
flags+=("--match-server-version")
17651+
flags+=("--namespace=")
17652+
flags_with_completion+=("--namespace")
17653+
flags_completion+=("__oc_get_namespaces")
17654+
two_word_flags+=("-n")
17655+
flags_with_completion+=("-n")
17656+
flags_completion+=("__oc_get_namespaces")
17657+
flags+=("--request-timeout=")
17658+
flags+=("--server=")
17659+
flags+=("--token=")
17660+
flags+=("--user=")
17661+
17662+
must_have_one_flag=()
17663+
must_have_one_noun=()
17664+
noun_aliases=()
17665+
}
17666+
1756217667
_openshift_cli_import_app.json()
1756317668
{
1756417669
last_command="openshift_cli_import_app.json"
@@ -23323,6 +23428,7 @@ _openshift_cli()
2332323428
commands+=("extract")
2332423429
commands+=("get")
2332523430
commands+=("idle")
23431+
commands+=("image")
2332623432
commands+=("import")
2332723433
commands+=("import-image")
2332823434
commands+=("label")

contrib/completions/zsh/oc

+106
Original file line numberDiff line numberDiff line change
@@ -12450,6 +12450,111 @@ _oc_idle()
1245012450
noun_aliases=()
1245112451
}
1245212452

12453+
_oc_image_mirror()
12454+
{
12455+
last_command="oc_image_mirror"
12456+
commands=()
12457+
12458+
flags=()
12459+
two_word_flags=()
12460+
local_nonpersistent_flags=()
12461+
flags_with_completion=()
12462+
flags_completion=()
12463+
12464+
flags+=("--filter-by-os=")
12465+
local_nonpersistent_flags+=("--filter-by-os=")
12466+
flags+=("--force")
12467+
local_nonpersistent_flags+=("--force")
12468+
flags+=("--insecure")
12469+
local_nonpersistent_flags+=("--insecure")
12470+
flags+=("--s3-source-bucket=")
12471+
local_nonpersistent_flags+=("--s3-source-bucket=")
12472+
flags+=("--skip-mount")
12473+
local_nonpersistent_flags+=("--skip-mount")
12474+
flags+=("--as=")
12475+
flags+=("--as-group=")
12476+
flags+=("--certificate-authority=")
12477+
flags_with_completion+=("--certificate-authority")
12478+
flags_completion+=("_filedir")
12479+
flags+=("--client-certificate=")
12480+
flags_with_completion+=("--client-certificate")
12481+
flags_completion+=("_filedir")
12482+
flags+=("--client-key=")
12483+
flags_with_completion+=("--client-key")
12484+
flags_completion+=("_filedir")
12485+
flags+=("--cluster=")
12486+
flags+=("--config=")
12487+
flags_with_completion+=("--config")
12488+
flags_completion+=("_filedir")
12489+
flags+=("--context=")
12490+
flags+=("--insecure-skip-tls-verify")
12491+
flags+=("--loglevel=")
12492+
flags+=("--logspec=")
12493+
flags+=("--match-server-version")
12494+
flags+=("--namespace=")
12495+
flags_with_completion+=("--namespace")
12496+
flags_completion+=("__oc_get_namespaces")
12497+
two_word_flags+=("-n")
12498+
flags_with_completion+=("-n")
12499+
flags_completion+=("__oc_get_namespaces")
12500+
flags+=("--request-timeout=")
12501+
flags+=("--server=")
12502+
flags+=("--token=")
12503+
flags+=("--user=")
12504+
12505+
must_have_one_flag=()
12506+
must_have_one_noun=()
12507+
noun_aliases=()
12508+
}
12509+
12510+
_oc_image()
12511+
{
12512+
last_command="oc_image"
12513+
commands=()
12514+
commands+=("mirror")
12515+
12516+
flags=()
12517+
two_word_flags=()
12518+
local_nonpersistent_flags=()
12519+
flags_with_completion=()
12520+
flags_completion=()
12521+
12522+
flags+=("--as=")
12523+
flags+=("--as-group=")
12524+
flags+=("--certificate-authority=")
12525+
flags_with_completion+=("--certificate-authority")
12526+
flags_completion+=("_filedir")
12527+
flags+=("--client-certificate=")
12528+
flags_with_completion+=("--client-certificate")
12529+
flags_completion+=("_filedir")
12530+
flags+=("--client-key=")
12531+
flags_with_completion+=("--client-key")
12532+
flags_completion+=("_filedir")
12533+
flags+=("--cluster=")
12534+
flags+=("--config=")
12535+
flags_with_completion+=("--config")
12536+
flags_completion+=("_filedir")
12537+
flags+=("--context=")
12538+
flags+=("--insecure-skip-tls-verify")
12539+
flags+=("--loglevel=")
12540+
flags+=("--logspec=")
12541+
flags+=("--match-server-version")
12542+
flags+=("--namespace=")
12543+
flags_with_completion+=("--namespace")
12544+
flags_completion+=("__oc_get_namespaces")
12545+
two_word_flags+=("-n")
12546+
flags_with_completion+=("-n")
12547+
flags_completion+=("__oc_get_namespaces")
12548+
flags+=("--request-timeout=")
12549+
flags+=("--server=")
12550+
flags+=("--token=")
12551+
flags+=("--user=")
12552+
12553+
must_have_one_flag=()
12554+
must_have_one_noun=()
12555+
noun_aliases=()
12556+
}
12557+
1245312558
_oc_import_app.json()
1245412559
{
1245512560
last_command="oc_import_app.json"
@@ -18261,6 +18366,7 @@ _oc()
1826118366
commands+=("extract")
1826218367
commands+=("get")
1826318368
commands+=("idle")
18369+
commands+=("image")
1826418370
commands+=("import")
1826518371
commands+=("import-image")
1826618372
commands+=("label")

0 commit comments

Comments
 (0)