...
- kubeadm-bootstrap and kubeadm-terraform
- Roll versions forward
- ndslabs
- gui/swagger.yaml: NDS Labs swagger API spec version number
- apiserver/build.sh: NDS Labs API Server Docker image version tag
- apiserver/cmd/clientVersion.go: NDS Labs CLI version number / build date
- gui/Dockerfile: NDS Labs UI / webserver Docker image version tag
- gui/package.json: NDS Labs UI / webserver NPM package version number
- gui/ConfigModule.js: NDS Labs UI Angular app build version number
- workbench-helm-chart
- values.yaml: NDS Labs API Server + UI Docker image version tags
- kubeadm-bootstrap
- install-kubeadm.bash: Kubernetes / Docker version numbers
- init-master.bash: Helm version numbers
- kubeadm-terraform
- kubeadm-bootstrap git release/tag: assets/bootstrap.sh
- ndslabs
- PR from release branch to master
- Thorough testing, then more testing, then merge to master
- Tag master with new version number (freshly tested and stable)
- Any new merges and tags will trigger new Docker images to be built
- Wait for newly-tagged resources to automatically finish building and pushing Docker images
- Run Fix any errors and run a quick smoke test with newly-tagged resources
- Fix any last-minute errors directly on master and recreate release
- Backport any missing changes from master release-x.x.x into develop
- This should include, at the very least, rolling a commit from the release branch that rolls forward to new version numbers
- git checkout develop && git pull origin master && git push origin develop? Why does this not work with a PR...
Legacy Process
- Regenerate Swagger API / Client from spec (this can be skipped if the spec has not changed)
apiserver/???: generated Go swagger server- gui/js/app/shared/api.js: generated AngularJS swagger client
Roll forward version numbers in ndslabs-deploy-tools and ensure that all values match the version number you are about to create:roles/cluster-backup/defaults/main.ymlroles/ndslabs-api-gui/defaults/main.ymlroles/k8s-nagios-nrpe/defaults/main.ymlroles/k8-glfs-server-pods/defaults/main.ymlroles/k8-glfs-client-set/defaults/main.yml
- Create a new tag from master in GitHub for the new version (i.e. 1.0.0, 1.0.1, etc):
- Repositories should be tagged in the following order when possible:
- ndslabs (API server / REST API / CLI / UI)
ndslabs-specs(service specs - starting with 1.2.0, this can be versioned separately from Workbench, but it should be noted upon a new release which version of Workbench the specs release will target)- workbench-helm-chart (Helm deployment to Kubernetes)
gluster(global file system - deprecated, no longer used)cluster-backup(cron job for backing up glfs / etcd / kubectl dump - starting with 1.2.0, this can be versioned separately from Workbench)ndslabs-nrpe(nagios monitoring - these can now be versioned separately from the rest of Labs Workbench)ndslabs-startup(dev-cluster startup - deprecated, no longer used)ndslabs-deploy-tools(ansible scripts - deprecated, no longer used)- kubeadm-bootstrap (kubernetes deployment scripts - versioned separately, but it should be noted upon a new release which version of Workbench the release will target)
- kubeadm-terraform (terraform deployment procedure - versioned separately, but it should be noted upon a new release which version of Workbench the release will target)
ndslabs-devenvs(developer environments - these can now be versioned separately from the rest of Labs Workbench)- NOTE: ndslabs-devenvs contains a large number of cascading images that will quickly fill up the build queue, that's why we do it last
- New versioned Docker images are automatically built from the upstream tags created on GitHub.
- All new tags that are created will trigger a build
- For example: https://hub.docker.com/r/ndslabs/apiserver/builds/
- Repositories should be tagged in the following order when possible:
- Roll forward version numbers in source and ensure that all values match on upstream master on GitHub:
- Swagger API
apis/swagger-spec/ndslabs.yaml: NDS Labs swagger API spec version number(deprecated - use the file below instead)- gui/swagger.yaml: NDS Labs swagger API spec version number
- API Server:
- apiserver/build.sh: NDS Labs API Server Docker image version tag
apiserver/version.go: NDS Labs API / Server version numberfile no longer exists
- CLI Client:
apictl/build.sh: NDS Labs CLI version numberfile no longer existsapictl/cmd/clientVersion.go: NDS Labs CLI / API version numberfile no longer exists
- UI Client:
- gui/Dockerfile: NDS Labs UI / webserver Docker image version tag
- gui/package.json: NDS Labs UI / webserver NPM package version number
gui/bower.json: NDS Labs UI Angular app Bower package version numberfile no longer exists- gui/ConfigModule.js: NDS Labs UI Angular app build version number
- Swagger API
...