• This repository has been archived on 26/Jan/2022
  • Stars
    star
    1,324
  • Rank 35,502 (Top 0.7 %)
  • Language
    Ruby
  • License
    Apache License 2.0
  • Created over 13 years ago
  • Updated over 11 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Cloud Foundry - the open platform as a service project

VMware's Cloud Application Platform

Copyright (c) 2009-2011 VMware, Inc.

What is Cloud Foundry?

Cloud Foundry is an open platform-as-a-service (PaaS). The system supports multiple frameworks, multiple application infrastructure services and deployment to multiple clouds.

License

Cloud Foundry uses the Apache 2 license. See LICENSE for details.

Installation Notes

Cloud Foundry is made up of a number of system components (cloud controller, health manager, dea, router, etc.). These components can run co-located in a single vm/single os or can be spread across several machines/vm's.

For development purposes, the preferred environment is to run all of the core components within a single vm and then interact with the system from outside of the vm via an ssh tunnel. The pre-defined domain *.vcap.me maps to local host, so when you use this setup, the end result is that your development environment is available at http://api.vcap.me.

For large scale or multi-vm deployments, the system is flexible enough to allow you to place system components on multiple vm's, run multiple nodes of a given type (e.g., 8 routers, 4 cloud controllers, etc.)

The detailed install instructions below walk you through the install process for a single vm installation.

Versions of these instructions have been used for production deployments, and for our own development purposes. many of us develop on mac laptops, so some additional instructions for this environment have been included.

Detailed Install/Run Instructions:

There are two methods for installing VCAP. One is a manual process, which you might choose to do if you want to understand the details of what goes into a bringing up a VCAP instance. The other is an automated process contributed by the community. In both cases, you need to start with a stock Ubuntu server VM.

Step 1: create a pristine VM with ssh

  • setup a VM with a pristine Ubuntu 10.04.4 server 64bit image, download here
  • setup your VM with 1G or more of memory
  • you may wish to snapshot your VM now in case things go pear shaped (great snapshot spots are here and after step 4)
  • to enable remote access (more fun than using the console), install ssh.

To install ssh:

sudo apt-get install openssh-server

Step 2: run the automated setup process

