Yandex Cloud
Search
Contact UsGet started
  • Blog
  • Pricing
  • Documentation
  • All Services
  • System Status
    • Featured
    • Infrastructure & Network
    • Data Platform
    • Containers
    • Developer tools
    • Serverless
    • Security
    • Monitoring & Resources
    • ML & AI
    • Business tools
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Customer Stories
    • Cloud credits to scale your IT product
    • Gateway to Russia
    • Cloud for Startups
    • Education and Science
    • Yandex Cloud Partner program
  • Blog
  • Pricing
  • Documentation
© 2025 Direct Cursus Technology L.L.C.
Yandex Container Registry
  • Getting started
    • All guides
    • Installing and configuring Docker
    • Authentication in Container Registry
      • Getting information about existing lifecycle policies
      • Creating a lifecycle policy
      • Updating a lifecycle policy
      • Performing lifecycle policy dry runs
      • Deleting a lifecycle policy
    • Scanning Docker images for vulnerabilities
    • Creating a trigger for a registry
  • Yandex Container Solution
  • Access management
  • Pricing policy
  • Terraform reference
  • Monitoring metrics
  • Audit Trails events
  • Troubleshooting
  • FAQ

In this article:

  • Examples
  • Updating lifecycle policy rules
  • Updating a lifecycle policy status
  • Changing a lifecycle policy name
  • Updating a lifecycle policy description
  1. Step-by-step guides
  2. Managing Docker image lifecycle policies
  3. Updating a lifecycle policy

Updating a lifecycle policy

Written by
Yandex Cloud
Improved by
Danila N.
Updated at April 22, 2025
  • Examples
    • Updating lifecycle policy rules
    • Updating a lifecycle policy status
    • Changing a lifecycle policy name
    • Updating a lifecycle policy description

Once you create a lifecycle policy, you can edit its rules as well as its status, name, or description.

Management console
CLI
Terraform
API
  1. In the management console, select the folder where the registry was created.
  2. In the list of services, select Container Registry.
  3. Select the registry and click the row with its name.
  4. Select the repository and click the row with its name.
  5. In the left-hand panel, click Lifecycle.
  6. In the row with the lifecycle policy, click and select Edit.
  7. Edit the lifecycle policy parameters:
    • Name.

    • Description.

    • Status.

    • Under Lifecycle policy rules, update the rule parameters:

      • Tag regexp: Docker image tag for filtering. Java regular expressions are supported. For example, the test.* regular expression retrieves all images with tags starting with test.
      • Untagged: Flag indicating that the rule applies to Docker images without tags.
      • Expire period, in days: Time after which the lifecycle policy may apply to the Docker image.
      • Retained top: Number of Docker images that are not deleted even if they match the rule.
      • Description.
  8. Click Save.

If you do not have the Yandex Cloud CLI yet, install and initialize it.

  1. See the description of the CLI command for updating policy parameters:

    yc container repository lifecycle-policy update --help
    
  2. Change the policy parameters, e.g., rename it:

    yc container repository lifecycle-policy update <policy_ID> \
       --new-name=new-policy
    

    To find out the policy ID, get a list of lifecycle policies in a repository or registry.

If you do not have Terraform yet, install it and configure its Yandex Cloud provider.

  1. Open the configuration file and edit the fragment with the policy description:

    resource "yandex_container_repository_lifecycle_policy" "my_lifecycle_policy" {
      name          = "best-policy"
      status        = "active"
      repository_id = "crpfvi6o4ra7********"
    
      rule {
        description   = "rule for applying policy"
        untagged      = true
        tag_regexp    = ".*"
        retained_top  = 1
        expire_period = "48h"
      }
    }
    
  2. Apply the changes:

    1. In the terminal, change to the folder where you edited the configuration file.

    2. Make sure the configuration file is correct using the command:

      terraform validate
      

      If the configuration is correct, the following message is returned:

      Success! The configuration is valid.
      
    3. Run the command:

      terraform plan
      

      The terminal will display a list of resources with parameters. No changes are made at this step. If the configuration contains errors, Terraform will point them out.

    4. Apply the configuration changes:

      terraform apply
      
    5. Confirm the changes: type yes in the terminal and press Enter.

