Documentation
¶
Index ¶
- Constants
- func AuthenticationHandler(next http.Handler) http.Handler
- func Marshal(conf *Config) (yamlString string, err error)
- func SaveToFile(filename string, conf *Config) (err error)
- func Set(conf *Config)
- func ValidateToken(tokenString string) (string, error)
- type ApiConfig
- type ApiNamespacesConfig
- type Config
- type ExternalServices
- type GrafanaConfig
- type IstioConfig
- type IstioLabels
- type JaegerConfig
- type KubernetesConfig
- type LoginToken
- type Server
- type TokenClaim
- type TokenGenerated
Constants ¶
const ( EnvIdentityCertFile = "IDENTITY_CERT_FILE" EnvIdentityPrivateKeyFile = "IDENTITY_PRIVATE_KEY_FILE" EnvPrometheusServiceURL = "PROMETHEUS_SERVICE_URL" EnvPrometheusCustomMetricsURL = "PROMETHEUS_CUSTOM_METRICS_URL" EnvInCluster = "IN_CLUSTER" EnvIstioIdentityDomain = "ISTIO_IDENTITY_DOMAIN" EnvIstioSidecarAnnotation = "ISTIO_SIDECAR_ANNOTATION" EnvIstioUrlServiceVersion = "ISTIO_URL_SERVICE_VERSION" EnvApiNamespacesExclude = "API_NAMESPACES_EXCLUDE" EnvServerAddress = "SERVER_ADDRESS" EnvServerPort = "SERVER_PORT" EnvServerCredentialsUsername = "SERVER_CREDENTIALS_USERNAME" EnvServerCredentialsPassword = "SERVER_CREDENTIALS_PASSWORD" EnvServerAllowAnonymousAccess = "SERVER_ALLOW_ANONYMOUS_ACCESS" EnvWebRoot = "SERVER_WEB_ROOT" EnvServerStaticContentRootDirectory = "SERVER_STATIC_CONTENT_ROOT_DIRECTORY" EnvServerCORSAllowAll = "SERVER_CORS_ALLOW_ALL" EnvServerAuditLog = "SERVER_AUDIT_LOG" EnvGrafanaDisplayLink = "GRAFANA_DISPLAY_LINK" EnvGrafanaURL = "GRAFANA_URL" EnvGrafanaServiceNamespace = "GRAFANA_SERVICE_NAMESPACE" EnvGrafanaService = "GRAFANA_SERVICE" EnvGrafanaWorkloadDashboardPattern = "GRAFANA_WORKLOAD_DASHBOARD_PATTERN" EnvGrafanaServiceDashboardPattern = "GRAFANA_SERVICE_DASHBOARD_PATTERN" EnvGrafanaVarNamespace = "GRAFANA_VAR_NAMESPACE" EnvGrafanaVarService = "GRAFANA_VAR_SERVICE" EnvGrafanaVarWorkload = "GRAFANA_VAR_WORKLOAD" EnvGrafanaAPIKey = "GRAFANA_API_KEY" EnvGrafanaUsername = "GRAFANA_USERNAME" EnvGrafanaPassword = "GRAFANA_PASSWORD" EnvJaegerURL = "JAEGER_URL" EnvJaegerService = "JAEGER_SERVICE" EnvLoginTokenSigningKey = "LOGIN_TOKEN_SIGNING_KEY" EnvLoginTokenExpirationSeconds = "LOGIN_TOKEN_EXPIRATION_SECONDS" EnvIstioNamespace = "ISTIO_NAMESPACE" EnvIstioLabelNameApp = "ISTIO_LABEL_NAME_APP" EnvIstioLabelNameVersion = "ISTIO_LABEL_NAME_VERSION" EnvKubernetesBurst = "KUBERNETES_BURST" EnvKubernetesQPS = "KUBERNETES_QPS" EnvKubernetesCacheEnabled = "KUBERNETES_CACHE_ENABLED" EnvKubernetesCacheDuration = "KUBERNETES_CACHE_DURATION" )
Environment vars can define some default values. NOTE: If you add a new variable, don't forget to update README.adoc
const ( IstioVersionSupported = ">= 1.0" MaistraVersionSupported = ">= 0.1.0" )
The versions that Kiali requires
Variables ¶
This section is empty.
Functions ¶
func SaveToFile ¶
SaveToFile converts the Config object and stores its YAML string into the given file, overwriting any data that is in the file.
func ValidateToken ¶
ValidateToken checks if the input token is still valid
Types ¶
type ApiConfig ¶
type ApiConfig struct {
Namespaces ApiNamespacesConfig
}
Exclude Blacklist holds regex strings defining a blacklist
type ApiNamespacesConfig ¶
type ApiNamespacesConfig struct {
Exclude []string
}
Exclude Blacklist holds regex strings defining a blacklist
type Config ¶
type Config struct {
Identity security.Identity `yaml:",omitempty"`
Server Server `yaml:",omitempty"`
InCluster bool `yaml:"in_cluster,omitempty"`
ExternalServices ExternalServices `yaml:"external_services,omitempty"`
LoginToken LoginToken `yaml:"login_token,omitempty"`
IstioNamespace string `yaml:"istio_namespace,omitempty"`
IstioLabels IstioLabels `yaml:"istio_labels,omitempty"`
KubernetesConfig KubernetesConfig `yaml:"kubernetes_config,omitempty"`
API ApiConfig `yaml:"api,omitempty"`
}
Config defines full YAML configuration.
func LoadFromFile ¶
LoadFromFile reads the YAML from the given file, parses the content, and returns its Config object representation.
type ExternalServices ¶
type ExternalServices struct {
Istio IstioConfig `yaml:"istio,omitempty"`
PrometheusServiceURL string `yaml:"prometheus_service_url,omitempty"`
PrometheusCustomMetricsURL string `yaml:"prometheus_custom_metrics_url,omitempty"`
Grafana GrafanaConfig `yaml:"grafana,omitempty"`
Jaeger JaegerConfig `yaml:"jaeger,omitempty"`
}
ExternalServices holds configurations for other systems that Kiali depends on
type GrafanaConfig ¶
type GrafanaConfig struct {
DisplayLink bool `yaml:"display_link"`
URL string `yaml:"url"`
ServiceNamespace string `yaml:"service_namespace"`
Service string `yaml:"service"`
WorkloadDashboardPattern string `yaml:"workload_dashboard_pattern"`
ServiceDashboardPattern string `yaml:"service_dashboard_pattern"`
VarNamespace string `yaml:"var_namespace"`
VarService string `yaml:"var_service"`
VarWorkload string `yaml:"var_workload"`
APIKey string `yaml:"api_key"`
Username string `yaml:"username"`
Password string `yaml:"password"`
}
GrafanaConfig describes configuration used for Grafana links
type IstioConfig ¶
type IstioConfig struct {
UrlServiceVersion string `yaml:"url_service_version"`
IstioIdentityDomain string `yaml:"istio_identity_domain,omitempty"`
IstioSidecarAnnotation string `yaml:"istio_sidecar_annotation,omitempty"`
}
IstioConfig describes configuration used for istio links
type IstioLabels ¶
type IstioLabels struct {
AppLabelName string `yaml:"app_label_name,omitempty" json:"appLabelName"`
VersionLabelName string `yaml:"version_label_name,omitempty" json:"versionLabelName"`
}
IstioLabels holds configuration about the labels required by Istio
type JaegerConfig ¶
JaegerConfig describes configuration used for jaeger links
type KubernetesConfig ¶
type KubernetesConfig struct {
Burst int `yaml:"burst,omitempty"`
QPS float32 `yaml:"qps,omitempty"`
CacheEnabled bool `yaml:"cache_enabled,omitempty"`
CacheDuration int64 `yaml:"cache_duration,omitempty"`
}
Kubernetes client configuration
type LoginToken ¶
type LoginToken struct {
SigningKey []byte `yaml:"signing_key,omitempty"`
ExpirationSeconds int64 `yaml:"expiration_seconds,omitempty"`
}
LoginToken holds config used in token-based authentication
type Server ¶
type Server struct {
Address string `yaml:",omitempty"`
Port int `yaml:",omitempty"`
Credentials security.Credentials `yaml:",omitempty"`
WebRoot string `yaml:"web_root,omitempty"`
StaticContentRootDirectory string `yaml:"static_content_root_directory,omitempty"`
CORSAllowAll bool `yaml:"cors_allow_all,omitempty"`
AuditLog bool `yaml:"audit_log,omitempty"`
}
Server configuration
type TokenClaim ¶
type TokenClaim struct {
User string `json:"username"`
jwt.StandardClaims
}
Structured version of Claims Section, as referenced at https://tools.ietf.org/html/rfc7519#section-4.1 See examples for how to use this with your own claim types
type TokenGenerated ¶
type TokenGenerated struct {
// The authentication token
// A string with the authentication token for the user
//
// example: zI1NiIsIsR5cCI6IkpXVCJ9.ezJ1c2VybmFtZSI6ImFkbWluIiwiZXhwIjoxNTI5NTIzNjU0fQ.PPZvRGnR6VA4v7FmgSfQcGQr-VD
// required: true
Token string `json:"token"`
// The expired time for the token
// A string with the Datetime when the token will be expired
//
// example: 2018-06-20 19:40:54.116369887 +0000 UTC m=+43224.838320603
// required: true
ExpiredAt string `json:"expired_at"`
}
TokenGenerated tokenGenerated
This is used for returning the token ¶
swagger:model TokenGenerated
func GenerateToken ¶
func GenerateToken(username string) (TokenGenerated, error)
GenerateToken generates a signed token with an expiration of <ExpirationSeconds> seconds