Skip to content

Commit 9beb99f

Browse files
Collect the petset yamls (#786)
Signed-off-by: Arnob kumar saha <arnob@appscode.com>
1 parent c7e3ab8 commit 9beb99f

File tree

10 files changed

+352
-2
lines changed

10 files changed

+352
-2
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ lint: $(BUILD_DIRS)
221221
--env GO111MODULE=on \
222222
--env GOFLAGS="-mod=vendor" \
223223
$(BUILD_IMAGE) \
224-
golangci-lint run --enable $(ADDTL_LINTERS) --timeout=10m --skip-files="generated.*\.go$\" --skip-dirs-use-default
224+
golangci-lint run --enable $(ADDTL_LINTERS) --timeout=10m --exclude-files="generated.*\.go$\" --exclude-dirs-use-default
225225

226226
$(BUILD_DIRS):
227227
@mkdir -p $@

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ require (
3131
kmodules.xyz/monitoring-agent-api v0.30.2
3232
kubedb.dev/apimachinery v0.51.0
3333
kubedb.dev/db-client-go v0.6.0
34+
kubeops.dev/petset v0.0.7
3435
sigs.k8s.io/controller-runtime v0.18.4
3536
sigs.k8s.io/yaml v1.4.0
3637
stash.appscode.dev/apimachinery v0.38.0
@@ -147,7 +148,6 @@ require (
147148
kmodules.xyz/prober v0.29.0 // indirect
148149
kmodules.xyz/resource-metadata v0.24.1 // indirect
149150
kubeops.dev/csi-driver-cacerts v0.1.0 // indirect
150-
kubeops.dev/petset v0.0.7 // indirect
151151
kubeops.dev/sidekick v0.0.10 // indirect
152152
kubestash.dev/apimachinery v0.15.0 // indirect
153153
sigs.k8s.io/gateway-api v1.1.0 // indirect

pkg/debug/elasticsearch.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,13 @@ import (
3434
_ "k8s.io/client-go/plugin/pkg/client/auth"
3535
"k8s.io/klog/v2"
3636
cmdutil "k8s.io/kubectl/pkg/cmd/util"
37+
ps "kubeops.dev/petset/client/clientset/versioned"
3738
)
3839

3940
type elasticsearchOpts struct {
4041
db *dbapi.Elasticsearch
4142
dbClient *cs.Clientset
43+
psClient *ps.Clientset
4244
podClient *kubernetes.Clientset
4345

4446
operatorNamespace string
@@ -80,6 +82,11 @@ func ElasticsearchDebugCMD(f cmdutil.Factory) *cobra.Command {
8082
log.Fatal(err)
8183
}
8284

85+
err = opts.collectForAllDBPetSets()
86+
if err != nil {
87+
log.Fatal(err)
88+
}
89+
8390
err = opts.collectForAllDBPods()
8491
if err != nil {
8592
log.Fatal(err)
@@ -107,6 +114,11 @@ func newElasticsearchOpts(f cmdutil.Factory, dbName, namespace, operatorNS strin
107114
return nil, err
108115
}
109116

117+
psClient, err := ps.NewForConfig(config)
118+
if err != nil {
119+
return nil, err
120+
}
121+
110122
podClient, err := kubernetes.NewForConfig(config)
111123
if err != nil {
112124
return nil, err
@@ -131,6 +143,7 @@ func newElasticsearchOpts(f cmdutil.Factory, dbName, namespace, operatorNS strin
131143
opts := &elasticsearchOpts{
132144
db: db,
133145
dbClient: dbClient,
146+
psClient: psClient,
134147
podClient: podClient,
135148
operatorNamespace: operatorNS,
136149
dir: dir,
@@ -161,6 +174,31 @@ func (opts *elasticsearchOpts) collectOperatorLogs() error {
161174
return nil
162175
}
163176

177+
func (opts *elasticsearchOpts) collectForAllDBPetSets() error {
178+
psLabels := labels.SelectorFromSet(opts.db.OffshootLabels()).String()
179+
petsets, err := opts.psClient.AppsV1().PetSets(opts.db.Namespace).List(context.TODO(), metav1.ListOptions{
180+
LabelSelector: psLabels,
181+
})
182+
if err != nil {
183+
return err
184+
}
185+
186+
psYamlDir := path.Join(opts.dir, yamlsDir, "petsets")
187+
err = os.MkdirAll(psYamlDir, dirPerm)
188+
if err != nil {
189+
return err
190+
}
191+
192+
for _, p := range petsets.Items {
193+
err = writeYaml(&p, psYamlDir)
194+
if err != nil {
195+
return err
196+
}
197+
198+
}
199+
return nil
200+
}
201+
164202
func (opts *elasticsearchOpts) collectForAllDBPods() error {
165203
dbLabels := labels.SelectorFromSet(opts.db.OffshootLabels()).String()
166204
pods, err := opts.podClient.CoreV1().Pods(opts.db.Namespace).List(context.TODO(), metav1.ListOptions{

pkg/debug/mariadb.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,13 @@ import (
3434
_ "k8s.io/client-go/plugin/pkg/client/auth"
3535
"k8s.io/klog/v2"
3636
cmdutil "k8s.io/kubectl/pkg/cmd/util"
37+
ps "kubeops.dev/petset/client/clientset/versioned"
3738
)
3839

3940
type mariadbOpts struct {
4041
db *dbapi.MariaDB
4142
dbClient *cs.Clientset
43+
psClient *ps.Clientset
4244
podClient *kubernetes.Clientset
4345

4446
operatorNamespace string
@@ -80,6 +82,11 @@ func MariaDBDebugCMD(f cmdutil.Factory) *cobra.Command {
8082
log.Fatal(err)
8183
}
8284

85+
err = opts.collectForAllDBPetSets()
86+
if err != nil {
87+
log.Fatal(err)
88+
}
89+
8390
err = opts.collectForAllDBPods()
8491
if err != nil {
8592
log.Fatal(err)
@@ -107,6 +114,11 @@ func newMariadbOpts(f cmdutil.Factory, dbName, namespace, operatorNS string) (*m
107114
return nil, err
108115
}
109116

117+
psClient, err := ps.NewForConfig(config)
118+
if err != nil {
119+
return nil, err
120+
}
121+
110122
podClient, err := kubernetes.NewForConfig(config)
111123
if err != nil {
112124
return nil, err
@@ -131,6 +143,7 @@ func newMariadbOpts(f cmdutil.Factory, dbName, namespace, operatorNS string) (*m
131143
opts := &mariadbOpts{
132144
db: db,
133145
dbClient: dbClient,
146+
psClient: psClient,
134147
podClient: podClient,
135148
operatorNamespace: operatorNS,
136149
dir: dir,
@@ -161,6 +174,31 @@ func (opts *mariadbOpts) collectOperatorLogs() error {
161174
return nil
162175
}
163176

177+
func (opts *mariadbOpts) collectForAllDBPetSets() error {
178+
psLabels := labels.SelectorFromSet(opts.db.OffshootLabels()).String()
179+
petsets, err := opts.psClient.AppsV1().PetSets(opts.db.Namespace).List(context.TODO(), metav1.ListOptions{
180+
LabelSelector: psLabels,
181+
})
182+
if err != nil {
183+
return err
184+
}
185+
186+
psYamlDir := path.Join(opts.dir, yamlsDir, "petsets")
187+
err = os.MkdirAll(psYamlDir, dirPerm)
188+
if err != nil {
189+
return err
190+
}
191+
192+
for _, p := range petsets.Items {
193+
err = writeYaml(&p, psYamlDir)
194+
if err != nil {
195+
return err
196+
}
197+
198+
}
199+
return nil
200+
}
201+
164202
func (opts *mariadbOpts) collectForAllDBPods() error {
165203
dbLabels := labels.SelectorFromSet(opts.db.OffshootLabels()).String()
166204
pods, err := opts.podClient.CoreV1().Pods(opts.db.Namespace).List(context.TODO(), metav1.ListOptions{

pkg/debug/mongodb.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,13 @@ import (
3434
_ "k8s.io/client-go/plugin/pkg/client/auth"
3535
"k8s.io/klog/v2"
3636
cmdutil "k8s.io/kubectl/pkg/cmd/util"
37+
ps "kubeops.dev/petset/client/clientset/versioned"
3738
)
3839

3940
type mongodbOpts struct {
4041
db *dbapi.MongoDB
4142
dbClient *cs.Clientset
43+
psClient *ps.Clientset
4244
podClient *kubernetes.Clientset
4345

4446
operatorNamespace string
@@ -80,6 +82,11 @@ func MongoDBDebugCMD(f cmdutil.Factory) *cobra.Command {
8082
log.Fatal(err)
8183
}
8284

85+
err = opts.collectForAllDBPetSets()
86+
if err != nil {
87+
log.Fatal(err)
88+
}
89+
8390
err = opts.collectForAllDBPods()
8491
if err != nil {
8592
log.Fatal(err)
@@ -107,6 +114,11 @@ func newMongodbOpts(f cmdutil.Factory, dbName, namespace, operatorNS string) (*m
107114
return nil, err
108115
}
109116

117+
psClient, err := ps.NewForConfig(config)
118+
if err != nil {
119+
return nil, err
120+
}
121+
110122
podClient, err := kubernetes.NewForConfig(config)
111123
if err != nil {
112124
return nil, err
@@ -131,6 +143,7 @@ func newMongodbOpts(f cmdutil.Factory, dbName, namespace, operatorNS string) (*m
131143
opts := &mongodbOpts{
132144
db: db,
133145
dbClient: dbClient,
146+
psClient: psClient,
134147
podClient: podClient,
135148
operatorNamespace: operatorNS,
136149
dir: dir,
@@ -161,6 +174,31 @@ func (opts *mongodbOpts) collectOperatorLogs() error {
161174
return nil
162175
}
163176

177+
func (opts *mongodbOpts) collectForAllDBPetSets() error {
178+
psLabels := labels.SelectorFromSet(opts.db.OffshootLabels()).String()
179+
petsets, err := opts.psClient.AppsV1().PetSets(opts.db.Namespace).List(context.TODO(), metav1.ListOptions{
180+
LabelSelector: psLabels,
181+
})
182+
if err != nil {
183+
return err
184+
}
185+
186+
psYamlDir := path.Join(opts.dir, yamlsDir, "petsets")
187+
err = os.MkdirAll(psYamlDir, dirPerm)
188+
if err != nil {
189+
return err
190+
}
191+
192+
for _, p := range petsets.Items {
193+
err = writeYaml(&p, psYamlDir)
194+
if err != nil {
195+
return err
196+
}
197+
198+
}
199+
return nil
200+
}
201+
164202
func (opts *mongodbOpts) collectForAllDBPods() error {
165203
dbLabels := labels.SelectorFromSet(opts.db.OffshootLabels()).String()
166204
pods, err := opts.podClient.CoreV1().Pods(opts.db.Namespace).List(context.TODO(), metav1.ListOptions{

pkg/debug/mysql.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,13 @@ import (
3434
_ "k8s.io/client-go/plugin/pkg/client/auth"
3535
"k8s.io/klog/v2"
3636
cmdutil "k8s.io/kubectl/pkg/cmd/util"
37+
ps "kubeops.dev/petset/client/clientset/versioned"
3738
)
3839

3940
type mysqlOpts struct {
4041
db *dbapi.MySQL
4142
dbClient *cs.Clientset
43+
psClient *ps.Clientset
4244
podClient *kubernetes.Clientset
4345

4446
operatorNamespace string
@@ -80,6 +82,11 @@ func MySQLDebugCMD(f cmdutil.Factory) *cobra.Command {
8082
log.Fatal(err)
8183
}
8284

85+
err = opts.collectForAllDBPetSets()
86+
if err != nil {
87+
log.Fatal(err)
88+
}
89+
8390
err = opts.collectForAllDBPods()
8491
if err != nil {
8592
log.Fatal(err)
@@ -107,6 +114,11 @@ func newMysqlOpts(f cmdutil.Factory, dbName, namespace, operatorNS string) (*mys
107114
return nil, err
108115
}
109116

117+
psClient, err := ps.NewForConfig(config)
118+
if err != nil {
119+
return nil, err
120+
}
121+
110122
podClient, err := kubernetes.NewForConfig(config)
111123
if err != nil {
112124
return nil, err
@@ -131,6 +143,7 @@ func newMysqlOpts(f cmdutil.Factory, dbName, namespace, operatorNS string) (*mys
131143
opts := &mysqlOpts{
132144
db: db,
133145
dbClient: dbClient,
146+
psClient: psClient,
134147
podClient: podClient,
135148
operatorNamespace: operatorNS,
136149
dir: dir,
@@ -161,6 +174,31 @@ func (opts *mysqlOpts) collectOperatorLogs() error {
161174
return nil
162175
}
163176

177+
func (opts *mysqlOpts) collectForAllDBPetSets() error {
178+
psLabels := labels.SelectorFromSet(opts.db.OffshootLabels()).String()
179+
petsets, err := opts.psClient.AppsV1().PetSets(opts.db.Namespace).List(context.TODO(), metav1.ListOptions{
180+
LabelSelector: psLabels,
181+
})
182+
if err != nil {
183+
return err
184+
}
185+
186+
psYamlDir := path.Join(opts.dir, yamlsDir, "petsets")
187+
err = os.MkdirAll(psYamlDir, dirPerm)
188+
if err != nil {
189+
return err
190+
}
191+
192+
for _, p := range petsets.Items {
193+
err = writeYaml(&p, psYamlDir)
194+
if err != nil {
195+
return err
196+
}
197+
198+
}
199+
return nil
200+
}
201+
164202
func (opts *mysqlOpts) collectForAllDBPods() error {
165203
dbLabels := labels.SelectorFromSet(opts.db.OffshootLabels()).String()
166204
pods, err := opts.podClient.CoreV1().Pods(opts.db.Namespace).List(context.TODO(), metav1.ListOptions{

0 commit comments

Comments
 (0)