Skip to content
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

Draft
wants to merge 4 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 53 additions & 16 deletions content/en/docs/setup/install/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,35 +6,72 @@ 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.

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


* [Distributed installation](#distributed-installation) on Kubernetes

Halyard deploys each of Spinnaker's
separately. __This is highly recommended for use in production.__

Choose a reason for hiding this comment

The 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

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe to keep it simpler it should say
Supports some Cloud providers

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.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if is using SQL, is Redis still needed for Prod?

Copy link
Member Author

Choose a reason for hiding this comment

The 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/)

Choose a reason for hiding this comment

The 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/karlskewes/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.
- [OpsMx Operator](https://operatorhub.io/operator/spinnaker-operator) is an open source Helm chart for
installing Spinnaker.
- [OpsMx Helm Chart](https://github.com/kubernetes/charts/tree/master/stable/spinnaker) **As of Nov 13, 2020,

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

how about adding a list of references for helm charts

charts in this repo are no longer updated. **

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/)

Choose a reason for hiding this comment

The 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

Choose a reason for hiding this comment

The 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)

Expand Down
4 changes: 2 additions & 2 deletions content/en/docs/setup/install/deploy.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ aliases:
weight: 50
---

Now that we've enabled one or more [Cloud Providers](/docs/setup/install/providers/), picked a [Deployment Environment](/docs/setup/install/environment/), and configured
[Persistent Storage](/docs/setup/install/storage/), we're ready to pick a version of Spinnaker, deploy it, and connect to it.
Now that we've setup the basic [installation](/docs/setup/install/), we're ready to pick a version of Spinnaker,
deploy it, and connect to it.

## Pick a version

Expand Down
42 changes: 42 additions & 0 deletions content/en/docs/setup/install/install-config.md
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.
Original file line number Diff line number Diff line change
@@ -1,19 +1,14 @@
---

title: "Choose your Environment"
description: Based on your use case, choose how you want to install Spinnaker.
title: "Run Spinnaker Locally"
description: Run spinnaker locally for testing or small installations
weight: 30
---

In this step, you tell Halyard in what type of environment to install Spinnaker.

The recommended path is a distributed installation onto a Kubernetes cluster,
but all of these methods are supported:

* [Distributed installation](#distributed-installation) on Kubernetes

Halyard deploys each of Spinnaker's [microservices](/docs/reference/architecture)
separately. __This is highly recommended for use in production.__
but these may work for basic setups and local testing. Note that not all of these
work all the time and may break as they are not as well tested as kubernetes
based deployments.

* [Local installations](#local-debian) of Debian packages

Expand All @@ -30,32 +25,12 @@ but all of these methods are supported:

## Distributed installation

Distributed installations are for development orgs with large resource
footprints, and for those who can't afford downtime during Spinnaker updates.

Spinnaker is deployed to a remote cloud, with each
[microservice](/docs/reference/architecture/) deployed independently. Halyard
creates a smaller, headless Spinnaker to update your Spinnaker and its
microservices, ensuring zero-downtime updates.

1. Run the following command, using the `$ACCOUNT` name you created when you
configured the provider:

```
hal config deploy edit --type distributed --account-name $ACCOUNT
```

1. If you haven't already done so, configure a provider for the environment in
which you will install Spinnaker.

This must be on a Kubernetes cluster. It does not have to be the same
provider as the one you're using to deploy your applications.

* [Kubernetes](/docs/setup/install/providers/kubernetes-v2)

We recommend at least 4 cores and 16GB of RAM available in the cluster where
you will deploy Spinnaker.

1. Make sure [kubectl is installed](https://kubernetes.io/docs/tasks/tools/install-kubectl/)
on the machine running Halyard.

Expand Down
1 change: 0 additions & 1 deletion content/en/docs/setup/install/providers/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ Add as many of the following providers as you need. When you're done, return to
* [Kubernetes](/docs/setup/install/providers/kubernetes-v2/)
* [Azure](/docs/setup/install/providers/azure/)
* [Cloud Foundry](/docs/setup/install/providers/cf/)
* [DC/OS](/docs/setup/install/providers/dcos/)
* [Docker Registry](/docs/setup/install/providers/docker-registry/)
* [Google App Engine](/docs/setup/install/providers/appengine/)
* [Google Compute Engine](/docs/setup/install/providers/gce/)
Expand Down
100 changes: 0 additions & 100 deletions content/en/docs/setup/install/providers/dcos.md

This file was deleted.

Loading