@Override
public void createResource(Topic topic) {
Map<String, String> data = new HashMap<>();
data.put(TOPIC_NAME_KEY, String.valueOf(topic.getName()));
data.put(PARTITIONS_KEY, String.valueOf(topic.getPartitions()));
data.put(REPLICATION_FACTOR_KEY, String.valueOf(topic.getReplicationFactor()));
data.put(PROPERTIES_KEY, Config.propertiesAsString(topic.getProperties()));
data.put(ACL_KEY, String.valueOf(topic.isAcl()));
Map<String, String> labels = labels();
labels.put(GENERATOR_LABEL, operator.getGeneratorId());
Map<String, String> annotations = new HashMap<>();
annotations.put(GENERATED_ANNOTATION, ZonedDateTime.now().format(DateTimeFormatter.ISO_INSTANT));
ConfigMap cm = new ConfigMapBuilder()
.withNewMetadata()
.withName(cleanName(topic.getName()))
.withLabels(labels)
.withAnnotations(annotations)
.endMetadata()
.withData(data).build();
cm = kubeClient().configMaps().create(cm);
log.info("Created ConfigMap {} for topic {}", cm, topic);
}