clusters
Creates, updates, deletes or gets a cluster resource or lists clusters in a region
Overview
| Name | clusters |
| Type | Resource |
| Description | Resource Type definition for AWS::MSK::Cluster |
| Id | awscc.msk.clusters |
Fields
- get (all properties)
- list (identifiers only)
| Name | Datatype | Description |
|---|---|---|
broker_node_group_info | object | |
enhanced_monitoring | string | |
kafka_version | string | |
number_of_broker_nodes | integer | |
encryption_info | object | |
open_monitoring | object | |
cluster_name | string | |
arn | string | |
current_version | string | The current version of the MSK cluster |
client_authentication | object | |
logging_info | object | |
tags | object | A key-value pair to associate with a resource. |
configuration_info | object | |
storage_mode | string | |
region | string | AWS region. |
| Name | Datatype | Description |
|---|---|---|
arn | string | |
region | string | AWS region. |
For more information, see AWS::MSK::Cluster.
Methods
| Name | Resource | Accessible by | Required Params |
|---|---|---|---|
create_resource | clusters | INSERT | BrokerNodeGroupInfo, KafkaVersion, NumberOfBrokerNodes, ClusterName, region |
delete_resource | clusters | DELETE | Identifier, region |
update_resource | clusters | UPDATE | Identifier, PatchDocument, region |
list_resources | clusters_list_only | SELECT | region |
get_resource | clusters | SELECT | Identifier, region |
SELECT examples
- get (all properties)
- list (identifiers only)
Gets all properties from an individual cluster.
SELECT
region,
broker_node_group_info,
enhanced_monitoring,
kafka_version,
number_of_broker_nodes,
encryption_info,
open_monitoring,
cluster_name,
arn,
current_version,
client_authentication,
logging_info,
tags,
configuration_info,
storage_mode
FROM awscc.msk.clusters
WHERE
region = 'us-east-1' AND
Identifier = '{{ arn }}';
Lists all clusters in a region.
SELECT
region,
arn
FROM awscc.msk.clusters_list_only
WHERE
region = 'us-east-1';
INSERT example
Use the following StackQL query and manifest file to create a new cluster resource, using stack-deploy.
- Required Properties
- All Properties
- Manifest
/*+ create */
INSERT INTO awscc.msk.clusters (
BrokerNodeGroupInfo,
KafkaVersion,
NumberOfBrokerNodes,
ClusterName,
region
)
SELECT
'{{ broker_node_group_info }}',
'{{ kafka_version }}',
'{{ number_of_broker_nodes }}',
'{{ cluster_name }}',
'{{ region }}';
/*+ create */
INSERT INTO awscc.msk.clusters (
BrokerNodeGroupInfo,
EnhancedMonitoring,
KafkaVersion,
NumberOfBrokerNodes,
EncryptionInfo,
OpenMonitoring,
ClusterName,
CurrentVersion,
ClientAuthentication,
LoggingInfo,
Tags,
ConfigurationInfo,
StorageMode,
region
)
SELECT
'{{ broker_node_group_info }}',
'{{ enhanced_monitoring }}',
'{{ kafka_version }}',
'{{ number_of_broker_nodes }}',
'{{ encryption_info }}',
'{{ open_monitoring }}',
'{{ cluster_name }}',
'{{ current_version }}',
'{{ client_authentication }}',
'{{ logging_info }}',
'{{ tags }}',
'{{ configuration_info }}',
'{{ storage_mode }}',
'{{ region }}';
version: 1
name: stack name
description: stack description
providers:
- aws
globals:
- name: region
value: '{{ vars.AWS_REGION }}'
resources:
- name: cluster
props:
- name: broker_node_group_info
value:
storage_info:
ebs_storage_info:
volume_size: '{{ volume_size }}'
provisioned_throughput:
enabled: '{{ enabled }}'
volume_throughput: '{{ volume_throughput }}'
connectivity_info:
public_access:
type: '{{ type }}'
vpc_connectivity:
client_authentication:
tls:
enabled: '{{ enabled }}'
sasl:
scram:
enabled: '{{ enabled }}'
iam:
enabled: '{{ enabled }}'
security_groups:
- '{{ security_groups[0] }}'
broker_az_distribution: '{{ broker_az_distribution }}'
client_subnets:
- '{{ client_subnets[0] }}'
instance_type: '{{ instance_type }}'
- name: enhanced_monitoring
value: '{{ enhanced_monitoring }}'
- name: kafka_version
value: '{{ kafka_version }}'
- name: number_of_broker_nodes
value: '{{ number_of_broker_nodes }}'
- name: encryption_info
value:
encryption_at_rest:
data_volume_kms_key_id: '{{ data_volume_kms_key_id }}'
encryption_in_transit:
in_cluster: '{{ in_cluster }}'
client_broker: '{{ client_broker }}'
- name: open_monitoring
value:
prometheus:
jmx_exporter:
enabled_in_broker: '{{ enabled_in_broker }}'
node_exporter:
enabled_in_broker: '{{ enabled_in_broker }}'
- name: cluster_name
value: '{{ cluster_name }}'
- name: current_version
value: '{{ current_version }}'
- name: client_authentication
value:
sasl:
iam:
enabled: '{{ enabled }}'
- name: logging_info
value:
broker_logs:
s3:
enabled: '{{ enabled }}'
prefix: '{{ prefix }}'
bucket: '{{ bucket }}'
cloud_watch_logs:
log_group: '{{ log_group }}'
enabled: '{{ enabled }}'
firehose:
enabled: '{{ enabled }}'
delivery_stream: '{{ delivery_stream }}'
- name: tags
value: {}
- name: configuration_info
value:
revision: '{{ revision }}'
arn: '{{ arn }}'
- name: storage_mode
value: '{{ storage_mode }}'
UPDATE example
Use the following StackQL query and manifest file to update a cluster resource, using stack-deploy.
/*+ update */
UPDATE awscc.msk.clusters
SET PatchDocument = string('{{ {
"EnhancedMonitoring": enhanced_monitoring,
"KafkaVersion": kafka_version,
"NumberOfBrokerNodes": number_of_broker_nodes,
"OpenMonitoring": open_monitoring,
"CurrentVersion": current_version,
"ClientAuthentication": client_authentication,
"LoggingInfo": logging_info,
"Tags": tags,
"ConfigurationInfo": configuration_info,
"StorageMode": storage_mode
} | generate_patch_document }}')
WHERE
region = '{{ region }}' AND
Identifier = '{{ arn }}';
DELETE example
/*+ delete */
DELETE FROM awscc.msk.clusters
WHERE
Identifier = '{{ arn }}' AND
region = 'us-east-1';
Permissions
To operate on the clusters resource, the following permissions are required:
- Create
- Update
- Delete
- List
- Read
ec2:DescribeSecurityGroups,
ec2:DescribeSubnets,
ec2:DescribeVpcs,
iam:AttachRolePolicy,
iam:CreateServiceLinkedRole,
iam:PutRolePolicy,
kms:CreateGrant,
kms:DescribeKey,
kafka:CreateCluster,
kafka:DescribeCluster,
kafka:TagResource,
logs:CreateLogDelivery,
logs:GetLogDelivery,
logs:UpdateLogDelivery,
logs:DeleteLogDelivery,
logs:ListLogDeliveries,
s3:GetBucketPolicy,
s3:PutBucketPolicy,
logs:PutResourcePolicy,
logs:DescribeResourcePolicies,
logs:DescribeLogGroups,
firehose:TagDeliveryStream,
acm-pca:GetCertificateAuthorityCertificate
kafka:UpdateMonitoring,
kafka:UpdateClusterKafkaVersion,
kafka:UpdateClusterConfiguration,
kafka:UpdateBrokerType,
kafka:UpdateBrokerCount,
kafka:UpdateBrokerStorage,
kafka:UpdateStorage,
kafka:UpdateSecurity,
kafka:UpdateConnectivity,
kafka:DescribeCluster,
kafka:DescribeClusterOperation,
kafka:TagResource,
kafka:UntagResource,
ec2:DescribeSubnets,
ec2:DescribeVpcs,
ec2:DescribeSecurityGroups,
iam:AttachRolePolicy,
iam:CreateServiceLinkedRole,
iam:PutRolePolicy,
kms:DescribeKey,
kms:CreateGrant,
logs:CreateLogDelivery,
logs:GetLogDelivery,
logs:UpdateLogDelivery,
logs:DeleteLogDelivery,
logs:ListLogDeliveries,
s3:GetBucketPolicy,
logs:PutResourcePolicy,
logs:DescribeResourcePolicies,
logs:DescribeLogGroups,
firehose:TagDeliveryStream,
acm-pca:GetCertificateAuthorityCertificate
kafka:DeleteCluster,
kafka:DescribeCluster
kafka:ListClusters
kafka:DescribeCluster