Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewK8SBackend ¶
func NewK8SBackend( restConfig *rest.Config, k8sCSet *kubernetes.Clientset, traefikClient *traefikv1alpha1.TraefikV1alpha1Client, certManagerClient *certmanagerv1.Clientset, config Config, ) (domain.Backend, error)
Types ¶
type Config ¶
type Config struct {
Domains []*domainConf `mapstructure:"domains" yaml:"domains"`
Ports []*portConf `mapstructure:"ports" yaml:"ports"`
SS struct {
Namespace string `mapstructure:"namespace" yaml:"namespace"`
Kind string `mapstructure:"kind" yaml:"kind"`
Name string `mapstructure:"name" yaml:"name"`
Port int `mapstructure:"port" yaml:"port"`
Scheme string `mapstructure:"scheme" yaml:"scheme"`
} `mapstructure:"ss" yaml:"ss"`
Namespace string `mapstructure:"namespace" yaml:"namespace"`
Labels []*labelConf `mapstructure:"labels" yaml:"labels"`
TLS struct {
// cert-manager note: https://doc.traefik.io/traefik/providers/kubernetes-crd/#letsencrypt-support-with-the-custom-resource-definition-provider
// needs to enable ingress provider in traefik
Type string `mapstructure:"type" yaml:"type"`
Traefik struct {
CertResolver string `mapstructure:"certResolver" yaml:"certResolver"`
Wildcard struct {
Domains domain.WildcardDomains `mapstructure:"domains" yaml:"domains"`
} `mapstructure:"wildcard" yaml:"wildcard"`
} `mapstructure:"traefik" yaml:"traefik"`
CertManager struct {
Issuer struct {
Name string `mapstructure:"name" yaml:"name"`
Kind string `mapstructure:"kind" yaml:"kind"`
} `mapstructure:"issuer" yaml:"issuer"`
Wildcard struct {
Domains domain.WildcardDomains `mapstructure:"domains" yaml:"domains"`
} `mapstructure:"wildcard" yaml:"wildcard"`
} `mapstructure:"certManager" yaml:"certManager"`
} `mapstructure:"tls" yaml:"tls"`
// ImagePullSecret required if registry is private
ImagePullSecret string `mapstructure:"imagePullSecret" yaml:"imagePullSecret"`
Scheduling struct {
NodeSelector []*nodeSelector `mapstructure:"nodeSelector" yaml:"nodeSelector"`
Tolerations []*toleration `mapstructure:"tolerations" yaml:"tolerations"`
} `mapstructure:"scheduling" yaml:"scheduling"`
Resources struct {
Requests struct {
CPU string `mapstructure:"cpu" yaml:"cpu"`
Memory string `mapstructure:"memory" yaml:"memory"`
} `mapstructure:"requests" yaml:"requests"`
Limits struct {
CPU string `mapstructure:"cpu" yaml:"cpu"`
Memory string `mapstructure:"memory" yaml:"memory"`
} `mapstructure:"limits" yaml:"limits"`
} `mapstructure:"resources" yaml:"resources"`
}
Click to show internal directories.
Click to hide internal directories.