-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(influxdb): Use stable/influxdb chart #185
Conversation
@rimusz is a potential reviewer of this pull request based on my analysis of |
a5099a3
to
c329e8b
Compare
With respect to
Possible to avoid erroring out in this scenario? |
W/r/t I tested at the level of a full Workflow install and although I am meeting the expectations listed in the description (new volume locations for storing influxdb data), after Workflow upgrade my grafana instance cannot locate the migrated data (dashboards empty, grafana pod logs show Here were my steps: https://gist.github.com/vdice/d0325647ad4136feb76fa8e9e0a0725e |
W/r/t When attempting to upgrade, the expectations are not met; namely, the
|
7f55ec5
to
c8eb29a
Compare
This PR is waiting on an upstream change before it can be tested. |
closes deis#180 * This moves to using the influxdb chart in the stable repository * Sets the version to 0.4.0 * Adds two pre-upgrade hooks to the base monitor chart. These hooks allow the chart to migrate data from the old volume mount location to the new one provided by the influxdb chart. * If `influxdb_location` is set to `off-cluster` it will delete the deployment resource using a post-install or post-upgrade hook.
With the k8s bug around binding persistent volumes on pods that have moved nodes I think I will just close this PR for now. |
closes #180
Manual Testing Steps:
Notes
influxdb
pod gets stuck in aContainerCreating
state it's normally because the pod has moved from the node that originally hosted thepvc
. If you kill the pod it will be reassigned and should start normally. I am going to work on a hook that will automatically do this once I get the majority of this PR done.Prereqs
logger-redis-cache
secret (you can get this from the workflow chart)2.3.0
of tiller (helm init --upgrade
)Test InfluxDB persistence Migration
Install master of
deis/monitor
helm upgrade deis-monitor . --install --namespace deis --set influxdb.persistence.enabled=true
kubectl exec
into the running influxdb pod. You will notice that all the data in stored at/data/*
Install this PR of
deis/monitor
helm dependency build
incharts/monitor
helm upgrade deis-monitor . --namespace deis --set influxdb.persistence.enabled=true
upgrade
is taking place you can do akubectl get pods --watch --namespace=deis
and watch thekill-pods
andmigrate-data
pods do their thing.kubectl exec
into the new running influxdb pod. You should now see data in/var/lib/influxdb/data/*
Test InfluxDB deployment resource is deleted after upgrade/install
We can no longer just turn off parts of the chart. Instead we must delete the deployment resource after install/upgrade. The biggest problem here is that the influxdb chart programmatically builds its name so we rely on the fact that most deployments should be
{{ .Release.Name }}-influxdb
.Install
This is to validate that a clean install of this chart will do the right thing with off cluster influx.
helm upgrade deis-monitor . --install --namespace deis --set global.influxdb_location=off-cluster,influxdb.url=http://some.other.url
kubectl exec
into a running telegraf pod. Check thatconfig.toml
has your influxdb url set.Upgrade
This is to validate that when upgrading from an existing install (no matter its configuration) it will do the correct thing. It should be noted that we will kill off the telegraf pods and let them restart so they can pick up the new configuration of off cluster influx support in case the user was not usign that previously.
helm upgrade deis-monitor . --namespace deis --set global.influxdb_location=off-cluster,influxdb.url=http://some.other.url
kubectl exec
into a running telegraf pod. Check thatconfig.toml
has your influxdb url set.Test No Persistence -> No Persistence upgrade
Install master of
deis/monitor
helm upgrade deis-monitor . --install --namespace deis
\Install this PR of
deis/monitor
helm dependency build
incharts/monitor
helm upgrade deis-monitor . --namespace deis
Test older tiller vs New tiller
Install a version older than 2.3.0 of tiller
make build
./bin/tiller
helm upgrade deis-monitor . --namespace deis --host localhost:44134 --set influxdb.persistence.enabled=true
kubectl get jobs