Git Product home page Git Product logo

spinnaker-tide's Introduction

Tide

Tide can be used to compare and copy auto scaling groups, launch configurations, load balancers and security groups across your AWS VPCs, regions and accounts.

Features

Migration

Server Groups

Spinnaker refers to an auto scaling group and all of its attached cloud resources as a server group. Tide is capable of migrating a server group to another location (account, region, and VPC). It performs a "deep copy" meaning that it will copy the whole server group including attached launch configurations, load balancers and security groups if they don't already exist in the new location. It can handle cyclical references and any necessary naming changes (load balancers must have unique names across all VPCs in a region). Nothing will be deleted or modified but new resources may be created. New ASGs will be disabled (not taking traffic) with zero instances. There is a "dry run" ability to show what will be created and why.

Security Groups and Load Balancers

It is possible to migrate these without being attached to an ASG.

Pipelines

Tide can migrate a pipeline to another VPC. Copying a pipeline to another region or account raises some questions.

Comparisons

Tide can show differences of attributes across multiple AWS resources. It can be useful to see a diff of all security groups with the same name in an account for example.

Cache

It may also be handy as a cache for avoiding AWS throttling for reads of the resources mentioned above.

Tasks

There is a task system that allows for long running tasks. Akka clustering and persistence are used to make the async task system resilient. Note that tide creates an Akka "cluster" from instances found in the same Spinnaker "cluster". Tasks can move between instances in the cluster. Tasks will also restart if all instances are terminated and then launched again.

New task types are easy to implement and harness task system functionality such as the task lifecycle, subtasks, parallel execution, and logging. Migrations are a type of task. There is also a task type that can continuously attach classicLink to running instances that need it.

Usage

See the swagger docs for usage: http://host/swagger-ui.html

Dependencies

  • Redis is used by Akka to persist events.
  • Edda (or AWS directly) is used for AWS read operations.
  • CloudDriver is used for AWS write operations.
  • Front50 is used for pipeline management.

Configuration

Tide is configured like all other Spinnaker services.

AWS account config is handled just like CloudDriver.

You can find an example config file in the codebase. Note that you will need to add specifics for the dependencies mentioned above and AWS account specifics.

Running

./gradlew bootRun

spinnaker-tide's People

Contributors

claymccoy avatar anotherchrisberry avatar cfieber avatar ajordens avatar robfletcher avatar

Watchers

James Cloos avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.