52 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
| package resources
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"github.com/VirtusLab/jenkins-operator/pkg/controller/jenkins/constants"
 | |
| 
 | |
| 	virtuslabv1alpha1 "github.com/VirtusLab/jenkins-operator/pkg/apis/virtuslab/v1alpha1"
 | |
| 
 | |
| 	corev1 "k8s.io/api/core/v1"
 | |
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | |
| )
 | |
| 
 | |
| const (
 | |
| 	// OperatorUserName defines username for Jenkins API calls
 | |
| 	OperatorUserName = "jenkins-operator"
 | |
| 	// OperatorCredentialsSecretUserNameKey defines key of username in operator credentials secret
 | |
| 	OperatorCredentialsSecretUserNameKey = "user"
 | |
| 	// OperatorCredentialsSecretPasswordKey defines key of password in operator credentials secret
 | |
| 	OperatorCredentialsSecretPasswordKey = "password"
 | |
| 	// OperatorCredentialsSecretTokenKey defines key of token in operator credentials secret
 | |
| 	OperatorCredentialsSecretTokenKey = "token"
 | |
| 	// OperatorCredentialsSecretTokenCreationKey defines key of token creation time in operator credentials secret
 | |
| 	OperatorCredentialsSecretTokenCreationKey = "tokenCreationTime"
 | |
| )
 | |
| 
 | |
| func buildSecretTypeMeta() metav1.TypeMeta {
 | |
| 	return metav1.TypeMeta{
 | |
| 		Kind:       "Secret",
 | |
| 		APIVersion: "v1",
 | |
| 	}
 | |
| }
 | |
| 
 | |
| // GetOperatorCredentialsSecretName returns name of Kubernetes secret used to store jenkins operator credentials
 | |
| // to allow calls to Jenkins API
 | |
| func GetOperatorCredentialsSecretName(jenkins *virtuslabv1alpha1.Jenkins) string {
 | |
| 	return fmt.Sprintf("%s-credentials-%s", constants.OperatorName, jenkins.Name)
 | |
| }
 | |
| 
 | |
| // NewOperatorCredentialsSecret builds the Kubernetes secret used to store jenkins operator credentials
 | |
| // to allow calls to Jenkins API
 | |
| func NewOperatorCredentialsSecret(meta metav1.ObjectMeta, jenkins *virtuslabv1alpha1.Jenkins) *corev1.Secret {
 | |
| 	meta.Name = GetOperatorCredentialsSecretName(jenkins)
 | |
| 	return &corev1.Secret{
 | |
| 		TypeMeta:   buildSecretTypeMeta(),
 | |
| 		ObjectMeta: meta,
 | |
| 		Data: map[string][]byte{
 | |
| 			OperatorCredentialsSecretUserNameKey: []byte(OperatorUserName),
 | |
| 			OperatorCredentialsSecretPasswordKey: []byte(randomString(20)),
 | |
| 		},
 | |
| 	}
 | |
| }
 |