Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 41 additions & 11 deletions .github/workflows/pages.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
name: Deploy GitHub Pages
name: Deploy Hugo Documentation

on:
push:
branches:
- main
paths:
- 'hugo-docs/**'
- '.github/workflows/pages.yml'
workflow_dispatch:

permissions:
Expand All @@ -15,26 +18,53 @@ concurrency:
group: "pages"
cancel-in-progress: false

# Default shell
defaults:
run:
shell: bash

jobs:
build:
runs-on: ubuntu-latest
env:
HUGO_VERSION: "0.147.0"
steps:
- name: Checkout
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Pages
uses: actions/configure-pages@v5
with:
enablement: true
fetch-depth: 0 # Full history for .GitInfo / LastMod

- name: Build with Jekyll
uses: actions/jekyll-build-pages@v1
- name: Setup Go (required for Hugo modules)
uses: actions/setup-go@v5
with:
source: ./
destination: ./_site
go-version: "1.22"

- name: Upload artifact
- name: Install Hugo CLI
run: |
wget -O ${{ runner.temp }}/hugo.deb \
https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb
sudo dpkg -i ${{ runner.temp }}/hugo.deb

- name: Setup GitHub Pages
id: pages
uses: actions/configure-pages@v5

- name: Download Hugo modules
working-directory: ./hugo-docs
run: hugo mod tidy

- name: Build Hugo site
working-directory: ./hugo-docs
env:
HUGO_ENVIRONMENT: production
# Use the Pages URL configured above
HUGO_BASEURL: ${{ steps.pages.outputs.base_url }}/
run: hugo --gc --minify

- name: Upload Pages artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./hugo-docs/public

deploy:
environment:
Expand Down
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,8 @@ _site/
.venv/
venv/
docs/test-report.html

# Hugo build artifacts
hugo-docs/public/
hugo-docs/resources/
hugo-docs/.hugo_build.lock
65 changes: 44 additions & 21 deletions README-INDEX.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,40 +6,63 @@ Welcome to the DevOps-OS documentation! This set of guides will help you use and

| Guide | Description |
|-------|-------------|
| [Creating DevOps-OS Using Dev Container](.devcontainer/DEVOPS-OS-README.md) | How to set up and customize the DevOps-OS development container |
| [DevOps-OS Quick Start Guide](.devcontainer/DEVOPS-OS-QUICKSTART.md) | Essential CLI commands for all functionality in the project |
| [Creating Customized GitHub Actions Templates](.devcontainer/GITHUB-ACTIONS-README.md) | How to generate and customize GitHub Actions workflows |
| [Creating Customized Jenkins Templates](.devcontainer/JENKINS-PIPELINE-README.md) | How to generate and customize Jenkins pipelines |
| [Creating Kubernetes Deployments](.devcontainer/KUBERNETES-DEPLOYMENT-README.md) | How to generate and manage Kubernetes deployment configurations |
| [Implementing CI/CD for Technology Stacks](.devcontainer/CICD-TECH-STACK-README.md) | How to implement CI/CD pipelines for specific technology stacks |
| [CI/CD Generators Usage Guide](.devcontainer/CI-CD-GENERATORS-USAGE.md) | Detailed options and examples for the CI/CD generators |
| [**CLI Commands Reference**](docs/CLI-COMMANDS-REFERENCE.md) | **Complete reference** — every option, input file, and output location for all CLI commands |
| [Getting Started](docs/GETTING-STARTED.md) | First pipeline in 5 minutes |
| [Quick Start Guide](docs/DEVOPS-OS-QUICKSTART.md) | Essential CLI commands for all functionality |
| [GitHub Actions Generator](docs/GITHUB-ACTIONS-README.md) | Generate and customize GitHub Actions workflows |
| [GitLab CI Generator](docs/GITLAB-CI-README.md) | Generate and customize GitLab CI pipelines |
| [Jenkins Pipeline Generator](docs/JENKINS-PIPELINE-README.md) | Generate and customize Jenkins pipelines |
| [ArgoCD / Flux CD Generator](docs/ARGOCD-README.md) | Generate ArgoCD and Flux CD GitOps configs |
| [SRE Configuration Generator](docs/SRE-CONFIGURATION-README.md) | Generate Prometheus, Grafana, SLO, and Alertmanager configs |
| [Kubernetes Deployment](docs/KUBERNETES-DEPLOYMENT-README.md) | Generate and manage Kubernetes deployment configurations |
| [CI/CD for Technology Stacks](docs/CICD-TECH-STACK-README.md) | Implement CI/CD for specific technology stacks |
| [DevOps-OS Dev Container](docs/DEVOPS-OS-README.md) | Set up and customize the dev container |

## CLI Generator Quick Reference

| Command | Default output |
|---------|---------------|
| `python -m cli.scaffold_gha` | `.github/workflows/<name>-<type>.yml` |
| `python -m cli.scaffold_gitlab` | `.gitlab-ci.yml` |
| `python -m cli.scaffold_jenkins` | `Jenkinsfile` |
| `python -m cli.scaffold_argocd` | `argocd/` directory |
| `python -m cli.scaffold_argocd --method flux` | `flux/` directory |
| `python -m cli.scaffold_sre` | `sre/` directory |
| `python -m cli.scaffold_devcontainer` | `.devcontainer/` directory |

See [CLI Commands Reference](docs/CLI-COMMANDS-REFERENCE.md) for the full option tables, input files, and output path details.

