You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Tobias Sarnowski 368ebafa95 added initial documentation 7 years ago
agent Added cleanup for unused container routes 7 years ago
branding wharfie CLI added with initial commands 7 years ago
cli refactored routing 7 years ago
cockpit fix: make null safe 7 years ago
docs added initial documentation 7 years ago
samples little documentation hint 7 years ago
.gitignore read manifest file for name and create checksum 7 years ago
README.md added initial documentation 7 years ago
Vagrantfile raise memory for virtual box 7 years ago
gen-version.sh wharfie CLI added with initial commands 7 years ago

README.md

Wharfie

Wharfie is a cluster management framework that helps you to set up an own, private platform as a service (PaaS) infrastructures. It utilizes Docker to run your applications. The infrastructure is high-available with no single point of failure in order to survive even big outages (whole data centers up to complete infrastructure failure) and being able to work everwhere during spit brain scenarios.

Getting Starting

$ vagrant up

Follow the logs:

$ vagrant ssh
$ sudo tail -f /var/log/syslog

Usage

Build your application

Use the samples:

$ vagrant ssh
$ cd /vagrant/samples/helloworld

Build your docker image:

$ docker build -t 10.10.10.2:8080/zalando/helloworld:1.0 .

Deploy it to the cloud:

$ docker push 10.10.10.2:8080/zalando/helloworld

Run your application

Now start it in the cloud; check that you have a host up:

$ wharfie hosts

Create some zones to deploy it to:

$ wharfie zones create LIVE
$ wharfie zones create testing

Start some instances!

$ wharfie tasks start LIVE 3 zalando helloworld 1.0
$ wharfie tasks start testing 2 zalando helloworld 1.0

Watch it:

$ wharfie tasks show <your-task-id>

See your containers:

$ wharfie containers

Stop some:

$ wharfie tasks stop testing 7 zalando helloworld 1.0

Only containers from correct zones are stopped:

$ wharfie containers

Development

Agent Development

$ vagrant ssh

Recompiles from source and restarts the agent:

$ sudo service wagent restart

Run agent only one time and get more debug logging:

$ /vagrant/agent/run.sh -oneTime

Builds a new debian package and upgrades the existing one:

$ sudo /vagrant/agent/package.sh && \
       sudo dpkg -i /vagrant/agent/wharfie-agent-*.deb

If you want the agent to report to another cockpit e.g. your local development cockpit:

$ echo "10.10.10.1:8080" > /var/lib/wagent/cockpits

CLI Development

$ vagrant ssh

Recompiles from source and executes the CLI:

$ /vagrant/cli/run.sh

Cockpit Development

$ vagrant ssh

Recompiles from source and restarts the cockpit:

$ sudo service wcockpit restart

Builds a new debian package and upgrades the existing one:

$ sudo mvn -f /vagrant/cockpit/pom.xml clean package && \
       sudo dpkg -i /vagrant/cockpit/target/wharfie-cockpit-*.deb

When running Cockpit locally, add the following java properties in order to have full cluster access:

-Dlog4j.configurationFile=log4j2-console.xml
-Djava.net.preferIPv4Stack=true
-Djgroups.bind_addr=10.10.10.1

And create a local repository by creating the directory:

$ mkdir -p $PROJECT_CHECKOUT/cockpit/devstore

To use the "wharfie" CLI command directly against your local development cockpit, set up the following environment variable:

$ export COCKPIT=http://10.10.10.1:8080