Description
CanaryDelivery is the Schema for the Canarydeliveries API
Type
object

Specification

PropertyTypeDescription
apiVersionstring

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kindstring

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadataObjectMeta

ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.

specobject

CanaryDeliverySpec defines the desired state of CanaryDelivery

statusobject

CanaryDeliveryStatus defines the observed state of CanaryDelivery

.spec

Description
CanaryDeliverySpec defines the desired state of CanaryDelivery
Type
object
Required
targetRef
PropertyTypeDescription
analysisobject

Analysis defines the validation process of a release

approvegateboolean
autopromoteboolean
autoscalerRefobject

AutoscalerRef references an autoscaling resource

delivertypestring
failFallBackboolean

if set true,we will rollback canary workload modify

isavaliableboolean
maxResponseTimenumber

the max response time,if larger than will failed,default is 500ms

metricsarray

Metric check list for this canary analysis

minSuccessRatenumber

the min request succress rate,if below,canary will failed,default is 95 percent

promoteboolean
rollbackboolean
targetRefobject

TargetRef references a target resource

.spec.analysis

Description
Analysis defines the validation process of a release
Type
object
PropertyTypeDescription
intervalstring

Schedule interval for this canary analysis

iterationsinteger

Number of checks to run for A/B Testing and Blue/Green

matcharray

A/B testing HTTP header match conditions

maxWeightinteger

Max traffic percentage routed to canary

mirrorboolean

Enable traffic mirroring for Blue/Green

stepWeightinteger

Incremental traffic percentage step

stepWeightPromotioninteger

Incremental traffic percentage step for promotion phase

thresholdinteger

Max number of failed checks before the canary is terminated

.spec.analysis.match

Description
A/B testing HTTP header match conditions
Type
array

.spec.analysis.match[]

Description
HttpMatchRequest specifies a set of criterion to be met in order for the rule to be applied to the HTTP request. For example, the following restricts the rule to match only requests where the URL path starts with /ratings/v2/ and the request contains a "cookie" with value "user=jason". apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: ratings-route spec: hosts: - ratings http: - match: - headers: cookie: regex: "^(.*?;)?(user=jason)(;.*)?" uri: prefix: "/ratings/v2/" route: - destination: host: ratings HTTPMatchRequest CANNOT be empty.
Type
object
PropertyTypeDescription
authorityobject

HTTP Authority values are case-sensitive and formatted as follows:

  • exact: "value" for exact string match
  • prefix: "value" for prefix-based match
  • regex: "value" for ECMAscript style regex-based match
gatewaysarray

Names of gateways where the rule should be applied to. Gateway names at the top of the VirtualService (if any) are overridden. The gateway match is independent of sourceLabels.

headersobject

The header keys must be lowercase and use hyphen as the separator, e.g. x-request-id. Header values are case-sensitive and formatted as follows:

  • exact: "value" for exact string match
  • prefix: "value" for prefix-based match
  • regex: "value" for ECMAscript style regex-based match Note: The keys uri, scheme, method, and authority will be ignored.
methodobject

HTTP Method values are case-sensitive and formatted as follows:

  • exact: "value" for exact string match
  • prefix: "value" for prefix-based match
  • regex: "value" for ECMAscript style regex-based match
portinteger

Specifies the ports on the host that is being addressed. Many services only expose a single port or label ports with the protocols they support, in these cases it is not required to explicitly select the port.

schemeobject

URI Scheme values are case-sensitive and formatted as follows:

  • exact: "value" for exact string match
  • prefix: "value" for prefix-based match
  • regex: "value" for ECMAscript style regex-based match
sourceLabelsobject

One or more labels that constrain the applicability of a rule to workloads with the given labels. If the VirtualService has a list of gateways specified at the top, it should include the reserved gateway mesh in order for this field to be applicable.

uriobject

URI to match values are case-sensitive and formatted as follows:

  • exact: "value" for exact string match
  • prefix: "value" for prefix-based match
  • regex: "value" for ECMAscript style regex-based match

.spec.analysis.match[].authority

Description
HTTP Authority values are case-sensitive and formatted as follows: - `exact: "value"` for exact string match - `prefix: "value"` for prefix-based match - `regex: "value"` for ECMAscript style regex-based match
Type
object
PropertyTypeDescription
exactstring

