github.com/olli-ai/jx/v2@v2.0.400-0.20210921045218-14731b4dd448/pkg/cmd/step/verify/common.go (about)

     1  package verify
     2  
     3  import (
     4  	"github.com/jenkins-x/jx-logging/pkg/log"
     5  	"github.com/olli-ai/jx/v2/pkg/kube"
     6  	"github.com/olli-ai/jx/v2/pkg/util"
     7  	"github.com/pkg/errors"
     8  	corev1 "k8s.io/api/core/v1"
     9  	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    10  )
    11  
    12  func (o *StepVerifyOptions) validateKaniko(ns string) error {
    13  	kubeClient, _, err := o.KubeClientAndDevNamespace()
    14  	if err != nil {
    15  		return err
    16  	}
    17  	return kube.ValidateSecret(kubeClient, kube.SecretKaniko, kube.SecretKaniko, ns)
    18  }
    19  
    20  func (o *StepVerifyOptions) validateVelero(ns string) error {
    21  	kubeClient, _, err := o.KubeClientAndDevNamespace()
    22  	if err != nil {
    23  		return err
    24  	}
    25  	return kube.ValidateSecret(kubeClient, kube.SecretVelero, "cloud", ns)
    26  }
    27  
    28  func (o *StepVerifyOptions) createSecret(ns string, name, key, data string) error {
    29  	kubeClient, _, err := o.KubeClientAndDevNamespace()
    30  	if err != nil {
    31  		return err
    32  	}
    33  
    34  	err = kube.EnsureNamespaceCreated(kubeClient, ns, map[string]string{
    35  		kube.LabelCreatedBy: "jx-boot",
    36  	}, nil)
    37  	if err != nil {
    38  		return err
    39  	}
    40  
    41  	secret := &corev1.Secret{
    42  		ObjectMeta: metav1.ObjectMeta{
    43  			Name: name,
    44  		},
    45  		Type: corev1.SecretTypeOpaque,
    46  		Data: map[string][]byte{
    47  			key: []byte(data),
    48  		},
    49  	}
    50  
    51  	_, err = kubeClient.CoreV1().Secrets(ns).Create(secret)
    52  	if err != nil {
    53  		return errors.Wrapf(err, "could not create the Secret %s in the namespace: %s", name, ns)
    54  	}
    55  	log.Logger().Infof("created Secret: %s in namespace: %s\n", util.ColorInfo(name), util.ColorInfo(ns))
    56  	return nil
    57  
    58  }