Skip to content

Commit 006eb07

Browse files
author
Gabriel Monroy
committed
ref(deisctl): staged unit orchestration to support upgrades
1 parent cdb75ed commit 006eb07

1 file changed

Lines changed: 109 additions & 71 deletions

File tree

deisctl/cmd/cmd.go

Lines changed: 109 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ import (
1717
"github.com/deis/deis/deisctl/constant"
1818
"github.com/deis/deis/deisctl/update"
1919
"github.com/deis/deis/deisctl/utils"
20-
"github.com/docopt/docopt-go"
20+
21+
docopt "github.com/docopt/docopt-go"
2122
)
2223

2324
const (
@@ -73,41 +74,47 @@ func StartPlatform(b backend.Backend) error {
7374
if err := startDefaultServices(b); err != nil {
7475
return err
7576
}
76-
fmt.Println("Deis started.")
7777
return nil
7878
}
7979

8080
func startDataContainers(b backend.Backend) error {
81-
fmt.Println("Launching data containers...")
81+
fmt.Println("Data containers...")
8282
if err := b.Start(DefaultDataContainers); err != nil {
8383
return err
8484
}
85-
fmt.Println("Data containers launched.")
8685
return nil
8786
}
8887

8988
func startDefaultServices(b backend.Backend) error {
90-
fmt.Println("Launching service containers...")
91-
if err := Start(b, []string{"logger@1"}); err != nil {
89+
90+
fmt.Println("Logging subsystem...")
91+
if err := b.Start([]string{"logger", "logspout"}); err != nil {
9292
return err
9393
}
94-
targets := []string{
95-
"publisher",
96-
"store-monitor",
97-
"store-daemon",
98-
"store-gateway@1",
99-
"logspout",
100-
"cache@1",
101-
"router@1",
102-
"database@1",
103-
"controller@1",
104-
"registry@1",
105-
"builder@1",
94+
95+
fmt.Println("Storage subsystem...")
96+
if err := b.Start([]string{"store-daemon", "store-monitor", "store-gateway"}); err != nil {
97+
return err
10698
}
107-
if err := Start(b, targets); err != nil {
99+
100+
fmt.Println("Control plane...")
101+
if err := b.Start([]string{
102+
"cache", "database", "registry",
103+
"controller", "builder"}); err != nil {
108104
return err
109105
}
110-
fmt.Println("Service containers launched.")
106+
107+
fmt.Println("Data plane...")
108+
if err := b.Start([]string{"publisher"}); err != nil {
109+
return err
110+
}
111+
112+
fmt.Println("Routing mesh...")
113+
if err := b.Start([]string{"router@1", "router@2", "router@3"}); err != nil {
114+
return err
115+
}
116+
117+
fmt.Println("Done.")
111118
return nil
112119
}
113120

@@ -124,30 +131,40 @@ func StopPlatform(b backend.Backend) error {
124131
if err := stopDefaultServices(b); err != nil {
125132
return err
126133
}
127-
fmt.Println("Deis stopped.")
128134
return nil
129135
}
130136

131137
func stopDefaultServices(b backend.Backend) error {
132-
fmt.Println("Stopping service containers...")
133-
targets := []string{
134-
"publisher",
135-
"logspout",
136-
"builder@1",
137-
"registry@1",
138-
"controller@1",
139-
"database@1",
140-
"store-gateway@1",
141-
"store-daemon",
142-
"store-monitor",
143-
"cache@1",
144-
"router@1",
145-
"logger@1",
146-
}
147-
if err := Stop(b, targets); err != nil {
148-
return err
149-
}
150-
fmt.Println("Service containers stopped.")
138+
139+
fmt.Println("Routing mesh...")
140+
if err := b.Stop([]string{"router@1", "router@2", "router@3"}); err != nil {
141+
return err
142+
}
143+
144+
fmt.Println("Data plane...")
145+
if err := b.Stop([]string{"publisher"}); err != nil {
146+
return err
147+
}
148+
149+
fmt.Println("Control plane...")
150+
if err := b.Stop([]string{
151+
"controller", "builder",
152+
"cache", "database", "registry",
153+
}); err != nil {
154+
return err
155+
}
156+
157+
fmt.Println("Storage subsystem...")
158+
if err := b.Stop([]string{"store-gateway", "store-monitor", "store-daemon"}); err != nil {
159+
return err
160+
}
161+
162+
fmt.Println("Logging subsystem...")
163+
if err := b.Stop([]string{"logger", "logspout"}); err != nil {
164+
return err
165+
}
166+
167+
fmt.Println("Done.")
151168
return nil
152169
}
153170

@@ -199,67 +216,88 @@ func InstallPlatform(b backend.Backend) error {
199216
}
200217

201218
func installDataContainers(b backend.Backend) error {
202-
fmt.Println("Scheduling data containers...")
219+
fmt.Println("Data containers...")
203220
if err := b.Create(DefaultDataContainers); err != nil {
204221
return err
205222
}
206-
fmt.Println("Data containers scheduled.")
207223
return nil
208224
}
209225

210226
func installDefaultServices(b backend.Backend) error {
211-
// Install global units
212-
if err := b.Create([]string{"publisher", "logspout", "store-monitor", "store-daemon"}); err != nil {
227+
228+
fmt.Println("Logging subsystem...")
229+
if err := b.Create([]string{"logger", "logspout"}); err != nil {
213230
return err
214231
}
215-
// start service containers
216-
targets := []string{
217-
"store-gateway=1",
218-
"database=1",
219-
"cache=1",
220-
"logger=1",
221-
"registry=1",
222-
"controller=1",
223-
"builder=1",
224-
"router=1",
232+
233+
fmt.Println("Storage subsystem...")
234+
if err := b.Create([]string{"store-daemon", "store-monitor", "store-gateway"}); err != nil {
235+
return err
225236
}
226-
fmt.Println("Scheduling service containers...")
227-
if err := Scale(b, targets); err != nil {
237+
238+
fmt.Println("Control plane...")
239+
if err := b.Create([]string{
240+
"cache", "database", "registry",
241+
"controller", "builder",
242+
}); err != nil {
243+
return err
244+
}
245+
246+
fmt.Println("Data plane...")
247+
if err := b.Create([]string{"publisher"}); err != nil {
248+
return err
249+
}
250+
251+
fmt.Println("Routing mesh...")
252+
if err := b.Create([]string{"router@1", "router@2", "router@3"}); err != nil {
228253
return err
229254
}
230-
fmt.Println("Service containers scheduled.")
255+
256+
fmt.Println("Done.")
231257
return nil
232258
}
233259

234260
func Uninstall(b backend.Backend, targets []string) error {
235261
// if target is platform, uninstall all services
236262
if len(targets) == 1 && targets[0] == PlatformInstallCommand {
263+
fmt.Println(utils.DeisIfy("Uninstalling Deis..."))
237264
return uninstallAllServices(b)
238265
}
239266
// uninstall the specific target
240267
return b.Destroy(targets)
241268
}
242269

243270
func uninstallAllServices(b backend.Backend) error {
244-
targets := []string{
245-
"store-gateway=0",
246-
"database=0",
247-
"cache=0",
248-
"logger=0",
249-
"registry=0",
250-
"controller=0",
251-
"builder=0",
252-
"router=0",
271+
272+
fmt.Println("Routing mesh...")
273+
if err := b.Destroy([]string{"router@1", "router@2", "router@3"}); err != nil {
274+
return err
275+
}
276+
277+
fmt.Println("Data plane...")
278+
if err := b.Destroy([]string{"publisher"}); err != nil {
279+
return err
253280
}
254-
fmt.Println("Destroying service containers...")
255-
if err := Scale(b, targets); err != nil {
281+
282+
fmt.Println("Control plane...")
283+
if err := b.Destroy([]string{
284+
"controller", "builder",
285+
"cache", "database", "registry",
286+
}); err != nil {
287+
return err
288+
}
289+
290+
fmt.Println("Storage subsystem...")
291+
if err := b.Destroy([]string{"store-gateway", "store-monitor", "store-daemon"}); err != nil {
256292
return err
257293
}
258-
// Uninstall global units
259-
if err := b.Destroy([]string{"publisher", "logspout", "store-monitor", "store-daemon"}); err != nil {
294+
295+
fmt.Println("Logging subsystem...")
296+
if err := b.Destroy([]string{"logger", "logspout"}); err != nil {
260297
return err
261298
}
262-
fmt.Println("Service containers destroyed.")
299+
300+
fmt.Println("Done.")
263301
return nil
264302
}
265303

0 commit comments

Comments
 (0)