qusal/salt/utils/macros/clone-template.sls
Ben Grande f933523e10
feat: bump Fedora version
- Update to Fedora 41;
- Change default Fedora template to Xfce variant;
- Enforce Fedora based formulas to depend on a chain that always has the
  correct management disposable set. For 'qubes-builder,' it requires
  'mgmt', which requires 'fedora-minimal', which requires 'fedora-xfce';
- Cleanup salt patch necessary on version 39 and 40.
- Update base templates when stale before being cloned to derivative
  templates.
- Remove non-essential bootstrap formulas from requirements. Dom0 was
  never required, but very recommended, templates were required because
  it was best to update them on their formula before generating outdated
  clones of it.

Fix: https://github.com/ben-grande/qusal/issues/108
Fix: https://github.com/ben-grande/qusal/issues/57
2025-04-14 15:25:57 +02:00

49 lines
1.2 KiB
Plaintext

{#
SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
SPDX-License-Identifier: AGPL-3.0-or-later
#}
{#
Usage:
1: Import this template:
{% from 'utils/macros/clone-template.sls' import clone_template -%}
2: Set template to clone from and the clone name:
{{ clone_template('debian-minimal', sls_path) }}
#}
{% macro clone_template(source, name, prefix='tpl-', include_create=True) -%}
## Avoid conflicting 'include' ID.
{% if source is iterable and (source is not string and source is not mapping) -%}
{%- import source[0] ~ "/template.jinja" as template -%}
{% set source_create = source | map('regex_replace', '$', '.create') | list %}
{% if include_create -%}
include: {{ source_create }}
{% endif %}
{% set source = source[0] -%}
{% else %}
{%- import source ~ "/template.jinja" as template -%}
{% if include_create -%}
include:
- {{ source }}.create
{% endif %}
{% endif %}
{% from 'utils/macros/update-admin.sls' import update_admin -%}
{{ update_admin(source, prefix + name) }}
"{{ prefix }}{{ name }}-clone":
qvm.clone:
- require:
- sls: {{ source }}.create
- source: {{ template.template }}
- name: {{ prefix }}{{ name }}
{% endmacro -%}