override RELEASES_URL = "https://releases-rhcos.svc.ci.openshift.org/storage/releases/"
endif
+ifndef SSH_KEY_PATH
+override SSH_KEY_PATH = "${HOME}/.ssh/id_rsa"
+endif
+
all: watch
binary:
deploy:
@echo "Launching cluster deployment bin/$(GONAME)"
- @./bin/$(GONAME) generate --installer_path $(INSTALLER_PATH) --build_path $(BUILDDIR) --base_repository $(BASE_REPO) --base_path $(BASE_PATH) --secrets_repository $(CREDENTIALS) --site_repository $(SITE_REPO) --settings_path $(SETTINGS_PATH) --master_memory_mb $(MASTER_MEMORY_MB)
+ @./bin/$(GONAME) generate --installer_path $(INSTALLER_PATH) --build_path $(BUILDDIR) --base_repository $(BASE_REPO) --base_path $(BASE_PATH) --secrets_repository $(CREDENTIALS) --site_repository $(SITE_REPO) --settings_path $(SETTINGS_PATH) --master_memory_mb $(MASTER_MEMORY_MB) --ssh_key_path $(SSH_KEY_PATH)
images:
@echo "Launching image generation"
@echo " binary to generate a new openshift-install binary"
@echo " build to produce the installer binary"
@echo " clean to destroy a previously created cluster and remove build contents"
- @echo " deploy CREDENTIALS=<github_secret_repo> BASE_REPO=<github_manifests_repo> BASE_PATH=<subpath_on_manifests_repo> SITE_REPO=<github_site_repo> SETTINGS_PATH=<subpath_on_site_repo>"
+ @echo " deploy CREDENTIALS=<github_secret_repo> BASE_REPO=<github_manifests_repo> BASE_PATH=<subpath_on_manifests_repo> SITE_REPO=<github_site_repo> SETTINGS_PATH=<subpath_on_site_repo> SSH_KEY_PATH=<path_to_id_rsa>"
@echo " images to download baremetal images"
.PHONY: build get install run watch start stop restart clean
siteRepository, _ := cmd.Flags().GetString("site_repository")
settingsPath, _ := cmd.Flags().GetString("settings_path")
masterMemoryMB, _ := cmd.Flags().GetString("master_memory_mb")
+ sshKeyPath, _ := cmd.Flags().GetString("ssh_key_path")
// Check if build path exists, create if not
buildPath, _ := cmd.Flags().GetString("build_path")
}
// start generation process
- g := generator.New(baseRepo, basePath, installerPath, secretsRepository, siteRepository, settingsPath, buildPath, masterMemoryMB)
+ g := generator.New(baseRepo, basePath, installerPath, secretsRepository, siteRepository, settingsPath, buildPath, masterMemoryMB, sshKeyPath)
g.GenerateManifests()
},
}
generateCmd.MarkFlagRequired("settings_path")
generateCmd.Flags().StringP("master_memory_mb", "", "", "MB of memory to use for master node (libvirt)")
+ generateCmd.Flags().StringP("ssh_key_path", "", "", "Path for the SSH private key to retrieve private repos")
+ generateCmd.MarkFlagRequired("ssh_key_path")
}
settingsPath string
buildPath string
masterMemoryMB string
+ sshKeyPath string
secrets map[string]string
}
// New constructor for the generator
-func New(baseRepo string, basePath string, installerPath string, secretsRepo string, siteRepo string, settingsPath string, buildPath string, masterMemoryMB string) Generator {
- g := Generator{baseRepo, basePath, installerPath, secretsRepo, siteRepo, settingsPath, buildPath, masterMemoryMB, make(map[string]string)}
+func New(baseRepo string, basePath string, installerPath string, secretsRepo string, siteRepo string, settingsPath string, buildPath string, masterMemoryMB string, sshKeyPath string) Generator {
+ g := Generator{baseRepo, basePath, installerPath, secretsRepo, siteRepo, settingsPath, buildPath, masterMemoryMB, sshKeyPath, make(map[string]string)}
return g
}
// Retrieve private key and b64encode it, if secrets is not local
finalURL := ""
if !strings.HasPrefix(g.secretsRepo, "file://") {
- rsaPrivateLocation := fmt.Sprintf("%s/.ssh/id_rsa", os.Getenv("HOME"))
- priv, _ := ioutil.ReadFile(rsaPrivateLocation)
+ priv, err := ioutil.ReadFile(g.sshKeyPath)
+ if err != nil {
+ log.Fatal(fmt.Sprintf("Error reading secret key: %s", err))
+ os.Exit(1)
+ }
sEnc := base64.StdEncoding.EncodeToString(priv)
finalURL = fmt.Sprintf("%s?sshkey=%s", g.secretsRepo, sEnc)
} else {