Skip to content

fix: Update task descriptions in CKA 002 #14 #15#69

Open
tetafro wants to merge 1 commit into
sailor-sh:masterfrom
tetafro:master
Open

fix: Update task descriptions in CKA 002 #14 #15#69
tetafro wants to merge 1 commit into
sailor-sh:masterfrom
tetafro:master

Conversation

@tetafro

@tetafro tetafro commented May 2, 2026

Copy link
Copy Markdown

🧾 What this PR does

Just update task descriptions.


🧩 Type of change

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

🧪 How to test it

No tests needed.


✅ Acceptance Criteria

  • Pod starts without errors
  • Docker Compose logs are available
  • All relevant tests pass
  • Documentation is updated (if needed - usually it is)

Summary by CodeRabbit

  • Documentation
    • Updated CKAD exam question instructions for improved clarity and accuracy.
    • Refined init-containers task to clarify the service exposure requirement for the pod.
    • Added explicit Bitnami repository URL reference for the helm-basics task.
    • Normalized headings and fixed formatting/whitespace in answer documentation.

@coderabbitai

coderabbitai Bot commented May 2, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 9f22d85c-f98d-46e1-96b1-c2dc78ef5eb0

📥 Commits

Reviewing files that changed from the base of the PR and between 1ef33e5 and e2b1a39.

📒 Files selected for processing (2)
  • facilitator/assets/exams/ckad/002/answers.md
  • facilitator/assets/exams/ckad/002/assessment.json
✅ Files skipped from review due to trivial changes (1)
  • facilitator/assets/exams/ckad/002/answers.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • facilitator/assets/exams/ckad/002/assessment.json

📝 Walkthrough

Walkthrough

Updates CKAD exam content: clarifies Question 14 to expose port 80 of app-with-init, makes Question 15 add the Bitnami Helm repo using its explicit URL, and applies minor formatting fixes in the answers document (heading punctuation and trailing-whitespace cleanup).

Changes

CKAD Exam Content Updates

Layer / File(s) Summary
Question text
facilitator/assets/exams/ckad/002/assessment.json
Question 14 (init-containers) now requires a myservice that exposes port 80 of the app-with-init pod (removes nginx-image wording). Question 15 (helm-basics) now adds the Bitnami repo with explicit URL https://charts.bitnami.com/bitnami.
Formatting / Minor cleanup
facilitator/assets/exams/ckad/002/assessment.json
Removed trailing file-ending whitespace/newline after closing }.
Answer doc formatting
facilitator/assets/exams/ckad/002/answers.md
Question 15 heading punctuation changed from - to :. Question 20 verification list item trailing-whitespace normalized.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Poem