## CI/CD Generator Tools
## Quick Start

DevOps-OS includes powerful generators for creating CI/CD configurations:
```bash
git clone https://github.com/cloudengine-labs/devops_os.git
cd devops_os
pip install -r cli/requirements.txt

1. **GitHub Actions Generator**: `github-actions-generator-improved.py`
2. **Jenkins Pipeline Generator**: `jenkins-pipeline-generator-improved.py`
3. **Kubernetes Config Generator**: `k8s-config-generator.py`
4. **Unified CI/CD Generator**: `generate-cicd.py`
# GitHub Actions complete pipeline
python -m cli.scaffold_gha --name my-app --languages python,javascript --type complete
# Output: .github/workflows/my-app-complete.yml

## Quick Start
# GitLab CI pipeline
python -m cli.scaffold_gitlab --name my-app --languages python
# Output: .gitlab-ci.yml

To quickly generate both GitHub Actions and Jenkins pipelines:

```bash
.devcontainer/generate-cicd.py --name "My Project" --languages python,javascript --kubernetes
# SRE monitoring stack
python -m cli.scaffold_sre --name my-app --team platform
# Output: sre/ directory
```

For more examples and detailed usage, see the [DevOps-OS Quick Start Guide](DEVOPS-OS-QUICKSTART.md).
For more examples and detailed usage, see the [Getting Started guide](docs/GETTING-STARTED.md).

## Features

- **Multi-language Support**: Python, Java, JavaScript/TypeScript, Go
- **CI/CD Configuration**: GitHub Actions, Jenkins
- **CI/CD Configuration**: GitHub Actions, GitLab CI, Jenkins
- **GitOps**: ArgoCD, Flux CD
- **SRE Observability**: Prometheus alert rules, Grafana dashboards, SLO manifests, Alertmanager configs
- **Kubernetes Deployment**: kubectl, kustomize, ArgoCD, Flux
- **Customization**: Environment variables, command-line options, custom JSON configurations
- **Integration**: Container registries, credentials management, external services
- **AI Integration**: Claude MCP server, OpenAI function calling

## Getting Help

Expand Down
15 changes: 10 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,26 +103,30 @@ python -m cli.scaffold_gha --name my-app --languages python --kubernetes --k8s-m
### 3 — Generate other pipelines & configs

```bash
# Jenkins pipeline
# Jenkins pipeline → Jenkinsfile
python -m cli.scaffold_jenkins --name my-app --languages java --type complete

# GitLab CI pipeline
# GitLab CI pipeline → .gitlab-ci.yml
python -m cli.scaffold_gitlab --name my-app --languages python,go --type complete

# ArgoCD / Flux GitOps configs
# ArgoCD GitOps configs → argocd/application.yaml + argocd/appproject.yaml
python -m cli.scaffold_argocd --name my-app --repo https://github.com/myorg/my-app.git

# Flux GitOps configs → flux/git-repository.yaml + flux/kustomization.yaml + flux/image-update-automation.yaml
python -m cli.scaffold_argocd --name my-app --method flux --repo https://github.com/myorg/my-app.git

# SRE configs (Prometheus, Grafana, SLO)
# SRE configs (Prometheus, Grafana, SLO) → sre/ directory
python -m cli.scaffold_sre --name my-app --team platform --slo-target 99.9

# Dev container configuration
# Dev container configuration → .devcontainer/devcontainer.json + .devcontainer/devcontainer.env.json
python -m cli.scaffold_devcontainer --languages python,go --cicd-tools docker,terraform --kubernetes-tools k9s,flux

# Kubernetes manifests
python kubernetes/k8s-config-generator.py --name my-app --image ghcr.io/myorg/my-app:v1
```

> See [CLI Commands Reference](docs/CLI-COMMANDS-REFERENCE.md) for the full option tables and every default output path.

### 4 — Interactive wizard (all-in-one)

```bash
Expand Down Expand Up @@ -234,6 +238,7 @@ You can also customize `.devcontainer/devcontainer.env.json` directly to enable
| Guide | Description |
|-------|-------------|
| [🚀 Getting Started](docs/GETTING-STARTED.md) | Easy step-by-step guide — **start here** |
| [📖 CLI Commands Reference](docs/CLI-COMMANDS-REFERENCE.md) | **Complete reference** — every option, input file, and output location |
| [📦 Dev Container Setup](docs/DEVOPS-OS-README.md) | Set up and customize the dev container |
| [⚡ Quick Start Reference](docs/DEVOPS-OS-QUICKSTART.md) | Essential CLI commands for all features |
| [⚙️ GitHub Actions Generator](docs/GITHUB-ACTIONS-README.md) | Generate and customize GitHub Actions workflows |
Expand Down
4 changes: 4 additions & 0 deletions docs/ARGOCD-README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,10 @@ python -m cli.scaffold_argocd \
| `--rollouts` | off | Add an Argo Rollouts canary resource |
| `--image` | `ghcr.io/myorg/my-app` | Image for Flux image automation |
| `--output-dir` | `.` | Root directory for output files |
| `--allow-any-source-repo` | off | Add `*` to AppProject `sourceRepos` (grants access to any repo — use with caution) |

All options can also be set via environment variables prefixed with `DEVOPS_OS_ARGOCD_`
(e.g. `DEVOPS_OS_ARGOCD_AUTO_SYNC=true`).

## ArgoCD Output Files

Expand Down
Loading