2017-07-10 14:58:12 +00:00
|
|
|
package types
|
|
|
|
|
2017-08-21 08:46:03 +00:00
|
|
|
import "strings"
|
|
|
|
|
2017-10-10 09:10:02 +00:00
|
|
|
// Traefik labels
|
2017-07-10 14:58:12 +00:00
|
|
|
const (
|
2017-10-10 09:10:02 +00:00
|
|
|
LabelPrefix = "traefik."
|
2017-11-28 10:16:03 +00:00
|
|
|
SuffixPort = "port"
|
|
|
|
SuffixProtocol = "protocol"
|
|
|
|
SuffixWeight = "weight"
|
|
|
|
SuffixFrontendAuthBasic = "frontend.auth.basic"
|
|
|
|
SuffixFrontendBackend = "frontend.backend"
|
|
|
|
SuffixFrontendEntryPoints = "frontend.entryPoints"
|
|
|
|
SuffixFrontendPassHostHeader = "frontend.passHostHeader"
|
|
|
|
SuffixFrontendPriority = "frontend.priority"
|
2017-12-15 10:48:03 +00:00
|
|
|
SuffixFrontendRedirectEntryPoint = "frontend.redirect.entryPoint"
|
|
|
|
SuffixFrontendRedirectRegex = "frontend.redirect.regex"
|
|
|
|
SuffixFrontendRedirectReplacement = "frontend.redirect.replacement"
|
2017-11-28 10:16:03 +00:00
|
|
|
SuffixFrontendRule = "frontend.rule"
|
2017-10-10 09:10:02 +00:00
|
|
|
LabelDomain = LabelPrefix + "domain"
|
|
|
|
LabelEnable = LabelPrefix + "enable"
|
2017-11-28 10:16:03 +00:00
|
|
|
LabelPort = LabelPrefix + SuffixPort
|
2017-10-10 09:10:02 +00:00
|
|
|
LabelPortIndex = LabelPrefix + "portIndex"
|
2017-11-28 10:16:03 +00:00
|
|
|
LabelProtocol = LabelPrefix + SuffixProtocol
|
2017-10-10 09:10:02 +00:00
|
|
|
LabelTags = LabelPrefix + "tags"
|
2017-11-28 10:16:03 +00:00
|
|
|
LabelWeight = LabelPrefix + SuffixWeight
|
|
|
|
LabelFrontendAuthBasic = LabelPrefix + SuffixFrontendAuthBasic
|
|
|
|
LabelFrontendEntryPoints = LabelPrefix + SuffixFrontendEntryPoints
|
|
|
|
LabelFrontendPassHostHeader = LabelPrefix + SuffixFrontendPassHostHeader
|
|
|
|
LabelFrontendPassTLSCert = LabelPrefix + "frontend.passTLSCert"
|
|
|
|
LabelFrontendPriority = LabelPrefix + SuffixFrontendPriority
|
|
|
|
LabelFrontendRule = LabelPrefix + SuffixFrontendRule
|
|
|
|
LabelFrontendRuleType = LabelPrefix + "frontend.rule.type"
|
2017-12-15 10:48:03 +00:00
|
|
|
LabelFrontendRedirectEntryPoint = LabelPrefix + SuffixFrontendRedirectEntryPoint
|
|
|
|
LabelFrontendRedirectRegex = LabelPrefix + SuffixFrontendRedirectRegex
|
|
|
|
LabelFrontendRedirectReplacement = LabelPrefix + SuffixFrontendRedirectReplacement
|
2017-11-28 10:16:03 +00:00
|
|
|
LabelTraefikFrontendValue = LabelPrefix + "frontend.value"
|
|
|
|
LabelTraefikFrontendWhitelistSourceRange = LabelPrefix + "frontend.whitelistSourceRange"
|
2017-12-04 10:40:03 +00:00
|
|
|
LabelFrontendRequestHeaders = LabelPrefix + "frontend.headers.customRequestHeaders"
|
|
|
|
LabelFrontendResponseHeaders = LabelPrefix + "frontend.headers.customResponseHeaders"
|
2017-11-22 18:40:04 +00:00
|
|
|
LabelFrontendAllowedHosts = LabelPrefix + "frontend.headers.allowedHosts"
|
|
|
|
LabelFrontendHostsProxyHeaders = LabelPrefix + "frontend.headers.hostsProxyHeaders"
|
|
|
|
LabelFrontendSSLRedirect = LabelPrefix + "frontend.headers.SSLRedirect"
|
|
|
|
LabelFrontendSSLTemporaryRedirect = LabelPrefix + "frontend.headers.SSLTemporaryRedirect"
|
|
|
|
LabelFrontendSSLHost = LabelPrefix + "frontend.headers.SSLHost"
|
|
|
|
LabelFrontendSSLProxyHeaders = LabelPrefix + "frontend.headers.SSLProxyHeaders"
|
|
|
|
LabelFrontendSTSSeconds = LabelPrefix + "frontend.headers.STSSeconds"
|
|
|
|
LabelFrontendSTSIncludeSubdomains = LabelPrefix + "frontend.headers.STSIncludeSubdomains"
|
|
|
|
LabelFrontendSTSPreload = LabelPrefix + "frontend.headers.STSPreload"
|
|
|
|
LabelFrontendForceSTSHeader = LabelPrefix + "frontend.headers.forceSTSHeader"
|
|
|
|
LabelFrontendFrameDeny = LabelPrefix + "frontend.headers.frameDeny"
|
|
|
|
LabelFrontendCustomFrameOptionsValue = LabelPrefix + "frontend.headers.customFrameOptionsValue"
|
|
|
|
LabelFrontendContentTypeNosniff = LabelPrefix + "frontend.headers.contentTypeNosniff"
|
|
|
|
LabelFrontendBrowserXSSFilter = LabelPrefix + "frontend.headers.browserXSSFilter"
|
|
|
|
LabelFrontendContentSecurityPolicy = LabelPrefix + "frontend.headers.contentSecurityPolicy"
|
|
|
|
LabelFrontendPublicKey = LabelPrefix + "frontend.headers.publicKey"
|
|
|
|
LabelFrontendReferrerPolicy = LabelPrefix + "frontend.headers.referrerPolicy"
|
|
|
|
LabelFrontendIsDevelopment = LabelPrefix + "frontend.headers.isDevelopment"
|
2017-10-10 09:10:02 +00:00
|
|
|
LabelBackend = LabelPrefix + "backend"
|
|
|
|
LabelBackendID = LabelPrefix + "backend.id"
|
|
|
|
LabelTraefikBackendCircuitbreaker = LabelPrefix + "backend.circuitbreaker"
|
|
|
|
LabelBackendCircuitbreakerExpression = LabelPrefix + "backend.circuitbreaker.expression"
|
|
|
|
LabelBackendHealthcheckPath = LabelPrefix + "backend.healthcheck.path"
|
|
|
|
LabelBackendHealthcheckInterval = LabelPrefix + "backend.healthcheck.interval"
|
|
|
|
LabelBackendLoadbalancerMethod = LabelPrefix + "backend.loadbalancer.method"
|
|
|
|
LabelBackendLoadbalancerSticky = LabelPrefix + "backend.loadbalancer.sticky"
|
|
|
|
LabelBackendLoadbalancerStickiness = LabelPrefix + "backend.loadbalancer.stickiness"
|
|
|
|
LabelBackendLoadbalancerStickinessCookieName = LabelPrefix + "backend.loadbalancer.stickiness.cookieName"
|
|
|
|
LabelBackendMaxconnAmount = LabelPrefix + "backend.maxconn.amount"
|
|
|
|
LabelBackendMaxconnExtractorfunc = LabelPrefix + "backend.maxconn.extractorfunc"
|
2017-07-10 14:58:12 +00:00
|
|
|
)
|
2017-08-21 08:46:03 +00:00
|
|
|
|
|
|
|
//ServiceLabel converts a key value of Label*, given a serviceName, into a pattern <LabelPrefix>.<serviceName>.<property>
|
|
|
|
// i.e. For LabelFrontendRule and serviceName=app it will return "traefik.app.frontend.rule"
|
|
|
|
func ServiceLabel(key, serviceName string) string {
|
|
|
|
if len(serviceName) > 0 {
|
|
|
|
property := strings.TrimPrefix(key, LabelPrefix)
|
|
|
|
return LabelPrefix + serviceName + "." + property
|
|
|
|
}
|
|
|
|
return key
|
|
|
|
}
|
2017-11-30 08:26:03 +00:00
|
|
|
|
|
|
|
// SplitAndTrimString splits separatedString at the comma character and trims each
|
|
|
|
// piece, filtering out empty pieces. Returns the list of pieces or nil if the input
|
|
|
|
// did not contain a non-empty piece.
|
|
|
|
func SplitAndTrimString(base string) []string {
|
|
|
|
var trimmedStrings []string
|
|
|
|
|
|
|
|
for _, s := range strings.Split(base, ",") {
|
|
|
|
s = strings.TrimSpace(s)
|
|
|
|
if len(s) > 0 {
|
|
|
|
trimmedStrings = append(trimmedStrings, s)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return trimmedStrings
|
|
|
|
}
|