Comments (3)
we also could treat replicas like we do resources. We have a global default setting and a per service setting, which wins over the global one. Or do you vote for only a per service option?
from ocis-charts.
Well, that is what I meant with the first point, I do not really think a global setting is useful enough to warrant the added complexity in the helm chart.
I also expect some components like nats to require quorum, so just having one large replica setting might also invite configuration accidents, and I guess most components do not need to scale beyond HA, whereas proxy and frontend probably need quite a few more replicas in most settings.
I think I would even argue that a global setting is kinda useless for resources as well, but having good defaults there might be more tricky than replicas: 1
for each service.
from ocis-charts.
I also expect some components like nats to require quorum
The builtin NATS does not support scaling / clustering. Therefore we have an example with an external NATS cluster. Currently you also need to ensure settings replicas for NATS streams, that's why we recently added NACK to the example to achieve this. See: https://github.com/owncloud/ocis-charts/tree/master/deployments/ocis-nats
There are no other components that have something like a quorum.
But other components that cannot be scaled beyond one replica and should be replaced by external scalable / HA components if needed (IDM = LDAP, IDP = OIDC Provider -> see: https://github.com/owncloud/ocis-charts/tree/master/deployments/external-user-management). Other components are not yet scalable and tracked here: #15
so just having one large replica setting might also invite configuration accidents, and I guess most components do not need to scale beyond HA, whereas proxy and frontend probably need quite a few more replicas in most settings.
I totally get your point and agree that we should offer a replica setting per service.
I guess we should have the following logic when it comes to replicas / HPA settings:
- apply global replicas setting to service if no global / service-specific HPA / service-specific replicas is set
- apply service-specific replicas setting to service if no service-specific HPA is set
- apply global HPA setting to service if no service-specific replicas / HPA is set
- apply service-specific HPA setting to service if service-specific HPA is set
In short: service-specific setting wins. And HPA wins over the replicas setting when it has the same specifically (global / service-specific).
I think I would even argue that a global setting is kinda useless for resources as well, but having good defaults there might be more tricky than
replicas: 1
for each service.
We have this because many service have a similar low need for resources and they can be configured together in this way. But still it's true that you need to check if resources are set correct in the end.
from ocis-charts.
Related Issues (20)
- Adding OIDC HOT 2
- Add support for WEB_OIDC_SCOPE
- Fix documentation
- Add support for GRAPH_USERNAME_MATCH
- external-usermanagement deployment example not working? HOT 7
- Add support for FRONTEND_APP_HANDLER_SECURE_VIEW_APP_ADDR
- add service auth-app HOT 1
- expose GRPC connection age
- add service activitylog
- verify NATS stream settings for oCIS 6 HOT 1
- expose collaboration proof-key settings?
- Web extension / plugin installation mechanism
- replace FRONTEND_SHOW_USER_EMAIL_IN_RESULTS by OCIS_SHOW_USER_EMAIL_IN_RESULTS
- graph service config adaptions
- external user deployment example schema adaptions HOT 1
- support `posix` storage
- support THUMBNAILS_MAX_INPUT_WIDTH and THUMBNAILS_MAX_INPUT_HEIGHT
- follow new behavior around web assets HOT 1
- follow web depreciations
- allow configuring GRAPH_AVAILABLE_ROLES HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ocis-charts.