Skip to content

feat: Add CKAD Lab - 3 (exam-003)#66

Open
josephedward wants to merge 6 commits into
sailor-sh:masterfrom
josephedward:feat/ckad-lab-003
Open

feat: Add CKAD Lab - 3 (exam-003)#66
josephedward wants to merge 6 commits into
sailor-sh:masterfrom
josephedward:feat/ckad-lab-003

Conversation

@josephedward

Copy link
Copy Markdown

feat: Add CKAD Comprehensive Lab - 3 (exam-003)


🧾 What this PR does

This PR introduces CKAD Comprehensive Lab - 3, a high-difficulty practice exam containing 22 new tasks.

Key highlights include:

  • Namespace Isolation: Each question runs in its own dedicated namespace.

  • Advanced Scenarios: Includes tasks for Helm release management, local Docker registry workflows (build/push), and PersistentVolume/PVC binding.

  • Partial-Credit Validation: Updated assessment logic to support granular verification of complex tasks.

  • Automated Setup: Idempotent setup scripts for seeding resources like broken deployments for troubleshooting and Helm releases; validators are namespace-aware.

  • Outputs are written under /opt/course/exam3/qXX/ and /opt/course/exam3/p{1..3}/.


    🧩 Type of change

    • Bug fix
    • New feature
    • Documentation update
    • Refactor
    • Other (please describe): ____________

    🧪 How to test it

    1. Start the simulator using docker-compose up.
    2. Navigate to the UI and select "CKAD Comprehensive Lab - 3" from the lab list.
    3. Wait for the environment to initialize (approx. 260s warm-up).
    4. Verify that the setup scripts correctly initialized the helm and image-logs (registry) questions by checking kubectl get ns.
    5. Run the validation for Question 1 (Namespace listing) and verify it passes if the output file is created correctly.

    ✅ Acceptance Criteria

    • Pod starts without errors
    • Docker Compose logs are available
    • All relevant tests pass
    • Documentation is updated (Added to labs.json)
    • New labs pass
    • Answers work as expected

    📎 Related Issue(s)


    💬 Notes for Reviewers

  • Q4 (Helm): Requires helm. Setup seeds releases: internal-issue-report-apiv1 and internal-issue-report-apiv2 in helm. The task requires deleting apiv1, upgrading apiv2, and installing a new internal-issue-report-apache with 2 replicas. Validators require Helm; no degraded path.

  • Q11 (Container tooling + Registry): Requires Docker and a local registry at localhost:5000. Validators assert the built/pushed image tag, a running sun-cipher container from localhost:5000/sun-cipher:v1-docker, and the registry tag presence.

  • Q12 (hostPath PV): The PV uses hostPath: /Volumes/Data with type: DirectoryOrCreate so it works across environments without manual node prep. To prevent the cluster's default StorageClass from being applied, set storageClassName: "" (empty) on the PVC. Pods should generally become Ready. Validators only assert that pods are created (not strictly Ready) for broader compatibility.

  • Q13 (Storage): PVC may stay Pending without a matching provisioner; validators account for this.

  • Q18 (Service): Setup is intentionally broken (wrong selector and wrong targetPort). Validators require both endpoints to exist and the endpoint port to be 4444 after the fix.

  • Q19 (NodePort): Validators check type and nodePort=30100.


    📄 Attachments

    • CKAD-003 Lab Selection - Screenshot of the CKAD-003 lab selected in the exam list.
    • Q22 Problem Statement - Screenshot of the problem statement for Question 22.
    • Q22 Service Status (Before Fix) - Screenshot showing the earth-3cc-web-svc service status before the fix, indicating no endpoints due to a misconfigured readiness probe.
    • Q22 Broken Deployment - Screenshot showing the earth-3cc-web deployment in p3-readiness with 0/4 ready pods, indicating a problem with the readiness probe.
    • Q22 Incorrect Readiness Probe Port - Screenshot highlighting the incorrect port: 8081 in the readiness probe configuration for earth-3cc-web deployment.
    • Q22 Readiness Probe Port Fixed - Screenshot showing the readinessProbe port corrected to port: 80.
    • Q22 Deployment Progress (After Fix) - Screenshot demonstrating the deployment starting to become ready (2/4 pods ready) after applying the readiness probe fix.
    • Q22 Graded Results - Screenshot of the successful grading results for Question 22 (and failures for q21).

ckad-comprehensive-lab-3-exam-selection-screen ckad-comprehensive-lab-3-exam-selection-dropdown-open kubectl-describe-service-earth-3cc-web-svc-showing-port-80-targetport-80 deployment-earth-3cc-web-readiness-probe-updated-to-port-8081 kubectl-get-deployment-earth-3cc-web-showing-0-of-4-ready kubectl-describe-service-earth-3cc-web-svc-confirming-port-80-targetport-80 kubectl-get-deployment-earth-3cc-web-showing-2-of-4-ready-after-fix practice-lab-summary-q21-failed-q22-passed-all-checks

FabianHardt and others added 6 commits December 5, 2025 14:27
  This PR introduces CKAD Comprehensive Lab - 3, a high-difficulty practice exam containing 22 new tasks. Key highlights include:
   - Namespace Isolation: Each question runs in its own dedicated namespace.
   - Advanced Scenarios: Includes tasks for Helm release management, local Docker registry workflows (build/push), and PersistentVolume/PVC binding.
   - Partial-Credit Validation: Updated assessment logic to support granular verification of complex tasks.
   - Automated Setup: Idempotent setup scripts for seeding resources like broken deployments for troubleshooting and Helm releases.
@coderabbitai

coderabbitai Bot commented Feb 19, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 158 files, which is 8 over the limit of 150.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Tip

Issue Planner is now in beta. Read the docs and try it out! Share your feedback on Discord.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants