Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add the proposal for public repos with HTTP(S) URLs #56

Closed
wants to merge 1 commit into from

Conversation

hypnoglow
Copy link
Owner

@hypnoglow hypnoglow commented Oct 11, 2018

Ref: #45

@hypnoglow hypnoglow self-assigned this Oct 11, 2018
1. Initialize the repository.

```
helm s3 init s3://awesome-bucket/charts --publish https://charts.my-company.tld

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dig it!

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this.

@osterman
Copy link

@hypnoglow LGTM!

@jschaul
Copy link

jschaul commented Oct 16, 2018

This proposal looks good!

@drnic
Copy link

drnic commented Nov 14, 2018

I had a quick investigation into an implementation. It's made tricky because the index.yaml /entries/urls are not only used for end-users to download charts; they are used internally by plugin authors when uploading + verifying their existence in s3. I might have another look another day.

I was looking at adding PublishBaseURI into IndexFile:

type IndexFile struct {
	APIVersion     string                   `json:"apiVersion"`
	Generated      time.Time                `json:"generated"`
	Entries        map[string]ChartVersions `json:"entries"`
	PublicKeys     []string                 `json:"publicKeys,omitempty"`
	PublishBaseURI string                   `json:"publishBaseURI,omitempty"`
}

And then changing Chart{URL} into two fields:

type Entry struct {
	Name       string `json:"name"`
	Cache      string `json:"cache"`
	S3URL      string `json:"s3URL"`
	PublishURL string `json:"url"`
...

@willejs
Copy link
Contributor

willejs commented Nov 15, 2018

This will be great!

@willejs
Copy link
Contributor

willejs commented Jan 9, 2019

@hypnoglow any movement on this? I am still using my fork...

the repo is public.

1. **helm-s3** also syncs the local cached index `/Users/me/.helm/repository/cache/my-charts-index.yaml` with the remote one.
Note that because of that, charts are fetch-able by public urls locally.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How would authenticated repositories be handled? I'm using a private S3 bucket and exposing it to clients over https with basic authentication. If I use S3 plugin it doesn't store auth info for the publish URL. Perhaps local should keep S3 URLs?

To support publishing existing repositories created with **helm-s3** introduce a new command:

```
helm s3 publish my-repo https://charts.my-company.tld

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The publish command is effectively reindexing the repo with different URLs. So why not simply add a --publish url to the reindexing command?

@echoboomer
Copy link

Was there ever a resolution for this? We're encountering a need to pull charts from a public repo via https:// and would love to continue using this solution for now.

@lnr0626
Copy link

lnr0626 commented Apr 1, 2020

@hypnoglow will either this or #70 be merged in? i've just encountered the need to use this

@jonbesga
Copy link

jonbesga commented May 6, 2020

Is there any progress on this?

@hypnoglow
Copy link
Owner Author

Superseded by Relative chart URLs.

@hypnoglow hypnoglow closed this Aug 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

9 participants