kubernetes-operator/pkg/controller/jenkins/configuration/base/resources/secret.go

51 lines
1.8 KiB
Go

package resources
import (
"fmt"
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("jenkins-operator-credentials-%s", 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)),
},
}
}