Skip to content

Commit bd4fbd8

Browse files
runkechengacekingke
authored andcommitted
*: Fix the sidecar container printing invalid log
1 parent ce4f24a commit bd4fbd8

File tree

7 files changed

+113
-49
lines changed

7 files changed

+113
-49
lines changed

backup/syncer/job.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,10 @@ func (s *jobSyncer) ensurePodSpec(in corev1.PodSpec) corev1.PodSpec {
123123
}
124124
var optTrue bool = true
125125
in.Containers[0].Env = []corev1.EnvVar{
126+
{
127+
Name: "CONTAINER_TYPE",
128+
Value: utils.ContainerBackupJobName,
129+
},
126130
{
127131
Name: "NAMESPACE",
128132
Value: s.backup.Namespace,

cluster/container/backup.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ func (c *backupSidecar) getEnvVars() []corev1.EnvVar {
4747
sctNameBakup := c.Spec.BackupSecretName
4848
sctName := c.GetNameForResource(utils.Secret)
4949
envs := []corev1.EnvVar{
50+
{
51+
Name: "CONTAINER_TYPE",
52+
Value: utils.ContainerBackupName,
53+
},
5054
{
5155
Name: "NAMESPACE",
5256
Value: c.Namespace,

cluster/container/init_sidecar.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ func (c *initSidecar) getEnvVars() []corev1.EnvVar {
5454
sctName := c.GetNameForResource(utils.Secret)
5555
sctNamebackup := c.Spec.BackupSecretName
5656
envs := []corev1.EnvVar{
57+
{
58+
Name: "CONTAINER_TYPE",
59+
Value: utils.ContainerInitSidecarName,
60+
},
5761
{
5862
Name: "POD_HOSTNAME",
5963
ValueFrom: &corev1.EnvVarSource{

cmd/sidecar/main.go

Lines changed: 38 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
"sigs.k8s.io/controller-runtime/pkg/log/zap"
2626

2727
"github.com/radondb/radondb-mysql-kubernetes/sidecar"
28+
"github.com/radondb/radondb-mysql-kubernetes/utils"
2829
)
2930

3031
const (
@@ -50,40 +51,47 @@ var (
5051
func main() {
5152
// setup logging
5253
logf.SetLogger(zap.New(zap.UseDevMode(true)))
53-
cfg := sidecar.NewConfig()
5454
stop := make(chan struct{})
55-
initCmd := sidecar.NewInitCommand(cfg)
56-
cmd.AddCommand(initCmd)
5755

58-
httpCmd := &cobra.Command{
59-
Use: "http",
60-
Short: "start http server",
61-
Run: func(cmd *cobra.Command, args []string) {
62-
if err := sidecar.RunHttpServer(cfg, stop); err != nil {
63-
log.Error(err, "run command failed")
64-
os.Exit(1)
65-
}
66-
},
67-
}
68-
cmd.AddCommand(httpCmd)
56+
containerName := sidecar.GetContainerType()
6957

70-
reqBackupCmd := &cobra.Command{
71-
Use: "request_a_backup",
72-
Short: "start request a backup",
73-
Args: func(cmd *cobra.Command, args []string) error {
74-
if len(args) != 1 {
75-
return fmt.Errorf("require one arguments. ")
76-
}
77-
return nil
78-
},
79-
Run: func(cmd *cobra.Command, args []string) {
80-
if err := sidecar.RunRequestBackup(cfg, args[0]); err != nil {
81-
log.Error(err, "run command failed")
82-
os.Exit(1)
83-
}
84-
},
58+
if containerName == utils.ContainerBackupName {
59+
backupCfg := sidecar.NewBackupConfig()
60+
httpCmd := &cobra.Command{
61+
Use: "http",
62+
Short: "start http server",
63+
Run: func(cmd *cobra.Command, args []string) {
64+
if err := sidecar.RunHttpServer(backupCfg, stop); err != nil {
65+
log.Error(err, "run command failed")
66+
os.Exit(1)
67+
}
68+
},
69+
}
70+
cmd.AddCommand(httpCmd)
71+
} else if containerName == utils.ContainerBackupJobName {
72+
reqBackupCfg := sidecar.NewReqBackupConfig()
73+
reqBackupCmd := &cobra.Command{
74+
Use: "request_a_backup",
75+
Short: "start request a backup",
76+
Args: func(cmd *cobra.Command, args []string) error {
77+
if len(args) != 1 {
78+
return fmt.Errorf("require one arguments. ")
79+
}
80+
return nil
81+
},
82+
Run: func(cmd *cobra.Command, args []string) {
83+
if err := sidecar.RunRequestBackup(reqBackupCfg, args[0]); err != nil {
84+
log.Error(err, "run command failed")
85+
os.Exit(1)
86+
}
87+
},
88+
}
89+
cmd.AddCommand(reqBackupCmd)
90+
} else {
91+
initCfg := sidecar.NewInitConfig()
92+
initCmd := sidecar.NewInitCommand(initCfg)
93+
cmd.AddCommand(initCmd)
8594
}
86-
cmd.AddCommand(reqBackupCmd)
8795

8896
if err := cmd.Execute(); err != nil {
8997
log.Error(err, "failed to execute command", "cmd", cmd)
File renamed without changes.

sidecar/config.go

Lines changed: 56 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ import (
2020
"fmt"
2121
"os"
2222
"strconv"
23-
"strings"
23+
24+
// "strings"
2425
"text/template"
2526

2627
"github.com/blang/semver"
@@ -119,8 +120,8 @@ type Config struct {
119120
XRestoreFrom string
120121
}
121122

122-
// NewConfig returns a pointer to Config.
123-
func NewConfig() *Config {
123+
// NewInitConfig returns the configuration file needed for initialization.
124+
func NewInitConfig() *Config {
124125
mysqlVersion, err := semver.Parse(getEnvValue("MYSQL_VERSION"))
125126
if err != nil {
126127
log.Info("MYSQL_VERSION is not a semver version")
@@ -179,24 +180,66 @@ func NewConfig() *Config {
179180
AdmitDefeatHearbeatCount: int32(admitDefeatHearbeatCount),
180181
ElectionTimeout: int32(electionTimeout),
181182

182-
existMySQLData: existMySQLData,
183-
ClusterName: getEnvValue("SERVICE_NAME"),
184-
BackupUser: getEnvValue("BACKUP_USER"),
185-
BackupPassword: getEnvValue("BACKUP_PASSWORD"),
186-
XbstreamExtraArgs: strings.Fields(getEnvValue("XBSTREAM_EXTRA_ARGS")),
187-
XtrabackupExtraArgs: strings.Fields(getEnvValue("XTRABACKUP_EXTRA_ARGS")),
188-
XtrabackupPrepareExtraArgs: strings.Fields(getEnvValue("XTRABACKUP_PREPARE_EXTRA_ARGS")),
189-
XtrabackupTargetDir: getEnvValue("XTRABACKUP_TARGET_DIR"),
183+
existMySQLData: existMySQLData,
184+
XRestoreFrom: getEnvValue("RESTORE_FROM"),
185+
XCloudS3EndPoint: getEnvValue("S3_ENDPOINT"),
186+
XCloudS3AccessKey: getEnvValue("S3_ACCESSKEY"),
187+
XCloudS3SecretKey: getEnvValue("S3_SECRETKEY"),
188+
XCloudS3Bucket: getEnvValue("S3_BUCKET"),
189+
}
190+
}
191+
192+
// NewBackupConfig returns the configuration file needed for backup container.
193+
func NewBackupConfig() *Config {
194+
replicaStr := getEnvValue("REPLICAS")
195+
replicas, err := strconv.ParseInt(replicaStr, 10, 32)
196+
if err != nil {
197+
log.Error(err, "invalid environment values", "REPLICAS", replicaStr)
198+
panic(err)
199+
}
200+
201+
return &Config{
202+
NameSpace: getEnvValue("NAMESPACE"),
203+
ServiceName: getEnvValue("SERVICE_NAME"),
204+
Replicas: int32(replicas),
205+
ClusterName: getEnvValue("SERVICE_NAME"),
206+
207+
BackupUser: getEnvValue("BACKUP_USER"),
208+
BackupPassword: getEnvValue("BACKUP_PASSWORD"),
190209

191210
XCloudS3EndPoint: getEnvValue("S3_ENDPOINT"),
192211
XCloudS3AccessKey: getEnvValue("S3_ACCESSKEY"),
193212
XCloudS3SecretKey: getEnvValue("S3_SECRETKEY"),
194213
XCloudS3Bucket: getEnvValue("S3_BUCKET"),
195-
XRestoreFrom: getEnvValue("RESTORE_FROM"),
196214
}
197215
}
198216

199-
// build Xtrabackup arguments
217+
// NewReqBackupConfig returns the configuration file needed for backup job.
218+
func NewReqBackupConfig() *Config {
219+
replicaStr := getEnvValue("REPLICAS")
220+
replicas, err := strconv.ParseInt(replicaStr, 10, 32)
221+
if err != nil {
222+
log.Error(err, "invalid environment values", "REPLICAS", replicaStr)
223+
panic(err)
224+
}
225+
226+
return &Config{
227+
NameSpace: getEnvValue("NAMESPACE"),
228+
ServiceName: getEnvValue("SERVICE_NAME"),
229+
Replicas: int32(replicas),
230+
231+
BackupUser: getEnvValue("BACKUP_USER"),
232+
BackupPassword: getEnvValue("BACKUP_PASSWORD"),
233+
}
234+
}
235+
236+
// GetContainerType returns the CONTAINER_TYPE of the currently running container.
237+
// CONTAINER_TYPE used to mark the container type.
238+
func GetContainerType() string {
239+
return getEnvValue("CONTAINER_TYPE")
240+
}
241+
242+
//build Xtrabackup arguments
200243
func (cfg *Config) XtrabackupArgs() []string {
201244
// xtrabackup --backup <args> --target-dir=<backup-dir> <extra-args>
202245
user := "root"

utils/constants.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,13 @@ const (
3737
ContainerInitMysqlName = "init-mysql"
3838

3939
// containers
40-
ContainerMysqlName = "mysql"
41-
ContainerXenonName = "xenon"
42-
ContainerMetricsName = "metrics"
43-
ContainerSlowLogName = "slowlog"
44-
ContainerAuditLogName = "auditlog"
45-
ContainerBackupName = "backup"
40+
ContainerMysqlName = "mysql"
41+
ContainerXenonName = "xenon"
42+
ContainerMetricsName = "metrics"
43+
ContainerSlowLogName = "slowlog"
44+
ContainerAuditLogName = "auditlog"
45+
ContainerBackupName = "backup"
46+
ContainerBackupJobName = "backup-job"
4647

4748
XBackupPortName = "xtrabackup"
4849
XBackupPort = 8082

0 commit comments

Comments
 (0)