# try.spinnaker.io **Repository Path**: mirrors_spinnaker/try.spinnaker.io ## Basic Information - **Project Name**: try.spinnaker.io - **Description**: Spinnaker Playground 🌊🏄 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-10-22 - **Last Updated**: 2026-10-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # try.spinnaker.io

try.spinnaker.io is a hosted playground version of [Spinnaker][] aimed for new users to test out its UI and core features. ## Features - IaC via Terraform to host try.spinnaker.io on AWS using an EKS cluster - Deployment of Spinnaker via Armory's OOS [Spinnaker Operator][] - Kubernetes deployment via Spinnaker - AWS Load Balancer Controller to expose deployments - User authentication via Google OAuth 2.0 - Private ECR registry - Block all public images via [portieris][] - Script to deploy default pipelines - Auto resource cleanup - Deploy demo web app - Deploy using [highlander][] strategy - Authz rules via a Spinnaker [plugin][], adds default role 'public' to all users - ~~Metrics~~(wip) ## Requirements - [awscli][] - Create [access key][] - Input keys here `aws configure` - [Route53 hosted zone][] - [Terraform][] - kubectl (v1.20.0), new verisons break kustomize script for Spinnaker operator - `curl -LO "https://dl.k8s.io/v1.20.0/bin/linux/amd64/kubectl"` - [Google OAuth 2.0 Client ID][] ## Configuration ### Terraform Edit the values `region`, `route53_zone`, and `domain_name` in `terraform/variables.tf`. Note: `domain_name` must be a subdomain of `route53_zone`, i.e. if `route53_zone = spinnaker.io` then `domain_name = try.spinnaker.io`. ### Spinnaker Operator Files are inside the `spinnaker-kustomize-patches` folder. | File Name | Description | | ----------------------------- | ------------ | | kustomization.yml | Main kustomize file. | | spinnakerservice.yml | Contains configuration for Spinnaker.

Update `spec.spinnakerConfig.config.version` to the version of OOS Spinnaker you wish to deploy.

Update the value of `https://try.gsoc.armory.io` in `spec.spinnakerConfig.config.*.apiSecurity.overrideBaseUrl` to your DNS name. | | security/patch-file-authz.yml | Update `users.username` to the admin email you will login with Google OAuth in `spec.spinnakerConfig.files.rolemappings.yml` | | security/patch-google.yml | Update `spec.spinnakerConfig.config.security.authn.client.clientId` to your Google OAuth 2.0 Client ID.

Create a file called `spinnaker-kustomize-patches/secrets/secrets.env` and add your Secret ID to the file in in this format `oauth-client-secret=fakepassword123` | | accounts/docker/patch-ecr.yml | Update `spec.spinnakerConfig.providers.dockerRegistry.accounts.address` to the address of your ECR registry. | ## Deploy Infrastructure + Code Run these commands in the terraform folder. ``` terraform init terraform plan terraform apply ``` ### Inject Default Pipelines - Install [spin][], a cli tool for Spinnnaker. - Copy the file `scripts/oauth` to `~/.spin/oauth` - Modify `Gate.Endpoint`, `ClientId`, and `ClientSecret` - Run script via `bash scripts/spin.sh` ### Teardown Infrastructure When you are all done then run: ``` terraform destroy ``` You may need to go into AWS Web Console to delete dangling load balancers or VPC in the case that Terraform doesn't delete it. ## Directory Structure ``` . ├── scripts # Contains helper scripts │   ├── ecr.sh # Mirrors latest verison of nginx to ECR │   ├── install-pipelines.sh # Uses spin cli to install pipelines │   ├── oauth # Sample outh config for spin, used for install-pipelines.sh │   ├── pipelines # Directory containing pipelines to install │   └── portieris.sh # Downloads latest portieris release ├── spinnaker-kustomize-patches # Patches for Spinnaker Operator │   ├── accounts │   │   ├── docker │   │   │   └── patch-ecr.yml # Add private ECR registry │   │   ├── kubernetes │   │   │   ├── patch-kube.yml # Add K8S cluster for Spinnaker to deploy to │   │   │   └── spin-sa.yml # K8S service account for Spinnaker │   │   └── s3 │   │   └── patch-s3.yml # Setup persistent storage for Spinnaker │   ├── deploy.sh # Deploy Spinnaker via Operator. You can redeploy via `SPIN_FLAVOR=oss ./deploy.sh` │   ├── kustomization.yml -> recipes/kustomization-try.yml # Softlink to main kustomization file, contains various patches │   ├── plugins │   │   └── patch-default-role-plugin.yml # Install github.com/ko28/defaultRolePlugin │   ├── secrets │   │   └── secrets.env # Local file to store oauth-client-secret │   ├── security │   │   ├── patch-fiat-create-app-roles.yml # Define what roles can access specific apps │   │   └── patch-file-authz.yml # Define fiat roles (admin) for specific users │   └── spinnakerservice.yml # Main spinnaker config file, define version and endpoint └── terraform # IaC via Terraform ├── main.tf ├── outputs.tf ├── policy # Directory containing IAM and portieris policies ├── variables.tf └── versions.tf ``` [Spinnaker]: https://spinnaker.io/ [highlander]: https://spinnaker.io/docs/guides/user/kubernetes-v2/rollout-strategies/#highlander-rollouts [Spinnaker Operator]: https://github.com/armory/spinnaker-operator [portieris]: https://github.com/IBM/portieris [awscli]: https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-linux.html [access key]: https://console.aws.amazon.com/iam/home?#/security_credentials [Terraform]: https://learn.hashicorp.com/tutorials/terraform/install-cli [Google OAuth 2.0 Client ID]: https://support.google.com/cloud/answer/6158849?hl=en [Route53 hosted zone]: https://aws.amazon.com/route53/faqs/#:~:text=A%20hosted%20zone%20is%20an,domain%20name%20as%20a%20suffix [spin]: https://spinnaker.io/docs/setup/other_config/spin/ [plugin]: https://github.com/ko28/defaultRolePlugin