WIP: Some refactoring
This commit is contained in:
@ -33,17 +33,19 @@ func FluxProvider(path, sopsBin string, gh githelper.Githelper) Provider {
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: This function is ugly as hell, I need to do something about it
|
||||
func (f *Flux) SyncState(diff diff.Diff) error {
|
||||
entity := "repository"
|
||||
srcPath := fmt.Sprintf("%s/src", f.path)
|
||||
filePath := fmt.Sprintf("%s/%s-", srcPath, entity)
|
||||
srcDirPath := fmt.Sprintf("%s/src", f.path)
|
||||
// It should containe either release or repository as a prefix, because it's how files are called
|
||||
entiryFilePath := fmt.Sprintf("%s/%s-", srcDirPath, entity)
|
||||
|
||||
for _, repo := range diff.DeletedRepositories {
|
||||
if err := os.Remove(filePath + repo.Name + ".yaml"); err != nil {
|
||||
if err := os.Remove(entiryFilePath + repo.Name + ".yaml"); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
message := `chore(repository): Removed a repo: %s
|
||||
|
||||
A repo has been removed from the cluster:
|
||||
Name: %s
|
||||
URL: %s
|
||||
@ -58,7 +60,7 @@ func (f *Flux) SyncState(diff diff.Diff) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if err := os.WriteFile(filePath+repo.Name+".yaml", manifest, os.ModeExclusive); err != nil {
|
||||
if err := os.WriteFile(entiryFilePath+repo.Name+".yaml", manifest, os.ModeExclusive); err != nil {
|
||||
return err
|
||||
}
|
||||
message := `chore(repository): Update a repo: %s
|
||||
@ -76,7 +78,7 @@ func (f *Flux) SyncState(diff diff.Diff) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
file, err := os.Create(filePath + repo.Name + ".yaml")
|
||||
file, err := os.Create(entiryFilePath + repo.Name + ".yaml")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -92,24 +94,24 @@ func (f *Flux) SyncState(diff diff.Diff) error {
|
||||
if err := f.gh.AddAllAndCommit(f.path, fmt.Sprintf(message, repo.Name, repo.Name, repo.URL)); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
entity = "release"
|
||||
filePath = fmt.Sprintf("%s/%s-", srcPath, entity)
|
||||
entiryFilePath = fmt.Sprintf("%s/%s-", srcDirPath, entity)
|
||||
|
||||
// Added are simply copying all the values
|
||||
for _, release := range diff.AddedReleases {
|
||||
if err := SyncValues(release, srcPath); err != nil {
|
||||
if err := SyncValues(release, srcDirPath); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := SyncSecrets(release, srcPath, f.path, f.sopsBin); err != nil {
|
||||
if err := SyncSecrets(release, srcDirPath, f.path, f.sopsBin); err != nil {
|
||||
return err
|
||||
}
|
||||
manifest, err := GenerateRelease(release)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
file, err := os.Create(filePath + release.Release + ".yaml")
|
||||
file, err := os.Create(entiryFilePath + release.Release + ".yaml")
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@ -128,13 +130,12 @@ func (f *Flux) SyncState(diff diff.Diff) error {
|
||||
if err := f.gh.AddAllAndCommit(f.path, fmt.Sprintf(message, release.Release, release.Release, release.Namespace, release.Version, release.Repository, release.Release)); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
for _, release := range diff.UpdatedReleases {
|
||||
SyncValues(release, srcPath)
|
||||
SyncValues(release, srcDirPath)
|
||||
|
||||
if err := SyncSecrets(release, srcPath, f.path, f.sopsBin); err != nil {
|
||||
if err := SyncSecrets(release, srcDirPath, f.path, f.sopsBin); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@ -143,13 +144,13 @@ func (f *Flux) SyncState(diff diff.Diff) error {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := os.WriteFile(filePath+release.Release+".yaml", manifest, os.ModeExclusive); err != nil {
|
||||
if err := os.WriteFile(entiryFilePath+release.Release+".yaml", manifest, os.ModeExclusive); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
message := `chore(release): Update a release: %s
|
||||
|
||||
A release has been updated:
|
||||
A release has been updated:
|
||||
Name: %s
|
||||
Namespace: %s
|
||||
Version: %s
|
||||
@ -158,14 +159,13 @@ func (f *Flux) SyncState(diff diff.Diff) error {
|
||||
if err := f.gh.AddAllAndCommit(f.path, fmt.Sprintf(message, release.Release, release.Release, release.Namespace, release.Version, release.Repository, release.Release)); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
for _, release := range diff.DeletedReleases {
|
||||
if err := os.Remove(filePath + release.Release + ".yaml"); err != nil {
|
||||
if err := os.Remove(entiryFilePath + release.Release + ".yaml"); err != nil {
|
||||
return err
|
||||
}
|
||||
files, err := filepath.Glob(fmt.Sprintf("%s/values/%s*", srcPath, release.Release))
|
||||
files, err := filepath.Glob(fmt.Sprintf("%s/values/%s*", srcDirPath, release.Release))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -175,7 +175,7 @@ func (f *Flux) SyncState(diff diff.Diff) error {
|
||||
}
|
||||
}
|
||||
|
||||
files, err = filepath.Glob(fmt.Sprintf("%s/secrets/%s*", srcPath, release.Release))
|
||||
files, err = filepath.Glob(fmt.Sprintf("%s/secrets/%s*", srcDirPath, release.Release))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -274,6 +274,9 @@ func GenerateRelease(release *release.Release) ([]byte, error) {
|
||||
}
|
||||
|
||||
func SyncValues(release *release.Release, path string) error {
|
||||
for values := range release.DestValues {
|
||||
|
||||
}
|
||||
for _, valueFile := range release.Values {
|
||||
// Prepare a dir for values
|
||||
valuesPath := fmt.Sprintf("%s/%s", path, "values")
|
||||
|
Reference in New Issue
Block a user