Skip to content

Conversation

@daaain
Copy link

@daaain daaain commented Oct 9, 2020

Fixes #11

NOTE: will need Github Pages enabled on /docs in master!

I'm ready with the first draft, I just deployed it in our test cluster for all namespaces and seems to be working nicely.

I've temporarily changed the URL to point to my fork to make it possible for Helm to download, but will change this once we're ready to merge.

So to try it right now, you can use these commands:

helm repo add k8s-sentry https://daaain.github.io/k8s-sentry
helm repo update
helm install k8s-sentry/helm-k8s-sentry --set sentry.dsn=<your Sentry DSN value>

The default is all namespaces and no environment so it will do that if you only pass the DSN, otherwise can customise by changing values with --set. I haven't tried all combinations of options yet.

As for the Helm repo hosting, I went with the absolute simplest solution which is to package the chart locally and commit the repo index YAML and chart archives in git. The chart archive is currently ~1KB so even though it's binary, the size is tiny so I don't see any issue storing it in git. So this is the most transparent and least setup way to do it, but the trade-off is having to remember to package the chart with make helm_package whenever it's updated. This could also be done in a Github Action, but that would need to commit on a gh-pages branch which needs a bit more setup.

Also, I've duplicated the templates from the deploy directory, but it would be nicer to somehow reuse them. There is already a make helm_template command which renders the templates to stdout, so that could easily be developed into a way to programmatically write all different versions of the k8s templates in deploy by changing the options passed and the output directories.

Let me know what you think!

@daaain
Copy link
Author

daaain commented Oct 9, 2020

Oh, one thing which I just realised is that it would probably be useful to link the versions of the Helm chart to the versions of the binary so that people can easily understand and manage the upgrade process.

In that case, the Helm chart archives could also be stored on Github Releases and linked from there, though I haven't quite figured out where to store and update the repo index YAML in that case.

@daaain
Copy link
Author

daaain commented Nov 26, 2020

Hey @wichert, do you think you'll have time to review and comment on this?

It's fine if you don't, I can also spin this out into a separate repo, just let me know.

@frankyhun
Copy link

frankyhun commented Dec 9, 2020

You will need a name for the helm install command, like:
helm install sentry k8s-sentry/helm-k8s-sentry --set sentry.dsn=<your Sentry DSN value>

@frankyhun
Copy link

Btw. if you want to try the helm chart right now, you have to add the replo like this:
helm repo add k8s-sentry https://raw.githubusercontent.com/daaain/k8s-sentry/master/docs/

@daaain
Copy link
Author

daaain commented Dec 11, 2020

Ah, thanks @frankyhun, I'm using the chart via Helmfile so was just typing the Helm commands into the readme directly 😳 Will update in a minute.

@frankyhun
Copy link

I'm not sure, but looks a bit ambiguous, that somewhere SENTRY_DSN environment value is written, in somewhere sentry.dsn, in the yaml it is in sentry: dsn: format. Which one is the used one?

I tried it with aws cdk, set the SENTRY_DSN variable, but then it failed to start up.

@daaain
Copy link
Author

daaain commented Dec 11, 2020

That is because while internally the Kubernetes template and application code is using SENTRY_DSN as environment variable, for Helm to be able to template it you need to set the Helm variable.

You can see in the source code how it's used: https://github.com/wichert/k8s-sentry/pull/12/files#diff-783271f5d9de279f32ef356eb2db9be73fc29e7ba25d6137c62a6185508b4b34R20

This is an unfortunate limitation of Helm, it doesn't play well with environment variables, this is one of the reasons why we use Helmfile.

You can take the value from an env var though, so you can:

helm install sentry k8s-sentry/helm-k8s-sentry --set sentry.dsn=$SENTRY_DSN

This is still nicer than having to manually edit the Kubernetes templates though!

@soloradish
Copy link

soloradish commented Dec 23, 2020

@caleb15
Copy link

caleb15 commented Dec 29, 2020

just chiming in to say I'm looking forward to this, thanks for the work everyone 👍

@evolvedlight
Copy link

Any plan to push this further?

@daaain
Copy link
Author

daaain commented Nov 1, 2021

I'm really sorry, but I don't think I'll have time in the near future so if anyone has some time to take over, please do!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Helm chart

5 participants