Skip to content

Commit

Permalink
Merge stable into master for release 1.4.0 (#410)
Browse files Browse the repository at this point in the history
* Support TLS traffic with cert-manager. (#357)

* Fix frontend ingress issue when no hosts are provided. (#381)

* Template frontend ingress annotations using `CERTIFICATE_MANAGER_ENABLED` (#383)

* Create tf-serving configuration files using an initContainer. (#382)

* Fix whitespace issue in tasks/Makefile.kubectl (#386)

* Bump openvpn to 4.2.3 (#385)

* Upgrade certificate manager to version 1.0.3 (#384)

* Add screenshot of successfully created cluster to docs. (#388)

* Set up an AlertManager with slack receiver support (#317)

* Install procps to give access to sysctl. (#390)

* Migrate CI/CD from TravisCI to GitHub Actions (#394)

* Change the redis helm chart repo to bitnami (#393)

* Upgrade tf-serving chart to 0.3.0 for application version 0.4.0 (#392)

* Move the frontend HPA definition into the helm chart. (#395)

* Move the tf-serving HPA into the helm chart. (#396)

* Move redis-consumer HPA into the helm chart. (#397)

* Remove deprecated and unused charts (#398)

* Migrate stable helm chart repo to archived URL. (#399)

* Destroy the secret and remove the key from the DNS solver SA in a new task: `gke/destroy/certificate-manager-secret` (fixes #391).

* Use GCP_SERVICE_ACCOUNT for DNS resolution (#401)

* Clean up docs and test them with new GitHub Action workflow (#402)

* Add code-formatted filename to list of files to change (#403)

* Update ELK stack helmfiles (#380)

* Move the prometheus-redis-exporter script to a chart using incubator/raw. (#405)

* Use `kubectl del pvc` instead of deleting all pds with the cluster name. (#406)

* Update helmfile defaults for faster helm deployments. (#404)

* Skip gke/destroy/node-pools during cluster teardown. (#407)

* Update docs to reflect the pending 1.4.0 release. (#408)

* Bump redis-consumer version to 0.8.3 (#409)

* Run integration tests on all PRs to master OR if they have the commit message. (#411)

* Remove helm defaults for ELK helmfiles (#413)

Co-authored-by: Morgan Schwartz <msschwartz21@gmail.com>
  • Loading branch information
willgraf and msschwartz21 committed Dec 16, 2020
1 parent 87c414d commit 13f5edb
Show file tree
Hide file tree
Showing 88 changed files with 1,545 additions and 1,736 deletions.
48 changes: 48 additions & 0 deletions .github/workflows/docker-image.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Build & Push Docker Image

on:
release:
types: [published]

jobs:

docker:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2

- name: Set up QEMU
uses: docker/setup-qemu-action@v1

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1

- name: Cache Docker layers
uses: actions/cache@v2
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Build and push Image
id: docker_build
uses: docker/build-push-action@v2
with:
context: .
file: ./Dockerfile
push: true
tags: |
${{ github.repository }}:latest
${{ github.repository }}:${{ github.event.release.tag_name }}
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}
144 changes: 144 additions & 0 deletions .github/workflows/integration-tests.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
name: integration-tests

on:
pull_request:
branches: master
push: {}

jobs:
integration-tests:

runs-on: ubuntu-latest

if: |
github.event_name == 'pull_request' ||
(
github.event_name == 'push' &&
contains(github.event.head_commit.message, '[build-integration-tests]')
)
strategy:
matrix:
CLOUD_PROVIDER:
- gke
# - aws

steps:
- uses: actions/checkout@v2

- name: Set up QEMU
uses: docker/setup-qemu-action@v1

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1

- uses: google-github-actions/setup-gcloud@master
with:
version: '290.0.1'
project_id: ${{ secrets.CLOUDSDK_CORE_PROJECT }}
service_account_key: ${{ secrets.GCP_SA_KEY }}
service_account_email: ${{ secrets.GCP_SERVICE_ACCOUNT }}
export_default_credentials: true

- name: Cache Docker layers
uses: actions/cache@v2
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Build and Run Integration Tests
env:
GCP_SERVICE_ACCOUNT: ${{ secrets.GCP_SERVICE_ACCOUNT }}
CLOUDSDK_CORE_PROJECT: ${{ secrets.CLOUDSDK_CORE_PROJECT }}
CLOUDSDK_BUCKET: ${{ secrets.CLOUDSDK_BUCKET }}
CLOUDSDK_COMPUTE_REGION: us-west1
REGION_ZONES_WITH_GPUS: us-west1-a,us-west1-b
IMAGE: ${{ github.repository }}:${{ github.sha }}
GCP_SA_KEY_PATH: /tmp/keys/gcloud_key.json
run: |
docker buildx build --load --tag ${{ env.IMAGE }} .
docker run -d -it \
--volume $(readlink -f ${{ env.GOOGLE_APPLICATION_CREDENTIALS }}):${{ env.GCP_SA_KEY_PATH }}:ro \
--env CLOUD_PROVIDER=${{ matrix.CLOUD_PROVIDER }} \
--env GCP_SERVICE_ACCOUNT=${{ env.GCP_SERVICE_ACCOUNT }} \
--env CLOUDSDK_CORE_PROJECT=${{ env.CLOUDSDK_CORE_PROJECT }} \
--env CLOUDSDK_BUCKET=${{ env.CLOUDSDK_BUCKET }} \
--env CLOUDSDK_COMPUTE_REGION=${{ env.CLOUDSDK_COMPUTE_REGION }} \
--env REGION_ZONES_WITH_GPUS=${{ env.REGION_ZONES_WITH_GPUS }} \
--env GOOGLE_APPLICATION_CREDENTIALS=${{ env.GCP_SA_KEY_PATH }} \
--entrypoint=/bin/bash \
--name kiosk \
${{ env.IMAGE }}
docker exec kiosk make test/integration/${{ matrix.CLOUD_PROVIDER }}/deploy
docker kill kiosk && docker rm kiosk
elk-integration-tests:

runs-on: ubuntu-latest

if: |
github.event_name == 'pull_request' ||
(
github.event_name == 'push' &&
contains(github.event.head_commit.message, '[build-integration-tests]') &&
contains(github.event.head_commit.message, '[test-elk]')
)
strategy:
matrix:
CLOUD_PROVIDER:
- gke
# - aws

steps:
- uses: actions/checkout@v2

- name: Set up QEMU
uses: docker/setup-qemu-action@v1

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1

- uses: google-github-actions/setup-gcloud@master
with:
version: '290.0.1'
project_id: ${{ secrets.CLOUDSDK_CORE_PROJECT }}
service_account_key: ${{ secrets.GCP_SA_KEY }}
service_account_email: ${{ secrets.GCP_SERVICE_ACCOUNT }}
export_default_credentials: true

- name: Cache Docker layers
uses: actions/cache@v2
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Build and Run ELK Integration Tests
env:
GCP_SERVICE_ACCOUNT: ${{ secrets.GCP_SERVICE_ACCOUNT }}
CLOUDSDK_CORE_PROJECT: ${{ secrets.CLOUDSDK_CORE_PROJECT }}
CLOUDSDK_BUCKET: ${{ secrets.CLOUDSDK_BUCKET }}
CLOUDSDK_COMPUTE_REGION: us-west1
REGION_ZONES_WITH_GPUS: us-west1-a,us-west1-b
IMAGE: ${{ github.repository }}:${{ github.sha }}
GCP_SA_KEY_PATH: /tmp/keys/gcloud_key.json
run: |
docker buildx build --load --tag ${{ env.IMAGE }} .
docker run -d -it \
--volume $(readlink -f ${{ env.GOOGLE_APPLICATION_CREDENTIALS }}):${{ env.GCP_SA_KEY_PATH }}:ro \
--env CLOUD_PROVIDER=${{ matrix.CLOUD_PROVIDER }} \
--env GCP_SERVICE_ACCOUNT=${{ env.GCP_SERVICE_ACCOUNT }} \
--env CLOUDSDK_CORE_PROJECT=${{ env.CLOUDSDK_CORE_PROJECT }} \
--env CLOUDSDK_BUCKET=${{ env.CLOUDSDK_BUCKET }} \
--env CLOUDSDK_COMPUTE_REGION=${{ env.CLOUDSDK_COMPUTE_REGION }} \
--env REGION_ZONES_WITH_GPUS=${{ env.REGION_ZONES_WITH_GPUS }} \
--env GOOGLE_APPLICATION_CREDENTIALS=${{ env.GCP_SA_KEY_PATH }} \
--entrypoint=/bin/bash \
--name kiosk \
${{ env.IMAGE }}
docker exec kiosk make test/integration/${{ matrix.CLOUD_PROVIDER }}/deploy/elk
docker kill kiosk && docker rm kiosk
30 changes: 30 additions & 0 deletions .github/workflows/test-docs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: Test Docs

on:
- pull_request

jobs:

docs:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2

- name: Set up Python 3.7
uses: actions/setup-python@v2
with:
python-version: 3.7

- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install -r docs/rtd-requirements.txt
sudo apt-get install pandoc -y
- name: Test sphinx-build
run: sphinx-build -W -nT -b dummy ./docs/source build/html
39 changes: 39 additions & 0 deletions .github/workflows/unit-tests.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: build

on: [push, pull_request]

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2

- name: Set up QEMU
uses: docker/setup-qemu-action@v1

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1

- name: Cache Docker layers
uses: actions/cache@v2
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Build and Run Unit Tests
env:
CLOUD_PROVIDER: gke
IMAGE: ${{ github.repository }}:${{ github.sha }}
run: |
docker buildx build --load --tag ${{ env.IMAGE }} .
docker run -d -it \
--env CLOUD_PROVIDER=${{ env.CLOUD_PROVIDER }} \
--entrypoint=/bin/bash \
--name kiosk \
${{ env.IMAGE }}
docker exec kiosk make test/unit
docker kill kiosk && docker rm kiosk
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,10 @@
build-harness/

# Documentation
__pycache__/
build/
docs/build/
docs/source/_sidebar.rst.inc

.vscode/*
# IDE Configuration
.vscode/
88 changes: 0 additions & 88 deletions .travis.yml

This file was deleted.

Binary file removed .travis/gcloud_key_base64.enc
Binary file not shown.
2 changes: 2 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ ENV CONSUMER_MACHINE_TYPE="n1-standard-2"
# Deployment config
ENV CLOUD_PROVIDER=""
ENV ELK_DEPLOYMENT_TOGGLE=""
ENV CERTIFICATE_MANAGER_ENABLED=""
ENV CERTIFICATE_MANAGER_CLUSTER_ISSUER="letsencrypt-staging"

# Filesystem entry for tfstate
RUN s3 fstab '${KOPS_STATE_STORE}' '/' '/s3'
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# ![DeepCell Kiosk Banner](https://raw.githubusercontent.com/vanvalenlab/kiosk-console/master/docs/images/DeepCell_Kiosk_Banner.png)

[![Build Status](https://travis-ci.com/vanvalenlab/kiosk-console.svg?branch=master)](https://travis-ci.com/vanvalenlab/kiosk-console)
[![Build Status](https://github.com/vanvalenlab/kiosk-console/workflows/build/badge.svg)](https://github.com/vanvalenlab/kiosk-console/actions)
[![Read the Docs](https://readthedocs.org/projects/deepcell-kiosk/badge/?version=master)](https://deepcell-kiosk.readthedocs.io/en/master/?badge=master)
[![Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/vanvalenlab/kiosk-console/blob/master/LICENSE)

Expand Down Expand Up @@ -49,7 +49,7 @@ Tracked Image
Start a terminal shell and install the DeepCell Kiosk wrapper script:

```bash
docker run -e DOCKER_TAG=1.3.0 vanvalenlab/kiosk-console:1.3.0 | sudo bash
docker run -e DOCKER_TAG=1.4.0 vanvalenlab/kiosk-console:1.4.0 | sudo bash
```

To start the kiosk, just run `kiosk-console` from the terminal shell.
Expand Down
Loading

0 comments on commit 13f5edb

Please sign in to comment.