ALIYUN::ASM::ServiceMesh is used to create a Service Mesh (ASM) instance.
Syntax
{
"Type": "ALIYUN::ASM::ServiceMesh",
"Properties": {
"EnableAudit": Boolean,
"OPA": Map,
"IstioVersion": String,
"ApiServerPublicEip": Boolean,
"LocalityLoadBalancing": Boolean,
"Telemetry": Boolean,
"OutboundTrafficPolicy": String,
"AuditProject": String,
"TraceSampling": Number,
"Name": String,
"Proxy": Map,
"VpcId": String,
"PilotPublicEip": Boolean,
"IncludeIPRanges": String,
"VSwitches": List,
"Tracing": Boolean,
"CustomizedZipkin": Boolean,
"EnableACMG": Boolean,
"CustomizedPrometheus": Boolean,
"MSEEnabled": Boolean,
"WebAssemblyFilterEnabled": Boolean,
"CRAggregationEnabled": Boolean,
"CertChain": String,
"ConfigSourceNacosID": String,
"ConfigSourceEnabled": Boolean,
"EnableSDSServer": Boolean,
"DNSProxyingEnabled": Boolean,
"OpaEnabled": Boolean,
"LocalityLBConf": String,
"GuestCluster": String,
"KialiEnabled": Boolean,
"ControlPlaneLogEnabled": Boolean,
"EnableAmbient": Boolean,
"ExistingCaKey": String,
"ApiServerLoadBalancerSpec": String,
"ExcludeIPRanges": String,
"FilterGatewayClusterConfig": Boolean,
"PilotLoadBalancerSpec": String,
"AutoRenew": Boolean,
"AccessLogServiceEnabled": Boolean,
"ExistingRootCaCert": String,
"MysqlFilterEnabled": Boolean,
"GatewayAPIEnabled": Boolean,
"ControlPlaneLogProject": String,
"Edition": String,
"UseExistingCA": Boolean,
"ChargeType": String,
"ExistingCaType": String,
"PlaygroundScene": String,
"AccessLogEnabled": Boolean,
"AccessLogProject": String,
"ExistingRootCaKey": String,
"ExistingCaCert": String,
"Period": Number,
"ExcludeInboundPorts": String,
"ClusterSpec": String,
"MultiBufferPollDelay": String,
"AccessLogServicePort": Integer,
"ExcludeOutboundPorts": String,
"PrometheusUrl": String,
"AccessLogFormat": String,
"DubboFilterEnabled": Boolean,
"AutoRenewPeriod": Integer,
"AccessLogFile": String,
"MultiBufferEnabled": Boolean,
"EnableCRHistory": Boolean,
"AccessLogServiceHost": String
}
}Properties
Property | Type | Required | Editable | Description | Constraint |
VpcId | String | Yes | No | The ID of the virtual private cloud (VPC). | None. |
VSwitches | List | Yes | No | The IDs of the vSwitches. | None. |
ApiServerPublicEip | Boolean | No | No | Specifies whether to expose the API server to the Internet. | Valid values:
|
AuditProject | String | No | Yes | The name of the Simple Log Service (SLS) project that is used for mesh audits. | Default value: mesh-log-{meshId}. |
EnableACMG | Boolean | No | No | Specifies whether to enbale the Alibaba Centralized Mesh Gateway (ACMG) mode. | None. |
CustomizedPrometheus | Boolean | No | No | Specifies whether to use a custom Prometheus instance. | Valid values:
Default value: |
MSEEnabled | Boolean | No | No | Specifies whether to enable Microservices Engine (MSE). | Valid values:
Default value: |
WebAssemblyFilterEnabled | Boolean | No | No | Specifies whether to enable WebAssembly Filter. | Valid values:
Default value: |
CRAggregationEnabled | Boolean | No | No | Specifies whether to allow the Kubernetes API of clusters on the data plane to access Istio resources. | Valid values:
Default value: |
CertChain | String | No | No | The certificate chain from the certificate authority (CA) certificate to the root certificate. The chain must include at least two certificates. | None. |
ConfigSourceNacosID | String | No | No | The instance ID of the Nacos registry. | None. |
ConfigSourceEnabled | Boolean | No | No | Specifies whether to enable the external service registry. | Valid values:
Default value: |
EnableSDSServer | Boolean | No | No | Specifies whether to enable Secret Discovery Service (SDS). | Valid values:
Default value: |
DNSProxyingEnabled | Boolean | No | No | Specifies whether to enable the domain name resolution (DNS) proxy feature. | Valid values:
Default value: |
OpaEnabled | Boolean | No | No | Specifies whether to enable the Open Policy Agent (OPA) plug-in. | Valid values:
Default value: |
LocalityLBConf | String | No | No | The configurations for the access to the nearest ASM instance. | None. |
GuestCluster | String | No | No | The ID of the cluster that you want to add to the ASM instance when you create an ASM instance. If you do not specify this property, no cluster is added to the ASM instance. | The cluster and the ASM instance must be in the same vSwitch of the same VPC and have the same domain name. |
KialiEnabled | Boolean | No | No | Specifies whether to enable the mesh topology feature. | Valid values:
Default value: |
ControlPlaneLogEnabled | Boolean | No | No | Specifies whether to enable collection of control plane logs. | Valid values:
Default value: |
EnableAmbient | Boolean | No | No | Specifies whether to enable the Ambient Mesh mode for the ASM instance. | None. |
ExistingCaKey | String | No | No | The existing CA key. | This property is used in scenarios where you migrate open source Istio to ASM. The value of this property corresponds to the content of the ca-key.pem file in the istio-ca-secret secret in the istio-system namespace of the cluster where the open source Istio is installed. |
ApiServerLoadBalancerSpec | String | No | No | The specification of the Classic Load Balancer (CLB) instance that is bound to the API server. | Valid values: |
ExcludeIPRanges | String | No | No | The IP address ranges to be excluded from redirection to the sidecar proxy in the ASM instance. | None. |
FilterGatewayClusterConfig | Boolean | No | No | Specifies whether to enable the gateway configuration filtering feature. | Valid values:
Default value: |
PilotLoadBalancerSpec | String | No | No | The specification of the CLB instance that is bound to Istio Pilot. | Valid values: |
AutoRenew | Boolean | No | No | Specifies whether to enable auto-renewal for the CLB instance when the CLB instance uses the subscription billing method. | Valid values:
|
AccessLogServiceEnabled | Boolean | No | No | Specifies whether to enable gRPC Access Log Service (ALS) of Envoy. | Valid values:
Default value: |
ExistingRootCaCert | String | No | No | The existing root certificate. | None. |
MysqlFilterEnabled | Boolean | No | No | Specifies whether to enable MySQL Filter. | Valid values:
Default value: |
GatewayAPIEnabled | Boolean | No | No | Specifies whether to enable Gateway API. | Valid values:
Default value: |
ControlPlaneLogProject | String | No | No | The name of the SLS project that is used to collect control plane logs. | None. |
Edition | String | No | No | The free edition of the ASM instance. | None. |
UseExistingCA | Boolean | No | No | Specifies whether to use an existing CA certificate and private key. | None. |
ChargeType | String | No | No | The billing method of the CLB instance. | Valid values:
|
ExistingCaType | String | No | No | The type of the existing CA certificate. |
|
PlaygroundScene | String | No | No | The playground scenario. | Set the value to ewmaLb. A value of ewmaLb specifies the exponentially weighted moving average (EWMA) load balancing algorithm. |
AccessLogEnabled | Boolean | No | No | Specifies whether to enable the access log collection feature. | Valid values:
Default value: |
AccessLogProject | String | No | No | The SLS project from which access logs are collected. | None. |
ExistingRootCaKey | String | No | No | The private key that corresponds to the root certificate. | None. |
ExistingCaCert | String | No | No | The existing CA certificate, which is encoded in Base64. | This property is used in scenarios where you migrate open source Istio to ASM. The value of this property corresponds to the content of the ca-cert.pem file in the istio-ca-secret secret in the istio-system namespace of the cluster where the open source Istio is installed. |
Period | Number | No | No | The subscription duration of the CLB instance when the CLB instance uses the subscription billing method. Unit: month. | This property takes effect when ChargeType is set to PrePay. If you want a one-year subscription, specify 12 as the value of Period. |
ExcludeInboundPorts | String | No | No | The inbound ports to be excluded from redirection to the sidecar proxy in the ASM instance. Separate multiple port numbers with commas (,). | None. |
ClusterSpec | String | No | No | The edition of the ASM instance. | Valid values:
|
MultiBufferPollDelay | String | No | No | The pull-request latency. | Default value: 30s. |
AccessLogServicePort | Integer | No | No | The port of gRPC ALS of Envoy. | None. |
ExcludeOutboundPorts | String | No | No | The outbound ports to be excluded from redirection to the sidecar proxy in the ASM instance. Separate multiple port numbers with commas (,). | None. |
PrometheusUrl | String | No | No | The address of the custom Prometheus instance. | None. |
AccessLogFormat | String | No | No | The custom format of access logs. | The value of this property must be a JSON string that contains at least the following keys and their values: authority_for, bytes_received, bytes_sent, downstream_local_address, downstream_remote_address, duration, istio_policy_status, method, path, protocol, requested_server_name, response_code, response_flags, route_name, start_time, trace_id, upstream_cluster, upstream_host, upstream_local_address, upstream_service_time, upstream_transport_failure_reason, user_agent, and x_forwarded_for. Example: |
DubboFilterEnabled | Boolean | No | No | Specifies whether to enable Dubbo Filter. | Valid values:
Default value: |
AutoRenewPeriod | Integer | No | No | The auto-renewal period of the CLB instance when the CLB instance uses the subscription billing method. | This property takes effect when |
AccessLogFile | String | No | No | Specifies whether to enable the access log collection feature. | Valid values:
|
MultiBufferEnabled | Boolean | No | No | Specifies whether to enable MultiBuffer-based Transport Layer Security (TLS) acceleration. | Valid values:
Default value: |
EnableCRHistory | Boolean | No | No | Specifies whether to enable the rollback feature for Istio resources. | Valid values:
Default value: |
AccessLogServiceHost | String | No | No | The address of gRPC ALS of Envoy. | None. |
CustomizedZipkin | Boolean | No | Yes | Specifies whether to enable self-managed Zipkin. | Valid values:
|
EnableAudit | Boolean | No | Yes | Specifies whether to enable the mesh audit feature. | Valid values:
Note To enable this feature, you must activate SLS. |
IncludeIPRanges | String | No | Yes | The IP address ranges for which traffic is to be redirected to the sidecar proxy in the ASM instance. | None. |
IstioVersion | String | No | No | The Istio version. | None. |
LocalityLoadBalancing | Boolean | No | Yes | Specifies whether to route traffic to the nearest ASM instance. | Valid values:
|
Name | String | No | No | The name of the ASM instance. | None. |
OPA | Map | No | Yes | The configurations of the OPA plug-in. | For more information, see OPA properties. |
OutboundTrafficPolicy | String | No | Yes | The outbound traffic policy. | Valid values:
|
PilotPublicEip | Boolean | No | No | Specifies whether to expose Istio Pilot to the Internet. | Valid values:
|
Proxy | Map | No | Yes | The proxy configurations. | For more information, see Proxy properties. |
Telemetry | Boolean | No | Yes | Specifies whether to enable the Prometheus monitoring feature. | We recommend that you use Alibaba Cloud Managed Service for Prometheus. |
TraceSampling | Number | No | Yes | The sampling percentage of Managed Service for OpenTelemetry. | None. |
Tracing | Boolean | No | Yes | Specifies whether to enable the tracing analysis feature. | Valid values:
Note To enable this feature, you must activate Managed Service for OpenTelemetry. |
OPA syntax
"OPA": {
"OPARequestCPU": String,
"OpenAgentPolicy": Boolean,
"OPALogLevel": String,
"OPALimitCPU": String,
"OPALimitMemory": String,
"OPARequestMemory": String
}OPA properties
Property | Type | Required | Editable | Description | Constraint |
OPALimitCPU | String | No | Yes | The CPU limit of the OPA container. | None. |
OPALimitMemory | String | No | Yes | The memory limit the OPA container. | None. |
OPALogLevel | String | No | Yes | The log level of the OPA container. | None. |
OPARequestCPU | String | No | Yes | The CPU request of the OPA container. | None. |
OPARequestMemory | String | No | Yes | The memory request of the OPA container. | None. |
OpenAgentPolicy | Boolean | No | Yes | Specifies whether to install the OPA plug-in. | Valid values:
|
Proxy syntax
"Proxy": {
"ClusterDomain": String,
"ProxyLimitCPU": String,
"ProxyLimitMemory": String,
"ProxyRequestCPU": String,
"ProxyRequestMemory": String
}Proxy properties
Property | Type | Required | Editable | Description | Constraint |
ClusterDomain | String | No | Yes | The domain name of the cluster. | None. |
ProxyLimitCPU | String | No | Yes | The CPU limit of the proxy. | None. |
ProxyLimitMemory | String | No | Yes | The memory limit of the proxy. | None. |
ProxyRequestCPU | String | No | Yes | The CPU request of the proxy. | None. |
ProxyRequestMemory | String | No | Yes | The memory request of the proxy. | None. |
Return values
Fn::GetAtt
ServiceMeshId: the ID of the ASM instance.
Examples
YAML format
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
ZoneId:
Type: String
Description: Create an Availability Zone for an instance to ensure that the Availability Zone supports the creation of Memcache resource specifications.
AssociationProperty: ALIYUN::ECS::Instance::ZoneId
Label: Zone ID
VPC:
AssociationProperty: ALIYUN::ECS::VPC::VPCId
Type: String
Description: Please search the ID starts with (vpc-xxx)from console-Virtual Private Cloud
Label: Existing VPC Instance ID
VSwitch:
AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
Type: String
Description: Please search the business VSwitch ID starts with(vsw-xxx)from console-Virtual Private Cloud-VSwitches
Label: Existing VSwitch ID
AssociationPropertyMetadata:
VpcId: VPC
ZoneId: ZoneId
Resources:
ServiceMesh:
Type: ALIYUN::ASM::ServiceMesh
Properties:
VpcId:
Ref: VPC
VSwitches:
- Ref: VSwitch
Outputs:
ServiceMeshId:
Description: The ID of the ASM instance.
Value:
Fn::GetAtt:
- ServiceMesh
- ServiceMeshId
JSON format
{
"ROSTemplateFormatVersion": "2015-09-01",
"Parameters": {
"ZoneId": {
"Type": "String",
"Description": "Create an Availability Zone for an instance to ensure that the Availability Zone supports the creation of Memcache resource specifications.",
"AssociationProperty": "ALIYUN::ECS::Instance::ZoneId",
"Label": "Zone ID"
},
"VPC": {
"AssociationProperty": "ALIYUN::ECS::VPC::VPCId",
"Type": "String",
"Description": "Please search the ID starts with (vpc-xxx)from console-Virtual Private Cloud",
"Label": "Existing VPC Instance ID"
},
"VSwitch": {
"AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
"Type": "String",
"Description": "Please search the business VSwitch ID starts with(vsw-xxx)from console-Virtual Private Cloud-VSwitches",
"Label": "Existing VSwitch ID",
"AssociationPropertyMetadata": {
"VpcId": "VPC",
"ZoneId": "ZoneId"
}
}
},
"Resources": {
"ServiceMesh": {
"Type": "ALIYUN::ASM::ServiceMesh",
"Properties": {
"VpcId": {
"Ref": "VPC"
},
"VSwitches": [
{
"Ref": "VSwitch"
}
]
}
}
},
"Outputs": {
"ServiceMeshId": {
"Description": "The ID of the ASM instance.",
"Value": {
"Fn::GetAtt": [
"ServiceMesh",
"ServiceMeshId"
]
}
}
}
}