{% extends 'control_plane/base.html' %} {% block title %}{{ deployment.hosted_site.slug }} ยท Tussilago{% endblock %} {% block content %}

Deployment Detail

{{ deployment.hosted_site.tenant.slug }}/{{ deployment.hosted_site.slug }}

Deployment {{ deployment.id }} on localhost port {{ deployment.guest_port }}.

Control Plane {{ deployment.get_status_display }}

Live Health

Sentinel probe

{{ health_probe.label }} {{ health_probe.checked_at }}

{% if health_probe.error %} {{ health_probe.error }} {% elif health_probe.ok %} Sentinel responded with healthy payload. {% else %} Waiting for a healthy sentinel response. {% endif %}

{% if health_probe.payload %}{{ health_probe.payload }}{% elif health_probe.error %}{{ health_probe.error }}{% else %}No payload yet.{% endif %}

Facts

Deployment metadata

Sentinel URL
{{ sentinel_url }}
Idempotency Key
{{ deployment.idempotency_key }}
Created
{{ deployment.created_at|date:'Y-m-d H:i:s' }}
Started
{{ deployment.started_at|default:'-' }}
Finished
{{ deployment.finished_at|default:'-' }}
Admin
Open admin change form
{% if deployment.last_error %}

Last Error

{{ deployment.last_error }}
{% endif %}

Runtime Services

Database and cache state

{% for runtime_service in runtime_services %}
{{ runtime_service.kind }}

{{ runtime_service.container_name }}

{{ runtime_service.hostname }}:{{ runtime_service.internal_port }}

Control plane status: {{ runtime_service.status }}

{% empty %}

No runtime services recorded yet.

{% endfor %}

Diagnostics Snapshot

Persisted pod state and logs

{% if diagnostics %}
Captured At
{{ diagnostics.captured_at|default:'-' }}
Pod
{{ diagnostics.pod.name|default:'-' }}
Pod Status
{{ diagnostics.pod.status|default:'unknown' }}
Snapshot Error
{{ diagnostics.capture_error|default:'-' }}
{% if diagnostics.pod.error %}

{{ diagnostics.pod.error }}

{% endif %} {% else %}

No diagnostics snapshot has been captured yet.

{% endif %}
{% if diagnostics %}

Django Container

{{ diagnostics.django.container_name }}

{{ diagnostics.django.container_status|default:'missing' }}
{% if diagnostics.django.inspect_error %}

{{ diagnostics.django.inspect_error }}

{% endif %}
{{ diagnostics.django.logs|default:'No Django logs captured yet.' }}
{% for runtime_service in diagnostics.runtime_services %}

{{ runtime_service.label }}

{{ runtime_service.container_name }}

{{ runtime_service.container_status|default:'missing' }}
{% if runtime_service.inspect_error %}

{{ runtime_service.inspect_error }}

{% endif %} {% if runtime_service.log_error %}

{{ runtime_service.log_error }}

{% endif %}
{{ runtime_service.logs|default:'No logs captured yet.' }}
{% endfor %} {% endif %}
{% endblock content %}