Skip to content

rtnpro/flamingo

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code
This branch is 113 commits behind tmrts:master.

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
pkg
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Flamingo

Flamingo Logo

Flamingo is a lightweight contextualization tool that aims to handle initialization of cloud instances.

It is meant to be a replacement for cloud-init in Atomic Host, a lightweight operating system designed to run applications in Docker containers with orchestration capabilities (Kubernetes). It has 3 different flavors; Fedora, RHEL, and CentOS.

For more details please check Introducing Flamingo

Goals

The aim of this project is to create a fast, documented, extensible tool to use

Why not use cloud-init?

  • In order for an image to be built with cloud-init as its contextualization tool, it needs to contain the python interpreter, it's dependencies and the dependencies of cloud-init. It fattens up the image and increases complexity for the distributions.
  • Due to the dynamic nature of scripting languages they are slow. In an I/O boud application this is not a big problem however initializing VM images, is different.
  • The documentation is lacking at best. The tests are inadequate and it is a big chunk of initialization scripts. Making it hard to work with cloud-init as a developer and maintainer.

Solution

  • Golang excels at building big applications (e.g. distributed computing). It provides the necessary tooling for the job. It doesn't have long dependency chains like interpreted languages and it is fast.

  • Flamingo will essentially be a single binary coupled with all of its dependencies. In addition, cloud images will be smaller as well.

  • Testability, Documentation and Extensibility is heavily emphasized in Flamingo.

Status

Flamingo is in Alpha stage at the moment. Build images containing Flamingo as the default contextualization tool (swapped with cloud-init) will be available soon. In the meanwhile API is volatile, so expect changes!

What has been done

  • Docker Test Environment
  • User & Password Management
  • Running Custom Scripts
  • SSH Configuration
  • Manage Services at Boot
  • Manage and Modify IPtables/Filter Rules
  • RESTful Client

What is being worked on

  • Meta-Data
  • Cloud-Config
  • Config-Drive
  • Integration with systemd (using config-drive.mount instead of manual checks)
  • Test Images

Discussions

In the meanwhile if you'd like to share your opinions, learn more, or contribute please feel free to open an issue, mail to centos-devel, atomic, user-list or come to #atomic and #centos-devel channels to have a chat.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%