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
}