mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 03:11:40 +00:00
Introduce new CSINodeInfo
CRD API Object
This commit is contained in:
parent
bed2c39631
commit
c3a275252f
@ -14,6 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// Package v1alpha1 provides alpha API for CSI API objects.
|
||||||
// +k8s:deepcopy-gen=package,register
|
// +k8s:deepcopy-gen=package,register
|
||||||
// +groupName=csi.storage.k8s.io
|
// +groupName=csi.storage.k8s.io
|
||||||
// +k8s:openapi-gen=true
|
// +k8s:openapi-gen=true
|
||||||
|
@ -34,8 +34,10 @@ func Resource(resource string) schema.GroupResource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
// SchemeBuilder collects schemas to build.
|
||||||
SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
|
SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
|
||||||
AddToScheme = SchemeBuilder.AddToScheme
|
// AddToScheme is used by generated client to add this scheme to the generated client.
|
||||||
|
AddToScheme = SchemeBuilder.AddToScheme
|
||||||
)
|
)
|
||||||
|
|
||||||
// Adds the list of known types to the given scheme.
|
// Adds the list of known types to the given scheme.
|
||||||
@ -43,6 +45,8 @@ func addKnownTypes(scheme *runtime.Scheme) error {
|
|||||||
scheme.AddKnownTypes(SchemeGroupVersion,
|
scheme.AddKnownTypes(SchemeGroupVersion,
|
||||||
&CSIDriver{},
|
&CSIDriver{},
|
||||||
&CSIDriverList{},
|
&CSIDriverList{},
|
||||||
|
&CSINodeInfo{},
|
||||||
|
&CSINodeInfoList{},
|
||||||
)
|
)
|
||||||
|
|
||||||
metav1.AddToGroupVersion(scheme, SchemeGroupVersion)
|
metav1.AddToGroupVersion(scheme, SchemeGroupVersion)
|
||||||
|
@ -74,3 +74,44 @@ type CSIDriverSpec struct {
|
|||||||
// +optional
|
// +optional
|
||||||
PodInfoRequiredOnMount *bool `json:"podInfoRequiredOnMount"`
|
PodInfoRequiredOnMount *bool `json:"podInfoRequiredOnMount"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// +genclient
|
||||||
|
// +genclient:nonNamespaced
|
||||||
|
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||||
|
|
||||||
|
// CSINodeInfo holds information about all CSI drivers installed on a node.
|
||||||
|
type CSINodeInfo struct {
|
||||||
|
metav1.TypeMeta `json:",inline"`
|
||||||
|
// ObjectMeta.Name must be node name.
|
||||||
|
metav1.ObjectMeta `json:"metadata,omitempty"`
|
||||||
|
|
||||||
|
// List of CSI drivers running on the node and their properties.
|
||||||
|
CSIDrivers []CSIDriverInfo `json:"csiDrivers"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// CSIDriverInfo contains information about one CSI driver installed on a node.
|
||||||
|
type CSIDriverInfo struct {
|
||||||
|
// Driver is the name of the CSI driver that this object refers to.
|
||||||
|
// This MUST be the same name returned by the CSI GetPluginName() call for
|
||||||
|
// that driver.
|
||||||
|
Driver string `json:"driver"`
|
||||||
|
|
||||||
|
// ID of the node from the driver point of view.
|
||||||
|
NodeID string `json:"nodeID"`
|
||||||
|
|
||||||
|
// Topology keys reported by the driver on the node.
|
||||||
|
TopologyKeys []string `json:"topologyKeys"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||||
|
|
||||||
|
// CSINodeInfoList is a collection of CSINodeInfo objects.
|
||||||
|
type CSINodeInfoList struct {
|
||||||
|
metav1.TypeMeta `json:",inline"`
|
||||||
|
// Standard list metadata
|
||||||
|
// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
|
||||||
|
// +optional
|
||||||
|
metav1.ListMeta `json:"metadata,omitempty"`
|
||||||
|
// Items is the list of CSINodeInfo
|
||||||
|
Items []CSINodeInfo `json:"items"`
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user