diff --git a/manifests/examples/testing/scenarios/cluster/cluster-agent-configuration.yaml b/manifests/examples/testing/scenarios/cluster/cluster-agent-configuration.yaml index 2aad907f..788b7447 100644 --- a/manifests/examples/testing/scenarios/cluster/cluster-agent-configuration.yaml +++ b/manifests/examples/testing/scenarios/cluster/cluster-agent-configuration.yaml @@ -10,6 +10,7 @@ spec: enabled: false foo: bar: "foobar" + special: "%specialyaml" initContainer: securityContext: runAsUser: 499 diff --git a/src/Contrast.K8s.AgentOperator/Core/Reactions/Defaults/ClusterAgentConfigurationSyncingHandler.cs b/src/Contrast.K8s.AgentOperator/Core/Reactions/Defaults/ClusterAgentConfigurationSyncingHandler.cs index 495990c2..a26152d9 100644 --- a/src/Contrast.K8s.AgentOperator/Core/Reactions/Defaults/ClusterAgentConfigurationSyncingHandler.cs +++ b/src/Contrast.K8s.AgentOperator/Core/Reactions/Defaults/ClusterAgentConfigurationSyncingHandler.cs @@ -41,7 +41,7 @@ public ClusterAgentConfigurationSyncingHandler(IStateContainer state, foreach (var yamlKey in desiredResource.YamlKeys) { // Hard code the new line for Linux. - builder.Append(yamlKey.Key).Append(": ").Append(yamlKey.Value).Append('\n'); + builder.Append(yamlKey.Key).Append(": '").Append(yamlKey.Value).Append("'\n"); } var yaml = builder.ToString(); diff --git a/tests/Contrast.K8s.AgentOperator.FunctionalTests/Scenarios/Injection/ClusterDefaultTests.cs b/tests/Contrast.K8s.AgentOperator.FunctionalTests/Scenarios/Injection/ClusterDefaultTests.cs index 71f74dcc..d38249a5 100644 --- a/tests/Contrast.K8s.AgentOperator.FunctionalTests/Scenarios/Injection/ClusterDefaultTests.cs +++ b/tests/Contrast.K8s.AgentOperator.FunctionalTests/Scenarios/Injection/ClusterDefaultTests.cs @@ -83,6 +83,24 @@ public async Task When_injected_then_pod_should_use_generated_configuration() } } + [Fact] + public async Task When_injected_then_pod_should_use_generated_valid_configuration() + { + var client = await _context.GetClient(); + + // Act + var result = await client.GetInjectedPodByPrefix(ScenarioName); + + // Assert + using (new AssertionScope()) + { + var container = result.Spec.Containers.Single(); + + //Test that the namespaced AgentConfiguration contains valid yaml (% unquoted in yaml means its a directive line) + container.Env.Should().Contain(x => x.Name == "CONTRAST__SPECIAL").Which.Value.Should().Be("%specialyaml"); + } + } + [Fact] public async Task When_init_container_overrides_exist_then_the_overrides_should_be_merged_and_applied() {