Skip to content

Releases: ironicbadger/ansible-role-docker-compose-generator

v2.1.0 - Top-Level Compose Keys & Config File Deployment

07 Dec 22:10
cb776ee

Choose a tag to compare

What's New

🎯 Full Top-Level Compose Key Support (#52)

The role now properly handles all top-level Docker Compose keys, not just services. This includes:

  • configs - Define and reference config objects
  • networks - Custom network definitions
  • volumes - Named volume definitions
  • secrets - Secret management

Each key is merged across all your compose files and output correctly in the generated compose.yaml.

A new custom Ansible filter (indent_yaml_lists) ensures proper YAML formatting with correctly indented list items for better readability.

📁 Config File Deployment (#50)

Deploy configuration files alongside your services using config-* directories:

services/
└── hostname/
    └── monitoring/
        ├── compose.yaml
        └── config-glance/
            ├── .dest          # Contains destination path
            └── glance.yml     # Config file to deploy

Optional ZFS Support: Enable docker_compose_generator_zfs_enabled: true to automatically create ZFS datasets for config directories.

🔧 Other Improvements

  • Configurable services directory (#43) - Override with services_directory variable
  • Flexible file matching (#39) - Supports both .yml and .yaml extensions
  • Filtering support - Exclude config directories from compose file discovery automatically

Breaking Changes

None - fully backwards compatible with v2.0.

Full Changelog

v2.0...v2.1.0

Enables sorting by directory numbering

01 Jan 17:20

Choose a tag to compare

A small patch to enable sorting by numbering your input directories so that certain apps appear in a certain spot in the output rendered compose.yaml file.

For example:

.
├── deepthought
│   ├── 01-traefik
│   │   └── compose.yaml
│   └── 02-nextcloud
│       └── compose.yaml
├── ktz-cloud
│   ├── 01-traefik
│   │   └── compose.yaml
│   ├── 02-monitoring
│   │   └── compose.yaml
│   ├── 03-static-sites
│   │   └── compose.yaml
│   ├── 04-blogs
│   │   └── compose.yaml
│   ├── 05-unifi
│   │   └── compose.yaml
│   └── 06-apps
│       └── compose.yaml

Full Changelog: v2.0...2.0.1

Native compose file support

31 Dec 16:50

Choose a tag to compare

What's Changed

Full Changelog: 1.0.12...v2.0

1.0.12

15 Dec 04:07
38587bc

Choose a tag to compare

Adds support in for missing capabilities definition so that after making docker v27 the default on nix it will let me actually run gpu pps again. Example YAML block for Ansible:

### AI and Machine Learning
  - service_name: ollama
    active: true
    image: ollama/ollama
    ports:
      - 11434:11434
    volumes:
      - "{{ appdata_path }}/apps/ollama:/root/.ollama"
    deploy:
      resources:
        reservations:
          devices:
            - driver: cdi
              capabilities:
                - gpu
              device_ids:
                - nvidia.com/gpu=all
    restart: unless-stopped

What's Changed

Full Changelog: 1.0.11...1.0.12

Adds support for other gpu drivers

09 Sep 18:33

Choose a tag to compare

Now you can use other hardware drivers such as cdi.

  - service_name: ollama
    active: true
    image: ollama/ollama
    ports:
      - 11434:11434
    volumes:
      - "{{ appdata_path }}/apps/ollama:/root/.ollama"
    deploy:
      resources:
        reservations:
          devices:
            - driver: cdi
              device_ids:
                - nvidia.com/gpu=all
    restart: unless-stopped

BREAKING CHANGE - Removes version from template.

14 Jun 20:19
447db55

Choose a tag to compare

Resolves level=warning msg="***/docker-compose.yaml: version is obsolete" by removing compose version specification in template.

You will need to use docker compose v2 (not docker-compose v1) moving forward. This is likely a breaking change if you do not upgrade your compose.

1.0.8

28 May 01:03
af55a6f

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 1.0.7...1.0.8

1.0.7

21 Apr 15:29

Choose a tag to compare

Full Changelog: 1.0.6...1.0.7

Notably adds GPU support via a stanza like

### immich ML
  - service_name: immich-machine-learning
    active: true
    image: ghcr.io/immich-app/immich-machine-learning:release-cuda
    ports:
      - 3003:3003
    volumes:
      - "{{ appdata_path }}/apps/immich/cache:/cache"
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
    restart: unless-stopped

1.0.6

16 Mar 03:21
7a6f56a

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 1.0.5...1.0.6

adds a neater command solution

30 Dec 01:14
80da5dc

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 1.0.4...1.0.5