84 lines
3.6 KiB
YAML
84 lines
3.6 KiB
YAML
- release_tracks: [GA]
|
|
help_text:
|
|
brief: |
|
|
Migrate projects from Container Registry to Artifact Registry
|
|
description: |
|
|
Migrate projects from Container Registry to Artifact Registry
|
|
examples: |
|
|
To migrate a project `my-project` using gcr.io repositories:
|
|
|
|
$ {command} --projects=my-project
|
|
|
|
To migrate several projects using gcr.io repositories:
|
|
|
|
$ {command} --projects=my-project1,my-project2,my-project3
|
|
|
|
To migrate a project using pkg.dev repositories:
|
|
|
|
$ {command} --from-gcr=gcr.io/project1 --to-pkg-dev=project2/repo_name
|
|
|
|
arguments:
|
|
params:
|
|
- arg_name: projects
|
|
help_text: >
|
|
Comma seperated list of Container Registry projects to migrate to Artifact Registry gcr.io repositories.
|
|
- arg_name: recent-images
|
|
metavar: NUM_DAYS
|
|
type: int
|
|
help_text: Only copy images pulled or pushed in the last NUM_DAYS days. NUM_DAYS must be between 30 and 90 inclusive.
|
|
- arg_name: from-gcr
|
|
metavar: GCR_HOST/PROJECT_ID
|
|
help_text: >
|
|
Container Registry host + project to copy from. This flag is only used when migrating to pkg.dev repos. Example: gcr.io/my-project
|
|
- arg_name: to-pkg-dev
|
|
metavar: PROJECT_ID/REPOSITORY_ID
|
|
help_text: >
|
|
Artifact Registry pkg.dev project ID and repository ID to copy to. Example: my-project/my-repo
|
|
- arg_name: copy-only
|
|
type: bool
|
|
help_text: "Only perform image copying"
|
|
- arg_name: canary-reads
|
|
metavar: PERCENT
|
|
type: int
|
|
help_text: "Send only a percent of reads to Artifact Registry. The rest of reads and all writes are sent to Container Registry."
|
|
- arg_name: max-threads
|
|
type: int
|
|
default: 8
|
|
help_text: "Max number of images to copy simultaneously. Consider quota usage when increasing this"
|
|
- arg_name: skip-iam-update
|
|
type: bool
|
|
help_text: >
|
|
Migrate without changing iam-policy. Users without Artifact Registry permissions will not have access to migrated images.
|
|
- arg_name: last-uploaded-versions
|
|
metavar: N
|
|
type: int
|
|
help_text: >
|
|
Only copy the N most recently uploaded versions of each image. More than N images may be copied if new images are uploaded during migration.
|
|
- arg_name: output-iam-policy-dir
|
|
metavar: DIRECTORY
|
|
help_text: >
|
|
Outputs Artifact Registry-equivalent bindings to this directory during IAM update step and then exits the tool. After any neccesary modifications are made, the tool can be rerun with --input-iam-policy-dir to continue migration with the generated bindings.
|
|
- arg_name: input-iam-policy-dir
|
|
metavar: DIRECTORY
|
|
help_text: >
|
|
During the IAM update step, the tool applies all iam policies in the given directory.
|
|
- arg_name: pkg-dev-location
|
|
help_text: >
|
|
The location of the pkg-dev repository you are migrating to. If not specified, migration is always done to the same multi-region as GCR. Setting this flag can cause cross-regional copying and lead to billing charges.
|
|
- arg_name: skip-pre-copy
|
|
type: bool
|
|
help_text: >
|
|
Skip the initial copy of recent images before enabling redirection.
|
|
- arg_name: use-analyze-iam
|
|
type: bool
|
|
default: true
|
|
help_text: >
|
|
Use analyzeIAMPolicy to get IAM bindings. If false, tooling iterates through IAM bindings itself, which is slower, but doesn't require anlayzeIAMPolicy quota.
|
|
|
|
request:
|
|
api_version: v1
|
|
disable_resource_check: true
|
|
collection: artifactregistry.projects
|
|
method: updateProjectSettings
|
|
issue_request_hook: googlecloudsdk.command_lib.artifacts.util:MigrateToArtifactRegistry
|