blob: b031fbbb45e91224cad63d462f23bc5c97c96fe0 [file] [log] [blame]
giolekva56c15692021-10-20 11:44:54 +04001package main
2
3import (
4 "context"
5 "flag"
6 "io/ioutil"
7 "path"
8
9 v1 "k8s.io/api/core/v1"
10 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
11 "k8s.io/client-go/kubernetes"
12 "k8s.io/client-go/rest"
13)
14
15var configFile = flag.String("config", "", "Path to the homeserver.yaml config file.")
16var namespace = flag.String("namespace", "", "Namespace name.")
17var configMapName = flag.String("config-map-name", "", "Name of the ConfigMap to create.")
18
19func createClient() *kubernetes.Clientset {
20 config, err := rest.InClusterConfig()
21 if err != nil {
22 panic(err.Error())
23 }
24 cs, err := kubernetes.NewForConfig(config)
25 if err != nil {
26 panic(err.Error())
27 }
28 return cs
29}
30
31func createConfigFromFile() *v1.ConfigMap {
32 f, err := ioutil.ReadFile(*configFile)
33 if err != nil {
34 panic(err)
35 }
36 return &v1.ConfigMap{
37 TypeMeta: metav1.TypeMeta{
38 Kind: "ConfigMap",
39 APIVersion: "v1",
40 },
41 ObjectMeta: metav1.ObjectMeta{
42 Name: *configMapName,
43 },
44 Data: map[string]string{
45 path.Base(*configFile): string(f),
46 },
47 }
48}
49
50func main() {
51 flag.Parse()
52 config := createConfigFromFile()
53 client := createClient().CoreV1().ConfigMaps(*namespace)
54 _, err := client.Create(context.TODO(), config, metav1.CreateOptions{})
55 if err != nil {
56 panic(err)
57 }
58}