Skip to content

Commit

Permalink
updates
Browse files Browse the repository at this point in the history
  • Loading branch information
sgalsaleh committed Aug 14, 2024
1 parent 30498fb commit 796e1b1
Show file tree
Hide file tree
Showing 14 changed files with 67 additions and 36 deletions.
11 changes: 8 additions & 3 deletions cmd/buildtools/adminconsole.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,11 @@ var updateAdminConsoleAddonCommand = &cli.Command{
}

upstream := "registry.replicated.com/library/admin-console"
chartURL := fmt.Sprintf("oci://{{ .ReplicatedProxyDomain }}/anonymous/%s", upstream)

newmeta := release.AddonMetadata{
Version: latest,
Location: fmt.Sprintf("oci://{{ .ReplicatedProxyDomain }}/anonymous/%s", upstream),
Location: chartURL,
Images: make(map[string]release.AddonImage),
}

Expand All @@ -63,8 +65,11 @@ var updateAdminConsoleAddonCommand = &cli.Command{
}

logrus.Infof("extracting images from chart")
withproto := fmt.Sprintf("oci://%s", upstream)
images, err := GetImagesFromOCIChart(withproto, "adminconsole", latest, values)
templatedChartURL, err := release.Template(chartURL, nil)
if err != nil {
return fmt.Errorf("failed to template chart url: %w", err)
}
images, err := GetImagesFromOCIChart(templatedChartURL, "adminconsole", latest, values)
if err != nil {
return fmt.Errorf("failed to get images from admin console chart: %w", err)
}
Expand Down
6 changes: 5 additions & 1 deletion cmd/buildtools/embeddedclusteroperator.go
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,11 @@ func updateOperatorAddonImages(ctx context.Context, chartURL string, chartVersio
}

logrus.Infof("extracting images from chart version %s", chartVersion)
images, err := GetImagesFromOCIChart(chartURL, "embeddedclusteroperator", chartVersion, values)
templatedChartURL, err := release.Template(chartURL, nil)
if err != nil {
return fmt.Errorf("failed to template chart url: %w", err)
}
images, err := GetImagesFromOCIChart(templatedChartURL, "embeddedclusteroperator", chartVersion, values)
if err != nil {
return fmt.Errorf("failed to get images from embedded cluster operator chart: %w", err)
}
Expand Down
6 changes: 5 additions & 1 deletion cmd/buildtools/openebs.go
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,11 @@ func updateOpenEBSAddonImages(ctx context.Context, chartURL string, chartVersion
}

logrus.Infof("extracting images from chart version %s", chartVersion)
images, err := GetImagesFromOCIChart(chartURL, "openebs", chartVersion, values)
templatedChartURL, err := release.Template(chartURL, nil)
if err != nil {
return fmt.Errorf("failed to template chart url: %w", err)
}
images, err := GetImagesFromOCIChart(templatedChartURL, "openebs", chartVersion, values)
if err != nil {
return fmt.Errorf("failed to get images from openebs chart: %w", err)
}
Expand Down
11 changes: 8 additions & 3 deletions cmd/buildtools/registry.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,11 @@ var updateRegistryAddonCommand = &cli.Command{
}

upstream := fmt.Sprintf("%s/docker-registry", os.Getenv("CHARTS_DESTINATION"))
chartURL := fmt.Sprintf("oci://{{ .ReplicatedProxyDomain }}/anonymous/%s", upstream)

newmeta := release.AddonMetadata{
Version: latest,
Location: fmt.Sprintf("oci://{{ .ReplicatedProxyDomain }}/anonymous/%s", upstream),
Location: chartURL,
Images: make(map[string]release.AddonImage),
}

Expand All @@ -63,8 +65,11 @@ var updateRegistryAddonCommand = &cli.Command{
}

logrus.Infof("extracting images from chart")
withproto := fmt.Sprintf("oci://%s", upstream)
images, err := GetImagesFromOCIChart(withproto, "docker-registry", latest, values)
templatedChartURL, err := release.Template(chartURL, nil)
if err != nil {
return fmt.Errorf("failed to template chart url: %w", err)
}
images, err := GetImagesFromOCIChart(templatedChartURL, "docker-registry", latest, values)
if err != nil {
return fmt.Errorf("failed to get images from chart: %w", err)
}
Expand Down
6 changes: 5 additions & 1 deletion cmd/buildtools/seaweedfs.go
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,11 @@ func updateSeaweedFSAddonImages(ctx context.Context, chartURL string, chartVersi
}

