Skip to content

Commit 9fca077

Browse files
authored
feat: update DatabaseClass Spec (#52)
Signed-off-by: mlycore <maxwell92@126.com>
1 parent 9b8b0dc commit 9fca077

File tree

3 files changed

+30
-99
lines changed

3 files changed

+30
-99
lines changed

config/crd/bases/core.database-mesh.io_databaseclasses.yaml

+9-40
Original file line numberDiff line numberDiff line change
@@ -35,51 +35,20 @@ spec:
3535
type: object
3636
spec:
3737
properties:
38-
autoGeneratedMasterPassword:
39-
type: boolean
40-
defaultMasterUsername:
41-
type: string
42-
engine:
43-
properties:
44-
mode:
45-
type: string
46-
name:
47-
type: string
48-
version:
49-
type: string
50-
required:
51-
- name
52-
- version
53-
type: object
54-
instance:
55-
properties:
56-
class:
57-
type: string
38+
parameters:
39+
additionalProperties:
40+
type: string
5841
type: object
59-
multiAZ:
60-
type: boolean
6142
provisioner:
6243
type: string
63-
publicAccessible:
64-
type: boolean
65-
storage:
66-
properties:
67-
allocatedStorage:
68-
format: int32
69-
type: integer
70-
iops:
71-
format: int32
72-
type: integer
73-
type: object
44+
reclaimPolicy:
45+
description: DatabaseReclaimPolicy describes a policy for end-of-life
46+
maintenance of persistent volumes.
47+
type: string
7448
required:
75-
- autoGeneratedMasterPassword
76-
- defaultMasterUsername
77-
- engine
78-
- instance
79-
- multiAZ
49+
- parameters
8050
- provisioner
81-
- publicAccessible
82-
- storage
51+
- reclaimPolicy
8352
type: object
8453
status:
8554
type: object

kubernetes/api/v1alpha1/databaseclass.go

+13-25
Original file line numberDiff line numberDiff line change
@@ -27,37 +27,25 @@ type DatabaseClass struct {
2727
}
2828

2929
type DatabaseClassSpec struct {
30-
DefaultMasterUsername string `json:"defaultMasterUsername"`
31-
AutoGeneratedMasterPassword bool `json:"autoGeneratedMasterPassword"`
32-
33-
MultiAZ bool `json:"multiAZ"`
34-
Provisioner DatabaseProvisioner `json:"provisioner"`
35-
Engine DatabaseEngine `json:"engine"`
36-
Instance DatabaseInstance `json:"instance"`
37-
Storage DatabaseStorage `json:"storage"`
38-
PubliclyAccessible bool `json:"publicAccessible"`
30+
Provisioner string `json:"provisioner"`
31+
Parameters map[string]string `json:"parameters"`
32+
ReclaimPolicy DatabaseReclaimPolicy `json:"reclaimPolicy"`
3933
}
4034

41-
type DatabaseProvisioner string
35+
// DatabaseReclaimPolicy describes a policy for end-of-life maintenance of persistent volumes.
36+
// +enum
37+
type DatabaseReclaimPolicy string
4238

4339
const (
44-
DatabaseProvisionerAWSRdsInstance DatabaseProvisioner = "AWSRdsInstance"
45-
DatabaseProvisionerAWSRdsCluster DatabaseProvisioner = "AWSRdsCluster"
46-
DatabaseProvisionerAWSRdsAurora DatabaseProvisioner = "AWSRdsAurora"
40+
// The database will be deleted with a final snapshot reserved.
41+
DatabaseReclaimDeleteWithFinalSnapshot DatabaseReclaimPolicy = "DeleteWithFinalSnapshot"
42+
// The database will be deleted.
43+
DatabaseReclaimDelete DatabaseReclaimPolicy = "Delete"
44+
// The database will be retained.
45+
// The default policy is Retain.
46+
DatabaseReclaimRetain DatabaseReclaimPolicy = "Retain"
4747
)
4848

49-
type DatabaseEngine struct {
50-
Name string `json:"name"`
51-
Version string `json:"version"`
52-
// +optional
53-
Mode string `json:"mode"`
54-
}
55-
56-
type DatabaseInstance struct {
57-
// +optional
58-
Class string `json:"class"`
59-
}
60-
6149
const (
6250
AnnotationsVPCSecurityGroupIds = "databaseclass.database-mesh.io/vpc-security-group-ids"
6351
AnnotationsSubnetGroupName = "databaseclass.database-mesh.io/vpc-subnet-group-name"

kubernetes/api/v1alpha1/zz_generated.deepcopy.go

+8-34
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)