Documentation
      ¶
    
    
  
    
  
    Index ¶
- Constants
 - func GenerateCertAndKeyFileContent(secret *api_v1.Secret) []byte
 - func GenerateEndpointsKey(serviceNamespace string, serviceName string, subselector map[string]string, ...) string
 - func GenerateExternalNameSvcKey(namespace string, service string) string
 - func GenerateNginxMainConfig(staticCfgParams *StaticConfigParams, config *ConfigParams) *version1.MainConfig
 - func GetMapKeyAsBool(m map[string]string, key string, context apiObject) (bool, bool, error)
 - func GetMapKeyAsInt(m map[string]string, key string, context apiObject) (int, bool, error)
 - func GetMapKeyAsInt64(m map[string]string, key string, context apiObject) (int64, bool, error)
 - func GetMapKeyAsStringSlice(m map[string]string, key string, context apiObject, delimiter string) ([]string, bool, error)
 - func GetMapKeyAsUint64(m map[string]string, key string, context apiObject, nonZero bool) (uint64, bool, error)
 - func ParseLBMethod(method string) (string, error)
 - func ParseLBMethodForPlus(method string) (string, error)
 - func ParseTime(s string) (string, error)
 - type ConfigParams
 - type Configurator
 - func (cnf *Configurator) AddOrUpdateDHParam(content string) (string, error)
 - func (cnf *Configurator) AddOrUpdateIngress(ingEx *IngressEx) error
 - func (cnf *Configurator) AddOrUpdateJWKSecret(secret *api_v1.Secret)
 - func (cnf *Configurator) AddOrUpdateMergeableIngress(mergeableIngs *MergeableIngresses) error
 - func (cnf *Configurator) AddOrUpdateSpecialTLSSecrets(secret *api_v1.Secret, secretNames []string) error
 - func (cnf *Configurator) AddOrUpdateTLSSecret(secret *api_v1.Secret, ingExes []IngressEx, ...) error
 - func (cnf *Configurator) AddOrUpdateVirtualServer(virtualServerEx *VirtualServerEx) (Warnings, error)
 - func (cnf *Configurator) DeleteIngress(key string) error
 - func (cnf *Configurator) DeleteSecret(key string, ingExes []IngressEx, mergeableIngresses []MergeableIngresses, ...) error
 - func (cnf *Configurator) DeleteVirtualServer(key string) error
 - func (cnf *Configurator) GetIngressCounts() map[string]int
 - func (cnf *Configurator) GetVirtualServerCounts() (vsCount int, vsrCount int)
 - func (cnf *Configurator) HasIngress(ing *extensions.Ingress) bool
 - func (cnf *Configurator) HasMinion(master *extensions.Ingress, minion *extensions.Ingress) bool
 - func (cnf *Configurator) IsResolverConfigured() bool
 - func (cnf *Configurator) UpdateConfig(cfgParams *ConfigParams, ingExes []*IngressEx, ...) (Warnings, error)
 - func (cnf *Configurator) UpdateEndpoints(ingExes []*IngressEx) error
 - func (cnf *Configurator) UpdateEndpointsForVirtualServers(virtualServerExes []*VirtualServerEx) error
 - func (cnf *Configurator) UpdateEndpointsMergeableIngress(mergeableIngresses []*MergeableIngresses) error
 
- type IngressEx
 - type JWTKey
 - type MergeableIngresses
 - type StaticConfigParams
 - type VirtualServerEx
 - type Warnings
 
Constants ¶
const DefaultServerSecretName = "default"
    DefaultServerSecretName is the filename of the Secret with a TLS cert and a key for the default server.
const JWTKeyAnnotation = "nginx.com/jwt-key"
    JWTKeyAnnotation is the annotation where the Secret with a JWK is specified.
const JWTKeyKey = "jwk"
    JWTKeyKey is the key of the data field of a Secret where the JWK must be stored.
const WildcardSecretName = "wildcard"
    WildcardSecretName is the filename of the Secret with a TLS cert and a key for the ingress resources with TLS termination enabled but not secret defined.