🐰 I hopped through questions late at night,
Swapped a dash for a colon — tidy and bright.
A service now points where the pod will run,
Bitnami's URL added, neat and done.
Cheers to small fixes under moonlight! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title 'fix: Update task descriptions in CKA 002 #14 #15' accurately reflects the main changes—updates to task descriptions in the CKAD 002 assessment for questions 14 and 15.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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
Review rate limit: 7/8 reviews remaining, refill in 7 minutes and 30 seconds.

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@facilitator/assets/exams/ckad/002/assessment.json`:
- Line 523: The task prompt for creating resources is ambiguous because the
Service "myservice" has no selector mapping to the Pod; update the question text
so it requires adding a label to the Pod (e.g., app: app-with-init) and specify
that the Service `myservice` must use a selector matching that label; mention
the Pod name `app-with-init`, namespace `init-containers`, and the Service
`myservice` so implementers create the Pod with the label and the Service with
selector "app: app-with-init" (and keep the init container, shared volume at
/shared, and the namespace creation requirement).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 1b88c960-fa59-4087-8ca6-64ee173453a5

📥 Commits

Reviewing files that changed from the base of the PR and between 199f4be and 1ef33e5.

📒 Files selected for processing (2)
  • facilitator/assets/exams/ckad/002/answers.md
  • facilitator/assets/exams/ckad/002/assessment.json

"namespace": "init-containers",
"machineHostname": "ckad9999",
"question": "Create a Pod named `app-with-init` in the `init-containers` namespace with the following specifications:\n\n1. Main container using image `nginx`\n2. Init container using image `busybox` with command: `['sh', '-c', 'until nslookup myservice; do echo waiting for myservice; sleep 2; done']`\n3. Create a service named `myservice` using image `nginx`\n4. Share a volume between init container and main container at `/shared`\n\nEnsure the namespace exists before creating the resources.",
"question": "Create a Pod named `app-with-init` in the `init-containers` namespace with the following specifications:\n\n1. Main container using image `nginx`\n2. Init container using image `busybox` with command: `['sh', '-c', 'until nslookup myservice; do echo waiting for myservice; sleep 2; done']`\n3. Create a service named `myservice` for the pod `app-with-init`\n4. Share a volume between init container and main container at `/shared`\n\nEnsure the namespace exists before creating the resources.",

@coderabbitai coderabbitai Bot May 2, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Clarify the Service selector contract for app-with-init

Line 523 asks for a Service “for the pod” but does not define the required pod label/selector mapping. This leaves the task ambiguous and can cause failed validation even when learners follow instructions.

Proposed wording tweak
- 3. Create a service named `myservice` for the pod `app-with-init`
+ 3. Label the pod `app-with-init` with `app=myservice` and create a Service named `myservice` with selector `app=myservice`
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"question": "Create a Pod named `app-with-init` in the `init-containers` namespace with the following specifications:\n\n1. Main container using image `nginx`\n2. Init container using image `busybox` with command: `['sh', '-c', 'until nslookup myservice; do echo waiting for myservice; sleep 2; done']`\n3. Create a service named `myservice` for the pod `app-with-init`\n4. Share a volume between init container and main container at `/shared`\n\nEnsure the namespace exists before creating the resources.",
"question": "Create a Pod named `app-with-init` in the `init-containers` namespace with the following specifications:\n\n1. Main container using image `nginx`\n2. Init container using image `busybox` with command: `['sh', '-c', 'until nslookup myservice; do echo waiting for myservice; sleep 2; done']`\n3. Label the pod `app-with-init` with `app=myservice` and create a Service named `myservice` with selector `app=myservice`\n4. Share a volume between init container and main container at `/shared`\n\nEnsure the namespace exists before creating the resources.",
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@facilitator/assets/exams/ckad/002/assessment.json` at line 523, The task
prompt for creating resources is ambiguous because the Service "myservice" has
no selector mapping to the Pod; update the question text so it requires adding a
label to the Pod (e.g., app: app-with-init) and specify that the Service
`myservice` must use a selector matching that label; mention the Pod name
`app-with-init`, namespace `init-containers`, and the Service `myservice` so
implementers create the Pod with the label and the Service with selector "app:
app-with-init" (and keep the init container, shared volume at /shared, and the
namespace creation requirement).

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

but does not define the required pod label/selector mapping

This is pretty much the same as in other tasks in this repo

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check other task files to see how service/selector requirements are described
rg -n "selector|label.*service|service.*label" facilitator/assets/exams/ --type json -i -C2 | head -80

Length of output: 10466


@tetafro, fair point — looking at the other tasks (e.g., Q3 and Q6 in this same file), services are described in terms of what they expose without spelling out the explicit label/selector mapping, leaving that detail to the learner. The wording is consistent with the repo's existing style, so my concern doesn't apply here. Thanks for the clarification!

(^_^) 🐇✨


✏️ Learnings added
Learnt from: tetafro
Repo: sailor-sh/CK-X PR: 69
File: facilitator/assets/exams/ckad/002/assessment.json:0-0
Timestamp: 2026-05-03T05:22:39.693Z
Learning: In the CK-X repo (facilitator/assets/exams/), task descriptions for creating Services intentionally omit explicit label/selector mapping details — learners are expected to figure out the selector themselves. This is the established convention across tasks; do not flag missing selector specs as an issue.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

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.

1 participant