NAME
    gcloud artifacts docker upgrade migrate - migrate projects from Container
        Registry to Artifact Registry

SYNOPSIS
    gcloud artifacts docker upgrade migrate [--canary-reads=PERCENT]
        [--copy-only] [--from-gcr=GCR_HOST/PROJECT_ID]
        [--input-iam-policy-dir=DIRECTORY] [--last-uploaded-versions=N]
        [--max-threads=MAX_THREADS; default=8]
        [--output-iam-policy-dir=DIRECTORY]
        [--pkg-dev-location=PKG_DEV_LOCATION] [--projects=PROJECTS]
        [--recent-images=NUM_DAYS] [--skip-iam-update] [--skip-pre-copy]
        [--to-pkg-dev=PROJECT_ID/REPOSITORY_ID] [--no-use-analyze-iam]
        [GCLOUD_WIDE_FLAG ...]

DESCRIPTION
    Migrate projects from Container Registry to Artifact Registry

EXAMPLES
    To migrate a project my-project using gcr.io repositories:

        $ gcloud artifacts docker upgrade migrate --projects=my-project

    To migrate several projects using gcr.io repositories:

        $ gcloud artifacts docker upgrade migrate \
           --projects=my-project1,my-project2,my-project3

    To migrate a project using pkg.dev repositories:

        $ gcloud artifacts docker upgrade migrate \
           --from-gcr=gcr.io/project1 --to-pkg-dev=project2/repo_name

FLAGS
     --canary-reads=PERCENT
        Send only a percent of reads to Artifact Registry. The rest of reads
        and all writes are sent to Container Registry.

     --copy-only
        Only perform image copying

     --from-gcr=GCR_HOST/PROJECT_ID
        Container Registry host + project to copy from. This flag is only used
        when migrating to pkg.dev repos. Example: gcr.io/my-project

     --input-iam-policy-dir=DIRECTORY
        During the IAM update step, the tool applies all iam policies in the
        given directory.

     --last-uploaded-versions=N
        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.

     --max-threads=MAX_THREADS; default=8
        Max number of images to copy simultaneously. Consider quota usage when
        increasing this

     --output-iam-policy-dir=DIRECTORY
        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.

     --pkg-dev-location=PKG_DEV_LOCATION
        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.

     --projects=PROJECTS
        Comma seperated list of Container Registry projects to migrate to
        Artifact Registry gcr.io repositories.

     --recent-images=NUM_DAYS
        Only copy images pulled or pushed in the last NUM_DAYS days. NUM_DAYS
        must be between 30 and 90 inclusive.

     --skip-iam-update
        Migrate without changing iam-policy. Users without Artifact Registry
        permissions will not have access to migrated images.

     --skip-pre-copy
        Skip the initial copy of recent images before enabling redirection.

     --to-pkg-dev=PROJECT_ID/REPOSITORY_ID
        Artifact Registry pkg.dev project ID and repository ID to copy to.
        Example: my-project/my-repo

     --use-analyze-iam
        Use analyzeIAMPolicy to get IAM bindings. If false, tooling iterates
        through IAM bindings itself, which is slower, but doesn't require
        anlayzeIAMPolicy quota. Enabled by default, use --no-use-analyze-iam to
        disable.

GCLOUD WIDE FLAGS
    These flags are available to all commands: --access-token-file, --account,
    --billing-project, --configuration, --flags-file, --flatten, --format,
    --help, --impersonate-service-account, --log-http, --project, --quiet,
    --trace-token, --user-output-enabled, --verbosity.

    Run $ gcloud help for details.

API REFERENCE
    This command uses the artifactregistry/v1 API. The full documentation for
    this API can be found at: https://cloud.google.com/artifacts/docs/
