- Description
- CanaryTemplate is the Schema for the Canarytemplates API
- Type
object
Specification
.spec
- Description
- CanaryTemplateSpec defines the desired state of CanaryTemplate
- Type
object
.spec.analysis
- Description
- Analysis defines the validation process of a release
- Type
object- Required
interval
.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
.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
.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
.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
.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
.spec.analysis.metrics
- Description
- Metric check list for this canary analysis
- Type
array
.spec.analysis.metrics[]
- Description
- CanaryMetric holds the reference to metrics used for canary analysis
- Type
object- Required
name
.spec.analysis.metrics[].templateRef
- Description
- TemplateRef references a metric template object
- Type
object- Required
name
.spec.analysis.metrics[].thresholdRange
- Description
- Range value accepted for this metric
- Type
object
.spec.analysis.webhooks
- Description
- Webhook list for this canary analysis
- Type
array
.spec.analysis.webhooks[]
- Description
- CanaryWebhook holds the reference to external checks used for canary analysis
- Type
object- Required
nametypeurl
.spec.autoscalerRef
- Description
- AutoscalerRef references an autoscaling resource
- Type
object- Required
name
.spec.canaryAnalysis
- Description
- Deprecated: replaced by Analysis
- Type
object- Required
interval
.spec.canaryAnalysis.match
- Description
- A/B testing HTTP header match conditions
- Type
array
.spec.canaryAnalysis.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
.spec.canaryAnalysis.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
.spec.canaryAnalysis.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.canaryAnalysis.match[].gateways[]
- Type
string
.spec.canaryAnalysis.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.canaryAnalysis.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
.spec.canaryAnalysis.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
.spec.canaryAnalysis.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.canaryAnalysis.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
.spec.canaryAnalysis.metrics
- Description
- Metric check list for this canary analysis
- Type
array
.spec.canaryAnalysis.metrics[]
- Description
- CanaryMetric holds the reference to metrics used for canary analysis
- Type
object- Required
name
.spec.canaryAnalysis.metrics[].templateRef
- Description
- TemplateRef references a metric template object
- Type
object- Required
name
.spec.canaryAnalysis.metrics[].thresholdRange
- Description
- Range value accepted for this metric
- Type
object
.spec.canaryAnalysis.webhooks
- Description
- Webhook list for this canary analysis
- Type
array
.spec.canaryAnalysis.webhooks[]
- Description
- CanaryWebhook holds the reference to external checks used for canary analysis
- Type
object- Required
nametypeurl
.spec.ingressRef
- Description
- Reference to NGINX ingress resource
- Type
object- Required
name
.spec.service
- Description
- Service defines how ClusterIP services, service mesh or ingress routing objects are generated
- Type
object- Required
portportDiscovery
.spec.service.backends
- Description
- Backends of the generated App Mesh virtual nodes
- Type
array
.spec.service.backends[]
- Type
string
.spec.service.corsPolicy
- Description
- Cross-Origin Resource Sharing policy for the generated Istio virtual service
- Type
object
.spec.service.corsPolicy.allowHeaders
- Description
- List of HTTP headers that can be used when requesting the resource. Serialized to Access-Control-Allow-Methods header.
- Type
array
.spec.service.corsPolicy.allowHeaders[]
- Type
string
.spec.service.corsPolicy.allowMethods
- Description
- List of HTTP methods allowed to access the resource. The content will be serialized into the Access-Control-Allow-Methods header.
- Type
array
.spec.service.corsPolicy.allowMethods[]
- Type
string
.spec.service.corsPolicy.allowOrigin
- Description
- The list of origins that are allowed to perform CORS requests. The content will be serialized into the Access-Control-Allow-Origin header. Wildcard * will allow all origins.
- Type
array
.spec.service.corsPolicy.allowOrigin[]
- Type
string
.spec.service.corsPolicy.exposeHeaders
- Description
- A white list of HTTP headers that the browsers are allowed to access. Serialized into Access-Control-Expose-Headers header.
- Type
array
.spec.service.corsPolicy.exposeHeaders[]
- Type
string
.spec.service.gateways
- Description
- Gateways attached to the generated Istio virtual service Defaults to the internal mesh gateway
- Type
array
.spec.service.gateways[]
- Type
string
.spec.service.headers
- Description
- Headers operations for the generated Istio virtual service
- Type
object
.spec.service.headers.request
- Description
- Header manipulation rules to apply before forwarding a request to the destination service
- Type
object
.spec.service.headers.request.add
- Description
- Append the given values to the headers specified by keys (will create a comma-separated list of values)
- Type
object
.spec.service.headers.request.remove
- Description
- Remove the specified headers
- Type
array
.spec.service.headers.request.remove[]
- Type
string
.spec.service.headers.request.set
- Description
- Overwrite the headers specified by key with the given values
- Type
object
.spec.service.headers.response
- Description
- Header manipulation rules to apply before returning a response to the caller
- Type
object
.spec.service.headers.response.add
- Description
- Append the given values to the headers specified by keys (will create a comma-separated list of values)
- Type
object
.spec.service.headers.response.remove
- Description
- Remove the specified headers
- Type
array
.spec.service.headers.response.remove[]
- Type
string
.spec.service.headers.response.set
- Description
- Overwrite the headers specified by key with the given values
- Type
object
.spec.service.hosts
- Description
- Hosts attached to the generated Istio virtual service Defaults to the service name
- Type
array
.spec.service.hosts[]
- Type
string
.spec.service.match
- Description
- URI match conditions for the generated service
- Type
array
.spec.service.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
.spec.service.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
.spec.service.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.service.match[].gateways[]
- Type
string
.spec.service.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.service.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
.spec.service.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
.spec.service.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.service.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
.spec.service.retries
- Description
- Retries policy for the generated virtual service
- Type
object
.spec.service.rewrite
- Description
- Rewrite HTTP URIs for the generated service
- Type
object
.spec.service.trafficPolicy
- Description
- TrafficPolicy attached to the generated Istio destination rules
- Type
object
.spec.service.trafficPolicy.connectionPool
- Description
- Settings controlling the volume of connections to an upstream service
- Type
object
.spec.service.trafficPolicy.connectionPool.http
- Description
- HTTP connection pool settings.
- Type
object
.spec.service.trafficPolicy.connectionPool.tcp
- Description
- Settings common to both HTTP and TCP upstream connections.
- Type
object
.spec.service.trafficPolicy.loadBalancer
- Description
- Settings controlling the load balancer algorithms.
- Type
object
.spec.service.trafficPolicy.loadBalancer.consistentHash
- Description
- Consistent Hash-based load balancing can be used to provide soft session affinity based on HTTP headers, cookies or other properties. This load balancing policy is applicable only for HTTP connections. The affinity to a particular destination host will be lost when one or more hosts are added/removed from the destination service.
- Type
object
.spec.service.trafficPolicy.loadBalancer.consistentHash.httpCookie
- Description
- Hash based on HTTP cookie.
- Type
object- Required
namettl
.spec.service.trafficPolicy.outlierDetection
- Description
- Settings controlling eviction of unhealthy hosts from the load balancing pool
- Type
object
.spec.service.trafficPolicy.portLevelSettings
- Description
- Traffic policies specific to individual ports. Note that port level settings will override the destination-level settings. Traffic settings specified at the destination-level will not be inherited when overridden by port-level settings, i.e. default values will be applied to fields omitted in port-level traffic policies.
- Type
array
.spec.service.trafficPolicy.portLevelSettings[]
- Description
- Traffic policies that apply to specific ports of the service
- Type
object- Required
port
.spec.service.trafficPolicy.portLevelSettings[].connectionPool
- Description
- Settings controlling the volume of connections to an upstream service
- Type
object
.spec.service.trafficPolicy.portLevelSettings[].connectionPool.http
- Description
- HTTP connection pool settings.
- Type
object
.spec.service.trafficPolicy.portLevelSettings[].connectionPool.tcp
- Description
- Settings common to both HTTP and TCP upstream connections.
- Type
object
.spec.service.trafficPolicy.portLevelSettings[].loadBalancer
- Description
- Settings controlling the load balancer algorithms.
- Type
object
.spec.service.trafficPolicy.portLevelSettings[].loadBalancer.consistentHash
- Description
- Consistent Hash-based load balancing can be used to provide soft session affinity based on HTTP headers, cookies or other properties. This load balancing policy is applicable only for HTTP connections. The affinity to a particular destination host will be lost when one or more hosts are added/removed from the destination service.
- Type
object
.spec.service.trafficPolicy.portLevelSettings[].loadBalancer.consistentHash.httpCookie
- Description
- Hash based on HTTP cookie.
- Type
object- Required
namettl
.spec.service.trafficPolicy.portLevelSettings[].outlierDetection
- Description
- Settings controlling eviction of unhealthy hosts from the load balancing pool
- Type
object
.spec.service.trafficPolicy.portLevelSettings[].port
- Description
- Specifies the port name or number of a port on the destination service on which this policy is being applied. Names must comply with DNS label syntax (rfc1035) and therefore cannot collide with numbers. If there are multiple ports on a service with the same protocol the names should be of the form <protocol-name>-<DNS label>.
- Type
object
.spec.service.trafficPolicy.portLevelSettings[].tls
- Description
- TLS related settings for connections to the upstream service.
- Type
object- Required
mode
.spec.service.trafficPolicy.portLevelSettings[].tls.subjectAltNames
- Description
- A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. Should be empty if mode is `ISTIO_MUTUAL`.
- Type
array
.spec.service.trafficPolicy.portLevelSettings[].tls.subjectAltNames[]
- Type
string
.spec.service.trafficPolicy.tls
- Description
- TLS related settings for connections to the upstream service.
- Type
object- Required
mode
.spec.service.trafficPolicy.tls.subjectAltNames
- Description
- A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. Should be empty if mode is `ISTIO_MUTUAL`.
- Type
array
.spec.service.trafficPolicy.tls.subjectAltNames[]
- Type
string
.spec.targetRef
- Description
- TargetRef references a target resource
- Type
object- Required
name
API Endpoints
The following API endpoints are available:
/apis/asm.alauda.io/v1alpha1/namespaces/{namespace}/canarytemplatesDELETE: delete collection of CanaryTemplateGET: list objects of kind CanaryTemplatePOST: create a new CanaryTemplate
/apis/asm.alauda.io/v1alpha1/namespaces/{namespace}/canarytemplates/{name}DELETE: delete the specified CanaryTemplateGET: read the specified CanaryTemplatePATCH: partially update the specified CanaryTemplatePUT: replace the specified CanaryTemplate
/apis/asm.alauda.io/v1alpha1/namespaces/{namespace}/canarytemplates
- HTTP method
DELETE- Description
- delete collection of CanaryTemplate
- HTTP responses
- HTTP method
GET- Description
- list objects of kind CanaryTemplate
- HTTP responses
- HTTP method
POST- Description
- create a new CanaryTemplate
- Query parameters
- Body parameters
- HTTP responses
/apis/asm.alauda.io/v1alpha1/namespaces/{namespace}/canarytemplates/{name}
- HTTP method
DELETE- Description
- delete the specified CanaryTemplate
- Query parameters
- HTTP responses
- HTTP method
GET- Description
- read the specified CanaryTemplate
- HTTP responses
- HTTP method
PATCH- Description
- partially update the specified CanaryTemplate
- Query parameters
- HTTP responses
- HTTP method
PUT- Description
- replace the specified CanaryTemplate
- Query parameters
- Body parameters
- HTTP responses