diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f32826ce..c60aff184 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,78 @@ # Change Log +## [0.2.0](https://github.com/arangodb/kube-arangodb/tree/0.2.0) (2018-06-19) +[Full Changelog](https://github.com/arangodb/kube-arangodb/compare/0.1.0...0.2.0) + +**Closed issues:** + +- Guard operations that yield downtime with an `downtimeAllowed` field [\#190](https://github.com/arangodb/kube-arangodb/issues/190) +- Require at least 2 dbservers for `Cluster` deployment [\#178](https://github.com/arangodb/kube-arangodb/issues/178) +- Resource re-deployments when changing specific specs [\#164](https://github.com/arangodb/kube-arangodb/issues/164) +- PVC's can get stuck in Terminating state [\#157](https://github.com/arangodb/kube-arangodb/issues/157) +- PVC [\#156](https://github.com/arangodb/kube-arangodb/issues/156) +- Add timeout for reconciliation plan\(items\) [\#154](https://github.com/arangodb/kube-arangodb/issues/154) +- Add setting to specify ServiceAccount for deployment [\#146](https://github.com/arangodb/kube-arangodb/issues/146) +- Finalizers TODO [\#138](https://github.com/arangodb/kube-arangodb/issues/138) +- Prevent deleting pods \(manually\) using finalizers [\#134](https://github.com/arangodb/kube-arangodb/issues/134) +- Set controller of pods to support `kubectl drain` [\#132](https://github.com/arangodb/kube-arangodb/issues/132) +- Add option to taint pods [\#131](https://github.com/arangodb/kube-arangodb/issues/131) +- OpenShift: No DB is getting deployed [\#128](https://github.com/arangodb/kube-arangodb/issues/128) +- ArangoDeploymentTasks [\#34](https://github.com/arangodb/kube-arangodb/issues/34) +- ArangoLocalStorage tasks [\#33](https://github.com/arangodb/kube-arangodb/issues/33) + +**Merged pull requests:** + +- Adding downtimeAllowed field [\#194](https://github.com/arangodb/kube-arangodb/pull/194) +- Added tutorial for configuring DC2DC of Kubernetes [\#187](https://github.com/arangodb/kube-arangodb/pull/187) +- Various TLS & Sync related fixes [\#186](https://github.com/arangodb/kube-arangodb/pull/186) +- Use standard EventRecord to use event compression [\#185](https://github.com/arangodb/kube-arangodb/pull/185) +- Fixed ID prefix for single servers [\#184](https://github.com/arangodb/kube-arangodb/pull/184) +- Allow changing server group storage class. [\#183](https://github.com/arangodb/kube-arangodb/pull/183) +- Added test timeouts to all stages [\#182](https://github.com/arangodb/kube-arangodb/pull/182) +- Added renewal of deployment TLS CA certificate [\#181](https://github.com/arangodb/kube-arangodb/pull/181) +- Min dbserver count is 2. Revert phase when cleanout has failed [\#180](https://github.com/arangodb/kube-arangodb/pull/180) +- Prefer distinct nodes, even when not required [\#179](https://github.com/arangodb/kube-arangodb/pull/179) +- Added duration test app [\#177](https://github.com/arangodb/kube-arangodb/pull/177) +- Improved readiness probe, database services only use ready pods [\#176](https://github.com/arangodb/kube-arangodb/pull/176) +- Documenting acceptance test [\#175](https://github.com/arangodb/kube-arangodb/pull/175) +- Avoid useless warnings in log [\#174](https://github.com/arangodb/kube-arangodb/pull/174) +- Hide "dangerous" functions of MemberStatusList [\#173](https://github.com/arangodb/kube-arangodb/pull/173) +- Avoid overwriting status changes [\#172](https://github.com/arangodb/kube-arangodb/pull/172) +- Abort reconcilientation plan on failed cleanout server [\#171](https://github.com/arangodb/kube-arangodb/pull/171) +- Improving documentation [\#170](https://github.com/arangodb/kube-arangodb/pull/170) +- Remove service stickyness [\#169](https://github.com/arangodb/kube-arangodb/pull/169) +- Prevent deleting the PV when the PVC has already been attached to it [\#168](https://github.com/arangodb/kube-arangodb/pull/168) +- Various test improvements [\#167](https://github.com/arangodb/kube-arangodb/pull/167) +- Added unit tests for pv\_creator.go [\#166](https://github.com/arangodb/kube-arangodb/pull/166) +- Added finalizer on deployment, used to remove child finalizers on delete [\#165](https://github.com/arangodb/kube-arangodb/pull/165) +- Fix endless rotation because of serviceAccount `default` [\#163](https://github.com/arangodb/kube-arangodb/pull/163) +- Force volumes to unique nodes for production environments [\#162](https://github.com/arangodb/kube-arangodb/pull/162) +- Improved Service documentation [\#161](https://github.com/arangodb/kube-arangodb/pull/161) +- Reconciliation plan-item timeout [\#160](https://github.com/arangodb/kube-arangodb/pull/160) +- Operator high-availability [\#155](https://github.com/arangodb/kube-arangodb/pull/155) +- Cleanup long terminating stateful pods [\#153](https://github.com/arangodb/kube-arangodb/pull/153) +- Allow customization of serviceAccountName for pods [\#152](https://github.com/arangodb/kube-arangodb/pull/152) +- Cleanup stateless pods that are in terminating state for a long time [\#151](https://github.com/arangodb/kube-arangodb/pull/151) +- Added no-execute tolerations on operators to failover quicker [\#150](https://github.com/arangodb/kube-arangodb/pull/150) +- Replication shard status in ArangoDeploymentReplication status [\#148](https://github.com/arangodb/kube-arangodb/pull/148) +- Sync access packages [\#147](https://github.com/arangodb/kube-arangodb/pull/147) +- Adding syncmaster&worker reconciliation support. [\#145](https://github.com/arangodb/kube-arangodb/pull/145) +- Fixes needed to run on latest openshift. [\#144](https://github.com/arangodb/kube-arangodb/pull/144) +- `ArangoDeploymentReplication` resource [\#143](https://github.com/arangodb/kube-arangodb/pull/143) +- Adding deployment replication spec [\#142](https://github.com/arangodb/kube-arangodb/pull/142) +- No stickyness for EA service of type LoadBalancer [\#141](https://github.com/arangodb/kube-arangodb/pull/141) +- Added `tolerations` field to configure tolerations of generated pods. [\#140](https://github.com/arangodb/kube-arangodb/pull/140) +- Inspect node schedulable state [\#139](https://github.com/arangodb/kube-arangodb/pull/139) +- Make use of GOCACHE as docker volume for improved build times [\#137](https://github.com/arangodb/kube-arangodb/pull/137) +- Feature: finalizers [\#136](https://github.com/arangodb/kube-arangodb/pull/136) +- Added a spec regarding the rules for eviction & replacement of pods [\#133](https://github.com/arangodb/kube-arangodb/pull/133) +- Added support for running arangosync master & worker servers. [\#130](https://github.com/arangodb/kube-arangodb/pull/130) +- Updated go-certificates & go-driver to latest versions [\#127](https://github.com/arangodb/kube-arangodb/pull/127) +- Added Database external access service feature [\#126](https://github.com/arangodb/kube-arangodb/pull/126) +- Updated to latest go-driver [\#125](https://github.com/arangodb/kube-arangodb/pull/125) +- BREAKING CHANGE: Deployment mode ResilientSingle renamed to ActiveFailover [\#124](https://github.com/arangodb/kube-arangodb/pull/124) +- add persistent-volume tests [\#97](https://github.com/arangodb/kube-arangodb/pull/97) + ## [0.1.0](https://github.com/arangodb/kube-arangodb/tree/0.1.0) (2018-04-06) [Full Changelog](https://github.com/arangodb/kube-arangodb/compare/0.0.1...0.1.0) diff --git a/README.md b/README.md index 86e920227..d07643bf5 100644 --- a/README.md +++ b/README.md @@ -23,10 +23,10 @@ support. That is still completely missing. ## Installation of latest release ```bash -kubectl apply -f https://raw.githubusercontent.com/arangodb/kube-arangodb/0.2.0/manifests/crd.yaml -kubectl apply -f https://raw.githubusercontent.com/arangodb/kube-arangodb/0.2.0/manifests/arango-deployment.yaml +kubectl apply -f https://raw.githubusercontent.com/arangodb/kube-arangodb/0.2.1/manifests/crd.yaml +kubectl apply -f https://raw.githubusercontent.com/arangodb/kube-arangodb/0.2.1/manifests/arango-deployment.yaml # To use `ArangoLocalStorage`, also run -kubectl apply -f https://raw.githubusercontent.com/arangodb/kube-arangodb/0.2.0/manifests/arango-storage.yaml +kubectl apply -f https://raw.githubusercontent.com/arangodb/kube-arangodb/0.2.1/manifests/arango-storage.yaml ``` ## Building diff --git a/VERSION b/VERSION index 341cf11fa..7dff5b892 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.2.0 \ No newline at end of file +0.2.1 \ No newline at end of file diff --git a/manifests/arango-deployment-replication.yaml b/manifests/arango-deployment-replication.yaml new file mode 100644 index 000000000..054071092 --- /dev/null +++ b/manifests/arango-deployment-replication.yaml @@ -0,0 +1,139 @@ +## deployment-replication/rbac.yaml +## Cluster role granting access to ArangoDeploymentReplication resources. +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: ClusterRole +metadata: + name: arango-deployment-replications +rules: +- apiGroups: ["replication.database.arangodb.com"] + resources: ["arangodeploymentreplications"] + verbs: ["*"] + +--- + +## Cluster role granting access to all resources needed by the ArangoDeploymentReplication operator. +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: ClusterRole +metadata: + name: arango-deployment-replication-operator +rules: +- apiGroups: ["replication.database.arangodb.com"] + resources: ["arangodeploymentreplications"] + verbs: ["*"] +- apiGroups: ["database.arangodb.com"] + resources: ["arangodeployments"] + verbs: ["get"] +- apiGroups: ["apiextensions.k8s.io"] + resources: ["customresourcedefinitions"] + verbs: ["get"] +- apiGroups: [""] + resources: ["pods", "services", "endpoints", "persistentvolumeclaims", "events", "secrets"] + verbs: ["*"] +- apiGroups: [""] + resources: ["nodes"] + verbs: ["get"] +- apiGroups: ["apps"] + resources: ["deployments"] + verbs: ["*"] + +--- + +## Bind the cluster role granting access to ArangoDeploymentReplication resources +## to the default service account of the configured namespace. +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: RoleBinding +metadata: + name: arango-deployment-replications + namespace: default +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: arango-deployment-replications +subjects: +- kind: ServiceAccount + name: default + namespace: default + +--- + +## Bind the cluster role granting access to all resources needed by +## the ArangoDeploymentReplication operator to the default service account +## the is being used to run the operator deployment. +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: ClusterRoleBinding +metadata: + name: arango-deployment-replication-operator-default +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: arango-deployment-replication-operator +subjects: +- kind: ServiceAccount + name: default + namespace: default + +--- + +## deployment-replication/deployment-replication.yaml + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: arango-deployment-replication-operator + namespace: default +spec: + replicas: 2 + strategy: + type: Recreate + template: + metadata: + labels: + name: arango-deployment-replication-operator + app: arango-deployment-replication-operator + spec: + containers: + - name: operator + imagePullPolicy: IfNotPresent + image: arangodb/kube-arangodb@sha256:1ac03c2ecd188148259e392655381b05b32b389977b53b29ddc51f9d6c39bd88 + args: + - --operator.deployment-replication + env: + - name: MY_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: MY_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: MY_POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + ports: + - name: metrics + containerPort: 8528 + livenessProbe: + httpGet: + path: /health + port: 8528 + scheme: HTTPS + initialDelaySeconds: 5 + periodSeconds: 10 + readinessProbe: + httpGet: + path: /ready/deployment-replication + port: 8528 + scheme: HTTPS + initialDelaySeconds: 5 + periodSeconds: 10 + tolerations: + - key: "node.kubernetes.io/unreachable" + operator: "Exists" + effect: "NoExecute" + tolerationSeconds: 5 + - key: "node.kubernetes.io/not-ready" + operator: "Exists" + effect: "NoExecute" + tolerationSeconds: 5 + diff --git a/manifests/arango-deployment.yaml b/manifests/arango-deployment.yaml index 9adb0f0ac..82b070520 100644 --- a/manifests/arango-deployment.yaml +++ b/manifests/arango-deployment.yaml @@ -94,7 +94,7 @@ spec: containers: - name: operator imagePullPolicy: IfNotPresent - image: arangodb/kube-arangodb@sha256:43bdc14d072fb1912d885536c189a631076e13e5c3e8a87b06e5ddbe60c66a6d + image: arangodb/kube-arangodb@sha256:1ac03c2ecd188148259e392655381b05b32b389977b53b29ddc51f9d6c39bd88 args: - --operator.deployment - --chaos.allowed=false diff --git a/manifests/arango-storage.yaml b/manifests/arango-storage.yaml index fde46cb60..0b62dfa64 100644 --- a/manifests/arango-storage.yaml +++ b/manifests/arango-storage.yaml @@ -103,7 +103,7 @@ spec: containers: - name: operator imagePullPolicy: IfNotPresent - image: arangodb/kube-arangodb@sha256:43bdc14d072fb1912d885536c189a631076e13e5c3e8a87b06e5ddbe60c66a6d + image: arangodb/kube-arangodb@sha256:1ac03c2ecd188148259e392655381b05b32b389977b53b29ddc51f9d6c39bd88 args: - --operator.storage env: