Skip to content
types.go 1.5 KiB
Newer Older
package secret

import (
	"github.com/ankitrgadiya/operatorlib/pkg/interfaces"
	"github.com/ankitrgadiya/operatorlib/pkg/meta"

	corev1 "k8s.io/api/core/v1"
)

// GenSecretFunc defiens a function which generates Service object.
type GenSecretFunc func(Conf) (*corev1.Secret, error)

// GenDataFunc defines a function which generates map of string to
// byte slice for `Data` field in Secret object
type GenDataFunc func() (map[string][]byte, error)

// GenStringDataFunc defines a function which generates string map for
// `StringData` field in Secret object
type GenStringDataFunc func() (map[string]string, error)

type Conf struct {
	Namespace      string
	Name           string
	Obj            interfaces.Object
	Reconcile      interfaces.Reconcile
	previousObject interfaces.Object
	Owner          interfaces.Object
	OwnerReference bool
	GenFinalizers  meta.GenFinalizers
	GenLabels      meta.GenLabels
	GenAnnotations meta.GenAnnotations
	// GenSecretFunc defines a function to generate Secret object. The
	// package comes with a default generate function. This field can
	// be used to override the default function which is used by the
	// operation functions.
	GenSecretFunc
	// GenDataFunc defines a function to generate data for Secret
	GenDataFunc
	// GenBinaryDataFunc defines a function to generate binary data
	// for Secret
	GenStringDataFunc
	// Type defines the type of Secret
	Type string
}

type Mutate interface {
	meta.Mutate
	GenData() (map[string][]byte, error)
	GenStringData() (map[string]string, error)
}