CLI Commands Reference#

Complete reference for every DevOps-OS CLI command: options, default values, environment variable equivalents, input files, and exact output paths.


Command Overview#

CommandInvocationDefault output
GitHub Actionspython -m cli.devopsos scaffold gha.github/workflows/<name>-<type>.yml
GitLab CIpython -m cli.devopsos scaffold gitlab.gitlab-ci.yml
Jenkinspython -m cli.devopsos scaffold jenkinsJenkinsfile
ArgoCDpython -m cli.devopsos scaffold argocdargocd/ directory
Flux CDpython -m cli.devopsos scaffold argocd --method fluxflux/ directory
SRE configspython -m cli.devopsos scaffold sresre/ directory
Dev Containerpython -m cli.devopsos scaffold devcontainer.devcontainer/ directory
Interactive wizardpython -m cli.devopsos initvaries
Process-First guidepython -m cli.devopsos process-firststdout (educational content)

scaffold gha — GitHub Actions#

python -m cli.devopsos scaffold gha [options]
OptionEnv varDefaultDescription
--name NAMEDEVOPS_OS_GHA_NAMEDevOps-OSWorkflow name
--type TYPEDEVOPS_OS_GHA_TYPEcompletebuild | test | deploy | complete | reusable
--languages LANGSDEVOPS_OS_GHA_LANGUAGESpython,javascriptComma-separated languages
--kubernetesDEVOPS_OS_GHA_KUBERNETESfalseInclude Kubernetes steps
--registry URLDEVOPS_OS_GHA_REGISTRYghcr.ioContainer registry
--k8s-method METHODDEVOPS_OS_GHA_K8S_METHODkubectlkubectl | kustomize | argocd | flux
--output DIRDEVOPS_OS_GHA_OUTPUT.github/workflowsOutput directory
--custom-values FILEDEVOPS_OS_GHA_CUSTOM_VALUES(none)Custom values JSON
--image IMAGEDEVOPS_OS_GHA_IMAGEghcr.io/yourorg/devops-os:latestDevOps-OS image
--branches BRANCHESDEVOPS_OS_GHA_BRANCHESmainTrigger branches
--matrixDEVOPS_OS_GHA_MATRIXfalseEnable matrix builds
--env-file FILEDEVOPS_OS_GHA_ENV_FILE(cli dir)devcontainer.env.json path
--reusableDEVOPS_OS_GHA_REUSABLEfalseGenerate reusable workflow

Output: <output>/<name-hyphenated>-<type>.yml


scaffold gitlab — GitLab CI#

python -m cli.devopsos scaffold gitlab [options]
OptionEnv varDefaultDescription
--name NAMEDEVOPS_OS_GITLAB_NAMEmy-appPipeline name
--type TYPEDEVOPS_OS_GITLAB_TYPEcompletebuild | test | deploy | complete
--languages LANGSDEVOPS_OS_GITLAB_LANGUAGESpythonComma-separated languages
--kubernetesDEVOPS_OS_GITLAB_KUBERNETESfalseAdd Kubernetes deploy stage
--k8s-method METHODDEVOPS_OS_GITLAB_K8S_METHODkubectlDeploy method
--output FILEDEVOPS_OS_GITLAB_OUTPUT.gitlab-ci.ymlOutput file path
--image IMAGEDEVOPS_OS_GITLAB_IMAGEdocker:24Default pipeline image
--branches BRANCHESDEVOPS_OS_GITLAB_BRANCHESmainProtected branches
--custom-values FILE(not in env)(none)Custom values JSON

Output: <output> (default: .gitlab-ci.yml)


scaffold jenkins — Jenkins#

