Traefik
traefik Gives apps their own hostnames through a Traefik Pando runs on ports 80 and 443, with certificates.
Setup
Choose who runs Traefik
Point your Traefik at Pando's routes
- Start Traefik with
--providers.file.directoryset to a directory, and--providers.file.watch=true. - Mount that directory into Pando at
/etc/traefik/dynamic. - Copy the name of a resolver under
certificatesResolversin Traefik's static configuration.
- Start Traefik with
Choose a domain
- At your DNS provider, add A records for the base domain,
*.plus the base domain, and the console hostname, pointing at this machine's public IP address.
- At your DNS provider, add A records for the base domain,
Choose how certificates are issued
Create DNS provider credentials
- At the provider that hosts the base domain, create a credential with this access:
Provider Access Variables Cloudflare API token with Zone / Zone / Read and Zone / DNS / Edit CF_DNS_API_TOKEN Amazon Route 53 IAM user access key allowed route53:GetChange, route53:ListHostedZonesByName, route53:ListResourceRecordSets and route53:ChangeResourceRecordSets AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION DigitalOcean Personal access token with the domain:create, domain:read and domain:delete scopes DO_AUTH_TOKEN Porkbun API key, with API Access turned on in the domain's details PORKBUN_API_KEY, PORKBUN_SECRET_API_KEY Namecheap API access, with this machine's IPv4 address whitelisted NAMECHEAP_API_USER, NAMECHEAP_API_KEY - For another provider, find its code and variables in the lego DNS provider list.
- Enter each variable below as
NAME=value, one to a line. For Route 53, addAWS_REGION=us-east-1.
Open Cloudflare API tokensOpen AWS IAM usersOpen DigitalOcean tokensOpen Porkbun API accessOpen Namecheap API accessOpen lego DNS providers
- At the provider that hosts the base domain, create a credential with this access:
Settings (18)
base_domainBase domainApps are served at <app>.<base domain>. Point this domain and *.<base domain> at this machine.
console_hostnameConsole hostnameWhere the console is served over HTTPS.
certificatesCertificatesacme_emailCertificate emailThe address Let's Encrypt registers the account to.
dns_providerDNS providerWho hosts the base domain's DNS. Another provider is entered as its code, such as gcloud or ovh.
dns_credentialsDNS provider credentialsCredentialOne NAME=value per line. Cloudflare: CF_DNS_API_TOKEN, or CF_API_EMAIL and CF_API_KEY. Amazon Route 53: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY and AWS_REGION (AWS_REGION can be us-east-1 for any standard AWS account, since Route 53 is global). DigitalOcean: DO_AUTH_TOKEN. Porkbun: PORKBUN_API_KEY and PORKBUN_SECRET_API_KEY. Namecheap: NAMECHEAP_API_USER and NAMECHEAP_API_KEY. For another provider, the variables Traefik's documentation lists for it.
managedPando runs TraefikOff for a Traefik already running on this machine.
http_portHTTP portAdvancedThe host port Traefik takes for HTTP.
https_portHTTPS portAdvancedThe host port Traefik takes for HTTPS.
imageTraefik imageAdvancedSet to run a different Traefik release than this Pando ships with.
deliveryRoute deliveryAdvancedHow routes reach Traefik. Use IngressRoutes with the Kubernetes runtime.
namespaceIngressRoute namespaceAdvancedThe namespace Pando writes IngressRoute objects to, which Traefik watches.
kubeconfigKubeconfig fileAdvancedA kubeconfig file, for reaching the cluster from outside it.
api_qpsAPI requests a secondAdvancedThe most requests a second each Pando replica makes to the cluster's API for routes.
api_burstAPI request burstAdvancedHow many requests a replica may make at once above that rate. At least the requests a second.
dirConfiguration directoryAdvancedWhere Pando writes Traefik's route files.
entrypointEntry pointAdvancedThe entry point of your Traefik that apps are served on.
cert_resolverCertificate resolverThe certificate resolver your Traefik has configured. Empty asks for no certificates.