Run the install script. It'll ask for your sudo password at the beginning and towards the end. The entire process takes about half an hour, so just keep a loose eye on it.

 sudo apt-get install curl
 bash < <(curl -s -k -B https://raw.github.com/cloudfoundry/vcap/master/dev_setup/bin/vcap_dev_setup)

NOTE: The automated setup does not auto-start the system. Once you are done with the setup, exit your current shell, restart a new shell and continue the following steps

Step 3: start the system

~/cloudfoundry/vcap/dev_setup/bin/vcap_dev start

Step 4: Optional, mac/linux users only, create a local ssh tunnel

From your VM, run ifconfig and note your eth0 IP address, which will look something like: 192.168.252.130

Now go to your mac terminal window and verify that you can connect with SSH:

ssh <your VM user>@<VM IP address>

If this works, create a local port 80 tunnel:

sudo ssh -L <local-port>:<VM IP address>:80 <your VM user>@<VM IP address> -N

If you are not already running a local web server, use port 80 as your local port, otherwise you may want to use 8080 or another common http port.

Once you do this, from both your mac, and from within the vm, api.vcap.me and *.vcap.me will map to localhost which will map to your running Cloud Foundry instance.

Trying your setup

Step 5: validate that you can connect and tests pass

From the console of your vm, or from your mac (thanks to local tunnel)

vmc target api.vcap.me
vmc info

Note: If you are using a tunnel and selected a local port other than 80 you will need to modify the target to include it here, like api.vcap.me:8080.

This should produce roughly the following:

VMware's Cloud Application Platform
For support visit [email protected]

Target:   http://api.vcap.me (v0.999)
Client:   v0.3.10

Play around as a user, start with:

vmc register --email [email protected] --passwd password
vmc login --email [email protected] --passwd password

To see what else you can do try:

vmc help

Testing your setup

Once the system is installed, you can run the following Yeti cases(Yeti stands for "Yeti Extraordinary Test Infrastructure") to ensure that major functionality is working.

You can run the Yeti cases as the following steps:

cd cloudfoundry/vcap/tests
./update  ## this is not required for running administrative test cases
bundle exec rake full[1]

During the first time, Yeti will prompt you for information about your environment:

  • target
  • test user/test password
  • admin user/admin password
    target should be "api.vcap.me".
    This information except password is saved to ~/.bvt/config.yml file.
    When run the second time around, Yeti will not prompt for the information again.

Step 6: you are done, make sure you can run a simple hello world app.

Create an empty directory for your test app (lets call it env), and enter it.

mkdir env && cd env

Cut and paste the following app into a ruby file (lets say env.rb):

require 'rubygems'
require 'sinatra'

get '/' do
  host = ENV['VCAP_APP_HOST']
  port = ENV['VCAP_APP_PORT']
  "<h1>XXXXX Hello from the Cloud! via: #{host}:#{port}</h1>"
end

get '/env' do
  res = ''
  ENV.each do |k, v|
    res << "#{k}: #{v}<br/>"
  end
  res
end

Create & push a 4 instance version of the test app, like so:

vmc push env --instances 4 --mem 64M --url env.vcap.me -n

Test it in the browser:

http://env.vcap.me

Note that hitting refresh will show a different port in each refresh reflecting the different active instances

Check the status of your app by running:

vmc apps

Which should yield the following output:

+-------------+----+---------+-------------+----------+
| Application | #  | Health  | URLS        | Services |
+-------------+----+---------+-------------+----------+
| env         | 1  | RUNNING | env.vcap.me |          |
+-------------+----+---------+-------------+----------+

More Repositories

1

lattice-release

Lattice
Go
747
star
2

cf-release

Deprecated: Cloud Foundry Release
Shell
576
star
3

vmc

The command line client for Cloud Foundry - the open platform as a service project
Ruby
377
star
4

bosh-lite

A lite development env for BOSH
Shell
319
star
5

warden

Cloud Foundry - the open platform as a service project
Ruby
281
star
6

vcap-services

Cloud Foundry - the open platform as a service project
Ruby
276
star
7

cfdev

A fast and easy local Cloud Foundry experience on native hypervisors, powered by LinuxKit with VPNKit
Go
227
star
8

oss-docs

Documentation for the Cloud Foundry Platform as a Service
Shell
139
star
9

cf-abacus

CF usage metering and aggregation
JavaScript
98
star
10

vblob

JavaScript
64
star
11

bosh-notes

Collection of proposals for BOSH
Ruby
51
star
12

cf-docs

A well lit place for docs
CSS
46
star
13

garden-linux

Garden with a linux backend
Go
44
star
14

eclipse-integration-cloudfoundry

Cloud Foundry Integration for Eclipse
Java
41
star
15

hm9000

Go
40
star
16

jibber_jabber

Cross Platform locale detection for Golang
Go
39
star
17

dea_ng

Droplet Execution Agent for Cloud Foundry v2
Ruby
34
star
18

login-server

Cloud Foundry Login Server
Java
32
star
19

health_manager

Cloud Foundry - the open platform as a service project
Ruby
32
star
20

bosh-init

bosh-init is a tool used to create and update the Director VM
Go
31
star
21

istio-release

DEPRECATED: Istio + Cloud Foundry
Shell
29
star
22

vcap-test-assets

Cloud Foundry - the open platform as a service project
Ruby
24
star
23

garden-windows

Garden with a windows backend
C#
24
star
24

router

Cloud Foundry - the open platform as a service project
Ruby
23
star
25

bosh-workspace

Gem for managing your bosh workspace
Ruby
22
star
26

cf-openstack-validator

This repository is UNMAINTAINED.
Ruby
21
star
27

cf-networking-examples

Go
21
star
28

cf-swagger

Collection of Swagger descriptions and applications for CloudFoundry BOSH
Go
21
star
29

cf-mysql-broker

CSS
20
star
30

gonit

gonit
Go
19
star
31

cf

The Cloud Foundry command-line interface
Ruby
19
star
32

cf-dotnet-sdk

Cloud Foundry .NET SDK
C#
18
star
33

cloud_controller

Ruby
18
star
34

bosh-ext-cli

CLI that includes additional set of commands for interacting with BOSH and release authoring
Go
18
star
35

micro

Micro Cloud Foundry
Ruby
17
star
36

cf-docs-cn

Chinese translation of V1 docs
CSS
17
star
37

caldecott

Ruby
16
star
38

gonats

A Go NATS Client
Go
16
star
39

Diego-Enabler

A CF CLI plugin to help you migrate apps from the DEA to Diego runtime
Go
15
star
40

vcap-yeti

Cloud Foundry - the open platform as a service project
Ruby
15
star
41

dea

Ruby
14
star
42

mega-ci

Scripts, templates, and configuration for the CF Infrastructure team's CI pipelines
Shell
13
star
43

networking-release

CF-BOSH Release containing several jobs to configure VM networking
Shell
13
star
44

vcap-node

Cloud Foundry - the open platform as a service project
JavaScript
13
star
45

vcap-tools

Java
12
star
46

multi-buildpack

Cloud Foundry buildpack for running multiple buildpacks
Go
12
star
47

cf-app-sd-release

Service Discovery for CloudFoundry
Go
12
star
48

cf-docs-deprecated

JavaScript
12
star
49

mssql-server-broker

Cloud Foundry service broker for Microsoft SQL Server
Java
12
star
50

vcap-staging

Cloud Foundry - the open platform as a service project
Ruby
12
star
51

cfoundry

Cloud Foundry REST API gem
Ruby
12
star
52

acm

Ruby
11
star
53

bosh-openstack-environment-templates

This repository is UNMAINTAINED, please consider https://github.com/cloudfoundry/bosh-bootloader to deploy BOSH on OpenStack
HCL
11
star
54

IronFrame

Windows Container library
C#
11
star
55

wats

Windows Acceptance Tests
Go
10
star
56

cf-logmon

Kotlin
10
star
57

cf-vs-extension

Cloud Foundry Visual Studio Extension
C#
10
star
58

firehose-plugin

Cloud Foundry CLI plugin to connect to the firehose
Go
10
star
59

consul-release

This is a BOSH release for consul.
Go
10
star
60

brooklyn-plugin

A CLI Plugin for Cloud Foundry for use with Brooklyn Service Broker
Go
10
star
61

cephfs-bosh-release

Shell
10
star
62

scalable-syslog

Go
10
star
63

common

Ruby
10
star
64

vcap-services-base

Ruby
9
star
65

cf-windows-prison

A library that aims to faciliate a multi-tenant secure environment on Microsoft Windows Server.
C#
9
star
66

cf-riak-cs-release

A BOSH release for riak and riak-cs
Shell
9
star
67

stac2

Load test system for cloudfoundry
JavaScript
9
star
68

apache-brooklyn-service-broker

A Cloud Foundry Service Broker for Apache Brooklyn
Java
9
star
69

vcap-ruby

Ruby
9
star
70

cf-deployment-transition

This repository is deprecated - no longer accepting PR's or Issues
Shell
9
star
71

datadog-firehose-nozzle

OBSOLETE CF component to forward metrics from the Loggregator Firehose to DataDog
Go
9
star
72

receptor

restful api facade for diego
Go
8
star
73

cf-mssql-broker

A Go broker for MSSQL Service
Go
8
star
74

cf-networking-notes

HTML
8
star
75

oss-release

Shell
8
star
76

tools-cf-plugin

Ruby
8
star
77

cloudfoundry.org

CSS
8
star
78

windows_app_lifecycle

C#
8
star
79

storeadapter

Golang interface for ETCd/zookeeper style datastores
Go
8
star
80

gonatsd

Go
7
star
81

cf_canaries

A gem for installing canary apps in a CloudFoundry installation
Ruby
7
star
82

cloudfoundry-buildpack-clr

Cloud Foundry buildpack for CLR frameworks like ASP.NET and .NET standalone apps
Ruby
6
star
83

stager

Cloud Foundry - the open platform as a service project
Ruby
6
star
84

bosh-photon-cpi-release

Go
6
star
85

loggregator-k8s-deployment

A deployment of loggregator on kubernetes
Shell
6
star
86

vmc-lib

Cloud Foundry - the open platform as a service project
Ruby
6
star
87

stager-client

Cloud Foundry - the open platform as a service project
Ruby
6
star
88

nyet

not yeti
Ruby
5
star
89

bosh-packer-templates

Shell
5
star
90

collector

(DEPRECATED) Cloud Foundry Metric Collector
Ruby
5
star
91

errors

Shared error codes and messages for Cloud Foundry
5
star
92

oss-tools

Ruby
5
star
93

vcap-concurrency

Ruby
5
star
94

gamble

A go wrapper around libyaml
C
5
star
95

go_cfmessagebus

Wrapper to Message Bus for CF, currently NATS.
Go
5
star
96

diego-cli-plugin

Go
5
star
97

api-deprecated

Experimental CF API server written in GO
C
5
star
98

dea-hm-workspace

This is a go workspace for the health manager and its dependencies
Shell
5
star
99

cf-abacus-broker

A broker for the CF-Abacus project with associated UI and other artifacts
JavaScript
5
star
100

cf-mongodb-example-app

MongoDB Example Application
Ruby
5
star