exact string match

prefixstring

prefix-based match

regexstring

ECMAscript style regex-based match

suffixstring

suffix-based match.

.spec.analysis.match[].gateways

Description
Names of gateways where the rule should be applied to. Gateway names at the top of the VirtualService (if any) are overridden. The gateway match is independent of sourceLabels.
Type
array

.spec.analysis.match[].gateways[]

Type
string

.spec.analysis.match[].headers

Description
The header keys must be lowercase and use hyphen as the separator, e.g. _x-request-id_. Header values are case-sensitive and formatted as follows: - `exact: "value"` for exact string match - `prefix: "value"` for prefix-based match - `regex: "value"` for ECMAscript style regex-based match **Note:** The keys `uri`, `scheme`, `method`, and `authority` will be ignored.
Type
object

.spec.analysis.match[].method

Description
HTTP Method values are case-sensitive and formatted as follows: - `exact: "value"` for exact string match - `prefix: "value"` for prefix-based match - `regex: "value"` for ECMAscript style regex-based match
Type
object
PropertyTypeDescription
exactstring

exact string match

prefixstring

prefix-based match

regexstring

ECMAscript style regex-based match

suffixstring

suffix-based match.

.spec.analysis.match[].scheme

Description
URI Scheme values are case-sensitive and formatted as follows: - `exact: "value"` for exact string match - `prefix: "value"` for prefix-based match - `regex: "value"` for ECMAscript style regex-based match
Type
object
PropertyTypeDescription
exactstring

exact string match

prefixstring

prefix-based match

regexstring

ECMAscript style regex-based match

suffixstring

suffix-based match.

.spec.analysis.match[].sourceLabels

Description
One or more labels that constrain the applicability of a rule to workloads with the given labels. If the VirtualService has a list of gateways specified at the top, it should include the reserved gateway `mesh` in order for this field to be applicable.
Type
object

.spec.analysis.match[].uri

Description
URI to match values are case-sensitive and formatted as follows: - `exact: "value"` for exact string match - `prefix: "value"` for prefix-based match - `regex: "value"` for ECMAscript style regex-based match
Type
object
PropertyTypeDescription
exactstring

exact string match

prefixstring

prefix-based match

regexstring

ECMAscript style regex-based match

suffixstring

suffix-based match.

.spec.autoscalerRef

Description
AutoscalerRef references an autoscaling resource
Type
object
Required
name
PropertyTypeDescription
apiVersionstring

API version of the referent

kindstring

Kind of the referent

namestring

Name of the referent

namespacestring

Namespace of the referent

.spec.metrics

Description
Metric check list for this canary analysis
Type
array

.spec.metrics[]

Description
CanaryMetric holds the reference to metrics used for canary analysis
Type
object
Required
name
PropertyTypeDescription
intervalstring

Interval represents the windows size

namestring

Name of the metric

querystring

Prometheus query for this metric (deprecated in favor of TemplateRef)

templateRefobject

TemplateRef references a metric template object

thresholdnumber

Max value accepted for this metric

thresholdRangeobject

Range value accepted for this metric

.spec.metrics[].templateRef

Description
TemplateRef references a metric template object
Type
object
Required
name
PropertyTypeDescription
apiVersionstring

API version of the referent

kindstring

Kind of the referent

namestring

Name of the referent

namespacestring

Namespace of the referent

.spec.metrics[].thresholdRange

Description
Range value accepted for this metric
Type
object
PropertyTypeDescription
maxnumber

Maximum value

minnumber

Minimum value

.spec.targetRef

Description
TargetRef references a target resource
Type
object
Required
name
PropertyTypeDescription
apiVersionstring

API version of the referent

kindstring

Kind of the referent

namestring

Name of the referent

namespacestring

Namespace of the referent

.status

Description
CanaryDeliveryStatus defines the observed state of CanaryDelivery
Type
object
Required
canaryWeightfailedChecksiterationslastInitErrorCountphase
PropertyTypeDescription
canaryWeightinteger
canaryreadyboolean
conditionsarray
failedChecksinteger
iterationsinteger
lastAppliedSpecstring
lastInitErrorCountinteger
lastInitErrorDescstring
lastPromotedSpecstring
phasestring

