Comments (12)
Also an "environment" tag should be there to distinguishing between release/live environments etc.
Even better would be the possibility to add "custom" user defined tags, with no meaning to patroni. Those tags should be persisted and easily inspectable via (future) patroni-cli for example.
from patroni.
@kmoppel you are now introducing the idea of tags for the whole cluster. Until now the tags suggested by Josh are tagging instances in the cluster.
from patroni.
The only global tag I'm proposing to add will be:
disabled: if this tag is set for the cluster, no auto-failover will take place. This tag is meant for disabling auto-failover during manual failover and similar expected downtime. It should always be set with a TTL.
from patroni.
I don't think I agree with the idea of an "environment" tag. In what way is that not simply part of the "scope"?
As for user-defined custom tags, nothing keeps patroni-cli from adding any tags it wants. I haven't conceived of any I need yet though.
from patroni.
@valgog yes, exactly for the whole cluster. @jberkus ok yes, the "environment" concept could be an user defined concept (tag) also - keeping mandatory parts from operational requirements only might be a good line to keep as patroni grows in features.
But custom tags in general would be very useful in my opinion - marking environments, applications using some cluster, criticality level, being part of a sharded cluster etc, will definitely help large setups.
from patroni.
@kmoppel Certianly you could easily add a self.custom_tags dictionary to init.py, and then an optional config setting called "custom_tags" which takes a list to the patroni config file. However, what good would this do you? Pretty much the only thing you could do with the custom tags is pass them along to create_replica scripts; there's no place else in patroni we would read them. So what's the point?
If you want custom tags just for the CLI, that's really a completely different feature.
from patroni.
Exactly, just for the CLI (or any reader), no point for the slaves or init scripts or any other operational stuff. Idea would be to just persist some values in etcd/zookeeper, so that for example our "database discovery service" could give users more hints about the nature and purpose of found database clusters. These tags could be changed/added at any moment, not on cluster creation, so maybe it deserves a separate issue indeed.
from patroni.
@kmoppel I welcome your contributions to patroni-cli, once I have the initial prototype up.
from patroni.
The nofailover tag, along with some general code to support tags in the DCS and the API, is implemented in #80
from patroni.
Great! Will test ...
from patroni.
It seems we still need to implement:
noloadbalance
Are there any negative (or positive) test results?
from patroni.
noloadbalance is implemented in #185
from patroni.
Related Issues (20)
- Patroni overwrite synchronous_standby_names on primary in async mode
- Failsafe mode when master doesn't have access to DCS HOT 1
- TypeError: string argument without an encoding HOT 1
- Patroni Does Not Failover on Data Disk Full Shutdown HOT 3
- Missing cdiff in requirements HOT 2
- switchover pg cluster,but master not failover HOT 3
- Unable to deploy haproxy after deploy Patroni on K8s HOT 1
- [3.1.0] synchronous_mode updating synchronous_standby_names with leader node HOT 12
- recovery settings in postgresql parameters will cause recovery_conf ignored while building config HOT 1
- master postgres crashed and rejoin failed HOT 1
- 'psycopg2.extensions.connection' object has no attribute 'info'
- WAL Files are not deleted after 20 GB pg_restore on primary node HOT 3
- Patroni lost connection and restarted after restarting the etcd-Server HOT 3
- doing unnecessary crash recovery when primary_start_timeout=0 and failover is impossible HOT 1
- Patronictl edit-config throws an exception but updates the config file even when less and more are present on the host HOT 1
- FATAL: could not receive data from WAL stream: HOT 12
- Failover issue url: /patroni ('Connection aborted.', 'Connection reset by peer' HOT 1
- When patroni executes pg_basebackup, the maxfailures parameter is written as 2. Can this parameter be changed? HOT 7
- Incorrect host in .pgpass file for post_init script when using unix_socket_directories HOT 2
- Duplicate patroni.yml log_filename config lines can cause issues HOT 1
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 patroni.