1apiVersion: v1
2kind: Namespace
3metadata:
4 name: warehouse-system
5 labels:
6 workload.edge.ncr.com: platform
7 annotations:
8 pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
9 pallet.edge.ncr.com/name: lumper-controller
10 pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
11 pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
12 pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/edge-foundation'
13 pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
14---
15apiVersion: apiextensions.k8s.io/v1
16kind: CustomResourceDefinition
17metadata:
18 name: shipments.warehouse.edge.ncr.com
19 annotations:
20 controller-gen.kubebuilder.io/version: (unknown)
21 pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
22 pallet.edge.ncr.com/name: lumper-controller
23 pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
24 pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
25 pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/edge-foundation'
26 pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
27 labels: {}
28spec:
29 group: warehouse.edge.ncr.com
30 names:
31 kind: Shipment
32 listKind: ShipmentList
33 plural: shipments
34 singular: shipment
35 scope: Cluster
36 versions:
37 - name: v1alpha1
38 additionalPrinterColumns:
39 - name: Age
40 type: date
41 jsonPath: .metadata.creationTimestamp
42 - name: Ready
43 type: string
44 jsonPath: .status.conditions[?(@.type=="Ready")].status
45 - name: Status
46 type: string
47 jsonPath: .status.conditions[?(@.type=="Ready")].message
48 schema:
49 openAPIV3Schema:
50 type: object
51 description: Shipment is one or more Pallets that will be unpacked and scheduled to the cluster.
52 properties:
53 apiVersion:
54 type: string
55 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'
56 kind:
57 type: string
58 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'
59 metadata:
60 type: object
61 spec:
62 type: object
63 properties:
64 creds:
65 type: object
66 description: Credentials is an optional secret reference pointing to a secret containing registry credentials. The secret must be of type kubernetes.io/dockerconfigjson
67 properties:
68 name:
69 type: string
70 description: name is unique within a namespace to reference a secret resource.
71 namespace:
72 type: string
73 description: namespace defines the space within which the secret name must be unique.
74 force:
75 type: boolean
76 default: false
77 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.
78 interval:
79 type: string
80 default: 60s
81 description: Interval is how often the object will be reconciled, in order to prevent drift.
82 packagePullOptions:
83 type: object
84 description: PackagePullOptions are options used to configure pulling packages from remote registry, memory cache or disk layout.
85 properties:
86 pullPolicy:
87 type: string
88 default: Always
89 description: "PackagePullPolicy is the strategy used to decide when a package should be pulled from remote registry, memory cache or disk layout \n TODO(aw185176): Support \"Never\" pull policy."
90 enum:
91 - Always
92 - IfNotPresent
93 pallets:
94 type: array
95 description: "Pallets is the set of Pallet packages that will be pulled and reconciled, without the base repository string. Each Pallet reference is completed from the Repository field. \n All Pallets are resolved into a single, deduped graph to ensure that there is no more than one version of a package. How conflicts are resolved is configurable via Resolution"
96 items:
97 type: object
98 description: BaseArtifact describes a reference to a Warehouse package without a repository that can be embedded in a K8s resource spec.
99 properties:
100 name:
101 type: string
102 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.
103 digest:
104 type: string
105 description: Digest is the sha256 digest of the OCI artifact to apply to the cluster. Takes precedence over tag if set.
106 tag:
107 type: string
108 description: Tag is a mutable reference to the OCI artifact to apply. Defaults to "latest" if neither Tag or Digest are set.
109 required:
110 - name
111 minItems: 1
112 prune:
113 type: boolean
114 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.
115 rendering:
116 type: array
117 description: Rendering is the configuration controlling how the unpacked K8s manifests are rendered before applying.
118 items:
119 type: object
120 properties:
121 configMapRef:
122 type: object
123 description: ConfigMapRef references a K8s ConfigMap to pull parameters from. Mutually exclusive with Variables.
124 properties:
125 name:
126 type: string
127 description: Name of the referent.
128 maxLength: 253
129 minLength: 1
130 namespace:
131 type: string
132 description: Namespace of the referent, when not specified it acts as LocalObjectReference.
133 maxLength: 253
134 minLength: 1
135 required:
136 - name
137 mapping:
138 type: object
139 additionalProperties:
140 type: string
141 description: 'Mapping of rendering parameters to specific keys in the referenced ConfigMap, e.g.: {gcp_project_id: gcp.projectId} where ''gcp.projectId'' is a key in the ConfigMap.'
142 parameters:
143 type: object
144 additionalProperties:
145 type: string
146 description: Parameters are inlined parameters. Mutually exclusive with ConfigMapRef.
147 repo:
148 type: string
149 description: Repository is the base path of the image repositories that Pallets will be pulled from. It MUST be the entire repository string up to the Pallet package name, e.g. gcr.io/foo if packages are gcr.io/foo/bar, gcr.io/foo/bax, ... All packages must come from the same repository because resolving the graph of packages may discover the same digest in multiple repositories. This controller won't make value judgements as to which repository should be used in conflict.
150 resolution:
151 type: object
152 description: Resolution is the rules for resolving conflicts in the resolved graph for the pallets included in this shipment. By default, a Shipment will be marked Stalled if it references a list of pallets which don't produce a consistent (e.g., no conflicting digests) resolved graph.
153 properties:
154 acceptFirst:
155 type: boolean
156 description: AcceptFirst will accept the first digest it encounters for each package during graph resolution. If the package exists in the graph with a differing digest, it is dropped. This is the simplest way to force a set of conflicting packages to produce a consistent graph, but doesn't provide any additional control
157 pins:
158 type: array
159 description: Pins are a mapping of package names to digests that are forced during graph resolution, analogous to pinning transitive dependency versions using `replace` directives in a `go.mod` file.
160 items:
161 type: object
162 description: Pin is a specific digest associated with a package name, used to "pin" the package to that digest when resolving package graphs or reflect the result of a resolved set of packages.
163 properties:
164 name:
165 type: string
166 digest:
167 type: string
168 description: Digest is the digest for the package reference (e.g., `shoot:latest`, Pallet.Digest())
169 resolvedDigest:
170 type: string
171 description: ResolvedDigest is the digest of the provider-specific variant pulled from the package based on where it is being scheduled.
172 required:
173 - digest
174 - name
175 - resolvedDigest
176 retryInterval:
177 type: string
178 default: 10s
179 description: RetryInterval is how often to retry previously failed reconciliations. Defaults to Interval if not provided.
180 suspend:
181 type: boolean
182 description: This flag tells the controller to suspend subsequent reconciliations, it does not apply to already started reconciliations. Defaults to false.
183 timeout:
184 type: string
185 default: 120s
186 description: Timeout is how long the controller will wait for the applied objects to reconcile.
187 unpack:
188 type: object
189 description: UnpackOptions
190 properties:
191 capabilities:
192 type: array
193 description: Capabilities are additional runtime layers to apply. If Runtime is set to false, this field must be empty.
194 items:
195 type: string
196 infra:
197 type: boolean
198 default: false
199 description: Infra is whether or not to schedule infrastructure objects.
200 infraNamespace:
201 type: string
202 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.
203 provider:
204 type: string
205 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)
206 runtime:
207 type: boolean
208 default: false
209 description: Runtime determines if runtime resources should be applied. By default, only the base runtime layer is applied.
210 required:
211 - force
212 - pallets
213 - prune
214 - repo
215 status:
216 type: object
217 default:
218 observedGeneration: -1
219 description: ShipmentStatus contains the readiness of the reconciled resources and an inventory of currently applied resources.
220 properties:
221 conditions:
222 type: array
223 items:
224 type: object
225 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 }"
226 properties:
227 type:
228 type: string
229 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)
230 maxLength: 316
231 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])$
232 status:
233 type: string
234 description: status of the condition, one of True, False, Unknown.
235 enum:
236 - "True"
237 - "False"
238 - Unknown
239 lastTransitionTime:
240 type: string
241 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.
242 format: date-time
243 message:
244 type: string
245 description: message is a human readable message indicating details about the transition. This may be an empty string.
246 maxLength: 32768
247 observedGeneration:
248 type: integer
249 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.
250 format: int64
251 minimum: 0
252 reason:
253 type: string
254 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.
255 maxLength: 1024
256 minLength: 1
257 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
258 required:
259 - lastTransitionTime
260 - message
261 - reason
262 - status
263 - type
264 inventory:
265 type: object
266 description: Inventory is the K8s resources that this object manages.
267 properties:
268 entries:
269 type: array
270 description: Entries of Kubernetes resource object references.
271 items:
272 type: object
273 description: ResourceRef contains the information necessary to locate a resource within a cluster.
274 properties:
275 id:
276 type: string
277 description: ID is the string representation of the Kubernetes resource object's metadata, in the format '<namespace>_<name>_<group>_<kind>'.
278 v:
279 type: string
280 description: Version is the API version of the Kubernetes resource object's kind.
281 required:
282 - id
283 - v
284 lastApplied:
285 type: array
286 description: LastApplied is the last set of resolved artifacts that were applied.
287 items:
288 type: object
289 description: Pin is a specific digest associated with a package name, used to "pin" the package to that digest when resolving package graphs or reflect the result of a resolved set of packages.
290 properties:
291 name:
292 type: string
293 digest:
294 type: string
295 description: Digest is the digest for the package reference (e.g., `shoot:latest`, Pallet.Digest())
296 resolvedDigest:
297 type: string
298 description: ResolvedDigest is the digest of the provider-specific variant pulled from the package based on where it is being scheduled.
299 required:
300 - digest
301 - name
302 - resolvedDigest
303 lastAttempted:
304 type: array
305 description: LastAttempted is the last set of resolved artifacts that the controller attempted to apply.
306 items:
307 type: object
308 description: Pin is a specific digest associated with a package name, used to "pin" the package to that digest when resolving package graphs or reflect the result of a resolved set of packages.
309 properties:
310 name:
311 type: string
312 digest:
313 type: string
314 description: Digest is the digest for the package reference (e.g., `shoot:latest`, Pallet.Digest())
315 resolvedDigest:
316 type: string
317 description: ResolvedDigest is the digest of the provider-specific variant pulled from the package based on where it is being scheduled.
318 required:
319 - digest
320 - name
321 - resolvedDigest
322 lastHandledReconcileAt:
323 type: string
324 description: LastHandledReconcileAt holds the value of the most recent reconcile request value, so a change of the annotation value can be detected.
325 observedGeneration:
326 type: integer
327 format: int64
328 served: true
329 storage: true
330 subresources:
331 status: {}
332---
333apiVersion: apiextensions.k8s.io/v1
334kind: CustomResourceDefinition
335metadata:
336 name: unpackedpallets.warehouse.edge.ncr.com
337 annotations:
338 controller-gen.kubebuilder.io/version: (unknown)
339 pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
340 pallet.edge.ncr.com/name: lumper-controller
341 pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
342 pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
343 pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/edge-foundation'
344 pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
345 labels: {}
346spec:
347 group: warehouse.edge.ncr.com
348 names:
349 kind: UnpackedPallet
350 listKind: UnpackedPalletList
351 plural: unpackedpallets
352 singular: unpackedpallet
353 scope: Cluster
354 versions:
355 - name: v1alpha1
356 additionalPrinterColumns:
357 - name: Digest
358 type: string
359 jsonPath: .status.shortDigest
360 - name: Ready
361 type: string
362 jsonPath: .status.conditions[?(@.type=="Ready")].status
363 - name: Status
364 type: string
365 jsonPath: .status.conditions[?(@.type=="Ready")].message
366 - name: Status Age
367 type: date
368 jsonPath: .status.conditions[?(@.type=="Ready")].lastTransitionTime
369 - name: Prune
370 type: string
371 priority: 1
372 jsonPath: .spec.prune
373 - name: Suspend
374 type: string
375 priority: 1
376 jsonPath: .spec.suspend
377 - name: Shipment
378 type: string
379 priority: 1
380 jsonPath: .status.shipment
381 - name: Force
382 type: string
383 priority: 1
384 jsonPath: .spec.force
385 - name: Dependencies
386 type: string
387 priority: 1
388 jsonPath: .status.dependencies
389 - name: Age
390 type: date
391 jsonPath: .metadata.creationTimestamp
392 schema:
393 openAPIV3Schema:
394 type: object
395 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."
396 properties:
397 apiVersion:
398 type: string
399 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'
400 kind:
401 type: string
402 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'
403 metadata:
404 type: object
405 spec:
406 type: object
407 properties:
408 name:
409 type: string
410 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.
411 creds:
412 type: object
413 description: Credentials is an optional secret reference pointing to a secret containing registry credentials. The secret must be of type kubernetes.io/dockerconfigjson
414 properties:
415 name:
416 type: string
417 description: name is unique within a namespace to reference a secret resource.
418 namespace:
419 type: string
420 description: namespace defines the space within which the secret name must be unique.
421 dependsOn:
422 type: array
423 description: DependsOn is the list of UnpackedPallets that need to be successfully reconciled first.
424 items:
425 type: object
426 description: LocalObjectReference contains enough information to locate the referenced Kubernetes resource object.
427 properties:
428 name:
429 type: string
430 description: Name of the referent.
431 maxLength: 253
432 minLength: 1
433 required:
434 - name
435 digest:
436 type: string
437 description: Digest is the sha256 digest of the OCI artifact to apply to the cluster. Takes precedence over tag if set.
438 force:
439 type: boolean
440 default: false
441 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.
442 interval:
443 type: string
444 default: 60s
445 description: Interval is how often the object will be reconciled, in order to prevent drift.
446 packagePullOptions:
447 type: object
448 description: PackagePullOptions are options used to configure pulling packages from remote registry, memory cache or disk layout.
449 properties:
450 pullPolicy:
451 type: string
452 default: Always
453 description: "PackagePullPolicy is the strategy used to decide when a package should be pulled from remote registry, memory cache or disk layout \n TODO(aw185176): Support \"Never\" pull policy."
454 enum:
455 - Always
456 - IfNotPresent
457 parameters:
458 type: object
459 additionalProperties:
460 type: string
461 description: Parameters are the key/value pairs that will be used while rendering manifests from unpacked pallets.
462 prune:
463 type: boolean
464 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.
465 repo:
466 type: string
467 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
468 retryInterval:
469 type: string
470 default: 10s
471 description: RetryInterval is how often to retry previously failed reconciliations. Defaults to Interval if not provided.
472 suspend:
473 type: boolean
474 description: This flag tells the controller to suspend subsequent reconciliations, it does not apply to already started reconciliations. Defaults to false.
475 tag:
476 type: string
477 description: Tag is a mutable reference to the OCI artifact to apply. Defaults to "latest" if neither Tag or Digest are set.
478 timeout:
479 type: string
480 default: 120s
481 description: Timeout is how long the controller will wait for the applied objects to reconcile.
482 unpack:
483 type: object
484 description: UnpackOptions
485 properties:
486 capabilities:
487 type: array
488 description: Capabilities are additional runtime layers to apply. If Runtime is set to false, this field must be empty.
489 items:
490 type: string
491 infra:
492 type: boolean
493 default: false
494 description: Infra is whether or not to schedule infrastructure objects.
495 infraNamespace:
496 type: string
497 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.
498 provider:
499 type: string
500 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)
501 runtime:
502 type: boolean
503 default: false
504 description: Runtime determines if runtime resources should be applied. By default, only the base runtime layer is applied.
505 required:
506 - force
507 - name
508 - prune
509 - repo
510 status:
511 type: object
512 default:
513 observedGeneration: -1
514 description: UnpackedPalletStatus contains the readiness of the reconciled resources and an inventory of currently applied resources.
515 properties:
516 conditions:
517 type: array
518 items:
519 type: object
520 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 }"
521 properties:
522 type:
523 type: string
524 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)
525 maxLength: 316
526 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])$
527 status:
528 type: string
529 description: status of the condition, one of True, False, Unknown.
530 enum:
531 - "True"
532 - "False"
533 - Unknown
534 lastTransitionTime:
535 type: string
536 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.
537 format: date-time
538 message:
539 type: string
540 description: message is a human readable message indicating details about the transition. This may be an empty string.
541 maxLength: 32768
542 observedGeneration:
543 type: integer
544 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.
545 format: int64
546 minimum: 0
547 reason:
548 type: string
549 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.
550 maxLength: 1024
551 minLength: 1
552 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
553 required:
554 - lastTransitionTime
555 - message
556 - reason
557 - status
558 - type
559 dependencies:
560 type: string
561 description: Dependencies is a stringified comman delimited list of
562 inventory:
563 type: object
564 description: ResourceInventory contains a list of Kubernetes resource object references that have been applied.
565 properties:
566 entries:
567 type: array
568 description: Entries of Kubernetes resource object references.
569 items:
570 type: object
571 description: ResourceRef contains the information necessary to locate a resource within a cluster.
572 properties:
573 id:
574 type: string
575 description: ID is the string representation of the Kubernetes resource object's metadata, in the format '<namespace>_<name>_<group>_<kind>'.
576 v:
577 type: string
578 description: Version is the API version of the Kubernetes resource object's kind.
579 required:
580 - id
581 - v
582 lastApplied:
583 type: string
584 description: LastApplied is the digest of the last artifact the controller successfully applied.
585 lastAttempted:
586 type: string
587 description: LastAttempted is the digest of the last artifact the controller attempted to applied.
588 lastHandledReconcileAt:
589 type: string
590 description: LastHandledReconcileAt holds the value of the most recent reconcile request value, so a change of the annotation value can be detected.
591 observedGeneration:
592 type: integer
593 description: ObservedGeneration is the object.generation the last time that the controller reconciled the object.
594 format: int64
595 shipment:
596 type: string
597 description: Shipment is the parent shipment that created the child unpackedpallet
598 shortDigest:
599 type: string
600 description: ShortDigest is a truncated form of the sha256 Digest.
601 statusAge:
602 type: string
603 description: StatusAge contains the time the status of an object was set.
604 format: date-time
605 served: true
606 storage: true
607 subresources:
608 status: {}
609---
610apiVersion: v1
611kind: ServiceAccount
612metadata:
613 name: lumperctl
614 namespace: warehouse-system
615 annotations:
616 pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
617 pallet.edge.ncr.com/name: lumper-controller
618 pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
619 pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
620 pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/edge-foundation'
621 pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
622 labels: {}
623---
624apiVersion: rbac.authorization.k8s.io/v1
625kind: ClusterRole
626metadata:
627 name: lumperctl
628 annotations:
629 pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
630 pallet.edge.ncr.com/name: lumper-controller
631 pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
632 pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
633 pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/edge-foundation'
634 pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
635 labels: {}
636rules:
637- resources:
638 - configmaps
639 - secrets
640 - serviceaccounts
641 apiGroups:
642 - ""
643 verbs:
644 - get
645 - list
646 - watch
647- resources:
648 - events
649 apiGroups:
650 - ""
651 verbs:
652 - create
653 - patch
654- resources:
655 - shipments/finalizers
656 apiGroups:
657 - warehouse.edge.ncr.com
658 verbs:
659 - create
660 - delete
661 - get
662 - patch
663 - update
664- resources:
665 - unpackedpallets
666 apiGroups:
667 - warehouse.edge.ncr.com
668 verbs:
669 - create
670 - delete
671 - get
672 - list
673 - patch
674 - update
675 - watch
676- resources:
677 - unpackedpallets/finalizers
678 apiGroups:
679 - warehouse.edge.ncr.com
680 verbs:
681 - create
682 - delete
683 - get
684 - patch
685 - update
686- resources:
687 - unpackedpallets/status
688 apiGroups:
689 - warehouse.edge.ncr.com
690 verbs:
691 - get
692 - patch
693 - update
694---
695apiVersion: rbac.authorization.k8s.io/v1
696kind: ClusterRoleBinding
697metadata:
698 name: lumperctl
699 annotations:
700 pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
701 pallet.edge.ncr.com/name: lumper-controller
702 pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
703 pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
704 pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/edge-foundation'
705 pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
706 labels: {}
707roleRef:
708 name: lumperctl
709 kind: ClusterRole
710 apiGroup: rbac.authorization.k8s.io
711subjects:
712- name: lumperctl
713 namespace: lumperctl
714 kind: ServiceAccount
715---
716apiVersion: rbac.authorization.k8s.io/v1
717kind: ClusterRoleBinding
718metadata:
719 name: warehouse-cluster-reconciler
720 annotations:
721 pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
722 pallet.edge.ncr.com/name: lumper-controller
723 pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
724 pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
725 pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/edge-foundation'
726 pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
727 labels: {}
728roleRef:
729 name: cluster-admin
730 kind: ClusterRole
731 apiGroup: rbac.authorization.k8s.io
732subjects:
733- name: lumperctl
734 namespace: warehouse-system
735 kind: ServiceAccount
736---
737apiVersion: v1
738kind: ConfigMap
739metadata:
740 name: lumper-options
741 namespace: warehouse-system
742 annotations:
743 pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
744 pallet.edge.ncr.com/name: lumper-controller
745 pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
746 pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
747 pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/edge-foundation'
748 pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
749 labels: {}
750data:
751 CACHE_PATH: /cache/lumper
752 DEPENDENCY_REQUEUE_INTERVAL: 30s
753 DISABLE_DISK_CACHE: "true"
754 MEMORY_CACHE_LIMIT: "500"
755 SHIPMENT_CONCURRENCY: "6"
756 UNPACKED_PALLET_CONCURRENCY: "24"
757---
758apiVersion: v1
759kind: Service
760metadata:
761 name: lumperctl
762 labels:
763 platform.edge.ncr.com/component: lumperctl
764 namespace: warehouse-system
765 annotations:
766 pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
767 pallet.edge.ncr.com/name: lumper-controller
768 pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
769 pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
770 pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/edge-foundation'
771 pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
772spec:
773 selector:
774 platform.edge.ncr.com/component: lumperctl
775 ports:
776 - name: metrics
777 port: 8080
778---
779apiVersion: apps/v1
780kind: Deployment
781metadata:
782 name: lumperctl
783 namespace: warehouse-system
784 annotations:
785 pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
786 pallet.edge.ncr.com/name: lumper-controller
787 pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
788 pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
789 pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/edge-foundation'
790 pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
791 labels: {}
792spec:
793 replicas: 1
794 selector:
795 matchLabels:
796 platform.edge.ncr.com/component: lumperctl
797 strategy:
798 type: RollingUpdate
799 template:
800 metadata:
801 labels:
802 platform.edge.ncr.com/component: lumperctl
803 annotations:
804 pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
805 pallet.edge.ncr.com/name: lumper-controller
806 pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
807 pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
808 pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/edge-foundation'
809 pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
810 spec:
811 containers:
812 - args:
813 - --cluster-provider=${cluster_provider}
814 env:
815 - name: GOOGLE_APPLICATION_CREDENTIALS
816 value: /opt/secrets/gcp-api-key/key.json
817 envFrom:
818 - configMapRef:
819 name: lumper-options
820 - configMapRef:
821 name: lumper-user-options
822 optional: true
823 image: us-east1-docker.pkg.dev/ret-edge-pltf-infra/workloads/lumperctl@sha256:4b2ac8dc39d9487882e25b04155529f2c2cddb6366b045077626b3f6462501f1
824 imagePullPolicy: IfNotPresent
825 name: lumperctl
826 ports:
827 - containerPort: 8080
828 name: metrics
829 resources:
830 limits:
831 cpu: 1000m
832 memory: 1Gi
833 requests:
834 cpu: 512m
835 memory: 512Mi
836 volumeMounts:
837 - mountPath: /cache/lumper
838 name: lumper-cache
839 - mountPath: /opt/secrets/gcp-api-key
840 name: gcp-api-key
841 readOnly: true
842 imagePullSecrets:
843 - name: edge-docker-pull-secret
844 serviceAccountName: lumperctl
845 volumes:
846 - emptyDir: {}
847 name: lumper-cache
848 - name: gcp-api-key
849 secret:
850 secretName: gcp-api-key
851---
852apiVersion: external-secrets.io/v1beta1
853kind: ExternalSecret
854metadata:
855 name: gcp-api-key
856 namespace: warehouse-system
857 annotations:
858 pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
859 pallet.edge.ncr.com/name: lumper-controller
860 pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
861 pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
862 pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/edge-foundation'
863 pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
864 labels: {}
865spec:
866 data:
867 - remoteRef:
868 key: ${pallet_name}-${cluster_uuid}-gcp-api-key
869 secretKey: key.json
870 refreshInterval: 1m
871 secretStoreRef:
872 name: gcp-provider
873 kind: ClusterSecretStore
874 target:
875 name: gcp-api-key
876 creationPolicy: Owner
View as plain text