Skip to content
This repository is currently being migrated. It's locked while the migration is in progress.

Commit b88b038

Browse files
Get a node topology zone from a label and save to a file (#28)
Get a node topology zone from a label and save to a file
1 parent 4c275dd commit b88b038

File tree

1 file changed

+22
-6
lines changed

1 file changed

+22
-6
lines changed

init.go

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"github.com/storageos/init/script"
1212
"github.com/storageos/init/script/runner"
1313

14+
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1415
"k8s.io/client-go/kubernetes"
1516
restclient "k8s.io/client-go/rest"
1617
)
@@ -38,17 +39,17 @@ func main() {
3839
os.Exit(1)
3940
}
4041

42+
// This is in k8s environment.
43+
kubeclient, err := newK8SClient()
44+
if err != nil {
45+
log.Fatal(err)
46+
}
47+
4148
// Attempt to get storageos node image.
4249

4350
if *nodeImage == "" {
4451
var imageInfo info.ImageInfoer
4552

46-
// This is in k8s environment.
47-
kubeclient, err := newK8SClient()
48-
if err != nil {
49-
log.Fatal(err)
50-
}
51-
5253
// Create a k8s image info.
5354
name, namespace := getParamsForK8SImageInfo(*dsName, *dsNamespace)
5455
imageInfo = k8s.NewImageInfo(kubeclient).SetDaemonSet(name, namespace)
@@ -88,6 +89,21 @@ func main() {
8889
if err := runScripts(run, allScripts, scriptEnvVar); err != nil {
8990
log.Fatalf("init failed: %v", err)
9091
}
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"])
91107
}
92108

93109
// NewK8SClient attempts to get k8s cluster configuration and return a new

0 commit comments

Comments
 (0)