Connecting to your Ignition Gateway
By default, the Ignition Helm Chart will setup the following network configuration:
- Headless
ClusterIP
service with8088/tcp
,8043/tcp
, and8060/tcp
. Ingress
resource with a rule defined for<release name>-ignition.localtest.me
forwarding to8088/tcp
.- Public Address Settings configured and auto-detect disabled.
- Use of Proxy Forwarded Headers enabled (with
Ingress
).
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:
Label | Value | Description |
---|---|---|
http | 8088 | Ignition default HTTP port |
https | 8043 | Ignition default HTTPS port (TLS) |
gan | 8060 | Ignition 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