feat(motor): agregar version fijable en build y clusterlog bootstrap-instance
Primer paso hacia separar el motor (herramienta genérica) de cada instancia (contenido de un deployment): Version deja de ser const para poder inyectarse con -ldflags en `make build` (git describe, sin tags aún), y el comando nuevo bootstrap-instance genera el esqueleto mínimo de una instancia (zola.toml, content/<sección>/_index.md, admins.json vacío, .clusterlog-version) reusando saveAdmins() en vez de duplicar su formato. Documentado en CLI.md; el empaquetado de templates/tema y el CI de instancia quedan para cuando el motor publique releases. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
# {{TITLE}}
|
||||
|
||||
Este repositorio es una **instancia de clusterlog**: contiene el contenido,
|
||||
los datos y la configuración de un deployment concreto, no el código del
|
||||
motor. Se generó con:
|
||||
|
||||
```bash
|
||||
clusterlog bootstrap-instance --output . --product-name "{{PRODUCT_NAME}}"
|
||||
```
|
||||
|
||||
## Qué hay aquí
|
||||
|
||||
- `content/` — documentación, manuales, memorias, proyectos y tareas de esta
|
||||
instancia. Empieza con las seis secciones vacías (`_index.md` únicamente).
|
||||
- `data/admins.json`, `config/allowed_signers` — registro de administradores,
|
||||
vacío hasta el primer `admin add`.
|
||||
- `zola.toml` — configuración de este deployment (`base_url`, nombre del
|
||||
producto). Cámbiela antes de publicar.
|
||||
- `.clusterlog-version` — versión del motor `clusterlog` usada para generar
|
||||
este esqueleto. Manténgala sincronizada con el binario que use su CI.
|
||||
|
||||
## Primeros pasos
|
||||
|
||||
1. Cambie `base_url` en `zola.toml` por el dominio real de este deployment.
|
||||
2. Registre al primer administrador (recibe `owner` automáticamente):
|
||||
|
||||
```bash
|
||||
clusterlog --root . --ssh-key ~/.ssh/id_ed25519.pub admin add \
|
||||
--id ana --name "Ana Torres" --email ana@example.org \
|
||||
--key ~/.ssh/id_ed25519.pub --roles owner,admin
|
||||
```
|
||||
|
||||
3. Inicialice Git y firme el primer commit (vea la sección "Registrar al
|
||||
primer administrador" en la documentación del motor para el detalle
|
||||
completo de `git config`/`commit -S`).
|
||||
4. Genere la proyección y valide:
|
||||
|
||||
```bash
|
||||
clusterlog --root . sync
|
||||
clusterlog --root . validate --skip-zola
|
||||
```
|
||||
|
||||
## Pendiente (no incluido por este comando)
|
||||
|
||||
- Plantillas Tera y el tema `zola.386`: todavía se obtienen desde un checkout
|
||||
del repositorio del motor (`make theme` / `scripts/bootstrap-theme.sh`).
|
||||
Empaquetarlos en un release descargable del motor es trabajo de una fase
|
||||
posterior.
|
||||
- Un workflow de CI para esta instancia (que descargue el binario del motor
|
||||
por versión fijada) no se generó todavía: el motor aún no publica releases
|
||||
binarios. Se agrega en cuanto exista ese release.
|
||||
@@ -0,0 +1,9 @@
|
||||
+++
|
||||
title = "Documentación"
|
||||
description = "Arquitectura, decisiones, inventarios, políticas y explicaciones técnicas duraderas."
|
||||
sort_by = "weight"
|
||||
template = "section.html"
|
||||
page_template = "page.html"
|
||||
+++
|
||||
|
||||
Aquí vive el conocimiento descriptivo del clúster: el **qué**, el **por qué** y las relaciones entre componentes.
|
||||
@@ -0,0 +1,9 @@
|
||||
+++
|
||||
title = "Manuales"
|
||||
description = "Runbooks y procedimientos operativos verificables, con prerrequisitos, pasos y reversión."
|
||||
sort_by = "weight"
|
||||
template = "section.html"
|
||||
page_template = "page.html"
|
||||
+++
|
||||
|
||||
Los manuales deben ser ejecutables por una persona distinta de quien los escribió y declarar claramente sus condiciones de seguridad.
|
||||
@@ -0,0 +1,10 @@
|
||||
+++
|
||||
title = "Memorias"
|
||||
description = "Historia cronológica y auditable de intervenciones, cambios, incidentes y correcciones."
|
||||
sort_by = "date"
|
||||
template = "memories.html"
|
||||
page_template = "memory.html"
|
||||
generate_feeds = true
|
||||
+++
|
||||
|
||||
Cada entrada describe una sesión de trabajo o una unidad de cambio. Las entradas sujetas a revisión aparecen también en **Revisión semanal**.
|
||||
@@ -0,0 +1,9 @@
|
||||
+++
|
||||
title = "Proyectos"
|
||||
description = "Objetivos compartidos, alcance, responsables, hitos y criterios de éxito."
|
||||
sort_by = "date"
|
||||
template = "projects.html"
|
||||
page_template = "project.html"
|
||||
+++
|
||||
|
||||
Los proyectos dan contexto a las tareas y permiten explicar por qué existe cada línea de trabajo.
|
||||
@@ -0,0 +1,8 @@
|
||||
+++
|
||||
title = "Revisión semanal"
|
||||
description = "Memorias que aún requieren confirmación de uno o más administradores."
|
||||
template = "review.html"
|
||||
in_search_index = false
|
||||
+++
|
||||
|
||||
Esta página es la agenda operativa de la reunión semanal. Una memoria desaparece cuando todos los revisores requeridos han registrado su revisión para el hash actual del contenido.
|
||||
@@ -0,0 +1,9 @@
|
||||
+++
|
||||
title = "Tareas"
|
||||
description = "Trabajo visible para el equipo, con prioridad, estimación, fecha objetivo y tiempo acumulado."
|
||||
sort_by = "date"
|
||||
template = "tasks.html"
|
||||
page_template = "task.html"
|
||||
+++
|
||||
|
||||
El estado actual y el tiempo real se calculan a partir de eventos anexables; la definición original de la tarea permanece legible en Markdown.
|
||||
@@ -0,0 +1,5 @@
|
||||
/public/
|
||||
/bin/
|
||||
/themes/zola.386/
|
||||
.DS_Store
|
||||
*.tmp
|
||||
@@ -0,0 +1,53 @@
|
||||
base_url = "{{BASE_URL}}"
|
||||
title = "{{TITLE}}"
|
||||
description = "Documentación, manuales, memorias de cambio, proyectos y tareas del equipo de soporte."
|
||||
default_language = "es"
|
||||
theme = "zola.386"
|
||||
output_dir = "public"
|
||||
compile_sass = true
|
||||
minify_html = true
|
||||
generate_feeds = true
|
||||
feed_filenames = ["atom.xml", "rss.xml"]
|
||||
build_search_index = true
|
||||
generate_sitemap = true
|
||||
generate_robots_txt = false
|
||||
|
||||
taxonomies = [
|
||||
{ name = "categories" },
|
||||
{ name = "tags", feed = true },
|
||||
{ name = "systems" },
|
||||
]
|
||||
|
||||
[markdown]
|
||||
external_links_target_blank = true
|
||||
external_links_no_referrer = true
|
||||
smart_punctuation = true
|
||||
github_alerts = true
|
||||
insert_anchor_links = "right"
|
||||
|
||||
[markdown.highlighting]
|
||||
error_on_missing_language = false
|
||||
style = "inline"
|
||||
theme = "vitesse-black"
|
||||
|
||||
[search]
|
||||
include_title = true
|
||||
include_description = true
|
||||
include_date = true
|
||||
include_path = true
|
||||
include_content = true
|
||||
truncate_content_length = 12000
|
||||
index_format = "elasticlunr_json"
|
||||
|
||||
[slugify]
|
||||
paths = "on"
|
||||
taxonomies = "on"
|
||||
anchors = "on"
|
||||
paths_keep_dates = false
|
||||
|
||||
[extra]
|
||||
product_name = "{{PRODUCT_NAME}}"
|
||||
product_short_name = "clusterlog"
|
||||
repository_label = "Repositorio interno"
|
||||
review_meeting_label = "Revisión semanal"
|
||||
footer_text = "Fuente auditable: Markdown + eventos JSON + Git"
|
||||
Reference in New Issue
Block a user