Variables ¶
This section is empty.
Functions ¶
func GenerateCertAndKeyFileContent ¶
GenerateCertAndKeyFileContent generates a pem file content from the TLS secret.
func GenerateEndpointsKey ¶
func GenerateEndpointsKey(serviceNamespace string, serviceName string, subselector map[string]string, port uint16) string
GenerateEndpointsKey generates a key for the Endpoints map in VirtualServerEx.
func GenerateExternalNameSvcKey ¶ added in v1.6.0
GenerateExternalNameSvcKey returns the key to identify an ExternalName service.
func GenerateNginxMainConfig ¶
func GenerateNginxMainConfig(staticCfgParams *StaticConfigParams, config *ConfigParams) *version1.MainConfig
GenerateNginxMainConfig generates MainConfig.
func GetMapKeyAsBool ¶
GetMapKeyAsBool searches the map for the given key and parses the key as bool.
func GetMapKeyAsInt ¶
GetMapKeyAsInt tries to find and parse a key in a map as int.
func GetMapKeyAsInt64 ¶
GetMapKeyAsInt64 tries to find and parse a key in a map as int64.
func GetMapKeyAsStringSlice ¶
func GetMapKeyAsStringSlice(m map[string]string, key string, context apiObject, delimiter string) ([]string, bool, error)
GetMapKeyAsStringSlice tries to find and parse a key in the map as string slice splitting it on delimiter.
func GetMapKeyAsUint64 ¶
func GetMapKeyAsUint64(m map[string]string, key string, context apiObject, nonZero bool) (uint64, bool, error)
GetMapKeyAsUint64 tries to find and parse a key in a map as uint64.
func ParseLBMethod ¶
ParseLBMethod parses method and matches it to a corresponding load balancing method in NGINX. An error is returned if method is not valid.
func ParseLBMethodForPlus ¶
ParseLBMethodForPlus parses method and matches it to a corresponding load balancing method in NGINX Plus. An error is returned if method is not valid.
Types ¶
type ConfigParams ¶
type ConfigParams struct {
	LocationSnippets              []string
	ServerSnippets                []string
	ServerTokens                  string
	ProxyConnectTimeout           string
	ProxyReadTimeout              string
	ProxySendTimeout              string
	ClientMaxBodySize             string
	HTTP2                         bool
	RedirectToHTTPS               bool
	SSLRedirect                   bool
	MainMainSnippets              []string
	MainHTTPSnippets              []string
	MainStreamSnippets            []string
	MainServerNamesHashBucketSize string
	MainServerNamesHashMaxSize    string
	MainAccessLogOff              bool
	MainLogFormat                 string
	MainErrorLogLevel             string
	MainStreamLogFormat           string
	ProxyBuffering                bool
	ProxyBuffers                  string
	ProxyBufferSize               string
	ProxyMaxTempFileSize          string
	ProxyProtocol                 bool
	ProxyHideHeaders              []string
	ProxyPassHeaders              []string
	UpstreamZoneSize              string
	HSTS                          bool
	HSTSBehindProxy               bool
	HSTSMaxAge                    int64
	HSTSIncludeSubdomains         bool
	LBMethod                      string
	MainWorkerProcesses           string
	MainWorkerCPUAffinity         string
	MainWorkerShutdownTimeout     string
	MainWorkerConnections         string
	MainWorkerRlimitNofile        string
	Keepalive                     int
	MaxFails                      int
	MaxConns                      int
	FailTimeout                   string
	HealthCheckEnabled            bool
	HealthCheckMandatory          bool
	HealthCheckMandatoryQueue     int64
	SlowStart                     string
	ResolverAddresses             []string
	ResolverIPV6                  bool
	ResolverValid                 string
	ResolverTimeout               string
	MainKeepaliveTimeout          string
	MainKeepaliveRequests         int64
	VariablesHashBucketSize       uint64
	VariablesHashMaxSize          uint64
	MainOpenTracingLoadModule     bool
	MainOpenTracingEnabled        bool
	MainOpenTracingTracer         string
	MainOpenTracingTracerConfig   string
	RealIPHeader    string
	SetRealIPFrom   []string
	RealIPRecursive bool
	MainServerSSLProtocols           string
	MainServerSSLPreferServerCiphers bool
	MainServerSSLCiphers             string
	MainServerSSLDHParam             string
	MainServerSSLDHParamFileContent  *string
	MainTemplate    *string
	IngressTemplate *string
	JWTRealm    string
	JWTKey      string
	JWTToken    string
	JWTLoginURL string
	Ports    []int
	SSLPorts []int
}
    ConfigParams holds NGINX configuration parameters that affect the main NGINX config as well as configs for Ingress resources.
