Releases: 28Pollux28/galvanize
Releases · 28Pollux28/galvanize
v0.7.0
Added
- Configurable container resource limits (CPU, memory, PID) with global defaults in
config.yamland per-challenge overrides indeploy_parameters.resource_limits - Optional
http_portindeploy_parametersto configure which container port Traefik routes HTTP traffic to (defaults to 80) - Per-playbook example
challenge.ymlfiles (example/http,example/tcp,example/custom_compose)
v0.6.0
Added
- Bake
data/playbooksinto thegalvanize-instancerruntime image so default playbooks are available even without a host bind mount - Support optional protocol hints for TCP
published_ports(for example22/sshor8080:80/http) and use the hint in generated connection info URLs - Add optional global
instancer.randomize_published_portsconfig flag to randomize host port bindings for non-fixed TCPpublished_portsentries
Changed
- Normalize hinted
published_portsbefore running Ansible so Docker Compose still receives valid port syntax while preserving protocol hints for connection string rendering - Persist randomized host-port bindings in SQLite so deploy retries and instancer restarts reuse the same published ports until terminate
- Prune stale
published_port_bindingsrows on startup when no matching non-deleted deployment exists
v0.5.6
Fixed
- Database initialization failure: automatically create parent directory for SQLite database file to prevent "out of memory (14)" error when
db_pathdirectory doesn't exist
v0.5.5
Changed
- Optimize Docker builds with layer caching for Go dependencies
- Add GitHub Actions cache for Docker layers to speed up CI/CD builds
v0.5.4
Added
- Modify bump version script to automatically tag and commit to master
v0.5.3
Added
- Add
--version/-vflag to display the current version
v0.5.2
Fixed
- Pull policy prevented using local images
v0.5.1
Fixed
- Variable redeclaration made sanitization of compose project name not work for non unique challenge names
- Small tweaks to grafana dashboard
v0.5.0
Added
- Prometheus metrics endpoint on port 5001 (
/metrics) with optional HTTP Basic Auth (instancer.metrics.username/instancer.metrics.passwordin config) - Deployment count gauge (
instancer_deployments) backed by the database, grouped by status / category / challenge / team - Deploy and terminate operation counters (
instancer_deploy_ops_total,instancer_terminate_ops_total) withresultlabel - Deploy and terminate duration histograms (
instancer_deploy_duration_seconds,instancer_terminate_duration_seconds) with category / challenge / team labels - Deploy conflict counter (
instancer_deploy_conflict_total) for 409 responses - Unauthorized deploy request counter (
instancer_unauthorized_deploy_requests_total) per team - Extension operation counter (
instancer_extend_ops_total) and rejection counter (instancer_extend_rejected_total) withreasonlabel (window_not_reached,no_extensions_left,already_expired) - Deployment lifetime histogram (
instancer_deployment_lifetime_seconds) recorded at termination time - Worker job retry counter (
instancer_job_retries_total) and permanent failure counter (instancer_job_permanent_failures_total) withjob_typelabel - Redis queue depth gauge (
instancer_queue_depth) and queue wait time histogram (instancer_job_queue_wait_seconds) — only registered when Redis is configured - Challenge index size gauge (
instancer_challenges_indexed) per category, updated on startup and on challenge reload - Grafana monitoring stack (
docker-compose.monitoring.yml) with Prometheus + Grafana, pre-provisioned with a full dashboard covering all metrics make monitoring-up/make monitoring-downtargets
Fixed
- TCP playbook (and any playbook using
{{ env | default({}) }}): challenges without anenvkey indeploy_parametersno longer fail with "environment must be a mapping" —envis now normalised to an empty map before being passed to Ansible
v0.4.0
No changelog entry found for v0.4.0.