@@ -4,28 +4,22 @@ import (
4
4
"context"
5
5
"errors"
6
6
"os"
7
- "strconv"
8
7
9
8
"github.com/kubernetes-sigs/alibaba-cloud-csi-driver/pkg/cloud/metadata"
10
9
cnfsv1beta1 "github.com/kubernetes-sigs/alibaba-cloud-csi-driver/pkg/cnfs/v1beta1"
11
10
"github.com/kubernetes-sigs/alibaba-cloud-csi-driver/pkg/features"
12
11
"github.com/kubernetes-sigs/alibaba-cloud-csi-driver/pkg/nas/cloud"
13
12
"github.com/kubernetes-sigs/alibaba-cloud-csi-driver/pkg/nas/interfaces"
14
13
"github.com/kubernetes-sigs/alibaba-cloud-csi-driver/pkg/options"
14
+ "github.com/kubernetes-sigs/alibaba-cloud-csi-driver/pkg/utils"
15
15
corev1 "k8s.io/api/core/v1"
16
- apierrors "k8s.io/apimachinery/pkg/api/errors"
17
16
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
18
17
"k8s.io/client-go/dynamic"
19
18
"k8s.io/client-go/kubernetes"
20
19
"k8s.io/klog/v2"
21
20
)
22
21
23
- const (
24
- configMapName = "csi-plugin"
25
- configMapNamespace = "kube-system"
26
-
27
- defaultAlinasMountProxySocket = "/run/cnfs/alinas-mounter.sock"
28
- )
22
+ const defaultAlinasMountProxySocket = "/run/cnfs/alinas-mounter.sock"
29
23
30
24
type ControllerConfig struct {
31
25
// cluster info
@@ -53,26 +47,19 @@ func mustGetKubeClients() (kubernetes.Interface, cnfsv1beta1.CNFSGetter) {
53
47
54
48
func GetControllerConfig (meta * metadata.Metadata ) (* ControllerConfig , error ) {
55
49
kubeClient , cnfsGetter := mustGetKubeClients ()
50
+ cm := utils .DefaultConfig ()
51
+
56
52
config := & ControllerConfig {
57
53
Region : metadata .MustGet (meta , metadata .RegionID ),
58
54
ClusterID : os .Getenv ("CLUSTER_ID" ),
59
55
KubeClient : kubeClient ,
60
56
CNFSGetter : cnfsGetter ,
61
57
NasClientFactory : cloud .NewNasClientFactory (),
62
- }
63
58
64
- cm , err := kubeClient .CoreV1 ().ConfigMaps (configMapNamespace ).Get (context .Background (), configMapName , metav1.GetOptions {})
65
- if err != nil {
66
- if ! apierrors .IsNotFound (err ) {
67
- return nil , err
68
- }
69
- } else {
70
- config .SkipSubpathCreation , _ = parseBool (cm .Data ["nas-fake-provision" ])
59
+ SkipSubpathCreation : cm .GetBool ("nas-fake-provision" , "NAS_FAKE_PROVISION" , false ),
60
+ EnableSubpathFinalizer : cm .GetBool ("nas-subpath-finalizer" , "ENABLE_NAS_SUBPATH_FINALIZER" , true ),
61
+ EnableRecycleBinCheck : cm .GetBool ("nas-recyclebin-check" , "ENABLE_NAS_RECYCLEBIN_CHECK" , false ),
71
62
}
72
-
73
- config .EnableSubpathFinalizer , _ = parseBool (os .Getenv ("ENABLE_NAS_SUBPATH_FINALIZER" ))
74
- config .EnableRecycleBinCheck , _ = parseBool (os .Getenv ("ENABLE_NAS_RECYCLEBIN_CHECK" ))
75
-
76
63
return config , nil
77
64
}
78
65
@@ -95,33 +82,19 @@ type NodeConfig struct {
95
82
96
83
func GetNodeConfig () (* NodeConfig , error ) {
97
84
kubeClient , cnfsGetter := mustGetKubeClients ()
98
- config := & NodeConfig {
99
- // enable nfs port check by default
100
- EnablePortCheck : true ,
101
- KubeClient : kubeClient ,
102
- CNFSGetter : cnfsGetter ,
103
- }
85
+ cm := utils .DefaultConfig ()
104
86
105
- // check if enable nfs port check
106
- if value := os .Getenv ("NAS_PORT_CHECK" ); value != "" {
107
- config .EnablePortCheck , _ = parseBool (value )
87
+ config := & NodeConfig {
88
+ KubeClient : kubeClient ,
89
+ CNFSGetter : cnfsGetter ,
90
+
91
+ EnablePortCheck : cm .GetBool ("nas-port-check" , "NAS_PORT_CHECK" , true ),
92
+ EnableVolumeStats : cm .GetBool ("nas-metric-enable" , "NAS_METRIC_BY_PLUGIN" , false ),
93
+ EnableEFCCache : cm .Get ("cnfs-cache-properties" , "" , "" ) != "" ||
94
+ cm .Get ("nas-efc-cache" , "" , "" ) != "" ,
95
+ EnableLosetup : cm .GetBool ("nas-losetup-enable" , "NAS_LOSETUP_ENABLE" , false ),
108
96
}
109
97
110
- // get csi-plugin configmap
111
- cm , err := kubeClient .CoreV1 ().ConfigMaps (configMapNamespace ).Get (context .Background (), configMapName , metav1.GetOptions {})
112
- if err != nil {
113
- if ! apierrors .IsNotFound (err ) {
114
- return nil , err
115
- }
116
- } else {
117
- if value := cm .Data ["nas-metric-enable" ]; value != "" {
118
- config .EnableVolumeStats , _ = parseBool (value )
119
- }
120
- config .EnableEFCCache = cm .Data ["cnfs-cache-properties" ] != "" || cm .Data ["nas-efc-cache" ] != ""
121
- }
122
- if value := os .Getenv ("NAS_METRIC_BY_PLUGIN" ); value != "" {
123
- config .EnableVolumeStats , _ = parseBool (value )
124
- }
125
98
if config .EnableVolumeStats {
126
99
klog .Info ("enabled nas volume stats" )
127
100
}
@@ -135,9 +108,6 @@ func GetNodeConfig() (*NodeConfig, error) {
135
108
config .NodeName = nodeName
136
109
137
110
// check if losetup enabled
138
- if value := os .Getenv ("NAS_LOSETUP_ENABLE" ); value != "" {
139
- config .EnableLosetup , _ = parseBool (value )
140
- }
141
111
if config .EnableLosetup {
142
112
klog .Info ("enabled nas losetup mode" )
143
113
for _ , addr := range node .Status .Addresses {
@@ -157,13 +127,3 @@ func GetNodeConfig() (*NodeConfig, error) {
157
127
158
128
return config , nil
159
129
}
160
-
161
- func parseBool (str string ) (bool , error ) {
162
- switch str {
163
- case "enable" , "enabled" , "yes" :
164
- return true , nil
165
- case "no" , "" :
166
- return false , nil
167
- }
168
- return strconv .ParseBool (str )
169
- }
0 commit comments