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

use non-root C* images #336

Merged
merged 22 commits into from
Feb 19, 2021
Merged

use non-root C* images #336

merged 22 commits into from
Feb 19, 2021

Conversation

jsanda
Copy link
Contributor

@jsanda jsanda commented Feb 7, 2021

What this PR does:
Change the default images to ones that run the Cassandra pod as a non-root user.

Which issue(s) this PR fixes:
Fixes #259
Checklist

  • Changes manually tested
  • Chart versions updated (if necessary)
  • Automated Tests added/updated
  • Documentation added/updated
  • CLA Signed: DataStax CLA

@jsanda
Copy link
Contributor Author

jsanda commented Feb 7, 2021

@emerkle826 I would appreciate it if we could sync up on this. Given all the work you have done lately with the management-api, I am hoping you can help me debug this.

@emerkle826
Copy link
Contributor

@emerkle826 I would appreciate it if we could sync up on this. Given all the work you have done lately with the management-api, I am hoping you can help me debug this.

I'd be happy to help

@jsanda
Copy link
Contributor Author

jsanda commented Feb 10, 2021

I just pushed a commit with a temporary work around to create /etc/cassandra/conf/jvm11-clients.options. Things are looking better when I run nodetool but there are still some issues.

$ kubectl exec -it test-dc1-default-sts-0 -c cassandra -- nodetool -u O6cdJpKJeI -pw 2M0Tq7MyfdCjqbqQBRRG status
19:39:20,059 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-tools.xml]
19:39:20,060 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
19:39:20,061 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
19:39:20,061 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/etc/cassandra/logback.xml]
19:39:20,192 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set
19:39:20,201 |-INFO in ch.qos.logback.classic.joran.action.JMXConfiguratorAction - begin
19:39:20,370 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
19:39:20,379 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [SYSTEMLOG]
19:39:20,401 |-INFO in ch.qos.logback.core.rolling.FixedWindowRollingPolicy@f0da945 - Will use zip compression
19:39:20,442 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
19:39:20,456 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[SYSTEMLOG] - Active log file name: cassandra.logdir_IS_UNDEFINED/system.log
19:39:20,456 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[SYSTEMLOG] - File property is set to [cassandra.logdir_IS_UNDEFINED/system.log]
19:39:20,457 |-ERROR in ch.qos.logback.core.rolling.RollingFileAppender[SYSTEMLOG] - Failed to create parent directories for [/cassandra.logdir_IS_UNDEFINED/system.log]
19:39:20,458 |-ERROR in ch.qos.logback.core.rolling.RollingFileAppender[SYSTEMLOG] - openFile(cassandra.logdir_IS_UNDEFINED/system.log,true) call failed. java.io.FileNotFoundException: cassandra.logdir_IS_UNDEFINED/system.log (No such file or directory)
	at java.io.FileNotFoundException: cassandra.logdir_IS_UNDEFINED/system.log (No such file or directory)
	at 	at java.base/java.io.FileOutputStream.open0(Native Method)
	at 	at java.base/java.io.FileOutputStream.open(Unknown Source)
	at 	at java.base/java.io.FileOutputStream.<init>(Unknown Source)
	at 	at ch.qos.logback.core.recovery.ResilientFileOutputStream.<init>(ResilientFileOutputStream.java:26)
	at 	at ch.qos.logback.core.FileAppender.openFile(FileAppender.java:204)
	at 	at ch.qos.logback.core.FileAppender.start(FileAppender.java:127)
	at 	at ch.qos.logback.core.rolling.RollingFileAppender.start(RollingFileAppender.java:100)
	at 	at ch.qos.logback.core.joran.action.AppenderAction.end(AppenderAction.java:90)
	at 	at ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:309)
	at 	at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:193)
	at 	at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:179)
	at 	at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:62)
	at 	at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:165)
	at 	at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:152)
	at 	at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:110)
	at 	at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:53)
	at 	at ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:75)
	at 	at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:150)
	at 	at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:84)
	at 	at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:55)
	at 	at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150)
	at 	at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)
	at 	at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:412)
	at 	at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:357)
	at 	at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:383)
	at 	at org.apache.cassandra.utils.FBUtilities.<clinit>(FBUtilities.java:81)
	at 	at org.apache.cassandra.tools.NodeTool.<clinit>(NodeTool.java:74)
