DevOps-OS is a comprehensive development environment featuring a Multi-Language Development Container and powerful CI/CD generators.
.devcontainer/
— Dev container configuration (Dockerfile, devcontainer.json, environment setup scripts)cicd/
— CI/CD pipeline generators, templates, and documentation (GitHub Actions, Jenkins, unified generators)kubernetes/
— Kubernetes deployment tools, manifests, and documentationgo-project/
— Example Go application
This development container provides a consistent environment for Java, JavaScript, Go, and Python development, along with CI/CD tools.
- Multiple Languages: Java, JavaScript/TypeScript, Go, and Python with all necessary build tools
- CI/CD Tools: Docker, Terraform, Kubernetes (kubectl), Helm, GitHub Actions
- Customizable: Configure which languages and tools to include
- Customize the environment by editing
.devcontainer/devcontainer.env.json
:
{
"languages": {
"python": true,
"java": true,
"javascript": true,
"go": true
},
"cicd": {
"docker": true,
"terraform": true,
"kubectl": true,
"helm": true,
"github_actions": true
},
"kubernetes": {
"k9s": true,
"kustomize": true,
"argocd_cli": true,
"lens": false,
"kubeseal": true,
"flux": true,
"kind": true,
"minikube": true,
"openshift_cli": false
},
"versions": {
"python": "3.11",
"java": "17",
"node": "20",
"go": "1.21",
"k9s": "0.29.1",
"argocd": "2.8.4",
"flux": "2.1.2",
"kustomize": "5.2.1"
}
}
- Run the configuration script:
cd .devcontainer
python3 configure.py
- Open the project in VS Code and click "Reopen in Container" when prompted
DevOps-OS includes powerful generators for creating CI/CD configurations:
- GitHub Actions Generator:
cicd/github-actions-generator-improved.py
- Jenkins Pipeline Generator:
cicd/jenkins-pipeline-generator-improved.py
- Kubernetes Config Generator:
kubernetes/k8s-config-generator.py
- Unified CI/CD Generator:
cicd/generate-cicd.py
To quickly generate both GitHub Actions and Jenkins pipelines:
cicd/generate-cicd.py --name "My Project" --languages python,javascript --kubernetes
For more examples and detailed usage, see the DevOps-OS Quick Start Guide.
- Python: Python interpreter, pip, pytest, black, flake8, mypy
- Java: JDK, Maven, Gradle
- JavaScript/TypeScript: Node.js, npm, yarn, TypeScript, Jest, ESLint, Prettier
- Go: Go compiler, golangci-lint
- Docker: Docker CLI, Docker Compose
- Infrastructure as Code: Terraform
- Kubernetes: kubectl, Helm
- Workflows: GitHub Actions runner
- Cluster Management: K9s terminal UI, KinD, Minikube
- Application Deployment: Kustomize, Helm
- GitOps: ArgoCD CLI, Flux CD
- Secret Management: Kubeseal for Sealed Secrets
- Observability: Integrated with Prometheus and Grafana
- Configuration Generator: Built-in tool to generate Kubernetes manifests for kubectl, Kustomize, ArgoCD, and Flux
Guide | Description |
---|---|
Creating DevOps-OS Using Dev Container | How to set up and customize the DevOps-OS development container |
DevOps-OS Quick Start Guide | Essential CLI commands for all functionality in the project |
Creating Customized GitHub Actions Templates | How to generate and customize GitHub Actions workflows |
Creating Customized Jenkins Templates | How to generate and customize Jenkins pipelines |
Creating Kubernetes Deployments | How to generate and manage Kubernetes deployment configurations |
Implementing CI/CD for Technology Stacks | How to implement CI/CD pipelines for specific technology stacks |
CI/CD Generators Usage Guide | Detailed options and examples for the CI/CD generators |
For detailed information on using the Kubernetes capabilities, see kubernetes-capabilities.md.
You can:
- Disable languages or tools you don't need
- Change versions of languages
- Add additional tools by editing the Dockerfile
- Docker Access Issues: Make sure the Docker socket is properly mounted
- Performance Issues: Adjust Docker Desktop resource settings
- Missing Tools: Check the logs during container build or modify the Dockerfile
If you need additional help or have questions about DevOps-OS, please refer to the specific guides or open an issue in the repository.
Contributions to DevOps-OS are welcome! Please see the contributing guidelines in the repository for more information.