Skip to content

Commit

Permalink
Prevent K8S env vars from leaking into sidecar
Browse files Browse the repository at this point in the history
  • Loading branch information
geoand authored and gsmet committed Sep 8, 2020
1 parent b2f40fa commit eb9d977
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@
import io.dekorate.kubernetes.decorator.AddRoleBindingResourceDecorator;
import io.dekorate.kubernetes.decorator.AddSecretVolumeDecorator;
import io.dekorate.kubernetes.decorator.AddServiceAccountResourceDecorator;
import io.dekorate.kubernetes.decorator.ApplicationContainerDecorator;
import io.dekorate.kubernetes.decorator.ApplyArgsDecorator;
import io.dekorate.kubernetes.decorator.ApplyCommandDecorator;
import io.dekorate.kubernetes.decorator.ApplyImagePullPolicyDecorator;
Expand Down Expand Up @@ -723,13 +724,13 @@ private void applyBuildItems(Session session,
});

kubernetesEnvs.forEach(e -> {
session.resources().decorate(e.getTarget(), new AddEnvVarDecorator(new EnvBuilder()
.withName(EnvConverter.convertName(e.getName()))
.withValue(e.getValue())
.withSecret(e.getSecret())
.withConfigmap(e.getConfigMap())
.withField(e.getField())
.build()));
String containerName = kubernetesName;
if (e.getTarget().equals(OPENSHIFT)) {
containerName = openshiftName;
} else if (e.getTarget().equals(KNATIVE)) {
containerName = knativeName;
}
session.resources().decorate(e.getTarget(), createAddEnvDecorator(e, containerName));
});

//Handle Command and arguments
Expand Down Expand Up @@ -785,6 +786,16 @@ private void applyBuildItems(Session session,
kubernetesHealthReadinessPath, session);
}

private AddEnvVarDecorator createAddEnvDecorator(KubernetesEnvBuildItem e, String containerName) {
return new AddEnvVarDecorator(ApplicationContainerDecorator.ANY, containerName, new EnvBuilder()
.withName(EnvConverter.convertName(e.getName()))
.withValue(e.getValue())
.withSecret(e.getSecret())
.withConfigmap(e.getConfigMap())
.withField(e.getField())
.build());
}

private void handleServices(Session session, KubernetesConfig kubernetesConfig, OpenshiftConfig openshiftConfig,
KnativeConfig knativeConfig, String kubernetesName, String openshiftName, String knativeName) {
session.resources().decorate(KUBERNETES,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ private void assertSidecar(PodSpec podSpec) {
assertThat(c.getPorts()).singleElement().satisfies(p -> {
assertThat(p.getContainerPort()).isEqualTo(3000);
});
assertThat(c.getEnv()).extracting("name").doesNotContain("JAVA_APP_JAR", "JAVA_LIB_DIR");
});
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ private void assertSidecar(PodSpec podSpec) {
assertThat(c.getPorts()).singleElement().satisfies(p -> {
assertThat(p.getContainerPort()).isEqualTo(3000);
});
assertThat(c.getEnv()).extracting("name").doesNotContain("JAVA_APP_JAR", "JAVA_LIB_DIR");
});
}
}

0 comments on commit eb9d977

Please sign in to comment.