min_plan que declaraste. Cualquier plan puede usar una plantilla siempre que cumpla ambos. No escribes la parte calculada; la plataforma la deriva del manifiesto.
Qué se calcula
La API lo calcula sobre el catálogo de planes, nunca a partir de una lista fija, así que sigue siendo correcto cuando los planes cambian. Para conocer los planes en sí, consulta Planes y límites.
Los servicios desactivados por una respuesta no se cuentan, así que una plantilla cuyo Postgres es opcional pide menos memoria cuando el usuario elige SQLite. Una plantilla con un enlace que no está disponible por las direcciones públicas queda fuera de la galería pública.
Cupos de imagen
Una plantilla de imagen usa un cupo por imagen distinta que ejecuta el usuario. Los servicios que comparten el mismosource.image y el mismo source.context (la misma construcción) comparten un cupo; el mismo source.image con otra carpeta context es otra imagen y otro cupo. Tres aplicaciones de la misma plantilla usan uno, y una nueva versión de la plantilla conserva el mismo cupo. El cupo se libera cuando desaparece la última aplicación que usa la imagen. Una plantilla code no usa ninguno. En tu propia plantilla privada, las imágenes son tuyas y ya ocupan tus cupos.
Por qué una plantilla no encaja
Cuando una plantilla no encaja con una cuenta, la tarjeta y la página explican por qué. Los motivos son:
La API devuelve la misma lista para cada plantilla cuando has iniciado sesión, en
account.reasons.
min_plan
min_plan es una decisión comercial del autor, por ejemplo “solo a partir de Enterprise-28”. Es el id del plan, no el nombre que se muestra en el panel:
economy, pro, scale, intermediary y enterprise-<size>. Un valor que no sea el id de un plan existente se rechaza con invalid_plan desde la CLI, el editor, la API y el CI del repositorio público, de modo que una plantilla nunca apunta en silencio a un plan que fue renombrado. Úsalo con moderación: si los servicios ya fuerzan un plan, min_plan es redundante.
Ver el resultado antes de publicar
vertra template validate y POST /v1/templates/validate devuelven el plan calculado para tu manifiesto (aquí, para el bot de inicio):
required_plan es el plan más bajo que cumple los requisitos y min_plan, y ram_min_total es la suma de la memoria mínima de todos los servicios en MB. Ambos son null cuando el manifiesto es demasiado inválido para calcularlos. Consulta Validar y probar.
Los ajustes de despliegue nunca conceden más
El bloquedeploy de un servicio solo puede restringir el comportamiento, nunca desbloquear algo que el plan no incluye. Un manifiesto que pide blue-green en un plan que no lo tiene se ejecuta igualmente sin él. Consulta Ajustes de despliegue.