Skip to content

remcovergoossen/q24devops

Repository files navigation

Q24 DevOps Assignment - Copilot CLI Skill + Agent Pack

Repository-local Copilot CLI skills and agents tailored for the q24 DevOps Engineer assignment.

Overview

This pack provides skill-first execution for completing Tasks 2-6 of the q24 DevOps assignment:

  • Task 2: Infrastructure as Code (Terraform + Helm → GitOps)
  • Task 3: Application Containerization (Multi-stage Dockerfile)
  • Task 4: CI/CD Pipeline (GitHub Actions + GHCR)
  • Task 5: Kubernetes Deployment (Helm chart with PostgreSQL)
  • Task 6: Scripting (Sunrise/sunset office lights)

All artifacts are versioned in this repository under .github/skills/ and .github/agents/.

Skills (10)

Skill Purpose Task
q24-terraform-generator Generate Terraform for GitOps deployment Task 2
q24-terraform-validator Validate Terraform configuration Task 2
q24-dockerfile-generator Generate multi-stage Dockerfile for Task API Task 3
q24-dockerfile-validator Validate Dockerfile best practices Task 3
q24-github-actions-generator Generate CI workflow for Docker builds Task 4
q24-github-actions-validator Validate GitHub Actions workflow Task 4
q24-helm-generator Generate Helm chart for K8s deployment Task 5
q24-helm-validator Validate Helm chart configuration Task 5
q24-k8s-debug Debug Kubernetes deployment issues Task 5
q24-task6-script Generate sunrise/sunset lights script Task 6

Agents (4)

Agent Expertise Uses Skills
q24-devops-orchestrator Meta-agent coordinating entire assignment All (via task delegation)
q24-terraform-engineer IaC specialist for Task 2 terraform-generator, terraform-validator
q24-ci-engineer CI/CD specialist for Task 4 github-actions-generator, github-actions-validator
q24-kubernetes-specialist K8s specialist for Task 5 helm-generator, helm-validator, k8s-debug

Architecture

Skill-First Execution Pattern

Each task follows a generator → validator → fix loop:

User Request
    ↓
[Generator Skill] → Creates artifacts
    ↓
[Validator Skill] → Checks quality
    ↓
Errors? → Fix → Re-validate (max 3 iterations)
    ↓
Success → Log & Deliver

Agent Orchestration

The q24-devops-orchestrator coordinates task execution:

Orchestrator
    ├─→ Task 2 → q24-terraform-engineer
    ├─→ Task 3 → Direct skill usage (dockerfile-generator)
    ├─→ Task 4 → q24-ci-engineer
    ├─→ Task 5 → q24-kubernetes-specialist
    └─→ Task 6 → Direct skill usage (task6-script)

Source Attribution

Adapted from:

  1. Claude Code DevOps Skills (/tmp/cc-devops-skills-inspect/) - Dockerfile, Helm, GitHub Actions patterns
  2. Terraform Skill (/tmp/terraform-skill-inspect/) - Terraform best practices and validation
  3. Awesome Claude Subagents (/tmp/awesome-subagents-inspect/) - Infrastructure agent patterns

All sources adapted to:

  • Copilot CLI frontmatter format
  • Assignment-specific requirements (k3d, Spring Boot, GitOps)
  • Generator → validator pattern
  • Logging requirements (AI_assistance_log.md, decision_log.md)

Usage

Starting the Assignment

Option 1: Orchestrator (Recommended)

> Start q24 DevOps assignment from Task 2

Invokes q24-devops-orchestrator which coordinates all tasks.

Option 2: Task-Specific Agents

> Generate Terraform for Task 2 (q24-terraform-engineer)
> Create Dockerfile for Task 3 (q24-dockerfile-generator skill)
> Set up CI/CD for Task 4 (q24-ci-engineer)
> Deploy to Kubernetes for Task 5 (q24-kubernetes-specialist)
> Create lights script for Task 6 (q24-task6-script skill)

Option 3: Direct Skill Invocation

> Use q24-terraform-generator to create IaC for ArgoCD deployment
> Use q24-dockerfile-generator for Spring Boot containerization
> Use q24-helm-generator for multi-environment Helm chart

Execution Flow Example (Task 2)

  1. User: "Generate Terraform for Task 2"
  2. Copilot CLI: Invokes q24-terraform-engineer agent
  3. Agent:
    • Scans README.md for Task 2 requirements
    • Calls q24-terraform-generator skill
    • Generator creates files in iac/
    • Calls q24-terraform-validator skill
    • Validator runs terraform validate, security scans
    • If errors: fix → re-validate (max 3 iterations)
    • Logs work in AI_assistance_log.md
    • Documents GitOps choice in decision_log.md
  4. Deliverable: Complete iac/ directory ready for terraform apply

Logging Requirements

All skills and agents enforce logging:

AI_assistance_log.md

Records skill usage, results, and updates:

## Task [N]: [Name]
**Skill Used:** [skill-name]
**Result:** [Success/Partial/Failed]
**Files Created:** [list]
**Validation:** [Pass/Fail]
**Skill Updates:** [improvements made]

