apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: apps.code.dev annotations: controller-gen.kubebuilder.io/version: v0.16.0 spec: group: code.dev names: kind: App listKind: AppList plural: apps singular: app shortNames: - app scope: Namespaced versions: - name: v1 served: true storage: true subresources: status: {} additionalPrinterColumns: - name: Replicas jsonPath: .spec.replicas type: integer - name: Ready jsonPath: .status.phase type: string - name: Age jsonPath: .metadata.creationTimestamp type: date schema: openAPIV3Schema: type: object required: [spec] properties: apiVersion: type: string kind: type: string metadata: type: object spec: type: object required: [] properties: image: type: string default: myapp/app:latest replicas: type: integer default: 3 env: type: array items: type: object required: [name] properties: name: type: string value: type: string valueFrom: type: object properties: secretRef: type: object required: [name, secretName, secretKey] properties: name: type: string secretName: type: string secretKey: type: string resources: type: object properties: requests: type: object properties: cpu: type: string memory: type: string limits: type: object properties: cpu: type: string memory: type: string livenessProbe: type: object properties: port: type: integer default: 8080 path: type: string default: /health initialDelaySeconds: type: integer default: 5 readinessProbe: type: object properties: port: type: integer default: 8080 path: type: string default: /health initialDelaySeconds: type: integer default: 5 imagePullPolicy: type: string default: IfNotPresent status: type: object properties: readyReplicas: type: integer phase: type: string