Skip to content

Commit

Permalink
Merge branch 'develop' of github.com:edenlabllc/rmk into feature/RMK-…
Browse files Browse the repository at this point in the history
…59-update-rmk-documentation-for-the-capi-based-release-v045
  • Loading branch information
anovikov-el committed Jan 23, 2025
2 parents a6dc5cf + 564799e commit 6c3911a
Show file tree
Hide file tree
Showing 13 changed files with 206 additions and 77 deletions.
8 changes: 1 addition & 7 deletions cmd/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import (
"fmt"
"go.uber.org/zap"
"os"
"regexp"
"strings"

yaml2 "github.com/ghodss/yaml"
Expand Down Expand Up @@ -226,13 +225,8 @@ func (cc *ClusterCommands) getKubeContext() (string, string, error) {
return "", "", err
}

re, err := regexp.Compile(`(?i)\b` + cc.Conf.Name + `\b`)
if err != nil {
return "", "", err
}

for key := range kubeConfig.Contexts {
if re.MatchString(key) {
if cc.Conf.Name == key {
contextNames = append(contextNames, key)
}
}
Expand Down
2 changes: 1 addition & 1 deletion cmd/cluster_capa.go
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ func (cc *ClusterCommands) createAWSSecrets() error {
return err
}

if len(secrets) > 0 {
if len(secrets) > 0 || !util.IsExists(cc.Conf.SopsAgeKeys, false) {
return nil
}

Expand Down
2 changes: 1 addition & 1 deletion cmd/cluster_capg.go
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ func (cc *ClusterCommands) createGCPSecrets() error {
return err
}

if len(secrets) > 0 {
if len(secrets) > 0 || !util.IsExists(cc.Conf.SopsAgeKeys, false) {
return nil
}

Expand Down
2 changes: 1 addition & 1 deletion cmd/cluster_capz.go
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ func (cc *ClusterCommands) createAzureSecrets(ac *azure_provider.AzureConfigure)
return err
}

if len(secrets) > 0 {
if len(secrets) > 0 || !util.IsExists(cc.Conf.SopsAgeKeys, false) {
return nil
}

Expand Down
3 changes: 3 additions & 0 deletions cmd/commands.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package cmd

import (
"fmt"
"sort"

"github.com/urfave/cli/v2"
Expand Down Expand Up @@ -519,6 +520,8 @@ func readInputSourceWithContext(gitSpec *git_handler.GitSpec, conf *config.Confi

if ctx.Command.Name == "generate" && !util.IsExists(util.GetPwdPath(util.TenantProjectFile), true) {
return nil
} else if ctx.Command.Name == "generate" && util.IsExists(util.GetPwdPath(util.TenantProjectFile), true) {
return fmt.Errorf("%s file exists, please eather delete it or run 'rmk config init' command to regenerate project", util.TenantProjectFile)
}

configPath := util.GetHomePath(util.RMKDir, util.RMKConfig, gitSpec.ID+".yaml")
Expand Down
53 changes: 52 additions & 1 deletion cmd/project.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,17 @@ import (

"rmk/config"
"rmk/git_handler"
"rmk/github"
"rmk/notification"
"rmk/util"
)

const (
clusterDepsRepo = "cluster-deps.bootstrap.infra"
clusterDepsRepoOwner = "edenlabllc"
clusterDepsRepoURL = "git::https://github.com/" + clusterDepsRepoOwner + "/{{.Name}}.git?ref={{.Version}}"
)

type ProjectCommands struct {
*parseContent
projectFile *config.ProjectFile
Expand Down Expand Up @@ -117,6 +124,21 @@ func (p *ProjectCommands) createProjectFile() error {
p.projectFile.Spec.Scopes = p.Ctx.StringSlice("scopes")
}

client, err := github.NewClient(clusterDepsRepoOwner, clusterDepsRepo, "", github.APIBaseURL)
if err != nil {
return err
}

if release, err := client.GetRelease(p.Ctx.Context, ""); err != nil {
zap.S().Warnf("skip add dependencies section into %s file, GitHub error: %v", util.TenantProjectFile, err)
} else {
p.projectFile.Dependencies = append(p.projectFile.Dependencies, config.Package{
Name: clusterDepsRepo,
Version: release.GetTagName(),
Url: clusterDepsRepoURL,
})
}

encoder := yaml.NewEncoder(&buf)
encoder.SetIndent(2)
if err := encoder.Encode(&p.projectFile); err != nil {
Expand Down Expand Up @@ -313,6 +335,33 @@ func (p *ProjectCommands) generateProjectFiles(gitSpec *git_handler.GitSpec) err
for _, sc := range p.scopes {
for _, env := range sc.environments {
switch sc.name {
case "deps":
tAWSCluster, err := p.Conf.ParseTemplate(template.New("TenantAWSCluster"), &p.parseContent, tenantAWSClusterValuesExample)
if err != nil {
return err
}

if err := p.writeProjectFiles(filepath.Join(env.valuesPath, "aws-cluster.yaml.gotmpl"), tAWSCluster); err != nil {
return err
}

tAzureCluster, err := p.Conf.ParseTemplate(template.New("TenantAzureCluster"), &p.parseContent, tenantAzureClusterValuesExample)
if err != nil {
return err
}

if err := p.writeProjectFiles(filepath.Join(env.valuesPath, "azure-cluster.yaml.gotmpl"), tAzureCluster); err != nil {
return err
}

tGCPCluster, err := p.Conf.ParseTemplate(template.New("TenantGCPCluster"), &p.parseContent, tenantGCPClusterValuesExample)
if err != nil {
return err
}

if err := p.writeProjectFiles(filepath.Join(env.valuesPath, "gcp-cluster.yaml.gotmpl"), tGCPCluster); err != nil {
return err
}
case p.TenantName:
tGlobals, err := p.Conf.ParseTemplate(template.New("TenantGlobals"), &p.parseContent, tenantGlobals)
if err != nil {
Expand Down Expand Up @@ -344,7 +393,9 @@ func (p *ProjectCommands) generateProjectFiles(gitSpec *git_handler.GitSpec) err
if err := p.writeProjectFiles(filepath.Join(env.valuesPath, p.TenantName+"-app.yaml.gotmpl"), tenantValuesExample); err != nil {
return err
}
default:
}

if sc.name != p.TenantName {
if err := p.writeProjectFiles(env.globalsPath, globals); err != nil {
return err
}
Expand Down
50 changes: 30 additions & 20 deletions cmd/project_dependencies.go
Original file line number Diff line number Diff line change
Expand Up @@ -145,9 +145,8 @@ func resolveHooks(hooks map[string]*config.Package, tenant string, conf *config.
} else if len(conf.Dependencies) > 0 {
conf.HooksMapping = append(conf.HooksMapping,
config.HookMapping{
Tenant: tenant,
Exists: false,
Package: &config.Package{},
Tenant: tenant,
Exists: false,
},
)
}
Expand Down Expand Up @@ -185,7 +184,7 @@ func uniqueHooksMapping(hooks []config.HookMapping) []config.HookMapping {
for key, ver := range compareHooks {
if len(compareHooks) > 1 {
for _, v := range compareHooks {
if ver.GreaterThan(v) {
if ver.GreaterThan(v) || ver.Equal(v) {
numberHook = key
}
}
Expand All @@ -201,7 +200,19 @@ func uniqueHooksMapping(hooks []config.HookMapping) []config.HookMapping {
}
}

return uniqueHooksMapping
packageObject := false
for _, val := range uniqueHooksMapping {
if val.Package != nil {
packageObject = true
break
}
}

if packageObject {
return uniqueHooksMapping
}

return []config.HookMapping{}
}

func (is *InventoryState) saveState(inv config.Inventory) {
Expand Down Expand Up @@ -277,23 +288,24 @@ func resolveDependencies(conf *config.Config, ctx *cli.Context, silent bool) err
for _, val := range conf.Dependencies {
projectFile := &config.ProjectFile{}

depsDir := util.FindDir(util.GetPwdPath(TenantPrDependenciesDir), val.Name)
nameDir := val.Name + "-" + strings.ReplaceAll(val.Version, "/", "_")
depsDir := util.FindDir(util.GetPwdPath(TenantPrDependenciesDir), nameDir, false, false)
if err := projectFile.ReadProjectFile(util.GetPwdPath(TenantPrDependenciesDir, depsDir, util.TenantProjectFile)); err != nil {
return err
}

// Resolve and recursively download repositories containing helm plugins
if conf.HelmPlugins, invErr = invState.resolveHelmPlugins(projectFile.HelmPlugins, conf); invErr != nil {
return invErr
}

// Resolve repositories containing hooks
if len(strings.Split(depsDir, ".")) > 0 {
if err := resolveHooks(projectFile.Hooks, strings.Split(depsDir, ".")[0], conf); err != nil {
return err
}
}

// Resolve and recursively download repositories containing helm plugins
if conf.HelmPlugins, invErr = invState.resolveHelmPlugins(projectFile.HelmPlugins, conf); invErr != nil {
return invErr
}

// Resolve and recursively download repositories containing tools
if conf.Tools, invErr = invState.resolveTools(projectFile.Tools, conf); invErr != nil {
return invErr
Expand Down Expand Up @@ -347,11 +359,11 @@ func resolveDependencies(conf *config.Config, ctx *cli.Context, silent bool) err
return err
}

if err := updateTools(conf, ctx, silent); err != nil {
if err := newConfigCommands(conf, ctx, util.GetPwdPath("")).configHelmPlugins(); err != nil {
return err
}

if err := newConfigCommands(conf, ctx, util.GetPwdPath("")).configHelmPlugins(); err != nil {
if err := updateTools(conf, ctx, silent); err != nil {
return err
}

Expand All @@ -367,13 +379,11 @@ func removeOldDir(pwd string, pkg config.Package) error {
return nil
}

oldDir := util.FindDir(pwd, pkg.Name)
if len(strings.Split(oldDir, "-")) > 1 {
oldVer := strings.SplitN(oldDir, "-", 2)[1]
if oldVer != pkg.Version {
if err := os.RemoveAll(filepath.Join(pwd, pkg.Name+"-"+oldVer)); err != nil {
return err
}
oldDir := util.FindDir(pwd, pkg.Name, true, false)
oldVer := strings.TrimPrefix(oldDir, pkg.Name+"-")
if oldVer != strings.ReplaceAll(pkg.Version, "/", "_") {
if err := os.RemoveAll(filepath.Join(pwd, pkg.Name+"-"+oldVer)); err != nil {
return err
}
}

Expand Down
Loading

0 comments on commit 6c3911a

Please sign in to comment.