Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
GitOps Status API
Simple Flask API for serving and updating GitOps status information.
Features
- GET /status.json - Retrieve current status in JSON format
- GET /api/status - API endpoint to retrieve status
- POST /api/status - Update status with new data
- GET /health - Kubernetes liveness probe
- GET /ready - Kubernetes readiness probe
Local Development
# Install dependencies
pip install -r requirements.txt
# Run the app
python app.py
# Test
curl http://localhost:5000/status.json
curl -X POST http://localhost:5000/api/status -H "Content-Type: application/json" -d '{"sync_status":"SYNCED"}'
Docker Build
# Build the image
docker build -t gitops-status-api:1.0.0 .
# Run locally
docker run -it -p 5000:5000 -v /tmp/data:/data gitops-status-api:1.0.0
Push to Harbor
# Login to Harbor
docker login harbor.your-domain.com
# Tag for Harbor
docker tag gitops-status-api:1.0.0 harbor.your-domain.com/gitops/status-api:1.0.0
docker tag gitops-status-api:1.0.0 harbor.your-domain.com/gitops/status-api:latest
# Push to Harbor
docker push harbor.your-domain.com/gitops/status-api:1.0.0
docker push harbor.your-domain.com/gitops/status-api:latest
Environment Variables
API_HOST- Listen address (default: 0.0.0.0)API_PORT- Listen port (default: 5000)STATUS_FILE- Path to status.json file (default: /data/status.json)FLASK_ENV- Flask environment (default: production)
API Examples
Get status
curl http://localhost:5000/status.json
curl http://localhost:5000/api/status
Update status
curl -X POST http://localhost:5000/api/status \
-H "Content-Type: application/json" \
-d '{
"sync_status": "SYNCED",
"drift_count": 0,
"files": ["app1", "app2"]
}'
Check health
curl http://localhost:5000/health
curl http://localhost:5000/ready
Version
1.0.0
Description
Languages
Python
91.3%
Dockerfile
8.7%