This will update the lifecycle policy in the specified repository. You can check the policy update using the management console or this CLI command:

yc container repository lifecycle-policy list --registry-id <registry_ID>

To edit a lifecycle policy, use the Update method for the LifecyclePolicyService resource. Specify the policy ID in the lifecycle_policy_id property.

You can retrieve a list of policies using the List method for the LifecyclePolicyService resource.

ExamplesExamples

Updating lifecycle policy rulesUpdating lifecycle policy rules

CLI
  1. Prepare new policy rules and save them to a file named new-rules.json.

    Example of the contents of a file with rules, where:

    • description: Description of the policy rule.
    • tag_regexp: Docker image tag for filtering. Java regular expressions are supported. For example, the test.* regular expression retrieves all images with tags starting with test.
    • untagged: Flag indicating that the rule applies to Docker images without tags.
    • expire_period: Time after which the lifecycle policy may apply to the Docker image. This parameter is formatted as a number and a unit of measure, such as s, m, h, or d (seconds, minutes, hours, or days). expire_period must be a multiple of 24 hours.
    • retained_top: Number of Docker images that are not deleted even if they match the rule.
    [
      {
        "description": "delete prod Docker images older than 60 days but retain 20 last ones",
        "tag_regexp": "prod",
        "expire_period": "60d",
        "retained_top": 20
      },
      {
        "description": "delete all test Docker images except 10 last ones",
        "tag_regexp": "test.*",
        "retained_top": 10
      },
      {
        "description": "delete all untagged Docker images older than 48 hours",
        "untagged": true,
        "expire_period": "48h"
      }
    ]
    
  2. Change the policy rules by running the command with the following parameter:

    • new-rules: Path to the file with the new policy description.

    Alert

    Updating the policy completely overwrites all current rules by destroying them.

    yc container repository lifecycle-policy update crp6lg1868p3******** --new-rules ./new-rules.json
    

    Result:

    WARN: All current lifecycle rules will be overwritten. Are you sure?[y/N] y
    id: crp6lg1868p3********
    name: test-policy
    ...
      expire_period: 172800s
      tag_regexp: test.*
      untagged: true
    

Updating a lifecycle policy statusUpdating a lifecycle policy status

Activate a lifecycle policyActivate a lifecycle policy

CLI

Activate a deactivated lifecycle policy by running the command below with the --activate flag:

yc container repository lifecycle-policy update crp6lg1868p3******** --activate

Result:

id: crp6lg1868p3********
name: test-policy
repository_id: crp3cpm16edq********
...
  expire_period: 172800s
  tag_regexp: test.*
  untagged: true

Disable the lifecycle policyDisable the lifecycle policy

CLI

Deactivate an active policy by running the command below with the --disable flag:

yc container repository lifecycle-policy update crp6lg1868p3******** --disable

Result:

id: crp6lg1868p3********
name: test-policy
repository_id: crp3cpm16edq********
...
  expire_period: 172800s
  tag_regexp: test.*
  untagged: true

Changing a lifecycle policy nameChanging a lifecycle policy name

CLI

Change the policy name by running the command:

yc container repository lifecycle-policy update crp6lg1868p3******** --new-name new-policy

Where --new-name is the new policy name. The naming requirements are as follows:

  • It must be from 2 to 63 characters long.
  • It may contain lowercase Latin letters, numbers, and hyphens.
  • It must start with a letter and cannot end with a hyphen.

Result:

id: crp6lg1868p3********
name: new-policy
repository_id: crp3cpm16edq********
...
  expire_period: 172800s
  tag_regexp: test.*
  untagged: true

Updating a lifecycle policy descriptionUpdating a lifecycle policy description

CLI

Change a policy description by running the command:

yc container repository lifecycle-policy update crp6lg1868p3******** --new-description "new description"

Where --new-description is the new policy description.

Result:

id: crp6lg1868p3********
name: test-policy
repository_id: crp3cpm16edq********
...
  expire_period: 172800s
  tag_regexp: test.*
  untagged: true

Was the article helpful?

Previous
Creating a lifecycle policy
Next
Performing lifecycle policy dry runs
© 2025 Direct Cursus Technology L.L.C.