|
@@ -21,19 +21,19 @@ var stackCmd = &cobra.Command{
|
|
|
Short: "Commands that control Porter Stacks",
|
|
Short: "Commands that control Porter Stacks",
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-var stackAddCmd = &cobra.Command{
|
|
|
|
|
- Use: "add",
|
|
|
|
|
- Short: "Commands to add resources to a stack",
|
|
|
|
|
|
|
+var stackEnvGroupCmd = &cobra.Command{
|
|
|
|
|
+ Use: "env-group",
|
|
|
|
|
+ Aliases: []string{"eg", "envgroup", "env-groups", "envgroups"},
|
|
|
|
|
+ Short: "Commands to add or remove an env group in a stack",
|
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
|
color.New(color.FgRed).Println("need to specify an operation to continue")
|
|
color.New(color.FgRed).Println("need to specify an operation to continue")
|
|
|
},
|
|
},
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-var stackAddEnvGroupCmd = &cobra.Command{
|
|
|
|
|
- Use: "env-group [name]",
|
|
|
|
|
- Args: cobra.ExactArgs(1),
|
|
|
|
|
- Aliases: []string{"eg", "envgroup", "env-groups", "envgroups"},
|
|
|
|
|
- Short: "Add an env group to a stack",
|
|
|
|
|
|
|
+var stackEnvGroupAddCmd = &cobra.Command{
|
|
|
|
|
+ Use: "add [name]",
|
|
|
|
|
+ Args: cobra.ExactArgs(1),
|
|
|
|
|
+ Short: "Add an env group to a stack",
|
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
|
err := checkLoginAndRun(args, stackAddEnvGroup)
|
|
err := checkLoginAndRun(args, stackAddEnvGroup)
|
|
|
|
|
|
|
@@ -43,26 +43,39 @@ var stackAddEnvGroupCmd = &cobra.Command{
|
|
|
},
|
|
},
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+var stackEnvGroupRemoveCmd = &cobra.Command{
|
|
|
|
|
+ Use: "remove [name]",
|
|
|
|
|
+ Args: cobra.ExactArgs(1),
|
|
|
|
|
+ Short: "Remove an existing env group from a stack",
|
|
|
|
|
+ Run: func(cmd *cobra.Command, args []string) {
|
|
|
|
|
+ err := checkLoginAndRun(args, stackRemoveEnvGroup)
|
|
|
|
|
+
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ os.Exit(1)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
func init() {
|
|
func init() {
|
|
|
rootCmd.AddCommand(stackCmd)
|
|
rootCmd.AddCommand(stackCmd)
|
|
|
|
|
|
|
|
- stackCmd.AddCommand(stackAddCmd)
|
|
|
|
|
|
|
+ stackCmd.AddCommand(stackEnvGroupCmd)
|
|
|
|
|
|
|
|
- stackAddCmd.PersistentFlags().StringVar(
|
|
|
|
|
|
|
+ stackCmd.PersistentFlags().StringVar(
|
|
|
&name,
|
|
&name,
|
|
|
"name",
|
|
"name",
|
|
|
"",
|
|
"",
|
|
|
"the name of the stack",
|
|
"the name of the stack",
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
- stackAddCmd.PersistentFlags().StringVar(
|
|
|
|
|
|
|
+ stackCmd.PersistentFlags().StringVar(
|
|
|
&namespace,
|
|
&namespace,
|
|
|
"namespace",
|
|
"namespace",
|
|
|
"default",
|
|
"default",
|
|
|
"the namespace of the stack",
|
|
"the namespace of the stack",
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
- stackAddEnvGroupCmd.PersistentFlags().StringArrayVarP(
|
|
|
|
|
|
|
+ stackEnvGroupAddCmd.PersistentFlags().StringArrayVarP(
|
|
|
&normalEnvGroupVars,
|
|
&normalEnvGroupVars,
|
|
|
"normal",
|
|
"normal",
|
|
|
"n",
|
|
"n",
|
|
@@ -70,7 +83,7 @@ func init() {
|
|
|
"list of variables to set, in the form VAR=VALUE",
|
|
"list of variables to set, in the form VAR=VALUE",
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
- stackAddEnvGroupCmd.PersistentFlags().StringArrayVarP(
|
|
|
|
|
|
|
+ stackEnvGroupAddCmd.PersistentFlags().StringArrayVarP(
|
|
|
&secretEnvGroupVars,
|
|
&secretEnvGroupVars,
|
|
|
"secret",
|
|
"secret",
|
|
|
"s",
|
|
"s",
|
|
@@ -78,14 +91,15 @@ func init() {
|
|
|
"list of secret variables to set, in the form VAR=VALUE",
|
|
"list of secret variables to set, in the form VAR=VALUE",
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
- stackAddEnvGroupCmd.PersistentFlags().StringArrayVar(
|
|
|
|
|
|
|
+ stackEnvGroupAddCmd.PersistentFlags().StringArrayVar(
|
|
|
&linkedApps,
|
|
&linkedApps,
|
|
|
"linked-apps",
|
|
"linked-apps",
|
|
|
[]string{},
|
|
[]string{},
|
|
|
"list of stack apps to link this env group with",
|
|
"list of stack apps to link this env group with",
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
- stackAddCmd.AddCommand(stackAddEnvGroupCmd)
|
|
|
|
|
|
|
+ stackEnvGroupCmd.AddCommand(stackEnvGroupAddCmd)
|
|
|
|
|
+ stackEnvGroupCmd.AddCommand(stackEnvGroupRemoveCmd)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func stackAddEnvGroup(_ *types.GetAuthenticatedUserResponse, client *api.Client, args []string) error {
|
|
func stackAddEnvGroup(_ *types.GetAuthenticatedUserResponse, client *api.Client, args []string) error {
|
|
@@ -160,3 +174,44 @@ func stackAddEnvGroup(_ *types.GetAuthenticatedUserResponse, client *api.Client,
|
|
|
|
|
|
|
|
return nil
|
|
return nil
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+func stackRemoveEnvGroup(_ *types.GetAuthenticatedUserResponse, client *api.Client, args []string) error {
|
|
|
|
|
+ envGroupName := args[0]
|
|
|
|
|
+
|
|
|
|
|
+ if len(envGroupName) == 0 {
|
|
|
|
|
+ return fmt.Errorf("empty env group name")
|
|
|
|
|
+ } else if len(name) == 0 {
|
|
|
|
|
+ return fmt.Errorf("empty stack name")
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ listStacks, err := client.ListStacks(context.Background(), cliConf.Project, cliConf.Cluster, namespace)
|
|
|
|
|
+
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ return err
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ stacks := *listStacks
|
|
|
|
|
+
|
|
|
|
|
+ var stackID string
|
|
|
|
|
+
|
|
|
|
|
+ for _, stk := range stacks {
|
|
|
|
|
+ if stk.Name == name {
|
|
|
|
|
+ stackID = stk.ID
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if len(stackID) == 0 {
|
|
|
|
|
+ return fmt.Errorf("stack not found")
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ err = client.RemoveEnvGroupFromStack(context.Background(), cliConf.Project, cliConf.Cluster, namespace, stackID,
|
|
|
|
|
+ envGroupName)
|
|
|
|
|
+
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ return err
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ color.New(color.FgGreen).Println("successfully removed env group")
|
|
|
|
|
+
|
|
|
|
|
+ return nil
|
|
|
|
|
+}
|