Commit 52513443 authored by Michelle Noorali's avatar Michelle Noorali
Browse files

feat(helm): add structure.go to hold paths

parent 7fde0643
main Release add-codeql dependabot/go_modules/github.com/docker/distribution-2.8.2incompatible dependabot/go_modules/github.com/lib/pq-1.10.9 dependabot/go_modules/github.com/rubenv/sql-migrate-1.4.0 dependabot/go_modules/golang.org/x/crypto-0.9.0 dependabot/go_modules/golang.org/x/term-0.8.0 dependabot/go_modules/k8s.io/klog/v2-2.100.1 dev-v2 feat-v3/event-emitter-lua kube-update-test release-2.0 release-2.1 release-2.10 release-2.11 release-2.12 release-2.13 release-2.14 release-2.15 release-2.16 release-2.17 release-2.2 release-2.3 release-2.4 release-2.5 release-2.6 release-2.7 release-2.8 release-2.9 release-3.0 release-3.1 release-3.10 release-3.11 release-3.12 release-3.2 release-3.3 release-3.4 release-3.5 release-3.6 release-3.6.1 release-3.6.2 release-3.7 release-3.8 release-3.9 release-v3.0.0-beta.4 v3.12.0 v3.12.0-rc.1 v3.12.0-dev.1 v3.11.3 v3.11.2 v3.11.1 v3.11.0 v3.11.0-rc.2 v3.11.0-rc.1 v3.10.3 v3.10.2 v3.10.1 v3.10.0 v3.10.0-rc.1 v3.9.4 v3.9.3 v3.9.2 v3.9.1 v3.9.0 v3.9.0-rc.1 v3.8.2 v3.8.1 v3.8.0 v3.8.0-rc.2 v3.8.0-rc.1 v3.7.2 v3.7.1 v3.7.0 v3.7.0-rc.3 v3.7.0-rc.2 v3.7.0-rc.1 v3.6.3 v3.6.2 v3.6.1 v3.6.0 v3.6.0-rc.1 v3.5.4 v3.5.3 v3.5.2 v3.5.1 v3.5.0 v3.5.0-rc.2 v3.5.0-rc.1 v3.4.2 v3.4.1 v3.4.0 v3.4.0-rc.1 v3.3.4 v3.3.3 v3.3.2 v3.3.1 v3.3.0 v3.3.0-rc.2 v3.3.0-rc.1 v3.2.4 v3.2.3 v3.2.2 v3.2.1 v3.2.0 v3.2.0-rc.1 v3.1.3 v3.1.2 v3.1.1 v3.1.0 v3.1.0-rc.3 v3.1.0-rc.2 v3.1.0-rc.1 v3.0.3 v3.0.2 v3.0.1 v3.0.0 v3.0.0-rc.4 v3.0.0-rc.3 v3.0.0-rc.2 v3.0.0-rc.1 v3.0.0-beta.5 v3.0.0-beta.4 v3.0.0-beta.3 v3.0.0-beta.2 v3.0.0-beta.1 v3.0.0-alpha.2 v3.0.0-alpha.1 v2.17.0 v2.17.0-rc.1 v2.16.12 v2.16.11 v2.16.10 v2.16.9 v2.16.8 v2.16.7 v2.16.6 v2.16.5 v2.16.4 v2.16.3 v2.16.2 v2.16.1 v2.16.0 v2.16.0-rc.2 v2.16.0-rc.1 v2.15.2 v2.15.1 v2.15.0 v2.15.0-rc.2 v2.15.0-rc.1 v2.14.3 v2.14.2 v2.14.1 v2.14.0 v2.14.0-rc.2 v2.14.0-rc.1 v2.13.1 v2.13.1-rc.1 v2.13.0 v2.13.0-rc.2 v2.13.0-rc.1 v2.12.3 v2.12.2 v2.12.1 v2.12.0 v2.12.0-rc.2 v2.12.0-rc.1 v2.11.0 v2.11.0-rc.4 v2.11.0-rc.3 v2.11.0-rc.2 v2.11.0-rc.1 v2.10.0 v2.10.0-rc.3 v2.10.0-rc.2 v2.10.0-rc.1 v2.9.1 v2.9.0 v2.9.0-rc5 v2.9.0-rc4 v2.9.0-rc3 v2.9.0-rc2 v2.9.0-rc1 v2.8.2 v2.8.2-rc1 v2.8.1 v2.8.0 v2.8.0-rc.1 v2.7.2 v2.7.1 v2.7.0 v2.7.0-rc1 v2.6.2 v2.6.1 v2.6.0 v2.5.1 v2.5.0 v2.4.2 v2.4.1 v2.4.0 v2.3.1 v2.3.0 v2.2.3 v2.2.2 v2.2.1 v2.2.0 v2.1.3 v2.1.2 v2.1.1 v2.1.0 v2.0.2 v2.0.1 v2.0.0 v2.0.0-rc.2 v2.0.0-rc.1 v2.0.0-beta.2 v2.0.0-beta.1 v2.0.0-alpha.5 v2.0.0-alpha.4 v2.0.0-alpha.3 v2.0.0-alpha.2 v2.0.0-alpha.1
No related merge requests found
Showing with 58 additions and 40 deletions
+58 -40
package main
import (
"os"
"github.com/spf13/cobra"
)
......@@ -25,7 +23,3 @@ func init() {
func home(cmd *cobra.Command, args []string) {
cmd.Printf(homePath() + "\n")
}
func homePath() string {
return os.ExpandEnv(helmHome)
}
......@@ -5,7 +5,6 @@ import (
"fmt"
"io/ioutil"
"os"
"path/filepath"
"github.com/deis/tiller/pkg/client"
"github.com/deis/tiller/pkg/kubectl"
......@@ -17,13 +16,10 @@ This command installs Tiller (the helm server side component) onto your
Kubernetes Cluster and sets up local configuration in $HELM_HOME (default: ~/.helm/)
`
var repositoriesFilePath string
var cachePath string
var localRepoPath string
var localCacheFilePath string
var tillerImg string
var defaultRepo = map[string]string{"default-name": "default-url"}
var (
tillerImg string
defaultRepo = map[string]string{"default-name": "default-url"}
)
func init() {
initCmd.Flags().StringVarP(&tillerImg, "tiller-image", "i", "", "override tiller image")
......@@ -43,7 +39,7 @@ func runInit(cmd *cobra.Command, args []string) error {
return errors.New("This command does not accept arguments. \n")
}
if err := ensureHome(homePath()); err != nil {
if err := ensureHome(); err != nil {
return err
}
......@@ -81,14 +77,8 @@ func buildKubectlRunner(kubectlPath string) kubectl.Runner {
// ensureHome checks to see if $HELM_HOME exists
//
// If $HELM_HOME does not exist, this function will create it.
func ensureHome(home string) error {
repositoriesFilePath = filepath.Join(home, "repositories.yaml")
cachePath = filepath.Join(home, "cache")
localRepoPath = filepath.Join(home, "local")
localCacheFilePath = filepath.Join(home, "cache.yaml")
fmt.Println("home path: " + home)
configDirectories := []string{home, cachePath, localRepoPath}
func ensureHome() error {
configDirectories := []string{homePath(), cacheDirectory(), localRepoDirectory()}
for _, p := range configDirectories {
if fi, err := os.Stat(p); err != nil {
......@@ -101,28 +91,30 @@ func ensureHome(home string) error {
}
}
if fi, err := os.Stat(repositoriesFilePath); err != nil {
fmt.Printf("Creating %s \n", repositoriesFilePath)
if err := ioutil.WriteFile(repositoriesFilePath, []byte("local: localhost:8879/charts\n"), 0644); err != nil {
repoFile := repositoriesFile()
if fi, err := os.Stat(repoFile); err != nil {
fmt.Printf("Creating %s \n", repoFile)
if err := ioutil.WriteFile(repoFile, []byte("local: localhost:8879/charts\n"), 0644); err != nil {
return err
}
} else if fi.IsDir() {
return fmt.Errorf("%s must be a file, not a directory", repositoriesFilePath)
return fmt.Errorf("%s must be a file, not a directory", repoFile)
}
if fi, err := os.Stat(localCacheFilePath); err != nil {
fmt.Printf("Creating %s \n", localCacheFilePath)
_, err := os.Create(localCacheFilePath)
localRepoCacheFile := localRepoDirectory(localRepoCacheFilePath)
if fi, err := os.Stat(localRepoCacheFile); err != nil {
fmt.Printf("Creating %s \n", localRepoCacheFile)
_, err := os.Create(localRepoCacheFile)
if err != nil {
return err
}
//TODO: take this out and replace with helm update functionality
os.Symlink(localCacheFilePath, filepath.Join(cachePath, "local-cache.yaml"))
os.Symlink(localRepoCacheFile, cacheDirectory("local-cache.yaml"))
} else if fi.IsDir() {
return fmt.Errorf("%s must be a file, not a directory", localCacheFilePath)
return fmt.Errorf("%s must be a file, not a directory", localRepoCacheFile)
}
fmt.Printf("$HELM_HOME has also been configured at %s.\n", helmHome)
fmt.Printf("$HELM_HOME has been configured at %s.\n", helmHome)
return nil
}
......@@ -8,11 +8,12 @@ import (
func TestEnsureHome(t *testing.T) {
home := createTmpHome()
if err := ensureHome(home); err != nil {
helmHome = home
if err := ensureHome(); err != nil {
t.Errorf("%s", err)
}
expectedDirs := []string{home, cachePath, localRepoPath}
expectedDirs := []string{homePath(), cacheDirectory(), localRepoDirectory()}
for _, dir := range expectedDirs {
if fi, err := os.Stat(dir); err != nil {
t.Errorf("%s", err)
......@@ -21,13 +22,13 @@ func TestEnsureHome(t *testing.T) {
}
}
if fi, err := os.Stat(repositoriesFilePath); err != nil {
if fi, err := os.Stat(repositoriesFile()); err != nil {
t.Errorf("%s", err)
} else if fi.IsDir() {
t.Errorf("%s should not be a directory", fi)
}
if fi, err := os.Stat(localCacheFilePath); err != nil {
if fi, err := os.Stat(localRepoDirectory(localRepoCacheFilePath)); err != nil {
t.Errorf("%s", err)
} else if fi.IsDir() {
t.Errorf("%s should not be a directory", fi)
......
......@@ -56,7 +56,7 @@ func runPackage(cmd *cobra.Command, args []string) error {
// Save to $HELM_HOME/local directory.
if save {
if err := repo.AddChartToLocalRepo(ch, localRepoPath); err != nil {
if err := repo.AddChartToLocalRepo(ch, localRepoDirectory()); err != nil {
return err
}
}
......
......@@ -40,7 +40,7 @@ func search(cmd *cobra.Command, args []string) error {
func searchCacheForPattern(name string) ([]string, error) {
fileList := []string{}
filepath.Walk(cachePath, func(path string, f os.FileInfo, err error) error {
filepath.Walk(cacheDirectory(), func(path string, f os.FileInfo, err error) error {
if !f.IsDir() {
fileList = append(fileList, path)
}
......
......@@ -22,5 +22,5 @@ var serveCmd = &cobra.Command{
}
func serve(cmd *cobra.Command, args []string) {
repo.StartLocalRepo(localRepoPath)
repo.StartLocalRepo(localRepoDirectory())
}
package main
import (
"os"
"path/filepath"
)
const (
repositoriesFilePath string = "repositories.yaml"
cachePath string = "cache"
localRepoPath string = "local"
localRepoCacheFilePath string = "cache.yaml"
)
func homePath() string {
return os.ExpandEnv(helmHome)
}
func cacheDirectory(paths ...string) string {
fragments := append([]string{homePath(), cachePath}, paths...)
return filepath.Join(fragments...)
}
func localRepoDirectory(paths ...string) string {
fragments := append([]string{homePath(), localRepoPath}, paths...)
return filepath.Join(fragments...)
}
func repositoriesFile() string {
return filepath.Join(homePath(), repositoriesFilePath)
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment