func()

in pkg/service/platform/openshift/openshift.go [183:224]


func (s *OpenshiftService) PatchDeploymentEnv(gerrit *gerritApi.Gerrit, env []coreV1Api.EnvVar) error {
	ctx := context.Background()

	if os.Getenv(deploymentTypeEnvName) == deploymentConfigsDeploymentType {
		dc, err := s.appClient.DeploymentConfigs(gerrit.Namespace).Get(ctx, gerrit.Name, metaV1.GetOptions{})
		if err != nil {
			return fmt.Errorf("failed to Get Gerrit Deployment Config %q: %w", gerrit.Name, err)
		}

		if len(env) == 0 {
			return nil
		}

		container, err := platformHelper.SelectContainer(dc.Spec.Template.Spec.Containers, gerrit.Name)
		if err != nil {
			return fmt.Errorf("didn't found container %q: %w", gerrit.Name, err)
		}

		container.Env = platformHelper.UpdateEnv(container.Env, env)

		dc.Spec.Template.Spec.Containers = append(dc.Spec.Template.Spec.Containers, container)

		jsonDc, err := json.Marshal(dc)
		if err != nil {
			return err
		}

		_, err = s.appClient.DeploymentConfigs(dc.Namespace).Patch(ctx, dc.Name, types.StrategicMergePatchType, jsonDc, metaV1.PatchOptions{})
		if err != nil {
			return fmt.Errorf("failed to patch OpenShift Deployment Config %q: %w", dc.Name, err)
		}

		return nil
	}

	err := s.K8SService.PatchDeploymentEnv(gerrit, env)
	if err != nil {
		return fmt.Errorf("fail to update k8s deployment env: %w", err)
	}

	return nil
}