Skip to content
This repository was archived by the owner on May 8, 2022. It is now read-only.

Commit 8206ce1

Browse files
committed
Update docs
1 parent d1d96d3 commit 8206ce1

File tree

13 files changed

+902
-206
lines changed

13 files changed

+902
-206
lines changed

apis/database/v1/v1.coverprofile

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
mode: atomic
2+
github.com/bedag/kubernetes-dbaas/apis/database/v1/database_types.go:59.13,61.2 1 15
3+
github.com/bedag/kubernetes-dbaas/apis/database/v1/database_webhook.go:33.68,37.2 1 15
4+
github.com/bedag/kubernetes-dbaas/apis/database/v1/database_webhook.go:44.31,48.2 0 0
5+
github.com/bedag/kubernetes-dbaas/apis/database/v1/database_webhook.go:56.43,58.2 1 0
6+
github.com/bedag/kubernetes-dbaas/apis/database/v1/database_webhook.go:61.61,67.43 4 0
7+
github.com/bedag/kubernetes-dbaas/apis/database/v1/database_webhook.go:75.2,75.12 1 0
8+
github.com/bedag/kubernetes-dbaas/apis/database/v1/database_webhook.go:67.43,73.3 2 0
9+
github.com/bedag/kubernetes-dbaas/apis/database/v1/database_webhook.go:79.43,81.2 1 0
10+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:29.49,35.2 5 0
11+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:38.42,39.15 1 0
12+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:42.2,44.12 3 0
13+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:39.15,41.3 1 0
14+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:48.53,49.34 1 0
15+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:52.2,52.12 1 0
16+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:49.34,51.3 1 0
17+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:56.57,60.21 4 0
18+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:60.21,63.22 3 0
19+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:63.22,65.4 1 0
20+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:70.50,71.15 1 0
21+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:74.2,76.12 3 0
22+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:71.15,73.3 1 0
23+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:80.57,81.34 1 0
24+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:84.2,84.12 1 0
25+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:81.34,83.3 1 0
26+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:88.57,90.22 2 0
27+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:90.22,93.29 3 0
28+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:93.29,95.4 1 0
29+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:100.50,101.15 1 0
30+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:104.2,106.12 3 0
31+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:101.15,103.3 1 0
32+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:110.61,112.26 2 0
33+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:112.26,115.22 3 0
34+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:115.22,117.4 1 0
35+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:122.54,123.15 1 0
36+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:126.2,128.12 3 0
37+
github.com/bedag/kubernetes-dbaas/apis/database/v1/zz_generated.deepcopy.go:123.15,125.3 1 0

controllers/database/database.coverprofile

Lines changed: 170 additions & 0 deletions
Large diffs are not rendered by default.

