Oleksii Kliukin
f18bb6eaaa
Make errors in the cluster list function visible.
...
Sometimes the operator does not pick up clusters right away when
they are created. The change attempts to shed light on the
reason behind that.
2018-02-22 16:45:10 +01:00
Sergey Dudoladov
66a3b6830e
Call fatalf if namespace to watch does not exist
2018-02-20 16:13:48 +01:00
Sergey Dudoladov
dcfc9925f6
Respond to code review
2018-02-20 14:43:02 +01:00
Sergey Dudoladov
e3d2434420
Use '*' as an alias to denote all namespaces
2018-02-16 15:20:26 +01:00
Sergey Dudoladov
088bf70e7d
Merge branch 'master' into support-many-namespaces
2018-02-16 15:06:10 +01:00
Sergey Dudoladov
ec7de38f9b
Make operator watch its own namespace instead of controller's one
2018-02-16 14:22:38 +01:00
Sergey Dudoladov
5e9a21456e
Remove the incorrect service account check
2018-02-15 16:33:53 +01:00
Sergey Dudoladov
155ae8d50f
Rename the function that checks service account existence
2018-02-15 11:14:13 +01:00
Sergey Dudoladov
d5d15b7546
Look for secrets in the deployed namespace
2018-02-14 15:37:30 +01:00
Sergey Dudoladov
06fd9e33f5
Watch the namespace where operator deploys to unless told otherwise
2018-02-13 18:17:47 +01:00
Sergey Dudoladov
4c23917d42
Watch all namespaces if the relevant param is empty string / 'default' if param is unset
2018-02-12 11:47:56 +01:00
Sergey Dudoladov
066f11cbbd
Streamline handling of the watched_namespace param/envvar
2018-02-09 11:39:56 +01:00
Sergey Dudoladov
b5b0b027f2
Handle watched namespace set in operator config map
2018-02-08 14:51:45 +01:00
Sergey Dudoladov
86807d21ba
Kill operator if the namespace to watch does not exist
2018-02-08 14:24:47 +01:00
Sergey Dudoladov
794feee3e1
Fix the bug with the operator always listening to all namespaces
2018-02-08 13:49:44 +01:00
Sergey Dudoladov
de2a028592
Warn if the watched namespace does not exist
2018-02-07 17:43:05 +01:00
Sergey Dudoladov
74fa7b9492
Restrict operator to single watched namespace via env var
2018-02-07 16:44:49 +01:00
Sergey Dudoladov
f194a2ae5a
Introduce changes from the PR #200 by @alexeyklyukin
2018-02-07 14:02:32 +01:00
Sergey Dudoladov
74a1e9661b
Remove setting the actual watched namespace as env var (os.Setenv won't work)
2018-02-06 17:40:06 +01:00
Sergey Dudoladov
8b7bbde06e
Make env var overwrite configmap setting for watching namespaces
2018-02-06 16:12:47 +01:00
Sergey Dudoladov
ea84f9d577
Rename the configmap 'namespace' entry to avoid confusion with the map's owm namespace
2018-02-06 15:09:00 +01:00
Sergey Dudoladov
ec6799f34a
Overwrite scalyr api key if the relevant env variable is present in the operator pod
2018-01-12 14:56:14 +01:00
Oleksii Kliukin
23011bdf9a
Migrate only master pods. Migrate single masters. ( #199 )
...
Avoid migrating replica pods, since they will be handled by the
node draining anyway (the PDB specifies that only masters are to
be kept).
Allow migration of the single-pod clusters.
2018-01-09 11:55:11 +01:00
zerg-junior
bb5ce6cbbe
Merge pull request #195 from zalando-incubator/databases-rest-endpoint
...
Add a REST endpoint to list databases in all clusters
2018-01-09 11:53:32 +01:00
Oleksii Kliukin
8e99518eeb
Improve behavior on node decomissionining ( #184 )
...
* Trigger the node migration on the lack of the readiness label.
* Examine the node's readiness status on node add.
Make sure we don't miss the not ready node, especially when the
operator is killed during the migration.
2018-01-04 11:53:15 +01:00
Oleksii Kliukin
5c8bd04169
Sort database by name.
2017-12-22 15:48:13 +01:00
Oleksii Kliukin
6102b0368c
Merge remote-tracking branch 'origin/databases-rest-endpoint' into databases-rest-endpoint
...
# Conflicts:
# pkg/apiserver/apiserver.go
# pkg/controller/status.go
2017-12-22 13:08:50 +01:00
Oleksii Kliukin
9720ac1f7e
WIP: Hold the proper locks while examining the list of databases.
...
Introduce a new lock called specMu lock to protect the cluster spec.
This lock is held on update and sync, and when retrieving the spec in
the API code. There is no need to acquire it for cluster creation and
deletion: creation assigns the spec to the cluster before linking it to
the controller, and deletion just removes the cluster from the list in
the controller, both holding the global clustersMu Lock.
2017-12-22 13:06:11 +01:00
Sergey Dudoladov
b8bf97ab76
Integrate comments from code reviews
2017-12-22 12:53:57 +01:00
Sergey Dudoladov
011458fb05
Add a REST endpoint to list databases in all clusters
2017-12-21 17:28:55 +01:00
zerg-junior
3c178f68df
Warn on infrastructure-roles.yaml format violations ( #177 )
...
Emit a warning if there are unprocessed entries in the infrastructure-roles secret.
2017-12-15 17:21:41 +01:00
Oleksii Kliukin
dd0affc390
Tweak our reaction to the cluster upgrade process.
...
Previously, the operator started to move the pods off the nodes to be
decomissioned by watching the eol_node_label value. Every new postgres
pod has been created with the anti-affinity to that label, making sure
that the pods being moved won't land on another to be decomissioned
node.
The changes introduce another label that indicates the ready node. The
new pod affinity will esnure that the pod is only scheduled to the node
marked as ready, discarding the previous anti-affinity. That way the
nodes can transition from the pending-decomission to the other statuses
(drained, terminating) without having pods suddently scaled to them.
In addition, rename the label that triggers the start of the upgrade
process to node_eol_label (for consistency with node_readiness_label)
and set its default vvalue to lifecycle-status:pending-decomission.
2017-11-30 14:11:49 +01:00
Murat Kabilov
86803406db
use sync methods while updating the cluster
2017-11-03 12:00:43 +01:00
Oleksii Kliukin
eba23279c8
Kube cluster upgrade
2017-10-19 10:49:42 +02:00
Murat Kabilov
6c4cb4e9da
Perform manual failover during the scale down
2017-10-16 17:41:23 +02:00
Murat Kabilov
3b32265258
Set status of the cluster on sync fail/success
2017-10-12 15:10:42 +02:00
Murat Kabilov
8d5faaa5a5
return idle status when worker has nothing to do
2017-10-11 15:42:20 +02:00
Murat Kabilov
83c8d6c419
Extend diagnostic api with worker status info
2017-10-11 12:26:09 +02:00
Murat Kabilov
32aa7270e6
Use round-robin strategy while assigning workers
2017-10-09 16:56:27 +02:00
Murat Kabilov
a35e9c6119
move from tpr to crd
2017-10-06 15:12:08 +02:00
Murat Kabilov
9a66e09b88
cluster history api endpoint
2017-09-26 14:30:45 +02:00
Murat Kabilov
f77852a152
store time of the cluster event
2017-09-26 13:17:23 +02:00
Murat Kabilov
4db5bd13d1
delete cluster key from the clusters list only when delete procedure is finished
2017-09-04 18:48:03 +02:00
Murat Kabilov
899c0bef45
Use warningf instead of warnf
2017-08-30 14:35:56 +02:00
Murat Kabilov
53ceede3cb
show worker queue size in the cluster status
2017-08-28 12:05:33 +02:00
Murat Kabilov
83760ebbef
discard cluster events from the queue on cluster delete;
...
delete cluster from the clusters map before deleting cluster itself
2017-08-17 12:24:23 +02:00
Murat Kabilov
f2c23021bb
generate clusterEvent queue key in a separate function
2017-08-17 12:20:03 +02:00
Murat Kabilov
dad8e2f49f
make cluster event queue consumption non-blocking
2017-08-15 16:03:19 +02:00
Murat Kabilov
82d5583809
add diagnostic api http server
2017-08-15 12:20:09 +02:00
Murat Kabilov
51fdfb90f7
log cluster and controller events in the ringlog via logrus hook
2017-08-15 12:16:09 +02:00