1
0
mirror of synced 2026-02-06 19:05:55 +00:00

Add container registry option to install/bootstrap

This commit is contained in:
stefanprodan
2020-07-23 13:07:34 +03:00
parent efb39d6fc6
commit 57a1dbfc6d
6 changed files with 28 additions and 8 deletions

View File

@@ -47,6 +47,7 @@ var bootstrapCmd = &cobra.Command{
var (
bootstrapVersion string
bootstrapComponents []string
bootstrapRegistry string
)
const (
@@ -61,7 +62,8 @@ func init() {
"toolkit version")
bootstrapCmd.PersistentFlags().StringSliceVar(&bootstrapComponents, "components", defaultComponents,
"list of components, accepts comma-separated values")
bootstrapCmd.PersistentFlags().StringVar(&bootstrapRegistry, "registry", "docker.io/fluxcd",
"container registry where the toolkit images are published")
rootCmd.AddCommand(bootstrapCmd)
}
@@ -73,7 +75,7 @@ func generateInstallManifests(targetPath, namespace, tmpDir string) (string, err
return "", fmt.Errorf("generating manifests failed: %w", err)
}
if err := genInstallManifests(bootstrapVersion, namespace, bootstrapComponents, tkDir); err != nil {
if err := genInstallManifests(bootstrapVersion, namespace, bootstrapComponents, bootstrapRegistry, tkDir); err != nil {
return "", fmt.Errorf("generating manifests failed: %w", err)
}

View File

@@ -59,6 +59,7 @@ var (
installManifestsPath string
installVersion string
installComponents []string
installRegistry string
)
func init() {
@@ -70,8 +71,10 @@ func init() {
"toolkit version")
installCmd.Flags().StringSliceVar(&installComponents, "components", defaultComponents,
"list of components, accepts comma-separated values")
installCmd.Flags().StringVarP(&installManifestsPath, "manifests", "", "",
installCmd.Flags().StringVar(&installManifestsPath, "manifests", "",
"path to the manifest directory, dev only")
installCmd.Flags().StringVar(&installRegistry, "registry", "docker.io/fluxcd",
"container registry where the toolkit images are published")
rootCmd.AddCommand(installCmd)
}
@@ -97,7 +100,7 @@ func installCmdRun(cmd *cobra.Command, args []string) error {
logger.Generatef("generating manifests")
}
if kustomizePath == "" {
err = genInstallManifests(installVersion, namespace, installComponents, tmpDir)
err = genInstallManifests(installVersion, namespace, installComponents, installRegistry, tmpDir)
if err != nil {
return fmt.Errorf("install failed: %w", err)
}
@@ -185,6 +188,7 @@ fieldSpecs:
var kustomizationTmpl = `---
{{- $eventsAddr := .EventsAddr }}
{{- $registry := .Registry }}
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: {{.Namespace}}
@@ -206,19 +210,27 @@ patches:
kind: Deployment
patchesJson6902:
{{- range $i, $v := .Components }}
{{- if ne $v "notification-controller" }}
{{- range $i, $component := .Components }}
{{- if ne $component "notification-controller" }}
- target:
group: apps
version: v1
kind: Deployment
name: {{$v}}
name: {{$component}}
patch: |-
- op: replace
path: /spec/template/spec/containers/0/args/0
value: --events-addr={{$eventsAddr}}
{{- end }}
{{- end }}
{{- if $registry }}
images:
{{- range $i, $component := .Components }}
- name: fluxcd/{{$component}}
newName: {{$registry}}/{{$component}}
{{- end }}
{{- end }}
`
var kustomizationRolesTmpl = `---
@@ -276,7 +288,7 @@ func downloadManifests(version string, tmpDir string) error {
return nil
}
func genInstallManifests(version string, namespace string, components []string, tmpDir string) error {
func genInstallManifests(version string, namespace string, components []string, registry string, tmpDir string) error {
eventsAddr := ""
if utils.containsItemString(components, defaultNotification) {
eventsAddr = fmt.Sprintf("http://%s/", defaultNotification)
@@ -287,11 +299,13 @@ func genInstallManifests(version string, namespace string, components []string,
Namespace string
Components []string
EventsAddr string
Registry string
}{
Version: version,
Namespace: namespace,
Components: components,
EventsAddr: eventsAddr,
Registry: registry,
}
if err := downloadManifests(version, tmpDir); err != nil {