# tariqm/ckad-2026 architecture

> Architecture diagram of the GitHub repository tariqm/ckad-2026, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/tariqm/ckad-2026
- Repository: https://github.com/tariqm/ckad-2026

## Overview

This repository is a hands-on CKAD practice lab, not an application runtime. A learner selects an exercise, runs its setup script against a Kubernetes cluster, reads the task, makes changes with kubectl, and runs the checker for validation and scoring; ANSWER.md provides a reference solution. The exercise collection spans workload design, deployment strategies, observability, configuration/security, and networking. Relationships below follow the README workflow and topic descriptions; individual scripts and exercise contents were not sampled.

Main entry points: [`Q01 - Create Secret from Hardcoded Variables/check.sh`](https://github.com/tariqm/ckad-2026/blob/main/Q01%20-%20Create%20Secret%20from%20Hardcoded%20Variables/check.sh) (Scoring checkers), [`Q01 - Create Secret from Hardcoded Variables/setup.sh`](https://github.com/tariqm/ckad-2026/blob/main/Q01%20-%20Create%20Secret%20from%20Hardcoded%20Variables/setup.sh) (Environment setup), [`Q01 - Create Secret from Hardcoded Variables/QUESTION.md`](https://github.com/tariqm/ckad-2026/blob/main/Q01%20-%20Create%20Secret%20from%20Hardcoded%20Variables/QUESTION.md) (Exercise prompts), [`Q01 - Create Secret from Hardcoded Variables/ANSWER.md`](https://github.com/tariqm/ckad-2026/blob/main/Q01%20-%20Create%20Secret%20from%20Hardcoded%20Variables/ANSWER.md) (Reference solutions)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_practice["Practice workflow"]
  node_question["Exercise prompts<br/>[QUESTION.md]"]
  node_setup["Environment setup<br/>[setup.sh]"]
  node_checker["Scoring checkers<br/>[check.sh]"]
  node_answer["Reference solutions<br/>[ANSWER.md]"]
end

subgraph group_workloads["Workloads and storage"]
  node_workloads_core["Pods and containers"]
  node_jobs["Jobs and CronJobs"]
  node_storage["Volumes and claims"]
end

subgraph group_operations["Deployment and observability"]
  node_deployment["Deployment operations"]
  node_release_patterns["Release strategies"]
  node_troubleshooting["Debug and logs"]
  node_health_resources["Health and resources"]
end

subgraph group_platform["Configuration and security"]
  node_configuration["Secrets and config"]
  node_identity["RBAC and identity"]
  node_pod_security["Pod security"]
  node_network_policy["Network policies"]
end

subgraph group_networking["Services and networking"]
  node_services["Services"]
  node_ingress["Ingress routing"]
end

node_learner(("CKAD learner"))
node_cluster[("Kubernetes cluster")]
node_kubectl["kubectl"]

node_learner -->|"runs setup"| node_setup
node_setup -->|"sets up resources"| node_cluster
node_learner -->|"reads task"| node_question
node_learner -->|"solves with"| node_kubectl
node_kubectl -->|"changes resources"| node_cluster
node_learner -->|"runs checker"| node_checker
node_checker -->|"validates solution"| node_cluster
node_checker -->|"scores attempt"| node_learner
node_learner -->|"consults solution"| node_answer

click node_question "https://github.com/tariqm/ckad-2026/blob/main/Q01%20-%20Create%20Secret%20from%20Hardcoded%20Variables/QUESTION.md"
click node_setup "https://github.com/tariqm/ckad-2026/blob/main/Q01%20-%20Create%20Secret%20from%20Hardcoded%20Variables/setup.sh"
click node_checker "https://github.com/tariqm/ckad-2026/blob/main/Q01%20-%20Create%20Secret%20from%20Hardcoded%20Variables/check.sh"
click node_answer "https://github.com/tariqm/ckad-2026/blob/main/Q01%20-%20Create%20Secret%20from%20Hardcoded%20Variables/ANSWER.md"
click node_workloads_core "https://github.com/tariqm/ckad-2026/tree/main/Q17%20-%20Create%20Multi-Container%20Pod%20with%20Sidecar"
click node_jobs "https://github.com/tariqm/ckad-2026/tree/main/Q02%20-%20Create%20CronJob%20with%20Schedule%20and%20History%20Limits"
click node_storage "https://github.com/tariqm/ckad-2026/tree/main/Q21%20-%20Create%20PersistentVolume%20and%20PersistentVolumeClaim"
click node_deployment "https://github.com/tariqm/ckad-2026/tree/main/Q09%20-%20Perform%20Rolling%20Update%20and%20Rollback"
click node_release_patterns "https://github.com/tariqm/ckad-2026/tree/main/Q06%20-%20Create%20Canary%20Deployment%20with%20Manual%20Traffic%20Split"
click node_troubleshooting "https://github.com/tariqm/ckad-2026/tree/main/Q45%20-%20Debug%20CrashLoopBackOff%20Pod"
click node_health_resources "https://github.com/tariqm/ckad-2026/tree/main/Q10%20-%20Add%20Readiness%20Probe%20to%20Deployment"
click node_configuration "https://github.com/tariqm/ckad-2026/tree/main/Q01%20-%20Create%20Secret%20from%20Hardcoded%20Variables"
click node_identity "https://github.com/tariqm/ckad-2026/tree/main/Q03%20-%20Create%20ServiceAccount%20Role%20and%20RoleBinding%20from%20Logs%20Error"
click node_pod_security "https://github.com/tariqm/ckad-2026/tree/main/Q11%20-%20Configure%20Pod%20and%20Container%20Security%20Context"
click node_network_policy "https://github.com/tariqm/ckad-2026/tree/main/Q63%20-%20Create%20NetworkPolicy%20Default%20Deny%20All"
click node_services "https://github.com/tariqm/ckad-2026/tree/main/Q13%20-%20Create%20NodePort%20Service"
click node_ingress "https://github.com/tariqm/ckad-2026/tree/main/Q14%20-%20Create%20Ingress%20Resource"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_question,node_setup,node_checker,node_answer toneBlue
class node_workloads_core,node_jobs,node_storage,node_cluster toneAmber
class node_deployment,node_release_patterns,node_troubleshooting,node_health_resources toneMint
class node_configuration,node_identity,node_pod_security,node_network_policy toneRose
class node_services,node_ingress,node_learner,node_kubectl toneIndigo
```

## Components

### Practice workflow

- [Exercise prompts](https://github.com/tariqm/ckad-2026/blob/main/Q01%20-%20Create%20Secret%20from%20Hardcoded%20Variables/QUESTION.md): `Q01 - Create Secret from Hardcoded Variables/QUESTION.md`
- [Environment setup](https://github.com/tariqm/ckad-2026/blob/main/Q01%20-%20Create%20Secret%20from%20Hardcoded%20Variables/setup.sh): `Q01 - Create Secret from Hardcoded Variables/setup.sh`
- [Scoring checkers](https://github.com/tariqm/ckad-2026/blob/main/Q01%20-%20Create%20Secret%20from%20Hardcoded%20Variables/check.sh): `Q01 - Create Secret from Hardcoded Variables/check.sh`
- [Reference solutions](https://github.com/tariqm/ckad-2026/blob/main/Q01%20-%20Create%20Secret%20from%20Hardcoded%20Variables/ANSWER.md): `Q01 - Create Secret from Hardcoded Variables/ANSWER.md`

### Workloads and storage

- [Pods and containers](https://github.com/tariqm/ckad-2026/tree/main/Q17%20-%20Create%20Multi-Container%20Pod%20with%20Sidecar): `Q17 - Create Multi-Container Pod with Sidecar`
- [Jobs and CronJobs](https://github.com/tariqm/ckad-2026/tree/main/Q02%20-%20Create%20CronJob%20with%20Schedule%20and%20History%20Limits): `Q02 - Create CronJob with Schedule and History Limits`
- [Volumes and claims](https://github.com/tariqm/ckad-2026/tree/main/Q21%20-%20Create%20PersistentVolume%20and%20PersistentVolumeClaim): `Q21 - Create PersistentVolume and PersistentVolumeClaim`

### Deployment and observability

- [Deployment operations](https://github.com/tariqm/ckad-2026/tree/main/Q09%20-%20Perform%20Rolling%20Update%20and%20Rollback): `Q09 - Perform Rolling Update and Rollback`
- [Release strategies](https://github.com/tariqm/ckad-2026/tree/main/Q06%20-%20Create%20Canary%20Deployment%20with%20Manual%20Traffic%20Split): `Q06 - Create Canary Deployment with Manual Traffic Split`
- [Debug and logs](https://github.com/tariqm/ckad-2026/tree/main/Q45%20-%20Debug%20CrashLoopBackOff%20Pod): `Q45 - Debug CrashLoopBackOff Pod`
- [Health and resources](https://github.com/tariqm/ckad-2026/tree/main/Q10%20-%20Add%20Readiness%20Probe%20to%20Deployment): `Q10 - Add Readiness Probe to Deployment`

### Configuration and security

- [Secrets and config](https://github.com/tariqm/ckad-2026/tree/main/Q01%20-%20Create%20Secret%20from%20Hardcoded%20Variables): `Q01 - Create Secret from Hardcoded Variables`
- [RBAC and identity](https://github.com/tariqm/ckad-2026/tree/main/Q03%20-%20Create%20ServiceAccount%20Role%20and%20RoleBinding%20from%20Logs%20Error): `Q03 - Create ServiceAccount Role and RoleBinding from Logs Error`
- [Pod security](https://github.com/tariqm/ckad-2026/tree/main/Q11%20-%20Configure%20Pod%20and%20Container%20Security%20Context): `Q11 - Configure Pod and Container Security Context`
- [Network policies](https://github.com/tariqm/ckad-2026/tree/main/Q63%20-%20Create%20NetworkPolicy%20Default%20Deny%20All): `Q63 - Create NetworkPolicy Default Deny All`

### Services and networking

- [Services](https://github.com/tariqm/ckad-2026/tree/main/Q13%20-%20Create%20NodePort%20Service): `Q13 - Create NodePort Service`
- [Ingress routing](https://github.com/tariqm/ckad-2026/tree/main/Q14%20-%20Create%20Ingress%20Resource): `Q14 - Create Ingress Resource`

### Other components

- **CKAD learner**
- **Kubernetes cluster**
- **kubectl**

## Connections

- CKAD learner → Environment setup: runs setup (evidence: `README.md`)
- Environment setup → Kubernetes cluster: sets up resources (evidence: `README.md`)
- CKAD learner → Exercise prompts: reads task (evidence: `README.md`)
- CKAD learner → kubectl: solves with (evidence: `README.md`)
- kubectl → Kubernetes cluster: changes resources (evidence: `README.md`)
- CKAD learner → Scoring checkers: runs checker (evidence: `README.md`)
- Scoring checkers → Kubernetes cluster: validates solution (evidence: `README.md`)
- Scoring checkers → CKAD learner: scores attempt (evidence: `README.md`)
- CKAD learner → Reference solutions: consults solution (evidence: `README.md`)