controllers/database/database_controller.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -701,7 +701,7 @@ func newOpValuesFromResource(obj *databasev1.Database) (database.OpValues, Recon
701701
var metadata map[string]interface{}
702702
temp, _ := json.Marshal(metaIn)
703703
err := json.Unmarshal(temp, &metadata)
704-
if err != nil {
704+
if err != nil {
705705
return database.OpValues{}, ReconcileError{
706706
Reason: RsnDbMetaParseFail,
707707
Message: MsgDbMetaParseFail,
Lines changed: 291 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,291 @@
1+
@startuml
2+
namespace controllers {
3+
class DatabaseReconciler << (S,Aquamarine) >> {
4+
+ Log logr.Logger
5+
+ Scheme *runtime.Scheme
6+
+ EventRecorder record.EventRecorder
7+
+ DbmsList database.DbmsList
8+
+ Pool pool.Pool
9+
10+
- addFinalizer(obj *v1.Database) error
11+
- createDb(obj *v1.Database) ReconcileError
12+
- deleteDb(obj *v1.Database) ReconcileError
13+
- rotate(obj *v1.Database) ReconcileError
14+
- getDbmsClassFromDb(obj *v1.Database) (v1.DatabaseClass, ReconcileError)
15+
- getDbmsConnectionByEndpointName(endpointName string) (database.Driver, ReconcileError)
16+
- handleReconcileError(obj *v1.Database, err ReconcileError)
17+
- handleReadyConditionError(obj *v1.Database, err error, additionalInfo ...<font color=blue>interface</font>{})
18+
- logInfoEvent(obj *v1.Database, reason string, message string, additionalInfo ...<font color=blue>interface</font>{})
19+
- createSecret(owner *v1.Database, secretFormat database.SecretFormat, output database.OpOutput) ReconcileError
20+
- updateReadyCondition(obj *v1.Database, status v1.ConditionStatus, reason string, message string) error
21+
- shouldRotate(obj *v1.Database) (bool, ReconcileError)
22+
23+
+ SetupWithManager(mgr controller-runtime.Manager) error
24+
+ Reconcile(ctx context.Context, req controller-runtime.Request) (controller-runtime.Result, error)
25+
26+
}
27+
class ReconcileError << (S,Aquamarine) >> {
28+
+ Reason string
29+
+ Message string
30+
+ Err error
31+
+ AdditionalInfo []<font color=blue>interface</font>{}
32+
33+
+ IsNotEmpty() bool
34+
+ With(values []<font color=blue>interface</font>{}) ReconcileError
35+
36+
}
37+
}
38+
"client.Client" *-- "extends""controllers.DatabaseReconciler"
39+
40+
41+
"controllers.DatabaseReconciler""uses" o-- "database.DbmsList"
42+
"controllers.DatabaseReconciler""uses" o-- "logr.Logger"
43+
"controllers.DatabaseReconciler""uses" o-- "pool.Pool"
44+
"controllers.DatabaseReconciler""uses" o-- "record.EventRecorder"
45+
"controllers.DatabaseReconciler""uses" o-- "runtime.Scheme"
46+
47+
namespace database {
48+
class Dbms << (S,Aquamarine) >> {
49+
+ DatabaseClassName string
50+
+ Endpoints []Endpoint
51+
52+
+ DeepCopyInto(out *Dbms)
53+
+ DeepCopy() *Dbms
54+
55+
}
56+
class DbmsConn << (S,Aquamarine) >> {
57+
}
58+
class DbmsList << (S,Aquamarine) >> {
59+
+ GetDatabaseClassNameByEndpointName(endpointName string) string
60+
+ DeepCopyInto(out *DbmsList)
61+
+ DeepCopy() DbmsList
62+
63+
}
64+
interface Driver {
65+
+ CreateDb(operation Operation) OpOutput
66+
+ DeleteDb(operation Operation) OpOutput
67+
+ Rotate(operation Operation) OpOutput
68+
+ Ping() error
69+
70+
}
71+
class Dsn << (S,Aquamarine) >> {
72+
+ GenMysql() (string, error)
73+
+ GenSqlserver() (string, error)
74+
+ GenPostgres() (string, error)
75+
+ String() string
76+
77+
}
78+
class Endpoint << (S,Aquamarine) >> {
79+
+ Name string
80+
+ Dsn Dsn
81+
82+
+ IsNamePresent() bool
83+
+ IsDsnPresent() bool
84+
+ DeepCopyInto(out *Endpoint)
85+
+ DeepCopy() *Endpoint
86+
87+
}
88+
class MysqlConn << (S,Aquamarine) >> {
89+
- c *sql.DB
90+
91+
+ CreateDb(operation Operation) OpOutput
92+
+ DeleteDb(operation Operation) OpOutput
93+
+ Rotate(operation Operation) OpOutput
94+
+ Ping() error
95+
96+
}
97+
class OpOutput << (S,Aquamarine) >> {
98+
+ Result <font color=blue>map</font>[string]string
99+
+ Err error
100+
101+
}
102+
class OpValues << (S,Aquamarine) >> {
103+
+ Metadata <font color=blue>map</font>[string]<font color=blue>interface</font>{}
104+
+ Parameters <font color=blue>map</font>[string]string
105+
106+
}
107+
class Operation << (S,Aquamarine) >> {
108+
+ Name string
109+
+ Inputs <font color=blue>map</font>[string]string
110+
111+
+ RenderOperation(values OpValues) (Operation, error)
112+
+ DeepCopyInto(out *Operation)
113+
+ DeepCopy() *Operation
114+
115+
}
116+
class PsqlConn << (S,Aquamarine) >> {
117+
- c *pgx.Conn
118+
119+
+ CreateDb(operation Operation) OpOutput
120+
+ DeleteDb(operation Operation) OpOutput
121+
+ Rotate(operation Operation) OpOutput
122+
+ Ping() error
123+
124+
}
125+
class RateLimitedDbmsConn << (S,Aquamarine) >> {
126+
- limiter ratelimit.Limiter
127+
128+
+ CreateDb(operation Operation) OpOutput
129+
+ DeleteDb(operation Operation) OpOutput
130+
+ Ping() error
131+
132+
}
133+
class SecretFormat << (S,Aquamarine) >> {
134+
+ RenderSecretFormat(createOpOutput OpOutput) (SecretFormat, error)
135+
+ From(toMerge <font color=blue>map</font>[string]string) SecretFormat
136+
+ DeepCopyInto(out *SecretFormat)
137+
+ DeepCopy() SecretFormat
138+
139+
}
140+
class SqlserverConn << (S,Aquamarine) >> {
141+
- c *sql.DB
142+
143+
+ CreateDb(operation Operation) OpOutput
144+
+ DeleteDb(operation Operation) OpOutput
145+
+ Rotate(operation Operation) OpOutput
146+
+ Ping() error
147+
148+
}
149+
class database.DbmsList << (T, #FF7700) >> {
150+
}
151+
class database.Dsn << (T, #FF7700) >> {
152+
}
153+
class database.SecretFormat << (T, #FF7700) >> {
154+
}
155+
}
156+
"database.Driver" *-- "extends""database.DbmsConn"
157+
"database.Driver" *-- "extends""database.RateLimitedDbmsConn"
158+
159+
"database.Driver" <|-- "implements""database.MysqlConn"
160+
"database.Driver" <|-- "implements""database.PsqlConn"
161+
"database.Driver" <|-- "implements""database.SqlserverConn"
162+
163+
"database.Dbms""uses" o-- "database.Endpoint"
164+
"database.Endpoint""uses" o-- "database.Dsn"
165+
166+
namespace pool {
167+
class DbmsEntry << (S,Aquamarine) >> {
168+
- driver string
169+
- dsn database.Dsn
170+
171+
}
172+
class DbmsPool << (S,Aquamarine) >> {
173+
- entries <font color=blue>map</font>[string]Entry
174+
- rps int
175+
176+
+ Get(name string) Entry
177+
+ RegisterDbms(dbms database.Dbms, driver string) error
178+
+ Register(name string, driver string, dsn database.Dsn) error
179+
180+
}
181+
interface Entry {
182+
}
183+
interface Pool {
184+
+ Get(name string) Entry
185+
+ Register(name string, driver string, dsn database.Dsn) error
186+
187+
}
188+
}
189+
"pool.Entry" *-- "extends""pool.DbmsEntry"
190+
191+
"pool.Pool" <|-- "implements""pool.DbmsPool"
192+
193+
"pool.DbmsEntry""uses" o-- "database.Dsn"
194+
"pool.DbmsPool""uses" o-- "pool.Entry"
195+
196+
namespace test {
197+
class test.TestAttribute << (T, #FF7700) >> {
198+
}
199+
class test.TestType << (T, #FF7700) >> {
200+
}
201+
}
202+
203+
204+
205+
namespace v1 {
206+
class Database << (S,Aquamarine) >> {
207+
+ Spec DatabaseSpec
208+
+ Status DatabaseStatus
209+
210+
+ SetupWebhookWithManager(mgr controller-runtime.Manager) error
211+
+ Default()
212+
+ ValidateCreate() error
213+
+ ValidateUpdate(old runtime.Object) error
214+
+ ValidateDelete() error
215+
+ DeepCopyInto(out *Database)
216+
+ DeepCopy() *Database
217+
+ DeepCopyObject() runtime.Object
218+
219+
}
220+
class DatabaseClass << (S,Aquamarine) >> {
221+
+ Spec DatabaseClassSpec
222+
223+
+ DeepCopyInto(out *DatabaseClass)
224+
+ DeepCopy() *DatabaseClass
225+
+ DeepCopyObject() runtime.Object
226+
227+
}
228+
class DatabaseClassList << (S,Aquamarine) >> {
229+
+ Items []DatabaseClass
230+
231+
+ DeepCopyInto(out *DatabaseClassList)
232+
+ DeepCopy() *DatabaseClassList
233+
+ DeepCopyObject() runtime.Object
234+
235+
}
236+
class DatabaseClassSpec << (S,Aquamarine) >> {
237+
+ Driver string
238+
+ Operations <font color=blue>map</font>[string]database.Operation
239+
+ SecretFormat database.SecretFormat
240+
241+
+ DeepCopyInto(out *DatabaseClassSpec)
242+
+ DeepCopy() *DatabaseClassSpec
243+
244+
}
245+
class DatabaseList << (S,Aquamarine) >> {
246+
+ Items []Database
247+
248+
+ DeepCopyInto(out *DatabaseList)
249+
+ DeepCopy() *DatabaseList
250+
+ DeepCopyObject() runtime.Object
251+
252+
}
253+
class DatabaseSpec << (S,Aquamarine) >> {
254+
+ Endpoint string
255+
+ Params <font color=blue>map</font>[string]string
256+
257+
+ DeepCopyInto(out *DatabaseSpec)
258+
+ DeepCopy() *DatabaseSpec
259+
260+
}
261+
class DatabaseStatus << (S,Aquamarine) >> {
262+
+ Conditions []v1.Condition
263+
264+
+ DeepCopyInto(out *DatabaseStatus)
265+
+ DeepCopy() *DatabaseStatus
266+
267+
}
268+
class OperatorConfig << (S,Aquamarine) >> {
269+
+ Complete() (v1alpha1.ControllerManagerConfigurationSpec, error)
270+
+ DeepCopyInto(out *OperatorConfig)
271+
+ DeepCopy() *OperatorConfig
272+
+ DeepCopyObject() runtime.Object
273+
274+
}
275+
}
276+
277+
"database.DbmsList" *-- "extends""v1.OperatorConfig"
278+
"v1alpha1.ControllerManagerConfigurationSpec" *-- "extends""v1.OperatorConfig"
279+
280+
281+
"v1.Database""uses" o-- "v1.DatabaseSpec"
282+
"v1.Database""uses" o-- "v1.DatabaseStatus"
283+
"v1.DatabaseClass""uses" o-- "v1.DatabaseClassSpec"
284+
"v1.DatabaseClassList""uses" o-- "v1.DatabaseClass"
285+
"v1.DatabaseClassSpec""uses" o-- "database.Operation"
286+
"v1.DatabaseClassSpec""uses" o-- "database.SecretFormat"
287+
"v1.DatabaseList""uses" o-- "v1.Database"
288+
"v1.DatabaseStatus""uses" o-- "v1.Condition"
289+
290+
"database.[]Dbms" #.. "alias of""database.DbmsList"
291+
@enduml
2.74 MB
Loading

0 commit comments

Comments
 (0)