Compare commits
7 Commits
main
...
add-waitin
Author | SHA1 | Date | |
---|---|---|---|
412e366200 | |||
f5cadcc5f0 | |||
ae1a6c45f9 | |||
65fdaf43cc | |||
2d135329bb | |||
3e95319969 | |||
1208438cba |
@ -5,7 +5,8 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"strings"
|
"os"
|
||||||
|
"os/signal"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"coopcloud.tech/abra/pkg/upstream/convert"
|
"coopcloud.tech/abra/pkg/upstream/convert"
|
||||||
@ -414,7 +415,7 @@ func deployServices(
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
logrus.Infof("waiting for services to converge: %s", strings.Join(serviceNames, ", "))
|
logrus.Infof("Starting to poll for deployment status for: %s", appName)
|
||||||
ch := make(chan error, len(serviceIDs))
|
ch := make(chan error, len(serviceIDs))
|
||||||
for serviceID, serviceName := range serviceIDs {
|
for serviceID, serviceName := range serviceIDs {
|
||||||
logrus.Debugf("waiting on %s to converge", serviceName)
|
logrus.Debugf("waiting on %s to converge", serviceName)
|
||||||
@ -431,7 +432,7 @@ func deployServices(
|
|||||||
logrus.Debugf("assuming %s converged successfully", serviceID)
|
logrus.Debugf("assuming %s converged successfully", serviceID)
|
||||||
}
|
}
|
||||||
|
|
||||||
logrus.Info("services converged 👌")
|
logrus.Infof("Successfully deployed %s", appName)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -454,6 +455,10 @@ func WaitOnService(ctx context.Context, cl *dockerClient.Client, serviceID, appN
|
|||||||
errChan := make(chan error, 1)
|
errChan := make(chan error, 1)
|
||||||
pipeReader, pipeWriter := io.Pipe()
|
pipeReader, pipeWriter := io.Pipe()
|
||||||
|
|
||||||
|
sigintChannel := make(chan os.Signal, 1)
|
||||||
|
signal.Notify(sigintChannel, os.Interrupt)
|
||||||
|
defer signal.Stop(sigintChannel)
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
errChan <- progress.ServiceProgress(ctx, cl, serviceID, pipeWriter)
|
errChan <- progress.ServiceProgress(ctx, cl, serviceID, pipeWriter)
|
||||||
}()
|
}()
|
||||||
@ -465,6 +470,14 @@ func WaitOnService(ctx context.Context, cl *dockerClient.Client, serviceID, appN
|
|||||||
select {
|
select {
|
||||||
case err := <-errChan:
|
case err := <-errChan:
|
||||||
return err
|
return err
|
||||||
|
case <-sigintChannel:
|
||||||
|
return fmt.Errorf(fmt.Sprintf(`
|
||||||
|
Cancelling polling for %s, deployment is still continuing.
|
||||||
|
|
||||||
|
If you want to stop the deployment try:
|
||||||
|
abra app undeploy %s
|
||||||
|
|
||||||
|
`, appName, appName))
|
||||||
case <-time.After(timeout):
|
case <-time.After(timeout):
|
||||||
return fmt.Errorf(fmt.Sprintf(`
|
return fmt.Errorf(fmt.Sprintf(`
|
||||||
%s has not converged (%s second timeout reached).
|
%s has not converged (%s second timeout reached).
|
||||||
@ -481,7 +494,7 @@ And inspect the logs with:
|
|||||||
|
|
||||||
abra app logs %s
|
abra app logs %s
|
||||||
|
|
||||||
If a service is failing to even start, try smoke out the error with:
|
If a service is failing to even start, try to smoke out the error with:
|
||||||
|
|
||||||
abra app errors --watch %s
|
abra app errors --watch %s
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user