mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-31 23:37:01 +00:00
Kubelet creates v1.CSINode
This commit is contained in:
parent
8f6ab81cd4
commit
d27fa9d890
@ -11,7 +11,7 @@ go_library(
|
|||||||
"//pkg/volume:go_default_library",
|
"//pkg/volume:go_default_library",
|
||||||
"//pkg/volume/util:go_default_library",
|
"//pkg/volume/util:go_default_library",
|
||||||
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/api/storage/v1beta1:go_default_library",
|
"//staging/src/k8s.io/api/storage/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
|
||||||
@ -48,7 +48,7 @@ go_test(
|
|||||||
"//pkg/volume/testing:go_default_library",
|
"//pkg/volume/testing:go_default_library",
|
||||||
"//pkg/volume/util:go_default_library",
|
"//pkg/volume/util:go_default_library",
|
||||||
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/api/storage/v1beta1:go_default_library",
|
"//staging/src/k8s.io/api/storage/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/api/resource:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/api/resource:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||||
|
@ -28,7 +28,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
storagev1beta1 "k8s.io/api/storage/v1beta1"
|
storagev1 "k8s.io/api/storage/v1"
|
||||||
"k8s.io/apimachinery/pkg/api/errors"
|
"k8s.io/apimachinery/pkg/api/errors"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
@ -72,7 +72,7 @@ type nodeUpdateFunc func(*v1.Node) (newNode *v1.Node, updated bool, err error)
|
|||||||
|
|
||||||
// Interface implements an interface for managing labels of a node
|
// Interface implements an interface for managing labels of a node
|
||||||
type Interface interface {
|
type Interface interface {
|
||||||
CreateCSINode() (*storagev1beta1.CSINode, error)
|
CreateCSINode() (*storagev1.CSINode, error)
|
||||||
|
|
||||||
// Updates or Creates the CSINode object with annotations for CSI Migration
|
// Updates or Creates the CSINode object with annotations for CSI Migration
|
||||||
InitializeCSINodeWithAnnotation() error
|
InitializeCSINodeWithAnnotation() error
|
||||||
@ -379,7 +379,7 @@ func (nim *nodeInfoManager) tryUpdateCSINode(
|
|||||||
maxAttachLimit int64,
|
maxAttachLimit int64,
|
||||||
topology map[string]string) error {
|
topology map[string]string) error {
|
||||||
|
|
||||||
nodeInfo, err := csiKubeClient.StorageV1beta1().CSINodes().Get(string(nim.nodeName), metav1.GetOptions{})
|
nodeInfo, err := csiKubeClient.StorageV1().CSINodes().Get(string(nim.nodeName), metav1.GetOptions{})
|
||||||
if nodeInfo == nil || errors.IsNotFound(err) {
|
if nodeInfo == nil || errors.IsNotFound(err) {
|
||||||
nodeInfo, err = nim.CreateCSINode()
|
nodeInfo, err = nim.CreateCSINode()
|
||||||
}
|
}
|
||||||
@ -412,7 +412,7 @@ func (nim *nodeInfoManager) InitializeCSINodeWithAnnotation() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (nim *nodeInfoManager) tryInitializeCSINodeWithAnnotation(csiKubeClient clientset.Interface) error {
|
func (nim *nodeInfoManager) tryInitializeCSINodeWithAnnotation(csiKubeClient clientset.Interface) error {
|
||||||
nodeInfo, err := csiKubeClient.StorageV1beta1().CSINodes().Get(string(nim.nodeName), metav1.GetOptions{})
|
nodeInfo, err := csiKubeClient.StorageV1().CSINodes().Get(string(nim.nodeName), metav1.GetOptions{})
|
||||||
if nodeInfo == nil || errors.IsNotFound(err) {
|
if nodeInfo == nil || errors.IsNotFound(err) {
|
||||||
// CreateCSINode will set the annotation
|
// CreateCSINode will set the annotation
|
||||||
_, err = nim.CreateCSINode()
|
_, err = nim.CreateCSINode()
|
||||||
@ -424,14 +424,14 @@ func (nim *nodeInfoManager) tryInitializeCSINodeWithAnnotation(csiKubeClient cli
|
|||||||
annotationModified := setMigrationAnnotation(nim.migratedPlugins, nodeInfo)
|
annotationModified := setMigrationAnnotation(nim.migratedPlugins, nodeInfo)
|
||||||
|
|
||||||
if annotationModified {
|
if annotationModified {
|
||||||
_, err := csiKubeClient.StorageV1beta1().CSINodes().Update(nodeInfo)
|
_, err := csiKubeClient.StorageV1().CSINodes().Update(nodeInfo)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (nim *nodeInfoManager) CreateCSINode() (*storagev1beta1.CSINode, error) {
|
func (nim *nodeInfoManager) CreateCSINode() (*storagev1.CSINode, error) {
|
||||||
|
|
||||||
kubeClient := nim.volumeHost.GetKubeClient()
|
kubeClient := nim.volumeHost.GetKubeClient()
|
||||||
if kubeClient == nil {
|
if kubeClient == nil {
|
||||||
@ -448,7 +448,7 @@ func (nim *nodeInfoManager) CreateCSINode() (*storagev1beta1.CSINode, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
nodeInfo := &storagev1beta1.CSINode{
|
nodeInfo := &storagev1.CSINode{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: string(nim.nodeName),
|
Name: string(nim.nodeName),
|
||||||
OwnerReferences: []metav1.OwnerReference{
|
OwnerReferences: []metav1.OwnerReference{
|
||||||
@ -460,17 +460,17 @@ func (nim *nodeInfoManager) CreateCSINode() (*storagev1beta1.CSINode, error) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Spec: storagev1beta1.CSINodeSpec{
|
Spec: storagev1.CSINodeSpec{
|
||||||
Drivers: []storagev1beta1.CSINodeDriver{},
|
Drivers: []storagev1.CSINodeDriver{},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
setMigrationAnnotation(nim.migratedPlugins, nodeInfo)
|
setMigrationAnnotation(nim.migratedPlugins, nodeInfo)
|
||||||
|
|
||||||
return csiKubeClient.StorageV1beta1().CSINodes().Create(nodeInfo)
|
return csiKubeClient.StorageV1().CSINodes().Create(nodeInfo)
|
||||||
}
|
}
|
||||||
|
|
||||||
func setMigrationAnnotation(migratedPlugins map[string](func() bool), nodeInfo *storagev1beta1.CSINode) (modified bool) {
|
func setMigrationAnnotation(migratedPlugins map[string](func() bool), nodeInfo *storagev1.CSINode) (modified bool) {
|
||||||
if migratedPlugins == nil {
|
if migratedPlugins == nil {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
@ -512,7 +512,7 @@ func setMigrationAnnotation(migratedPlugins map[string](func() bool), nodeInfo *
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (nim *nodeInfoManager) installDriverToCSINode(
|
func (nim *nodeInfoManager) installDriverToCSINode(
|
||||||
nodeInfo *storagev1beta1.CSINode,
|
nodeInfo *storagev1.CSINode,
|
||||||
driverName string,
|
driverName string,
|
||||||
driverNodeID string,
|
driverNodeID string,
|
||||||
maxAttachLimit int64,
|
maxAttachLimit int64,
|
||||||
@ -530,7 +530,7 @@ func (nim *nodeInfoManager) installDriverToCSINode(
|
|||||||
|
|
||||||
specModified := true
|
specModified := true
|
||||||
// Clone driver list, omitting the driver that matches the given driverName
|
// Clone driver list, omitting the driver that matches the given driverName
|
||||||
newDriverSpecs := []storagev1beta1.CSINodeDriver{}
|
newDriverSpecs := []storagev1.CSINodeDriver{}
|
||||||
for _, driverInfoSpec := range nodeInfo.Spec.Drivers {
|
for _, driverInfoSpec := range nodeInfo.Spec.Drivers {
|
||||||
if driverInfoSpec.Name == driverName {
|
if driverInfoSpec.Name == driverName {
|
||||||
if driverInfoSpec.NodeID == driverNodeID &&
|
if driverInfoSpec.NodeID == driverNodeID &&
|
||||||
@ -550,7 +550,7 @@ func (nim *nodeInfoManager) installDriverToCSINode(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Append new driver
|
// Append new driver
|
||||||
driverSpec := storagev1beta1.CSINodeDriver{
|
driverSpec := storagev1.CSINodeDriver{
|
||||||
Name: driverName,
|
Name: driverName,
|
||||||
NodeID: driverNodeID,
|
NodeID: driverNodeID,
|
||||||
TopologyKeys: topologyKeys.List(),
|
TopologyKeys: topologyKeys.List(),
|
||||||
@ -563,7 +563,7 @@ func (nim *nodeInfoManager) installDriverToCSINode(
|
|||||||
maxAttachLimit = math.MaxInt32
|
maxAttachLimit = math.MaxInt32
|
||||||
}
|
}
|
||||||
m := int32(maxAttachLimit)
|
m := int32(maxAttachLimit)
|
||||||
driverSpec.Allocatable = &storagev1beta1.VolumeNodeResources{Count: &m}
|
driverSpec.Allocatable = &storagev1.VolumeNodeResources{Count: &m}
|
||||||
} else {
|
} else {
|
||||||
klog.Errorf("Invalid attach limit value %d cannot be added to CSINode object for %q", maxAttachLimit, driverName)
|
klog.Errorf("Invalid attach limit value %d cannot be added to CSINode object for %q", maxAttachLimit, driverName)
|
||||||
}
|
}
|
||||||
@ -572,7 +572,7 @@ func (nim *nodeInfoManager) installDriverToCSINode(
|
|||||||
newDriverSpecs = append(newDriverSpecs, driverSpec)
|
newDriverSpecs = append(newDriverSpecs, driverSpec)
|
||||||
nodeInfo.Spec.Drivers = newDriverSpecs
|
nodeInfo.Spec.Drivers = newDriverSpecs
|
||||||
|
|
||||||
_, err := csiKubeClient.StorageV1beta1().CSINodes().Update(nodeInfo)
|
_, err := csiKubeClient.StorageV1().CSINodes().Update(nodeInfo)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -602,7 +602,7 @@ func (nim *nodeInfoManager) tryUninstallDriverFromCSINode(
|
|||||||
csiKubeClient clientset.Interface,
|
csiKubeClient clientset.Interface,
|
||||||
csiDriverName string) error {
|
csiDriverName string) error {
|
||||||
|
|
||||||
nodeInfoClient := csiKubeClient.StorageV1beta1().CSINodes()
|
nodeInfoClient := csiKubeClient.StorageV1().CSINodes()
|
||||||
nodeInfo, err := nodeInfoClient.Get(string(nim.nodeName), metav1.GetOptions{})
|
nodeInfo, err := nodeInfoClient.Get(string(nim.nodeName), metav1.GetOptions{})
|
||||||
if err != nil && errors.IsNotFound(err) {
|
if err != nil && errors.IsNotFound(err) {
|
||||||
return nil
|
return nil
|
||||||
|
@ -27,7 +27,7 @@ import (
|
|||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
storage "k8s.io/api/storage/v1beta1"
|
storage "k8s.io/api/storage/v1"
|
||||||
"k8s.io/apimachinery/pkg/api/errors"
|
"k8s.io/apimachinery/pkg/api/errors"
|
||||||
"k8s.io/apimachinery/pkg/api/resource"
|
"k8s.io/apimachinery/pkg/api/resource"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
@ -985,7 +985,7 @@ func TestInstallCSIDriverExistingAnnotation(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
nodeInfo, err := client.StorageV1beta1().CSINodes().Get(nodeName, metav1.GetOptions{})
|
nodeInfo, err := client.StorageV1().CSINodes().Get(nodeName, metav1.GetOptions{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("error getting CSINode: %v", err)
|
t.Errorf("error getting CSINode: %v", err)
|
||||||
continue
|
continue
|
||||||
@ -1074,7 +1074,7 @@ func test(t *testing.T, addNodeInfo bool, csiNodeInfoEnabled bool, testcases []t
|
|||||||
|
|
||||||
if csiNodeInfoEnabled {
|
if csiNodeInfoEnabled {
|
||||||
// CSINode validation
|
// CSINode validation
|
||||||
nodeInfo, err := client.StorageV1beta1().CSINodes().Get(nodeName, metav1.GetOptions{})
|
nodeInfo, err := client.StorageV1().CSINodes().Get(nodeName, metav1.GetOptions{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !errors.IsNotFound(err) {
|
if !errors.IsNotFound(err) {
|
||||||
t.Errorf("error getting CSINode: %v", err)
|
t.Errorf("error getting CSINode: %v", err)
|
||||||
|
Loading…
Reference in New Issue
Block a user