Skip to content

Commit 4ca0a63

Browse files
authored
Update O2IMS Provisioning Request CRD based on updates from O-RAN CR (#65)
The main change to the CRD to the status block and conditions fields, this is from the O-RAN.WG6.TS.O-CLOUD-IM.0-R004-v03.00 CR rev 00.03
1 parent dcd8d2b commit 4ca0a63

File tree

1 file changed

+112
-174
lines changed

1 file changed

+112
-174
lines changed

config/crd/bases/o2ims.provisioning.oran.org_provisioningrequests.yaml

+112-174
Original file line numberDiff line numberDiff line change
@@ -2,194 +2,132 @@
22
apiVersion: apiextensions.k8s.io/v1
33
kind: CustomResourceDefinition
44
metadata:
5-
annotations:
6-
controller-gen.kubebuilder.io/version: v0.15.0
75
name: provisioningrequests.o2ims.provisioning.oran.org
86
spec:
97
group: o2ims.provisioning.oran.org
108
names:
119
kind: ProvisioningRequest
1210
listKind: ProvisioningRequestList
1311
plural: provisioningrequests
14-
shortNames:
15-
- oranpr
1612
singular: provisioningrequest
1713
scope: Cluster
1814
versions:
19-
- additionalPrinterColumns:
20-
- jsonPath: .metadata.creationTimestamp
21-
name: Age
22-
type: date
23-
- jsonPath: .status.provisioningStatus.provisioningState
24-
name: ProvisionState
25-
type: string
26-
- jsonPath: .status.provisioningStatus.provisioningDetails
27-
name: ProvisionDetails
28-
type: string
29-
name: v1alpha1
30-
schema:
31-
openAPIV3Schema:
32-
description: ProvisioningRequest is the Schema for the provisioningrequests
33-
API
34-
properties:
35-
apiVersion:
36-
description: |-
37-
APIVersion defines the versioned schema of this representation of an object.
38-
Servers should convert recognized schemas to the latest internal value, and
39-
may reject unrecognized values.
40-
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
41-
type: string
42-
kind:
43-
description: |-
44-
Kind is a string value representing the REST resource this object represents.
45-
Servers may infer this from the endpoint the client submits requests to.
46-
Cannot be updated.
47-
In CamelCase.
48-
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
49-
type: string
50-
metadata:
51-
type: object
52-
spec:
53-
description: ProvisioningRequestSpec defines the desired state of ProvisioningRequest
54-
properties:
55-
description:
56-
description: Description specifies a brief description of this provisioning
57-
request, providing additional context or details.
58-
type: string
59-
extensions:
60-
description: Extensions holds additional custom key-value pairs that
61-
can be used to extend the cluster's configuration.
62-
type: object
63-
x-kubernetes-preserve-unknown-fields: true
64-
name:
65-
description: Name specifies a human-readable name for this provisioning
66-
request, intended for identification and descriptive purposes.
67-
type: string
68-
templateName:
69-
description: |-
70-
TemplateName defines the base name of the referenced ClusterTemplate.
71-
The full name of the ClusterTemplate is constructed as <TemplateName.TemplateVersion>.
72-
type: string
73-
templateParameters:
74-
description: TemplateParameters provides the input data that conforms
75-
to the OpenAPI v3 schema defined in the referenced ClusterTemplate's
76-
spec.templateParameterSchema.
77-
type: object
78-
x-kubernetes-preserve-unknown-fields: true
79-
templateVersion:
80-
description: |-
81-
TemplateVersion defines the version of the referenced ClusterTemplate.
82-
The full name of the ClusterTemplate is constructed as <TemplateName.TemplateVersion>.
83-
type: string
84-
required:
85-
- templateName
86-
- templateParameters
87-
- templateVersion
88-
type: object
89-
status:
90-
description: ProvisioningRequestStatus defines the observed state of ProvisioningRequest
91-
properties:
92-
conditions:
93-
items:
94-
description: "Condition contains details for one aspect of the current
95-
state of this API Resource.\n---\nThis struct is intended for
96-
direct use as an array at the field path .status.conditions. For
97-
example,\n\n\n\ttype FooStatus struct{\n\t // Represents the
98-
observations of a foo's current state.\n\t // Known .status.conditions.type
99-
are: \"Available\", \"Progressing\", and \"Degraded\"\n\t //
100-
+patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t
101-
\ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\"
102-
patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t
103-
\ // other fields\n\t}"
15+
- name: v1alpha1
16+
served: true
17+
storage: true
18+
schema:
19+
openAPIV3Schema:
20+
type: object
21+
properties:
22+
apiVersion:
23+
type: string
24+
description: |-
25+
APIVersion defines the versioned schema of this representation of an object.
26+
Servers should convert recognized schemas to the latest internal value, and
27+
may reject unrecognized values.
28+
The current apiVersion of this api is v1alpha1
29+
kind:
30+
type: string
31+
description: |-
32+
Kind is a string value representing the REST resource this object represents.
33+
Servers may infer this from the endpoint the client submits requests to.
34+
Cannot be updated.
35+
In CamelCase.
36+
The kind value for this api is ProvisioningRequest
37+
metadata:
38+
type: object
39+
properties:
40+
name:
41+
type: string
42+
description: |
43+
The name of the ProvisioningRequest custom resource instance contains the provisioningItemId.
44+
The provisioningItemId is the unique SMO provided identifier that the SMO will use to
45+
identify all resources provisioned by this provisioning request in interactions
46+
with the O-Cloud.
47+
spec:
48+
type: object
49+
properties:
50+
name:
51+
type: string
52+
description: |
53+
the name in this spec section is a human readable name intended for descriptive
54+
purposes, this name is not required to be unique and does not identify a provisioning
55+
request or any provisioned resources.
56+
description:
57+
type: string
58+
description: |
59+
A description of this provisioning request.
60+
templateName:
61+
type: string
62+
description: |
63+
templateName is the name of the template that the SMO wants to use to provision
64+
resources
65+
templateVersion:
66+
type: string
67+
description: |
68+
templateVersion is the version of the template that the SMO wants to use to provision
69+
resources. templateName and templateVersion together uniquely identify the template
70+
instance that the SMO wants to use in the provisioning request.
71+
templateParameters:
72+
type: object
73+
x-kubernetes-preserve-unknown-fields: true
74+
description: |
75+
templateParams carries the parameters required to provision resources using this template.
76+
The type is object as actual parameters are defined by the template.
77+
The template parameter schema itself is not defined here as it is template specific.
78+
The themplate parameter schema must be published by the template provider so that FOCOM can
79+
learn about required parameters and validate the same.
80+
The template parameter schema language must be standardized by O-RAN.
81+
required:
82+
- templateName
83+
- templateVersion
84+
- templateParameters
85+
status:
86+
type: object
87+
description: ProvisioningRequestStatus defines the observed state of ProvisioningRequest
88+
properties:
89+
provisionedResources:
90+
description: |
91+
The resources that have been successfully provisioned as part of the provisioning process.
10492
properties:
105-
lastTransitionTime:
106-
description: |-
107-
lastTransitionTime is the last time the condition transitioned from one status to another.
108-
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
109-
format: date-time
93+
oCloudNodeClusterId:
94+
description: |
95+
The identifier of the provisioned oCloud NodeCluster.
11096
type: string
111-
message:
112-
description: |-
113-
message is a human readable message indicating details about the transition.
114-
This may be an empty string.
115-
maxLength: 32768
97+
oCloudInfrastructureResourceIds:
98+
description: |
99+
The list of provisioned infrastructure resource ids.
100+
type: array
101+
items:
102+
type: string
103+
description: |
104+
The provisioned infrastructure resource id.
105+
type: object
106+
provisioningStatus:
107+
properties:
108+
provisioningUpdateTime:
109+
description: |
110+
The last update time of the provisioning status.
111+
format: date-time
116112
type: string
117-
observedGeneration:
118-
description: |-
119-
observedGeneration represents the .metadata.generation that the condition was set based upon.
120-
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
121-
with respect to the current state of the instance.
122-
format: int64
123-
minimum: 0
124-
type: integer
125-
reason:
126-
description: |-
127-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
128-
Producers of specific condition types may define expected values and meanings for this field,
129-
and whether the values are considered a guaranteed API.
130-
The value should be a CamelCase string.
131-
This field may not be empty.
132-
maxLength: 1024
133-
minLength: 1
134-
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
113+
provisioningMessage:
114+
description: |
115+
The details about the current state of the provisioning process.
135116
type: string
136-
status:
137-
description: status of the condition, one of True, False, Unknown.
117+
provisioningState:
118+
description: The current state of the provisioning process.
138119
enum:
139-
- "True"
140-
- "False"
141-
- Unknown
142-
type: string
143-
type:
144-
description: |-
145-
type of condition in CamelCase or in foo.example.com/CamelCase.
146-
---
147-
Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
148-
useful (see .node.status.conditions), the ability to deconflict is important.
149-
The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
150-
maxLength: 316
151-
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])$
120+
- progressing
121+
- fulfilled
122+
- failed
123+
- deleting
152124
type: string
153-
required:
154-
- lastTransitionTime
155-
- message
156-
- reason
157-
- status
158-
- type
159125
type: object
160-
type: array
161-
extensions:
162-
description: |-
163-
Extensions contain extra details about the resources and the configuration used for/by
164-
the ProvisioningRequest.
165-
type: object
166-
provisioningStatus:
167-
properties:
168-
provisionedResources:
169-
description: The resources that have been successfully provisioned
170-
as part of the provisioning process.
171-
properties:
172-
oCloudNodeClusterId:
173-
description: The identifier of the provisioned oCloud Node
174-
Cluster.
175-
type: string
176-
type: object
177-
provisioningDetails:
178-
description: The details about the current state of the provisioning
179-
process.
180-
type: string
181-
provisioningState:
182-
description: The current state of the provisioning process.
183-
enum:
184-
- progressing
185-
- fulfilled
186-
- failed
187-
- deleting
188-
type: string
189-
type: object
190-
type: object
191-
type: object
192-
served: true
193-
storage: true
194-
subresources:
195-
status: {}
126+
extensions:
127+
description: |-
128+
Extensions contain extra details about the resources and the configuration used for/by
129+
the ProvisioningRequest.
130+
type: object
131+
x-kubernetes-preserve-unknown-fields: true
132+
subresources:
133+
status: {}

0 commit comments

Comments
 (0)