Formal Operator configuration design v2#77
Formal Operator configuration design v2#77galderz wants to merge 2 commits intoinfinispan:masterfrom
Conversation
2a86edc to
23bf786
Compare
|
I like the profile concept, however I'd rename "Secured" to "Default", because we don't want to imply that "Performance" is not secure. |
23bf786 to
11ddab9
Compare
|
One more thing:
|
|
@tristantarrant Something else came to my mind while 😴, would it make sense for connector authentication to take a list of credentials instead of a single one? E.g. if you want to add multiple users for data access. Each could either be defined with credentials... Or would such situation be handled by a single Keystore authentication entry, where the keystore can store usernames and passwords for multiple users? |
2d40bf6 to
e489d87
Compare
|
Do we have/need something to manage application roles? |
e489d87 to
5a36034
Compare
|
The question popped in a chat with @tristantarrant about the need to keep management and connector authentication separate...
So, we'll further coalesce the authentication part, probably under
We probably do. @tristantarrant What should we do here? What is the bare minimum you'd need? @rigazilla We could see what's done in Kubernetes with security in this area of role definitions... |
|
There must be two ways
|
|
@galderz V2 specification looks good to me. I wasn't sure at first about What's not so clear just by looking at yaml API is that you can either use
+1, Maybe
What if user would like to play with the stats in Development mode so he can set up and prepare his monitoring solution? Maybe the best would be to enable Prometheus in any case and drop that option completely. Prometheus agent isn't anything that would give you any advantage if you turn it off. |
rigazilla
left a comment
There was a problem hiding this comment.
More words on how/why the setup is partitioned under: cache, datagrid, container would be good IMO.
3d6d6f3 to
a4647ed
Compare
Cache is the most simple way to use DG, as a cache. We simplified the config in OpenShift images already for 7.3. The existing options there come from the work we did there. Check that out. Data Grid is everything else: x-site, plug remote stores, local PV data persistence...etc. Container is per pod configuration: how much CPU to give each pod, how much memory, any extra JVM settings to pass. |
Good point, I'll amend that for next revision. |
Replied too early. Good point about this, I'll try to think it differently.
Good point. Your suggestion makes sense, I'll address that for next rev. |
+1
+1 |
|
@galderz Have you thought about adding some option for exposing the rest/hotrod out? Or users will be required to create the route always manually? Asking because I noticed that opc's cluster config contains option |
FYI, this will be sorted in v3, where you'll be able to define multiple user/pass credentials. |
|
Closing PR, v3 can be found in #108. |
Version 2 of the operator configuration design here. Noteworthy changes:
General
spec.sizeis nowspec.replicas.spec.profilehas been added as a result of the feedback on v1. Essentially, this is a way for the user to select the base settings of Infinispan. By default this isSecured, that means that both connector and cluster authentication and encryption are enabled. Alternatively, users can selectDevelopmentwhere both connector and cluster authentication and encryption are disabled for ease of local development. The 3rd option isPerformancewhich is likeSecuredbut without cluster encryption. Thoughts? @tristantarrant @Crumby.spec.connector.secret.authenticationhas been moved tospec.connector.authentication.spec.container.cpuhas been added.spec.loggingcategories have been moved tospec.logging.categories, with attribute names defining package names and values referring to logging levels.spec.management.prometheusboolean has been transformed to a subtree andspec.management.prometheus.enabledflag has been added to enable or disable it. By default would be disabled as in v1. I have some doubts about this though, see question section.spec.management.secretbecomesspec.management.authentication.Cache
spec.evictionPolicyhas been moved tospec.cache.evictionPolicy.spec.replicationFactorhas been moved tospec.cache.replicationFactor.Data Grid
spec.container.storagehas been moved tospec.datagrid.storagesince this option is only relevant for datagrid usages.spec.datasourceshas been moved tospec.datagrid.datasources.spec.siteshas been moved tospec.datagrid.sites.spec.sites.remotes[].secrethas been renamed tospec.datagrid.sites.remotes[].authenticationQuestions
spec.management.prometheuscould be removed completely by making using the profile as a way to signal whether prometheus is enabled or not. As example, withSecuredandPerformanceprometheus would be enabled, but withDevelopmentit'd be disabled. Thoughts?