Skip to content

Commit 6b24e82

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 fe75bc8 commit 6b24e82

File tree

15 files changed

+1617
-1
lines changed

15 files changed

+1617
-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"
@@ -18108,6 +18213,7 @@ _oc()
1810818213
commands+=("extract")
1810918214
commands+=("get")
1811018215
commands+=("idle")
18216+
commands+=("image")
1811118217
commands+=("import")
1811218218
commands+=("import-image")
1811318219
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"
@@ -23319,6 +23424,7 @@ _openshift_cli()
2331923424
commands+=("extract")
2332023425
commands+=("get")
2332123426
commands+=("idle")
23427+
commands+=("image")
2332223428
commands+=("import")
2332323429
commands+=("import-image")
2332423430
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"
@@ -18257,6 +18362,7 @@ _oc()
1825718362
commands+=("extract")
1825818363
commands+=("get")
1825918364
commands+=("idle")
18365+
commands+=("image")
1826018366
commands+=("import")
1826118367
commands+=("import-image")
1826218368
commands+=("label")

0 commit comments

Comments
 (0)