eb8160e659
Educational RunWhen CodeCollection that discovers Crossplane GCP Bucket CRDs (storage.gcp.upbound.io/v1beta1) and generates one SLX per bucket. Ships only generation rules and Jinja templates; the runtime lives in rw-generic-codecollection/k8s-kubectl-cmd (already loaded by the airgap runner). Includes: - codebundles/gcp-bucket-crossplane-health with generation rule + 3 templates - docs/01..07 numbered training chapters with screenshot placeholders - README, .gitignore Co-authored-by: Cursor <cursoragent@cursor.com>
37 lines
1.2 KiB
YAML
37 lines
1.2 KiB
YAML
apiVersion: runwhen.com/v1
|
|
kind: ServiceLevelX
|
|
metadata:
|
|
name: {{slx_name}}
|
|
labels:
|
|
{% include "common-labels.yaml" %}
|
|
annotations:
|
|
{% include "common-annotations.yaml" %}
|
|
spec:
|
|
imageURL: https://storage.googleapis.com/runwhen-nonprod-shared-images/icons/kubernetes.svg
|
|
alias: Crossplane GCP Bucket {{match_resource.resource.metadata.name}} Health
|
|
asMeasuredBy: Fraction of Crossplane .status.conditions[] that are True (Ready + Synced).
|
|
configProvided:
|
|
- name: OBJECT_NAME
|
|
value: {{match_resource.resource.metadata.name}}
|
|
- name: API_GROUP
|
|
value: storage.gcp.upbound.io
|
|
- name: KIND
|
|
value: Bucket
|
|
owners:
|
|
- {{workspace.owner_email}}
|
|
statement: >-
|
|
Crossplane GCP Bucket {{match_resource.resource.metadata.name}} should have
|
|
every status condition (Ready, Synced) in state True 99.5% of the time.
|
|
additionalContext:
|
|
{% include "kubernetes-hierarchy.yaml" ignore missing %}
|
|
qualified_name: "{{ match_resource.qualified_name }}"
|
|
tags:
|
|
{% include "kubernetes-tags.yaml" ignore missing %}
|
|
|
|
- name: access
|
|
value: read-only
|
|
- name: managed-by
|
|
value: crossplane
|
|
- name: provider
|
|
value: upbound-gcp
|