Gravity Operator manages Gravity processes on Kubernetes.
This document introduces how to deploy, configure and upgrade a Gravity Operator.
- Kubernetes 1.11+ with CRD status subroutine
- helm
$ cd charts/gravity-operator
$ helm install --name gravity-operator ./
This chart bootstraps a gravity-operator deployment on a Kubernetes cluster using the Helm package manager.
The following table shows the configurable parameters of the gravity-operator chart and their default values. See deploy/k8s/gravity-operator/values.yaml
.
Parameter | Description | Default Value |
---|---|---|
deploymentRules |
Array of deployment rules which control Gravity deployment versions | See DeploymentRules |
operator.image.repository |
Image of the operator | moiot/gravity-operator |
operator.image.tag |
Image tag of the operator | v0.1.0 |
operator.rolling |
The maximum number of pipelines that can be upgraded in parallel. Value can be an absolute number (ex: 5) or a percentage (ex: 10%). | 25% |
admin.image.repository |
Image of admin | moiot/gravity-admin |
admin.image.tag |
Image tag of admin | v0.2.0 |
admin.service.nodePort |
Node port of the admin service | 30066 |
By defining DeploymentRule
, a Gravity cluster is divided into multiple groups based on the pipeline name and these groups can use different Gravity versions.
The default rule is as follows:
- group: "default"
pipelines: ["*"]
image: "moiot/gravity:v0.9.15"
command: ["/gravity", "-config=/etc/gravity/config.json"]
Parameter | Type | Description |
---|---|---|
group |
String | Name of the rule |
pipelines |
String array | Global expression of the matched pipeline name |
image |
String | Image (including tag) of matched pipeline deployment. It will be written to pod template's container image field |
command |
String array | Command of running matched pipeline. It will be written to pod template's container command field |
To upgrade a Gravity cluster, perform the following steps:
- Modify the
values.yaml
file in the chart. - Use helm to upgrade the cluster.
This project is licensed under the Apache License 2.0 License - see the LICENSE file for details