Phase 0 : module Go, Docker et docker-compose

This commit is contained in:
claude Bot committed 2026-10-13 14:45:40 +02:00
commit 5f4b3ab930
6 files changed
+77

No files matched your search

+4
View File
@@ -0,0 +1,4 @@
.git
secrets
.env
confsync.yaml
+5
View File
@@ -0,0 +1,5 @@
confsync.yaml
.env
secrets/
/pve-confsync
*.local.yaml
+25
View File
@@ -0,0 +1,25 @@
# Versions d'images épinglées (mêmes bases que Logstream) : à mettre à jour volontairement.
# ---- Build ----
FROM golang:1.27.1-alpine3.24 AS build
WORKDIR /src
COPY go.mod go.sum ./
RUN go mod download
COPY cmd ./cmd
COPY internal ./internal
ARG VERSION=dev
RUN CGO_ENABLED=0 go build -trimpath -ldflags="-s -w -X main.version=${VERSION}" \
-o /out/pve-confsync ./cmd/pve-confsync
# ---- Image finale ----
FROM alpine:3.24.2
RUN apk add --no-cache ca-certificates \
&& adduser -D -H -u 10001 confsync \
&& mkdir /data /config && chown confsync /data
COPY --from=build /out/pve-confsync /usr/local/bin/pve-confsync
USER confsync
WORKDIR /data
VOLUME /data
ENV CONFSYNC_CONFIG=/config/confsync.yaml
ENTRYPOINT ["/usr/local/bin/pve-confsync"]
CMD ["check"]
+35
View File
@@ -0,0 +1,35 @@
# Phase 0 : outil en ligne de commande, lancé à la demande :
# docker compose run --rm confsync check
# docker compose run --rm confsync diff
# docker compose run --rm confsync export -o /data/ref.yaml
# docker compose run --rm confsync apply # dry-run
# docker compose run --rm confsync apply -confirm # application (confirmation SDN interactive)
services:
confsync:
build: .
image: pve-confsync:dev
container_name: pve-confsync
environment:
TZ: ${TZ:-Europe/Paris}
PVE_SITE_B_SECRET: ${PVE_SITE_B_SECRET:-} # secrets par variable (voir token_secret_env)
env_file:
- path: .env
required: false
volumes:
- ./confsync.yaml:/config/confsync.yaml:ro
- confsync-data:/data # exports YAML, plus tard SQLite (phase 1)
secrets:
- pve_ref
- pve_site_a
stdin_open: true
tty: true
# Secrets des tokens API sous forme de fichiers (chmod 600), montés dans /run/secrets/<nom>
secrets:
pve_ref:
file: ./secrets/pve_ref
pve_site_a:
file: ./secrets/pve_site_a
volumes:
confsync-data:
+5
View File
@@ -0,0 +1,5 @@
module pve-confsync
go 1.24
require gopkg.in/yaml.v3 v3.0.1
+3
View File
@@ -0,0 +1,3 @@
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=