forked from coop-cloud/abra
Compare commits
12 Commits
6ef15e0a26
...
6c87d501e6
Author | SHA1 | Date |
---|---|---|
knoflook | 6c87d501e6 | |
decentral1se | 930c29f4a2 | |
decentral1se | 1d6c3e98e4 | |
decentral1se | a90f3b7463 | |
decentral1se | 962f566228 | |
decentral1se | 9896c57399 | |
decentral1se | 748d607ddc | |
decentral1se | 3901258a96 | |
decentral1se | 4347083f98 | |
decentral1se | 4641a942d8 | |
3wc | 759a00eeb3 | |
3wc | d1526fad21 |
|
@ -31,7 +31,7 @@ func stackLogs(c *cli.Context, stackName string, client *dockerClient.Client) {
|
|||
wg.Add(1)
|
||||
go func(s string) {
|
||||
logOpts := types.ContainerLogsOptions{
|
||||
Details: true,
|
||||
Details: false,
|
||||
Follow: true,
|
||||
ShowStderr: true,
|
||||
ShowStdout: true,
|
||||
|
@ -88,7 +88,7 @@ var appLogsCommand = &cli.Command{
|
|||
}
|
||||
|
||||
logOpts := types.ContainerLogsOptions{
|
||||
Details: true,
|
||||
Details: false,
|
||||
Follow: true,
|
||||
ShowStderr: true,
|
||||
ShowStdout: true,
|
||||
|
|
|
@ -7,6 +7,7 @@ import (
|
|||
"coopcloud.tech/abra/cli/internal"
|
||||
"coopcloud.tech/abra/pkg/client"
|
||||
"coopcloud.tech/abra/pkg/config"
|
||||
stack "coopcloud.tech/abra/pkg/upstream/stack"
|
||||
"github.com/AlecAivazis/survey/v2"
|
||||
"github.com/docker/docker/api/types"
|
||||
"github.com/docker/docker/api/types/filters"
|
||||
|
@ -48,23 +49,18 @@ var appRemoveCommand = &cli.Command{
|
|||
}
|
||||
}
|
||||
|
||||
appFiles, err := config.LoadAppFiles("")
|
||||
if err != nil {
|
||||
logrus.Fatal(err)
|
||||
}
|
||||
|
||||
cl, err := client.New(app.Server)
|
||||
if err != nil {
|
||||
logrus.Fatal(err)
|
||||
}
|
||||
|
||||
if !internal.Force {
|
||||
// FIXME: only query for app we are interested in, not all of them!
|
||||
statuses, err := config.GetAppStatuses(appFiles)
|
||||
isDeployed, _, err := stack.IsDeployed(c.Context, cl, app.StackName())
|
||||
if err != nil {
|
||||
logrus.Fatal(err)
|
||||
}
|
||||
if statuses[app.Name]["status"] == "deployed" {
|
||||
logrus.Fatalf("'%s' is still deployed. Run \"abra app %s undeploy\" or pass --force", app.Name, app.Name)
|
||||
if isDeployed {
|
||||
logrus.Fatalf("'%s' is still deployed. Run \"abra app undeploy %s \" or pass --force", app.Name, app.Name)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -40,12 +40,14 @@ var CatalogueSkipList = map[string]bool{
|
|||
"docker-cp-deploy": true,
|
||||
"docker-dind-bats-kcov": true,
|
||||
"docs.coopcloud.tech": true,
|
||||
"drone-abra": true,
|
||||
"example": true,
|
||||
"gardening": true,
|
||||
"go-abra": true,
|
||||
"organising": true,
|
||||
"pyabra": true,
|
||||
"radicle-seed-node": true,
|
||||
"recipes": true,
|
||||
"stack-ssh-deploy": true,
|
||||
"swarm-cronjob": true,
|
||||
"tagcmp": true,
|
||||
|
@ -176,7 +178,7 @@ A new catalogue copy can be published to the recipes repository by passing the
|
|||
|
||||
features, category, err := catalogue.GetRecipeFeaturesAndCategory(recipeMeta.Name)
|
||||
if err != nil {
|
||||
logrus.Fatal(err)
|
||||
logrus.Warn(err)
|
||||
}
|
||||
|
||||
catl[recipeMeta.Name] = catalogue.RecipeMeta{
|
||||
|
|
|
@ -26,7 +26,7 @@ func DeployAction(c *cli.Context) error {
|
|||
logrus.Fatal(err)
|
||||
}
|
||||
|
||||
logrus.Debugf("checking whether '%s' is already deployed", stackName)
|
||||
logrus.Debugf("checking whether %s is already deployed", stackName)
|
||||
|
||||
isDeployed, deployedVersion, err := stack.IsDeployed(c.Context, cl, stackName)
|
||||
if err != nil {
|
||||
|
@ -35,9 +35,9 @@ func DeployAction(c *cli.Context) error {
|
|||
|
||||
if isDeployed {
|
||||
if Force || Chaos {
|
||||
logrus.Warnf("'%s' is already deployed but continuing (--force/--chaos)", stackName)
|
||||
logrus.Warnf("%s is already deployed but continuing (--force/--chaos)", stackName)
|
||||
} else {
|
||||
logrus.Fatalf("'%s' is already deployed", stackName)
|
||||
logrus.Fatalf("%s is already deployed", stackName)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -53,7 +53,7 @@ func DeployAction(c *cli.Context) error {
|
|||
}
|
||||
if len(versions) > 0 {
|
||||
version = versions[len(versions)-1]
|
||||
logrus.Debugf("choosing '%s' as version to deploy", version)
|
||||
logrus.Debugf("choosing %s as version to deploy", version)
|
||||
if err := recipe.EnsureVersion(app.Type, version); err != nil {
|
||||
logrus.Fatal(err)
|
||||
}
|
||||
|
@ -67,7 +67,7 @@ func DeployAction(c *cli.Context) error {
|
|||
}
|
||||
|
||||
if version == "" && !Chaos {
|
||||
logrus.Debugf("choosing '%s' as version to deploy", version)
|
||||
logrus.Debugf("choosing %s as version to deploy", version)
|
||||
if err := recipe.EnsureVersion(app.Type, version); err != nil {
|
||||
logrus.Fatal(err)
|
||||
}
|
||||
|
|
|
@ -236,7 +236,7 @@ func installDocker(c *cli.Context, cl *dockerClient.Client, sshCl *ssh.Client, d
|
|||
}
|
||||
}
|
||||
|
||||
logrus.Infof("docker is installed on %s", domainName)
|
||||
logrus.Infof("docker is already installed on %s", domainName)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
@ -276,7 +276,8 @@ func initSwarm(c *cli.Context, cl *dockerClient.Client, domainName string) error
|
|||
AdvertiseAddr: ipv4,
|
||||
}
|
||||
if _, err := cl.SwarmInit(c.Context, initReq); err != nil {
|
||||
if !strings.Contains(err.Error(), "is already part of a swarm") {
|
||||
if !strings.Contains(err.Error(), "is already part of a swarm") ||
|
||||
!strings.Contains(err.Error(), "must specify a listening address") {
|
||||
return err
|
||||
}
|
||||
logrus.Infof("swarm mode already initialised on %s", domainName)
|
||||
|
|
|
@ -411,7 +411,7 @@ func GetImageMetadata(imageRowString string) (image, error) {
|
|||
if err != nil {
|
||||
logrus.Fatal(err)
|
||||
}
|
||||
img.Image = imageName
|
||||
img.Image = strings.ReplaceAll(imageName, "`", "")
|
||||
|
||||
imageURL, err := GetStringInBetween(imgString, "(", ")")
|
||||
if err != nil {
|
||||
|
@ -441,7 +441,7 @@ func GetRecipeFeaturesAndCategory(recipeName string) (features, string, error) {
|
|||
"<!-- metadata -->", "<!-- endmetadata -->",
|
||||
)
|
||||
if err != nil {
|
||||
logrus.Fatal(err)
|
||||
return feat, category, err
|
||||
}
|
||||
|
||||
readmeLines := strings.Split( // Array item from lines
|
||||
|
@ -553,9 +553,21 @@ func GetRecipeVersions(recipeName string) (RecipeVersions, error) {
|
|||
path = strings.Split(path, "/")[1]
|
||||
}
|
||||
|
||||
var tag string
|
||||
switch img.(type) {
|
||||
case reference.NamedTagged:
|
||||
tag = img.(reference.NamedTagged).Tag()
|
||||
case reference.Named:
|
||||
logrus.Warnf("%s service is missing image tag?", path)
|
||||
continue
|
||||
}
|
||||
|
||||
logrus.Debugf("looking up image: '%s' from '%s'", img, path)
|
||||
|
||||
digest, err := client.GetTagDigest(img)
|
||||
if err != nil {
|
||||
return err
|
||||
logrus.Warn(err)
|
||||
continue
|
||||
}
|
||||
|
||||
versionMeta[service.Name] = ServiceMeta{
|
||||
|
|
|
@ -157,7 +157,8 @@ func EnsureVersion(recipeName, version string) error {
|
|||
logrus.Debugf("read '%s' as tags for recipe '%s'", strings.Join(parsedTags, ", "), recipeName)
|
||||
|
||||
if tagRef.String() == "" {
|
||||
return fmt.Errorf("%s is not available?", version)
|
||||
logrus.Warnf("%s recipe has no local tag: %s? this recipe version is not released?", recipeName, version)
|
||||
return nil
|
||||
}
|
||||
|
||||
worktree, err := repo.Worktree()
|
||||
|
|
|
@ -350,7 +350,7 @@ func deployServices(
|
|||
existingServiceMap[service.Spec.Name] = service
|
||||
}
|
||||
|
||||
var serviceIDs []string
|
||||
serviceIDs := make(map[string]string)
|
||||
for internalName, serviceSpec := range services {
|
||||
var (
|
||||
name = namespace.Scope(internalName)
|
||||
|
@ -410,7 +410,7 @@ func deployServices(
|
|||
return errors.Wrapf(err, "failed to update service %s", name)
|
||||
}
|
||||
|
||||
serviceIDs = append(serviceIDs, service.ID)
|
||||
serviceIDs[service.ID] = name
|
||||
|
||||
for _, warning := range response.Warnings {
|
||||
logrus.Warn(warning)
|
||||
|
@ -430,15 +430,19 @@ func deployServices(
|
|||
return errors.Wrapf(err, "failed to create service %s", name)
|
||||
}
|
||||
|
||||
serviceIDs = append(serviceIDs, serviceCreateResponse.ID)
|
||||
serviceIDs[serviceCreateResponse.ID] = name
|
||||
}
|
||||
}
|
||||
|
||||
logrus.Infof("waiting for services to converge: %s", strings.Join(serviceIDs, ", "))
|
||||
var serviceNames []string
|
||||
for _, serviceName := range serviceIDs {
|
||||
serviceNames = append(serviceNames, serviceName)
|
||||
}
|
||||
logrus.Infof("waiting for services to converge: %s", strings.Join(serviceNames, ", "))
|
||||
|
||||
ch := make(chan error, len(serviceIDs))
|
||||
for _, serviceID := range serviceIDs {
|
||||
logrus.Debugf("waiting on %s to converge", serviceID)
|
||||
for serviceID, serviceName := range serviceIDs {
|
||||
logrus.Debugf("waiting on %s to converge", serviceName)
|
||||
go func(s string) {
|
||||
ch <- waitOnService(ctx, cl, s)
|
||||
}(serviceID)
|
||||
|
|
|
@ -76,13 +76,13 @@ function install_abra_release {
|
|||
p=$HOME/.local/bin
|
||||
com="echo PATH=\$PATH:$p"
|
||||
if [[ $SHELL =~ "bash" ]]; then
|
||||
echo "echo $com >> $HOME/.bashrc"
|
||||
echo "$com >> $HOME/.bashrc"
|
||||
elif [[ $SHELL =~ "fizsh" ]]; then
|
||||
echo "echo $com >> $HOME/.fizsh/.fizshrc"
|
||||
echo "$com >> $HOME/.fizsh/.fizshrc"
|
||||
elif [[ $SHELL =~ "zsh" ]]; then
|
||||
echo "echo $com >> $HOME/.zshrc"
|
||||
echo "$com >> $HOME/.zshrc"
|
||||
else
|
||||
echo "echo $com >> $HOME/.profile"
|
||||
echo "$com >> $HOME/.profile"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
|
Loading…
Reference in New Issue