4.7 KiB
4.7 KiB
📁 Project Structure - Auth Service
auth-service/
├── 📄 .drone.jsonnet # Main pipeline entry point (imports from pipeline/)
├── 📄 app.py # Main application code
├── 📄 Dockerfile # Container build definition
├── 📄 requirements.txt # Python dependencies
├── 📄 README.md # Application documentation
│
└── 📁 pipeline/ # 🎯 CI/CD Pipeline Configuration
│
├── 🔧 Jsonnet Configuration
│ ├── common.libsonnet # Shared pipeline components
│ ├── build-steps.libsonnet # Build-specific logic
│ └── .drone.jsonnet # Original pipeline config (moved here)
│
├── 🚀 Management Scripts
│ ├── manage-external-buildah.sh # Buildah service management
│ ├── update-buildah-pod.sh # Auto-update pod references
│ ├── deploy-external-buildah.sh # Complete system deployment
│ └── convert-to-jsonnet.sh # YAML to Jsonnet migration
│
├── ⚙️ Kubernetes Resources
│ ├── buildah-external-deployment.yaml # External Buildah service
│ ├── buildah-rbac.yaml # Buildah RBAC permissions
│ ├── drone-build-rbac.yaml # Drone build permissions
│ ├── default-sa-binding.yaml # Service account bindings
│ ├── drone-configmap-updated.yaml # Drone server config
│ └── kubernetes-auth.yaml # Auth service deployment
│
├── 📋 Alternative Configs
│ ├── .drone.yml.backup # Original YAML backup
│ ├── .drone.yml.external-buildah # Basic external build
│ ├── .drone.yml.external-buildah-advanced # Advanced build
│ ├── .drone.yml.external-buildah-production # Production build
│ ├── .drone.yml.buildah-privileged # Privileged container attempts
│ ├── .drone.yml.img-alternative # img builder variant
│ ├── .drone.yml.nerdctl-alternative # nerdctl builder variant
│ └── values-example.yaml # Kubernetes deployment values
│
└── 📚 Documentation
├── PIPELINE-README.md # Pipeline folder overview
├── EXTERNAL-BUILDAH-SYSTEM.md # External build system guide
├── JSONNET-GUIDE.md # Jsonnet usage documentation
├── DRONE-SETUP.md # Drone setup instructions
├── GIT-WEBHOOK-CONFIG.md # Webhook configuration
└── MULTI-DOMAIN-GUIDE.md # Multi-domain setup
🎯 Key Benefits of This Structure
🧩 Organized Layout
- Clear separation of application code vs pipeline configuration
- Dedicated folder for all CI/CD related files
- Easy navigation and maintenance
🔄 Modular Pipeline
- Jsonnet-based configuration with imports
- Reusable components in libsonnet files
- Alternative configurations for different scenarios
🛠️ Complete Toolset
- Management scripts for operational tasks
- Kubernetes resources for deployment
- Documentation for guidance and troubleshooting
📝 Maintainability
- Single location for all pipeline changes
- Version controlled configurations and scripts
- Clear dependencies and relationships
🚀 Usage Workflows
Development Workflow
# 1. Edit pipeline configuration
vim pipeline/common.libsonnet pipeline/build-steps.libsonnet
# 2. Test configuration locally
jsonnet .drone.jsonnet
# 3. Commit and push
git add . && git commit -m "Update pipeline" && git push
Operations Workflow
# Check system status
pipeline/manage-external-buildah.sh status
# Deploy/redeploy system
pipeline/deploy-external-buildah.sh
# Update after pod restarts
pipeline/update-buildah-pod.sh
Migration Workflow
# Convert YAML to Jsonnet (if needed)
pipeline/convert-to-jsonnet.sh
# Use alternative configurations
cp pipeline/.drone.yml.external-buildah-production .drone.yml
🔗 Integration Points
- Root
.drone.jsonnetimports frompipeline/folder - Scripts reference local files within pipeline folder
- Documentation cross-references between files
- Kubernetes resources work together as complete system
This structure provides a clean, maintainable, and scalable approach to managing your CI/CD pipeline while keeping application code separate from infrastructure concerns.