apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: unpackedpallets.warehouse.edge.ncr.com annotations: controller-gen.kubebuilder.io/version: (unknown) spec: group: warehouse.edge.ncr.com names: kind: UnpackedPallet listKind: UnpackedPalletList plural: unpackedpallets singular: unpackedpallet scope: Cluster versions: - name: v1alpha1 additionalPrinterColumns: - name: Digest type: string jsonPath: .status.shortDigest - name: Ready type: string jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Status type: string jsonPath: .status.conditions[?(@.type=="Ready")].message - name: Status Age type: date jsonPath: .status.conditions[?(@.type=="Ready")].lastTransitionTime - name: Prune type: string priority: 1 jsonPath: .spec.prune - name: Suspend type: string priority: 1 jsonPath: .spec.suspend - name: Shipment type: string priority: 1 jsonPath: .status.shipment - name: Force type: string priority: 1 jsonPath: .spec.force - name: Dependencies type: string priority: 1 jsonPath: .status.dependencies - name: Age type: date jsonPath: .metadata.creationTimestamp schema: openAPIV3Schema: type: object description: "UnpackedPallet is an individual package that will be unpacked and scheduled to the cluster. \n Generally, this object shouldn't be created directly, it should be created via Shipment objects, similarly to how a Deployment schedules a ReplicaSet." properties: apiVersion: type: string description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' kind: type: string description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' metadata: type: object spec: type: object properties: name: type: string description: Name is the unique package name for the Warehouse package. It is appended to the provided Repository to produce the full repository string, e.g., gcr.io/foo/bar, where bar is the name of the package and gcr.io/foo is the provided Repository string creds: type: object description: Credentials is an optional secret reference pointing to a secret containing registry credentials. The secret must be of type kubernetes.io/dockerconfigjson properties: name: type: string description: name is unique within a namespace to reference a secret resource. namespace: type: string description: namespace defines the space within which the secret name must be unique. dependsOn: type: array description: DependsOn is the list of UnpackedPallets that need to be successfully reconciled first. items: type: object description: LocalObjectReference contains enough information to locate the referenced Kubernetes resource object. properties: name: type: string description: Name of the referent. maxLength: 253 minLength: 1 required: - name digest: type: string description: Digest is the sha256 digest of the OCI artifact to apply to the cluster. Takes precedence over tag if set. force: type: boolean default: false description: Force indicates whether or not objects should be forced by deleting and re-creating when there is a conflict due to immutable fields changing. interval: type: string default: 60s description: Interval is how often the object will be reconciled, in order to prevent drift. parameters: type: object additionalProperties: type: string description: Parameters are the key/value pairs that will be used while rendering manifests from unpacked pallets. prune: type: boolean description: Prune indicates whether or not objects should be pruned between reconciles or when the object is deleted. You may want to use this for deployments that you really don't want deleted. repo: type: string description: Repository is the image repository that the tag or digest should be pulled from, e.g., gcr.io/foo retryInterval: type: string default: 10s description: RetryInterval is how often to retry previously failed reconciliations. Defaults to Interval if not provided. suspend: type: boolean description: This flag tells the controller to suspend subsequent reconciliations, it does not apply to already started reconciliations. Defaults to false. tag: type: string description: Tag is a mutable reference to the OCI artifact to apply. Defaults to "latest" if neither Tag or Digest are set. timeout: type: string default: 120s description: Timeout is how long the controller will wait for the applied objects to reconcile. unpack: type: object description: UnpackOptions properties: capabilities: type: array description: Capabilities are additional runtime layers to apply. If Runtime is set to false, this field must be empty. items: type: string infra: type: boolean default: false description: Infra is whether or not to schedule infrastructure objects. infraNamespace: type: string description: InfraNamespace is the K8s namespace the infra objects should be scheduled to. If provided, the metadata.namespace of unpacked infra objects is updated using Kustomize filters on unpack. provider: type: string description: Provider is the K8s cluster provider that should be unpacked. By default, it is the same cluster provider that Lumper was scheduled onto. If Runtime is true, this option cannot be set to a value that conflicts with Lumper's startup configuration (e.g., you cannot schedule non-GKE runtime resources to a GKE cluster) runtime: type: boolean default: false description: Runtime determines if runtime resources should be applied. By default, only the base runtime layer is applied. required: - force - name - prune - repo status: type: object default: observedGeneration: -1 description: UnpackedPalletStatus contains the readiness of the reconciled resources and an inventory of currently applied resources. properties: conditions: type: array items: type: object description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, \n type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: type: type: string description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ status: type: string description: status of the condition, one of True, False, Unknown. enum: - "True" - "False" - Unknown lastTransitionTime: type: string description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time message: type: string description: message is a human readable message indicating details about the transition. This may be an empty string. maxLength: 32768 observedGeneration: type: integer description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. format: int64 minimum: 0 reason: type: string description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ required: - lastTransitionTime - message - reason - status - type dependencies: type: string description: Dependencies is a stringified comman delimited list of inventory: type: object description: ResourceInventory contains a list of Kubernetes resource object references that have been applied. properties: entries: type: array description: Entries of Kubernetes resource object references. items: type: object description: ResourceRef contains the information necessary to locate a resource within a cluster. properties: id: type: string description: ID is the string representation of the Kubernetes resource object's metadata, in the format '___'. v: type: string description: Version is the API version of the Kubernetes resource object's kind. required: - id - v lastApplied: type: string description: LastApplied is the digest of the last artifact the controller successfully applied. lastAttempted: type: string description: LastAttempted is the digest of the last artifact the controller attempted to applied. lastHandledReconcileAt: type: string description: LastHandledReconcileAt holds the value of the most recent reconcile request value, so a change of the annotation value can be detected. observedGeneration: type: integer description: ObservedGeneration is the object.generation the last time that the controller reconciled the object. format: int64 shipment: type: string description: Shipment is the parent shipment that created the child unpackedpallet shortDigest: type: string description: ShortDigest is a truncated form of the sha256 Digest. statusAge: type: string description: StatusAge contains the time the status of an object was set. format: date-time served: true storage: true subresources: status: {}