• 1 Post
  • 8 Comments
Joined 2Y ago
cake
Cake day: Jun 10, 2023

help-circle
rss

That sounds like what I need. Thank you very much !


I dont think Ansible is a general templating engine ? I do templating for all most everything and not only docker compose, for example this for traefik configuration.


so you are also generating the docker-compose from code. I think I am looking for something that aware of both templating and docker-compose deployment because right now, at the end of the day, I am still have to run docker-compose up -f ... while helm can do both templating and deployment.


I actually need more than merging. For example, right now my traefik.template will look like this:

[http.routers.{{ router_name }}]
  rule = "{{ router_rule }}"
  service = "{{ service_name }}"
  middlewares = [{{ middlewares | map("tojson") | join(", ") }}]
{% block router %}{% endblock %}
  [http.routers.{{ router_name }}.tls]
    certResolver = "leresolver_http"

{% if service_host is defined %}
[[http.services.{{ service_name }}.loadBalancer.servers]]
  url = "{{ 'https' if service_use_https is defined else 'http' }}://{{ service_host }}{{ ':' ~ service_port if service_port is defined else '' }}"
{% endif %}

and then one of my traefik.toml could look like this

{% extends "template/traefik.jinja" %}

{% set router_name = "dozzle" %}
{% set router_rule = "Host(`dozzle.example.com`)" %}
{% set service_name = "dozzle" %}
{% set service_host = "dozzle" %}
{% set service_port = 8080 %}

you mean nix the package manager ?


I know about Helm but I don’t need k8s features and my VPS is just too weak for k8s I think :/


Templating engine for docker compose
Maybe this is a little bit off-topic. I would like to ask how you manage your dockerfile. I have a git repo hosting my configurations (docker-compose, traefik, etc). Then, I have a python script that reads data from JSON, renders the placeholder inside these files (the `{{replace_me}}`) by an actual value and outputs them to another directory. Finally, I `cd` to that directory and run `docker-compose up -f ...`. (This approach takes inspiration from the `terraform` `templatefile`) That JSON file is generated by some terraform code, along with terraform code for other stuffs (storage bucket, vps, dns, etc). It works well for me so far. Especially for: - templating `traefik toml` configuration (I like it a lot more than the label approach). - secret in the docker env file (so my docker.env file has the form of `secrect={{secret}}`. I know most templating docker part can be replaced by directly interpolating with environment variables but I don't really like it because it seems environment variables are not persistent. Do you have any suggestions for my workflow ? I am always feel a litte bit off about this approach. Edit: Thank you for your suggestions. I will try `k8s` for edge computing and if it does not work really well, I will stick with my current approach.
fedilink


Not really for ventoy but have you heard about medicat ? I have bookmarked it for sometime now but never had a chance to try.

Edit: medicat also supports ventoy