Wikimedia Release Engineering Team/Local Dev Sync/2019-06-13

= 2019-06-13 =

These notes intermingle some items from previous meetings; this is the first we've archived them.

CLI / web interface for local dev
Create an interface for the local-charts ecosystem

From the task:

Currently users interact with local-charts through a Makefile, which is a temporary and incomplete solution. We should create an interface that allows users to quickly and easily define what they want and deploy to their environment.

Some things to consider:


 * How to deploy multiple versions
 * How to change/update configuration
 * How to access the deployments and view their status
 * How to deploy to a remote environment (?)
 * How to mount files
 * How to run tests

Discussion

 * Mukunda: Python CLI

GTK webview? pywebview? convenient so you don't have to worry about ports, etc.

https://github.com/r0x0r/pywebview - platform specific executable can be compiled

go app? so you don't have to worry about other platforms is there a CLI framework for go? ...a few were mentioned https://github.com/spf13/cobra built in http library

Go, PHP, or Python to be used.

example skaffold.yaml
 * Skaffold?
 * https://github.com/GoogleContainerTools/skaffold

apiVersion: skaffold/v1beta7 kind: Config #build: # artifacts: # - image: mediawiki #   context: ../core #   push: false #   sync: #     '**/*/': .    #  - image: restbase #   context: ../restbase #   push: false # - image: parsoid #   context: ../parsoid #   push: false deploy: helm: releases: - name: "my-release" chartPath:. skipBuildDependencies: true valuesFiles: - values.yaml


 * Testing rubric
 * 2 mediawiki versions?
 * 2 mediawiki configurations?
 * Developers shouldn't have to work on this tool to add their own extensions/services?

Skaffold Alternatives:


 * https://draft.sh/
 * https://gitkube.sh/

Changes pending review

 * https://gerrit.wikimedia.org/r/c/releng/local-charts/+/514166
 * TODO: Mukunda to check

Testing / CI / linting

 * We'll pick this up once charts have moved to their own repo.
 * helm lint
 * tox.ini
 * add jjb config for picking up local-charts https://phabricator.wikimedia.org/source/integration-config/
 * https://phabricator.wikimedia.org/source/integration-config/browse/master/jjb/job-templates.yaml