URLs
There are 3 possible parts involved in exposing URLs for a component, from a component host config, and Bunnyshell can do all of them or you can decide to handle some of them outside Bunnyshell.
A. create Ingress resource
B. create DNS record
C. show URLs in Bunnyshell dashboard
A. create Ingress resource
Bunnyshell automatically creates an Ingress resource foreach host of a docker-compose component. The component needs to expose at least one port, and you need to specify on host the hostname
, path
and servicePort
. Optionally you can add k8s with extra configs on Ingress.
B. create DNS record
Bunnyshell creates DNS records under the bunnyenv.com
domain:
- for the Ingress resources found in the environment namespace, with
ingressClassName: bns-nginx
, and component specific labels, pointing to the Ingress loadBalancer address. - for hosts with externalAddress, pointing to the externalAddress, CNAME or A record.
If you set on host selfmangedDns: true
, then you are responsible for DNS record creation, even if Bunnyshell created the Ingress resource. See more about Custom domains.
C. show URLs in Bunnyshell dashboard
For Kubernetes and Helm components Bunnyshell is showing:
- component.host.displayPaths, for the host with
hostname: *
OR
- component.host.displayPaths for hosts found in cluster on Ingress resources with component labels, or just the
https://{ingress.rule.host}/{ingress.rule.path}
if no component.host or no component.host.displayPaths are set - component.host.displayPaths or
https://{component.host.hostname}
for hosts with externalAddress set
For the other components Bunnyshell is showing:
https://{component.host.hostname}
, which points to host.externalAddress if this is set
OR
- component.host.displayPaths if they are set
OR
https://{component.host.hostname}/{component.host.path}
for hosts without externalAddress or displayPaths
component.host.displayPaths
They can be relative to component.host.hostname or absolute URLs, any URL, or empty. See here some examples
Updated about 2 months ago