19:39:20,458 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
19:39:20,458 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [DEBUGLOG]
19:39:20,459 |-INFO in ch.qos.logback.core.rolling.FixedWindowRollingPolicy@6404f418 - Will use zip compression
19:39:20,459 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
19:39:20,460 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[DEBUGLOG] - Active log file name: cassandra.logdir_IS_UNDEFINED/debug.log
19:39:20,460 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[DEBUGLOG] - File property is set to [cassandra.logdir_IS_UNDEFINED/debug.log]
19:39:20,460 |-ERROR in ch.qos.logback.core.rolling.RollingFileAppender[DEBUGLOG] - Failed to create parent directories for [/cassandra.logdir_IS_UNDEFINED/debug.log]
19:39:20,460 |-ERROR in ch.qos.logback.core.rolling.RollingFileAppender[DEBUGLOG] - openFile(cassandra.logdir_IS_UNDEFINED/debug.log,true) call failed. java.io.FileNotFoundException: cassandra.logdir_IS_UNDEFINED/debug.log (No such file or directory)
	at java.io.FileNotFoundException: cassandra.logdir_IS_UNDEFINED/debug.log (No such file or directory)
	at 	at java.base/java.io.FileOutputStream.open0(Native Method)
	at 	at java.base/java.io.FileOutputStream.open(Unknown Source)
	at 	at java.base/java.io.FileOutputStream.<init>(Unknown Source)
	at 	at ch.qos.logback.core.recovery.ResilientFileOutputStream.<init>(ResilientFileOutputStream.java:26)
	at 	at ch.qos.logback.core.FileAppender.openFile(FileAppender.java:204)
	at 	at ch.qos.logback.core.FileAppender.start(FileAppender.java:127)
	at 	at ch.qos.logback.core.rolling.RollingFileAppender.start(RollingFileAppender.java:100)
	at 	at ch.qos.logback.core.joran.action.AppenderAction.end(AppenderAction.java:90)
	at 	at ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:309)
	at 	at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:193)
	at 	at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:179)
	at 	at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:62)
	at 	at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:165)
	at 	at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:152)
	at 	at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:110)
	at 	at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:53)
	at 	at ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:75)
	at 	at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:150)
	at 	at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:84)
	at 	at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:55)
	at 	at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150)
	at 	at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)
	at 	at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:412)
	at 	at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:357)
	at 	at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:383)
	at 	at org.apache.cassandra.utils.FBUtilities.<clinit>(FBUtilities.java:81)
	at 	at org.apache.cassandra.tools.NodeTool.<clinit>(NodeTool.java:74)
19:39:20,460 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.classic.AsyncAppender]
19:39:20,462 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [ASYNCDEBUGLOG]
19:39:20,463 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [DEBUGLOG] to ch.qos.logback.classic.AsyncAppender[ASYNCDEBUGLOG]
19:39:20,463 |-INFO in ch.qos.logback.classic.AsyncAppender[ASYNCDEBUGLOG] - Attaching appender named [DEBUGLOG] to AsyncAppender.
19:39:20,463 |-INFO in ch.qos.logback.classic.AsyncAppender[ASYNCDEBUGLOG] - Setting discardingThreshold to 0
19:39:20,463 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
19:39:20,465 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [STDOUT]
19:39:20,466 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
19:39:20,467 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to INFO
19:39:20,467 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [SYSTEMLOG] to Logger[ROOT]
19:39:20,467 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [STDOUT] to Logger[ROOT]
19:39:20,467 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [ASYNCDEBUGLOG] to Logger[ROOT]
19:39:20,468 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.apache.cassandra] to DEBUG
19:39:20,468 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [com.thinkaurelius.thrift] to ERROR
19:39:20,468 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
19:39:20,468 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@3e11f9e9 - Registering current configuration as safe fallback point

