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

Commit cb13a7e

Browse files
committed
Checking state dir and skipping init if needed
1 parent b14c061 commit cb13a7e

File tree

1 file changed

+24
-11
lines changed

1 file changed

+24
-11
lines changed

main.go

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -109,28 +109,40 @@ func main() {
109109
os.Exit(1)
110110
}
111111

112+
entries, err := os.ReadDir(stateDir)
113+
if err != nil {
114+
logger.Error(err, "Error reading state directory")
115+
os.Exit(1)
116+
}
117+
if len(entries) > 0 {
118+
logger.Info("Already initialized. Init done")
119+
os.Exit(0)
120+
}
121+
112122
idx, err := statefulset.PodIndex(env.podName)
113123
if err != nil {
114124
logger.Error(err, "error getting index from Pod", "pod", env.podName)
115125
os.Exit(1)
116126
}
117-
118127
if *idx == 0 {
119128
logger.Info("Configuring bootstrap")
120129
if err := fileManager.WriteConfigFile(config.BootstrapFileName, config.BootstrapFile); err != nil {
121130
logger.Error(err, "Error writing bootstrap config")
122131
os.Exit(1)
123132
}
124-
} else {
125-
previousPodName, err := previousPodName(mdb, *idx)
126-
if err != nil {
127-
logger.Error(err, "error getting previous Pod")
128-
os.Exit(1)
129-
}
130-
if err := waitForPreviousPod(ctx, mdb, previousPodName, clientset, logger); err != nil {
131-
logger.Error(err, "error getting previous Pod", "pod", previousPodName)
132-
os.Exit(1)
133-
}
133+
logger.Info("Init done")
134+
os.Exit(0)
135+
}
136+
137+
previousPodName, err := previousPodName(mdb, *idx)
138+
if err != nil {
139+
logger.Error(err, "Error getting previous Pod")
140+
os.Exit(1)
141+
}
142+
logger.Info("Waiting for previous Pod to be ready", "pod", previousPodName)
143+
if err := waitForPreviousPod(ctx, mdb, previousPodName, clientset, logger); err != nil {
144+
logger.Error(err, "Error waiting for previous Pod to be ready", "pod", previousPodName)
145+
os.Exit(1)
134146
}
135147
logger.Info("Init done")
136148
}
@@ -183,6 +195,7 @@ func waitForPreviousPod(ctx context.Context, mariadb *mariadbv1alpha1.MariaDB, p
183195
return wait.PollImmediateUntilWithContext(ctx, 1*time.Second, func(context.Context) (bool, error) {
184196
previousPod, err := clientset.CoreV1().Pods(mariadb.Namespace).Get(ctx, previousPodName, metav1.GetOptions{})
185197
if err != nil {
198+
logger.V(1).Info("Error getting previous Pod", "err", err)
186199
return false, nil
187200
}
188201
if !pod.PodReady(previousPod) {

0 commit comments

Comments
 (0)