func NewDefaultConfigParams ¶
func NewDefaultConfigParams() *ConfigParams
NewDefaultConfigParams creates a ConfigParams with default values.
func ParseConfigMap ¶
func ParseConfigMap(cfgm *v1.ConfigMap, nginxPlus bool) *ConfigParams
ParseConfigMap parses ConfigMap into ConfigParams.
type Configurator ¶
type Configurator struct {
	// contains filtered or unexported fields
}
    Configurator configures NGINX.
func NewConfigurator ¶
func NewConfigurator(nginxManager nginx.Manager, staticCfgParams *StaticConfigParams, config *ConfigParams, templateExecutor *version1.TemplateExecutor, templateExecutorV2 *version2.TemplateExecutor, isPlus bool, isWildcardEnabled bool) *Configurator
NewConfigurator creates a new Configurator.
func (*Configurator) AddOrUpdateDHParam ¶
func (cnf *Configurator) AddOrUpdateDHParam(content string) (string, error)
AddOrUpdateDHParam creates a dhparam file with the content of the string.
func (*Configurator) AddOrUpdateIngress ¶
func (cnf *Configurator) AddOrUpdateIngress(ingEx *IngressEx) error
AddOrUpdateIngress adds or updates NGINX configuration for the Ingress resource.
func (*Configurator) AddOrUpdateJWKSecret ¶
func (cnf *Configurator) AddOrUpdateJWKSecret(secret *api_v1.Secret)
func (*Configurator) AddOrUpdateMergeableIngress ¶
func (cnf *Configurator) AddOrUpdateMergeableIngress(mergeableIngs *MergeableIngresses) error
AddOrUpdateMergeableIngress adds or updates NGINX configuration for the Ingress resources with Mergeable Types.
func (*Configurator) AddOrUpdateSpecialTLSSecrets ¶
func (cnf *Configurator) AddOrUpdateSpecialTLSSecrets(secret *api_v1.Secret, secretNames []string) error
AddOrUpdateSpecialTLSSecrets adds or updates a file with a TLS cert and a key from a Special TLS Secret (eg. DefaultServerSecret, WildcardTLSSecret).
func (*Configurator) AddOrUpdateTLSSecret ¶
func (cnf *Configurator) AddOrUpdateTLSSecret(secret *api_v1.Secret, ingExes []IngressEx, mergeableIngresses []MergeableIngresses, virtualServerExes []*VirtualServerEx) error
AddOrUpdateTLSSecret adds or updates a file with the content of the TLS secret.
func (*Configurator) AddOrUpdateVirtualServer ¶
func (cnf *Configurator) AddOrUpdateVirtualServer(virtualServerEx *VirtualServerEx) (Warnings, error)
AddOrUpdateVirtualServer adds or updates NGINX configuration for the VirtualServer resource.
func (*Configurator) DeleteIngress ¶
func (cnf *Configurator) DeleteIngress(key string) error
DeleteIngress deletes NGINX configuration for the Ingress resource.
func (*Configurator) DeleteSecret ¶
func (cnf *Configurator) DeleteSecret(key string, ingExes []IngressEx, mergeableIngresses []MergeableIngresses, virtualServerExes []*VirtualServerEx) error
DeleteSecret deletes the file associated with the secret and the configuration files for Ingress and VirtualServer resources. NGINX is reloaded only when the total number of the resources > 0.
func (*Configurator) DeleteVirtualServer ¶
func (cnf *Configurator) DeleteVirtualServer(key string) error
DeleteVirtualServer deletes NGINX configuration for the VirtualServer resource.
func (*Configurator) GetIngressCounts ¶
func (cnf *Configurator) GetIngressCounts() map[string]int
GetIngressCounts returns the total count of Ingress resources that are handled by the Ingress Controller grouped by their type
func (*Configurator) GetVirtualServerCounts ¶ added in v1.6.0
func (cnf *Configurator) GetVirtualServerCounts() (vsCount int, vsrCount int)
GetVirtualServerCounts returns the total count of VS/VSR resources that are handled by the Ingress Controller
func (*Configurator) HasIngress ¶
func (cnf *Configurator) HasIngress(ing *extensions.Ingress) bool
HasIngress checks if the Ingress resource is present in NGINX configuration.
func (*Configurator) HasMinion ¶
func (cnf *Configurator) HasMinion(master *extensions.Ingress, minion *extensions.Ingress) bool
HasMinion checks if the minion Ingress resource of the master is present in NGINX configuration.
func (*Configurator) IsResolverConfigured ¶
func (cnf *Configurator) IsResolverConfigured() bool
IsResolverConfigured checks if a DNS resolver is present in NGINX configuration.
func (*Configurator) UpdateConfig ¶
func (cnf *Configurator) UpdateConfig(cfgParams *ConfigParams, ingExes []*IngressEx, mergeableIngs map[string]*MergeableIngresses, virtualServerExes []*VirtualServerEx) (Warnings, error)
UpdateConfig updates NGINX configuration parameters.
func (*Configurator) UpdateEndpoints ¶
func (cnf *Configurator) UpdateEndpoints(ingExes []*IngressEx) error
UpdateEndpoints updates endpoints in NGINX configuration for the Ingress resources.
func (*Configurator) UpdateEndpointsForVirtualServers ¶
func (cnf *Configurator) UpdateEndpointsForVirtualServers(virtualServerExes []*VirtualServerEx) error
UpdateEndpointsForVirtualServers updates endpoints in NGINX configuration for the s resources.
func (*Configurator) UpdateEndpointsMergeableIngress ¶
func (cnf *Configurator) UpdateEndpointsMergeableIngress(mergeableIngresses []*MergeableIngresses) error
UpdateEndpointsMergeableIngress updates endpoints in NGINX configuration for a mergeable Ingress resource.
type IngressEx ¶
type IngressEx struct {
	Ingress          *extensions.Ingress
	TLSSecrets       map[string]*api_v1.Secret
	JWTKey           JWTKey
	Endpoints        map[string][]string
	HealthChecks     map[string]*api_v1.Probe
	ExternalNameSvcs map[string]bool
}
    IngressEx holds an Ingress along with the resources that are referenced in this Ingress.
type MergeableIngresses ¶
MergeableIngresses is a mergeable ingress of a master and minions.
type StaticConfigParams ¶
type StaticConfigParams struct {
	HealthStatus                   bool
	HealthStatusURI                string
	NginxStatus                    bool
	NginxStatusAllowCIDRs          []string
	NginxStatusPort                int
	StubStatusOverUnixSocketForOSS bool
}
    StaticConfigParams holds immutable NGINX configuration parameters that affect the main NGINX config.
type VirtualServerEx ¶
type VirtualServerEx struct {
	VirtualServer       *conf_v1.VirtualServer
	Endpoints           map[string][]string
	TLSSecret           *api_v1.Secret
	VirtualServerRoutes []*conf_v1.VirtualServerRoute
	ExternalNameSvcs    map[string]bool
}
    VirtualServerEx holds a VirtualServer along with the resources that are referenced in this VirtualServer.
func (*VirtualServerEx) String ¶
func (vsx *VirtualServerEx) String() string