-
Notifications
You must be signed in to change notification settings - Fork 136
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
docs(install): Work on a redo of the installation docs #362
base: master
Are you sure you want to change the base?
Changes from all commits
79cfcc3
e4e2da1
9135ab5
3267882
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||
---|---|---|---|---|---|---|---|---|
|
@@ -6,35 +6,69 @@ description: > | |||||||
Describes how to install and set up Spinnaker so that it can be configured for use in production. | ||||||||
--- | ||||||||
|
||||||||
This section describes how to install and set up Spinnaker so that it can be configured for | ||||||||
use in production. If you just want to evaluate Spinnaker without much work, one of the options | ||||||||
in [Quickstart](/docs/setup/quickstart/) might be a better choice. | ||||||||
This section describes how to install and set up Spinnaker so that it can be use in production. If | ||||||||
you just want to evaluate Spinnaker without much work, one of the options in | ||||||||
[Quickstart](/docs/setup/quickstart/) or a [Local installation](/docs/setup/install/local/) might be | ||||||||
a better choice. It's recommended that you review the [spinnaker architecture](/docs/reference/architecture) | ||||||||
to understand how spinnaker operates before installation. | ||||||||
|
||||||||
* [Distributed installation](#distributed-installation) on Kubernetes | ||||||||
|
||||||||
Halyard deploys each of Spinnaker's | ||||||||
separately. __This is highly recommended for use in production.__ | ||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. suggestion Highly recommended for production |
||||||||
|
||||||||
|
||||||||
## What you'll need | ||||||||
|
||||||||
* A machine on which to install Halyard | ||||||||
* A [SQL Databaase](/docs/setup/install/storage/) | ||||||||
* MariaDB/MySQL are supported. This includes various cloud provided databases like AWS RDS & Google's | ||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. maybe to keep it simpler it should say I can help by adding a new page that details the cloud providers AWS, Azure, GCP details |
||||||||
* Postgresql is an option but not documented at this time (PRs welcome) | ||||||||
|
||||||||
This can be a local machine or VM (Ubuntu 18.04 or higher, | ||||||||
Debian 10 or higher), or it can be a Docker container. | ||||||||
Make sure it has at least 12GB of memory. | ||||||||
* An [external Redis server](/docs/setup/install/redis/) | ||||||||
* The default install will include a local redis. IT IS NOT recommended to use this but to externalize your redis to a more persistent solution. Redis data does need to be persisted in production environments. | ||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. if is using SQL, is Redis still needed for Prod? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes - it's used for several things still including session handling. |
||||||||
|
||||||||
* A Kubernetes cluster on which to install Spinnaker itself | ||||||||
* A [Kubernetes cluster](/docs/setup/install/providers/kubernetes-v2/) on which to install Spinnaker | ||||||||
* It's recommended to have at least 8 cores and 32GB of RAM available in the cluster. | ||||||||
* It's recommended to use SSDs or high IO disks (GP3) due to spinanker using kubectl for operations | ||||||||
* You can deploy to k3s/microk8s or similar for on-prem but keep in mind avaialble capacity | ||||||||
|
||||||||
We recommend at least 4 cores and 16GB of RAM available in the cluster. | ||||||||
* Supoprting infrastructure not all of which is documented here, but should be considered | ||||||||
* DNS | ||||||||
* Load balancers (ALB/Traefik/etc.) | ||||||||
* SSL and certificates | ||||||||
* Backups | ||||||||
* ETC | ||||||||
|
||||||||
You can also install [on a single local machine](https://www.spinnaker.io/setup/install/environment/#local-debian), or [for Spinnaker development](https://www.spinnaker.io/setup/install/environment/#local-git), making sure you have the 4 cores and 16GB in each case. | ||||||||
> Other installation targets may work but are not supported. For large scale production Kubernetes is recommended: | ||||||||
> * [Local development](https://www.spinnaker.io/setup/install/environment/#local-git) | ||||||||
> * [Debian local](https://www.spinnaker.io/setup/install/environment/#local-debian) | ||||||||
> * [Vagrant example (uses local debian)](hhttps://github.com/ashleykleynhans/vagrant-jenkins-spinnaker/) | ||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. very useful resource. thanks |
||||||||
|
||||||||
## The process | ||||||||
## Installation tools | ||||||||
There are several solutions around deploying spinnaker to kubernetes. Please note that not all these solutions are officially supported at this time though several are well maintained by the community. | ||||||||
- [halyard](/docs/setup/install/halyard) Is a command line tool that has a CLI and API component. Halyard creates a small, | ||||||||
headless Spinnaker to update Spinnaker and its microservices, ensuring zero-downtime updates. This is the default | ||||||||
installation method. This takes care of creating Kubernetes objects from halyard configuration files. The community | ||||||||
would like to replace this tool, but it's still the default installation method that works for most users. | ||||||||
- [Armory Spinnaker Operator for Kubernetes](https://github.com/armory/spinnaker-operator) is an open source Kubernetes | ||||||||
Operator for deploying and managing Spinnaker. You can install a basic version of Spinnaker or use Kustomize files for | ||||||||
advanced configuration. There's a [configuration reference](https://docs.armory.io/continuous-deployment/installation/armory-operator/op-manifest-reference/) | ||||||||
that documents a large part of the available configuration of spinnaker. | ||||||||
- [Kustomize native install](https://github.com/spinnaker/spinnaker-kustomize/) is a minimal install that provides | ||||||||
a native kubernetes deployment experience for the spinnaker microservices. This provides a more native k8s deployment | ||||||||
without the need for helm or an operator or halyard CLI tooling. Caution: This uses things LIKE a mariadb driver which | ||||||||
is not currently available in the project by default. | ||||||||
Comment on lines
+59
to
+60
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
The Kustomize installation seems to work fine with the OSS Spinnaker container images in my limited testing: creating apps, pipelines and running pipelines, etc. |
||||||||
|
||||||||
Installing a complete Spinnaker involves these steps: | ||||||||
## The process | ||||||||
Installing a complete Spinnaker involves these steps (documented using Halyard): | ||||||||
1. [Install Halyard](/docs/setup/install/halyard/) | ||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this looks like the guideline when installing with Halyard |
||||||||
1. [Choose a cloud provider](/docs/setup/install/providers/) | ||||||||
1. [Choose an environment](/docs/setup/install/environment/) | ||||||||
1. [Choose a storage service](/docs/setup/install/storage/) | ||||||||
1. [Add a kubernetes Provider](/docs/setup/install/providers/kubernetes-v2/) | ||||||||
1. [Basic Settings](/docs/setup/install/install-config/) | ||||||||
1. [Configure storage(SQL & Redis)](/docs/setup/install/storage/) | ||||||||
1. [Deploy Spinnaker](/docs/setup/install/deploy/) | ||||||||
1. [Back up your config](/docs/setup/install/backups/) | ||||||||
1. [Configure everything else](/docs/setup/other_config/) (which includes a lot of | ||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. i can add some details later on here. Everything else sounds ambiguous |
||||||||
stuff you need before you can use Spinnaker in production) | ||||||||
stuff you need before you can use Spinnaker in production LIKE authentication and authorization) | ||||||||
1. [Productionize Spinnaker](/docs/setup/productionize/) (which mainly helps you | ||||||||
configure Spinnaker to scale for production) | ||||||||
|
||||||||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
--- | ||
|
||
title: "Run Spinnaker Locally" | ||
description: Run spinnaker locally for testing or small installations | ||
weight: 30 | ||
--- | ||
|
||
### Minimal Configuration for kubernetes | ||
|
||
1. Run the following command, using the `$ACCOUNT` name you created when you | ||
configured Kubernetes: | ||
|
||
``` | ||
hal config deploy edit --type distributed --account-name $ACCOUNT | ||
``` | ||
1. Make sure [kubectl is installed](https://kubernetes.io/docs/tasks/tools/install-kubectl/) | ||
on the machine running Halyard. | ||
|
||
After you install it, you might need to update the `$PATH` to ensure Halyard | ||
can find it, and if Halyard was already running you might need to restart it | ||
to pick up the new `$PATH`: | ||
|
||
`hal shutdown` | ||
|
||
Then invoke any `hal` command to restart the Halyard daemon. | ||
|
||
1. Configure [Kubernetes liveness probes](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/) | ||
for your Spinnaker services, setting the `initialDelaySeconds` to the upper bound of your longest service startup time: | ||
|
||
``` | ||
hal config deploy edit --liveness-probe-enabled true --liveness-probe-initial-delay-seconds $LONGEST_SERVICE_STARTUP_TIME | ||
``` | ||
|
||
## Further reading | ||
|
||
* [Spinnaker Architecture](/docs/reference/architecture/) for a better understanding | ||
of the Distributed installation. | ||
|
||
## Next steps | ||
|
||
Now that your deployment environment is set up, you need to provide Spinnaker | ||
with a [Persistent Storage](/docs/setup/install/storage/) source. |
This file was deleted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would simplify it more
Before installing, review Spinnaker's architecture