51 lines
1.8 KiB
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)),
|
|
},
|
|
}
|
|
}
|