-
Notifications
You must be signed in to change notification settings - Fork 29
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
Deployment #4
Comments
We (@jamesgeddes and I) have decided to go with Kubernetes for deploying this project. It can be complicated to manage, but multiple dev volunteers are interested in learning and managing it, and it is considered to be a draw for new volunteers who might want to learn it to add to their CV. Importantly it is a robust and flexible platform to develop on and will almost certainly have almost if not all future GeekZone deployment needs covered. |
I am currently brushing up on my Kubernetes skills using this Pluralsight path https://app.pluralsight.com/paths/skill/using-kubernetes-as-a-developer. I plan to put together a first-pass deployment setup for this repository once I have completed the first part of this Pluralsight path. |
I have put a first pass together which is available at http://test.geek.zone/. The code for this is on the kubernetes-deployment WIP branch |
I now have a branch that can deploy master to the test Kubernetes cluster using circleci. This branch needs some tidying up, and I need to update the documentation but I feel like i'm 90% towards having this merged into master. Before we go live we will have to spend some time production-ising the k8s cluster and IAM permissions etc, but I can raise a separate issue for that. |
Resolves #4. This commit allows members and contributors to deploy their changes to a testing environment. The testing environment is currently a temporary Kubernetes cluster hosted on AWS using their Elastic Kubernetes Service (EKS). CircleCI builds docker images of the django web app and an nginx proxy and then pushes them up to the GeekZone Elastic Container Registry (ECR). CircleCI then applies the kuberenetes configuration located in the `k8s` folder to the kubernetes cluster. Docker images are tagged with the circleci workflow id which is unqiue to every run of the pipeline. The django service is run using Gunicorn and all requests to it are proxied via nginx which serves static assets. There might be a better way of doing this in the long term?
Resolves #4. This commit allows members and contributors to deploy their changes to a testing environment. The testing environment is currently a temporary Kubernetes cluster hosted on AWS using their Elastic Kubernetes Service (EKS). CircleCI builds docker images of the django web app and an nginx proxy and then pushes them up to the GeekZone Elastic Container Registry (ECR). CircleCI then applies the kuberenetes configuration located in the `k8s` folder to the kubernetes cluster. Docker images are tagged with the circleci workflow id which is unqiue to every run of the pipeline. The django service is run using Gunicorn and all requests to it are proxied via nginx which serves static assets. There might be a better way of doing this in the long term?
Resolves #4. This commit allows members and contributors to deploy their changes to a testing environment. The testing environment is currently a temporary Kubernetes cluster hosted on AWS using their Elastic Kubernetes Service (EKS). CircleCI builds docker images of the django web app and an nginx proxy and then pushes them up to the GeekZone Elastic Container Registry (ECR). CircleCI then applies the kuberenetes configuration located in the `k8s` folder to the kubernetes cluster. Docker images are tagged with the circleci workflow id which is unqiue to every run of the pipeline. The django service is run using Gunicorn and all requests to it are proxied via nginx which serves static assets. There might be a better way of doing this in the long term?
Resolves #4. This commit allows members and contributors to deploy their changes to a testing environment. The testing environment is currently a temporary Kubernetes cluster hosted on AWS using their Elastic Kubernetes Service (EKS). CircleCI builds docker images of the django web app and an nginx proxy and then pushes them up to the GeekZone Elastic Container Registry (ECR). CircleCI then applies the kuberenetes configuration located in the `k8s` folder to the kubernetes cluster. Docker images are tagged with the circleci workflow id which is unqiue to every run of the pipeline. The django service is run using Gunicorn and all requests to it are proxied via nginx which serves static assets. There might be a better way of doing this in the long term?
Requirements
We require an easy way for contributors to test and deploy their work to testing and production environments.
In the future I would like trusted members to be able to deploy pull requests to a test environment. eg
my-branch.test.geek.zone
. This can be dealt with at a later date.The text was updated successfully, but these errors were encountered: