Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
61dbe360
Commit
61dbe360
authored
Jul 16, 2017
by
Achilleas Pipinellis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add small fixes in Canary deployments docs
parent
c8828d49
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
2 deletions
+15
-2
doc/user/project/canary_deployments.md
doc/user/project/canary_deployments.md
+15
-2
No files found.
doc/user/project/canary_deployments.md
View file @
61dbe360
...
...
@@ -23,21 +23,33 @@ deployments right inside the [Deploy Board], without the need to leave GitLab.
## Use cases
Canary deployments can be used you want to ship features to only a portion of
Canary deployments can be used
when
you want to ship features to only a portion of
your pods fleet and watch their behavior as a percentage of your user base
visits the temporarily deployed feature. If all works well, you can deploy the
feature to production knowing that it won't cause any problems.
Canary deployments are also especially useful for backend refactors, performance
improvements, or other changes where the user interface doesn't change, but you
want to make sure the performance stays the same, or improves. Developers need
to be careful when using canaries with user-facing changes, because by default,
requests from the same user will be randomly distributed between canary and
non-canary pods, which could result in confusion or even errors. If needed, you
may want to consider
[
setting `service.spec.sessionAffinity` to `ClientIP` in
your Kubernetes service definitions
][
kube-net
]
, but that is beyond the scope of
this document.
## Enabling Canary Deployments
Canary deployments require that you properly configure Deploy Boards:
1.
Follow the steps to
[
enable Deploy Boards
](
deploy_boards.md#enabling-deploy-boards
)
.
1.
To track canary deployments you need to label your Kubernetes deployments and
pods with
`track: canary`
. To get started quickly, you can use the [Auto
d
eploy]
pods with
`track: canary`
. To get started quickly, you can use the [Auto
D
eploy]
template for canary deployments that GitLab provides.
Depending on the deploy, the label should be either
`stable`
or
`canary`
.
Usually,
`stable`
and blank or missing label means the same thing, and
`canary`
or any other track means canary/temporary.
This allows GitLab to discover whether deployment is stable or canary (temporary).
Once all of the above are set up and the pipeline has run at least once,
...
...
@@ -56,3 +68,4 @@ can easily notice them.
[
kube-canary
]:
https://kubernetes.io/docs/concepts/cluster-administration/manage-deployment/#canary-deployments
[
deploy board
]:
deploy_boards.md
[
cd-blog
]:
https://about.gitlab.com/2016/08/05/continuous-integration-delivery-and-deployment-with-gitlab/
[
kube-net
]:
https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment