@@ -11,6 +11,7 @@ import (
11
11
"github.com/storageos/init/script"
12
12
"github.com/storageos/init/script/runner"
13
13
14
+ v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
14
15
"k8s.io/client-go/kubernetes"
15
16
restclient "k8s.io/client-go/rest"
16
17
)
@@ -38,17 +39,17 @@ func main() {
38
39
os .Exit (1 )
39
40
}
40
41
42
+ // This is in k8s environment.
43
+ kubeclient , err := newK8SClient ()
44
+ if err != nil {
45
+ log .Fatal (err )
46
+ }
47
+
41
48
// Attempt to get storageos node image.
42
49
43
50
if * nodeImage == "" {
44
51
var imageInfo info.ImageInfoer
45
52
46
- // This is in k8s environment.
47
- kubeclient , err := newK8SClient ()
48
- if err != nil {
49
- log .Fatal (err )
50
- }
51
-
52
53
// Create a k8s image info.
53
54
name , namespace := getParamsForK8SImageInfo (* dsName , * dsNamespace )
54
55
imageInfo = k8s .NewImageInfo (kubeclient ).SetDaemonSet (name , namespace )
@@ -88,6 +89,21 @@ func main() {
88
89
if err := runScripts (run , allScripts , scriptEnvVar ); err != nil {
89
90
log .Fatalf ("init failed: %v" , err )
90
91
}
92
+
93
+ node , err := kubeclient .CoreV1 ().Nodes ().Get (os .Getenv ("NODE" ), v1.GetOptions {})
94
+ if err != nil {
95
+ log .Fatalf ("failed to get node from name \" %s\" : %v" , os .Getenv ("NODE" ), err )
96
+ }
97
+
98
+ file , err := os .Create ("/var/lib/storageos/init_envs.sh" )
99
+ if err != nil {
100
+ log .Fatalf ("failed to create file init_envs.sh: %v" , err )
101
+ }
102
+ defer file .Close ()
103
+
104
+ // add env variables as key/value pairs
105
+ file .WriteString (fmt .Sprintf ("NODE_TOPOLOGY_ZONE=%s\n " , node .Labels ["topology.kubernetes.io/zone" ]))
106
+ log .Printf ("stored in env file: NODE_TOPOLOGY_ZONE=%s" , node .Labels ["topology.kubernetes.io/zone" ])
91
107
}
92
108
93
109
// NewK8SClient attempts to get k8s cluster configuration and return a new
0 commit comments