Skip to content

feat(GSP1309): NetApp Trident GKE provisioning lab solution and full Hashnode guide - #54

Draft
hoangsvit wants to merge 2 commits into
mainfrom
feat/gsp1309-netapp-trident-20261031
Draft

hoangsvit wants to merge 2 commits into
mainfrom
feat/gsp1309-netapp-trident-20261031

Conversation

@hoangsvit

Copy link
Copy Markdown
Member

New lab — GSP1309 (Google Skills Catalog)

  • Dynamic volume provisioning on GKE with Google Cloud NetApp Volumes — https://www.skills.google/focuses/124121?parent=catalog
  • Arcade active membership not verified; crawler is a game list, not a verified game→lab mapping.
  • Duplicate check before writing: no labs/GSP1309 on main, no matching ID/title PR (open/closed), no matching indexed eplus.dev article.
  • New files only: labs/GSP1309/lab.sh and labs/GSP1309/HASHNODE.md. No old labs modified.
  • Independently authored under Copyright (c) 2026 ePlus.DEV | Unlicense.

Official task / checkpoint coverage

  1. Task 1: connect to existing GKE cluster1; install Trident 25.02.0 operator, CRD and controller. Checkpoint Install Trident (20).
  2. Task 2: lab-scoped service account, official-required roles/netapp.admin, temporary key stored as Kubernetes Secret gcnv-secret, zonal Flex backend and StorageClass. Checkpoints Create a secret (20), Create a backend (20), Create a storage class (20).
  3. Task 3: 1Gi ReadWriteMany PVC, wait for Bound/PV. Checkpoint Create a persistent volume claim (20).

The Hashnode document follows Overview → Setup → Task 1 → Task 2 → Task 3 → Solution, with detailed manual commands, five grader prompts, exactly two Quick commands referencing main (only available after merge), and Manual video placeholder. No unverified video or third-party image embedded.

Safety and static validation

  • Project, GKE cluster location and zonal NetApp pool are discovered at runtime; ambiguous zone causes fail-fast, not a guessed region.
  • No hardcoded credentials; key generated within the authorized lab project, never logged or committed, local key deleted after the Kubernetes Secret is created.
  • Note: official lab requires a service-account JSON key and roles/netapp.admin. This is an ephemeral lab-only exception, not a production recommendation. The key remains active in Kubernetes until manually revoked after grading.
  • Idempotent apply/reuse paths, bounded waits/retries, no deletion of unrelated resources, TTY color + FORCE_COLOR=1, NO_COLOR takes precedence.
  • PASS local bash -n labs/GSP1309/lab.sh.
  • PASS Python yaml.safe_load of all three generated YAML templates.
  • ShellCheck severity error: pending GitHub CI (ShellCheck unavailable in the isolated local runtime; do not count as PASS until CI confirms).
  • static validated only; runtime/grader unverified. No GCP/lab account was used.

Test latest PR commit

Execute in an authorized lab Cloud Shell. Resolve the newest branch SHA each time, check it is nonempty, download from the immutable commit URL to avoid stale raw-cache/branch ambiguity, and record the first 12 SHA characters in the log:

set -o pipefail
BRANCH='feat/gsp1309-netapp-trident-20261031'
SHA="$(git ls-remote https://github.com/ePlus-DEV/storage.git "refs/heads/$BRANCH" | awk '{print $1}')"
test -n "$SHA" || { echo 'Unable to resolve PR head SHA' >&2; exit 1; }
curl -fL --retry 3 "https://raw.githubusercontent.com/ePlus-DEV/storage/$SHA/labs/GSP1309/lab.sh" -o lab-test.sh
FORCE_COLOR=1 bash lab-test.sh 2>&1 | tee "lab-GSP1309-${SHA:0:12}.log"

Review before merge

  • Confirm official Trident 25.02.0 release asset and CRD paths against live lab cluster.
  • Confirm IAM/org-policy allows lab-required temporary service-account key and backend transitions to Bound.
  • Confirm PVC creates the expected NetApp volume; run five Google Skills graders in a permitted session.
  • Review key lifecycle and manual cleanup. Do not merge until satisfied.
  • ShellCheck CI and runtime are independent; CI success is not grader success.

Sources: Google Skills GSP1309, NetApp Trident, NetApp Volumes docs, Google IAM key CLI. Tracks #16. Draft only; do not auto-merge.

@coderabbitai

coderabbitai Bot commented Oct 30, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

This branch has not been deployed

No deployments
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