Documentation ¶
Overview ¶
Package kubernetes implements Kubernetes Ingress support for Skipper.
See: http://kubernetes.io/docs/user-guide/ingress/
The package provides a Skipper DataClient implementation that can be used to access the Kubernetes API for ingress resources and generate routes based on them. The client polls for the ingress settings, and there is no need for a separate controller. On the other hand, it doesn't provide a full Ingress solution alone, because it doesn't do any load balancer configuration or DNS updates. For a full Ingress solution, it is possible to use Skipper together with Kube-ingress-aws-controller, which targets AWS and takes care of the load balancer setup for Kubernetes Ingress.
See: https://github.com/zalando-incubator/kube-ingress-aws-controller
Both Kube-ingress-aws-controller and Skipper Kubernetes are part of the larger project, Kubernetes On AWS:
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is a Skipper DataClient implementation used to create routes based on Kubernetes Ingress settings.
type Options ¶
type Options struct { // KubernetesInCluster defines if skipper is deployed and running in the kubernetes cluster // this would make authentication with API server happen through the service account, rather than // running along side kubectl proxy KubernetesInCluster bool // KubernetesURL is used as the base URL for Kubernetes API requests. Defaults to http://localhost:8001. // (TBD: support in-cluster operation by taking the address and certificate from the standard Kubernetes // environment variables.) KubernetesURL string // ProvideHealthcheck, when set, tells the data client to append a healthcheck route to the ingress // routes in case of successfully receiving the ingress items from the API (even if individual ingress // items may be invalid), or a failing healthcheck route when the API communication fails. The // healthcheck endpoint can be accessed from internal IPs on any hostname, with the path // /kube-system/healthz. // // When used in a custom configuration, the current filter registry needs to include the status() // filter, and the available predicates need to include the Source() predicate. ProvideHealthcheck bool // ProvideHTTPSRedirect, when set, tells the data client to append an HTTPS redirect route to the // ingress routes. This route will detect the X-Forwarded-Proto=http and respond with a 301 message // to the HTTPS equivalent of the same request (using the redirectTo(301, "https:") filter). The // X-Forwarded-Proto and X-Forwarded-Port is expected to be set by the load balancer. // // (See also https://github.com/zalando-incubator/kube-ingress-aws-controller as part of the // https://github.com/zalando-incubator/kubernetes-on-aws project.) ProvideHTTPSRedirect bool // Noop, WIP. ForceFullUpdatePeriod time.Duration }
Options is used to initialize the Kubernetes DataClient.