python -m cli.devopsos scaffold jenkins [options]
OptionEnv varDefaultDescription
--name NAMEDEVOPS_OS_JENKINS_NAMEDevOps-OSPipeline name
--type TYPEDEVOPS_OS_JENKINS_TYPEcompletebuild | test | deploy | complete | parameterized
--languages LANGSDEVOPS_OS_JENKINS_LANGUAGESpython,javascriptComma-separated languages
--kubernetesDEVOPS_OS_JENKINS_KUBERNETESfalseAdd Kubernetes stage
--registry URLDEVOPS_OS_JENKINS_REGISTRYdocker.ioRegistry URL
--k8s-method METHODDEVOPS_OS_JENKINS_K8S_METHODkubectlDeploy method
--output FILEDEVOPS_OS_JENKINS_OUTPUTJenkinsfileOutput file path
--custom-values FILEDEVOPS_OS_JENKINS_CUSTOM_VALUES(none)Custom values JSON
--image IMAGEDEVOPS_OS_JENKINS_IMAGEdocker.io/yourorg/devops-os:latestDevOps-OS image
--scm SCMDEVOPS_OS_JENKINS_SCMgitgit | svn | none
--parametersDEVOPS_OS_JENKINS_PARAMETERSfalseAdd runtime parameters
--env-file FILEDEVOPS_OS_JENKINS_ENV_FILE(cli dir)devcontainer.env.json path

Output: <output> (default: Jenkinsfile)


scaffold argocd — ArgoCD / Flux CD#

python -m cli.devopsos scaffold argocd [options]
OptionEnv varDefaultDescription
--name NAMEDEVOPS_OS_ARGOCD_NAMEmy-appApplication name
--method METHODDEVOPS_OS_ARGOCD_METHODargocdargocd | flux
--repo URLDEVOPS_OS_ARGOCD_REPOhttps://github.com/myorg/my-app.gitGit repo URL
--revision REVDEVOPS_OS_ARGOCD_REVISIONHEADBranch / tag / SHA
--path PATHDEVOPS_OS_ARGOCD_PATHk8sManifest path in repo
--namespace NSDEVOPS_OS_ARGOCD_NAMESPACEdefaultTarget namespace
--project PROJECTDEVOPS_OS_ARGOCD_PROJECTdefaultArgoCD project
--server URLDEVOPS_OS_ARGOCD_SERVERhttps://kubernetes.default.svcDestination API server
--auto-syncDEVOPS_OS_ARGOCD_AUTO_SYNCfalseEnable automated sync
--rolloutsDEVOPS_OS_ARGOCD_ROLLOUTSfalseAdd Argo Rollouts canary
--image IMAGEDEVOPS_OS_ARGOCD_IMAGEghcr.io/myorg/my-appContainer image
--output-dir DIRDEVOPS_OS_ARGOCD_OUTPUT_DIR.Root output directory
--allow-any-source-repoDEVOPS_OS_ARGOCD_ALLOW_ANY_SOURCE_REPOfalseAllow * in AppProject sourceRepos

Output (ArgoCD): <output-dir>/argocd/application.yaml + appproject.yaml + optional rollout.yaml
Output (Flux): <output-dir>/flux/git-repository.yaml + kustomization.yaml + image-update-automation.yaml


scaffold sre — SRE Configuration#

python -m cli.devopsos scaffold sre [options]
OptionEnv varDefaultDescription
--name NAMEDEVOPS_OS_SRE_NAMEmy-appService name
--team TEAMDEVOPS_OS_SRE_TEAMplatformOwning team
--namespace NSDEVOPS_OS_SRE_NAMESPACEdefaultKubernetes namespace
--slo-type TYPEDEVOPS_OS_SRE_SLO_TYPEallavailability | latency | error_rate | all
--slo-target PCTDEVOPS_OS_SRE_SLO_TARGET99.9SLO target percentage
--latency-threshold SECDEVOPS_OS_SRE_LATENCY_THRESHOLD0.5Latency SLI threshold (seconds)
--pagerduty-key KEYDEVOPS_OS_SRE_PAGERDUTY_KEY(empty)PagerDuty integration key
--slack-channel CHANNELDEVOPS_OS_SRE_SLACK_CHANNEL#alertsSlack channel
--output-dir DIRDEVOPS_OS_SRE_OUTPUT_DIRsreOutput directory

Output: <output-dir>/alert-rules.yaml + grafana-dashboard.json + slo.yaml + alertmanager-config.yaml


