Skip to content

Custom healthcheck options don't work at role-level #591

@fschueller

Description

@fschueller

I tried setting a custom log_lines attribute on the role-level, which did not persist to the configuration.
In fact, any custom value I set on the role-level healthcheck did not get accepted into the configuration that gets loaded by kamal. The documentation reads as if this should be working though.

Configs to reproduce:

deploy.yml

service: test

image: test/test-image

registry:
  username: testbot
  password: password

deploy.staging.yml

servers:
  web:
    hosts:
      - staging-server-1
      - staging-server-2
    healthcheck:
      log_lines: 100
      max_attempts: 4
>> kamal config -d staging
---
:roles:
- web
:hosts:
- staging-server-1
- staging-server-2
:primary_host: staging-server-1
:version: [tag]
:repository: test/test-image
:absolute_image: test/test-image:[tag]
:service_with_version: test-[tag]
:volume_args: []
:ssh_options:
  :user: root
  :port: 22
  :keepalive: true
  :keepalive_interval: 30
  :log_level: :fatal
:sshkit: {}
:builder: {}
:logging:
- "--log-opt"
- max-size="10m"
:healthcheck:
  path: "/up"
  port: 3000
  max_attempts: 7
  exposed_port: 3999
  cord: "/tmp/kamal-cord"
  log_lines: 50

Setting it at the top-level health-check succeeds:

deploy.staging.yml

healthcheck:
  log_lines: 100
  max_attempts: 4

servers:
  web:
    hosts:
      - staging-server-1
      - staging-server-2
>> bin/kamal config -d staging
---
:roles:
- web
:hosts:
- staging-server-1
- staging-server-2
:primary_host: staging-server-1
:version: [tag]
:repository: test/test-image
:absolute_image: test/test-image:[tag]
:service_with_version: test-[tag]
:volume_args: []
:ssh_options:
  :user: root
  :port: 22
  :keepalive: true
  :keepalive_interval: 30
  :log_level: :fatal
:sshkit: {}
:builder: {}
:logging:
- "--log-opt"
- max-size="10m"
:healthcheck:
  path: "/up"
  port: 3000
  max_attempts: 4
  exposed_port: 3999
  cord: "/tmp/kamal-cord"
  log_lines: 100

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions