Skip to content
This repository was archived by the owner on Feb 28, 2024. It is now read-only.

Commit c4c4a77

Browse files
committed
Writing config files
1 parent 379dd77 commit c4c4a77

File tree

3 files changed

+44
-10
lines changed

3 files changed

+44
-10
lines changed

main.go

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ import (
1010
"os/signal"
1111
"syscall"
1212

13+
"github.com/mariadb-operator/agent/pkg/filemanager"
1314
"github.com/mariadb-operator/agent/pkg/logger"
15+
"github.com/mariadb-operator/init/pkg/config"
1416
mariadbv1alpha1 "github.com/mariadb-operator/mariadb-operator/api/v1alpha1"
1517
"k8s.io/client-go/kubernetes"
1618
"k8s.io/client-go/rest"
@@ -61,28 +63,48 @@ func main() {
6163
if err != nil {
6264
log.Fatalf("error creating logger: %v", err)
6365
}
64-
logger.Info("Staring MariaDB init")
66+
logger.Info("Staring init")
6567

66-
config, err := config()
68+
restConfig, err := restConfig()
6769
if err != nil {
6870
logger.Error(err, "Error getting Kubernetes config")
6971
os.Exit(1)
7072
}
71-
clientset, err := kubernetes.NewForConfig(config)
73+
clientset, err := kubernetes.NewForConfig(restConfig)
7274
if err != nil {
73-
logger.Error(err, "Error getting Kubernetes clientset")
75+
logger.Error(err, "Error creating Kubernetes clientset")
7476
os.Exit(1)
7577
}
76-
7778
mdb, err := mariadb(ctx, mariadbName, mariadbNamespace, clientset)
7879
if err != nil {
7980
logger.Error(err, "Error getting MariaDB")
8081
os.Exit(1)
8182
}
82-
logger.V(1).Info("got MariaDB", "mariadb", mdb)
83+
84+
fileManager, err := filemanager.NewFileManager(configDir, stateDir)
85+
if err != nil {
86+
logger.Error(err, "Error creating file manager")
87+
os.Exit(1)
88+
}
89+
configBytes, err := config.NewConfigFile(mdb).Marshal()
90+
if err != nil {
91+
logger.Error(err, "Error getting galera config")
92+
os.Exit(1)
93+
}
94+
logger.Info("Configuring Galera")
95+
if err := fileManager.WriteConfigFile(config.ConfigFileName, configBytes); err != nil {
96+
logger.Error(err, "Error writing galera config")
97+
os.Exit(1)
98+
}
99+
logger.Info("Configuring bootstrap")
100+
if err := fileManager.WriteConfigFile(config.BootstrapFileName, config.BootstrapFile); err != nil {
101+
logger.Error(err, "Error writing bootstrap config")
102+
os.Exit(1)
103+
}
104+
logger.Info("Init done")
83105
}
84106

85-
func config() (*rest.Config, error) {
107+
func restConfig() (*rest.Config, error) {
86108
if kubeconfig := os.Getenv("KUBECONFIG"); kubeconfig != "" {
87109
return clientcmd.BuildConfigFromFlags("", kubeconfig)
88110
}

make/dev.mk

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,16 @@ cover: test ## Run tests and generate coverage.
2020
release: goreleaser ## Test release locally.
2121
$(GORELEASER) release --snapshot --rm-dist
2222

23+
24+
.PHONY: dir
25+
dir: ## Create config and state directories for local development.
26+
mkdir -p mariadb/config
27+
mkdir -p mariadb/state
28+
2329
export KUBECONFIG ?= $(HOME)/.kube/config
30+
export HOSTNAME ?= mariadb-galera-0
31+
export MARIADB_ROOT_PASSWORD ?= mariadb
2432
RUN_FLAGS ?= --log-dev --log-level=debug --log-time-encoder=iso8601 --mariadb-name=mariadb-galera --mariadb-namespace=default --config-dir=mariadb/config --state-dir=mariadb/state
2533
.PHONY: run
26-
run: ## Run init from your host.
34+
run: dir ## Run init from your host.
2735
go run main.go $(RUN_FLAGS)

pkg/config/config.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,20 @@ import (
88
"strings"
99
"text/template"
1010

11+
"github.com/mariadb-operator/agent/pkg/galera"
1112
mariadbv1alpha1 "github.com/mariadb-operator/mariadb-operator/api/v1alpha1"
1213
ctrlresources "github.com/mariadb-operator/mariadb-operator/controllers/resources"
1314
"github.com/mariadb-operator/mariadb-operator/pkg/statefulset"
1415
)
1516

1617
const (
17-
BootstrapFile = `[galera]
18-
wsrep_new_cluster="ON"`
18+
ConfigFileName = "0-galera.cnf"
19+
BootstrapFileName = galera.BootstrapFileName
1920
)
2021

22+
var BootstrapFile = []byte(`[galera]
23+
wsrep_new_cluster="ON"`)
24+
2125
type ConfigFile struct {
2226
mariadb *mariadbv1alpha1.MariaDB
2327
}

0 commit comments

Comments
 (0)