Commit Graph

583 Commits

Author SHA1 Message Date
Oleksii Kliukin b15c50bbea github.com/kr/pretty dependency.
Pretty-print Go structures and show diffs.
2017-05-12 11:41:30 +02:00
Oleksii Kliukin 3a4c6268be Increase log verbosity, namely for object updates.
- add a new environment variable for triggering debug log level
- show both new, old object and diff during syncs and updates
- use pretty package to pretty-print go structures
-
2017-05-12 11:41:29 +02:00
Oleksii Kliukin 8c2a44a242 Update the developers README.
- Specify context in kubectl commands.
- Add a section on installing zkubectl and getting access to the DB cluster.
- Add a section on installing the service account.
2017-05-12 11:41:29 +02:00
Oleksii Kliukin 19dfa0c2b0 Run pod in a privileged securityContext.
This is necessary in order to access devices from the pod.
The target is to be able to run resize2fs on a pod itself.
2017-05-12 11:41:29 +02:00
Oleksii Kliukin 701fa729de Use glide update to fetch dependencies.
Update existing depenecies.
2017-05-12 11:41:29 +02:00
Murat Kabilov c2d2a67ad5 Get config from environment variables;
ignore pg major version change;
get rid of resources package;
2017-05-12 11:41:29 +02:00
Oleksii Kliukin 28e3b7b5d9 Capitalize Kubernetes object names. 2017-05-12 11:41:29 +02:00
Oleksii Kliukin 23f2bee362 Fix typos. 2017-05-12 11:41:29 +02:00
Oleksii Kliukin 7c45059fe8 Correct the statement about watching the operator definition. 2017-05-12 11:41:28 +02:00
Oleksii Kliukin 1817bf65a1 Make example manifests minikube-friendly.
Remove fixed namespace from all manifests, reduce resource requests.
Remove the storageclass default, since it is not present in minikube.

