--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: (unknown) name: unpackedpallets.warehouse.edge.ncr.com spec: group: warehouse.edge.ncr.com names: kind: UnpackedPallet listKind: UnpackedPalletList plural: unpackedpallets singular: unpackedpallet scope: Cluster versions: - additionalPrinterColumns: - jsonPath: .status.shortDigest name: Digest type: string - jsonPath: .status.conditions[?(@.type=="Ready")].status name: Ready type: string - jsonPath: .status.conditions[?(@.type=="Ready")].message name: Status type: string - jsonPath: .status.conditions[?(@.type=="Ready")].lastTransitionTime name: Status Age type: date - jsonPath: .spec.suspend name: Suspend type: string - jsonPath: .spec.prune name: Prune priority: 1 type: string - jsonPath: .status.shipment name: Shipment priority: 1 type: string - jsonPath: .spec.force name: Force priority: 1 type: string - jsonPath: .status.dependencies name: Dependencies priority: 1 type: string - jsonPath: .metadata.creationTimestamp name: Age type: date deprecated: true name: v1alpha1 schema: openAPIV3Schema: description: |- UnpackedPallet is an individual package that will be unpacked and scheduled to the cluster. 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: 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 type: string kind: 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 type: string metadata: type: object spec: properties: creds: 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: description: name is unique within a namespace to reference a secret resource. type: string namespace: description: namespace defines the space within which the secret name must be unique. type: string type: object x-kubernetes-map-type: atomic dependsOn: description: |- DependsOn is the list of UnpackedPallets that need to be successfully reconciled first. items: description: |- LocalObjectReference contains enough information to locate the referenced Kubernetes resource object. properties: name: description: Name of the referent. maxLength: 253 minLength: 1 type: string required: - name type: object type: array digest: description: |- Digest is the sha256 digest of the OCI artifact to apply to the cluster. Takes precedence over tag if set. type: string force: 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. type: boolean interval: default: 60s description: |- Interval is how often the object will be reconciled, in order to prevent drift. type: string name: description: |- Name is the unique Warehouse package name. It is typically equal to the last segment of an image repository string, depending on registry implementation e.g., gcr.io/foo/bar, where bar is the name of the package and gcr.io/foo/bar is the provided Repository string. Or, us-east1-docker.pkg.dev/ret-edge-pltf-infra/warehouse/nested/name where nested/name is the Name and the us-east1-docker.pkg.dev/ret-edge-pltf-infra/warehouse/nested/name is the Repository. An Artifact can not be resolved by Name alone. type: string packagePullOptions: description: |- PackagePullOptions are options used to configure pulling packages from remote registry, memory cache or disk layout. properties: pullPolicy: default: Always description: |- PackagePullPolicy is the strategy used to decide when a package should be pulled from remote registry, memory cache or disk layout TODO(aw185176): Support "Never" pull policy. enum: - Always - IfNotPresent type: string type: object parameters: additionalProperties: type: string description: |- Parameters are the key/value pairs that will be used while rendering manifests from unpacked pallets. type: object prune: 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. type: boolean repo: description: |- Repository is the image repository that the tag or digest should be pulled from, e.g., us-east1-docker.pkg.dev/ret-edge-pltf-infra/warehouse/lumperctl type: string retryInterval: default: 10s description: |- RetryInterval is how often to retry previously failed reconciliations. Defaults to Interval if not provided. type: string suspend: description: |- This flag tells the controller to suspend subsequent reconciliations, it does not apply to already started reconciliations. Defaults to false. type: boolean tag: description: |- Tag is a mutable reference to the OCI artifact to apply. Defaults to "latest" if neither Tag or Digest are set. type: string timeout: default: 120s description: |- Timeout is how long the controller will wait for the applied objects to reconcile. type: string unpack: description: UnpackOptions properties: capabilities: description: |- Capabilities are additional runtime layers to apply. If Runtime is set to false, this field must be empty. items: type: string type: array infra: default: false description: Infra is whether or not to schedule infrastructure objects. type: boolean infraNamespace: 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. type: string provider: 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) type: string runtime: default: false description: |- Runtime determines if runtime resources should be applied. By default, only the base runtime layer is applied. type: boolean type: object required: - force - name - prune - repo type: object status: default: observedGeneration: -1 description: |- UnpackedPalletStatus contains the readiness of the reconciled resources and an inventory of currently applied resources. properties: conditions: items: description: "Condition contains details for one aspect of the current state of this API Resource.\n---\nThis struct is intended for direct use as an array at the field path .status.conditions. For example,\n\n\n\ttype FooStatus struct{\n\t // Represents the observations of a foo's current state.\n\t // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t \ // other fields\n\t}" properties: lastTransitionTime: 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 type: string message: description: |- message is a human readable message indicating details about the transition. This may be an empty string. maxLength: 32768 type: string observedGeneration: 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 type: integer reason: 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_])?$ type: string status: description: status of the condition, one of True, False, Unknown. enum: - "True" - "False" - Unknown type: string type: 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])$ type: string required: - lastTransitionTime - message - reason - status - type type: object type: array dependencies: description: Dependencies is a stringified comman delimited list of type: string inventory: description: |- ResourceInventory contains a list of Kubernetes resource object references that have been applied. properties: entries: description: Entries of Kubernetes resource object references. items: description: ResourceRef contains the information necessary to locate a resource within a cluster. properties: id: description: |- ID is the string representation of the Kubernetes resource object's metadata, in the format '___'. type: string v: description: Version is the API version of the Kubernetes resource object's kind. type: string required: - id - v type: object type: array type: object lastApplied: description: |- LastApplied is the digest of the last artifact the controller successfully applied. type: string lastAttempted: description: |- LastAttempted is the digest of the last artifact the controller attempted to applied. type: string lastHandledReconcileAt: description: |- LastHandledReconcileAt holds the value of the most recent reconcile request value, so a change of the annotation value can be detected. type: string observedGeneration: description: |- ObservedGeneration is the object.generation the last time that the controller reconciled the object. format: int64 type: integer shipment: description: Shipment is the parent shipment that created the child unpackedpallet type: string shortDigest: description: ShortDigest is a truncated form of the sha256 Digest. type: string statusAge: description: StatusAge contains the time the status of an object was set. format: date-time type: string type: object type: object served: true storage: false subresources: status: {} - additionalPrinterColumns: - jsonPath: .status.shortDigest name: Digest type: string - jsonPath: .status.conditions[?(@.type=="Ready")].status name: Ready type: string - jsonPath: .status.conditions[?(@.type=="Ready")].message name: Status type: string - jsonPath: .status.conditions[?(@.type=="Ready")].lastTransitionTime name: Status Age type: date - jsonPath: .spec.suspend name: Suspend type: string - jsonPath: .spec.prune name: Prune priority: 1 type: string - jsonPath: .status.shipment name: Shipment priority: 1 type: string - jsonPath: .spec.force name: Force priority: 1 type: string - jsonPath: .status.dependencies name: Dependencies priority: 1 type: string - jsonPath: .metadata.creationTimestamp name: Age type: date name: v1alpha2 schema: openAPIV3Schema: description: |- UnpackedPallet is an individual package that will be unpacked and scheduled to the cluster. 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: 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 type: string kind: 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 type: string metadata: type: object spec: properties: creds: 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: description: name is unique within a namespace to reference a secret resource. type: string namespace: description: namespace defines the space within which the secret name must be unique. type: string type: object x-kubernetes-map-type: atomic dependsOn: description: |- DependsOn is the list of UnpackedPallets that need to be successfully reconciled first. items: description: |- LocalObjectReference contains enough information to locate the referenced Kubernetes resource object. properties: name: description: Name of the referent. maxLength: 253 minLength: 1 type: string required: - name type: object type: array digest: description: |- Digest is the sha256 digest of the OCI artifact to apply to the cluster. Takes precedence over tag if set. type: string force: 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. type: boolean interval: default: 60s description: |- Interval is how often the object will be reconciled, in order to prevent drift. type: string name: description: |- Name is the unique Warehouse package name. It is typically equal to the last segment of an image repository string, depending on registry implementation e.g., gcr.io/foo/bar, where bar is the name of the package and gcr.io/foo/bar is the provided Repository string. Or, us-east1-docker.pkg.dev/ret-edge-pltf-infra/warehouse/nested/name where nested/name is the Name and the us-east1-docker.pkg.dev/ret-edge-pltf-infra/warehouse/nested/name is the Repository. An Artifact can not be resolved by Name alone. type: string packagePullOptions: description: |- PackagePullOptions are options used to configure pulling packages from remote registry, memory cache or disk layout. properties: pullPolicy: default: Always description: |- PackagePullPolicy is the strategy used to decide when a package should be pulled from remote registry, memory cache or disk layout TODO(aw185176): Support "Never" pull policy. enum: - Always - IfNotPresent type: string type: object parameters: additionalProperties: type: string description: |- Parameters are the key/value pairs that will be used while rendering manifests from unpacked pallets. type: object prune: 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. type: boolean repo: description: |- Repository is the image repository that the tag or digest should be pulled from, e.g., us-east1-docker.pkg.dev/ret-edge-pltf-infra/warehouse/lumperctl type: string retryInterval: default: 10s description: |- RetryInterval is how often to retry previously failed reconciliations. Defaults to Interval if not provided. type: string suspend: description: |- This flag tells the controller to suspend subsequent reconciliations, it does not apply to already started reconciliations. Defaults to false. type: boolean tag: description: |- Tag is a mutable reference to the OCI artifact to apply. Defaults to "latest" if neither Tag or Digest are set. type: string timeout: default: 120s description: |- Timeout is how long the controller will wait for the applied objects to reconcile. type: string unpack: description: UnpackOptions properties: capabilities: description: |- Capabilities are additional runtime layers to apply. If Runtime is set to false, this field must be empty. items: type: string type: array infra: default: false description: Infra is whether or not to schedule infrastructure objects. type: boolean infraNamespace: 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. type: string provider: 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) type: string runtime: default: false description: |- Runtime determines if runtime resources should be applied. By default, only the base runtime layer is applied. type: boolean type: object required: - force - name - prune - repo type: object status: default: observedGeneration: -1 description: |- UnpackedPalletStatus contains the readiness of the reconciled resources and an inventory of currently applied resources. properties: conditions: items: description: "Condition contains details for one aspect of the current state of this API Resource.\n---\nThis struct is intended for direct use as an array at the field path .status.conditions. For example,\n\n\n\ttype FooStatus struct{\n\t // Represents the observations of a foo's current state.\n\t // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t \ // other fields\n\t}" properties: lastTransitionTime: 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 type: string message: description: |- message is a human readable message indicating details about the transition. This may be an empty string. maxLength: 32768 type: string observedGeneration: 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 type: integer reason: 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_])?$ type: string status: description: status of the condition, one of True, False, Unknown. enum: - "True" - "False" - Unknown type: string type: 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])$ type: string required: - lastTransitionTime - message - reason - status - type type: object type: array dependencies: description: Dependencies is a stringified comman delimited list of type: string inventory: description: |- ResourceInventory contains a list of Kubernetes resource object references that have been applied. properties: entries: description: Entries of Kubernetes resource object references. items: description: ResourceRef contains the information necessary to locate a resource within a cluster. properties: id: description: |- ID is the string representation of the Kubernetes resource object's metadata, in the format '___'. type: string v: description: Version is the API version of the Kubernetes resource object's kind. type: string required: - id - v type: object type: array type: object lastApplied: description: |- LastApplied is the digest of the last artifact the controller successfully applied. type: string lastAttempted: description: |- LastAttempted is the digest of the last artifact the controller attempted to applied. type: string lastHandledReconcileAt: description: |- LastHandledReconcileAt holds the value of the most recent reconcile request value, so a change of the annotation value can be detected. type: string observedGeneration: description: |- ObservedGeneration is the object.generation the last time that the controller reconciled the object. format: int64 type: integer shipment: description: Shipment is the parent shipment that created the child unpackedpallet type: string shortDigest: description: ShortDigest is a truncated form of the sha256 Digest. type: string statusAge: description: StatusAge contains the time the status of an object was set. format: date-time type: string type: object type: object served: true storage: true subresources: status: {}