Skip to content
This repository was archived by the owner on Jul 18, 2025. It is now read-only.

Commit 1e1a2aa

Browse files
author
Matthieu Nottale
committed
deploy: Allow specifying the stack name.
Signed-off-by: Matthieu Nottale <[email protected]>
1 parent c3674ae commit 1e1a2aa

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

cmd/deploy.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ then deployed similarly to 'docker stack deploy'.`,
2929
if err != nil {
3030
return err
3131
}
32-
return renderer.Deploy(firstOrEmpty(args), deployComposeFiles, deploySettingsFiles, d, deployOrchestrator, deployKubeConfig, deployNamespace)
32+
return renderer.Deploy(firstOrEmpty(args), deployComposeFiles, deploySettingsFiles, d, deployStackName, deployOrchestrator, deployKubeConfig, deployNamespace)
3333
},
3434
}
3535

@@ -39,6 +39,7 @@ var deployEnv []string
3939
var deployOrchestrator string
4040
var deployKubeConfig string
4141
var deployNamespace string
42+
var deployStackName string
4243

4344
func init() {
4445
rootCmd.AddCommand(deployCmd)
@@ -47,6 +48,7 @@ func init() {
4748
deployCmd.Flags().StringVarP(&deployOrchestrator, "orchestrator", "o", "swarm", "Orchestrator to deploy on (swarm, kubernetes)")
4849
deployCmd.Flags().StringVarP(&deployKubeConfig, "kubeconfig", "k", "", "kubeconfig file to use")
4950
deployCmd.Flags().StringVarP(&deployNamespace, "namespace", "n", "default", "namespace to deploy into")
51+
deployCmd.Flags().StringVarP(&deployStackName, "name", "d", "", "stack name (default: app name)")
5052
if internal.Experimental == "on" {
5153
deployCmd.Flags().StringArrayVarP(&deployComposeFiles, "compose-files", "c", []string{}, "Override Compose files")
5254
}

renderer/deploy.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import (
1515

1616
// Deploy deploys this app, merging in settings files, other compose files, end env
1717
func Deploy(appname string, composeFiles []string, settingsFile []string, env map[string]string,
18-
orchestrator string, kubeconfig string, namespace string) error {
18+
stackName string, orchestrator string, kubeconfig string, namespace string) error {
1919
appname, cleanup, err := packager.Extract(appname)
2020
if err != nil {
2121
return err
@@ -31,10 +31,13 @@ func Deploy(appname string, composeFiles []string, settingsFile []string, env ma
3131
Orchestrator: orchestrator,
3232
},
3333
})
34+
if stackName == "" {
35+
stackName = utils.AppNameFromDir(appname)
36+
}
3437
if orchestrator == "swarm" {
3538
ctx := context.Background()
3639
return swarm.DeployCompose(ctx, cli, rendered, options.Deploy{
37-
Namespace: utils.AppNameFromDir(appname),
40+
Namespace: stackName,
3841
})
3942
}
4043
// kube mode
@@ -45,5 +48,5 @@ func Deploy(appname string, composeFiles []string, settingsFile []string, env ma
4548
if err != nil {
4649
return err
4750
}
48-
return kubernetes.DeployStack(kubeCli, options.Deploy{Namespace: utils.AppNameFromDir(appname)}, rendered)
51+
return kubernetes.DeployStack(kubeCli, options.Deploy{Namespace: stackName}, rendered)
4952
}

0 commit comments

Comments
 (0)