Skip to content

Spinnaker

Spinnaker Logo

Spinnaker is an open-source continuous delivery platform that helps you release software changes with high velocity and confidence.

Overview

Spinnaker provides two core sets of features: - Application Management - Deploy and manage cloud resources - Application Deployment - Construct and manage continuous delivery workflows

Key Features

Feature Description
Multi-Cloud Deploy to multiple cloud providers
Pipeline Management Create complex deployment workflows
Automated Canary Analysis Automated testing in production
Easy Rollbacks Quick recovery from failed deployments

Integration with Fawkes

Prerequisites

  • Kubernetes cluster
  • Helm v3
  • kubectl configured with cluster access

Installation

# Add Spinnaker Helm repository
helm repo add spinnaker https://helmcharts.opsmx.com/
helm repo update

# Install Spinnaker
helm install spinnaker spinnaker/spinnaker \
  --namespace spinnaker \
  --create-namespace \
  --values values.yaml

Example values.yaml:

spinnakerConfig:
  profiles:
    clouddriver:
      kubernetes:
        enabled: true
        accounts:
        - name: fawkes-cluster
          requiredGroupMembership: []
          providerVersion: V2
          permissions: {}
          dockerRegistries: []
          configureImagePullSecrets: true
          cacheThreads: 1
          namespaces: []
          omitNamespaces: []
          kinds: []
          omitKinds: []
          customResources: []

Using Spinnaker with Fawkes

Creating a Deployment Pipeline

  1. Navigate to Spinnaker UI
  2. Create a new application:
  3. Name: fawkes-app
  4. Owner Email: team@fawkes.io
  5. Cloud Providers: Kubernetes V2

  6. Create a deployment pipeline:

    {
      "name": "Deploy to Production",
      "stages": [
        {
          "type": "deployManifest",
          "name": "Deploy Application",
          "cloudProvider": "kubernetes",
          "account": "fawkes-cluster",
          "source": "text",
          "manifests": [
            {
              "apiVersion": "apps/v1",
              "kind": "Deployment",
              "metadata": {
                "name": "fawkes-app"
              },
              "spec": {
                "replicas": 3
              }
            }
          ]
        }
      ]
    }
    

Best Practices

  1. Pipeline Templates
  2. Use pipeline templates for consistency
  3. Version control your templates
  4. Share common deployment patterns

  5. Security

  6. Enable RBAC
  7. Use service accounts
  8. Implement least privilege access

  9. Monitoring

  10. Configure pipeline notifications
  11. Monitor pipeline executions
  12. Set up alerting for failures

Troubleshooting

Common issues and solutions:

Issue Solution
Pipeline fails to start Check Spinnaker service account permissions
Manifest deployment fails Verify Kubernetes cluster connectivity
Images not found Confirm container registry configuration

Additional Resources

Configure Spinnaker View Examples