in teamcity-kubernetes-plugin-server/src/main/java/jetbrains/buildServer/clouds/kubernetes/podSpec/AbstractPodTemplateProvider.java [48:101]
protected List<EnvVar> getPatchedEnvVars(@NotNull final String instanceName,
@NotNull final String serverUUID,
@NotNull final String imageId,
@NotNull final CloudInstanceUserData cloudInstanceUserData,
@NotNull final List<EnvVar> initialEnvData) {
final Set<String> envNamesSet = new HashSet<>();
for (EnvVar env : initialEnvData) {
envNamesSet.add(env.getName());
}
final List<EnvVar> retval = new ArrayList<>(initialEnvData);
final Map<String, String> customParams = cloudInstanceUserData.getCustomAgentConfigurationParameters();
customParams.forEach((k, v)->{
if (!envNamesSet.contains(k) && k.startsWith(TEAMCITY_KUBERNETES_PREFIX)){
if (ENV_VAR_NAME.matcher(k).matches()) {
retval.add(new EnvVar(k, v, null));
}
}
});
retval.addAll(BuildAgentPodTemplateProvider.generateCustomAgentEnvVars(cloudInstanceUserData));
// check for run in Kubernetes:
if ("true".equals(customParams.get(RUN_IN_KUBE_FEATURE))){
//TODO uncheck when will work on that feature
/*
final String buildId = customParams.get(CloudConstants.BUILD_ID);
if (StringUtil.isNotEmpty(buildId)){
envDataMap.put(KubeContainerEnvironment.BUILD_ID, buildId);
}
*/
}
for (Pair<String, String> env : Arrays.asList(
new Pair<>(SERVER_UUID, serverUUID),
new Pair<>(STARTING_INSTANCE_ID, StringUtil.emptyIfNull(cloudInstanceUserData.getCustomAgentConfigurationParameters().get(STARTING_INSTANCE_ID_PARAM))),
new Pair<>(PROFILE_ID, cloudInstanceUserData.getProfileId()),
new Pair<>(IMAGE_NAME, imageId),
new Pair<>(INSTANCE_NAME, instanceName))
) {
if (!envNamesSet.contains(env.first)) {
retval.add(new EnvVar(env.first, env.second, null));
}
}
if (!envNamesSet.contains(SERVER_URL)) {
retval.add(new EnvVar(SERVER_URL, cloudInstanceUserData.getServerAddress(), null));
}
if (!envNamesSet.contains(OFFICIAL_IMAGE_SERVER_URL)) {
retval.add(new EnvVar(OFFICIAL_IMAGE_SERVER_URL, cloudInstanceUserData.getServerAddress(), null));
}
return retval;
}