Updated on 2026-09-30 GMT+08:00

Rolling Back an Add-on Instance

Function

This API is used to roll back the add-on instance version to the source version. Only when the status.isRollbackable parameter is set to true, and the add-on instance is in the running, available, abnormal, upgradeFailed, or rollbackFailed state, the version can be rolled back to the source version.

Calling Method

For details, see Calling APIs.

URI

POST /api/v3/addons/{id}/operation/rollback

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

id

Yes

String

Definition:

Add-on pod ID

Constraints:

N/A

Range:

The value is in UUID format and contains 1 to 255 characters.

Default Value:

N/A

Request Parameters

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

Details:

Requests for calling an API can be authenticated using either a token or AK/SK. If token-based authentication is used, this parameter is mandatory and must be set to a user token. For details, see Obtaining a User Token.

Constraints:

None

Options:

N/A

Default value:

N/A

Table 3 Request body parameters

Parameter

Mandatory

Type

Description

clusterID

Yes

String

Definition:

Cluster ID. For details about how to obtain the value, see How to Obtain Parameters in the API URI.

Constraints:

N/A

Range:

N/A

Default Value:

N/A

Response Parameters

Status code: 200

Table 4 Response body parameters

Parameter

Type

Description

kind

String

Definition:

API type. The value is fixed at Addon and cannot be changed.

Range:

  • Addon

apiVersion

String

Definition:

API version. The value is fixed at v3 and cannot be changed.

Range:

  • v3

metadata

AddonMetadata object

Definition:

Basic information. Metadata is a collection of attributes.

Range:

N/A

spec

InstanceSpec object

Definition:

Details about an add-on pod

Range:

N/A

status

AddonInstanceStatus object

Definition:

Add-on pod status

Range:

N/A

Table 5 AddonMetadata

Parameter

Type

Description

uid

String

Definition:

Unique ID of an add-on pod, which is automatically generated by the system after the add-on pod is created

Range:

N/A

name

String

Definition:

Add-on name

Range:

N/A

alias

String

Definition:

Add-on alias

Range:

N/A

labels

Map<String,String>

Definition:

Add-on labels in key-value pairs. This is a reserved field. A specified value is invalid.

Range:

N/A

annotations

Map<String,String>

Definition:

Add-on annotations in the format of key-value pairs

Range:

  • The value is fixed at {"addon.install/type":"install"} during installation.

  • The value is fixed at {"addon.upgrade/type":"upgrade"} during an upgrade.

updateTimestamp

String

Definition:

Update time

Range:

N/A

creationTimestamp

String

Definition:

Creation time, which is automatically generated after creation. A specified value does not take effect.

Range:

N/A

Table 6 InstanceSpec

Parameter

Type

Description

clusterID

String

Definition:

Cluster ID

Range:

N/A

version

String

Definition:

Add-on template version, for example, 1.0.0

Range:

N/A

addonTemplateName

String

Definition:

Add-on template name, for example, coredns

Range:

N/A

addonTemplateType

String

Definition:

Add-on template type

Range:

  • helm: Helm packages

  • static: static templates

addonTemplateLogo

String

Definition:

URL for obtaining an add-on template logo

Range:

N/A

addonTemplateLabels

Array of strings

Definition:

Add-on template type

Range:

N/A

description

String

Definition:

Add-on template description

Range:

N/A

values

Map<String,Object>

Definition:

Add-on template installation parameters (varying depending on the add-on). Configure the parameters based on the add-on template.

Range:

N/A

Table 7 AddonInstanceStatus

Parameter

Type

Description

status

String

Definition:

Add-on pod status

Range:

  • running: All of the add-on pods are running. This specifies that the add-on runs properly.

  • abnormal: The add-on is abnormal and cannot be used. You can click the add-on name to view exceptions.

  • installing: The add-on is being installed.

  • installFailed: The add-on installation failed. You need to uninstall the add-on and install it again.

  • upgrading: The add-on is being upgraded.

  • upgradeFailed: The add-on upgrade failed. You can retry the upgrade or uninstall the add-on and install it again.

  • deleting: The add-on is being deleted.

  • deleteFailed: The add-on failed to be deleted. You can retry the uninstallation.

  • deleteSuccess: The add-on was deleted.

  • available: Only some instances of the add-on are running. This specifies that some functions of the add-on are available.

  • rollbacking: The add-on is being rolled back.

  • rollbackFailed: The add-on failed to be rolled back. You can retry the rollback or uninstall and reinstall the add-on.

  • unknown: The add-on template instance does not exist.

Reason

String

Definition:

Cause of an add-on installation failure

Range:

N/A

message

String

Definition:

Installation error details

Range:

N/A

targetVersions

Array of strings

Definition:

Cluster versions that support the add-on upgrade

Range:

N/A

currentVersion

Versions object

Definition:

Information about the current add-on version

Range:

N/A

isRollbackable

Boolean

Definition:

Whether the add-on version can be rolled back to the source version

Range:

  • true: Rollback is supported.

  • false: Rollback is not supported.

previousVersion

String

Definition:

