WIP: Good progress on better sync
This commit is contained in:
@ -2,6 +2,7 @@ package release
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"reflect"
|
||||
"strings"
|
||||
@ -29,10 +30,9 @@ type Release struct {
|
||||
// Secrets SOPS encrypted
|
||||
Secrets []string
|
||||
// Private fields that should be pupulated during the run-time
|
||||
RepositoryObj *repository.Repository `yaml:"-"`
|
||||
UnencryptedSecrets map[string][]byte `yaml:"-"`
|
||||
DestValues []ValuesHolder `yaml:"-"`
|
||||
DestSecrets []string `yaml:"-"`
|
||||
RepositoryObj *repository.Repository `yaml:"-"`
|
||||
DestValues ValuesHolders `yaml:"-"`
|
||||
DestSecrets ValuesHolders `yaml:"-"`
|
||||
}
|
||||
|
||||
type ValuesHolder struct {
|
||||
@ -41,13 +41,18 @@ type ValuesHolder struct {
|
||||
Data []byte
|
||||
}
|
||||
|
||||
type Releases []*Release
|
||||
type ValuesHolders []ValuesHolder
|
||||
|
||||
// Preare the release object
|
||||
func (r *Release) InitRelease() {
|
||||
r.UnencryptedSecrets = map[string][]byte{}
|
||||
func (vhs ValuesHolders) ToStrings() []string {
|
||||
values := []string{}
|
||||
for _, vh := range vhs {
|
||||
values = append(values, vh.DestPath)
|
||||
}
|
||||
return values
|
||||
}
|
||||
|
||||
type Releases []*Release
|
||||
|
||||
// RepositoryObjFromName gather the whole repository object by its name
|
||||
func (r *Release) RepositoryObjFromName(repos repository.Repositories) error {
|
||||
for _, repo := range repos {
|
||||
@ -80,15 +85,21 @@ func (r *Release) VersionHandler(dir string, hh helmhelper.Helmhelper) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *Release) ValuesHandler(dir string) {
|
||||
func (r *Release) ValuesHandler(dir string) error {
|
||||
for i := range r.Values {
|
||||
r.Values[i] = fmt.Sprintf("%s/%s", dir, strings.ReplaceAll(r.Values[i], "./", ""))
|
||||
destValues := fmt.Sprintf("%s-%s-%s", r.Namespace, r.Release, filepath.Base(r.Values[i]))
|
||||
valuesData, err := os.ReadFile(r.Values[i])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
r.DestValues = append(r.DestValues, ValuesHolder{
|
||||
SrcPath: r.Values[i],
|
||||
DestPath: destValues,
|
||||
Data: valuesData,
|
||||
})
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *Release) SecretsHandler(dir string, sops sopshelper.SopsHelper) error {
|
||||
@ -99,8 +110,11 @@ func (r *Release) SecretsHandler(dir string, sops sopshelper.SopsHelper) error {
|
||||
return err
|
||||
}
|
||||
destSecrets := fmt.Sprintf("%s-%s-%s", r.Namespace, r.Release, filepath.Base(r.Secrets[i]))
|
||||
r.DestSecrets = append(r.DestSecrets, destSecrets)
|
||||
r.UnencryptedSecrets[path] = res
|
||||
r.DestSecrets = append(r.DestSecrets, ValuesHolder{
|
||||
SrcPath: path,
|
||||
DestPath: destSecrets,
|
||||
Data: res,
|
||||
})
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@ -153,8 +167,8 @@ func (r *Release) LockEntry() *lockfile.LockEntry {
|
||||
Namespace: r.Namespace,
|
||||
RepoUrl: r.RepositoryObj.URL,
|
||||
RepoName: r.RepositoryObj.Name,
|
||||
Values: r.DestValues,
|
||||
Secrets: r.DestSecrets,
|
||||
Values: r.DestValues.ToStrings(),
|
||||
Secrets: r.DestSecrets.ToStrings(),
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user