Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

kubectl create -f bpa_v1alpha1_provisioning_crd.yaml”  See below for the CRD definition.

|

 BPA CRD Yaml File (*_crd.yaml)

Code Block
languageyml
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"`

}

...