The add-on version before an upgrade or rollback

Range:

N/A

Table 8 Versions

Parameter

Type

Description

version

String

Definition:

Add-on version

Range:

N/A

input

Object

Definition:

Add-on installation parameters

Range:

N/A

stable

Boolean

Definition:

Whether the version is stable

Range:

  • true: The version is stable.

  • false: The version is unstable.

translate

Object

Definition:

Translation information used by the GUI

Range:

N/A

supportVersions

Array of SupportVersions objects

Definition:

Supported cluster versions

Range:

N/A

creationTimestamp

String

Definition:

Creation time

Range:

N/A

updateTimestamp

String

Definition:

Update time

Range:

N/A

Table 9 SupportVersions

Parameter

Type

Description

clusterType

String

Definition:

Supported cluster type

VirtualMachine is supported.

Range:

  • VirtualMachine: CCE cluster, where master nodes are x86 servers

  • BareMetal: bare metal cluster, where master nodes are BMSs

clusterVersion

Array of strings

Definition:

Supported cluster version (regular expression)

Range:

N/A

category

Array of strings

Definition:

The cluster type to which the configurations apply

Range:

  • CCE: CCE standard clusters

  • Turbo: CCE Turbo clusters

Example Requests

{
  "clusterID" : "******"
}

Example Responses

Status code: 200

