func()

in pkg/service/platform/k8s/k8s.go [88:120]


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

	d, err := s.appsV1Client.Deployments(gerrit.Namespace).Get(ctx, gerrit.Name, metaV1.GetOptions{})
	if err != nil {
		return fmt.Errorf("failed to Get Deployment %q: %w", gerrit.Name, err)
	}

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

	container, err := platformHelper.SelectContainer(d.Spec.Template.Spec.Containers, gerrit.Name)
	if err != nil {
		return fmt.Errorf("not containers found for gerrit resource %q: %w", gerrit.Name, err)
	}

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

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

	jsonDc, err := json.Marshal(d)
	if err != nil {
		return fmt.Errorf("failed encode to json gerrit deployment k8s object %q: %w", gerrit.Name, err)
	}

	_, err = s.appsV1Client.Deployments(d.Namespace).Patch(ctx, d.Name, types.StrategicMergePatchType, jsonDc, metaV1.PatchOptions{})
	if err != nil {
		return fmt.Errorf("failed to Patch Deployment %q: %w", d.Name, err)
	}

	return nil
}