Page MenuHomePhabricator

Kask functional testing with Cassandra via the Deployment Pipeline
Open, NormalPublic

Description

In talking with @Eevans yesterday it sounds like it is desirable to have a running Cassandra instance for some portion of Kask tests run via the pipeline. The Deployment Pipeline has a step that can be used for integration tests (using helm test) that step deploys kubernetes resources defined in a helm chart (or in the templates/test directory of the chart) and runs helm test against those resources.

There are several ways to achieve the desired outcome of deploying an ephemeral Cassandra instance during the "test deployment" phase of the pipeline -- either having the Cassandra instance be a part of the base chart, or a resource defined for test explicitly. This will help inform best practice as more services have similar needs.

Event Timeline

thcipriani triaged this task as Normal priority.May 21 2019, 4:47 PM
thcipriani created this task.

It seems that the cassandra subchart already exists for cask (via https://gerrit.wikimedia.org/r/#/c/operations/deployment-charts/+/509102/ ); however, to use that in the pipeline we would have to override some values at deployment time.

It seems that the cassandra subchart already exists for cask (via https://gerrit.wikimedia.org/r/#/c/operations/deployment-charts/+/509102/ );

This was created with minikube/local development in mind, not really the pipeline. The image is from dockerhub and the helm chart from the incubator helm charts repo. Thus it won't even work in our infrastructure (and we haven't really vetted them much). Put differently, it was a solution to scratch a particular itch.

That being said, the subchart pattern (also used for minikube/local_dev by eventgate) is probably a valid way to solve the problems mentioned in the task.

however, to use that in the pipeline we would have to override some values at deployment time.

Yes. That one is going to be overall required even in other cases. e.g. the staging part of the pipeline is unable (on purpose) to reach to production and internet access (e.g. for citoid/cxserver) needs to go via the proxies which are configurable via helm values

Eevans renamed this task from Kask integration testing with Cassandra via the Deployment Pipeline to Kask functional testing with Cassandra via the Deployment Pipeline.May 28 2019, 1:15 PM
akosiaris moved this task from Backlog to Next up on the serviceops board.Jun 21 2019, 9:00 AM
WDoranWMF moved this task from mop to remove cpt on the Core Platform Team board.Fri, Jul 26, 6:29 PM
WDoranWMF removed a project: Core Platform Team.