Skip to content
This repository has been archived by the owner on Feb 22, 2022. It is now read-only.

[stable/spinnaker] Leverage Halyard for installation #6407

Merged
merged 63 commits into from
Aug 23, 2018
Merged
Show file tree
Hide file tree
Changes from 46 commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
c24e566
Use Halyard for Spinnaker installation
Jun 29, 2018
e6b3516
Bump spinnaker version in Chart.yaml
Jun 29, 2018
860d3da
Add whitespace in helpers
Jun 29, 2018
1f5b171
Remove dependency on Jenkins
Jun 29, 2018
a6f8865
Fix cleanup
Jun 29, 2018
922a6b9
Fix NOTES command for exec into hal
Jun 29, 2018
caf18ce
No longer need override_config_map helper
Jun 29, 2018
88c57ca
Simplify cleanup job
Jun 29, 2018
716576b
Remove halyard-pvc empty file
Jun 29, 2018
d5f558b
Update README
Jun 29, 2018
b43b281
Add lwander as maintainer of Spinnaker chart
Jul 2, 2018
a397e5f
Make halyard-local config simpler
Jul 2, 2018
e52f106
Remove type: Opaque from kubeconfig map
Jul 2, 2018
c1e12a9
Mount GCS key on Halyard statefulset
Jul 3, 2018
df6efb0
Fix credentials when using kubeConfig.enabled
Jul 3, 2018
e15e03d
Allow custom config to be provided at install time.
Jul 6, 2018
1cae6ff
Fix port-forward commands in README
Jul 6, 2018
cd651f7
Configure Halyard's RBAC
Jul 6, 2018
39653bb
Use redis deployed by helm
Jul 7, 2018
d15f23b
Use Deck to route /gate requests
Jul 8, 2018
961c58b
Fix RBAC in default configuration
Jul 8, 2018
7782318
Scope template helper names
eaceaser Jul 8, 2018
07924be
Helper for resource metadata
eaceaser Jul 8, 2018
9cc213f
Enable spinnakerFeatureFlags
dpujadas Jul 10, 2018
7667063
Fix deck service name
dpujadas Jul 10, 2018
9d11408
Merge pull request #11 from eaceaser/spin-v1.0.0-updates
Jul 11, 2018
407f9ee
Merge branch 'spin-v1.0.0' into spin-v1.0.0-fix-ingress
Jul 11, 2018
f7c214d
Merge pull request #13 from GekoCloud/spin-v1.0.0-fix-ingress
Jul 11, 2018
fc44dc5
Basic S3 support.
eaceaser Jul 13, 2018
248cb4c
Smallish updates.
eaceaser Jul 13, 2018
edb4204
Merge pull request #15 from eaceaser/spin-v1.0.0-updates-2
Jul 16, 2018
ae289b4
Merge branch 'spin-v1.0.0' into spin-v1.0.0-s3
Jul 16, 2018
9e13f54
Merge pull request #14 from eaceaser/spin-v1.0.0-s3
Jul 16, 2018
997019c
Enable 'jobs' feature flag by default
dpujadas Jul 17, 2018
420d626
Merge branch 'spin-v1.0.0' into spin-v1.0.0-feature-flags
Jul 17, 2018
267801f
Merge pull request #12 from GekoCloud/spin-v1.0.0-feature-flags
Jul 17, 2018
2263457
Fix typo in README
Jul 17, 2018
43eee44
Follow RBAC best practices for chart
Jul 18, 2018
c2776d5
Remove trailing space
Jul 18, 2018
3a03a5a
update helm dependencies
paulczar Jul 18, 2018
1f30a21
Merge pull request #17 from paulczar/update-minio-redis-deps
Jul 19, 2018
d681f66
support username/password for docker registry
paulczar Jul 19, 2018
0e87bb6
fix variable condition for registrysecret
paulczar Jul 19, 2018
668572f
remove rogue sleep command from debugging
paulczar Jul 19, 2018
40c50ac
add readme info about using secret for registry passwords
paulczar Jul 19, 2018
c43836b
Merge pull request #18 from paulczar/repo-creds
Jul 21, 2018
4cb44d0
fix writing the secret key to hal's config
eaceaser Jul 30, 2018
4e00d00
Merge pull request #19 from eaceaser/spin-v1.0.0-s3fix
Jul 30, 2018
20f5165
Enable artifacts by default
Jul 30, 2018
552f4ba
Allow Halyard and Spinnaker SAs to be configurable
Jul 30, 2018
8f64a11
Use custom SA in halyard SS if passed
Jul 30, 2018
56dbdc9
Default to version 1.8.4 of Spinnaker
Jul 30, 2018
2d1c4cf
Simplify ingress values, fix nodeports for svcs
Jul 31, 2018
5e35e41
Slight change; moving 'host' to be under Ingress resource
sc250024 Aug 1, 2018
bcec62e
Merge pull request #21 from sc250024/spin-v1.0.0
Aug 9, 2018
933e6a3
Merge branch 'master' into spin-v1.0.0
Aug 9, 2018
e3576ae
Updater Spinnaker to 1.8.5
Aug 9, 2018
8f4b952
Make nodeport exposure idempotent
eaceaser Aug 23, 2018
5fd48a2
Add newline
Aug 23, 2018
b61619a
Add newline
Aug 23, 2018
eda73e2
Add newline
Aug 23, 2018
f586f23
Add newline
Aug 23, 2018
7297496
Merge pull request #24 from eaceaser/spin-v1.0.0-nodeport-fix
Aug 23, 2018
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
6 changes: 4 additions & 2 deletions stable/spinnaker/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
apiVersion: v1
description: Open source, multi-cloud continuous delivery platform for releasing software changes with high velocity and confidence.
name: spinnaker
version: 0.5.0
appVersion: 1.6.0
version: 1.0.0
appVersion: 1.8.0
home: http://spinnaker.io/
sources:
- https://github.com/spinnaker
Expand All @@ -11,3 +11,5 @@ icon: https://pbs.twimg.com/profile_images/669205226994319362/O7OjwPrh_400x400.p
maintainers:
- name: viglesiasce
email: [email protected]
- name: lwander
email: [email protected]
6 changes: 6 additions & 0 deletions stable/spinnaker/OWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
approvers:
- viglesiasce
- lwander
reviewers:
- viglesiasce
- lwander
67 changes: 63 additions & 4 deletions stable/spinnaker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
[Spinnaker](http://spinnaker.io/) is an open source, multi-cloud continuous delivery platform.

## Chart Details
This chart will provision a fully functional and fully featured Spinnaker installation
that can deploy and manage applications in the cluster that it is deployed to.
This chart will provision a fully functional and fully featured Spinnaker installation
that can deploy and manage applications in the cluster that it is deployed to.

Redis and Minio are used as the stores for Spinnaker state.

Expand All @@ -15,10 +15,10 @@ For more information on Spinnaker and its capabilities, see it's [documentation]
To install the chart with the release name `my-release`:

```bash
$ helm install --name my-release stable/spinnaker
$ helm install --name my-release stable/spinnaker --timeout 600
```

Note that this chart pulls in many different Docker images so can take a while to fully install.
Note that this chart pulls in many different Docker images so can take a while to fully install.

## Configuration

Expand Down Expand Up @@ -55,5 +55,64 @@ for Spinnaker. If you want to add arbitrary clusters need to do the following:
contexts:
# Names of contexts available in the uploaded kubeconfig
- my-context
# This is the context from the list above that you would like
# to deploy Spinnaker itself to.
deploymentContext: my-context
```

## Specifying Docker Registries and Valid Images (Repositories)

Spinnaker will only give you access to Docker images that have been whitelisted, if you're using a private registry or a private repository you also need to provide credentials. Update the following values of the chart to do so:

```yaml
dockerRegistries:
- name: dockerhub
address: index.docker.io
repositories:
- library/alpine
- library/ubuntu
- library/centos
- library/nginx
# - name: gcr
# address: https://gcr.io
# username: _json_key
# password: '<INSERT YOUR SERVICE ACCOUNT JSON HERE>'
# email: [email protected]
```

You can provide passwords as a Helm value, or you can use a pre-created secret containing your registry passwords. The secret should have an item per Registry in the format: `<registry name>: <password>`. In which case you'll specify the secret to use in `dockerRegistryAccountSecret` like so:

```yaml
dockerRegistryAccountSecret: myregistry-secrets
```

## Customizing your installation

### Manual
While the default installation is ready to handle your Kubernetes deployments, there are
many different integrations that you can turn on with Spinnaker. In order to customize
Spinnaker, you can use the [Halyard](https://www.spinnaker.io/reference/halyard/) command line `hal`
to edit the configuration and apply it to what has already been deployed.

Halyard has an in-cluster daemon that stores your configuration. You can exec a shell in this pod to
make and apply your changes. The Halyard daemon is configured with a persistent volume to ensure that
your configuration data persists any node failures, reboots or upgrades.

For example:

```shell
$ helm install -n cd stable/spinnaker
$ kubectl exec -it cd-spinnaker-halyard-0 bash
spinnaker@cd-spinnaker-halyard-0:/workdir$ hal version list
```

### Automated
If you have known set of commands that you'd like to run after the base config steps or if
you'd like to override some settings before the Spinnaker deployment is applied, you can enable
the `halyard.additionalConfig.enabled` flag. You will need to create a config map that contains a key
containing the `hal` commands you'd like to run. You can set the key via the config map name via `halyard.additionalConfig.configMapName` and the key via `halyard.additionalConfig.configMapKey`. The `DAEMON_ENDPOINT` environment variable can be used in your custom commands to
get a prepopulated URL that points to your Halyard daemon within the cluster. For example:

```shell
Copy link
Contributor

@costimuraru costimuraru Jul 13, 2018

Choose a reason for hiding this comment

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

Should this shell command be present in a ConfigMap map that we manually create?
If so, could we also provide a sample yaml for this ConfigMap, to make things a little bit easier to understand?

I'm imagining that we would need to do something like:

vi my-custom-hal-cmds-configmap.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: my-custom-halyard-config
data:
  custom_commands.sh: |
    hal --daemon-endpoint $DAEMON_ENDPOINT config security authn oauth2 enable

kubectl apply -f my-custom-hal-cmds-configmap.yaml

And then run

helm install stable/spinnaker 
    --set halyard.additionalConfig.configMapName=my-custom-halyard-config 
    --set halyard.additionalConfig.configMapKey=custom_commands.sh

Is that right?

hal --daemon-endpoint $DAEMON_ENDPOINT config security authn oauth2 enable
```
62 changes: 0 additions & 62 deletions stable/spinnaker/config/echo-local.yml

This file was deleted.

66 changes: 0 additions & 66 deletions stable/spinnaker/config/echo.yml

This file was deleted.

10 changes: 0 additions & 10 deletions stable/spinnaker/config/fiat.yml

This file was deleted.

27 changes: 0 additions & 27 deletions stable/spinnaker/config/front50-local.yml

This file was deleted.

39 changes: 0 additions & 39 deletions stable/spinnaker/config/front50.yml

This file was deleted.

25 changes: 0 additions & 25 deletions stable/spinnaker/config/igor-local.yml

This file was deleted.

33 changes: 0 additions & 33 deletions stable/spinnaker/config/igor.yml

This file was deleted.

Loading