cloudera.services.smm_kafka_topic module – Manage Kafka topics in Streams Messaging Manager
Note
This module is part of the cloudera.services collection (version 1.0.0).
It is not included in ansible-core.
To check whether it is installed, run ansible-galaxy collection list.
To install it, use: ansible-galaxy collection install git+https://github.com/cloudera-labs/cloudera.services.git.
To use it in a playbook, specify: cloudera.services.smm_kafka_topic.
New in cloudera.services 1.1.0
Synopsis
Create, update, or delete Kafka topics through Cloudera Streams Messaging Manager (SMM).
An existing topic can have its partitions increased and its topic-level configs changed.
Kafka cannot decrease the partitions or change the replication factor of an existing topic, so the module fails if either is requested.
Parameters
Parameter |
Comments |
|---|---|
The path to a client certificate for authenticating to the API endpoint. |
|
The path to a client key for authenticating to the API endpoint. |
|
A dictionary of topic-level configuration overrides, for example Values are converted to strings before they are sent to Kafka. Only the listed configs are set, other topic-level overrides already present on the topic are kept. SMM derives an hours variant for some configs, for example Config names are sent to SMM verbatim. |
|
A flag to enable debug logging of the module’s execution. Choices:
|
|
A flag to force a refresh of the API request, ignoring any cached results. Choices:
|
|
A flag to force basic authentication for API requests. Choices:
|
|
The User-Agent string to send with API requests. Default: |
|
Name of the Kafka topic. |
|
The number of items to return per page in a paginated API response. Default: |
|
Number of partitions of the topic. Required when the topic is created. On an existing topic the number can only be increased. |
|
Number of replicas of each partition. Required when the topic is created. It cannot be changed on an existing topic. |
|
Whether the topic should be present or absent. Choices:
|
|
The timeout in seconds for any API requests. Default: |
|
The base URL of the API endpoint, including the port if necessary. |
|
The password for authenticating to the API endpoint. |
|
The username for authenticating to the API endpoint. |
|
A flag to enable or disable GSSAPI authentication for API requests. Choices:
|
|
A flag to enable or disable the use of a proxy for API requests. Choices:
|
|
A flag to enable or disable SSL certificate validation for API requests. Choices:
|
Attributes
Attribute |
Support |
Description |
|---|---|---|
Support: full |
This module supports check mode. |
|
Support: full |
This module supports diff mode. |
Examples
# NOTE: Examples do not include connection and authentication fields
- name: Create a Kafka topic
cloudera.services.smm_kafka_topic:
name: "orders"
partitions: 3
replication_factor: 2
configs:
retention.ms: 604800000
cleanup.policy: "delete"
- name: Increase the partitions and change a config of an existing topic
cloudera.services.smm_kafka_topic:
name: "orders"
partitions: 6
configs:
retention.ms: 86400000
- name: Delete a Kafka topic
cloudera.services.smm_kafka_topic:
name: "orders"
state: "absent"
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
|---|---|
A dictionary containing details about the topic. Empty when the topic is absent. Returned: always |
|
Topic-level configuration overrides. Settings inherited from the broker or built-in defaults are not included. SMM can also report values it derives from a set config, such as Returned: always |
|
Whether the topic is a Kafka internal topic. Returned: when the topic exists |
|
Name of the topic. Returned: always |
|
Leader, replicas and in-sync replicas of every partition. Returned: when the topic exists |
|
Brokers whose replica is in sync, in the same format as Returned: always |
|
Broker currently leading the partition. Returned: always |
|
Broker host name. Returned: always |
|
Broker ID. Returned: always |
|
Whether the broker is the cluster controller. Returned: always |
|
Broker port. Returned: always |
|
Rack of the broker. Returned: always |
|
Partition number. Returned: always |
|
Brokers holding a replica of the partition, in the same format as Returned: always |
|
Number of partitions of the topic. Returned: always |
|
Number of replicas of each partition. Returned: when the topic has at least one partition or the replication factor was requested |