Skip to content

Commit b7bdb8f

Browse files
feat: Application generation strategies and clusters generation (argoproj#8263)
feat: Application generation strategies and clusters generation (argoproj#8263) Signed-off-by: pashavictorovich <pavel@codefresh.io>
1 parent c3b3521 commit b7bdb8f

File tree

17 files changed

+589
-338
lines changed

17 files changed

+589
-338
lines changed

hack/gen-resources/cmd/commands/all.go

Lines changed: 0 additions & 76 deletions
This file was deleted.

hack/gen-resources/cmd/commands/application.go

Lines changed: 0 additions & 59 deletions
This file was deleted.
Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
package commands
2+
3+
import (
4+
"context"
5+
"log"
6+
7+
"github.com/spf13/cobra"
8+
9+
generator "github.com/argoproj/argo-cd/v2/hack/gen-resources/generators"
10+
"github.com/argoproj/argo-cd/v2/util/db"
11+
"github.com/argoproj/argo-cd/v2/util/settings"
12+
13+
cmdutil "github.com/argoproj/argo-cd/v2/cmd/util"
14+
"github.com/argoproj/argo-cd/v2/hack/gen-resources/util"
15+
"github.com/argoproj/argo-cd/v2/util/cli"
16+
)
17+
18+
const (
19+
cliName = "argocd-generator"
20+
)
21+
22+
func init() {
23+
cobra.OnInitialize(initConfig)
24+
}
25+
26+
func initConfig() {
27+
cli.SetLogFormat(cmdutil.LogFormat)
28+
cli.SetLogLevel(cmdutil.LogLevel)
29+
}
30+
31+
// NewCommand returns a new instance of an argocd command
32+
func NewCommand() *cobra.Command {
33+
34+
var generateOpts util.GenerateOpts
35+
36+
var command = &cobra.Command{
37+
Use: cliName,
38+
Short: "Generator for argocd resources",
39+
Run: func(c *cobra.Command, args []string) {
40+
c.HelpFunc()(c, args)
41+
},
42+
DisableAutoGenTag: true,
43+
}
44+
45+
command.AddCommand(NewGenerateCommand(&generateOpts))
46+
command.AddCommand(NewCleanCommand(&generateOpts))
47+
48+
command.PersistentFlags().StringVar(&generateOpts.Namespace, "kube-namespace", "argocd", "Name of the namespace on which Argo agent should be installed [$KUBE_NAMESPACE]")
49+
return command
50+
}
51+
52+
func NewGenerateCommand(opts *util.GenerateOpts) *cobra.Command {
53+
var file string
54+
var command = &cobra.Command{
55+
Use: "generate [-f file]",
56+
Short: "Generate entities",
57+
Long: "Generate entities",
58+
Run: func(c *cobra.Command, args []string) {
59+
log.Printf("Retrieve configuration from %s", file)
60+
err := util.Parse(opts, file)
61+
if err != nil {
62+
log.Fatalf("Failed to retrieve configuration, %v", err.Error())
63+
}
64+
argoClientSet := util.ConnectToK8sArgoClientSet()
65+
clientSet := util.ConnectToK8sClientSet()
66+
67+
settingsMgr := settings.NewSettingsManager(context.TODO(), clientSet, opts.Namespace)
68+
argoDB := db.NewDB(opts.Namespace, settingsMgr, clientSet)
69+
70+
pg := generator.NewProjectGenerator(argoClientSet)
71+
ag := generator.NewApplicationGenerator(argoClientSet, clientSet, argoDB)
72+
rg := generator.NewRepoGenerator(util.ConnectToK8sClientSet())
73+
cg := generator.NewClusterGenerator(argoDB, util.ConnectToK8sClientSet(), util.ConnectToK8sConfig())
74+
75+
err = pg.Generate(opts)
76+
if err != nil {
77+
log.Fatalf("Failed to generate projects, %v", err.Error())
78+
}
79+
err = rg.Generate(opts)
80+
if err != nil {
81+
log.Fatalf("Failed to generate repositories, %v", err.Error())
82+
}
83+
err = cg.Generate(opts)
84+
if err != nil {
85+
log.Fatalf("Failed to generate clusters, %v", err.Error())
86+
}
87+
err = ag.Generate(opts)
88+
if err != nil {
89+
log.Fatalf("Failed to generate applications, %v", err.Error())
90+
}
91+
},
92+
}
93+
command.Flags().StringVarP(&file, "file", "f", "", "")
94+
return command
95+
}
96+
97+
func NewCleanCommand(opts *util.GenerateOpts) *cobra.Command {
98+
var command = &cobra.Command{
99+
Use: "clean",
100+
Short: "Clean entities",
101+
Long: "Clean entities",
102+
Run: func(c *cobra.Command, args []string) {
103+
argoClientSet := util.ConnectToK8sArgoClientSet()
104+
clientSet := util.ConnectToK8sClientSet()
105+
settingsMgr := settings.NewSettingsManager(context.TODO(), clientSet, opts.Namespace)
106+
argoDB := db.NewDB(opts.Namespace, settingsMgr, clientSet)
107+
108+
pg := generator.NewProjectGenerator(argoClientSet)
109+
ag := generator.NewApplicationGenerator(argoClientSet, clientSet, argoDB)
110+
cg := generator.NewClusterGenerator(argoDB, clientSet, util.ConnectToK8sConfig())
111+
rg := generator.NewRepoGenerator(clientSet)
112+
113+
err := pg.Clean(opts)
114+
if err != nil {
115+
log.Fatalf("Failed to clean projects, %v", err.Error())
116+
}
117+
err = ag.Clean(opts)
118+
if err != nil {
119+
log.Fatalf("Failed to clean applications, %v", err.Error())
120+
}
121+
err = cg.Clean(opts)
122+
if err != nil {
123+
log.Fatalf("Failed to clean clusters, %v", err.Error())
124+
}
125+
err = rg.Clean(opts)
126+
if err != nil {
127+
log.Fatalf("Failed to clean repositores, %v", err.Error())
128+
}
129+
},
130+
}
131+
return command
132+
}

hack/gen-resources/cmd/commands/project.go

Lines changed: 0 additions & 60 deletions
This file was deleted.

hack/gen-resources/cmd/commands/repos.go

Lines changed: 0 additions & 61 deletions
This file was deleted.

0 commit comments

Comments
 (0)