Refactor Autodeploy docs
- Add a how it works section where Herokuish is mentioned - Make the notes more apparent - Merge the postgres variables section with its parent
This commit is contained in:
parent
1ea64acffd
commit
812a4cf34a
|
@ -1,8 +1,13 @@
|
||||||
# Auto deploy
|
# Auto deploy
|
||||||
|
|
||||||
> [Introduced][mr-8135] in GitLab 8.15.
|
>**Notes:**
|
||||||
> Auto deploy is an experimental feature and is not recommended for Production use at this time.
|
- [Introduced][mr-8135] in GitLab 8.15.
|
||||||
> As of GitLab 9.1, access to the container registry is only available while the Pipeline is running. Restarting a pod, scaling a service, or other actions which require on-going access will fail. On-going secure access is planned for a subsequent release.
|
- Auto deploy is an experimental feature and is not recommended for Production
|
||||||
|
use at this time.
|
||||||
|
- As of GitLab 9.1, access to the Container Registry is only available while
|
||||||
|
the Pipeline is running. Restarting a pod, scaling a service, or other actions
|
||||||
|
which require on-going access will fail. On-going secure access is planned for
|
||||||
|
a subsequent release.
|
||||||
|
|
||||||
Auto deploy is an easy way to configure GitLab CI for the deployment of your
|
Auto deploy is an easy way to configure GitLab CI for the deployment of your
|
||||||
application. GitLab Community maintains a list of `.gitlab-ci.yml`
|
application. GitLab Community maintains a list of `.gitlab-ci.yml`
|
||||||
|
@ -11,9 +16,19 @@ powering them. These scripts are responsible for packaging your application,
|
||||||
setting up the infrastructure and spinning up necessary services (for
|
setting up the infrastructure and spinning up necessary services (for
|
||||||
example a database).
|
example a database).
|
||||||
|
|
||||||
You can use [project services][project-services] to store credentials to
|
## How it works
|
||||||
your infrastructure provider and they will be available during the
|
|
||||||
deployment.
|
The Autodeploy templates are based on the [kubernetes-deploy][kube-deploy]
|
||||||
|
project which is used to simplify the deployment process to Kubernetes by
|
||||||
|
providing intelligent `build`, `deploy` and `destroy` commands which you can
|
||||||
|
use in your `.gitlab-ci.yml` as-is. It uses [Herokuish](https://github.com/gliderlabs/herokuish),
|
||||||
|
which uses [Heroku buildpacks](https://devcenter.heroku.com/articles/buildpacks)
|
||||||
|
to do some of the work, plus some of GitLab's own tools to package it all up. For
|
||||||
|
your convenience, a [Docker image][kube-image] is also provided.
|
||||||
|
|
||||||
|
You can use the [Kubernetes project service](../../user/project/integrations/kubernetes.md)
|
||||||
|
to store credentials to your infrastructure provider and they will be available
|
||||||
|
during the deployment.
|
||||||
|
|
||||||
## Quick start
|
## Quick start
|
||||||
|
|
||||||
|
@ -26,10 +41,17 @@ The list of supported auto deploy templates is available in the
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
|
>**Note:**
|
||||||
|
In order to understand why the following steps are required, read the
|
||||||
|
[how it works](#how-it-works) section.
|
||||||
|
|
||||||
|
To configure Autodeploy, you will need to:
|
||||||
|
|
||||||
1. Enable a deployment [project service][project-services] to store your
|
1. Enable a deployment [project service][project-services] to store your
|
||||||
credentials. For example, if you want to deploy to OpenShift you have to
|
credentials. For example, if you want to deploy to OpenShift you have to
|
||||||
enable [Kubernetes service][kubernetes-service].
|
enable [Kubernetes service][kubernetes-service].
|
||||||
1. Configure GitLab Runner to use Docker or Kubernetes executor with
|
1. Configure GitLab Runner to use the
|
||||||
|
[Docker or Kubernetes executor](https://docs.gitlab.com/runner/executors/) with
|
||||||
[privileged mode enabled][docker-in-docker].
|
[privileged mode enabled][docker-in-docker].
|
||||||
1. Navigate to the "Project" tab and click "Set up auto deploy" button.
|
1. Navigate to the "Project" tab and click "Set up auto deploy" button.
|
||||||
![Auto deploy button](img/auto_deploy_button.png)
|
![Auto deploy button](img/auto_deploy_button.png)
|
||||||
|
@ -41,15 +63,6 @@ created automatically for you.
|
||||||
|
|
||||||
## Using the Kubernetes deploy example project with Nginx
|
## Using the Kubernetes deploy example project with Nginx
|
||||||
|
|
||||||
The Autodeploy templates are based on the [kubernetes-deploy][kube-deploy]
|
|
||||||
project which is used to simplify the deployment process to Kubernetes by
|
|
||||||
providing intelligent `build`, `deploy` and `destroy` commands which you can
|
|
||||||
use in your `.gitlab-ci.yml` as-is. It uses Heroku'ish build packs to do some
|
|
||||||
of the work, plus some of GitLab's own tools to package it all up. For your
|
|
||||||
convenience, a [Docker image][kube-image] is also provided.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
A simple example would be the deployment of Nginx on Kubernetes.
|
A simple example would be the deployment of Nginx on Kubernetes.
|
||||||
Consider a `nginx-deployment.yaml` file in your project with contents:
|
Consider a `nginx-deployment.yaml` file in your project with contents:
|
||||||
|
|
||||||
|
@ -77,7 +90,8 @@ spec:
|
||||||
```
|
```
|
||||||
|
|
||||||
The important part is where we set up `app: __CI_ENVIRONMENT_SLUG__`. As you'll
|
The important part is where we set up `app: __CI_ENVIRONMENT_SLUG__`. As you'll
|
||||||
see later this is replaced by the [`CI_ENVIRONMENT_SLUG` env variable][variables].
|
see later this is replaced by the
|
||||||
|
[`CI_ENVIRONMENT_SLUG` env variable](../variables/README.md#predefined-variables-environment-variables).
|
||||||
|
|
||||||
The `.gitlab-ci.yml` would be:
|
The `.gitlab-ci.yml` would be:
|
||||||
|
|
||||||
|
@ -118,7 +132,7 @@ Next, we replace `__CI_ENVIRONMENT_SLUG__` with the content of the
|
||||||
Finally, the Nginx pod is created from the definition of the
|
Finally, the Nginx pod is created from the definition of the
|
||||||
`nginx-deployment.yaml` file.
|
`nginx-deployment.yaml` file.
|
||||||
|
|
||||||
## Private Project Support
|
## Private project support
|
||||||
|
|
||||||
> Experimental support [introduced][mr-2] in GitLab 9.1.
|
> Experimental support [introduced][mr-2] in GitLab 9.1.
|
||||||
|
|
||||||
|
@ -126,7 +140,7 @@ When a project has been marked as private, GitLab's [Container Registry][contain
|
||||||
|
|
||||||
After the pipeline completes, Kubernetes will no longer be able to access the container registry. Restarting a pod, scaling a service, or other actions which require on-going access to the registry will fail. On-going secure access is planned for a subsequent release.
|
After the pipeline completes, Kubernetes will no longer be able to access the container registry. Restarting a pod, scaling a service, or other actions which require on-going access to the registry will fail. On-going secure access is planned for a subsequent release.
|
||||||
|
|
||||||
## PostgreSQL Database Support
|
## PostgreSQL database support
|
||||||
|
|
||||||
> Experimental support [introduced][mr-8] in GitLab 9.1.
|
> Experimental support [introduced][mr-8] in GitLab 9.1.
|
||||||
|
|
||||||
|
@ -134,27 +148,13 @@ In order to support applications that require a database, [PostgreSQL][postgresq
|
||||||
|
|
||||||
PostgreSQL provisioning can be disabled by setting the variable `DISABLE_POSTGRES` to `"yes"`.
|
PostgreSQL provisioning can be disabled by setting the variable `DISABLE_POSTGRES` to `"yes"`.
|
||||||
|
|
||||||
### PostgreSQL Variables
|
The following PostgreSQL variables are supported:
|
||||||
|
|
||||||
1. `DISABLE_POSTGRES: "yes"`: disable automatic deployment of PostgreSQL
|
1. `DISABLE_POSTGRES: "yes"`: disable automatic deployment of PostgreSQL
|
||||||
1. `POSTGRES_USER: "my-user"`: use custom username for PostgreSQL
|
1. `POSTGRES_USER: "my-user"`: use custom username for PostgreSQL
|
||||||
1. `POSTGRES_PASSWORD: "password"`: use custom password for PostgreSQL
|
1. `POSTGRES_PASSWORD: "password"`: use custom password for PostgreSQL
|
||||||
1. `POSTGRES_DB: "my database"`: use custom database name for PostgreSQL
|
1. `POSTGRES_DB: "my database"`: use custom database name for PostgreSQL
|
||||||
|
|
||||||
[mr-8135]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8135
|
|
||||||
[mr-2]: https://gitlab.com/gitlab-examples/kubernetes-deploy/merge_requests/2
|
|
||||||
[mr-8]: https://gitlab.com/gitlab-examples/kubernetes-deploy/merge_requests/8
|
|
||||||
[project-settings]: https://docs.gitlab.com/ce/public_access/public_access.html
|
|
||||||
[project-services]: ../../user/project/integrations/project_services.md
|
|
||||||
[auto-deploy-templates]: https://gitlab.com/gitlab-org/gitlab-ci-yml/tree/master/autodeploy
|
|
||||||
[kubernetes-service]: ../../user/project/integrations/kubernetes.md
|
|
||||||
[docker-in-docker]: ../docker/using_docker_build.md#use-docker-in-docker-executor
|
|
||||||
[review-app]: ../review_apps/index.md
|
|
||||||
[kube-image]: https://gitlab.com/gitlab-examples/kubernetes-deploy/container_registry "Kubernetes deploy Container Registry"
|
|
||||||
[kube-deploy]: https://gitlab.com/gitlab-examples/kubernetes-deploy "Kubernetes deploy example project"
|
|
||||||
[container-registry]: https://docs.gitlab.com/ce/user/project/container_registry.html
|
|
||||||
[postgresql]: https://www.postgresql.org/
|
|
||||||
|
|
||||||
## Auto Monitoring
|
## Auto Monitoring
|
||||||
|
|
||||||
> Introduced in [GitLab 9.5](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/13438).
|
> Introduced in [GitLab 9.5](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/13438).
|
||||||
|
@ -179,3 +179,18 @@ If you have installed GitLab using a different method:
|
||||||
1. [Deploy Prometheus](../../user/project/integrations/prometheus.md#configuring-your-own-prometheus-server-within-kubernetes) into your Kubernetes cluster
|
1. [Deploy Prometheus](../../user/project/integrations/prometheus.md#configuring-your-own-prometheus-server-within-kubernetes) into your Kubernetes cluster
|
||||||
1. If you would like response metrics, ensure you are running at least version 0.9.0 of NGINX Ingress and [enable Prometheus metrics](https://github.com/kubernetes/ingress/blob/master/examples/customization/custom-vts-metrics/nginx/nginx-vts-metrics-conf.yaml).
|
1. If you would like response metrics, ensure you are running at least version 0.9.0 of NGINX Ingress and [enable Prometheus metrics](https://github.com/kubernetes/ingress/blob/master/examples/customization/custom-vts-metrics/nginx/nginx-vts-metrics-conf.yaml).
|
||||||
1. Finally, [annotate](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/) the NGINX Ingress deployment to be scraped by Prometheus using `prometheus.io/scrape: "true"` and `prometheus.io/port: "10254"`.
|
1. Finally, [annotate](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/) the NGINX Ingress deployment to be scraped by Prometheus using `prometheus.io/scrape: "true"` and `prometheus.io/port: "10254"`.
|
||||||
|
|
||||||
|
[mr-8135]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8135
|
||||||
|
[mr-2]: https://gitlab.com/gitlab-examples/kubernetes-deploy/merge_requests/2
|
||||||
|
[mr-8]: https://gitlab.com/gitlab-examples/kubernetes-deploy/merge_requests/8
|
||||||
|
[project-settings]: https://docs.gitlab.com/ce/public_access/public_access.html
|
||||||
|
[project-services]: ../../user/project/integrations/project_services.md
|
||||||
|
[auto-deploy-templates]: https://gitlab.com/gitlab-org/gitlab-ci-yml/tree/master/autodeploy
|
||||||
|
[kubernetes-service]: ../../user/project/integrations/kubernetes.md
|
||||||
|
[docker-in-docker]: ../docker/using_docker_build.md#use-docker-in-docker-executor
|
||||||
|
[review-app]: ../review_apps/index.md
|
||||||
|
[kube-image]: https://gitlab.com/gitlab-examples/kubernetes-deploy/container_registry "Kubernetes deploy Container Registry"
|
||||||
|
[kube-deploy]: https://gitlab.com/gitlab-examples/kubernetes-deploy "Kubernetes deploy example project"
|
||||||
|
[container-registry]: https://docs.gitlab.com/ce/user/project/container_registry.html
|
||||||
|
[postgresql]: https://www.postgresql.org/
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue