Kubelet creates v1.CSINode
This commit is contained in:
		@@ -11,7 +11,7 @@ go_library(
 | 
			
		||||
        "//pkg/volume:go_default_library",
 | 
			
		||||
        "//pkg/volume/util: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/apis/meta/v1: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/util: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/resource:go_default_library",
 | 
			
		||||
        "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
 | 
			
		||||
 
 | 
			
		||||
@@ -28,7 +28,7 @@ import (
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	v1 "k8s.io/api/core/v1"
 | 
			
		||||
	storagev1beta1 "k8s.io/api/storage/v1beta1"
 | 
			
		||||
	storagev1 "k8s.io/api/storage/v1"
 | 
			
		||||
	"k8s.io/apimachinery/pkg/api/errors"
 | 
			
		||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
			
		||||
	"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
 | 
			
		||||
type Interface interface {
 | 
			
		||||
	CreateCSINode() (*storagev1beta1.CSINode, error)
 | 
			
		||||
	CreateCSINode() (*storagev1.CSINode, error)
 | 
			
		||||
 | 
			
		||||
	// Updates or Creates the CSINode object with annotations for CSI Migration
 | 
			
		||||
	InitializeCSINodeWithAnnotation() error
 | 
			
		||||
@@ -379,7 +379,7 @@ func (nim *nodeInfoManager) tryUpdateCSINode(
 | 
			
		||||
	maxAttachLimit int64,
 | 
			
		||||
	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) {
 | 
			
		||||
		nodeInfo, err = nim.CreateCSINode()
 | 
			
		||||
	}
 | 
			
		||||
@@ -412,7 +412,7 @@ func (nim *nodeInfoManager) InitializeCSINodeWithAnnotation() 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) {
 | 
			
		||||
		// CreateCSINode will set the annotation
 | 
			
		||||
		_, err = nim.CreateCSINode()
 | 
			
		||||
@@ -424,14 +424,14 @@ func (nim *nodeInfoManager) tryInitializeCSINodeWithAnnotation(csiKubeClient cli
 | 
			
		||||
	annotationModified := setMigrationAnnotation(nim.migratedPlugins, nodeInfo)
 | 
			
		||||
 | 
			
		||||
	if annotationModified {
 | 
			
		||||
		_, err := csiKubeClient.StorageV1beta1().CSINodes().Update(nodeInfo)
 | 
			
		||||
		_, err := csiKubeClient.StorageV1().CSINodes().Update(nodeInfo)
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (nim *nodeInfoManager) CreateCSINode() (*storagev1beta1.CSINode, error) {
 | 
			
		||||
func (nim *nodeInfoManager) CreateCSINode() (*storagev1.CSINode, error) {
 | 
			
		||||
 | 
			
		||||
	kubeClient := nim.volumeHost.GetKubeClient()
 | 
			
		||||
	if kubeClient == nil {
 | 
			
		||||
@@ -448,7 +448,7 @@ func (nim *nodeInfoManager) CreateCSINode() (*storagev1beta1.CSINode, error) {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	nodeInfo := &storagev1beta1.CSINode{
 | 
			
		||||
	nodeInfo := &storagev1.CSINode{
 | 
			
		||||
		ObjectMeta: metav1.ObjectMeta{
 | 
			
		||||
			Name: string(nim.nodeName),
 | 
			
		||||
			OwnerReferences: []metav1.OwnerReference{
 | 
			
		||||
@@ -460,17 +460,17 @@ func (nim *nodeInfoManager) CreateCSINode() (*storagev1beta1.CSINode, error) {
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		Spec: storagev1beta1.CSINodeSpec{
 | 
			
		||||
			Drivers: []storagev1beta1.CSINodeDriver{},
 | 
			
		||||
		Spec: storagev1.CSINodeSpec{
 | 
			
		||||
			Drivers: []storagev1.CSINodeDriver{},
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	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 {
 | 
			
		||||
		return false
 | 
			
		||||
	}
 | 
			
		||||
@@ -512,7 +512,7 @@ func setMigrationAnnotation(migratedPlugins map[string](func() bool), nodeInfo *
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (nim *nodeInfoManager) installDriverToCSINode(
 | 
			
		||||
	nodeInfo *storagev1beta1.CSINode,
 | 
			
		||||
	nodeInfo *storagev1.CSINode,
 | 
			
		||||
	driverName string,
 | 
			
		||||
	driverNodeID string,
 | 
			
		||||
	maxAttachLimit int64,
 | 
			
		||||
@@ -530,7 +530,7 @@ func (nim *nodeInfoManager) installDriverToCSINode(
 | 
			
		||||
 | 
			
		||||
	specModified := true
 | 
			
		||||
	// Clone driver list, omitting the driver that matches the given driverName
 | 
			
		||||
	newDriverSpecs := []storagev1beta1.CSINodeDriver{}
 | 
			
		||||
	newDriverSpecs := []storagev1.CSINodeDriver{}
 | 
			
		||||
	for _, driverInfoSpec := range nodeInfo.Spec.Drivers {
 | 
			
		||||
		if driverInfoSpec.Name == driverName {
 | 
			
		||||
			if driverInfoSpec.NodeID == driverNodeID &&
 | 
			
		||||
@@ -550,7 +550,7 @@ func (nim *nodeInfoManager) installDriverToCSINode(
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Append new driver
 | 
			
		||||
	driverSpec := storagev1beta1.CSINodeDriver{
 | 
			
		||||
	driverSpec := storagev1.CSINodeDriver{
 | 
			
		||||
		Name:         driverName,
 | 
			
		||||
		NodeID:       driverNodeID,
 | 
			
		||||
		TopologyKeys: topologyKeys.List(),
 | 
			
		||||
@@ -563,7 +563,7 @@ func (nim *nodeInfoManager) installDriverToCSINode(
 | 
			
		||||
				maxAttachLimit = math.MaxInt32
 | 
			
		||||
			}
 | 
			
		||||
			m := int32(maxAttachLimit)
 | 
			
		||||
			driverSpec.Allocatable = &storagev1beta1.VolumeNodeResources{Count: &m}
 | 
			
		||||
			driverSpec.Allocatable = &storagev1.VolumeNodeResources{Count: &m}
 | 
			
		||||
		} else {
 | 
			
		||||
			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)
 | 
			
		||||
	nodeInfo.Spec.Drivers = newDriverSpecs
 | 
			
		||||
 | 
			
		||||
	_, err := csiKubeClient.StorageV1beta1().CSINodes().Update(nodeInfo)
 | 
			
		||||
	_, err := csiKubeClient.StorageV1().CSINodes().Update(nodeInfo)
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -602,7 +602,7 @@ func (nim *nodeInfoManager) tryUninstallDriverFromCSINode(
 | 
			
		||||
	csiKubeClient clientset.Interface,
 | 
			
		||||
	csiDriverName string) error {
 | 
			
		||||
 | 
			
		||||
	nodeInfoClient := csiKubeClient.StorageV1beta1().CSINodes()
 | 
			
		||||
	nodeInfoClient := csiKubeClient.StorageV1().CSINodes()
 | 
			
		||||
	nodeInfo, err := nodeInfoClient.Get(string(nim.nodeName), metav1.GetOptions{})
 | 
			
		||||
	if err != nil && errors.IsNotFound(err) {
 | 
			
		||||
		return nil
 | 
			
		||||
 
 | 
			
		||||
@@ -27,7 +27,7 @@ import (
 | 
			
		||||
 | 
			
		||||
	"github.com/stretchr/testify/assert"
 | 
			
		||||
	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/resource"
 | 
			
		||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
			
		||||
@@ -985,7 +985,7 @@ func TestInstallCSIDriverExistingAnnotation(t *testing.T) {
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// Assert
 | 
			
		||||
		nodeInfo, err := client.StorageV1beta1().CSINodes().Get(nodeName, metav1.GetOptions{})
 | 
			
		||||
		nodeInfo, err := client.StorageV1().CSINodes().Get(nodeName, metav1.GetOptions{})
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			t.Errorf("error getting CSINode: %v", err)
 | 
			
		||||
			continue
 | 
			
		||||
@@ -1074,7 +1074,7 @@ func test(t *testing.T, addNodeInfo bool, csiNodeInfoEnabled bool, testcases []t
 | 
			
		||||
 | 
			
		||||
		if csiNodeInfoEnabled {
 | 
			
		||||
			// CSINode validation
 | 
			
		||||
			nodeInfo, err := client.StorageV1beta1().CSINodes().Get(nodeName, metav1.GetOptions{})
 | 
			
		||||
			nodeInfo, err := client.StorageV1().CSINodes().Get(nodeName, metav1.GetOptions{})
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				if !errors.IsNotFound(err) {
 | 
			
		||||
					t.Errorf("error getting CSINode: %v", err)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user