/
create.go
28 lines (23 loc) · 904 Bytes
/
create.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package backupschedule
import (
apiextensions "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
"k8s.io/apimachinery/pkg/util/errors"
"github.com/grtl/mysql-operator/pkg/crd"
)
const (
// CustomResourceName is the MySQLBackup custom resource definition qualified object name.
CustomResourceName = "mysqlbackupschedules.cr.mysqloperator.grtl.github.com"
definitionFilename = "artifacts/backupschedule-crd.yaml"
)
// CreateBackupScheduleCRD registers a MySQLBackupSchedule custom resource definition.
func CreateBackupScheduleCRD(namespace string, clientset apiextensions.Interface) error {
err := crd.RegisterCRD(namespace, clientset, definitionFilename)
if err != nil {
return err
}
err = crd.WaitForCRDEstablished(clientset, CustomResourceName)
if err != nil {
return errors.NewAggregate([]error{err, crd.UnregisterCRD(clientset, CustomResourceName)})
}
return nil
}