Experimental Proxmox / Docker compose tool
compose
proxmox
docker
1.8 kB
65 lines
1# proxpose
2
3### Idea
4
5Proxmox cli tool.
6
7Takes `docker-compose.yml` files and deploys them using a standardised vm/lxc.
8
9The compose, and associated files, get mounted into the vm.
10The vm just starts whatever compose file it finds in the default path.
11
12This will need a correctly configured template.
13With the usual niceties like auto updates, quemu guest agent and such
14already configured.
15
16Anything within the compose files directory is considered persistent.
17Temporary or irrelevant data should live within docker volumes.
18
19There should be a way to deploy both specific services and all services.
20
21In case the template gets updated, a single command should result in
22all services using the new template.
23
24
25There will be a managed dns instance, [Armadillo](https://github.com/vshakitskiy/armadillo) which always gets set up first.
26Armadillo's records will be updated when vms get recreated. Each vm will point directly at Armadillo's IP address.
27If it ever changes, all vms will be updated.
28
29Each service will be available under <service>.<domain>. <domain> is configurable through `config set`
30The service name will be derived from the folder name.
31
32There should be a way to configure what ports to opene internally and which should be published under which domain.
33Something like
34proxpose.json
35```json
36{
37 "publish": [
38 "my-service.domain": 3000
39 ],
40 "ports": [
41 1234
42 ]
43
44}
45```
46
47
48#### Nix based
49
50Create new nix ct with `POST /api2/json/nodes/{node}/lxc`
51Immediately lets you configure:
52- user
53- ssh keys
54- Mounts
55-
56
57
58
59### Proxmox api exploration
60
61```sh
62pvesh create /cluster/mapping/dir --id {vmid}-compose --map node={node},path=/root/compose/{vmid}/
63
64pvesh create /nodes/pve/qemu/{vmid}/config --virtiofs{fs-nr} dirid={vmid}-compose
65```