logrus.Infof("extracting images from chart version %s", chartVersion)
images, err := GetImagesFromOCIChart(chartURL, "seaweedfs", chartVersion, values)
templatedChartURL, err := release.Template(chartURL, nil)
if err != nil {
return fmt.Errorf("failed to template chart url: %w", err)
}
images, err := GetImagesFromOCIChart(templatedChartURL, "seaweedfs", chartVersion, values)
if err != nil {
return fmt.Errorf("failed to get images from seaweedfs chart: %w", err)
}
Expand Down
17 changes: 13 additions & 4 deletions cmd/buildtools/velero.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ var updateVeleroAddonCommand = &cli.Command{
upstream := fmt.Sprintf("%s/velero", os.Getenv("CHARTS_DESTINATION"))
withproto := fmt.Sprintf("oci://{{ .ReplicatedProxyDomain }}/anonymous/%s", upstream)

veleroVersion, err := findVeleroVersionFromChart(c.Context, withproto, nextChartVersion)
veleroVersion, err := findVeleroVersionFromChart(withproto, nextChartVersion)
if err != nil {
return fmt.Errorf("failed to find velero version from chart: %w", err)
}
Expand Down Expand Up @@ -150,12 +150,17 @@ var updateVeleroImagesCommand = &cli.Command{
},
}

