Skip to content

Commit a43f310

Browse files
tombentleySamBarker
authored andcommitted
Use Object for configTemplate
Signed-off-by: Tom Bentley <[email protected]>
1 parent 9b5afcc commit a43f310

File tree

4 files changed

+9
-41
lines changed

4 files changed

+9
-41
lines changed

kroxylicious-operator/pom.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,9 @@
357357
<io.kroxylicious.kubernetes.api.v1alpha1.kafkaproxystatus.clusters.Conditions>
358358
io.kroxylicious.kubernetes.api.common.Condition
359359
</io.kroxylicious.kubernetes.api.v1alpha1.kafkaproxystatus.clusters.Conditions>
360-
360+
<io.kroxylicious.kubernetes.filter.api.v1alpha1.kafkaprotocolfilterspec.ConfigTemplate>
361+
java.lang.Object
362+
</io.kroxylicious.kubernetes.filter.api.v1alpha1.kafkaprotocolfilterspec.ConfigTemplate>
361363
</existingJavaTypes>
362364
<packageOverrides>
363365
<!-- the default package name ($apiGroup.$apiVersion) doesn't work for us -->

kroxylicious-operator/src/main/java/io/kroxylicious/kubernetes/operator/ProxyConfigConfigMap.java

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import java.util.Map;
1717
import java.util.Optional;
1818
import java.util.Set;
19-
import java.util.TreeMap;
2019
import java.util.stream.Collectors;
2120

2221
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -35,7 +34,6 @@
3534
import io.kroxylicious.kubernetes.api.v1alpha1.KafkaService;
3635
import io.kroxylicious.kubernetes.api.v1alpha1.VirtualKafkaCluster;
3736
import io.kroxylicious.kubernetes.filter.api.v1alpha1.KafkaProtocolFilterSpec;
38-
import io.kroxylicious.kubernetes.filter.api.v1alpha1.kafkaprotocolfilterspec.ConfigTemplate;
3937
import io.kroxylicious.kubernetes.operator.model.ProxyModel;
4038
import io.kroxylicious.kubernetes.operator.model.ProxyModelBuilder;
4139
import io.kroxylicious.kubernetes.operator.model.ingress.ProxyIngressModel;
@@ -49,11 +47,11 @@
4947
import io.kroxylicious.proxy.config.admin.ManagementConfiguration;
5048
import io.kroxylicious.proxy.config.admin.PrometheusMetricsConfig;
5149

50+
import edu.umd.cs.findbugs.annotations.NonNull;
51+
5252
import static io.kroxylicious.kubernetes.operator.Labels.standardLabels;
5353
import static io.kroxylicious.kubernetes.operator.ResourcesUtil.namespace;
5454

55-
import edu.umd.cs.findbugs.annotations.NonNull;
56-
5755
/**
5856
* Generates a Kube {@code ConfigMap} containing the proxy config YAML.
5957
*/
@@ -229,12 +227,9 @@ private static <T> void putOrMerged(ManagedWorkflowAndDependentResourceContext c
229227

230228
private SecureConfigInterpolator.InterpolationResult interpolateConfig(KafkaProtocolFilterSpec spec) {
231229
SecureConfigInterpolator.InterpolationResult result;
232-
ConfigTemplate configTemplate = spec.getConfigTemplate();
230+
Object configTemplate = spec.getConfigTemplate();
233231
if (configTemplate != null) {
234-
// Nasty nasty hack. Revisit
235-
final TreeMap<String, Object> configProperties = new TreeMap<>(Comparator.nullsFirst(Comparator.naturalOrder()));
236-
configProperties.putAll(configTemplate.getAdditionalProperties());
237-
result = secureConfigInterpolator.interpolate(configProperties);
232+
result = secureConfigInterpolator.interpolate(configTemplate);
238233
}
239234
else {
240235
throw new IllegalArgumentException("ConfigTemplate is not found in KafkaProtocolFilterSpec");

kroxylicious-operator/src/test/java/io/kroxylicious/kubernetes/operator/DerivedResourcesTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,15 @@
5050
import io.kroxylicious.kubernetes.filter.api.v1alpha1.KafkaProtocolFilter;
5151
import io.kroxylicious.kubernetes.operator.config.RuntimeDecl;
5252

53+
import edu.umd.cs.findbugs.annotations.NonNull;
54+
5355
import static io.kroxylicious.kubernetes.operator.ProxyDeployment.KROXYLICIOUS_IMAGE_ENV_VAR;
5456
import static io.kroxylicious.kubernetes.operator.ResourcesUtil.name;
5557
import static io.kroxylicious.kubernetes.operator.ResourcesUtil.namespace;
5658
import static org.assertj.core.api.Assertions.assertThat;
5759
import static org.mockito.Mockito.doReturn;
5860
import static org.mockito.Mockito.mock;
5961

60-
import edu.umd.cs.findbugs.annotations.NonNull;
61-
6262
class DerivedResourcesTest {
6363

6464
static final YAMLMapper YAML_MAPPER = new YAMLMapper()

kroxylicious-operator/src/test/java/io/kroxylicious/kubernetes/operator/SecureConfigInterpolatorTest.java

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@
1818
import io.fabric8.kubernetes.api.model.Volume;
1919
import io.fabric8.kubernetes.api.model.VolumeMount;
2020

21-
import io.kroxylicious.kubernetes.filter.api.v1alpha1.kafkaprotocolfilterspec.ConfigTemplate;
22-
2321
import static org.assertj.core.api.Assertions.assertThat;
2422
import static org.assertj.core.api.Assertions.assertThatThrownBy;
2523

@@ -70,33 +68,6 @@ void shouldInterpolateInAnObject() throws JsonProcessingException {
7068
Map<String, SecureConfigProvider> secret = Map.of("secret", MountedResourceConfigProvider.SECRET_PROVIDER);
7169
var i = new SecureConfigInterpolator("/base", secret);
7270

73-
var jsonValue = YAML_MAPPER.readValue("""
74-
filterOneConfig: true
75-
password: "${secret:my-secret:filter-one}"
76-
""", ConfigTemplate.class);
77-
78-
// when
79-
var result = i.interpolate(jsonValue);
80-
81-
// then
82-
assertThat(result.volumes()).singleElement().extracting(Volume::getName).isEqualTo("secrets-my-secret");
83-
assertThat(result.volumes()).singleElement().extracting(Volume::getSecret).extracting(SecretVolumeSource::getSecretName).isEqualTo("my-secret");
84-
85-
assertThat(result.mounts()).singleElement().extracting(VolumeMount::getName).isEqualTo("secrets-filter-one");
86-
assertThat(result.mounts()).singleElement().extracting(VolumeMount::getMountPath).isEqualTo("/base/secret/filter-one");
87-
88-
assertThat(YAML_MAPPER.writeValueAsString(result.config())).isEqualTo("""
89-
filterOneConfig: true
90-
password: /base/secret/my-secret/filter-one
91-
""");
92-
}
93-
94-
@Test
95-
void shouldInterpolateInnMap() throws JsonProcessingException {
96-
// given
97-
Map<String, SecureConfigProvider> secret = Map.of("secret", MountedResourceConfigProvider.SECRET_PROVIDER);
98-
var i = new SecureConfigInterpolator("/base", secret);
99-
10071
var jsonValue = YAML_MAPPER.readValue("""
10172
kms: AwsKms
10273
object:

0 commit comments

Comments
 (0)