Datacenter: dc1
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address      Load       Tokens  Owns (effective)  Host ID                               Rack
UN  10.40.2.215  73.53 KiB  1       ?                 3007eb8a-f267-4a17-be84-7a43c9a203db  default
UN  10.40.0.8    73.44 KiB  1       ?                 e5758748-0a74-450f-bcbd-fe57ca6d00e9  default
UJ  10.40.1.10   20.72 KiB  1       ?                 b2a8a647-0dbf-402a-af59-bd8cfafb333f  default

@emerkle826
Copy link
Contributor

The error:

19:39:20,458 |-ERROR in ch.qos.logback.core.rolling.RollingFileAppender[SYSTEMLOG] - openFile(cassandra.logdir_IS_UNDEFINED/system.log,true) call failed. java.io.FileNotFoundException: cassandra.logdir_IS_UNDEFINED/system.log (No such file or directory)
 	at java.io.FileNotFoundException: cassandra.logdir_IS_UNDEFINED/system.log (No such file or directory)

Looks like cassandra.logdir isn't set somewhere that it should be, which seems odd.

@emerkle826
Copy link
Contributor

Looks like cassandra.logdir isn't set somewhere that it should be, which seems odd.

Apparently this has been reported in CASSANDRA-16199 (John gets the credit for that find, not me)

@emerkle826
Copy link
Contributor

@jsanda with the jvm11-clients.options work-around, is the error that nodetool spits out a blocker? it looks like it still gives the status, but has a nasty log in the output. Or is it actually breaking things at the moment?

@jsanda
Copy link
Contributor Author

jsanda commented Feb 10, 2021

It did report the status. The error looked more related to logging configuration which honestly I think is noise since nodetool isn't using logging AFAIK.

@jsanda
Copy link
Contributor Author

jsanda commented Feb 18, 2021

