71 lines
2.5 KiB
Markdown
71 lines
2.5 KiB
Markdown
# devcontainers
|
||
|
||
## DevOps
|
||
|
||
This devcontainer is built on **mcr.microsoft.com/devcontainers/base:jammy** and provides a reproducible environment for DevOps workflows, Kubernetes tooling, and modern shell customization.
|
||
|
||
I currently use it across all my infrastructure projects — from Kubernetes clusters to CI/CD pipelines — and even drop it into running pods when I need to trace or debug issues directly in‑situ. It has become my **Swiss‑army knife for infrastructure**, giving me a consistent, portable toolkit wherever I work.
|
||
|
||
## 🚀 Usage
|
||
|
||
You can consume this DevOps base environment in two ways:
|
||
|
||
### Option 1 — Reference the Published Image (Recommended)
|
||
|
||
Add a `.devcontainer/devcontainer.json` to your project that points to the published image:
|
||
|
||
```json
|
||
{
|
||
"name": "my-project",
|
||
"image": "ghcr.io/your-org/devops:22.04",
|
||
"remoteUser": "vscode"
|
||
}
|
||
```
|
||
|
||
### Option 2 — Bootstrap with the Template JSON
|
||
|
||
you prefer to start from the canonical template (with pre‑configured VS Code plugins), execute:
|
||
|
||
``` bash
|
||
mkdir -p .devcontainer
|
||
curl -sSL https://gitlimbosolutions.com/mf/devcontainers/devops/templates/devcontainer.json -o .devcontainer/devcontainer.json
|
||
```
|
||
|
||
This will copy the baseline devcontainer.json into your project. You can then layer project‑specific extensions or settings on top.
|
||
|
||
|
||
## 🧾 Included Components
|
||
|
||
### 🔧 Base Packages
|
||
|
||
- **curl, wget, git** → essential CLI tools
|
||
- **python3 + pip** → scripting and automation support
|
||
- **jq** → JSON parsing
|
||
- **ca-certificates, software-properties-common** → secure package management
|
||
- **ansible** → configuration management and automation
|
||
- **rclone, rsync** → file synchronization and transfer utilities
|
||
|
||
### ☸️ Kubernetes Tooling
|
||
|
||
- **kubectl** → latest stable release installed from upstream
|
||
- **Helm 3** → Kubernetes package manager
|
||
- **yq** → YAML processor for configuration pipelines
|
||
|
||
### 🟢 Node.js Runtime
|
||
|
||
- **Node.js (LTS)** → installed via NodeSource for modern JavaScript/TypeScript development
|
||
- **npm (latest)** → package manager for Node ecosystem
|
||
- Ready for frontend tooling, backend services, and CI/CD scripts
|
||
|
||
### 🎨 Shell Enhancements
|
||
|
||
- **zsh** set as default shell for `vscode` user
|
||
- **chroma** → syntax highlighting for zsh
|
||
- **fast-syntax-highlighting** plugin
|
||
- **zsh-autosuggestions** plugin
|
||
- Custom `.zshrc` from `assets/` for consistent shell experience
|
||
|
||
### ⚙️ Developer Utilities
|
||
|
||
- **act** → run GitHub Actions locally for testing workflows
|