protected List getPatchedEnvVars()

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;
  }