in teamcity-kubernetes-plugin-server/src/main/java/jetbrains/buildServer/clouds/kubernetes/podSpec/SimpleRunContainerProvider.java [47:95]
public Pod getPodTemplate(@NotNull String instanceName,
@NotNull CloudInstanceUserData cloudInstanceUserData,
@NotNull KubeCloudImage kubeCloudImage,
@NotNull KubeApiConnector apiConnector) {
ImagePullPolicy imagePullPolicy = kubeCloudImage.getImagePullPolicy();
String serverAddress = cloudInstanceUserData.getServerAddress();
String serverUUID = myServerSettings.getServerUUID();
String cloudProfileId = cloudInstanceUserData.getProfileId();
ContainerBuilder containerBuilder = new ContainerBuilder()
.withName(instanceName)
.withImage(kubeCloudImage.getDockerImage())
.withImagePullPolicy(imagePullPolicy == null ? ImagePullPolicy.IfNotPresent.getName() : imagePullPolicy.getName())
.withEnv(new EnvVar(KubeContainerEnvironment.SERVER_URL, serverAddress, null),
new EnvVar(KubeContainerEnvironment.SERVER_UUID, serverUUID, null),
new EnvVar(KubeContainerEnvironment.OFFICIAL_IMAGE_SERVER_URL, serverAddress, null),
new EnvVar(KubeContainerEnvironment.IMAGE_NAME, kubeCloudImage.getId(), null),
new EnvVar(KubeContainerEnvironment.PROFILE_ID, cloudProfileId, null),
new EnvVar(KubeContainerEnvironment.STARTING_INSTANCE_ID,
StringUtil.emptyIfNull(cloudInstanceUserData.getCustomAgentConfigurationParameters().get(KubeContainerEnvironment.STARTING_INSTANCE_ID_PARAM)), null),
new EnvVar(KubeContainerEnvironment.INSTANCE_NAME, instanceName, null));
containerBuilder.addAllToEnv(
BuildAgentPodTemplateProvider.generateCustomAgentEnvVars(cloudInstanceUserData)
);
String dockerCommand = kubeCloudImage.getDockerCommand();
if (!StringUtil.isEmpty(dockerCommand)) containerBuilder = containerBuilder.withCommand(dockerCommand);
String dockerArguments = kubeCloudImage.getDockerArguments();
if (!StringUtil.isEmpty(dockerArguments)) containerBuilder = containerBuilder.withArgs(dockerArguments);
return new PodBuilder()
.withNewMetadata()
.withName(instanceName)
.withNamespace(apiConnector.getNamespace())
.withLabels(CollectionsUtil.asMap(
KubeTeamCityLabels.TEAMCITY_AGENT_LABEL, "",
KubeTeamCityLabels.TEAMCITY_SERVER_UUID, serverUUID,
KubeTeamCityLabels.TEAMCITY_CLOUD_PROFILE, cloudProfileId,
KubeTeamCityLabels.TEAMCITY_CLOUD_IMAGE, kubeCloudImage.getId()))
.endMetadata()
.withNewSpec()
.withContainers(Collections.singletonList(containerBuilder.build()))
.withRestartPolicy(KubeApiConnector.NEVER_RESTART_POLICY)
.endSpec()
.build();
}