func findVeleroVersionFromChart(ctx context.Context, chartURL string, chartVersion string) (string, error) {
func findVeleroVersionFromChart(chartURL string, chartVersion string) (string, error) {
values, err := release.GetValuesWithOriginalImages("velero")
if err != nil {
return "", fmt.Errorf("failed to get velero values: %v", err)
}
images, err := GetImagesFromOCIChart(chartURL, "velero", chartVersion, values)

templatedChartURL, err := release.Template(chartURL, nil)
if err != nil {
return "", fmt.Errorf("failed to template chart url: %w", err)
}
images, err := GetImagesFromOCIChart(templatedChartURL, "velero", chartVersion, values)
if err != nil {
return "", fmt.Errorf("failed to get images from velero chart: %w", err)
}
Expand Down Expand Up @@ -200,7 +205,11 @@ func updateVeleroAddonImages(ctx context.Context, chartURL string, chartVersion
}

logrus.Infof("extracting images from chart version %s", chartVersion)
images, err := GetImagesFromOCIChart(chartURL, "velero", chartVersion, values)
templatedChartURL, err := release.Template(chartURL, nil)
if err != nil {
return fmt.Errorf("failed to template chart url: %w", err)
}
images, err := GetImagesFromOCIChart(templatedChartURL, "velero", chartVersion, values)
if err != nil {
return fmt.Errorf("failed to get images from velero chart: %w", err)
}
Expand Down
4 changes: 2 additions & 2 deletions pkg/addons/adminconsole/adminconsole.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,11 @@ const (

var (
//go:embed static/values.yaml
rawvalues []byte
rawvalues string
// helmValues is the unmarshal version of rawvalues.
helmValues map[string]interface{}
//go:embed static/metadata.yaml
rawmetadata []byte
rawmetadata string
// Metadata is the unmarshal version of rawmetadata.
Metadata release.AddonMetadata
// protectedFields are helm values that are not overwritten when upgrading the addon.
Expand Down
4 changes: 2 additions & 2 deletions pkg/addons/embeddedclusteroperator/embeddedclusteroperator.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@ const releaseName = "embedded-cluster-operator"

var (
//go:embed static/values.yaml
rawvalues []byte
rawvalues string
// helmValues is the unmarshal version of rawvalues.
helmValues map[string]interface{}
//go:embed static/metadata.yaml
rawmetadata []byte
rawmetadata string
// Metadata is the unmarshal version of rawmetadata.
Metadata release.AddonMetadata
)
Expand Down
4 changes: 2 additions & 2 deletions pkg/addons/openebs/openebs.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@ const (

var (
//go:embed static/values.yaml
rawvalues []byte
rawvalues string
// helmValues is the unmarshal version of rawvalues.
helmValues map[string]interface{}
//go:embed static/metadata.yaml
rawmetadata []byte
rawmetadata string
// Metadata is the unmarshal version of rawmetadata.
Metadata release.AddonMetadata
)
Expand Down
6 changes: 3 additions & 3 deletions pkg/addons/registry/registry.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,15 +35,15 @@ const (

var (
//go:embed static/values.yaml
rawvalues []byte
rawvalues string
// helmValues is the unmarshal version of rawvalues.
helmValues map[string]interface{}
//go:embed static/values-ha.yaml
rawvaluesha []byte
rawvaluesha string
// helmValuesHA is the unmarshal version of rawvaluesha.
helmValuesHA map[string]interface{}
//go:embed static/metadata.yaml
rawmetadata []byte
rawmetadata string
// Metadata is the unmarshal version of rawmetadata.
Metadata release.AddonMetadata
registryPassword = helpers.RandString(20)
Expand Down
4 changes: 2 additions & 2 deletions pkg/addons/seaweedfs/seaweedfs.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@ const releaseName = "seaweedfs"

var (
//go:embed static/values.yaml
rawvalues []byte
rawvalues string
// helmValues is the unmarshal version of rawvalues.
helmValues map[string]interface{}
//go:embed static/metadata.yaml
rawmetadata []byte
rawmetadata string
// Metadata is the unmarshal version of rawmetadata.
Metadata release.AddonMetadata
)
Expand Down
4 changes: 2 additions & 2 deletions pkg/addons/velero/velero.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@ const (

var (
//go:embed static/values.yaml
rawvalues []byte
rawvalues string
// helmValues is the unmarshal version of rawvalues.
helmValues map[string]interface{}
//go:embed static/metadata.yaml
rawmetadata []byte
rawmetadata string
// Metadata is the unmarshal version of rawmetadata.
Metadata release.AddonMetadata
)
Expand Down
8 changes: 4 additions & 4 deletions pkg/release/addon.go
Original file line number Diff line number Diff line change
Expand Up @@ -125,25 +125,25 @@ func (a *AddonMetadata) RenderValues(addon, tplfile, dest string) error {
return nil
}

func ParseAddonMetadata(rawmetadata []byte, license *kotsv1beta1.License) (*AddonMetadata, error) {
func ParseAddonMetadata(rawmetadata string, license *kotsv1beta1.License) (*AddonMetadata, error) {
templated, err := Template(rawmetadata, license)
if err != nil {
return nil, fmt.Errorf("template metadata: %w", err)
}
var parsed AddonMetadata
if err := yaml.Unmarshal(templated, &parsed); err != nil {
if err := yaml.Unmarshal([]byte(templated), &parsed); err != nil {
return nil, fmt.Errorf("unmarshal metadata: %w", err)
}
return &parsed, nil
}

func ParseAddonHelmValues(rawvalues []byte, license *kotsv1beta1.License) (map[string]interface{}, error) {
func ParseAddonHelmValues(rawvalues string, license *kotsv1beta1.License) (map[string]interface{}, error) {
templated, err := Template(rawvalues, license)
if err != nil {
return nil, fmt.Errorf("template helm values: %w", err)
}
parsed := make(map[string]interface{})
if err := yaml.Unmarshal(templated, &parsed); err != nil {
if err := yaml.Unmarshal([]byte(templated), &parsed); err != nil {
return nil, fmt.Errorf("unmarshal helm values: %w", err)
}
return parsed, nil
Expand Down
12 changes: 6 additions & 6 deletions pkg/release/template.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,21 @@ type TemplateData struct {
ReplicatedProxyDomain string
}

func Template(raw []byte, license *kotsv1beta1.License) ([]byte, error) {
tmpl, err := template.New("release").Parse(string(raw))
func Template(raw string, license *kotsv1beta1.License) (string, error) {
tmpl, err := template.New("release").Parse(raw)
if err != nil {
return nil, fmt.Errorf("parse template: %w", err)
return "", fmt.Errorf("parse template: %w", err)
}
data, err := getTemplateData(license)
if err != nil {
return nil, fmt.Errorf("get template data: %w", err)
return "", fmt.Errorf("get template data: %w", err)
}
buf := bytes.NewBuffer(nil)
err = tmpl.Execute(buf, data)
if err != nil {
return nil, fmt.Errorf("execute template: %w", err)
return "", fmt.Errorf("execute template: %w", err)
}
return buf.Bytes(), nil
return buf.String(), nil
}

func getTemplateData(license *kotsv1beta1.License) (*TemplateData, error) {
Expand Down

0 comments on commit 796e1b1

Please sign in to comment.