-
-
Notifications
You must be signed in to change notification settings - Fork 533
Open
Labels
Description
Describe the Bug
Blueprints via Docker labels fail to enable health checks even if they are recognized as true.
Potentially related: after the resource is created, health check can be enabled manually, but it always shows as "Unknown" in the main Resources list (need to enter the resource details to see the actual status). I'm not sure if this should be a separate issue, if so please let me know.
Environment
- OS Type & Version: AlmaLinux 10
- Pangolin Version: 1.14.1
- Gerbil Version: 1.3.0
- Traefik Version: 3.6
- Newt Version: 1.8.1
To Reproduce
First time writing an issue so please bear with me and sorry if I missed something! Anyways, the steps:
- Edit the compose file of the target container and add the desired labels (in this example I will create a public resource with some rules)
- (Re)Deploy the project, redeploy Newt and confirm that the resource is created.
- Review its details health check is missing.
- (Not sure if it is related) Manually enable health check, go back to the resource list and see that status is "Unknown".
- Enter the resource details to see the actual status of the health check.
I tried this with several containers, all of them behave the same way. The resource is created and everything is properly configured except the health checks. Not only that, but seeing the blueprint in the UI it shows the health check configuration (includingenabled: true) yet it does not exist.
My example for Gotify (I redacted my domain for privacy reasons, but I can confirm it is properly configured)
compose.yml
services:
gotify:
container_name: gotify
restart: unless-stopped
image: gotify/server
ports:
- 8088:80
volumes:
- /home/mola/data/gotify:/app/data
environment:
- GOTIFY_DEFAULTUSER_PASS=${DEFAULT_PASS}
labels:
# PANGOLIN BLUEPRINT
## Public resource
- pangolin.public-resources.gotify.name=Gotify
- pangolin.public-resources.gotify.full-domain=gotify.example.com
- pangolin.public-resources.gotify.protocol=http
- pangolin.public-resources.gotify.ssl=true
## Target
- pangolin.public-resources.gotify.targets[0].site=pezluna
- pangolin.public-resources.gotify.targets[0].hostname=192.168.1.11
- pangolin.public-resources.gotify.targets[0].port=8088
- pangolin.public-resources.gotify.targets[0].method=http
## Healthcheck
- pangolin.public-resources.gotify.healthcheck.hostname=192.168.1.11
- pangolin.public-resources.gotify.healthcheck.port=8088
- pangolin.public-resources.gotify.healthcheck.enabled=true
- pangolin.public-resources.gotify.healthcheck.path=/health
- pangolin.public-resources.gotify.healthcheck.scheme=http
- pangolin.public-resources.gotify.healthcheck.method=GET
## Rules
- pangolin.public-resources.gotify.rules[0].action=allow
- pangolin.public-resources.gotify.rules[0].value=/version
- pangolin.public-resources.gotify.rules[0].match=path
- pangolin.public-resources.gotify.rules[1].action=allow
- pangolin.public-resources.gotify.rules[1].value=/message
- pangolin.public-resources.gotify.rules[1].match=path
- pangolin.public-resources.gotify.rules[2].action=allow
- pangolin.public-resources.gotify.rules[2].value=/application
- pangolin.public-resources.gotify.rules[2].match=path
- pangolin.public-resources.gotify.rules[3].action=allow
- pangolin.public-resources.gotify.rules[3].value=/client
- pangolin.public-resources.gotify.rules[3].match=path
- pangolin.public-resources.gotify.rules[4].action=allow
- pangolin.public-resources.gotify.rules[4].value=/stream
- pangolin.public-resources.gotify.rules[4].match=path
- pangolin.public-resources.gotify.rules[5].action=allow
- pangolin.public-resources.gotify.rules[5].value=/plugin
- pangolin.public-resources.gotify.rules[5].match=path
- pangolin.public-resources.gotify.rules[6].action=allow
- pangolin.public-resources.gotify.rules[6].value=/health
- pangolin.public-resources.gotify.rules[6].match=pathBlueprint result
proxy-resources: {}
client-resources: {}
public-resources:
gotify:
full-domain: gotify.example.com
healthcheck:
enabled: true
hostname: 192.168.1.11
method: GET
path: /health
port: 8088
scheme: http
name: Gotify
protocol: http
rules:
- action: allow
match: path
value: /version
- action: allow
match: path
value: /message
- action: allow
match: path
value: /application
- action: allow
match: path
value: /client
- action: allow
match: path
value: /stream
- action: allow
match: path
value: /plugin
- action: allow
match: path
value: /health
ssl: true
targets:
- hostname: 192.168.1.11
method: http
port: 8088
site: pezlunaRegarding the potentially related issue, this is how the resource is seen in the list:

vs how it looks when seeing the details:
Expected Behavior
- Public resource is created with the same configuration it has right now + health check enabled and configured.
- Health check status appears in the Resource list too, not only in the details.