Use the team name instead of integer id, remove unused robots.
The manifests are still compatible with the non-local deployment,
the only difference is that now a namespace is requred (assuming
that the operator can only be deployed in a specific namespace.)
2017-05-12 11:41:28 +02:00
Oleksii Kliukin b4791be520 Update the developer README.
Make it easier to get started by describing how to build and test
the operator on minikube.
2017-05-12 11:41:28 +02:00
Murat Kabilov 79a6726d4d Increase logging verbosity, restructure code 2017-05-12 11:41:28 +02:00
Murat Kabilov 3aaa05fb96 Use encrypted passwords while creating robot users 2017-05-12 11:41:28 +02:00
Oleksii Kliukin 48ba6adf8a Avoid calling Team API with an expired token.
Previously, the controller fetched the Oauth token once at start, so eventually the token would expire and the operator could not create new users. This commit makes the operator fetch the token before each call to the Teams API.
2017-05-12 11:41:28 +02:00
Murat Kabilov b6e6308bdc wait for the pods from the previous rolling update 2017-05-12 11:41:28 +02:00
Murat Kabilov bbdc2f52a9 fix resource load and list 2017-05-12 11:41:28 +02:00
Murat Kabilov 6f7399b36f Sync clusters states
* move statefulset creation from cluster spec to the separate function
* sync cluster state with desired state;
* move out from arrays for cluster resources;
* recreate pods instead of deleting them in case of statefulset change
* check for master while creating cluster/updating pods
* simplify retryutil
* list pvc while listing resources
* name kubernetes resources with capital letter
* do rolling update in case of env variables change
2017-05-12 11:41:27 +02:00
Oleksii Kliukin 1377724b2e Fix a compliation error. 2017-05-12 11:41:27 +02:00
Oleksii Kliukin 31d7426327 ClusterTeamName -> ClusterName. Add a TODO item. 2017-05-12 11:41:27 +02:00
Oleksii Kliukin 814f75f7c1 Formatting changes 2017-05-12 11:41:27 +02:00
Oleksii Kliukin 7529b84b93 Move all operator-related constants together. 2017-05-12 11:41:27 +02:00
Oleksii Kliukin 55dbacdfa6 Assign DNS name to the cluster.
DNS name is generated from the team name and cluster name.
Use "zalando.org/dnsname" service annotation that makes 'mate' service assign a CNAME to the load balancer name.
2017-05-12 11:41:27 +02:00
Oleksii Kliukin 45fcb2adc9 Assign SUPERUSER to human users by default. 2017-05-12 11:41:27 +02:00
Murat Kabilov 34ac47aed9 Expose container 8080 port 2017-05-12 11:41:26 +02:00
Murat Kabilov 486c8ecb07 use neutral name for set cluster status function 2017-05-12 11:41:26 +02:00
Murat Kabilov 1c6e7ac2e7 loadBalancerSourceRanges update 2017-05-12 11:41:26 +02:00
Murat Kabilov fc127069ab remove unnecessary ControllerNamespace 2017-05-12 11:41:26 +02:00
Murat Kabilov 416dace289 get rid of arrays in the kuberesources;
use shorter form of checking for errors
2017-05-12 11:41:26 +02:00
Oleksii Kliukin abd313f2d9 Fix a missing colon. 2017-05-12 11:41:26 +02:00
Oleksii Kliukin f65fab00dd Fix a typo 2017-05-12 11:41:26 +02:00
Oleksii Kliukin 033c28f03a Delete persistent volumes on deletion of the cluster. 2017-05-12 11:41:26 +02:00
Murat Kabilov caa0eab19b Move statefulset creation from cluster spec to the separate function 2017-05-12 11:41:25 +02:00
Oleksii Kliukin 776ed3fa0f Simplify getting configuration. 2017-05-12 11:41:25 +02:00
Murat Kabilov 021eedb226 Fix resource already exists log messages 2017-05-12 11:41:25 +02:00
Oleksii Kliukin a2e78ac2ec Feature/persistent volumes 2017-05-12 11:41:25 +02:00
Murat Kabilov ae77fa15e8 Pod Rolling update
introduce Pod events channel;
add parsing of the MaintenanceWindows section;
skip deleting Etcd key on cluster delete;
use external etcd host;
watch for tpr/pods in the namespace of the operator pod only;
2017-05-12 11:41:25 +02:00
Murat Kabilov 2b8956bd33 Add service account manifest 2017-05-12 11:41:19 +02:00
Murat Kabilov dfde075c66 Use TPR object namespace while creating its objects 2017-05-12 11:37:09 +02:00
Murat Kabilov 9169808133 Update glide dependencies 2017-05-12 11:37:09 +02:00
Murat Kabilov 6e2d64bd50 Create human users from teams api 2017-05-12 11:37:09 +02:00
Murat Kabilov 58506634c4 Create pg users 2017-05-12 11:37:09 +02:00
Murat Kabilov 7e4d0410c2 Use one secret per user 2017-05-12 11:37:09 +02:00
Murat Kabilov abb1173035 Code refactor 2017-05-12 11:37:09 +02:00
Oleksandr Shulgin 0821990720 Only set -i flag of go build when compiling locally
This fixes permissions problem when building linux target on CD.
2017-05-12 11:37:09 +02:00
Oleksandr Shulgin 6068593238 Override PATH inside Makefile to add $GOPATH/bin 2017-05-12 11:37:08 +02:00
Murat Kabilov 75e6bfa55c makefile improvements 2017-05-12 11:37:07 +02:00
Oleksandr Shulgin 6b0c104d05 Add quotes around project workspace and target dirs in build-ci.sh 2017-05-12 11:36:24 +02:00
Oleksandr Shulgin 7974dc8c4e Move Dockerfile to a subdir for smaller build context 2017-05-12 11:36:22 +02:00
Oleksandr Shulgin f6015e5aa0 Add clean before creating docker image for ci 2017-05-12 11:35:52 +02:00
Oleksandr Shulgin c082824cc7 Put back make docker push in build-ci.sh 2017-05-12 11:35:52 +02:00