func()

in pkg/service/platform/kubernetes/k8s.go [501:546]


func (s *K8SService) CreateJenkinsScript(namespace, name string, forceRecreate bool) (*jenkinsApi.JenkinsScript, error) {
	js, err := s.getJenkinsScript(name, namespace)
	if err != nil {
		if k8sErrors.IsNotFound(err) {
			newJenkinsScript := &jenkinsApi.JenkinsScript{
				ObjectMeta: metav1.ObjectMeta{
					Name:      name,
					Namespace: namespace,
				},
				Spec: jenkinsApi.JenkinsScriptSpec{
					SourceCmName: name,
				},
			}

			if err = s.client.Create(context.TODO(), newJenkinsScript); err != nil {
				return nil, fmt.Errorf("failed to create jenkins script: %w", err)
			}

			return newJenkinsScript, nil
		}

		return nil, fmt.Errorf("failed to getJenkinsScript: %w", err)
	}

	if forceRecreate {
		if err := s.client.Delete(context.TODO(), js); err != nil {
			return nil, fmt.Errorf("failed to delete jenkins script: %w", err)
		}

		js = &jenkinsApi.JenkinsScript{
			ObjectMeta: metav1.ObjectMeta{
				Name:      name,
				Namespace: namespace,
			},
			Spec: jenkinsApi.JenkinsScriptSpec{
				SourceCmName: name,
			},
		}

		if err := s.client.Create(context.TODO(), js); err != nil {
			return nil, fmt.Errorf("failed to create jenkins script: %w", err)
		}
	}

	return js, nil
}