CanaryPhase is a label for the condition of a canary at the current time

trackedConfigsobject

.status.conditions

Type
array

.status.conditions[]

Description
CanaryCondition is a status condition for a Canary
Type
object
Required
statustype
PropertyTypeDescription
lastTransitionTimestring

LastTransitionTime of this condition

lastUpdateTimestring

LastUpdateTime of this condition

messagestring

Message associated with this condition

reasonstring

Reason for the current status of this condition

statusstring

Status of this condition

typestring

Type of this condition

.status.trackedConfigs

Type
object

API Endpoints

The following API endpoints are available:

  • /apis/asm.alauda.io/v1alpha1/namespaces/{namespace}/canarydeliveries
    • DELETE: delete collection of CanaryDelivery
    • GET: list objects of kind CanaryDelivery
    • POST: create a new CanaryDelivery
  • /apis/asm.alauda.io/v1alpha1/namespaces/{namespace}/canarydeliveries/{name}
    • DELETE: delete the specified CanaryDelivery
    • GET: read the specified CanaryDelivery
    • PATCH: partially update the specified CanaryDelivery
    • PUT: replace the specified CanaryDelivery
  • /apis/asm.alauda.io/v1alpha1/namespaces/{namespace}/canarydeliveries/{name}/status
    • GET: read status of the specified CanaryDelivery
    • PATCH: partially update status of the specified CanaryDelivery
    • PUT: replace status of the specified CanaryDelivery

/apis/asm.alauda.io/v1alpha1/namespaces/{namespace}/canarydeliveries

HTTP method
DELETE
Description
delete collection of CanaryDelivery
HTTP responses
HTTP codeResponse body
200 - OKStatus schema
401 - UnauthorizedEmpty
HTTP method
GET
Description
list objects of kind CanaryDelivery
HTTP responses
HTTP codeResponse body
200 - OKCanaryDeliveryList schema
401 - UnauthorizedEmpty
HTTP method
POST
Description
create a new CanaryDelivery
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
Body parameters
ParameterTypeDescription
bodyCanaryDelivery schemaapplication/json formatted
HTTP responses
HTTP codeResponse body
200 - OKCanaryDelivery schema
201 - CreatedCanaryDelivery schema
202 - AcceptedCanaryDelivery schema
401 - UnauthorizedEmpty

/apis/asm.alauda.io/v1alpha1/namespaces/{namespace}/canarydeliveries/{name}

HTTP method
DELETE
Description
delete the specified CanaryDelivery
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
HTTP responses
HTTP codeResponse body
200 - OKStatus schema
202 - AcceptedStatus schema
401 - UnauthorizedEmpty
HTTP method
GET
Description
read the specified CanaryDelivery
HTTP responses
HTTP codeResponse body
200 - OKCanaryDelivery schema
401 - UnauthorizedEmpty
HTTP method
PATCH
Description
partially update the specified CanaryDelivery
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
HTTP responses
HTTP codeResponse body
200 - OKCanaryDelivery schema
401 - UnauthorizedEmpty
HTTP method
PUT
Description
replace the specified CanaryDelivery
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
Body parameters
ParameterTypeDescription
bodyCanaryDelivery schemaapplication/json formatted
HTTP responses
HTTP codeResponse body
200 - OKCanaryDelivery schema
201 - CreatedCanaryDelivery schema
401 - UnauthorizedEmpty

/apis/asm.alauda.io/v1alpha1/namespaces/{namespace}/canarydeliveries/{name}/status

HTTP method
GET
Description
read status of the specified CanaryDelivery
HTTP responses
HTTP codeResponse body
200 - OKCanaryDelivery schema
401 - UnauthorizedEmpty
HTTP method
PATCH
Description
partially update status of the specified CanaryDelivery
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
HTTP responses
HTTP codeResponse body
200 - OKCanaryDelivery schema
401 - UnauthorizedEmpty
HTTP method
PUT
Description
replace status of the specified CanaryDelivery
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
Body parameters
ParameterTypeDescription
bodyCanaryDelivery schemaapplication/json formatted
HTTP responses
HTTP codeResponse body
200 - OKCanaryDelivery schema
201 - CreatedCanaryDelivery schema
401 - UnauthorizedEmpty