Skip to content

Commit 8762a5d

Browse files
committed
contentlibraryitem controller builder v1a2
1 parent bdc1fa0 commit 8762a5d

21 files changed

+2943
-14
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -417,7 +417,7 @@ generate-external-manifests: $(CONTROLLER_GEN)
417417
generate-external-manifests: ## Generate manifests for the external types for testing
418418
API_MOD_DIR=$(shell go mod download -json $(IMG_REGISTRY_OP_API_SLUG) | grep '"Dir":' | awk '{print $$2}' | tr -d '",') && \
419419
$(CONTROLLER_GEN) \
420-
paths=$${API_MOD_DIR}/api/v1alpha1/... \
420+
paths={$${API_MOD_DIR}/api/v1alpha1/...,$${API_MOD_DIR}/api/v1alpha2/...} \
421421
crd:crdVersions=v1 \
422422
output:crd:dir=$(EXTERNAL_CRD_ROOT) \
423423
output:none

config/crd/external-crds/imageregistry.vmware.com_clustercontentlibraries.yaml

Lines changed: 285 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ spec:
1212
listKind: ClusterContentLibraryList
1313
plural: clustercontentlibraries
1414
shortNames:
15-
- cclib
15+
- clib
16+
- clibrary
1617
singular: clustercontentlibrary
1718
scope: Cluster
1819
versions:
@@ -57,6 +58,15 @@ spec:
5758
description: ClusterContentLibrarySpec defines the desired state of a
5859
ClusterContentLibrary.
5960
properties:
61+
resourceNamingStrategy:
62+
default: FROM_ITEM_ID
63+
description: |-
64+
ResourceNamingStrategy defines the naming strategy for item resources in this content library. If not specified,
65+
naming strategy FROM_ITEM_ID will be used to generate item resource names. This field is immutable.
66+
enum:
67+
- FROM_ITEM_ID
68+
- PREFER_ITEM_SOURCE_ID
69+
type: string
6070
uuid:
6171
description: UUID is the identifier which uniquely identifies the
6272
library in vCenter. This field is immutable.
@@ -160,6 +170,16 @@ spec:
160170
SecurityPolicyID defines the security policy applied to this library.
161171
Setting this field will make the library secure.
162172
type: string
173+
serverGUID:
174+
description: ServerGUID indicates the unique identifier of the vCenter
175+
server where the library exists.
176+
type: string
177+
state:
178+
description: State indicates the state of this library.
179+
enum:
180+
- Active
181+
- InMaintenance
182+
type: string
163183
storageBacking:
164184
description: StorageBacking indicates the default storage backing
165185
available for this library in vCenter.
@@ -217,6 +237,270 @@ spec:
217237
type: object
218238
type: object
219239
served: true
240+
storage: false
241+
subresources:
242+
status: {}
243+
- additionalPrinterColumns:
244+
- jsonPath: .status.name
245+
name: DisplayName
246+
type: string
247+
- jsonPath: .metadata.creationTimestamp
248+
name: Age
249+
type: date
250+
name: v1alpha2
251+
schema:
252+
openAPIV3Schema:
253+
description: |-
254+
ClusterContentLibrary is the schema for the cluster scoped content library
255+
API.
256+
properties:
257+
apiVersion:
258+
description: |-
259+
APIVersion defines the versioned schema of this representation of an object.
260+
Servers should convert recognized schemas to the latest internal value, and
261+
may reject unrecognized values.
262+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
263+
type: string
264+
kind:
265+
description: |-
266+
Kind is a string value representing the REST resource this object represents.
267+
Servers may infer this from the endpoint the client submits requests to.
268+
Cannot be updated.
269+
In CamelCase.
270+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
271+
type: string
272+
metadata:
273+
type: object
274+
spec:
275+
description: ClusterContentLibrarySpec defines the desired state of a
276+
ClusterContentLibrary.
277+
properties:
278+
id:
279+
description: |-
280+
ID describes the unique identifier used to find the library in vCenter.
281+
282+
Please note this value may differ depending on spec.type:
283+
- Type=ContentLibrary -- ID is a content library UUID.
284+
- Type=Inventory -- ID is a vSphere folder managed object ID.
285+
type: string
286+
libraryType:
287+
default: ContentLibrary
288+
description: |-
289+
Type describes the type of library.
290+
291+
Defaults to ContentLibrary.
292+
enum:
293+
- ContentLibrary
294+
- Inventory
295+
type: string
296+
resourceNamingStrategy:
297+
default: FromItemID
298+
description: |-
299+
ResourceNamingStrategy describes the naming strategy for item resources
300+
in this content library.
301+
302+
This field is immutable and defaults to FromItemID.
303+
304+
Please note, this is optional and not present on all libraries.
305+
enum:
306+
- FromItemID
307+
- PreferItemSourceID
308+
type: string
309+
required:
310+
- id
311+
type: object
312+
status:
313+
description: ContentLibraryStatus defines the observed state of ContentLibrary.
314+
properties:
315+
conditions:
316+
description: Conditions describes the current condition information
317+
of the library.
318+
items:
319+
description: Condition contains details for one aspect of the current
320+
state of this API Resource.
321+
properties:
322+
lastTransitionTime:
323+
description: |-
324+
lastTransitionTime is the last time the condition transitioned from one status to another.
325+
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
326+
format: date-time
327+
type: string
328+
message:
329+
description: |-
330+
message is a human readable message indicating details about the transition.
331+
This may be an empty string.
332+
maxLength: 32768
333+
type: string
334+
observedGeneration:
335+
description: |-
336+
observedGeneration represents the .metadata.generation that the condition was set based upon.
337+
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
338+
with respect to the current state of the instance.
339+
format: int64
340+
minimum: 0
341+
type: integer
342+
reason:
343+
description: |-
344+
reason contains a programmatic identifier indicating the reason for the condition's last transition.
345+
Producers of specific condition types may define expected values and meanings for this field,
346+
and whether the values are considered a guaranteed API.
347+
The value should be a CamelCase string.
348+
This field may not be empty.
349+
maxLength: 1024
350+
minLength: 1
351+
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
352+
type: string
353+
status:
354+
description: status of the condition, one of True, False, Unknown.
355+
enum:
356+
- "True"
357+
- "False"
358+
- Unknown
359+
type: string
360+
type:
361+
description: type of condition in CamelCase or in foo.example.com/CamelCase.
362+
maxLength: 316
363+
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])$
364+
type: string
365+
required:
366+
- lastTransitionTime
367+
- message
368+
- reason
369+
- status
370+
- type
371+
type: object
372+
type: array
373+
creationTime:
374+
description: |-
375+
CreationTime describes the date and time when this library was created
376+
in vCenter.
377+
format: date-time
378+
type: string
379+
description:
380+
description: Description describes a human-readable description for
381+
the library.
382+
type: string
383+
lastModifiedTime:
384+
description: |-
385+
LastModifiedTime describes the date and time when the library was last
386+
updated.
387+
This field is updated only when the library properties are changed.
388+
This field is not updated when a library item is added, modified,
389+
deleted, or its content is changed.
390+
format: date-time
391+
type: string
392+
lastSyncTime:
393+
description: |-
394+
LastSyncTime describes the date and time when this library was last
395+
synchronized.
396+
397+
Please note, this is only applicable for subscribed libraries.
398+
format: date-time
399+
type: string
400+
name:
401+
description: Name describes the display name for the library.
402+
type: string
403+
publishInfo:
404+
description: |-
405+
PublishInfo describes how the library is published.
406+
407+
Please note, this is only applicable for published libraries.
408+
properties:
409+
published:
410+
description: |-
411+
Published indicates if the local library is published so that it can be
412+
subscribed to by a remote subscribed library.
413+
type: boolean
414+
url:
415+
description: |-
416+
URL to which the library metadata is published by the vSphere Content
417+
Library Service.
418+
This value can be used to set the SubscriptionInfo.URL property when
419+
creating a subscribed library.
420+
type: string
421+
required:
422+
- published
423+
- url
424+
type: object
425+
securityPolicyID:
426+
description: |-
427+
SecurityPolicyID describes the security policy applied to the library.
428+
429+
Please note, this is optional and not present on all libraries.
430+
type: string
431+
serverGUID:
432+
description: |-
433+
ServerGUID describes the unique identifier of the vCenter server where
434+
the library exists.
435+
type: string
436+
state:
437+
description: State describes the current state of the library.
438+
enum:
439+
- Active
440+
- InMaintenance
441+
type: string
442+
storageBacking:
443+
description: StorageBackings describes the default storage backing
444+
for the library.
445+
items:
446+
description: |-
447+
StorageBacking describes the default storage backing which is available for
448+
the library.
449+
properties:
450+
datastoreID:
451+
description: |-
452+
DatastoreID indicates the identifier of the datastore used to store the
453+
content in the library for the "Datastore" storageType in vCenter.
454+
type: string
455+
type:
456+
description: Type indicates the type of storage where the content
457+
would be stored.
458+
enum:
459+
- Datastore
460+
- Other
461+
type: string
462+
required:
463+
- type
464+
type: object
465+
type: array
466+
subscriptionInfo:
467+
description: |-
468+
SubscriptionInfo describes how the library is subscribed.
469+
470+
This field is only present for subscribed libraries.
471+
properties:
472+
automaticSync:
473+
description: |-
474+
AutomaticSync indicates whether the library should participate in
475+
automatic library synchronization.
476+
type: boolean
477+
onDemand:
478+
description: |-
479+
OnDemand indicates whether a library item’s content will be synchronized
480+
only on demand.
481+
type: boolean
482+
url:
483+
description: |-
484+
URL of the endpoint where the metadata for the remotely published library
485+
is being served.
486+
The value from PublishInfo.URL of the published library should be used
487+
while creating a subscribed library.
488+
type: string
489+
required:
490+
- automaticSync
491+
- onDemand
492+
- url
493+
type: object
494+
version:
495+
description: |-
496+
Version describes an optional value that tracks changes to the library's
497+
metadata, such as its name or description.
498+
499+
Please note, this is optional and not present on all libraries.
500+
type: string
501+
type: object
502+
type: object
503+
served: true
220504
storage: true
221505
subresources:
222506
status: {}

0 commit comments

Comments
 (0)