Skip to content
types.go 1.14 KiB
Newer Older
Timothee Gosselin's avatar
Timothee Gosselin committed
package ingress

import (
	"github.com/ankitrgadiya/operatorlib/pkg/interfaces"
	"github.com/ankitrgadiya/operatorlib/pkg/meta"
	networkingv1beta1 "k8s.io/api/networking/v1beta1"
)

// GenConfigMapFunc defines a function which generates ConfigMap.
type GenIngressFunc func(Conf) (*networkingv1beta1.Ingress, error)
type GenIngressBackendFunc func() (*networkingv1beta1.IngressBackend, error)
type GenIngressTLSFunc func() ([]networkingv1beta1.IngressTLS, error)
type GenIngressRulesFunc func() ([]networkingv1beta1.IngressRule, 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
	GenIngressFunc
	GenIngressBackendFunc
	GenIngressTLSFunc
	GenIngressRulesFunc
}

type Mutate interface {
	meta.Mutate
	GenIngressBackend() (*networkingv1beta1.IngressBackend, error)
	GenIngressTLS() ([]networkingv1beta1.IngressTLS, error)
	GenIngressRules() ([]networkingv1beta1.IngressRule, error)
}