Skip to content
CNPEPlatform APIs and Self-Service CapabilitiesSingle nodeMedium

Platform API: design a Database CRD with validation and status

Scenario cnpe-api-001 · about 15 minutes · 10 points · 7 grader checks

Offer databases as a platform API: a namespaced CustomResourceDefinition with an enum-validated schema, a status subresource and printer columns, plus the first claim.

  • crd
  • customresourcedefinition
  • openapi-schema
  • platform-api
  • self-service

What you will practise

  • Write a structural OpenAPI v3 schema with enums, bounds and required fields
  • Enable the status subresource and additional printer columns
  • Prove the API server rejects invalid objects

Start this lab

With the CLI installed and signed in, this command provisions a single node cluster on your Mac, applies the scenario setup and prints the task below.

goldenkube start cnpe-api-001

Task

The task text exactly as the CLI shows it. Solve it on the cluster, then run goldenkube submit.

Teams should request databases through a Kubernetes API. 1. Create a CustomResourceDefinition for group "platform.example.com", kind "Database", plural "databases", singular "database", short name "db", namespaced, with one version "v1alpha1" that is served and stored. 2. Its schema: "spec" is required and has the required fields "engine" (string, one of postgres or mysql) and "size" (string, one of small, medium or large), and the optional field "storageGB" (integer, 1 to 100). "status" is an object with a string field "phase". 3. Enable the status subresource and add the printer columns "Engine" (.spec.engine) and "Size" (.spec.size). 4. Create the Database "orders-db" in namespace "team-a" with engine postgres, size medium and storageGB 20.

Requirements and details

Certification
CNPE · Certified Cloud Native Platform Engineer
Domain
Platform APIs and Self-Service Capabilities
Difficulty
Medium
Cluster topology
Single node
Cluster features
None beyond the base cluster
Recommended time
15 minutes
Points
10
Grader checks
7
Kubernetes version
1.35
Minimum CLI version
0.1.0
Scenario version
1
Published

Grading runs locally: 7 state checks read your cluster when you submit; the scenario passes when every check passes. Hints, the reference solution and the check definitions are available only inside the CLI, not on this page.

CNPEPlatform APIs and Self-Service CapabilitiesHard

Self-service with Crossplane: an XRD and a Composition that compose a ConfigMap

Expose app configuration as a Crossplane v2 namespaced composite API: define the XRD, write a pipeline Composition with patch-and-transform, and provision the first composite.

Single node · ~20 min · 10 points

  • crossplane
  • composition
  • xrd
  • self-service
  • platform-api
  • function-patch-and-transform

goldenkube start cnpe-api-002

CNPEPlatform APIs and Self-Service CapabilitiesMedium

Operators: run Alertmanager through the Prometheus Operator

Use the Prometheus Operator as a platform automation: declare an Alertmanager and a namespaced AlertmanagerConfig, and confirm the operator reconciled them into a running, configured instance.

Single node · ~15 min · 8 points

  • operator
  • prometheus-operator
  • alertmanager
  • alertmanagerconfig
  • custom-resources
  • platform-automation

goldenkube start cnpe-api-003

CNPEPlatform APIs and Self-Service CapabilitiesMedium

Self-service namespaces: Kyverno generate rules for team onboarding

A team gets a working namespace by labelling it: a Kyverno ClusterPolicy generates the quota and the admin RoleBinding for every namespace carrying the team label and keeps them in sync.

Single node · ~15 min · 10 points

  • kyverno
  • generate
  • self-service
  • namespace-provisioning
  • policy
  • platform-api

goldenkube start cnpe-api-004

CNPEPlatform APIs and Self-Service CapabilitiesMedium

Automation framework: an Argo WorkflowTemplate that provisions environments

Offer environment provisioning as a reusable Argo WorkflowTemplate with a parameter and a resource step, then provision the blue environment through it.

Single node · ~15 min · 8 points

  • argo-workflows
  • workflowtemplate
  • automation
  • self-service
  • resource-template
  • platform-api

goldenkube start cnpe-api-005

Independent community project, not affiliated with or endorsed by CNCF or The Linux Foundation. Lab results are practice feedback, not an exam score.