How to configure AtScale Proxy
Overview
The AtScale proxy service is a wrapper of the Nginx Helm Chart with pre-configured routing to all AtScale services.
a) Certificates
TLS certificates can be provided by three different ways:
-
(Default) Auto generated, by leaving the section
global.atscale.tlsempty. This way a self-signed certificate for theglobal.ingressDomainwill be generated by our application and saved todefault-certificateSecret;
Example Values Override file:global: ingressDomain: "atscale.yourcompany.example" -
Provided on the Values Override file, by filling out the
global.atscale.tlsCrt,global.atscale.tlsKeyand optionally theglobal.atscale.caCertsparameters, all Base64 encoded, which will be saved todefault-certificateSecret;
Example Values Override file:global: ingressDomain: "atscale.yourcompany.example" tls: tlsCrt: LS0tLS1CR... tlsKey: LS0tLS1CR... caCerts: LS0tLS1CR... -
Via Secret, with
tls.key,tls.crtandca.crtkeys. The Secret name should be provided to both theglobal.atscale.tls.existingSecretandatscale-proxy.tls.existingSecretsections.
Example Secret manifest:type: kubernetes.io/tls apiVersion: v1 kind: Secret metadata: namespace: atscale data: tls.crt: LS0tLS1CR... tls.key: LS0tLS1CR... ca.crt: LS0tLS1CR...
Example Values Override file:global: ingressDomain: "atscale.yourcompany.example" atscale: tls: existingSecret: "my-certificate" atscale-proxy: tls: existingSecret: "my-certificate"
b) Routing
There are two different methods of reaching AtScale services from outside:
-
(Default) Service: All configurations related to the proxy service are within the
atscale-proxy.servicesection. In this configuration, the AtScale Proxy will handle the TLS termination, using the certificate set onglobal.atscale.tls(or the generated self-signed certificate), and HTTP 2.0 will be set as default.
Example Values Override for a Load Balancer with 3 replicasatscale-proxy: replicaCount: 3 service: type: LoadBalancer
Example Values Override for an AWS Load Balancer:atscale-proxy: annotations: service.beta.kubernetes.io/aws-load-balancer-scheme: internal service.beta.kubernetes.io/aws-load-balancer-internal: "true" service.beta.kubernetes.io/aws-load-balancer-type: nlb service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: instance service: type: LoadBalancer
Example Values Override for an Azure Load Balancer:atscale-proxy: annotations: service.beta.kubernetes.io/azure-load-balancer-internal: "true" service.beta.kubernetes.io/azure-load-balancer-ipv4: 10.240.0.25 service: type: LoadBalancerExample Values Override for a Google Cloud Load Balancer:
atscale-proxy: annotations: networking.gke.io/load-balancer-type: "Internal" networking.gke.io/load-balancer-ip-addresses: "10.240.0.25" kubernetes.io/ingress.global-static-ip-name: my-static-address service: type: LoadBalancer -
Ingress: All configurations related to the proxy service are within the
atscale-proxy.ingresssection. In order to enable, setatscale-proxy.ingress.enabledtotrue. In this configuration, the AtScale Proxy will not deal will TLS termination, HTTP 1.1 will be set as default, and the certificateglobal.atscale.tls(or the generated self-signed certificate) will be attached to the Ingress.
Example Values Override using an Ingress, with the default ingress class beingnginxatscale-proxy: ingress: enabled: true ingressClassName: "nginx"
Note on TCP Connections when using Ingress
The communication between the AtScale Engine and external applications, such as Tableau, also take place using the Postgres Wire protocol, via the TCP Port15432.This port is also exposed via the
atscale-proxyservice, however when using the Ingress, only HTTPS connections are allowed. Therefore, it is necessary to use Firewall rules or other proxy available in order to allow the access via port15432.
A tutorial on how to expose TCP Ports using the Nginx Ingress Controller can be found here:
Exposing TCP and UDP services - Ingress-Nginx Controller, and for Traefik here
Traefik Routers Documentation - Traefik .
Upgrade Considerations from 2025.2.1 and earlier versions
Important: If nginxproxy is not being used, no action is needed.
All the settings in the nginxproxy section of the Values Override file should be migrated accordingly to atscale-proxy. Notably:
-
All annotations from
nginxproxy.service.annotationsshould be migrated toatscale-proxy.service.annotations; -
All routes created to the
nginxservice should now be redirected toatscale-proxyservice; -
OpenShift Routes, Istio VirtualServices, and other environment-specific routing Custom Resources should be reviewed, point the routes to the correct
atscale-proxyservice