...
“kubectl create -f bpa_v1alpha1_provisioning_crd.yaml” See below for the CRD definition.
|
BPA CRD Yaml File (*_crd.yaml)
Code Block | ||
---|---|---|
| ||
apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: name: provisionings.bpa.akraino.org spec: group: bpa.akraino.org names: kind: Provisioning listKind: ProvisioningList plural: provisionings singular: provisioning shortNames: - bpa scope: Namespaced subresources: status: {} validation: openAPIV3Schema: properties: apiVersion: description: type: string kind: description: type: string metadata: type: object spec: type: object status: type: object version: v1alpha1 versions: - name: v1alpha1 served: true storage: true |
...
Provisioning Agent Object Definition( *_types,go)
The provisioning_types.go file is the API for the provisioning agent custom resource.
Code Block |
---|
// ProvisioningSpec defines the desired state of Provisioning
type ProvisioningSpec struct {
Masters []Master `json:"master,omitempty"`
Workers []Worker `json:"worker,omitempty"`
Replicas int32 `json:"replicas,omitempty"`
}
// ProvisioningStatus defines the observed state of
// Provisioning
type ProvisioningStatus struct {
// Names of provisioning agent pods when a deployment
// is running
PodAgents []string `json"podAgents,omitempty"`
}
// Provisioning is the Schema for the provisionings API
type Provisioning struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ProvisioningSpec `json:"spec,omitempty"`
Status ProvisioningStatus `json:"status,omitempty"`
}
// ProvisioningList contains a list of Provisioning
type ProvisioningList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Provisioning `json:"items"`
}
// master struct contains resource requirements for a master
// node
type Master struct {
CPU int32 `json:"cpu,omitempty"`
Memory string `json:"memory,omitempty"`
}
// worker struct contains resource requirements for a worker node
type Worker struct {
CPU int32 `json:"cpu,omitempty"`
Memory string `json:"memory,omitempty"`
SRIOV bool `json:"sriov,omitempty"`
QAT bool `json:"qat,omitempty"`
}
|
// ProvisioningSpec defines the desired state of Provisioning type ProvisioningSpec struct { Masters []Master `json:"master,omitempty"` Workers []Worker `json:"worker,omitempty"` Replicas int32 `json:"replicas,omitempty"` } // ProvisioningStatus defines the observed state of // Provisioning type ProvisioningStatus struct { // Names of provisioning agent pods when a deployment // is running PodAgents []string `json"podAgents,omitempty"` } // Provisioning is the Schema for the provisionings API type Provisioning struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ProvisioningSpec `json:"spec,omitempty"` Status ProvisioningStatus `json:"status,omitempty"` } // ProvisioningList contains a list of Provisioning type ProvisioningList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []Provisioning `json:"items"` } // master struct contains resource requirements for a master // node type Master struct { CPU int32 `json:"cpu,omitempty"` Memory string `json:"memory,omitempty"` } // worker struct contains resource requirements for a worker node type Worker struct { CPU int32 `json:"cpu,omitempty"` Memory string `json:"memory,omitempty"` SRIOV bool `json:"sriov,omitempty"` QAT bool `json:"qat,omitempty"` } |
...