{
  "kind" : "Addon",
  "apiVersion" : "v3",
  "metadata" : {
    "uid" : "******",
    "name" : "everest",
    "alias" : "everest",
    "creationTimestamp" : "2023-03-15T02:48:01Z",
    "updateTimestamp" : "2023-03-15T04:18:45Z"
  },
  "spec" : {
    "clusterID" : "******",
    "version" : "2.1.16",
    "addonTemplateName" : "everest",
    "addonTemplateType" : "helm",
    "addonTemplateLogo" : "******",
    "addonTemplateLabels" : [ "Storage" ],
    "description" : "Everest is a cloud native container storage system based on CSI, used\nto support cloud storages services for Kubernetes",
    "values" : {
      "basic" : {
        "base_image" : "euleros",
        "bms_url" : "******",
        "cluster_version" : "v1.25",
        "driver_init_image_version" : "2.1.16",
        "ecsEndpoint" : "******",
        "euleros_version" : "2.2.5",
        "everest_image_version" : "2.1.16",
        "evs_url" : "******",
        "iam_url" : "******",
        "ims_url" : "******",
        "obs_url" : "******",
        "platform" : "linux-amd64",
        "rbac_enabled" : true,
        "sfs30_url" : "******",
        "sfs_turbo_url" : "******",
        "sfs_url" : "******",
        "supportHcs" : false,
        "swr_addr" : "******",
        "swr_user" : "******"
      },
      "custom" : {
        "cluster_id" : "******",
        "cluster_version" : "v1.25.3-r0",
        "csi_attacher_detach_worker_threads" : "60",
        "csi_attacher_worker_threads" : "60",
        "default_vpc_id" : "******",
        "disable_auto_mount_secret" : false,
        "enable_node_attacher" : false,
        "flow_control" : { },
        "multiAZEnabled" : false,
        "over_subscription" : "80",
        "project_id" : "******",
        "volume_attaching_flow_ctrl" : "0"
      },
      "flavor" : {
        "category" : [ "CCE", "Turbo" ],
        "description" : "High available",
        "name" : "HA",
        "replicas" : 2,
        "resources" : [ {
          "limitsCpu" : "250m",
          "limitsMem" : "1500Mi",
          "name" : "everest-csi-controller",
          "requestsCpu" : "250m",
          "requestsMem" : "600Mi"
        }, {
          "limitsCpu" : "500m",
          "limitsMem" : "300Mi",
          "name" : "everest-csi-driver",
          "requestsCpu" : "100m",
          "requestsMem" : "300Mi"
        } ]
      },
      "multiAZPreferred" : {
        "podAntiAffinity" : {
          "preferredDuringSchedulingIgnoredDuringExecution" : [ {
            "podAffinityTerm" : {
              "labelSelector" : {
                "matchExpressions" : [ {
                  "key" : "app",
                  "operator" : "In",
                  "values" : [ "everest-csi-controller" ]
                } ]
              },
              "topologyKey" : "topology.kubernetes.io/zone"
            },
            "weight" : 100
          } ]
        }
      },
      "multiAZRequired" : {
        "podAntiAffinity" : {
          "requiredDuringSchedulingIgnoredDuringExecution" : [ {
            "labelSelector" : {
              "matchExpressions" : [ {
                "key" : "app",
                "operator" : "In",
                "values" : [ "everest-csi-controller" ]
              } ]
            },
            "topologyKey" : "topology.kubernetes.io/zone"
          } ]
        }
      },
      "systemAutoInject" : {
        "cluster" : {
          "category" : "CCE",
          "clusterID" : "******",
          "clusterNetworkMode" : "vpc-router",
          "clusterVersion" : "v1.25.3-r0"
        },
        "user" : {
          "projectID" : "******"
        }
      },
      "tolerations" : [ {
        "effect" : "NoExecute",
        "key" : "node.kubernetes.io/not-ready",
        "operator" : "Exists",
        "tolerationSeconds" : 60
      }, {
        "effect" : "NoExecute",
        "key" : "node.kubernetes.io/unreachable",
        "operator" : "Exists",
        "tolerationSeconds" : 60
      } ]
    }
  },
  "status" : {
    "status" : "rollbacking",
    "Reason" : "Rollback to 4",
    "message" : "",
    "targetVersions" : [ "2.1.18", "2.1.19" ],
    "isRollbackable" : false,
    "previousVersion" : "2.1.19",
    "currentVersion" : {
      "version" : "2.1.16",
      "input" : {
        "basic" : {
          "bms_url" : "******",
          "driver_init_image_version" : "2.1.16",
          "ecsEndpoint" : "******",
          "everest_image_version" : "2.1.16",
          "evs_url" : "******",
          "iam_url" : "******",
          "ims_url" : "******",
          "obs_url" : "******",
          "platform" : "linux-amd64",
          "sfs30_url" : "******",
          "sfs_turbo_url" : "******",
          "sfs_url" : "******",
          "supportHcs" : false,
          "swr_addr" : "******",
          "swr_user" : "******"
        },
        "parameters" : {
          "common" : {
            "defaultVPCId" : 0
          },
          "custom" : {
            "cluster_id" : "",
            "csi_attacher_detach_worker_threads" : "60",
            "csi_attacher_worker_threads" : "60",
            "default_vpc_id" : "",
            "disable_auto_mount_secret" : false,
            "enable_node_attacher" : false,
            "flow_control" : { },
            "multiAZEnabled" : false,
            "over_subscription" : "80",
            "project_id" : "",
            "volume_attaching_flow_ctrl" : "0"
          },
          "flavor1" : {
            "description" : "High available",
            "name" : "HA",
            "replicas" : 2,
            "resources" : [ {
              "limitsCpu" : "250m",
              "limitsMem" : "1500Mi",
              "name" : "everest-csi-controller",
              "requestsCpu" : "250m",
              "requestsMem" : "600Mi"
            }, {
              "limitsCpu" : "500m",
              "limitsMem" : "300Mi",
              "name" : "everest-csi-driver",
              "requestsCpu" : "100m",
              "requestsMem" : "300Mi"
            } ]
          },
          "flavor2" : {
            "description" : "Has only one instance",
            "name" : "Single",
            "replicas" : 1,
            "resources" : [ {
              "limitsCpu" : "250m",
              "limitsMem" : "600Mi",
              "name" : "everest-csi-controller",
              "requestsCpu" : "250m",
              "requestsMem" : "600Mi"
            }, {
              "limitsCpu" : "100m",
              "limitsMem" : "300Mi",
              "name" : "everest-csi-driver",
              "requestsCpu" : "100m",
              "requestsMem" : "300Mi"
            } ]
          },
          "flavor3" : {
            "description" : "custom resources",
            "name" : "custom-resources",
            "replicas" : 2,
            "resources" : [ {
              "limitsCpu" : "250m",
              "limitsMem" : "2000Mi",
              "name" : "everest-csi-controller",
              "requestsCpu" : "250m",
              "requestsMem" : "1500Mi"
            }, {
              "limitsCpu" : "500m",
              "limitsMem" : "300Mi",
              "name" : "everest-csi-driver",
              "requestsCpu" : "100m",
              "requestsMem" : "300Mi"
            } ]
          }
        }
      },
      "stable" : true,
      "translate" : {
        "en_US" : {
          "addon" : {
            "changeLog" : "******",
            "description" : "******"
          },
          "description" : {
            "Parameters.flavor1.description" : "******",
            "Parameters.flavor1.name" : "******",
            "Parameters.flavor2.description" : "******",
            "Parameters.flavor2.name" : "******",
            "Parameters.flavor3.name" : "******"
          }
        },
        "zh_CN" : {
          "addon" : {
            "changeLog" : "******",
            "description" : "******"
          },
          "description" : {
            "Parameters.flavor1.description" : "******",
            "Parameters.flavor1.name" : "******",
            "Parameters.flavor2.description" : "******",
            "Parameters.flavor2.name" : "******",
            "Parameters.flavor3.description" : "******",
            "Parameters.flavor3.name" : "******"
          }
        }
      },
      "supportVersions" : [ {
        "clusterType" : "VirtualMachine",
        "clusterVersion" : [ "v1.(30|31|32|33|34|35|36).*" ],
        "category" : [ "CCE", "Turbo" ]
      }, {
        "clusterType" : "ARM64",
        "clusterVersion" : [ "v1.(30|31|32|33|34|35|36).*" ],
        "category" : [ "CCE", "Turbo" ]
      } ],
      "creationTimestamp" : "2023-02-21T16:29:02Z",
      "updateTimestamp" : "2023-02-22T06:49:50Z"
    }
  }
}

Status Codes

Status Code

Description

200

Add-on instance version is rolled back.

Error Codes

See Error Codes.