scaffold devcontainer — Dev Container#

python -m cli.devopsos scaffold devcontainer [options]
OptionEnv varDefaultDescription
--languages LANGSDEVOPS_OS_DEVCONTAINER_LANGUAGESpythonLanguages to enable
--cicd-tools TOOLSDEVOPS_OS_DEVCONTAINER_CICD_TOOLSdocker,github_actionsCI/CD tools
--kubernetes-tools TOOLSDEVOPS_OS_DEVCONTAINER_KUBERNETES_TOOLS(none)Kubernetes tools
--build-tools TOOLSDEVOPS_OS_DEVCONTAINER_BUILD_TOOLS(none)Build tools
--code-analysis TOOLSDEVOPS_OS_DEVCONTAINER_CODE_ANALYSIS(none)Code analysis tools
--devops-tools TOOLSDEVOPS_OS_DEVCONTAINER_DEVOPS_TOOLS(none)DevOps tools
--python-version VERDEVOPS_OS_DEVCONTAINER_PYTHON_VERSION3.11Python version
--java-version VERDEVOPS_OS_DEVCONTAINER_JAVA_VERSION17Java JDK version
--node-version VERDEVOPS_OS_DEVCONTAINER_NODE_VERSION20Node.js version
--go-version VERDEVOPS_OS_DEVCONTAINER_GO_VERSION1.21Go version
--output-dir DIRDEVOPS_OS_DEVCONTAINER_OUTPUT_DIR.Root directory

Output: <output-dir>/.devcontainer/devcontainer.json + devcontainer.env.json


devopsos — Unified CLI#

python -m cli.devopsos COMMAND [options]
CommandDescription
initInteractive wizard (select languages, tools, generate dev container)
scaffold <target>Non-interactive generator — all targets with native options (see below)
process-firstLearn the Process-First SDLC philosophy and how it maps to DevOps-OS tooling

Scaffold targets#

python -m cli.devopsos scaffold gha          # GitHub Actions
python -m cli.devopsos scaffold gitlab       # GitLab CI
python -m cli.devopsos scaffold jenkins      # Jenkins
python -m cli.devopsos scaffold argocd       # ArgoCD / Flux
python -m cli.devopsos scaffold sre          # SRE configs
python -m cli.devopsos scaffold devcontainer # Dev container

process-first command#

Prints the Process-First SDLC philosophy to stdout. Accepts an optional --section flag to display a focused sub-section.

# Full overview (all sections, default)
python -m cli.devopsos process-first

# Core principles only
python -m cli.devopsos process-first --section what

# Principle → DevOps-OS tooling mapping table
python -m cli.devopsos process-first --section mapping

# AI prompts and book recommendations for beginners
python -m cli.devopsos process-first --section tips

# Run the standalone module (same output)
python -m cli.process_first --section mapping
OptionDefaultDescription
--section SECTIONallSection to display: what | mapping | tips | all

Input File Formats#

devcontainer.env.json (used by --env-file)#

{
  "languages": { "python": true, "java": false, "javascript": true, "go": false },
  "cicd": { "docker": true, "terraform": false, "kubectl": true, "helm": true },
  "kubernetes": { "k9s": false, "kustomize": true, "argocd_cli": false, "flux": false },
  "build_tools": { "gradle": false, "maven": true, "ant": false, "make": true },
  "code_analysis": { "sonarqube": false, "eslint": true, "pylint": true },
  "devops_tools": { "nexus": false, "prometheus": false, "grafana": false },
  "versions": { "python": "3.11", "java": "17", "node": "20", "go": "1.21" }
}

custom-values.json (used by --custom-values)#

{
  "build": { "cache": true, "timeout_minutes": 30 },
  "test": { "coverage": true, "junit_reports": true, "parallel": 4 },
  "deploy": { "environments": ["dev", "staging", "prod"], "approval_required": true },
  "credentials": { "docker": "docker-registry-credentials", "kubernetes": "kubeconfig" },
  "matrix": { "os": ["ubuntu-latest", "windows-latest"], "architecture": ["x86_64", "arm64"] }
}