I have been testing with a non-root Medusa image (see thelastpickle/cassandra-medusa#283). In this PR I am defining a SecurityContext to run the medusa and medusa-restore containers as a medusa user vs the cassandra user.

I hit a problem with restores. After Medusa downloads the backup files it moves them to /var/lib/cassandra and then does a chown -R cassandra:cassandra. Without root or sudo we cannot change the ownership. There are multiple options to address this, none of which come for free.

Option 1 - Revert the changes in the Medusa image and have it run as root
This may be the least amount of work and is also the least secure. This should only require changes to the Medusa Dockerfile and a few updates to my in-progress changes in this PR.

Option 2 - Run the medusa-restore container as the cassandra user
I tried this by changing the SecurityContext used for the Medusa containers. My initial attempt was unsuccessful. There was an error with finding packages and/or modules. This might not be much more work than option 1. I need to investigate some more to better assess.

Option 3- Run chown in a separate init container
This would be the most secure but the most amount of work out of all the options. We would need to change Medusa to not run chown (which is a very minor change and in fact could be considered a bug that we are trying to using it all in the k8s deployments). We could run another init container after medusa-restore that will execute the chown. If we want to do this conditionally only when a restore runs it will require some changes in medusa-operator. It is worth mentioning that when we tackle #235, a lot of the current implementation is going to change quite a bit.

@jsanda
Copy link
Contributor Author

jsanda commented Feb 18, 2021

Here is the error I try running the Medusa containers as the cassandra user:

$ kubectl logs test-dc1-default-sts-1 -c medusa
MEDUSA_MODE = GRPC
sleeping for 0 sec
Starting Medusa gRPC service
Traceback (most recent call last):
  File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/medusa/medusa/service/grpc/server.py", line 25, in <module>
    import grpc
ModuleNotFoundError: No module named 'grpc'

The issue is that ~/.local/bin is the default install directory for pip. When I change the SecurityContext to run Medusa as the cassandra user, modules should be install under /home/cassandra/.local.

@jsanda jsanda force-pushed the cass-image-upgrade branch from 3e54ede to 5516f56 Compare February 18, 2021 20:14
@jsanda jsanda marked this pull request as ready for review February 19, 2021 05:31
@jsanda jsanda force-pushed the cass-image-upgrade branch from 7322d48 to d06b610 Compare February 19, 2021 19:34
{{- $medusaImage := (printf "%s:%s" .Values.medusa.image.repository .Values.medusa.image.tag) -}}
{{- $cassandrUid := 999 -}}
{{- $cassandraGid := 999 -}}
{{- $medusaUid := 999 -}}
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 kinda useless since medusa uses username cassandra

Copy link
Contributor Author

Choose a reason for hiding this comment

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

👍

@@ -1,5 +1,8 @@
{{- $datacenter := (index .Values.cassandra.datacenters 0) -}}
{{- $medusaImage := (printf "%s:%s" .Values.backupRestore.medusa.image.repository .Values.backupRestore.medusa.image.tag) -}}
{{- $medusaImage := (printf "%s:%s" .Values.medusa.image.repository .Values.medusa.image.tag) -}}
{{- $cassandrUid := 999 -}}
Copy link
Contributor

Choose a reason for hiding this comment

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

Typo? Can't seem to find a match for this (missing one a)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah, and I will remove these. They are no longer used since I took out the SecurityContext.

{{- end}}
{{- if .Values.backupRestore.medusa.enabled }}
{{- end }}
{{- if (eq .Values.cassandra.version "4.0.0") }}
Copy link
Contributor

Choose a reason for hiding this comment

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

Should this be if hasPrefix "4.0" .Values.cassandra.version (or the other way around, can't remember hasPrefix's order)

Copy link
Contributor

Choose a reason for hiding this comment

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

Let me know if you decide to do that; I'll match it in my Stargate changes for 4.0 support.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Changes pushed

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@jakerobb I updated the code to use hasPrefix.

@@ -1,10 +1,10 @@
{{- $bucketStorageTypes := list "s3" "gcs" -}}
{{- $bucketStorageTypes := list "s3" "google_storage" -}}
Copy link
Contributor

Choose a reason for hiding this comment

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

I think this is wrong now? Or is there a reason to have these two only listed here when we also support s3_compatible and local ?

Copy link
Contributor

Choose a reason for hiding this comment

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

Although I'm not sure if this is used at all.. maybe this should be a map and the if clause should check for existence of key

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good question. I wasn't sure. It is only used here now:

{{- if and .Values.medusa.multiTenant (has .Values.medusa.storage $bucketStorageTypes)}}
    prefix = {{ .Values.clusterName }}.{{ .Release.Namespace }}
{{- end }}

I assume we do multi-tenant with s3_compatible and local. I will update.

Copy link
Contributor

Choose a reason for hiding this comment

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

See line 39 for where it's used; it's already checking for existence in the list. Not sure what we'd gain from changing to a map.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Changes pushed.

Copy link
Contributor

@jakerobb jakerobb left a comment

Choose a reason for hiding this comment

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

Changes look good, but there was some merge trampling that happened somewhere; several of my changes from #372 are not present.

Comment on lines +167 to +189
{{- nindent 10 "- name: CQL_USERNAME" }}
{{- nindent 12 "valueFrom:" }}
{{- nindent 14 "secretKeyRef:" }}
{{- nindent 16 (print "name: " .Values.medusa.cassandraUser.secret) }}
{{- nindent 16 "key: username" }}
{{- nindent 10 "- name: CQL_PASSWORD" }}
{{- nindent 12 "valueFrom:" }}
{{- nindent 14 "secretKeyRef:" }}
{{- nindent 16 (print "name: " .Values.medusa.cassandraUser.secret) }}
{{- nindent 16 "key: password" }}
{{- else }}
{{- nindent 10 "- name: CQL_USERNAME" -}}
{{- nindent 12 "valueFrom:" }}
{{- nindent 14 "secretKeyRef:" }}
{{- nindent 16 (print "name: " (include "k8ssandra.clusterName" . ) "-medusa") }}
{{- nindent 16 "key: username" }}
{{- nindent 10 "- name: CQL_PASSWORD" }}
{{- nindent 12 "valueFrom:" }}
{{- nindent 14 "secretKeyRef:" }}
{{- nindent 16 (print "name: " (include "k8ssandra.clusterName" . ) "-medusa") }}
{{- nindent 16 "key: password" }}
{{- end -}}
Copy link
Contributor

Choose a reason for hiding this comment

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

wouldn't this be nicer as a template?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Not sure I follow. Can you explain?

Copy link
Contributor

Choose a reason for hiding this comment

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

I guess what I'm suggesting is that you use actual spaces instead of nindent ##.

{{- end}}
{{- if .Values.backupRestore.medusa.enabled }}
{{- end }}
{{- if (eq .Values.cassandra.version "4.0.0") }}
Copy link
Contributor

Choose a reason for hiding this comment

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

Let me know if you decide to do that; I'll match it in my Stargate changes for 4.0 support.

@@ -1,10 +1,10 @@
{{- $bucketStorageTypes := list "s3" "gcs" -}}
{{- $bucketStorageTypes := list "s3" "google_storage" -}}
Copy link
Contributor

Choose a reason for hiding this comment

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

See line 39 for where it's used; it's already checking for existence in the list. Not sure what we'd gain from changing to a map.

# work if `ingress.traefik.enabled` is also `true`
enabled: true

# -- Traefik entrypoints where traffic is sourced.
Copy link
Contributor

@jakerobb jakerobb Feb 19, 2021

Choose a reason for hiding this comment

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

In #372, I added a link to the Traefik entrypoint docs here (and two other places). Several other changes in values.yaml are also missing. Did it get trampled in your merge?

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 guess so :(

I will do a diff with main and fix.

Copy link
Contributor

@jakerobb jakerobb left a comment

Choose a reason for hiding this comment

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

LGTM.

@jsanda jsanda merged commit 44b5ee6 into k8ssandra:main Feb 19, 2021
@jsanda jsanda deleted the cass-image-upgrade branch February 19, 2021 22:47
@jdonenine jdonenine linked an issue Feb 20, 2021 that may be closed by this pull request
jeffreyscarpenter pushed a commit to jeffreyscarpenter/k8ssandra that referenced this pull request Mar 10, 2021
* Add ability to define s3_compatible settings as well as aws region

* Change storage_properties to use map with open properties. Also, simplify the helm chart rendering, remove restriction on the type of storage and remove the restriction of bucketSecret for S3

* Fixes and a test

* Fix tests

* use non-root C* images

* fix wget command, update groupid and userid

* generate jvm11-clients.options which is needed for nodetool

This is tempoary until datastax/cass-config-definitions#49
is merged.

* simply the command

* fix unit tests

* rebase, fix security contexts, and fix google storage support

* fix tests

* update default management-api images

* fix configmap name and introduce helper template to reduce duplication

* refactor common medusa env var code into a helper template

* move medusa properties up a level

* fix syntax error

* remove SecurityContext and update Medusa image

The SecurityContext isn't needed since the Cassandra and Medusa images are both
already configured to run as the cassandra user/group.

* rebase, fix merge conflicts, bump chart version

* remove unused code

* updates from PR review

* update comment on supported C* versions and fix bad merge

* add 4.0 logic for jvm options and update tests

Co-authored-by: Michael Burman <[email protected]>
Co-authored-by: Michael Burman <[email protected]>
Co-authored-by: Erik Merkle <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Heap settings not applied for Cassandra 4.0 images Support Cassandra 4.0 beta images
4 participants