Skip to content
New issue

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

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

Already on GitHub? # to your account

chore: bump helm and observabiilty versions #201

Merged
merged 3 commits into from
Oct 25, 2022
Merged

Conversation

qdzlug
Copy link
Contributor

@qdzlug qdzlug commented Oct 18, 2022

Proposed changes

Bumping the versions of our helm charts and our observability operator.

Checklist

Before creating a PR, run through this checklist and mark each as complete.

  • I have written my commit messages in the Conventional Commits format.
  • I have read the CONTRIBUTING doc
  • I have added tests (when possible) that prove my fix is effective or that my feature works
  • I have checked that all unit tests pass after adding my changes
  • I have updated necessary documentation
  • I have rebased my branch onto master
  • I will ensure my PR is targeting the master branch and pulling from my branch from my own fork

@qdzlug qdzlug requested a review from 4141done October 18, 2022 20:16
Copy link
Contributor

@4141done 4141done left a comment

Choose a reason for hiding this comment

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

Left some comments around the version defaults. It seems like it would be a big win to force users to supply a version (even if they just supply the inbuilt example) declaratively.

Additionally, this would hopefully cut down on the number of areas that have to be manually synced up when bumping versions.

My other question is about the large changes to the OTEL operator config. Are these a necessary part of the version bump? If not perhaps a separate PR with more description might be helpful.

@@ -40,7 +40,7 @@ def add_namespace(obj):
chart_name = 'cert-manager'
chart_version = config.get('chart_version')
if not chart_version:
chart_version = 'v1.9.1'
chart_version = 'v1.10.0'
Copy link
Contributor

Choose a reason for hiding this comment

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

Not necessary to adjust in this PR, but in my opinion we should check that the user has specified versions up front and crash with a helpful error message before anything is created. Defaults help with the "plug and play" ability of the example but I think we can have the defaults encoded in the .example as above and not hidden in a python script.

Thoughts on this? Do you think it would be tough to do?

Copy link
Contributor

Choose a reason for hiding this comment

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

If we crashed here, would we wind up with any half-created state?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Definitely, if we crash out things are really pear-shaped.

The long-term plan - and I think there may be an issue with it; if not I will add one - is to remove the fallbacks in the code for versions and force them all through the config. This requires that we make sure we tell the users how to add these values, and we probably should provide a "just give me all the known working values" option.

Copy link
Contributor

Choose a reason for hiding this comment

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

Sounds like we are in agreement but we don't need to hold up this chore PR on it. I'll call this another notch to add to #140

@@ -31,7 +31,7 @@
nginx_repository = "nginx/nginx-ingress"
nginx_tag = config.get('nginx_tag')
if not nginx_tag:
nginx_tag = "2.2.0"
nginx_tag = "2.4.0"
Copy link
Contributor

Choose a reason for hiding this comment

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

What does this version number correlate to? I don't see it in the version numbers modified in the .example above.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

There are two paths for the NGINX IC deployment; one is in the mainline where we do everything in Python - this is the "just pull from the repo w/ the JWT" logic, and for that we need the nginx image tag (latest is 2.4.0). If you look at the NGINX version that's the most recent.

Copy link
Contributor

Choose a reason for hiding this comment

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

Thanks for the clarification. Ideally this lives in config somewhere but let's put that on #140

@@ -61,6 +61,131 @@ spec:
description: InstrumentationSpec defines the desired state of OpenTelemetry
SDK and instrumentation.
properties:
dotnet:
Copy link
Contributor

Choose a reason for hiding this comment

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

What is the relation of this change to the version bumps that are the meat of this PR? Is this extra configuration required by a new version of one of the libraries?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is strictly a copy of the yaml manifest for OTEL - https://opentelemetry.io/docs/k8s-operator/

Why do we include it here instead of just reaching out to pull it down each time? Paranoia....I don't want this to change and blow up MARA for someone. I want to control the versions, especially since cert-manager and OTEL seem to be super touchy about each other.

@@ -61,6 +61,131 @@ spec:
description: InstrumentationSpec defines the desired state of OpenTelemetry
SDK and instrumentation.
properties:
dotnet:
description: DotNet defines configuration for DotNet auto-instrumentation.
Copy link
Contributor

Choose a reason for hiding this comment

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

What is DotNet in this context? Should the description here link to some project page so the reader can find the docs and understand what is being configured here?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I will put in a link to the OTEL operator repo in the source to folks can track back to it if they need to.

@@ -289,6 +421,7 @@ spec:
required:
- key
type: object
x-kubernetes-map-type: atomic
Copy link
Contributor

Choose a reason for hiding this comment

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

For these things, do we want to add some link or comment to help users understand what this is? I found this https://kubernetes.io/docs/reference/using-api/_print/#merge-strategy

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Same as above...

TargetAllocator. This should only be set to a value other than
1 if a strategy that allows for high availability is chosen.
Currently, the only allocation strategy that can be run in a
high availability mode is consistent-hashing.
Copy link
Contributor

Choose a reason for hiding this comment

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

This is a great comment that helps me understand how to set the value 🎉

Copy link
Contributor

@4141done 4141done left a comment

Choose a reason for hiding this comment

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

👍 🐳 👍
Sorry for the holdup on the chore PR. Looks good in terms of the version bumps

@qdzlug qdzlug merged commit 1b76f7b into nginxinc:master Oct 25, 2022
@qdzlug qdzlug deleted the helmbump branch October 25, 2022 16:29
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants