Updated on 2024-06-17 GMT+08:00

Configuring a Release Policy

The rolling upgrade template is preset in release management. This section describes how to add the rolling upgrade plug-in and configure a release policy by using the preset rolling upgrade template.

Currently, the UCS pipeline only presets the rolling upgrade template.

  1. On the environment details page, click Release Policy.

    Figure 1 Release policy

  2. On the right of Custom Policies, click . In the displayed dialog box, select a policy template as needed, and click OK.

    Figure 2 Creating a policy

  3. Configure basic information and add plug-ins to customize the template.

    There are two deployment modes for rolling upgrade: image upgrade and YAML deployment.

    Image Upgrade

    When you select image upgrade, you need to select the related namespace, workload, and container. During deployment, the pipeline will change the image to the container image of the workload of the namespace.

    Figure 3 Image upgrade

    YAML Deployment

    You need to create a YAML file in the code repository and enter the YAML path of workload.

    Figure 4 YAML deployment

    If a private image is pulled, perform the following steps:

    In UCS, configure a Docker image repository key for the corresponding cluster and record the key name. For details, see Secrets.

    Choose Release > Environment > Environment Variable to set environment variables. You can reference environment variables in the format of {{}} in YAML files.

    Figure 5 Configuring environment variables

    Example YAML file:

    kind: Deployment
    apiVersion: apps/v1
    metadata:
      name: {{app_name}}
      namespace: {{namespace}}
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: {{app_name}}
          version: v1
      template:
        metadata:
          labels:
            app: {{app_name}}
            version: v1
        spec:
          containers:
            - name: container-1
              image: {{ARTIFACT}}
              env:
                - name: PAAS_APP_NAME
                  value: {{app_name}}
                - name: PAAS_NAMESPACE
                  value: {{namespace}}
                - name: PAAS_PROJECT_ID
                  value: {{PROJECT_ID}}
              resources:
                limits:
                  cpu: 250m
                  memory: 512Mi
                requests:
                  cpu: 250m
                  memory: 512Mi
          imagePullSecrets:
            - name: {{secret_name}}
          schedulerName: default-scheduler
    • YAML deployment only supports one YAML file.
    • The code repositories and their branches of YAML files are those configured in release management.
    • The YAML path is a relative path. The current directory is the root directory of the code branch.
    • You can use ${variable name} in a YAML path to reference an environment variable, and {{variable name}} in a YAML file to reference an environment variable.