Skip to main content

Connecting to your Ignition Gateway

By default, the Ignition Helm Chart will setup the following network configuration:

  • Headless ClusterIP service with 8088/tcp, 8043/tcp, and 8060/tcp.
  • Ingress resource with a rule defined for <release name>-ignition.localtest.me forwarding to 8088/tcp.
  • Public Address Settings configured and auto-detect disabled.
  • Use of Proxy Forwarded Headers enabled (with Ingress).
warning

Most ingress controllers will automatically set X-Forwarded-* headers automatically. If these aren't applied by your ingress configuration, you'll need to either enable them, or manually disable trust of the headers in Ignition via gateway.gatewayArgs.useProxyForwardedHeader=false.

The use of *.localtest.me as the default ingress.domainSuffix helps with local testing since all addresses should resolve to 127.0.0.1.

Customizing Ingress​

By default, an ingress class is not specified; it will typically be set by your cluster. Discover your available ingress classes with:

kubectl get ingressclass

If you have more than one ingress class (see kubectl get ingressclass), you may need to specify it. Additionally, you may need to customize the definition of Ingress based on what ingress controller you're using. This is typically done with annotations on the service/ingress resources.

In the example below, we're using Traefik as the ingress controller and we're configuring ingress into Ignition on the "web" entrypoint (http).

# testing.yaml
ingress:
className: traefik
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: web

Consult your ingress controller documentation for more information on available annotations and configurability.

Exposing as NodePort or LoadBalancer​

If you don't have an available ingress controller (which is recommended), you may choose to override service.type to either LoadBalancer or NodePort. For example, if you want to allocate a port across each node in your cluster that will route to Ignition, use the following values overrides:

# testing.yaml
service:
type: NodePort
nodePorts:
http: 8088

ingress:
enabled: false

Note that you must specify one or more service.nodePorts when using NodePort, or service.loadBalancerPorts with LoadBalancer. Suggested mappings are listed below:

LabelValueDescription
http8088Ignition default HTTP port
https8043Ignition default HTTPS port (TLS)
gan8060Ignition default Gateway Network port (TLS)

Once installed, you can interrogate the port that was chosen with kubectl get svc, port 30445 in the case of the example shown below.

$ helm install ignition inductiveautomation/ignition --values testing.yaml
...
$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ignition NodePort 10.105.165.105 <none> 8088:30445/TCP 5s