Ingress is an API object that manages external access to the services in a cluster, typically HTTP.
Ingress may provide load balancing, SSL termination and name-based virtual hosting. In short, Ingress is a way to map your application to publicly available domain name.
ingress value in Kubedeploy allows you to control parameters for Ingress object that would be created by the chart.
ingress is disabled.
Available values for
ingress in Kubedeploy:
- Enable Ingres object
- Ingress class name. In case you have multiple Ingress controllers you can specifically target desired one. Defaults to "haproxy"
- Default Ingress pathType
- (Feature state: 1.1.0) Deploy Ingress object with SSL support. Automatically configures the Ingress
- (Feature state: 1.1.0) Define default Service port that will be targeted by Ingress. If left undefined Ingress will use first port from
service.ports(or first port from
ports) to route traffic to.
- Additional Ingress annotations, can be used to define custom Ingress controller configuration. By default, it sets the cert-manager annotation to use
letsencryptcluster-issuer for issuing SSL certificates for configured ingress domain.
- (list) Ingress host list.
- (string, required) Define Ingress hostname
(list, optional) Ingress host paths. example usage: (Feature state: 1.1.0)
(list, optional) Ingress TLS list. overrides any auto configured tls config created by withSSL.
Allows for custom secretName and host list to be defined. In case when you have pre-configured SSL stored in Kubernetes Secret. If secret does not exist, new one will be created by cert-manager.
ingress values might look overwhelming at first. However, it should be fairly simple to expose your app on custom domain.
Simple ingress object
As a result of the above configuration, Ingress object is created using
tls section is automatically configured enabling SSL coverage for your domain.
letsencrypt cluster issuer provided by cert-manager will be used to issue valid SSL certificate. And finally, all traffic for
my-domain.com is routed to our Service objects port 80.
A more complex example, would be application with frontend and backend service ports. For that we will use additional containers. Our additional container will expose static frontend for our website, and our main container will expose backend API that will respond on /api path.
We will also configure our
ingress to use custom SSL certificate installed as
Complex ingress object
If you require more than one Ingress object per deployment, for example targeting different ingressClasses, please see extraIngress configuration options