decision_log.md

Documents all decisions:

## [Decision Title]
**Task:** Task [N]
**Options Considered:** [A, B, C]
**Decision:** [Selected]
**Rationale:** [Why]
**Implications:** [Impact]

File Structure

q24devops/
├── .github/
│   ├── skills/
│   │   ├── q24-terraform-generator/SKILL.md
│   │   ├── q24-terraform-validator/SKILL.md
│   │   ├── q24-dockerfile-generator/SKILL.md
│   │   ├── q24-dockerfile-validator/SKILL.md
│   │   ├── q24-github-actions-generator/SKILL.md
│   │   ├── q24-github-actions-validator/SKILL.md
│   │   ├── q24-helm-generator/SKILL.md
│   │   ├── q24-helm-validator/SKILL.md
│   │   ├── q24-k8s-debug/SKILL.md
│   │   └── q24-task6-script/SKILL.md
│   └── agents/
│       ├── q24-devops-orchestrator.agent.md
│       ├── q24-terraform-engineer.agent.md
│       ├── q24-ci-engineer.agent.md
│       └── q24-kubernetes-specialist.agent.md
├── README.md                    # Assignment requirements (authoritative)
├── AI_assistance_log.md         # Skill usage tracking
├── decision_log.md              # Decision documentation
├── iac/                         # Task 2 deliverables (Terraform)
├── taskapi/                     # Task 3 deliverables (Dockerfile)
├── .github/workflows/           # Task 4 deliverables (CI/CD)
├── k8s/                         # Task 5 deliverables (Helm)
└── scripts/                     # Task 6 deliverables (Lights script)

Key Design Decisions

1. Copilot CLI Format

  • Skills use frontmatter: name, description (no model or tools in skills)
  • Agents use frontmatter: name, description, model, tools, category, optional skill
  • All content is Markdown with practical code examples

2. Assignment-Specific Scope

  • Tight focus: Only Tasks 2-6 (Task 1 is documentation only)
  • No generic DevOps: Skills don't cover unrelated infrastructure domains
  • K3d optimized: Resource limits, storage classes, and patterns for local development
  • Spring Boot specific: Actuator health endpoints, JDK/JRE multi-stage builds

3. Generator → Validator Pattern

  • Every generator has a matching validator
  • Validators are called automatically by generators
  • Iterative fixing with max 3 iterations
  • Validation failures are logged and reported

4. Logging Enforcement

  • All agents/skills enforce logging in AI_assistance_log.md
  • All decisions documented in decision_log.md
  • Timestamps in ISO 8601 format
  • Clear success/failure status
  • Skill updates tracked

5. Multi-Environment Support

  • Helm values for dev/acc/prd
  • Different resource limits per environment
  • Tag strategy aligns: latest (dev), main-* (acc), v*.. (prd)
  • Secrets handled differently per environment

Validation Criteria

Each task has clear success criteria:

Task 2 (IaC):

  • terraform validate passes
  • ✅ GitOps tool choice documented
  • ✅ README explains setup

Task 3 (Docker):

  • ✅ Multi-stage build (JDK + JRE)
  • ✅ HEALTHCHECK present
  • ✅ Non-root user
  • docker build succeeds

Task 4 (CI/CD):

  • ✅ Workflow triggers on push/PR
  • ✅ GHCR push configured
  • ✅ Multi-platform builds
  • ✅ Tagging strategy implemented

Task 5 (K8s):

  • ✅ Helm chart lints successfully
  • ✅ Multi-environment values
  • ✅ PostgreSQL StatefulSet + PVC
  • ✅ Health probes configured

Task 6 (Script):

  • ✅ Outputs exactly "ON" or "OFF"
  • ✅ Edge cases tested (sunrise, sunset, midnight, DST)
  • ✅ Test suite passes

Customization Needed

After generation, users must customize:

  • Image repository: Replace CHANGEME with GitHub username in values.yaml
  • Secrets: Update database passwords (don't commit production secrets)
  • Resource limits: Adjust for actual k3d cluster capacity
  • Git repository: Ensure correct remote URL for GHCR

Troubleshooting

Skills not loading?

  • Restart Copilot CLI to reload skills/agents from .github/

Validation failures?

  • Check tool availability: terraform, docker, helm, kubectl
  • Generator → validator loop will auto-fix most issues
  • Check logs in AI_assistance_log.md for details

Agent not executing?

  • Ensure clear task description in prompt
  • Reference agent by name: "Use q24-terraform-engineer"
  • Check agent frontmatter for correct tools list

Contributing

To extend this pack:

  1. Add new skill under .github/skills/<skill-name>/SKILL.md
  2. Use Copilot CLI frontmatter format
  3. Follow generator → validator pattern where applicable
  4. Update this README with new skill/agent
  5. Test with assignment workflow

License

This skill+agent pack is specific to the q24 DevOps assignment repository. Source materials adapted under their respective licenses (Apache-2.0, MIT).

Version

v1.0.0 - Initial release for q24 DevOps assignment Created: 2024-04-07 Last Updated: 2024-04-07

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Generated from Q24/devops-assignment