├── controller ├── web │ ├── __init__.py │ ├── models.py │ ├── templatetags │ │ └── __init__.py │ ├── static │ │ ├── css │ │ │ ├── deis-controller.css │ │ │ └── deis-docs.css │ │ ├── favicon.ico │ │ └── img │ │ │ ├── 404.png │ │ │ ├── fork.png │ │ │ ├── glyphs.png │ │ │ ├── logo.png │ │ │ ├── social.png │ │ │ ├── aws-ec2.png │ │ │ ├── favicon.png │ │ │ ├── blog-social.png │ │ │ ├── cover-image.png │ │ │ ├── deis_logo.png │ │ │ ├── mag_glass.png │ │ │ ├── menu-logo.png │ │ │ ├── deis-graphic.png │ │ │ ├── deis_builder.png │ │ │ └── large-social.png │ ├── templates │ │ ├── rest_framework │ │ │ ├── api.html │ │ │ └── login.html │ │ └── web │ │ │ └── dashboard.html │ └── urls.py ├── registry │ ├── models.py │ └── __init__.py ├── api │ ├── management │ │ ├── __init__.py │ │ └── commands │ │ │ ├── __init__.py │ │ │ └── load_db_state_to_etcd.py │ ├── south_migrations │ │ └── __init__.py │ ├── exceptions.py │ ├── __init__.py │ └── tests │ │ └── test_limits.py ├── .dockerignore ├── bin │ └── reload ├── setup.cfg ├── conf.d │ ├── gconf.toml │ └── confd_settings.toml ├── dev_requirements.txt ├── deis │ ├── context_processors.py │ ├── __init__.py │ ├── middleware.py │ └── urls.py ├── manage.py ├── scheduler │ └── states.py ├── requirements.txt ├── migrations │ └── data │ │ └── 0001.sh └── .coveragerc ├── docs ├── _templates │ └── .gitkeep ├── theme │ └── deis │ │ ├── theme.conf │ │ └── navigation.html ├── understanding_deis │ ├── DeisDataPlane.png │ ├── DeisRouterMesh.png │ ├── DeisControlPlane.png │ ├── DeisSystemDiagram.png │ ├── DeisGitPushWorkflow.png │ └── index.rst ├── managing_deis │ ├── DeisLoadBalancerDiagram.png │ └── index.rst ├── reference │ ├── server │ │ ├── api.admin.rst │ │ ├── api.utils.rst │ │ ├── api.views.rst │ │ ├── api.fields.rst │ │ ├── api.routers.rst │ │ ├── api.viewsets.rst │ │ ├── api.middleware.rst │ │ ├── registry.rst │ │ ├── api.models.rst │ │ ├── api.permissions.rst │ │ ├── api.serializers.rst │ │ ├── api.authentication.rst │ │ ├── web.rst │ │ ├── index.rst │ │ └── scheduler.rst │ ├── terms │ │ ├── key.rst │ │ ├── index.rst │ │ ├── config.rst │ │ ├── build.rst │ │ ├── application.rst │ │ └── release.rst │ ├── usage.rst │ └── index.rst ├── roadmap │ └── index.rst ├── _includes │ ├── _generate-ssh-key.rst │ ├── _private-network.rst │ └── _generate-discovery-url.rst ├── contributing │ └── index.rst ├── toctree.rst ├── using_deis │ └── index.rst ├── customizing_deis │ └── index.rst ├── index.rst └── installing_deis │ ├── download-linux-brightgreen.svg │ └── download-osx-brightgreen.svg ├── client ├── deis-version ├── make.bat ├── controller │ ├── client │ │ ├── home_unix.go │ │ ├── home_windows.go │ │ ├── utils.go │ │ └── utils_test.go │ ├── api │ │ ├── perms.go │ │ ├── ps.go │ │ ├── domains.go │ │ ├── keys.go │ │ ├── users.go │ │ ├── releases.go │ │ └── certs.go │ └── models │ │ └── users │ │ └── users.go ├── pkg │ ├── webbrowser │ │ ├── webbrowser_darwin.go │ │ ├── webbrowser_linux.go │ │ └── webbrowser_windows.go │ └── git │ │ └── git_test.go ├── cmd │ ├── git.go │ ├── apps_test.go │ └── users.go └── LICENSE ├── deisctl ├── deis-version ├── units │ ├── decorators │ │ ├── deis-logspout.service.decorator │ │ ├── deis-router.service.decorator │ │ ├── deis-kube-kubelet.service.decorator │ │ ├── deis-kube-proxy.service.decorator │ │ ├── deis-publisher.service.decorator │ │ ├── deis-registry.service.decorator │ │ ├── deis-swarm-node.service.decorator │ │ ├── deis-mesos-slave.service.decorator │ │ ├── deis-store-admin.service.decorator │ │ ├── deis-store-daemon.service.decorator │ │ ├── deis-store-gateway.service.decorator │ │ ├── deis-store-metadata.service.decorator │ │ ├── deis-store-monitor.service.decorator │ │ ├── deis-store-volume.service.decorator │ │ ├── deis-zookeeper.service.decorator │ │ ├── deis-mesos-marathon.service.decorator │ │ ├── deis-cache.service.decorator │ │ ├── deis-logger.service.decorator │ │ ├── deis-builder.service.decorator │ │ ├── deis-controller.service.decorator │ │ ├── deis-database.service.decorator │ │ ├── deis-kube-apiserver.service.decorator │ │ ├── deis-kube-scheduler.service.decorator │ │ ├── deis-mesos-master.service.decorator │ │ ├── deis-swarm-manager.service.decorator │ │ └── deis-kube-controller-manager.service.decorator │ ├── deis-kube-proxy.service │ └── deis-kube-scheduler.service ├── config │ ├── model │ │ └── model.go │ └── backend.go ├── utils │ ├── utils_test.go │ ├── utils.go │ └── net │ │ └── net.go ├── backend │ └── fleet │ │ └── dock.go └── LICENSE ├── router ├── rootfs │ ├── opt │ │ └── nginx │ │ │ ├── logs │ │ │ └── .gitkeep │ │ │ └── firewall │ │ │ └── active-mode.rules │ ├── etc │ │ └── confd │ │ │ ├── templates │ │ │ ├── deis.cert │ │ │ ├── deis.key │ │ │ ├── dhparam.pem │ │ │ └── deis.conf │ │ │ └── conf.d │ │ │ ├── generate-certs.toml │ │ │ ├── deis.cert.toml │ │ │ ├── deis.key.toml │ │ │ ├── ssl.conf.toml │ │ │ ├── deis.conf.toml │ │ │ ├── dhparam.pem.toml │ │ │ └── nginx.conf.toml │ └── bin │ │ ├── get_src │ │ └── check ├── logger │ └── stdout_formatter.go └── Dockerfile ├── Godeps ├── _workspace │ ├── .gitignore │ └── src │ │ ├── github.com │ │ ├── Sirupsen │ │ │ └── logrus │ │ │ │ ├── .gitignore │ │ │ │ ├── .travis.yml │ │ │ │ ├── terminal_linux.go │ │ │ │ ├── terminal_darwin.go │ │ │ │ ├── terminal_freebsd.go │ │ │ │ ├── hooks │ │ │ │ ├── syslog │ │ │ │ │ ├── README.md │ │ │ │ │ └── syslog_test.go │ │ │ │ └── papertrail │ │ │ │ │ └── papertrail_test.go │ │ │ │ ├── json_formatter.go │ │ │ │ ├── terminal_notwindows.go │ │ │ │ └── examples │ │ │ │ └── basic │ │ │ │ └── basic.go │ │ ├── robfig │ │ │ └── cron │ │ │ │ ├── .travis.yml │ │ │ │ ├── README.md │ │ │ │ └── .gitignore │ │ ├── ActiveState │ │ │ └── tail │ │ │ │ ├── .gitignore │ │ │ │ ├── cmd │ │ │ │ └── gotail │ │ │ │ │ ├── .gitignore │ │ │ │ │ └── Makefile │ │ │ │ ├── ratelimiter │ │ │ │ └── storage.go │ │ │ │ ├── tail_posix.go │ │ │ │ ├── Makefile │ │ │ │ ├── tail_windows.go │ │ │ │ ├── .travis.yml │ │ │ │ ├── watch │ │ │ │ ├── polling_posix.go │ │ │ │ ├── polling_windows.go │ │ │ │ └── watch.go │ │ │ │ ├── deps.json │ │ │ │ └── README.md │ │ ├── progrium │ │ │ └── go-basher │ │ │ │ ├── .gitignore │ │ │ │ ├── SPONSORS │ │ │ │ ├── .travis.yml │ │ │ │ └── example │ │ │ │ ├── Makefile │ │ │ │ └── bash │ │ │ │ └── example.bash │ │ ├── go-martini │ │ │ └── martini │ │ │ │ ├── wercker.yml │ │ │ │ ├── Godeps │ │ │ │ ├── go_version.go │ │ │ │ ├── .gitignore │ │ │ │ ├── env_test.go │ │ │ │ └── env.go │ │ ├── lib │ │ │ └── pq │ │ │ │ ├── .gitignore │ │ │ │ ├── Godeps │ │ │ │ ├── Godeps.json │ │ │ │ └── Readme │ │ │ │ ├── oid │ │ │ │ └── doc.go │ │ │ │ ├── certs │ │ │ │ └── README │ │ │ │ └── user_posix.go │ │ ├── codegangsta │ │ │ └── inject │ │ │ │ ├── .gitignore │ │ │ │ └── update_readme.sh │ │ ├── leeor │ │ │ └── etcd-sync │ │ │ │ ├── .gitignore │ │ │ │ └── README.md │ │ ├── Masterminds │ │ │ └── cookoo │ │ │ │ ├── doc │ │ │ │ └── README.md │ │ │ │ ├── env.sh │ │ │ │ ├── database │ │ │ │ └── sql │ │ │ │ │ └── datasource_test.go │ │ │ │ ├── safely │ │ │ │ ├── README.md │ │ │ │ └── safely_test.go │ │ │ │ ├── .gitignore │ │ │ │ ├── glide.yaml │ │ │ │ ├── web │ │ │ │ └── auth │ │ │ │ │ └── auth_datasource.go │ │ │ │ └── convert │ │ │ │ ├── commands.go │ │ │ │ └── commands_test.go │ │ ├── jonboulle │ │ │ └── clockwork │ │ │ │ ├── .travis.yml │ │ │ │ └── .gitignore │ │ ├── docker │ │ │ ├── docker │ │ │ │ ├── pkg │ │ │ │ │ ├── mflag │ │ │ │ │ │ └── MAINTAINERS │ │ │ │ │ ├── term │ │ │ │ │ │ ├── MAINTAINERS │ │ │ │ │ │ └── tc_other.go │ │ │ │ │ ├── parsers │ │ │ │ │ │ ├── MAINTAINERS │ │ │ │ │ │ └── kernel │ │ │ │ │ │ │ ├── uname_unsupported.go │ │ │ │ │ │ │ └── uname_linux.go │ │ │ │ │ ├── reexec │ │ │ │ │ │ ├── MAINTAINERS │ │ │ │ │ │ ├── command_unsupported.go │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ └── command_linux.go │ │ │ │ │ ├── stdcopy │ │ │ │ │ │ ├── MAINTAINERS │ │ │ │ │ │ └── stdcopy_test.go │ │ │ │ │ ├── httputils │ │ │ │ │ │ └── MAINTAINERS │ │ │ │ │ ├── timeutils │ │ │ │ │ │ └── MAINTAINERS │ │ │ │ │ ├── truncindex │ │ │ │ │ │ └── MAINTAINERS │ │ │ │ │ ├── archive │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── MAINTAINERS │ │ │ │ │ │ ├── testdata │ │ │ │ │ │ │ └── broken.tar │ │ │ │ │ │ ├── time_unsupported.go │ │ │ │ │ │ ├── time_linux.go │ │ │ │ │ │ └── archive_windows.go │ │ │ │ │ ├── units │ │ │ │ │ │ └── MAINTAINERS │ │ │ │ │ ├── system │ │ │ │ │ │ ├── MAINTAINERS │ │ │ │ │ │ ├── meminfo_unsupported.go │ │ │ │ │ │ ├── errors.go │ │ │ │ │ │ ├── lstat_windows.go │ │ │ │ │ │ ├── umask.go │ │ │ │ │ │ ├── umask_windows.go │ │ │ │ │ │ ├── stat_linux.go │ │ │ │ │ │ ├── stat_windows.go │ │ │ │ │ │ ├── lstat.go │ │ │ │ │ │ ├── utimes_darwin.go │ │ │ │ │ │ ├── xattrs_unsupported.go │ │ │ │ │ │ ├── utimes_unsupported.go │ │ │ │ │ │ ├── stat_unsupported.go │ │ │ │ │ │ ├── mknod_windows.go │ │ │ │ │ │ ├── meminfo.go │ │ │ │ │ │ ├── mknod.go │ │ │ │ │ │ ├── lstat_test.go │ │ │ │ │ │ ├── utimes_freebsd.go │ │ │ │ │ │ └── stat.go │ │ │ │ │ ├── tarsum │ │ │ │ │ │ ├── testdata │ │ │ │ │ │ │ ├── xattr │ │ │ │ │ │ │ │ └── layer.tar │ │ │ │ │ │ │ └── 511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158 │ │ │ │ │ │ │ │ └── json │ │ │ │ │ │ ├── MAINTAINERS │ │ │ │ │ │ ├── writercloser.go │ │ │ │ │ │ └── builder_context.go │ │ │ │ │ ├── symlink │ │ │ │ │ │ ├── MAINTAINERS │ │ │ │ │ │ └── README.md │ │ │ │ │ ├── signal │ │ │ │ │ │ ├── signal_unsupported.go │ │ │ │ │ │ ├── signal_unix.go │ │ │ │ │ │ ├── signal_windows.go │ │ │ │ │ │ └── signal.go │ │ │ │ │ ├── promise │ │ │ │ │ │ └── promise.go │ │ │ │ │ ├── urlutil │ │ │ │ │ │ └── url.go │ │ │ │ │ └── chrootarchive │ │ │ │ │ │ └── init.go │ │ │ │ ├── engine │ │ │ │ │ ├── MAINTAINERS │ │ │ │ │ ├── helpers_test.go │ │ │ │ │ └── hack.go │ │ │ │ ├── vendor │ │ │ │ │ └── src │ │ │ │ │ │ └── code.google.com │ │ │ │ │ │ └── p │ │ │ │ │ │ └── go │ │ │ │ │ │ └── src │ │ │ │ │ │ └── pkg │ │ │ │ │ │ └── archive │ │ │ │ │ │ └── tar │ │ │ │ │ │ ├── testdata │ │ │ │ │ │ ├── small.txt │ │ │ │ │ │ ├── small2.txt │ │ │ │ │ │ ├── v7.tar │ │ │ │ │ │ ├── writer-big.tar │ │ │ │ │ │ └── writer-big-long.tar │ │ │ │ │ │ ├── stat_atim.go │ │ │ │ │ │ └── stat_atimespec.go │ │ │ │ ├── daemon │ │ │ │ │ └── graphdriver │ │ │ │ │ │ ├── btrfs │ │ │ │ │ │ ├── MAINTAINERS │ │ │ │ │ │ ├── dummy_unsupported.go │ │ │ │ │ │ ├── version_test.go │ │ │ │ │ │ ├── version_none.go │ │ │ │ │ │ └── version.go │ │ │ │ │ │ ├── devmapper │ │ │ │ │ │ └── MAINTAINERS │ │ │ │ │ │ ├── driver_unsupported.go │ │ │ │ │ │ ├── aufs │ │ │ │ │ │ ├── mount_linux.go │ │ │ │ │ │ ├── mount_unsupported.go │ │ │ │ │ │ └── mount.go │ │ │ │ │ │ └── driver_linux.go │ │ │ │ ├── api │ │ │ │ │ ├── MAINTAINERS │ │ │ │ │ ├── server │ │ │ │ │ │ └── MAINTAINERS │ │ │ │ │ ├── README.md │ │ │ │ │ └── api_unit_test.go │ │ │ │ ├── image │ │ │ │ │ └── graph.go │ │ │ │ ├── registry │ │ │ │ │ └── MAINTAINERS │ │ │ │ ├── graph │ │ │ │ │ ├── MAINTAINERS │ │ │ │ │ └── load_unsupported.go │ │ │ │ ├── utils │ │ │ │ │ ├── random.go │ │ │ │ │ ├── tmpdir.go │ │ │ │ │ └── timeoutconn.go │ │ │ │ ├── opts │ │ │ │ │ └── ip.go │ │ │ │ ├── nat │ │ │ │ │ └── sort.go │ │ │ │ └── dockerversion │ │ │ │ │ └── dockerversion.go │ │ │ ├── libcontainer │ │ │ │ └── netlink │ │ │ │ │ ├── netlink_linux_arm.go │ │ │ │ │ ├── MAINTAINERS │ │ │ │ │ └── netlink_linux_notarm.go │ │ │ └── libtrust │ │ │ │ ├── MAINTAINERS │ │ │ │ ├── doc.go │ │ │ │ ├── CONTRIBUTING.md │ │ │ │ └── util_test.go │ │ ├── ugorji │ │ │ └── go │ │ │ │ └── codec │ │ │ │ ├── prebuild.go │ │ │ │ ├── codecgen │ │ │ │ └── z.go │ │ │ │ └── codecgen_test.go │ │ ├── gorilla │ │ │ ├── context │ │ │ │ ├── .travis.yml │ │ │ │ └── README.md │ │ │ └── mux │ │ │ │ ├── .travis.yml │ │ │ │ ├── README.md │ │ │ │ └── bench_test.go │ │ ├── coreos │ │ │ ├── go-etcd │ │ │ │ └── etcd │ │ │ │ │ ├── version.go │ │ │ │ │ ├── requests_test.go │ │ │ │ │ ├── debug_test.go │ │ │ │ │ ├── add_child.go │ │ │ │ │ └── member.go │ │ │ └── go-semver │ │ │ │ └── semver │ │ │ │ └── sort.go │ │ ├── docopt │ │ │ └── docopt-go │ │ │ │ ├── test_golang.docopt │ │ │ │ ├── .gitignore │ │ │ │ └── examples │ │ │ │ ├── odd_even │ │ │ │ └── odd_even_example.go │ │ │ │ ├── quick │ │ │ │ └── quick_example.go │ │ │ │ ├── counted │ │ │ │ └── counted_example.go │ │ │ │ └── calculator │ │ │ │ └── calculator_example.go │ │ ├── howeyc │ │ │ └── fsnotify │ │ │ │ ├── .gitignore │ │ │ │ ├── CONTRIBUTING.md │ │ │ │ ├── fsnotify_open_darwin.go │ │ │ │ └── fsnotify_open_bsd.go │ │ ├── fsouza │ │ │ └── go-dockerclient │ │ │ │ ├── .travis.yml │ │ │ │ └── DOCKER-LICENSE │ │ ├── kardianos │ │ │ └── osext │ │ │ │ ├── README.md │ │ │ │ └── osext_plan9.go │ │ └── ziutek │ │ │ └── syslog │ │ │ ├── README.md │ │ │ └── internallog.go │ │ ├── gopkg.in │ │ ├── tomb.v1 │ │ │ └── README.md │ │ └── yaml.v2 │ │ │ └── suite_test.go │ │ ├── golang.org │ │ └── x │ │ │ ├── crypto │ │ │ └── ssh │ │ │ │ ├── test │ │ │ │ └── doc.go │ │ │ │ ├── terminal │ │ │ │ ├── util_bsd.go │ │ │ │ └── util_linux.go │ │ │ │ ├── testdata │ │ │ │ └── doc.go │ │ │ │ └── tcpip_test.go │ │ │ └── net │ │ │ ├── context │ │ │ └── ctxhttp │ │ │ │ ├── cancelreq.go │ │ │ │ └── cancelreq_go14.go │ │ │ └── websocket │ │ │ └── examplehandler_test.go │ │ └── google.golang.org │ │ └── api │ │ └── googleapi │ │ └── internal │ │ └── uritemplates │ │ └── utils.go └── Readme ├── contrib ├── vagrant │ ├── check │ ├── install │ ├── destroy │ ├── config.sh │ └── create ├── linode │ ├── .gitignore │ ├── requirements.txt │ └── README.md ├── aws │ ├── requirements.txt │ ├── install │ ├── cloudformation.json │ ├── README.md │ ├── config.sh │ ├── stack_policy.json │ └── check ├── digitalocean │ ├── check │ ├── install │ ├── destroy │ ├── README.md │ ├── create │ └── variables.tf ├── bumpver │ ├── bumpver.go │ └── Makefile ├── azure │ ├── README.md │ └── parameters.json ├── gce │ └── README.md ├── openstack │ └── README.md ├── bare-metal │ └── README.md ├── utils.sh └── docker-registry │ └── README.md ├── logspout ├── SPONSORS ├── image │ └── Dockerfile └── utils │ └── docker-listener.go ├── store ├── base │ ├── templates │ │ ├── mon_keyring │ │ ├── admin_keyring │ │ └── etc_hosts │ ├── conf.d │ │ ├── ceph.conf.toml │ │ ├── etc_hosts.toml │ │ ├── mon_keyring.toml │ │ └── admin_keyring.toml │ └── Dockerfile ├── metadata │ └── Dockerfile.template ├── admin │ ├── Dockerfile.template │ └── bin │ │ └── boot ├── monitor │ └── Dockerfile.template ├── gateway │ ├── Dockerfile.template │ └── build.sh ├── daemon │ └── Dockerfile.template └── LICENSE ├── database ├── templates │ ├── AWS_ACCESS_KEY_ID │ ├── WALE_S3_PREFIX │ ├── AWS_SECRET_ACCESS_KEY │ ├── WALE_S3_ENDPOINT │ ├── create_bucket │ └── reload ├── conf.d │ ├── create_bucket.toml │ ├── WALE_S3_ENDPOINT.toml │ ├── AWS_ACCESS_KEY_ID.toml │ ├── AWS_SECRET_ACCESS_KEY.toml │ ├── WALE_S3_PREFIX.toml │ ├── reload.toml │ ├── pg_hba.conf.toml │ └── postgresql.conf.toml ├── LICENSE ├── Dockerfile └── bin │ └── backup ├── tests ├── fixtures │ ├── test-postgresql │ │ ├── rootfs │ │ │ └── docker-entrypoint-initdb.d │ │ │ │ └── post-run.sh │ │ └── Dockerfile │ ├── mock-store │ │ ├── Dockerfile │ │ └── mock-s3-patch.diff │ └── test-etcd │ │ └── Dockerfile ├── main.go ├── bin │ ├── vagrant.sh │ ├── halt-all-vagrants.sh │ ├── git-ssh-nokeycheck.sh │ ├── start-node.sh │ ├── prime-docker-images.sh │ └── destroy-all-vagrants.sh └── README.md ├── mesos ├── master ├── slave ├── zookeeper │ ├── templates │ │ ├── server.list │ │ └── zoo_cfg.dynamic │ ├── conf.d │ │ ├── server-list.toml │ │ └── dynamic-cfg.toml │ ├── zoo.cfg │ └── Dockerfile ├── pkg │ ├── types │ │ ├── cron.go │ │ ├── service-daemon.go │ │ ├── script.go │ │ ├── command.go │ │ └── current-boot.go │ ├── boot │ │ ├── mesos │ │ │ └── marathon │ │ │ │ └── bash │ │ │ │ └── update-hosts-file.bash │ │ └── zookeeper │ │ │ └── bash │ │ │ └── remove-node.bash │ ├── etcd │ │ └── lock.go │ ├── log │ │ └── stdout_formatter.go │ └── fleet │ │ └── machine_test.go ├── template ├── marathon └── build-marathon ├── registry ├── bin │ └── reload ├── conf.d │ ├── create_bucket.toml │ └── config.toml └── LICENSE ├── logger ├── drain │ ├── drain.go │ └── simple │ │ └── drain_test.go ├── image │ └── Dockerfile └── storage │ └── adapter.go ├── version └── version.go ├── swarm ├── image │ └── Dockerfile └── Dockerfile ├── .editorconfig ├── publisher ├── image │ └── Dockerfile └── LICENSE ├── pkg └── Makefile └── LICENSE /controller/web/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /controller/web/models.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/_templates/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /controller/registry/models.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/deis-version: -------------------------------------------------------------------------------- 1 | 1.13.0-dev 2 | -------------------------------------------------------------------------------- /controller/api/management/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /deisctl/deis-version: -------------------------------------------------------------------------------- 1 | 1.13.0-dev 2 | -------------------------------------------------------------------------------- /router/rootfs/opt/nginx/logs/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /controller/.dockerignore: -------------------------------------------------------------------------------- 1 | venv 2 | logs 3 | -------------------------------------------------------------------------------- /controller/api/south_migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /controller/web/templatetags/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Godeps/_workspace/.gitignore: -------------------------------------------------------------------------------- 1 | /pkg 2 | /bin 3 | -------------------------------------------------------------------------------- /contrib/vagrant/check: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | -------------------------------------------------------------------------------- /contrib/vagrant/install: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | -------------------------------------------------------------------------------- /controller/api/management/commands/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /contrib/linode/.gitignore: -------------------------------------------------------------------------------- 1 | linode-user-data.yaml 2 | -------------------------------------------------------------------------------- /deisctl/units/decorators/deis-logspout.service.decorator: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /logspout/SPONSORS: -------------------------------------------------------------------------------- 1 | DigitalOcean http://digitalocean.com -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/Sirupsen/logrus/.gitignore: -------------------------------------------------------------------------------- 1 | logrus 2 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/robfig/cron/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | -------------------------------------------------------------------------------- /store/base/templates/mon_keyring: -------------------------------------------------------------------------------- 1 | {{ getv "/deis/store/monKeyring" }} 2 | -------------------------------------------------------------------------------- /store/base/templates/admin_keyring: -------------------------------------------------------------------------------- 1 | {{ getv "/deis/store/adminKeyring" }} 2 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/ActiveState/tail/.gitignore: -------------------------------------------------------------------------------- 1 | .test 2 | .go 3 | 4 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/ActiveState/tail/cmd/gotail/.gitignore: -------------------------------------------------------------------------------- 1 | gotail 2 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/progrium/go-basher/.gitignore: -------------------------------------------------------------------------------- 1 | example/example 2 | -------------------------------------------------------------------------------- /contrib/aws/requirements.txt: -------------------------------------------------------------------------------- 1 | awscli==1.7.44 2 | boto==2.38.0 3 | docopt==0.6.2 4 | -------------------------------------------------------------------------------- /database/templates/AWS_ACCESS_KEY_ID: -------------------------------------------------------------------------------- 1 | {{ getv "/deis/store/gateway/accessKey" }} 2 | -------------------------------------------------------------------------------- /database/templates/WALE_S3_PREFIX: -------------------------------------------------------------------------------- 1 | s3://{{ getv "/deis/database/bucketName" }} 2 | -------------------------------------------------------------------------------- /router/rootfs/etc/confd/templates/deis.cert: -------------------------------------------------------------------------------- 1 | {{ getv "/deis/router/sslCert" }} 2 | -------------------------------------------------------------------------------- /router/rootfs/etc/confd/templates/deis.key: -------------------------------------------------------------------------------- 1 | {{ getv "/deis/router/sslKey" }} 2 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/go-martini/martini/wercker.yml: -------------------------------------------------------------------------------- 1 | box: wercker/golang@1.1.1 -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/lib/pq/.gitignore: -------------------------------------------------------------------------------- 1 | .db 2 | *.test 3 | *~ 4 | *.swp 5 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/progrium/go-basher/SPONSORS: -------------------------------------------------------------------------------- 1 | Deis Project http://deis.io -------------------------------------------------------------------------------- /client/make.bat: -------------------------------------------------------------------------------- 1 | godep go build -a -installsuffix cgo -ldflags '-s' -o deis.exe . 2 | -------------------------------------------------------------------------------- /contrib/digitalocean/check: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -eo pipefail -o nounset 4 | -------------------------------------------------------------------------------- /controller/registry/__init__.py: -------------------------------------------------------------------------------- 1 | from dockerclient import publish_release # noqa 2 | -------------------------------------------------------------------------------- /database/templates/AWS_SECRET_ACCESS_KEY: -------------------------------------------------------------------------------- 1 | {{ getv "/deis/store/gateway/secretKey" }} 2 | -------------------------------------------------------------------------------- /router/rootfs/etc/confd/templates/dhparam.pem: -------------------------------------------------------------------------------- 1 | {{ getv "/deis/router/sslDhparam" }} 2 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/codegangsta/inject/.gitignore: -------------------------------------------------------------------------------- 1 | inject 2 | inject.test 3 | -------------------------------------------------------------------------------- /controller/web/static/css/deis-controller.css: -------------------------------------------------------------------------------- 1 | .social-menu {margin: 20px 0 20px 15px;} 2 | -------------------------------------------------------------------------------- /controller/web/templates/rest_framework/api.html: -------------------------------------------------------------------------------- 1 | {% extends "rest_framework/base.html" %} 2 | -------------------------------------------------------------------------------- /deisctl/units/decorators/deis-router.service.decorator: -------------------------------------------------------------------------------- 1 | MachineMetadata="routerMesh=true" 2 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/leeor/etcd-sync/.gitignore: -------------------------------------------------------------------------------- 1 | .*.swp 2 | .*.swo 3 | *_etcd_data 4 | -------------------------------------------------------------------------------- /deisctl/units/decorators/deis-kube-kubelet.service.decorator: -------------------------------------------------------------------------------- 1 | MachineMetadata="dataPlane=true" 2 | -------------------------------------------------------------------------------- /deisctl/units/decorators/deis-kube-proxy.service.decorator: -------------------------------------------------------------------------------- 1 | MachineMetadata="routerMesh=true" 2 | -------------------------------------------------------------------------------- /deisctl/units/decorators/deis-publisher.service.decorator: -------------------------------------------------------------------------------- 1 | MachineMetadata="dataPlane=true" 2 | -------------------------------------------------------------------------------- /deisctl/units/decorators/deis-registry.service.decorator: -------------------------------------------------------------------------------- 1 | MachineMetadata="controlPlane=true" 2 | -------------------------------------------------------------------------------- /deisctl/units/decorators/deis-swarm-node.service.decorator: -------------------------------------------------------------------------------- 1 | MachineMetadata="dataPlane=true" 2 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/Masterminds/cookoo/doc/README.md: -------------------------------------------------------------------------------- 1 | Placeholder for documentation. 2 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/go-martini/martini/Godeps: -------------------------------------------------------------------------------- 1 | github.com/codegangsta/inject master 2 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/jonboulle/clockwork/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | go: 3 | - 1.3 4 | -------------------------------------------------------------------------------- /deisctl/units/decorators/deis-mesos-slave.service.decorator: -------------------------------------------------------------------------------- 1 | 2 | MachineMetadata="dataPlane=true" 3 | -------------------------------------------------------------------------------- /deisctl/units/decorators/deis-store-admin.service.decorator: -------------------------------------------------------------------------------- 1 | MachineMetadata="controlPlane=true" 2 | -------------------------------------------------------------------------------- /deisctl/units/decorators/deis-store-daemon.service.decorator: -------------------------------------------------------------------------------- 1 | MachineMetadata="controlPlane=true" 2 | -------------------------------------------------------------------------------- /deisctl/units/decorators/deis-store-gateway.service.decorator: -------------------------------------------------------------------------------- 1 | MachineMetadata="controlPlane=true" 2 | -------------------------------------------------------------------------------- /deisctl/units/decorators/deis-store-metadata.service.decorator: -------------------------------------------------------------------------------- 1 | MachineMetadata="controlPlane=true" 2 | -------------------------------------------------------------------------------- /deisctl/units/decorators/deis-store-monitor.service.decorator: -------------------------------------------------------------------------------- 1 | MachineMetadata="controlPlane=true" 2 | -------------------------------------------------------------------------------- /deisctl/units/decorators/deis-store-volume.service.decorator: -------------------------------------------------------------------------------- 1 | MachineMetadata="controlPlane=true" 2 | -------------------------------------------------------------------------------- /deisctl/units/decorators/deis-zookeeper.service.decorator: -------------------------------------------------------------------------------- 1 | 2 | MachineMetadata="controlPlane=true" 3 | -------------------------------------------------------------------------------- /deisctl/units/decorators/deis-mesos-marathon.service.decorator: -------------------------------------------------------------------------------- 1 | 2 | MachineMetadata="controlPlane=true" 3 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/mflag/MAINTAINERS: -------------------------------------------------------------------------------- 1 | Victor Vieux (@vieux) 2 | -------------------------------------------------------------------------------- /contrib/linode/requirements.txt: -------------------------------------------------------------------------------- 1 | colorama==0.3.3 2 | requests==2.7.0 3 | paramiko==1.15.2 4 | pyyaml==3.11 5 | -------------------------------------------------------------------------------- /deisctl/units/decorators/deis-cache.service.decorator: -------------------------------------------------------------------------------- 1 | 2 | [X-Fleet] 3 | MachineMetadata="controlPlane=true" 4 | -------------------------------------------------------------------------------- /deisctl/units/decorators/deis-logger.service.decorator: -------------------------------------------------------------------------------- 1 | 2 | [X-Fleet] 3 | MachineMetadata="controlPlane=true" 4 | -------------------------------------------------------------------------------- /tests/fixtures/test-postgresql/rootfs/docker-entrypoint-initdb.d/post-run.sh: -------------------------------------------------------------------------------- 1 | echo "Initialization complete." 2 | -------------------------------------------------------------------------------- /tests/main.go: -------------------------------------------------------------------------------- 1 | // Package tests contains integration tests for the Deis open source PaaS. 2 | package tests 3 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/engine/MAINTAINERS: -------------------------------------------------------------------------------- 1 | Solomon Hykes (@shykes) 2 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/term/MAINTAINERS: -------------------------------------------------------------------------------- 1 | Solomon Hykes (@shykes) 2 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/ugorji/go/codec/prebuild.go: -------------------------------------------------------------------------------- 1 | package codec 2 | 3 | //go:generate bash prebuild.sh 4 | -------------------------------------------------------------------------------- /controller/web/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/deis/master/controller/web/static/favicon.ico -------------------------------------------------------------------------------- /controller/web/static/img/404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/deis/master/controller/web/static/img/404.png -------------------------------------------------------------------------------- /deisctl/units/decorators/deis-builder.service.decorator: -------------------------------------------------------------------------------- 1 | 2 | [X-Fleet] 3 | MachineMetadata="controlPlane=true" 4 | -------------------------------------------------------------------------------- /deisctl/units/decorators/deis-controller.service.decorator: -------------------------------------------------------------------------------- 1 | 2 | [X-Fleet] 3 | MachineMetadata="controlPlane=true" 4 | -------------------------------------------------------------------------------- /deisctl/units/decorators/deis-database.service.decorator: -------------------------------------------------------------------------------- 1 | 2 | [X-Fleet] 3 | MachineMetadata="controlPlane=true" 4 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/Masterminds/cookoo/env.sh: -------------------------------------------------------------------------------- 1 | export GOPATH=$GOPATH:`pwd` 2 | export PATH=$PATH:`pwd`/bin 3 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/parsers/MAINTAINERS: -------------------------------------------------------------------------------- 1 | Erik Hollensbe (@erikh) 2 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/vendor/src/code.google.com/p/go/src/pkg/archive/tar/testdata/small.txt: -------------------------------------------------------------------------------- 1 | Kilts -------------------------------------------------------------------------------- /contrib/aws/install: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -eo pipefail -o nounset 4 | 5 | pip install -r requirements.txt 6 | -------------------------------------------------------------------------------- /contrib/digitalocean/install: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -eo pipefail -o nounset 4 | 5 | rigger-install-terraform 6 | -------------------------------------------------------------------------------- /controller/web/static/img/fork.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/deis/master/controller/web/static/img/fork.png -------------------------------------------------------------------------------- /controller/web/static/img/glyphs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/deis/master/controller/web/static/img/glyphs.png -------------------------------------------------------------------------------- /controller/web/static/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/deis/master/controller/web/static/img/logo.png -------------------------------------------------------------------------------- /controller/web/static/img/social.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/deis/master/controller/web/static/img/social.png -------------------------------------------------------------------------------- /deisctl/units/decorators/deis-kube-apiserver.service.decorator: -------------------------------------------------------------------------------- 1 | 2 | [X-Fleet] 3 | MachineMetadata="controlPlane=true" 4 | -------------------------------------------------------------------------------- /deisctl/units/decorators/deis-kube-scheduler.service.decorator: -------------------------------------------------------------------------------- 1 | 2 | [X-Fleet] 3 | MachineMetadata="controlPlane=true" 4 | -------------------------------------------------------------------------------- /deisctl/units/decorators/deis-mesos-master.service.decorator: -------------------------------------------------------------------------------- 1 | 2 | [X-Fleet] 3 | MachineMetadata="controlPlane=true" 4 | -------------------------------------------------------------------------------- /deisctl/units/decorators/deis-swarm-manager.service.decorator: -------------------------------------------------------------------------------- 1 | 2 | [X-Fleet] 3 | MachineMetadata="controlPlane=true" 4 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/reexec/MAINTAINERS: -------------------------------------------------------------------------------- 1 | Michael Crosby (@crosbymichael) 2 | -------------------------------------------------------------------------------- /controller/web/static/img/aws-ec2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/deis/master/controller/web/static/img/aws-ec2.png -------------------------------------------------------------------------------- /controller/web/static/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/deis/master/controller/web/static/img/favicon.png -------------------------------------------------------------------------------- /tests/bin/vagrant.sh: -------------------------------------------------------------------------------- 1 | function clean-vagrant { 2 | "${THIS_DIR}/halt-all-vagrants.sh" 3 | vagrant destroy --force 4 | } 5 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/stdcopy/MAINTAINERS: -------------------------------------------------------------------------------- 1 | Cristian Staretu (@unclejack) 2 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/vendor/src/code.google.com/p/go/src/pkg/archive/tar/testdata/small2.txt: -------------------------------------------------------------------------------- 1 | Google.com 2 | -------------------------------------------------------------------------------- /controller/web/static/img/blog-social.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/deis/master/controller/web/static/img/blog-social.png -------------------------------------------------------------------------------- /controller/web/static/img/cover-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/deis/master/controller/web/static/img/cover-image.png -------------------------------------------------------------------------------- /controller/web/static/img/deis_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/deis/master/controller/web/static/img/deis_logo.png -------------------------------------------------------------------------------- /controller/web/static/img/mag_glass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/deis/master/controller/web/static/img/mag_glass.png -------------------------------------------------------------------------------- /controller/web/static/img/menu-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/deis/master/controller/web/static/img/menu-logo.png -------------------------------------------------------------------------------- /deisctl/units/decorators/deis-kube-controller-manager.service.decorator: -------------------------------------------------------------------------------- 1 | 2 | [X-Fleet] 3 | MachineMetadata="controlPlane=true" 4 | -------------------------------------------------------------------------------- /docs/theme/deis/theme.conf: -------------------------------------------------------------------------------- 1 | [theme] 2 | inherit = classic 3 | pygments_style = monokai 4 | 5 | [options] 6 | rightsidebar = true 7 | -------------------------------------------------------------------------------- /docs/understanding_deis/DeisDataPlane.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/deis/master/docs/understanding_deis/DeisDataPlane.png -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/ActiveState/tail/cmd/gotail/Makefile: -------------------------------------------------------------------------------- 1 | default: gotail 2 | 3 | gotail: *.go ../../*.go 4 | go build 5 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/httputils/MAINTAINERS: -------------------------------------------------------------------------------- 1 | Cristian Staretu (@unclejack) 2 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/timeutils/MAINTAINERS: -------------------------------------------------------------------------------- 1 | Cristian Staretu (@unclejack) 2 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/truncindex/MAINTAINERS: -------------------------------------------------------------------------------- 1 | Cristian Staretu (@unclejack) 2 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/gorilla/context/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | 3 | go: 4 | - 1.0 5 | - 1.1 6 | - 1.2 7 | - tip 8 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/gorilla/mux/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | 3 | go: 4 | - 1.0 5 | - 1.1 6 | - 1.2 7 | - tip 8 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/ugorji/go/codec/codecgen/z.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | const genCodecPath = "github.com/ugorji/go/codec" 4 | -------------------------------------------------------------------------------- /controller/web/static/img/deis-graphic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/deis/master/controller/web/static/img/deis-graphic.png -------------------------------------------------------------------------------- /controller/web/static/img/deis_builder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/deis/master/controller/web/static/img/deis_builder.png -------------------------------------------------------------------------------- /controller/web/static/img/large-social.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/deis/master/controller/web/static/img/large-social.png -------------------------------------------------------------------------------- /docs/understanding_deis/DeisRouterMesh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/deis/master/docs/understanding_deis/DeisRouterMesh.png -------------------------------------------------------------------------------- /mesos/master: -------------------------------------------------------------------------------- 1 | FROM #PREFIX#mesos-template:#VERSION# 2 | 3 | COPY bin/master-boot /app/bin/boot 4 | 5 | ENTRYPOINT ["/app/bin/boot"] 6 | -------------------------------------------------------------------------------- /mesos/slave: -------------------------------------------------------------------------------- 1 | FROM #PREFIX#mesos-template:#VERSION# 2 | 3 | COPY bin/slave-boot /app/bin/boot 4 | 5 | ENTRYPOINT ["/app/bin/boot"] 6 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/daemon/graphdriver/btrfs/MAINTAINERS: -------------------------------------------------------------------------------- 1 | Alexander Larsson (@alexlarsson) 2 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/daemon/graphdriver/btrfs/dummy_unsupported.go: -------------------------------------------------------------------------------- 1 | // +build !linux !cgo 2 | 3 | package btrfs 4 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/archive/README.md: -------------------------------------------------------------------------------- 1 | This code provides helper functions for dealing with archive files. 2 | -------------------------------------------------------------------------------- /contrib/bumpver/bumpver.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "os" 5 | ) 6 | 7 | func main() { 8 | os.Exit(Command(nil)) 9 | } 10 | -------------------------------------------------------------------------------- /controller/bin/reload: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # gracefully reload gunicorn 4 | kill -HUP "$(cat /tmp/gunicorn.pid)" 5 | 6 | exit 0 7 | -------------------------------------------------------------------------------- /docs/managing_deis/DeisLoadBalancerDiagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/deis/master/docs/managing_deis/DeisLoadBalancerDiagram.png -------------------------------------------------------------------------------- /docs/understanding_deis/DeisControlPlane.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/deis/master/docs/understanding_deis/DeisControlPlane.png -------------------------------------------------------------------------------- /docs/understanding_deis/DeisSystemDiagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/deis/master/docs/understanding_deis/DeisSystemDiagram.png -------------------------------------------------------------------------------- /mesos/zookeeper/templates/server.list: -------------------------------------------------------------------------------- 1 | {{ range $index, $node := lsdir "/zookeeper/nodes" }}{{ if $index }},{{ end }}{{ $node }}:3888{{ end }} -------------------------------------------------------------------------------- /tests/fixtures/test-postgresql/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM postgres:9.3 2 | 3 | COPY rootfs/docker-entrypoint-initdb.d /docker-entrypoint-initdb.d 4 | -------------------------------------------------------------------------------- /contrib/aws/cloudformation.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "ParameterKey": "KeyPair", 4 | "ParameterValue": "deis" 5 | } 6 | ] 7 | -------------------------------------------------------------------------------- /controller/setup.cfg: -------------------------------------------------------------------------------- 1 | [flake8] 2 | max-line-length = 99 3 | exclude = api/migrations,api/south_migrations,templates,venv 4 | max-complexity = 12 5 | -------------------------------------------------------------------------------- /docs/understanding_deis/DeisGitPushWorkflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/deis/master/docs/understanding_deis/DeisGitPushWorkflow.png -------------------------------------------------------------------------------- /contrib/azure/README.md: -------------------------------------------------------------------------------- 1 | # Deis on Microsoft Azure 2 | 3 | Please refer to the instructions at http://docs.deis.io/en/latest/installing_deis/azure/. 4 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/api/MAINTAINERS: -------------------------------------------------------------------------------- 1 | Victor Vieux (@vieux) 2 | Jessie Frazelle (@jfrazelle) 3 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/lib/pq/Godeps/Godeps.json: -------------------------------------------------------------------------------- 1 | { 2 | "ImportPath": "github.com/lib/pq", 3 | "GoVersion": "go1.2.1", 4 | "Deps": [] 5 | } 6 | -------------------------------------------------------------------------------- /contrib/gce/README.md: -------------------------------------------------------------------------------- 1 | # Deis in Google Compute Engine 2 | 3 | Please refer to the instructions at http://docs.deis.io/en/latest/installing_deis/gce/. 4 | -------------------------------------------------------------------------------- /store/metadata/Dockerfile.template: -------------------------------------------------------------------------------- 1 | #FROM is generated dynamically by the Makefile 2 | 3 | ENTRYPOINT ["/app/bin/boot"] 4 | ADD bin/boot /app/bin/boot 5 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/robfig/cron/README.md: -------------------------------------------------------------------------------- 1 | [![GoDoc](http://godoc.org/github.com/robfig/cron?status.png)](http://godoc.org/github.com/robfig/cron) 2 | -------------------------------------------------------------------------------- /contrib/aws/README.md: -------------------------------------------------------------------------------- 1 | # Provision a Deis Cluster on Amazon AWS 2 | 3 | Please refer to the instructions at http://docs.deis.io/en/latest/installing_deis/aws. 4 | -------------------------------------------------------------------------------- /store/admin/Dockerfile.template: -------------------------------------------------------------------------------- 1 | #FROM is generated dynamically by the Makefile 2 | 3 | WORKDIR /app 4 | CMD ["/app/bin/boot"] 5 | ADD bin/boot /app/bin/boot 6 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/codegangsta/inject/update_readme.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | go get github.com/robertkrimen/godocdown/godocdown 3 | godocdown > README.md 4 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/coreos/go-etcd/etcd/version.go: -------------------------------------------------------------------------------- 1 | package etcd 2 | 3 | const ( 4 | version = "v2" 5 | packageVersion = "v2.0.0+git" 6 | ) 7 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/api/server/MAINTAINERS: -------------------------------------------------------------------------------- 1 | Victor Vieux (@vieux) 2 | # Johan Euphrosine (@proppy) 3 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/units/MAINTAINERS: -------------------------------------------------------------------------------- 1 | Victor Vieux (@vieux) 2 | Jessie Frazelle (@jfrazelle) 3 | -------------------------------------------------------------------------------- /contrib/digitalocean/destroy: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -eo pipefail -o nounset 4 | 5 | export TF_VAR_token="${DO_TOKEN}" 6 | 7 | terraform destroy -force 8 | -------------------------------------------------------------------------------- /contrib/linode/README.md: -------------------------------------------------------------------------------- 1 | # Provision a Deis Cluster on Linode 2 | 3 | Please refer to the instructions at http://docs.deis.io/en/latest/installing_deis/linode/. 4 | -------------------------------------------------------------------------------- /controller/api/exceptions.py: -------------------------------------------------------------------------------- 1 | class HealthcheckException(Exception): 2 | """Exception class used for when the application's health check fails""" 3 | pass 4 | -------------------------------------------------------------------------------- /Godeps/Readme: -------------------------------------------------------------------------------- 1 | This directory tree is generated automatically by godep. 2 | 3 | Please do not edit. 4 | 5 | See https://github.com/tools/godep for more information. 6 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/libcontainer/netlink/netlink_linux_arm.go: -------------------------------------------------------------------------------- 1 | package netlink 2 | 3 | func ifrDataByte(b byte) uint8 { 4 | return uint8(b) 5 | } 6 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/progrium/go-basher/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | go: 3 | - 1.2 4 | - 1.3 5 | - release 6 | - tip 7 | 8 | script: 9 | - go test -v . -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/progrium/go-basher/example/Makefile: -------------------------------------------------------------------------------- 1 | 2 | build: 3 | go get github.com/jteeuwen/go-bindata/... 4 | go-bindata bash 5 | go get 6 | go build -------------------------------------------------------------------------------- /controller/api/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | The **api** Django app presents a RESTful web API for interacting with the **deis** system. 3 | """ 4 | 5 | __version__ = '1.7.0' 6 | -------------------------------------------------------------------------------- /mesos/pkg/types/cron.go: -------------------------------------------------------------------------------- 1 | package types 2 | 3 | // Cron struct executes code with a time interval 4 | type Cron struct { 5 | Frequency string 6 | Code func() 7 | } 8 | -------------------------------------------------------------------------------- /mesos/zookeeper/conf.d/server-list.toml: -------------------------------------------------------------------------------- 1 | [template] 2 | src = "server.list" 3 | dest = "/opt/zookeeper/conf/server.list" 4 | keys = [ 5 | "/zookeeper/nodes", 6 | ] 7 | -------------------------------------------------------------------------------- /store/monitor/Dockerfile.template: -------------------------------------------------------------------------------- 1 | #FROM is generated dynamically by the Makefile 2 | 3 | EXPOSE 6789 4 | ENTRYPOINT ["/app/bin/boot"] 5 | ADD bin/boot /app/bin/boot 6 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/system/MAINTAINERS: -------------------------------------------------------------------------------- 1 | Michael Crosby (@crosbymichael) 2 | Victor Vieux (@vieux) 3 | -------------------------------------------------------------------------------- /contrib/openstack/README.md: -------------------------------------------------------------------------------- 1 | # Provision a Deis Cluster on OpenStack 2 | 3 | Please refer to the instructions at http://docs.deis.io/en/latest/installing_deis/openstack/. 4 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/archive/MAINTAINERS: -------------------------------------------------------------------------------- 1 | Cristian Staretu (@unclejack) 2 | Tibor Vass (@tiborvass) 3 | -------------------------------------------------------------------------------- /contrib/digitalocean/README.md: -------------------------------------------------------------------------------- 1 | # Provision a Deis Cluster on DigitalOcean 2 | 3 | Please refer to the instructions at http://docs.deis.io/en/latest/installing_deis/digitalocean/. 4 | -------------------------------------------------------------------------------- /registry/bin/reload: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Send SIGHUP to gunicorn in general, since we didn't launch it with `--pid` 4 | sudo -u registry pkill -HUP -f gunicorn || true 5 | -------------------------------------------------------------------------------- /contrib/bare-metal/README.md: -------------------------------------------------------------------------------- 1 | # Provision a Deis Cluster on bare-metal hardware 2 | 3 | Please refer to the instructions at http://docs.deis.io/en/latest/installing_deis/baremetal/. 4 | -------------------------------------------------------------------------------- /database/templates/WALE_S3_ENDPOINT: -------------------------------------------------------------------------------- 1 | http{{ if eq (getv "/deis/store/gateway/port") "443"}}s{{ end }}+path://{{ getv "/deis/store/gateway/host" }}:{{ getv "/deis/store/gateway/port" }} 2 | -------------------------------------------------------------------------------- /mesos/pkg/types/service-daemon.go: -------------------------------------------------------------------------------- 1 | package types 2 | 3 | // ServiceDaemon struct to a service daemon. 4 | type ServiceDaemon struct { 5 | Command string 6 | Args []string 7 | } 8 | -------------------------------------------------------------------------------- /mesos/zookeeper/conf.d/dynamic-cfg.toml: -------------------------------------------------------------------------------- 1 | [template] 2 | src = "zoo_cfg.dynamic" 3 | dest = "/opt/zookeeper/conf/fleet-zoo_cfg.dynamic" 4 | keys = [ 5 | "/zookeeper/nodes", 6 | ] 7 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/daemon/graphdriver/devmapper/MAINTAINERS: -------------------------------------------------------------------------------- 1 | Alexander Larsson (@alexlarsson) 2 | Vincent Batts (@vbatts) 3 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/libcontainer/netlink/MAINTAINERS: -------------------------------------------------------------------------------- 1 | Michael Crosby (@crosbymichael) 2 | Guillaume J. Charmes (@creack) 3 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/libcontainer/netlink/netlink_linux_notarm.go: -------------------------------------------------------------------------------- 1 | // +build !arm 2 | 3 | package netlink 4 | 5 | func ifrDataByte(b byte) int8 { 6 | return int8(b) 7 | } 8 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/gopkg.in/tomb.v1/README.md: -------------------------------------------------------------------------------- 1 | Installation and usage 2 | ---------------------- 3 | 4 | See [gopkg.in/tomb.v1](https://gopkg.in/tomb.v1) for documentation and usage details. 5 | -------------------------------------------------------------------------------- /controller/web/templates/rest_framework/login.html: -------------------------------------------------------------------------------- 1 | {% extends "rest_framework/login_base.html" %} 2 | 3 | {% block branding %} 4 |

Deis

5 | {% endblock %} 6 | -------------------------------------------------------------------------------- /store/base/conf.d/ceph.conf.toml: -------------------------------------------------------------------------------- 1 | [template] 2 | src = "ceph.conf" 3 | dest = "/etc/ceph/ceph.conf" 4 | uid = 0 5 | gid = 0 6 | mode = "0644" 7 | keys = [ 8 | "/deis/store", 9 | ] 10 | -------------------------------------------------------------------------------- /store/base/conf.d/etc_hosts.toml: -------------------------------------------------------------------------------- 1 | [template] 2 | src = "etc_hosts" 3 | dest = "/etc/hosts" 4 | uid = 0 5 | gid = 0 6 | mode = "0644" 7 | keys = [ 8 | "/deis/store/hosts", 9 | ] 10 | -------------------------------------------------------------------------------- /docs/reference/server/api.admin.rst: -------------------------------------------------------------------------------- 1 | :description: Python API Reference for the Deis api.admin module 2 | 3 | api.admin 4 | --------- 5 | .. contents:: 6 | :local: 7 | .. automodule:: api.admin 8 | -------------------------------------------------------------------------------- /docs/reference/server/api.utils.rst: -------------------------------------------------------------------------------- 1 | :description: Python API Reference for the Deis api.utils module 2 | 3 | api.utils 4 | --------- 5 | .. contents:: 6 | :local: 7 | .. automodule:: api.utils 8 | -------------------------------------------------------------------------------- /docs/reference/server/api.views.rst: -------------------------------------------------------------------------------- 1 | :description: Python API Reference for the Deis api.views module 2 | 3 | api.views 4 | --------- 5 | .. contents:: 6 | :local: 7 | .. automodule:: api.views 8 | -------------------------------------------------------------------------------- /logger/drain/drain.go: -------------------------------------------------------------------------------- 1 | package drain 2 | 3 | // LogDrain is an interface for pluggable components that ship logs to a remote destination. 4 | type LogDrain interface { 5 | Send(string) error 6 | } 7 | -------------------------------------------------------------------------------- /mesos/zookeeper/zoo.cfg: -------------------------------------------------------------------------------- 1 | tickTime=2000 2 | initLimit=100 3 | syncLimit=5 4 | dataDir=/opt/zookeeper-data/data 5 | standaloneEnabled=false 6 | dynamicConfigFile=/opt/zookeeper-data/zoo_cfg.dynamic 7 | 8 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/archive/testdata/broken.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/deis/master/Godeps/_workspace/src/github.com/docker/docker/pkg/archive/testdata/broken.tar -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/libtrust/MAINTAINERS: -------------------------------------------------------------------------------- 1 | Solomon Hykes 2 | Josh Hawn (github: jlhawn) 3 | Derek McGowan (github: dmcgowan) 4 | -------------------------------------------------------------------------------- /docs/reference/server/api.fields.rst: -------------------------------------------------------------------------------- 1 | :description: Python API Reference for the Deis api.fields module 2 | 3 | api.fields 4 | ---------- 5 | .. contents:: 6 | :local: 7 | .. automodule:: api.fields 8 | -------------------------------------------------------------------------------- /logger/image/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.2 2 | 3 | ENTRYPOINT ["/bin/logger"] 4 | CMD ["--enable-publish"] 5 | EXPOSE 514 6 | EXPOSE 8088 7 | 8 | ADD . / 9 | 10 | ENV DEIS_RELEASE 1.13.0-dev 11 | -------------------------------------------------------------------------------- /mesos/zookeeper/templates/zoo_cfg.dynamic: -------------------------------------------------------------------------------- 1 | {{ range $node := lsdir "/zookeeper/nodes" }}server.{{ getv (printf "/zookeeper/nodes/%s/id" $node) }}={{ $node }}:2181:2888:participant;{{ $node }}:3888 2 | {{ end }} -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/go-martini/martini/go_version.go: -------------------------------------------------------------------------------- 1 | // +build !go1.1 2 | 3 | package martini 4 | 5 | func MartiniDoesNotSupportGo1Point0() { 6 | "Martini requires Go 1.1 or greater." 7 | } 8 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/lib/pq/Godeps/Readme: -------------------------------------------------------------------------------- 1 | This directory tree is generated automatically by godep. 2 | 3 | Please do not edit. 4 | 5 | See https://github.com/tools/godep for more information. 6 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/lib/pq/oid/doc.go: -------------------------------------------------------------------------------- 1 | // Package oid contains OID constants 2 | // as defined by the Postgres server. 3 | package oid 4 | 5 | // Oid is a Postgres Object ID. 6 | type Oid uint32 7 | -------------------------------------------------------------------------------- /docs/reference/server/api.routers.rst: -------------------------------------------------------------------------------- 1 | :description: Python API Reference for the Deis api.routers module 2 | 3 | api.routers 4 | ----------- 5 | .. contents:: 6 | :local: 7 | .. automodule:: api.routers 8 | -------------------------------------------------------------------------------- /mesos/pkg/boot/mesos/marathon/bash/update-hosts-file.bash: -------------------------------------------------------------------------------- 1 | set -eo pipefail 2 | 3 | # set debug based on envvar 4 | [[ $DEBUG ]] && set -x 5 | 6 | main() { 7 | echo "$HOST $(hostname)" >> /etc/hosts 8 | } 9 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/tarsum/testdata/xattr/layer.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/deis/master/Godeps/_workspace/src/github.com/docker/docker/pkg/tarsum/testdata/xattr/layer.tar -------------------------------------------------------------------------------- /database/conf.d/create_bucket.toml: -------------------------------------------------------------------------------- 1 | [template] 2 | src = "create_bucket" 3 | dest = "/app/bin/create_bucket" 4 | uid = 0 5 | gid = 0 6 | mode = "0755" 7 | keys = [ 8 | "/deis/store/gateway", 9 | ] 10 | -------------------------------------------------------------------------------- /docs/reference/server/api.viewsets.rst: -------------------------------------------------------------------------------- 1 | :description: Python API Reference for the Deis api.viewsets module 2 | 3 | api.viewsets 4 | ------------ 5 | .. contents:: 6 | :local: 7 | .. automodule:: api.viewsets 8 | -------------------------------------------------------------------------------- /mesos/pkg/types/script.go: -------------------------------------------------------------------------------- 1 | package types 2 | 3 | // Script struct to specify a script. 4 | type Script struct { 5 | Name string 6 | Params map[string]string 7 | Content func(string) ([]byte, error) 8 | } 9 | -------------------------------------------------------------------------------- /version/version.go: -------------------------------------------------------------------------------- 1 | package version 2 | 3 | // Version identifies this Deis product revision. 4 | const Version = "1.13.0-dev" 5 | 6 | // API identifies the latest Deis api verison 7 | const APIVersion = "1.7" 8 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/system/meminfo_unsupported.go: -------------------------------------------------------------------------------- 1 | // +build !linux 2 | 3 | package system 4 | 5 | func ReadMemInfo() (*MemInfo, error) { 6 | return nil, ErrNotSupportedPlatform 7 | } 8 | -------------------------------------------------------------------------------- /router/rootfs/etc/confd/conf.d/generate-certs.toml: -------------------------------------------------------------------------------- 1 | [template] 2 | src = "generate-certs" 3 | dest = "/bin/generate-certs" 4 | uid = 0 5 | gid = 0 6 | mode = "0755" 7 | keys = [ 8 | "/deis/certs" 9 | ] 10 | -------------------------------------------------------------------------------- /store/base/conf.d/mon_keyring.toml: -------------------------------------------------------------------------------- 1 | [template] 2 | src = "mon_keyring" 3 | dest = "/etc/ceph/ceph.mon.keyring" 4 | uid = 0 5 | gid = 0 6 | mode = "0644" 7 | keys = [ 8 | "/deis/store/monKeyring", 9 | ] 10 | -------------------------------------------------------------------------------- /docs/reference/server/api.middleware.rst: -------------------------------------------------------------------------------- 1 | :description: Python API Reference for the Deis api.middleware module 2 | 3 | api.middleware 4 | -------------- 5 | .. contents:: 6 | :local: 7 | .. automodule:: api.middleware 8 | -------------------------------------------------------------------------------- /docs/reference/server/registry.rst: -------------------------------------------------------------------------------- 1 | :description: 2 | 3 | registry 4 | ======== 5 | 6 | registry.dockerclient 7 | --------------------- 8 | .. contents:: 9 | :local: 10 | .. automodule:: registry.dockerclient 11 | -------------------------------------------------------------------------------- /logspout/image/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.2 2 | 3 | ENV DOCKER_HOST unix:///tmp/docker.sock 4 | ENV ROUTESPATH /tmp 5 | CMD ["/bin/logspout"] 6 | 7 | ADD logspout /bin/logspout 8 | 9 | ENV DEIS_RELEASE 1.13.0-dev 10 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/ActiveState/tail/ratelimiter/storage.go: -------------------------------------------------------------------------------- 1 | package ratelimiter 2 | 3 | type Storage interface { 4 | GetBucketFor(string) (*LeakyBucket, error) 5 | SetBucketFor(string, LeakyBucket) error 6 | } 7 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/symlink/MAINTAINERS: -------------------------------------------------------------------------------- 1 | Tibor Vass (@tiborvass) 2 | Cristian Staretu (@unclejack) 3 | Tianon Gravi (@tianon) 4 | -------------------------------------------------------------------------------- /database/conf.d/WALE_S3_ENDPOINT.toml: -------------------------------------------------------------------------------- 1 | [template] 2 | src = "WALE_S3_ENDPOINT" 3 | dest = "/etc/wal-e.d/env/WALE_S3_ENDPOINT" 4 | uid = 0 5 | gid = 70 6 | mode = "0640" 7 | keys = [ 8 | "/deis/store/gateway", 9 | ] 10 | -------------------------------------------------------------------------------- /docs/reference/server/api.models.rst: -------------------------------------------------------------------------------- 1 | :description: Python API Reference for the Deis api.models module 2 | 3 | api.models 4 | ---------- 5 | .. contents:: 6 | :local: 7 | .. automodule:: api.models 8 | :no-undoc-members: 9 | -------------------------------------------------------------------------------- /docs/reference/server/api.permissions.rst: -------------------------------------------------------------------------------- 1 | :description: Python API Reference for the Deis api.permissions module 2 | 3 | api.permissions 4 | --------------- 5 | .. contents:: 6 | :local: 7 | .. automodule:: api.permissions 8 | -------------------------------------------------------------------------------- /docs/reference/server/api.serializers.rst: -------------------------------------------------------------------------------- 1 | :description: Python API Reference for the Deis api.serializers module 2 | 3 | api.serializers 4 | --------------- 5 | .. contents:: 6 | :local: 7 | .. automodule:: api.serializers 8 | -------------------------------------------------------------------------------- /router/rootfs/bin/get_src: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | hash="$1" 4 | url="$2" 5 | f=$(basename "$url") 6 | 7 | curl -sSL "$url" -o "$f" 8 | echo "$hash $f" | sha256sum -c - || exit 10 9 | tar xzf "$f" 10 | rm "$f" 11 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/lib/pq/certs/README: -------------------------------------------------------------------------------- 1 | This directory contains certificates and private keys for testing some 2 | SSL-related functionality in Travis. Do NOT use these certificates for 3 | anything other than testing. 4 | -------------------------------------------------------------------------------- /database/conf.d/AWS_ACCESS_KEY_ID.toml: -------------------------------------------------------------------------------- 1 | [template] 2 | src = "AWS_ACCESS_KEY_ID" 3 | dest = "/etc/wal-e.d/env/AWS_ACCESS_KEY_ID" 4 | uid = 0 5 | gid = 70 6 | mode = "0640" 7 | keys = [ 8 | "/deis/store/gateway", 9 | ] 10 | -------------------------------------------------------------------------------- /store/base/conf.d/admin_keyring.toml: -------------------------------------------------------------------------------- 1 | [template] 2 | src = "admin_keyring" 3 | dest = "/etc/ceph/ceph.client.admin.keyring" 4 | uid = 0 5 | gid = 0 6 | mode = "0644" 7 | keys = [ 8 | "/deis/store/adminKeyring", 9 | ] 10 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/daemon/graphdriver/driver_unsupported.go: -------------------------------------------------------------------------------- 1 | // +build !linux 2 | 3 | package graphdriver 4 | 5 | func GetFSMagic(rootpath string) (FsMagic, error) { 6 | return FsMagicUnsupported, nil 7 | } 8 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/signal/signal_unsupported.go: -------------------------------------------------------------------------------- 1 | // +build !linux,!darwin,!freebsd 2 | 3 | package signal 4 | 5 | import ( 6 | "syscall" 7 | ) 8 | 9 | var SignalMap = map[string]syscall.Signal{} 10 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/system/errors.go: -------------------------------------------------------------------------------- 1 | package system 2 | 3 | import ( 4 | "errors" 5 | ) 6 | 7 | var ( 8 | ErrNotSupportedPlatform = errors.New("platform and architecture is not supported") 9 | ) 10 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docopt/docopt-go/test_golang.docopt: -------------------------------------------------------------------------------- 1 | r"""usage: prog [NAME_-2]...""" 2 | $ prog 10 20 3 | {"NAME_-2": ["10", "20"]} 4 | 5 | $ prog 10 6 | {"NAME_-2": ["10"]} 7 | 8 | $ prog 9 | {"NAME_-2": []} 10 | -------------------------------------------------------------------------------- /controller/conf.d/gconf.toml: -------------------------------------------------------------------------------- 1 | [template] 2 | src = "gconf.py" 3 | dest = "/app/deis/gconf.py" 4 | uid = 1000 5 | gid = 1000 6 | mode = "0640" 7 | keys = [ 8 | "/deis/controller", 9 | ] 10 | reload_cmd = "/app/bin/reload" 11 | -------------------------------------------------------------------------------- /mesos/pkg/types/command.go: -------------------------------------------------------------------------------- 1 | package types 2 | 3 | import ( 4 | "io" 5 | "os/exec" 6 | ) 7 | 8 | // Command struct to execute commands. 9 | type Command struct { 10 | Stdout, Stderr io.Writer 11 | 12 | cmd *exec.Cmd 13 | } 14 | -------------------------------------------------------------------------------- /registry/conf.d/create_bucket.toml: -------------------------------------------------------------------------------- 1 | [template] 2 | src = "create_bucket" 3 | dest = "/app/bin/create_bucket" 4 | uid = 0 5 | gid = 0 6 | mode = "0755" 7 | keys = [ 8 | "/deis/registry", 9 | "/deis/store/gateway", 10 | ] 11 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/reexec/command_unsupported.go: -------------------------------------------------------------------------------- 1 | // +build !linux 2 | 3 | package reexec 4 | 5 | import ( 6 | "os/exec" 7 | ) 8 | 9 | func Command(args ...string) *exec.Cmd { 10 | return nil 11 | } 12 | -------------------------------------------------------------------------------- /database/conf.d/AWS_SECRET_ACCESS_KEY.toml: -------------------------------------------------------------------------------- 1 | [template] 2 | src = "AWS_SECRET_ACCESS_KEY" 3 | dest = "/etc/wal-e.d/env/AWS_SECRET_ACCESS_KEY" 4 | uid = 0 5 | gid = 70 6 | mode = "0640" 7 | keys = [ 8 | "/deis/store/gateway", 9 | ] 10 | -------------------------------------------------------------------------------- /docs/reference/server/api.authentication.rst: -------------------------------------------------------------------------------- 1 | :description: Python API Reference for the Deis api.authentication module 2 | 3 | api.authentication 4 | ------------------ 5 | .. contents:: 6 | :local: 7 | .. automodule:: api.authentication 8 | -------------------------------------------------------------------------------- /mesos/template: -------------------------------------------------------------------------------- 1 | FROM ubuntu-debootstrap:14.04 2 | 3 | ENV DEBIAN_FRONTEND noninteractive 4 | 5 | COPY build-mesos.sh /tmp/build.sh 6 | 7 | RUN DOCKER_BUILD=true MESOS="#VERSION#" /tmp/build.sh 8 | 9 | ENV DEIS_RELEASE 1.13.0-dev 10 | -------------------------------------------------------------------------------- /database/conf.d/WALE_S3_PREFIX.toml: -------------------------------------------------------------------------------- 1 | [template] 2 | src = "WALE_S3_PREFIX" 3 | dest = "/etc/wal-e.d/env/WALE_S3_PREFIX" 4 | uid = 0 5 | gid = 70 6 | mode = "0640" 7 | keys = [ 8 | "/deis/store/gateway", 9 | "/deis/database", 10 | ] 11 | -------------------------------------------------------------------------------- /database/conf.d/reload.toml: -------------------------------------------------------------------------------- 1 | [template] 2 | src = "reload" 3 | dest = "/usr/local/bin/reload" 4 | owner = "root" 5 | group = "root" 6 | mode = "0755" 7 | keys = [ 8 | "/deis/database", 9 | ] 10 | reload_cmd = "/usr/local/bin/reload" 11 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/gopkg.in/yaml.v2/suite_test.go: -------------------------------------------------------------------------------- 1 | package yaml_test 2 | 3 | import ( 4 | . "gopkg.in/check.v1" 5 | "testing" 6 | ) 7 | 8 | func Test(t *testing.T) { TestingT(t) } 9 | 10 | type S struct{} 11 | 12 | var _ = Suite(&S{}) 13 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/ActiveState/tail/tail_posix.go: -------------------------------------------------------------------------------- 1 | // +build linux darwin freebsd 2 | 3 | package tail 4 | 5 | import ( 6 | "os" 7 | ) 8 | 9 | func OpenFile(name string) (file *os.File, err error) { 10 | return os.Open(name) 11 | } 12 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/system/lstat_windows.go: -------------------------------------------------------------------------------- 1 | // +build windows 2 | 3 | package system 4 | 5 | func Lstat(path string) (*Stat, error) { 6 | // should not be called on cli code path 7 | return nil, ErrNotSupportedPlatform 8 | } 9 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/howeyc/fsnotify/.gitignore: -------------------------------------------------------------------------------- 1 | # Setup a Global .gitignore for OS and editor generated files: 2 | # https://help.github.com/articles/ignoring-files 3 | # git config --global core.excludesfile ~/.gitignore_global 4 | 5 | .vagrant 6 | -------------------------------------------------------------------------------- /database/conf.d/pg_hba.conf.toml: -------------------------------------------------------------------------------- 1 | [template] 2 | src = "pg_hba.conf" 3 | dest = "/etc/postgresql/main/pg_hba.conf" 4 | uid = 70 5 | gid = 70 6 | mode = "0640" 7 | keys = [ 8 | "/deis/database", 9 | ] 10 | reload_cmd = "/usr/local/bin/reload" 11 | -------------------------------------------------------------------------------- /router/rootfs/etc/confd/conf.d/deis.cert.toml: -------------------------------------------------------------------------------- 1 | [template] 2 | src = "deis.cert" 3 | dest = "/etc/ssl/deis.cert" 4 | uid = 0 5 | gid = 0 6 | mode = "0644" 7 | keys = [ 8 | "/deis/router", 9 | ] 10 | reload_cmd = "/opt/nginx/sbin/nginx -s reload" 11 | -------------------------------------------------------------------------------- /router/rootfs/etc/confd/conf.d/deis.key.toml: -------------------------------------------------------------------------------- 1 | [template] 2 | src = "deis.key" 3 | dest = "/etc/ssl/deis.key" 4 | uid = 0 5 | gid = 0 6 | mode = "0644" 7 | keys = [ 8 | "/deis/router", 9 | ] 10 | reload_cmd = "/opt/nginx/sbin/nginx -s reload" 11 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/ActiveState/tail/Makefile: -------------------------------------------------------------------------------- 1 | default: test 2 | 3 | test: *.go 4 | go test -v ./... 5 | 6 | fmt: 7 | gofmt -w . 8 | 9 | # Run the test in an isolated environment. 10 | fulltest: 11 | docker build -t ActiveState/tail . 12 | -------------------------------------------------------------------------------- /client/controller/client/home_unix.go: -------------------------------------------------------------------------------- 1 | // +build linux darwin 2 | 3 | package client 4 | 5 | import ( 6 | "os" 7 | ) 8 | 9 | // FindHome returns the HOME directory of the current user 10 | func FindHome() string { 11 | return os.Getenv("HOME") 12 | } 13 | -------------------------------------------------------------------------------- /client/controller/client/home_windows.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "os" 5 | ) 6 | 7 | // FindHome returns the HOME directory of the current user 8 | func FindHome() string { 9 | return os.Getenv("HOMEDRIVE") + os.Getenv("HOMEPATH") 10 | } 11 | -------------------------------------------------------------------------------- /router/rootfs/etc/confd/conf.d/ssl.conf.toml: -------------------------------------------------------------------------------- 1 | [template] 2 | src = "ssl.conf" 3 | dest = "/opt/nginx/conf/ssl.conf" 4 | uid = 0 5 | gid = 0 6 | mode = "0644" 7 | keys = [ 8 | "/deis/router", 9 | ] 10 | reload_cmd = "/opt/nginx/sbin/nginx -s reload" 11 | -------------------------------------------------------------------------------- /swarm/image/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.2 2 | 3 | COPY bin /app/bin/ 4 | WORKDIR /app/bin 5 | 6 | ENTRYPOINT ["/app/bin/swarm"] 7 | CMD ["--help"] 8 | ENV SWARM_HOST :2375 9 | EXPOSE 2375 10 | VOLUME $HOME/.swarm 11 | 12 | ENV DEIS_RELEASE 1.13.0-dev 13 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/system/umask.go: -------------------------------------------------------------------------------- 1 | // +build !windows 2 | 3 | package system 4 | 5 | import ( 6 | "syscall" 7 | ) 8 | 9 | func Umask(newmask int) (oldmask int, err error) { 10 | return syscall.Umask(newmask), nil 11 | } 12 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/system/umask_windows.go: -------------------------------------------------------------------------------- 1 | // +build windows 2 | 3 | package system 4 | 5 | func Umask(newmask int) (oldmask int, err error) { 6 | // should not be called on cli code path 7 | return 0, ErrNotSupportedPlatform 8 | } 9 | -------------------------------------------------------------------------------- /controller/dev_requirements.txt: -------------------------------------------------------------------------------- 1 | # Run "make coverage" or "make test-unit" for the % of code exercised during tests 2 | coverage>=4.0 3 | 4 | # Run "make flake8" to check python syntax and style 5 | flake8==2.4.1 6 | 7 | # Used for mocking endpoints 8 | mock==1.0.1 9 | -------------------------------------------------------------------------------- /database/conf.d/postgresql.conf.toml: -------------------------------------------------------------------------------- 1 | [template] 2 | src = "postgresql.conf" 3 | dest = "/etc/postgresql/main/postgresql.conf" 4 | uid = 70 5 | gid = 70 6 | mode = "0644" 7 | keys = [ 8 | "/deis/database", 9 | ] 10 | reload_cmd = "/usr/local/bin/reload" 11 | -------------------------------------------------------------------------------- /router/rootfs/bin/check: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Check that the configuration for deis-router is valid. 4 | # 5 | 6 | if grep -q "" "$1" ; then 7 | exit 1 8 | fi 9 | 10 | if ! /opt/nginx/sbin/nginx -t -c "$1" ; then 11 | exit 1 12 | fi 13 | -------------------------------------------------------------------------------- /router/rootfs/etc/confd/conf.d/deis.conf.toml: -------------------------------------------------------------------------------- 1 | [template] 2 | src = "deis.conf" 3 | dest = "/opt/nginx/conf/deis.conf" 4 | uid = 0 5 | gid = 0 6 | mode = "0644" 7 | keys = [ 8 | "/deis/router", 9 | ] 10 | reload_cmd = "/opt/nginx/sbin/nginx -s reload" 11 | -------------------------------------------------------------------------------- /router/rootfs/etc/confd/conf.d/dhparam.pem.toml: -------------------------------------------------------------------------------- 1 | [template] 2 | src = "dhparam.pem" 3 | dest = "/etc/ssl/dhparam.pem" 4 | uid = 0 5 | gid = 0 6 | mode = "0644" 7 | keys = [ 8 | "/deis/router", 9 | ] 10 | reload_cmd = "/opt/nginx/sbin/nginx -s reload" 11 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/Sirupsen/logrus/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | go: 3 | - 1.2 4 | - 1.3 5 | - tip 6 | install: 7 | - go get github.com/stretchr/testify 8 | - go get github.com/stvp/go-udp-testing 9 | - go get github.com/tobi/airbrake-go 10 | -------------------------------------------------------------------------------- /store/gateway/Dockerfile.template: -------------------------------------------------------------------------------- 1 | #FROM is generated dynamically by the Makefile 2 | 3 | ADD build.sh /tmp/build.sh 4 | 5 | RUN DOCKER_BUILD=true /tmp/build.sh 6 | 7 | WORKDIR /app 8 | EXPOSE 8888 9 | CMD ["/app/bin/boot"] 10 | ADD bin/boot /app/bin/boot 11 | 12 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/vendor/src/code.google.com/p/go/src/pkg/archive/tar/testdata/v7.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/deis/master/Godeps/_workspace/src/github.com/docker/docker/vendor/src/code.google.com/p/go/src/pkg/archive/tar/testdata/v7.tar -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/fsouza/go-dockerclient/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | go: 3 | - 1.1.2 4 | - 1.2.2 5 | - 1.3.1 6 | - tip 7 | env: 8 | - GOARCH=amd64 9 | - GOARCH=386 10 | install: 11 | - go get -d ./... 12 | script: 13 | - go test ./... 14 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/api/README.md: -------------------------------------------------------------------------------- 1 | This directory contains code pertaining to the Docker API: 2 | 3 | - Used by the docker client when communicating with the docker daemon 4 | 5 | - Used by third party tools wishing to interface with the docker daemon 6 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/engine/helpers_test.go: -------------------------------------------------------------------------------- 1 | package engine 2 | 3 | import ( 4 | "testing" 5 | ) 6 | 7 | var globalTestID string 8 | 9 | func mkJob(t *testing.T, name string, args ...string) *Job { 10 | return New().Job(name, args...) 11 | } 12 | -------------------------------------------------------------------------------- /client/pkg/webbrowser/webbrowser_darwin.go: -------------------------------------------------------------------------------- 1 | package webbrowser 2 | 3 | import ( 4 | "os/exec" 5 | ) 6 | 7 | // Webbrowser opens a url with the default browser. 8 | func Webbrowser(u string) (err error) { 9 | _, err = exec.Command("open", u).Output() 10 | return 11 | } 12 | -------------------------------------------------------------------------------- /contrib/vagrant/destroy: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | function _destroy-all-vagrants { 4 | VMS=$(vagrant global-status | grep deis | awk '{ print $5 }') 5 | for dir in $VMS; do 6 | cd ${dir} && vagrant destroy --force 7 | done 8 | } 9 | 10 | _destroy-all-vagrants 11 | -------------------------------------------------------------------------------- /tests/bin/halt-all-vagrants.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Tells vagrant to halt all running VMs with "deis" in the name. 4 | 5 | RUNNING_VMS=$(vagrant global-status | grep deis | grep running | awk '{ print $5 }') 6 | for dir in $RUNNING_VMS; do 7 | cd $dir && vagrant halt 8 | done 9 | -------------------------------------------------------------------------------- /client/pkg/webbrowser/webbrowser_linux.go: -------------------------------------------------------------------------------- 1 | package webbrowser 2 | 3 | import ( 4 | "os/exec" 5 | ) 6 | 7 | // Webbrowser opens a URL with the default browser. 8 | func Webbrowser(u string) (err error) { 9 | _, err = exec.Command("xdg-open", u).Output() 10 | return 11 | } 12 | -------------------------------------------------------------------------------- /store/base/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu-debootstrap:14.04 2 | 3 | ENV DEBIAN_FRONTEND noninteractive 4 | 5 | ADD build.sh /tmp/build.sh 6 | 7 | RUN DOCKER_BUILD=true /tmp/build.sh 8 | 9 | # Add shared confd configuration 10 | ADD . /app 11 | 12 | ENV DEIS_RELEASE 1.13.0-dev 13 | 14 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/tarsum/MAINTAINERS: -------------------------------------------------------------------------------- 1 | Derek McGowan (github: dmcgowan) 2 | Eric Windisch (github: ewindisch) 3 | Josh Hawn (github: jlhawn) 4 | Vincent Batts (github: vbatts) 5 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/vendor/src/code.google.com/p/go/src/pkg/archive/tar/testdata/writer-big.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/deis/master/Godeps/_workspace/src/github.com/docker/docker/vendor/src/code.google.com/p/go/src/pkg/archive/tar/testdata/writer-big.tar -------------------------------------------------------------------------------- /contrib/vagrant/config.sh: -------------------------------------------------------------------------------- 1 | export SUGGEST_DEIS_TEST_DOMAIN="local3.deisapp.com" 2 | export DEIS_TEST_SSH_KEY="${HOME}/.vagrant.d/insecure_private_key" 3 | export SUGGEST_DEIS_SSH_KEY="${DEIS_TEST_SSH_KEY}" 4 | 5 | rigger-save-vars SUGGEST_DEIS_TEST_DOMAIN SUGGEST_DEIS_SSH_KEY DEIS_TEST_SSH_KEY 6 | -------------------------------------------------------------------------------- /logger/storage/adapter.go: -------------------------------------------------------------------------------- 1 | package storage 2 | 3 | // Adapter is an interface for pluggable components that store log messages. 4 | type Adapter interface { 5 | Write(string, string) error 6 | Read(string, int) ([]string, error) 7 | Destroy(string) error 8 | Reopen() error 9 | } 10 | -------------------------------------------------------------------------------- /store/daemon/Dockerfile.template: -------------------------------------------------------------------------------- 1 | #FROM is generated dynamically by the Makefile 2 | 3 | EXPOSE 6800 6801 6802 6803 4 | 5 | ADD bin/boot /app/bin/boot 6 | ENTRYPOINT ["/app/bin/boot"] 7 | 8 | # remove osd from copy-on-write 9 | VOLUME /var/lib/ceph/osd 10 | 11 | CMD ["ceph-osd"] 12 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/howeyc/fsnotify/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | ## Moving Notice 4 | 5 | There is a fork being actively developed with a new API in preparation for the Go Standard Library: 6 | [github.com/go-fsnotify/fsnotify](https://github.com/go-fsnotify/fsnotify) 7 | 8 | -------------------------------------------------------------------------------- /client/pkg/webbrowser/webbrowser_windows.go: -------------------------------------------------------------------------------- 1 | package webbrowser 2 | 3 | import ( 4 | "os/exec" 5 | ) 6 | 7 | // Webbrowser opens a URL with the default browser. 8 | func Webbrowser(u string) (err error) { 9 | _, err = exec.Command("cmd", "/c", "start", u).Output() 10 | return 11 | } 12 | -------------------------------------------------------------------------------- /controller/deis/context_processors.py: -------------------------------------------------------------------------------- 1 | 2 | from django.contrib.sites.models import get_current_site 3 | from django.utils.functional import SimpleLazyObject 4 | 5 | 6 | def site(request): 7 | return { 8 | 'site': SimpleLazyObject(lambda: get_current_site(request)), 9 | } 10 | -------------------------------------------------------------------------------- /registry/conf.d/config.toml: -------------------------------------------------------------------------------- 1 | [template] 2 | src = "config.yml" 3 | dest = "/docker-registry/config/config.yml" 4 | uid = 0 5 | gid = 0 6 | mode = "0644" 7 | keys = [ 8 | "/deis/cache", 9 | "/deis/registry", 10 | "/deis/store/gateway", 11 | ] 12 | reload_cmd = "/app/bin/reload" 13 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/image/graph.go: -------------------------------------------------------------------------------- 1 | package image 2 | 3 | import ( 4 | "github.com/docker/docker/daemon/graphdriver" 5 | ) 6 | 7 | type Graph interface { 8 | Get(id string) (*Image, error) 9 | ImageRoot(id string) string 10 | Driver() graphdriver.Driver 11 | } 12 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/registry/MAINTAINERS: -------------------------------------------------------------------------------- 1 | Sam Alba (@samalba) 2 | Joffrey Fuhrer (@shin-) 3 | Ken Cochrane (@kencochrane) 4 | Vincent Batts (@vbatts) 5 | Olivier Gambier (@dmp42) 6 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/vendor/src/code.google.com/p/go/src/pkg/archive/tar/testdata/writer-big-long.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/deis/master/Godeps/_workspace/src/github.com/docker/docker/vendor/src/code.google.com/p/go/src/pkg/archive/tar/testdata/writer-big-long.tar -------------------------------------------------------------------------------- /store/base/templates/etc_hosts: -------------------------------------------------------------------------------- 1 | {{ range gets "/deis/store/hosts/*" }}{{ base .Key }} {{ .Value }} 2 | {{ end }} 3 | 4 | ff00::0 ip6-mcastprefix 5 | ff02::1 ip6-allnodes 6 | ff02::2 ip6-allrouters 7 | 127.0.0.1 localhost 8 | ::1 localhost ip6-localhost ip6-loopback 9 | fe00::0 ip6-localnet 10 | -------------------------------------------------------------------------------- /docs/roadmap/index.rst: -------------------------------------------------------------------------------- 1 | :title: Roadmap 2 | :description: The Deis roadmap and open source planning process 3 | 4 | Roadmap 5 | ======= 6 | 7 | :Release: |version| 8 | :Date: |today| 9 | 10 | .. toctree:: 11 | 12 | planning 13 | roadmap 14 | schedule 15 | releases 16 | test_plan 17 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/ActiveState/tail/tail_windows.go: -------------------------------------------------------------------------------- 1 | // +build windows 2 | 3 | package tail 4 | 5 | import ( 6 | "github.com/ActiveState/tail/winfile" 7 | "os" 8 | ) 9 | 10 | func OpenFile(name string) (file *os.File, err error) { 11 | return winfile.OpenFile(name, os.O_RDONLY, 0) 12 | } 13 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/Masterminds/cookoo/database/sql/datasource_test.go: -------------------------------------------------------------------------------- 1 | package sql 2 | 3 | import ( 4 | "testing" 5 | ) 6 | 7 | func TestSqlDatasource(t *testing.T) { 8 | // Canary 9 | 10 | // TODO: Need to find a testing database layer to test building a 11 | // statement cache. 12 | } 13 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/gorilla/mux/README.md: -------------------------------------------------------------------------------- 1 | mux 2 | === 3 | [![Build Status](https://travis-ci.org/gorilla/mux.png?branch=master)](https://travis-ci.org/gorilla/mux) 4 | 5 | gorilla/mux is a powerful URL router and dispatcher. 6 | 7 | Read the full documentation here: http://www.gorillatoolkit.org/pkg/mux 8 | -------------------------------------------------------------------------------- /docs/_includes/_generate-ssh-key.rst: -------------------------------------------------------------------------------- 1 | The ``deisctl`` utility communicates with remote machines over an SSH tunnel. 2 | If you don't already have an SSH key, the following command will generate 3 | a new keypair named "deis": 4 | 5 | .. code-block:: console 6 | 7 | $ ssh-keygen -q -t rsa -f ~/.ssh/deis -N '' -C deis 8 | -------------------------------------------------------------------------------- /docs/understanding_deis/index.rst: -------------------------------------------------------------------------------- 1 | :title: Understanding Deis 2 | :description: Get started with Deis, the open source PaaS. 3 | 4 | .. _understanding_deis: 5 | 6 | Understanding Deis 7 | ================== 8 | 9 | .. toctree:: 10 | 11 | concepts 12 | architecture 13 | components 14 | failover 15 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/graph/MAINTAINERS: -------------------------------------------------------------------------------- 1 | Solomon Hykes (@shykes) 2 | Victor Vieux (@vieux) 3 | Michael Crosby (@crosbymichael) 4 | Cristian Staretu (@unclejack) 5 | Tibor Vass (@tiborvass) 6 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/graph/load_unsupported.go: -------------------------------------------------------------------------------- 1 | // +build !linux 2 | 3 | package graph 4 | 5 | import ( 6 | "github.com/docker/docker/engine" 7 | ) 8 | 9 | func (s *TagStore) CmdLoad(job *engine.Job) engine.Status { 10 | return job.Errorf("CmdLoad is not supported on this platform") 11 | } 12 | -------------------------------------------------------------------------------- /contrib/bumpver/Makefile: -------------------------------------------------------------------------------- 1 | build: 2 | CGO_ENABLED=0 godep go build -a -installsuffix cgo -ldflags '-s' . 3 | 4 | upx: 5 | upx -9 --brute bumpver && upx -t bumpver 6 | 7 | clean: 8 | rm -f bumpver 9 | 10 | test-style: 11 | go vet -x ./... 12 | -golint . 13 | 14 | test: test-style 15 | godep go test -v -cover ./... 16 | -------------------------------------------------------------------------------- /controller/deis/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | The Deis main package, including the top-level URLs, Django project 3 | settings, and WSGI setup. Most application domain-specific code lives in 4 | the api, provider, cm, and web Django apps. 5 | """ 6 | 7 | from __future__ import absolute_import 8 | 9 | __version__ = '1.13.0-dev' 10 | -------------------------------------------------------------------------------- /docs/_includes/_private-network.rst: -------------------------------------------------------------------------------- 1 | Due to changes introduced in Docker 1.3.1 related to insecure Docker registries, the hosts running 2 | Deis must be able to communicate via a private network in one of the RFC 1918 or RFC 6598 private 3 | address spaces: ``10.0.0.0/8``, ``172.16.0.0/12``, ``192.168.0.0/16``, or ``100.64.0.0/10``. 4 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/progrium/go-basher/example/bash/example.bash: -------------------------------------------------------------------------------- 1 | set -eo pipefail 2 | 3 | hello-bash() { 4 | echo "Hello world from Bash" 5 | } 6 | 7 | main() { 8 | echo "Arguments:" "$@" 9 | hello-bash | reverse 10 | curl -s https://api.github.com/repos/progrium/go-basher | json-pointer /owner/login 11 | } 12 | -------------------------------------------------------------------------------- /controller/deis/middleware.py: -------------------------------------------------------------------------------- 1 | from deis import __version__ 2 | 3 | 4 | class PlatformVersionMiddleware: 5 | 6 | def process_response(self, request, response): 7 | response['DEIS_PLATFORM_VERSION'] = __version__ 8 | response['X_DEIS_PLATFORM_VERSION'] = __version__ # DEPRECATED 9 | return response 10 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/ActiveState/tail/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | 3 | # depman needs to be installed with GOPATH pointing to a single directory. 4 | script: 5 | - GOPATH=$HOME/gopath go get github.com/vube/depman 6 | - GOPATH=$HOME/gopath $HOME/gopath/bin/depman 7 | - go test -v ./... 8 | 9 | go: 10 | - 1.2.1 11 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/system/stat_linux.go: -------------------------------------------------------------------------------- 1 | package system 2 | 3 | import ( 4 | "syscall" 5 | ) 6 | 7 | func fromStatT(s *syscall.Stat_t) (*Stat, error) { 8 | return &Stat{size: s.Size, 9 | mode: s.Mode, 10 | uid: s.Uid, 11 | gid: s.Gid, 12 | rdev: s.Rdev, 13 | mtim: s.Mtim}, nil 14 | } 15 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/system/stat_windows.go: -------------------------------------------------------------------------------- 1 | // +build windows 2 | 3 | package system 4 | 5 | import ( 6 | "errors" 7 | "syscall" 8 | ) 9 | 10 | func fromStatT(s *syscall.Win32FileAttributeData) (*Stat, error) { 11 | return nil, errors.New("fromStatT should not be called on windows path") 12 | } 13 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/ActiveState/tail/watch/polling_posix.go: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2013 ActiveState Software Inc. All rights reserved. 2 | // +build linux darwin freebsd 3 | 4 | package watch 5 | 6 | func permissionErrorRetry(err error, retry *int) bool { 7 | // No need for this on linux, don't retry 8 | return false 9 | } 10 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/golang.org/x/crypto/ssh/test/doc.go: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // This package contains integration tests for the 6 | // code.google.com/p/go.crypto/ssh package. 7 | package test 8 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: http://EditorConfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | indent_style = space 11 | indent_size = 4 12 | 13 | [Makefile] 14 | indent_style = tab 15 | 16 | [*.go] 17 | indent_style = tab 18 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/daemon/graphdriver/aufs/mount_linux.go: -------------------------------------------------------------------------------- 1 | package aufs 2 | 3 | import "syscall" 4 | 5 | const MsRemount = syscall.MS_REMOUNT 6 | 7 | func mount(source string, target string, fstype string, flags uintptr, data string) error { 8 | return syscall.Mount(source, target, fstype, flags, data) 9 | } 10 | -------------------------------------------------------------------------------- /client/controller/api/perms.go: -------------------------------------------------------------------------------- 1 | package api 2 | 3 | // PermsAppResponse is the definition of GET /v1/apps//perms/. 4 | type PermsAppResponse struct { 5 | Users []string `json:"users"` 6 | } 7 | 8 | // PermsRequest is the definition of a requst on /perms/. 9 | type PermsRequest struct { 10 | Username string `json:"username"` 11 | } 12 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/signal/signal_unix.go: -------------------------------------------------------------------------------- 1 | // +build !windows 2 | 3 | package signal 4 | 5 | import ( 6 | "syscall" 7 | ) 8 | 9 | // Signals used in api/client (no windows equivalent, use 10 | // invalid signals so they don't get handled) 11 | const SIGCHLD = syscall.SIGCHLD 12 | const SIGWINCH = syscall.SIGWINCH 13 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/system/lstat.go: -------------------------------------------------------------------------------- 1 | // +build !windows 2 | 3 | package system 4 | 5 | import ( 6 | "syscall" 7 | ) 8 | 9 | func Lstat(path string) (*Stat, error) { 10 | s := &syscall.Stat_t{} 11 | err := syscall.Lstat(path, s) 12 | if err != nil { 13 | return nil, err 14 | } 15 | return fromStatT(s) 16 | } 17 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/system/utimes_darwin.go: -------------------------------------------------------------------------------- 1 | package system 2 | 3 | import "syscall" 4 | 5 | func LUtimesNano(path string, ts []syscall.Timespec) error { 6 | return ErrNotSupportedPlatform 7 | } 8 | 9 | func UtimesNano(path string, ts []syscall.Timespec) error { 10 | return syscall.UtimesNano(path, ts) 11 | } 12 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/fsouza/go-dockerclient/DOCKER-LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | You can find the Docker license int the following link: 6 | https://raw2.github.com/dotcloud/docker/master/LICENSE 7 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/daemon/graphdriver/btrfs/version_test.go: -------------------------------------------------------------------------------- 1 | // +build linux 2 | 3 | package btrfs 4 | 5 | import ( 6 | "testing" 7 | ) 8 | 9 | func TestBuildVersion(t *testing.T) { 10 | if len(BtrfsBuildVersion()) == 0 { 11 | t.Errorf("expected output from btrfs build version, but got empty string") 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /mesos/zookeeper/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.2 2 | 3 | ENV JAVA_HOME /jre 4 | ENV PATH ${PATH}:${JAVA_HOME}/bin 5 | 6 | EXPOSE 2181 2888 3888 7 | 8 | ADD . /app 9 | 10 | RUN DOCKER_BUILD=true /app/build.sh 11 | 12 | WORKDIR /app 13 | 14 | VOLUME ["/opt/zookeeper-data"] 15 | 16 | ENTRYPOINT ["/app/bin/boot"] 17 | 18 | ENV DEIS_RELEASE 1.13.0-dev 19 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/signal/signal_windows.go: -------------------------------------------------------------------------------- 1 | // +build windows 2 | 3 | package signal 4 | 5 | import ( 6 | "syscall" 7 | ) 8 | 9 | // Signals used in api/client (no windows equivalent, use 10 | // invalid signals so they don't get handled) 11 | const SIGCHLD = syscall.Signal(0xff) 12 | const SIGWINCH = syscall.Signal(0xff) 13 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/gorilla/context/README.md: -------------------------------------------------------------------------------- 1 | context 2 | ======= 3 | [![Build Status](https://travis-ci.org/gorilla/context.png?branch=master)](https://travis-ci.org/gorilla/context) 4 | 5 | gorilla/context is a general purpose registry for global request variables. 6 | 7 | Read the full documentation here: http://www.gorillatoolkit.org/pkg/context 8 | -------------------------------------------------------------------------------- /deisctl/config/model/model.go: -------------------------------------------------------------------------------- 1 | package model 2 | 3 | import "time" 4 | 5 | // ConfigNode represents running Deis services 6 | type ConfigNode struct { 7 | Key string `json:"key"` 8 | Value string `json:"value,omitempty"` 9 | Expiration *time.Time `json:"expiration,omitempty"` 10 | TTL int64 `json:"ttl,omitempty"` 11 | } 12 | -------------------------------------------------------------------------------- /store/admin/bin/boot: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # This script is designed to be run inside the container 4 | # 5 | 6 | ETCD_PORT=${ETCD_PORT:-4001} 7 | ETCD="$HOST:$ETCD_PORT" 8 | 9 | confd -node $ETCD --confdir /app --log-level error --interval 5 & 10 | 11 | # loop forever until the container is stopped 12 | while true; do 13 | sleep 1 14 | done 15 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/daemon/graphdriver/aufs/mount_unsupported.go: -------------------------------------------------------------------------------- 1 | // +build !linux 2 | 3 | package aufs 4 | 5 | import "errors" 6 | 7 | const MsRemount = 0 8 | 9 | func mount(source string, target string, fstype string, flags uintptr, data string) (err error) { 10 | return errors.New("mount is not implemented on darwin") 11 | } 12 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/parsers/kernel/uname_unsupported.go: -------------------------------------------------------------------------------- 1 | // +build !linux 2 | 3 | package kernel 4 | 5 | import ( 6 | "errors" 7 | ) 8 | 9 | type Utsname struct { 10 | Release [65]byte 11 | } 12 | 13 | func uname() (*Utsname, error) { 14 | return nil, errors.New("Kernel version detection is available only on linux") 15 | } 16 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/reexec/README.md: -------------------------------------------------------------------------------- 1 | ## reexec 2 | 3 | The `reexec` package facilitates the busybox style reexec of the docker binary that we require because 4 | of the forking limitations of using Go. Handlers can be registered with a name and the argv 0 of 5 | the exec of the binary will be used to find and execute custom init paths. 6 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/system/xattrs_unsupported.go: -------------------------------------------------------------------------------- 1 | // +build !linux 2 | 3 | package system 4 | 5 | func Lgetxattr(path string, attr string) ([]byte, error) { 6 | return nil, ErrNotSupportedPlatform 7 | } 8 | 9 | func Lsetxattr(path string, attr string, data []byte, flags int) error { 10 | return ErrNotSupportedPlatform 11 | } 12 | -------------------------------------------------------------------------------- /client/pkg/git/git_test.go: -------------------------------------------------------------------------------- 1 | package git 2 | 3 | import ( 4 | "testing" 5 | ) 6 | 7 | func TestRemoteURL(t *testing.T) { 8 | t.Parallel() 9 | 10 | expected := "ssh://git@example.com:2222/app.git" 11 | 12 | actual := RemoteURL("example.com", "app") 13 | 14 | if actual != expected { 15 | t.Errorf("Expected %s, Got %s", expected, actual) 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /controller/manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from __future__ import unicode_literals 4 | import os 5 | import sys 6 | 7 | 8 | if __name__ == "__main__": 9 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "deis.settings") 10 | 11 | from django.core.management import execute_from_command_line 12 | 13 | execute_from_command_line(sys.argv) 14 | -------------------------------------------------------------------------------- /logger/drain/simple/drain_test.go: -------------------------------------------------------------------------------- 1 | package simple 2 | 3 | import ( 4 | "fmt" 5 | "testing" 6 | ) 7 | 8 | func TestInvalidDrainUrl(t *testing.T) { 9 | _, err := NewDrain("https://wwww.google.com") 10 | if err == nil || err.Error() != fmt.Sprintf("Invalid drain url scheme: %s", "https") { 11 | t.Error("Did not receive expected error message") 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/parsers/kernel/uname_linux.go: -------------------------------------------------------------------------------- 1 | package kernel 2 | 3 | import ( 4 | "syscall" 5 | ) 6 | 7 | type Utsname syscall.Utsname 8 | 9 | func uname() (*syscall.Utsname, error) { 10 | uts := &syscall.Utsname{} 11 | 12 | if err := syscall.Uname(uts); err != nil { 13 | return nil, err 14 | } 15 | return uts, nil 16 | } 17 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/howeyc/fsnotify/fsnotify_open_darwin.go: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build darwin 6 | 7 | package fsnotify 8 | 9 | import "syscall" 10 | 11 | const open_FLAGS = syscall.O_EVTONLY 12 | -------------------------------------------------------------------------------- /docs/reference/terms/key.rst: -------------------------------------------------------------------------------- 1 | :title: Key 2 | :description: Deis keys are SSH keys used during the git push process. Use the Deis client to manage a list of keys on the Deis controller. 3 | 4 | .. _key: 5 | 6 | Key 7 | === 8 | Deis keys are SSH Keys used during the git push process. Each user 9 | can use the client to manage a list of keys on the :ref:`Controller`. 10 | -------------------------------------------------------------------------------- /client/cmd/git.go: -------------------------------------------------------------------------------- 1 | package cmd 2 | 3 | import ( 4 | "github.com/deis/deis/client/pkg/git" 5 | ) 6 | 7 | // GitRemote creates a git remote for a deis app. 8 | func GitRemote(appID, remote string) error { 9 | c, appID, err := load(appID) 10 | 11 | if err != nil { 12 | return err 13 | } 14 | 15 | return git.CreateRemote(c.ControllerURL.Host, remote, appID) 16 | } 17 | -------------------------------------------------------------------------------- /docs/contributing/index.rst: -------------------------------------------------------------------------------- 1 | :title: Contributing 2 | :description: How to contribute to the Deis open source PaaS project 3 | 4 | Contributing 5 | ============ 6 | 7 | :Release: |version| 8 | :Date: |today| 9 | 10 | .. toctree:: 11 | 12 | overview 13 | design-documents 14 | hacking 15 | testing 16 | standards 17 | community 18 | conduct 19 | -------------------------------------------------------------------------------- /mesos/marathon: -------------------------------------------------------------------------------- 1 | FROM #PREFIX#mesos-template:#VERSION# 2 | 3 | EXPOSE 8080 4 | 5 | COPY marathon-assembly.jar /marathon-assembly.jar 6 | 7 | COPY build-marathon.sh /tmp/build.sh 8 | 9 | COPY bin/marathon-boot /app/bin/boot 10 | 11 | RUN DOCKER_BUILD=true MARATHON_VERSION=#MARATHON_VERSION# /tmp/build.sh 12 | 13 | WORKDIR /app 14 | 15 | ENTRYPOINT ["/app/bin/boot"] 16 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/archive/time_unsupported.go: -------------------------------------------------------------------------------- 1 | // +build !linux 2 | 3 | package archive 4 | 5 | import ( 6 | "syscall" 7 | "time" 8 | ) 9 | 10 | func timeToTimespec(time time.Time) (ts syscall.Timespec) { 11 | nsec := int64(0) 12 | if !time.IsZero() { 13 | nsec = time.UnixNano() 14 | } 15 | return syscall.NsecToTimespec(nsec) 16 | } 17 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/utils/random.go: -------------------------------------------------------------------------------- 1 | package utils 2 | 3 | import ( 4 | "crypto/rand" 5 | "encoding/hex" 6 | "io" 7 | ) 8 | 9 | func RandomString() string { 10 | id := make([]byte, 32) 11 | 12 | if _, err := io.ReadFull(rand.Reader, id); err != nil { 13 | panic(err) // This shouldn't happen 14 | } 15 | return hex.EncodeToString(id) 16 | } 17 | -------------------------------------------------------------------------------- /docs/reference/terms/index.rst: -------------------------------------------------------------------------------- 1 | :title: Deis Components, Usage and Terminology 2 | :description: Deis Components, Usage and Terminology 3 | 4 | .. terms: 5 | 6 | 7 | Terms 8 | ========== 9 | 10 | .. toctree:: 11 | 12 | 13 | controller 14 | scheduler 15 | 16 | application 17 | container 18 | config 19 | build 20 | release 21 | 22 | key 23 | -------------------------------------------------------------------------------- /mesos/build-marathon: -------------------------------------------------------------------------------- 1 | FROM #PREFIX#mesos-template:#VERSION# 2 | 3 | ENV DEBIAN_FRONTEND noninteractive 4 | ENV MARATHON_VERSION=#MARATHON_VERSION# 5 | 6 | COPY build-marathon-jar.sh /tmp/build.sh 7 | 8 | RUN DOCKER_BUILD=true /tmp/build.sh 9 | 10 | COPY bin/marathon-boot /app/bin/boot 11 | 12 | WORKDIR /app 13 | 14 | EXPOSE 8080 15 | 16 | ENTRYPOINT ["/app/bin/boot"] 17 | -------------------------------------------------------------------------------- /contrib/digitalocean/create: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -eo pipefail -o nounset 4 | 5 | export TF_VAR_token="${DO_TOKEN}" 6 | 7 | terraform apply | grep --line-buffered -v user_data 8 | 9 | export DEISCTL_TUNNEL="$(terraform output ip)" 10 | export DEIS_TEST_DOMAIN="${DEISCTL_TUNNEL}.xip.io" 11 | 12 | rigger-save-vars DEISCTL_TUNNEL \ 13 | DEIS_TEST_DOMAIN 14 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/daemon/graphdriver/btrfs/version_none.go: -------------------------------------------------------------------------------- 1 | // +build linux,btrfs_noversion 2 | 3 | package btrfs 4 | 5 | // TODO(vbatts) remove this work-around once supported linux distros are on 6 | // btrfs utililties of >= 3.16.1 7 | 8 | func BtrfsBuildVersion() string { 9 | return "-" 10 | } 11 | func BtrfsLibVersion() int { 12 | return -1 13 | } 14 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/daemon/graphdriver/driver_linux.go: -------------------------------------------------------------------------------- 1 | package graphdriver 2 | 3 | import ( 4 | "path" 5 | "syscall" 6 | ) 7 | 8 | func GetFSMagic(rootpath string) (FsMagic, error) { 9 | var buf syscall.Statfs_t 10 | if err := syscall.Statfs(path.Dir(rootpath), &buf); err != nil { 11 | return 0, err 12 | } 13 | return FsMagic(buf.Type), nil 14 | } 15 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/reexec/command_linux.go: -------------------------------------------------------------------------------- 1 | // +build linux 2 | 3 | package reexec 4 | 5 | import ( 6 | "os/exec" 7 | "syscall" 8 | ) 9 | 10 | func Command(args ...string) *exec.Cmd { 11 | return &exec.Cmd{ 12 | Path: Self(), 13 | Args: args, 14 | SysProcAttr: &syscall.SysProcAttr{ 15 | Pdeathsig: syscall.SIGTERM, 16 | }, 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/symlink/README.md: -------------------------------------------------------------------------------- 1 | Package symlink implements EvalSymlinksInScope which is an extension of filepath.EvalSymlinks 2 | from the [Go standard library](https://golang.org/pkg/path/filepath). 3 | 4 | The code from filepath.EvalSymlinks has been adapted in fs.go. 5 | Please read the LICENSE.BSD file that governs fs.go and LICENSE.APACHE for fs_test.go. 6 | -------------------------------------------------------------------------------- /publisher/image/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.2 2 | 3 | # install curl in the image so it is possible to get the runtime 4 | # profiling information without any additional package installation. 5 | RUN apk add --update-cache curl && rm -rf /var/cache/apk/* 6 | 7 | ADD bin/publisher /usr/local/bin/publisher 8 | ENTRYPOINT ["/usr/local/bin/publisher"] 9 | 10 | ENV DEIS_RELEASE 1.13.0-dev 11 | -------------------------------------------------------------------------------- /tests/fixtures/mock-store/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.2 2 | 3 | # install common packages 4 | RUN apk add --update-cache curl bash sudo && rm -rf /var/cache/apk/* 5 | 6 | WORKDIR /app 7 | EXPOSE 8888 8 | CMD ["/app/bin/boot"] 9 | ADD bin/boot /app/bin/boot 10 | 11 | ADD mock-s3-patch.diff /tmp/mock-s3-patch.diff 12 | ADD build.sh /tmp/build.sh 13 | RUN DOCKER_BUILD=true /tmp/build.sh 14 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/system/utimes_unsupported.go: -------------------------------------------------------------------------------- 1 | // +build !linux,!freebsd,!darwin 2 | 3 | package system 4 | 5 | import "syscall" 6 | 7 | func LUtimesNano(path string, ts []syscall.Timespec) error { 8 | return ErrNotSupportedPlatform 9 | } 10 | 11 | func UtimesNano(path string, ts []syscall.Timespec) error { 12 | return ErrNotSupportedPlatform 13 | } 14 | -------------------------------------------------------------------------------- /tests/bin/git-ssh-nokeycheck.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Allows git to exec SSH but bypass auth warnings. 4 | # To use, export the environment variable GIT_SSH as the location of this script, 5 | # then run git commands as usual: 6 | # $ export GIT_SSH=$HOME/bin/git-ssh-nokeycheck.sh 7 | 8 | SSH_ORIGINAL_COMMAND="ssh $@" 9 | ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "$@" 10 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/promise/promise.go: -------------------------------------------------------------------------------- 1 | package promise 2 | 3 | // Go is a basic promise implementation: it wraps calls a function in a goroutine, 4 | // and returns a channel which will later return the function's return value. 5 | func Go(f func() error) chan error { 6 | ch := make(chan error, 1) 7 | go func() { 8 | ch <- f() 9 | }() 10 | return ch 11 | } 12 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/system/stat_unsupported.go: -------------------------------------------------------------------------------- 1 | // +build !linux,!windows 2 | 3 | package system 4 | 5 | import ( 6 | "syscall" 7 | ) 8 | 9 | func fromStatT(s *syscall.Stat_t) (*Stat, error) { 10 | return &Stat{size: s.Size, 11 | mode: uint32(s.Mode), 12 | uid: s.Uid, 13 | gid: s.Gid, 14 | rdev: uint64(s.Rdev), 15 | mtim: s.Mtimespec}, nil 16 | } 17 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/howeyc/fsnotify/fsnotify_open_bsd.go: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build freebsd openbsd netbsd 6 | 7 | package fsnotify 8 | 9 | import "syscall" 10 | 11 | const open_FLAGS = syscall.O_NONBLOCK | syscall.O_RDONLY 12 | -------------------------------------------------------------------------------- /controller/conf.d/confd_settings.toml: -------------------------------------------------------------------------------- 1 | [template] 2 | src = "confd_settings.py" 3 | dest = "/templates/confd_settings.py" 4 | uid = 1000 5 | gid = 1000 6 | mode = "0640" 7 | keys = [ 8 | "/deis/controller", 9 | "/deis/database", 10 | "/deis/registry", 11 | "/deis/domains", 12 | "/deis/platform", 13 | "/deis/scheduler", 14 | "/deis/logs", 15 | ] 16 | reload_cmd = "/app/bin/reload" 17 | -------------------------------------------------------------------------------- /docs/reference/terms/config.rst: -------------------------------------------------------------------------------- 1 | :title: Config 2 | :description: Deis config refers to a set of environment variables used by an application 3 | 4 | 5 | .. _config: 6 | 7 | Config 8 | ====== 9 | Config refers to a set of environment variables used by 10 | :ref:`Containers ` in a :ref:`application`. 11 | 12 | When Config is changed, a new :ref:`release` is created automatically. 13 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/Sirupsen/logrus/terminal_linux.go: -------------------------------------------------------------------------------- 1 | // Based on ssh/terminal: 2 | // Copyright 2013 The Go Authors. All rights reserved. 3 | // Use of this source code is governed by a BSD-style 4 | // license that can be found in the LICENSE file. 5 | 6 | package logrus 7 | 8 | import "syscall" 9 | 10 | const ioctlReadTermios = syscall.TCGETS 11 | 12 | type Termios syscall.Termios 13 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/robfig/cron/.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files, Static and Dynamic libs (Shared Objects) 2 | *.o 3 | *.a 4 | *.so 5 | 6 | # Folders 7 | _obj 8 | _test 9 | 10 | # Architecture specific extensions/prefixes 11 | *.[568vq] 12 | [568vq].out 13 | 14 | *.cgo1.go 15 | *.cgo2.c 16 | _cgo_defun.c 17 | _cgo_gotypes.go 18 | _cgo_export.* 19 | 20 | _testmain.go 21 | 22 | *.exe 23 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/Sirupsen/logrus/terminal_darwin.go: -------------------------------------------------------------------------------- 1 | // Based on ssh/terminal: 2 | // Copyright 2013 The Go Authors. All rights reserved. 3 | // Use of this source code is governed by a BSD-style 4 | // license that can be found in the LICENSE file. 5 | 6 | package logrus 7 | 8 | import "syscall" 9 | 10 | const ioctlReadTermios = syscall.TIOCGETA 11 | 12 | type Termios syscall.Termios 13 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/archive/time_linux.go: -------------------------------------------------------------------------------- 1 | package archive 2 | 3 | import ( 4 | "syscall" 5 | "time" 6 | ) 7 | 8 | func timeToTimespec(time time.Time) (ts syscall.Timespec) { 9 | if time.IsZero() { 10 | // Return UTIME_OMIT special value 11 | ts.Sec = 0 12 | ts.Nsec = ((1 << 30) - 2) 13 | return 14 | } 15 | return syscall.NsecToTimespec(time.UnixNano()) 16 | } 17 | -------------------------------------------------------------------------------- /contrib/utils.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | function echo_yellow { 4 | echo -e "\033[0;33m$1\033[0m" 5 | } 6 | 7 | function echo_red { 8 | echo -e "\033[0;31m$1\033[0m" 9 | } 10 | 11 | function echo_green { 12 | echo -e "\033[0;32m$1\033[0m" 13 | } 14 | 15 | export COREOS_CHANNEL=${COREOS_CHANNEL:-stable} 16 | export COREOS_VERSION=${COREOS_VERSION:-835.9.0} 17 | export DEIS_RELEASE=1.13.0-dev 18 | -------------------------------------------------------------------------------- /tests/bin/start-node.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Connects this machine as a Jenkins node to https://ci.deis.io/ 4 | # Set NODE_NAME and NODE_SECRET to the values provided by Jenkins in the "Manage Nodes" 5 | # administrative interface. 6 | 7 | wget -N https://ci.deis.io/jnlpJars/slave.jar 8 | java -jar slave.jar -jnlpUrl https://ci.deis.io/computer/${NODE_NAME?}/slave-agent.jnlp -secret ${NODE_SECRET?} & 9 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/system/mknod_windows.go: -------------------------------------------------------------------------------- 1 | // +build windows 2 | 3 | package system 4 | 5 | func Mknod(path string, mode uint32, dev int) error { 6 | // should not be called on cli code path 7 | return ErrNotSupportedPlatform 8 | } 9 | 10 | func Mkdev(major int64, minor int64) uint32 { 11 | panic("Mkdev not implemented on windows, should not be called on cli code") 12 | } 13 | -------------------------------------------------------------------------------- /docs/reference/usage.rst: -------------------------------------------------------------------------------- 1 | :title: Usage 2 | :description: The command-line interface (CLI) is how you interact with Deis. 3 | 4 | .. _usage: 5 | 6 | Usage 7 | ===== 8 | Once you have provisioned a Deis Controller 9 | (see the :ref:`Installing Deis ` guide), use the 10 | command-line interface (CLI) to create a cluster for your app, to push 11 | your code, and to scale your cloud resources. 12 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/google.golang.org/api/googleapi/internal/uritemplates/utils.go: -------------------------------------------------------------------------------- 1 | package uritemplates 2 | 3 | func Expand(path string, expansions map[string]string) (string, error) { 4 | template, err := Parse(path) 5 | if err != nil { 6 | return "", err 7 | } 8 | values := make(map[string]interface{}) 9 | for k, v := range expansions { 10 | values[k] = v 11 | } 12 | return template.Expand(values) 13 | } 14 | -------------------------------------------------------------------------------- /docs/theme/deis/navigation.html: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/Masterminds/cookoo/safely/README.md: -------------------------------------------------------------------------------- 1 | # Safely: Do scary things safely in Go. 2 | 3 | This is a small utility library for doing things safely. 4 | 5 | ## Go Routine Wrappers 6 | 7 | Don't let a panic in a `goroutine` take down your entire program. 8 | 9 | ```go 10 | import "github.com/Masterminds/safely" 11 | 12 | func main() { 13 | safely.Go(func() { panic("Oops!") }) 14 | } 15 | ``` 16 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/tarsum/writercloser.go: -------------------------------------------------------------------------------- 1 | package tarsum 2 | 3 | import ( 4 | "io" 5 | ) 6 | 7 | type writeCloseFlusher interface { 8 | io.WriteCloser 9 | Flush() error 10 | } 11 | 12 | type nopCloseFlusher struct { 13 | io.Writer 14 | } 15 | 16 | func (n *nopCloseFlusher) Close() error { 17 | return nil 18 | } 19 | 20 | func (n *nopCloseFlusher) Flush() error { 21 | return nil 22 | } 23 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/Masterminds/cookoo/.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files, Static and Dynamic libs (Shared Objects) 2 | *.o 3 | *.a 4 | *.so 5 | 6 | # Folders 7 | _obj 8 | _test 9 | github.com 10 | 11 | # Architecture specific extensions/prefixes 12 | *.[568vq] 13 | [568vq].out 14 | 15 | *.test 16 | *.cgo1.go 17 | *.cgo2.c 18 | _cgo_defun.c 19 | _cgo_gotypes.go 20 | _cgo_export.* 21 | 22 | _testmain.go 23 | 24 | *.exe 25 | -------------------------------------------------------------------------------- /docs/reference/index.rst: -------------------------------------------------------------------------------- 1 | :title: Reference Guide 2 | :description: List of references for Deis components. 3 | 4 | .. _reference: 5 | 6 | 7 | Reference Guide 8 | =============== 9 | 10 | .. toctree:: 11 | 12 | usage 13 | terms/index 14 | self-signed-certs 15 | server/index 16 | api-v1.0 17 | api-v1.1 18 | api-v1.2 19 | api-v1.3 20 | api-v1.4 21 | api-v1.5 22 | api-v1.6 23 | api-v1.7 24 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/jonboulle/clockwork/.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files, Static and Dynamic libs (Shared Objects) 2 | *.o 3 | *.a 4 | *.so 5 | 6 | # Folders 7 | _obj 8 | _test 9 | 10 | # Architecture specific extensions/prefixes 11 | *.[568vq] 12 | [568vq].out 13 | 14 | *.cgo1.go 15 | *.cgo2.c 16 | _cgo_defun.c 17 | _cgo_gotypes.go 18 | _cgo_export.* 19 | 20 | _testmain.go 21 | 22 | *.exe 23 | *.test 24 | 25 | *.swp 26 | -------------------------------------------------------------------------------- /router/rootfs/etc/confd/templates/deis.conf: -------------------------------------------------------------------------------- 1 | server_name_in_redirect off; 2 | port_in_redirect off; 3 | listen 80{{ if exists "/deis/router/proxyProtocol" }} proxy_protocol{{ end }}; 4 | 5 | {{ if exists "/deis/router/sslCert" }} 6 | listen 443 ssl http2{{ if exists "/deis/router/proxyProtocol" }} proxy_protocol{{ end }}; 7 | ssl_certificate /etc/ssl/deis.cert; 8 | ssl_certificate_key /etc/ssl/deis.key; 9 | include ssl.conf; 10 | {{ end }} 11 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/signal/signal.go: -------------------------------------------------------------------------------- 1 | package signal 2 | 3 | import ( 4 | "os" 5 | "os/signal" 6 | ) 7 | 8 | func CatchAll(sigc chan os.Signal) { 9 | handledSigs := []os.Signal{} 10 | for _, s := range SignalMap { 11 | handledSigs = append(handledSigs, s) 12 | } 13 | signal.Notify(sigc, handledSigs...) 14 | } 15 | 16 | func StopCatch(sigc chan os.Signal) { 17 | signal.Stop(sigc) 18 | close(sigc) 19 | } 20 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/golang.org/x/crypto/ssh/terminal/util_bsd.go: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build darwin dragonfly freebsd netbsd openbsd 6 | 7 | package terminal 8 | 9 | import "syscall" 10 | 11 | const ioctlReadTermios = syscall.TIOCGETA 12 | const ioctlWriteTermios = syscall.TIOCSETA 13 | -------------------------------------------------------------------------------- /client/controller/api/ps.go: -------------------------------------------------------------------------------- 1 | package api 2 | 3 | // Process defines the structure of a process. 4 | type Process struct { 5 | Owner string `json:"owner"` 6 | App string `json:"app"` 7 | Release string `json:"release"` 8 | Created string `json:"created"` 9 | Updated string `json:"updated"` 10 | UUID string `json:"uuid"` 11 | Type string `json:"type"` 12 | Num int `json:"num"` 13 | State string `json:"state"` 14 | } 15 | -------------------------------------------------------------------------------- /docs/reference/server/web.rst: -------------------------------------------------------------------------------- 1 | :description: Python API Reference for the Deis web module 2 | 3 | web 4 | === 5 | 6 | web.urls 7 | -------- 8 | .. contents:: 9 | :local: 10 | .. automodule:: web.urls 11 | 12 | web.views 13 | --------- 14 | .. contents:: 15 | :local: 16 | .. automodule:: web.views 17 | 18 | web.templatetags 19 | ---------------- 20 | .. contents:: 21 | :local: 22 | .. automodule:: web.templatetags.gravatar_tags 23 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/golang.org/x/crypto/ssh/testdata/doc.go: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // This package contains test data shared between the various subpackages of 6 | // the code.google.com/p/go.crypto/ssh package. Under no circumstance should 7 | // this data be used for production code. 8 | package testdata 9 | -------------------------------------------------------------------------------- /mesos/pkg/etcd/lock.go: -------------------------------------------------------------------------------- 1 | package etcd 2 | 3 | import ( 4 | etcdlock "github.com/leeor/etcd-sync" 5 | ) 6 | 7 | // AcquireLock creates a pseudo lock in etcd with a specific ttl 8 | func AcquireLock(c *Client, key string, ttl uint64) error { 9 | c.lock = etcdlock.NewMutexFromClient(c.client, key, ttl) 10 | return c.lock.Lock() 11 | } 12 | 13 | // ReleaseLock releases the existing lock 14 | func ReleaseLock(c *Client) { 15 | c.lock.Unlock() 16 | } 17 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docopt/docopt-go/.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files, Static and Dynamic libs (Shared Objects) 2 | *.o 3 | *.a 4 | *.so 5 | 6 | # Folders 7 | _obj 8 | _test 9 | 10 | # Architecture specific extensions/prefixes 11 | *.[568vq] 12 | [568vq].out 13 | 14 | *.cgo1.go 15 | *.cgo2.c 16 | _cgo_defun.c 17 | _cgo_gotypes.go 18 | _cgo_export.* 19 | 20 | _testmain.go 21 | 22 | *.exe 23 | 24 | # coverage droppings 25 | profile.cov 26 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/go-martini/martini/.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files, Static and Dynamic libs (Shared Objects) 2 | *.o 3 | *.a 4 | *.so 5 | 6 | # Folders 7 | _obj 8 | _test 9 | 10 | # Architecture specific extensions/prefixes 11 | *.[568vq] 12 | [568vq].out 13 | 14 | *.cgo1.go 15 | *.cgo2.c 16 | _cgo_defun.c 17 | _cgo_gotypes.go 18 | _cgo_export.* 19 | 20 | _testmain.go 21 | 22 | *.exe 23 | *.test 24 | 25 | /.godeps 26 | /.envrc 27 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docopt/docopt-go/examples/odd_even/odd_even_example.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | "github.com/docopt/docopt-go" 6 | ) 7 | 8 | func main() { 9 | usage := `Usage: odd_even_example [-h | --help] (ODD EVEN)... 10 | 11 | Example, try: 12 | odd_even_example 1 2 3 4 13 | 14 | Options: 15 | -h, --help` 16 | 17 | arguments, _ := docopt.Parse(usage, nil, true, "", false) 18 | fmt.Println(arguments) 19 | } 20 | -------------------------------------------------------------------------------- /contrib/digitalocean/variables.tf: -------------------------------------------------------------------------------- 1 | variable "instances" { 2 | default = "3" 3 | } 4 | 5 | variable "prefix" { 6 | default = "deis" 7 | } 8 | 9 | variable "region" { 10 | default = "sfo1" 11 | } 12 | 13 | variable "size" { 14 | default = "8GB" 15 | } 16 | 17 | variable "ssh_keys" { 18 | description = "The ssh fingerprint of the ssh key you'll be using" 19 | } 20 | 21 | variable "token" { 22 | description = "Your DigitalOcean auth token" 23 | } 24 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/archive/archive_windows.go: -------------------------------------------------------------------------------- 1 | // +build windows 2 | 3 | package archive 4 | 5 | import ( 6 | "github.com/docker/docker/vendor/src/code.google.com/p/go/src/pkg/archive/tar" 7 | ) 8 | 9 | func setHeaderForSpecialDevice(hdr *tar.Header, ta *tarAppender, name string, stat interface{}) (nlink uint32, inode uint64, err error) { 10 | // do nothing. no notion of Rdev, Inode, Nlink in stat on Windows 11 | return 12 | } 13 | -------------------------------------------------------------------------------- /database/templates/create_bucket: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import boto 4 | import sys 5 | from boto.s3.connection import OrdinaryCallingFormat 6 | 7 | 8 | conn = boto.connect_s3( 9 | host='{{ getv "/deis/store/gateway/host" }}', 10 | port={{ getv "/deis/store/gateway/port" }}, 11 | is_secure=False, 12 | calling_format=OrdinaryCallingFormat()) 13 | name = sys.argv[1] 14 | 15 | if conn.lookup(name) is None: 16 | conn.create_bucket(name) 17 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/utils/tmpdir.go: -------------------------------------------------------------------------------- 1 | package utils 2 | 3 | import ( 4 | "os" 5 | "path/filepath" 6 | ) 7 | 8 | // TempDir returns the default directory to use for temporary files. 9 | func TempDir(rootDir string) (string, error) { 10 | var tmpDir string 11 | if tmpDir = os.Getenv("DOCKER_TMPDIR"); tmpDir == "" { 12 | tmpDir = filepath.Join(rootDir, "tmp") 13 | } 14 | err := os.MkdirAll(tmpDir, 0700) 15 | return tmpDir, err 16 | } 17 | -------------------------------------------------------------------------------- /docs/reference/terms/build.rst: -------------------------------------------------------------------------------- 1 | :title: Build 2 | :description: Deis builds are created automatically on the controller when a developer uses git push. 3 | 4 | .. _build: 5 | 6 | Build 7 | ===== 8 | Deis builds are created automatically on the controller when a 9 | developer uses ``git push deis master``. 10 | 11 | When a new build is created, a new :ref:`release` is created automatically. 12 | 13 | .. note:: 14 | Deis only supports ``git push`` to the **master** branch. 15 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/kardianos/osext/README.md: -------------------------------------------------------------------------------- 1 | ### Extensions to the "os" package. 2 | 3 | ## Find the current Executable and ExecutableFolder. 4 | 5 | There is sometimes utility in finding the current executable file 6 | that is running. This can be used for upgrading the current executable 7 | or finding resources located relative to the executable file. 8 | 9 | Multi-platform and supports: 10 | * Linux 11 | * OS X 12 | * Windows 13 | * Plan 9 14 | * BSDs. 15 | -------------------------------------------------------------------------------- /client/controller/api/domains.go: -------------------------------------------------------------------------------- 1 | package api 2 | 3 | // Domain is the structure of the domain object. 4 | type Domain struct { 5 | App string `json:"app"` 6 | Created string `json:"created"` 7 | Domain string `json:"domain"` 8 | Owner string `json:"owner"` 9 | Updated string `json:"updated"` 10 | } 11 | 12 | // DomainCreateRequest is the structure of POST /v1/app//domains/. 13 | type DomainCreateRequest struct { 14 | Domain string `json:"domain"` 15 | } 16 | -------------------------------------------------------------------------------- /controller/scheduler/states.py: -------------------------------------------------------------------------------- 1 | import enum 2 | 3 | 4 | class TransitionError(Exception): 5 | """Raised when a transition from one state to another is illegal""" 6 | 7 | def __init__(self, prev, next, msg): 8 | self.prev = prev 9 | self.next = next 10 | self.msg = msg 11 | 12 | 13 | class JobState(enum.Enum): 14 | initialized = 1 15 | created = 2 16 | up = 3 17 | down = 4 18 | destroyed = 5 19 | crashed = 6 20 | error = 7 21 | -------------------------------------------------------------------------------- /deisctl/config/backend.go: -------------------------------------------------------------------------------- 1 | package config 2 | 3 | import "github.com/deis/deis/deisctl/config/model" 4 | 5 | // Backend is an interface for any sort of underlying key/value config store 6 | type Backend interface { 7 | Get(string) (string, error) 8 | GetWithDefault(string, string) (string, error) 9 | Set(string, string) (string, error) 10 | SetWithTTL(string, string, uint64) (string, error) 11 | Delete(string) error 12 | GetRecursive(string) ([]*model.ConfigNode, error) 13 | } 14 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/api/api_unit_test.go: -------------------------------------------------------------------------------- 1 | package api 2 | 3 | import ( 4 | "testing" 5 | ) 6 | 7 | func TestJsonContentType(t *testing.T) { 8 | if !MatchesContentType("application/json", "application/json") { 9 | t.Fail() 10 | } 11 | 12 | if !MatchesContentType("application/json; charset=utf-8", "application/json") { 13 | t.Fail() 14 | } 15 | 16 | if MatchesContentType("dockerapplication/json", "application/json") { 17 | t.Fail() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /tests/bin/prime-docker-images.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # WARNING: Don't run this script unless you understand that it will remove all Docker items. 4 | # 5 | # Purges *all* Docker containers and images from the local graph, then pulls down a set of 6 | # images to help tests run faster. 7 | 8 | # Remove all Dockernalia 9 | docker kill `docker ps -q` 10 | docker rm -v `docker ps -a -q` 11 | docker rmi -f `docker images -q` 12 | 13 | # Pull Deis testing essentials 14 | docker pull alpine:3.2 15 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/Sirupsen/logrus/terminal_freebsd.go: -------------------------------------------------------------------------------- 1 | /* 2 | Go 1.2 doesn't include Termios for FreeBSD. This should be added in 1.3 and this could be merged with terminal_darwin. 3 | */ 4 | package logrus 5 | 6 | import ( 7 | "syscall" 8 | ) 9 | 10 | const ioctlReadTermios = syscall.TIOCGETA 11 | 12 | type Termios struct { 13 | Iflag uint32 14 | Oflag uint32 15 | Cflag uint32 16 | Lflag uint32 17 | Cc [20]uint8 18 | Ispeed uint32 19 | Ospeed uint32 20 | } 21 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/ziutek/syslog/README.md: -------------------------------------------------------------------------------- 1 | Using this library you can easy implement your own syslog server that: 2 | 3 | 1. Can listen on multiple UDP ports and unix domain sockets. 4 | 5 | 2. Can pass parsed syslog messages to your own handlers so your code can analyze 6 | and respond for them. 7 | 8 | See [documentation](http://gopkgdoc.appspot.com/pkg/github.com/ziutek/syslog) 9 | and [example server](https://github.com/ziutek/syslog/blob/master/example_server/main.go). 10 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/golang.org/x/net/context/ctxhttp/cancelreq.go: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build go1.5 6 | 7 | package ctxhttp 8 | 9 | import "net/http" 10 | 11 | func canceler(client *http.Client, req *http.Request) func() { 12 | ch := make(chan struct{}) 13 | req.Cancel = ch 14 | 15 | return func() { 16 | close(ch) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /controller/web/urls.py: -------------------------------------------------------------------------------- 1 | """ 2 | URL patterns and routing for the Deis web app. 3 | """ 4 | 5 | from __future__ import unicode_literals 6 | 7 | from django.conf.urls import patterns 8 | from django.conf.urls import url 9 | 10 | 11 | urlpatterns = patterns( 12 | 'web.views', 13 | url(r'^$', 'dashboard', name='dashboard'), 14 | url(r'^account/$', 'account', name='account'), 15 | url(r'^apps/$', 'apps', name='apps'), 16 | url(r'^support/$', 'support', name='support'), 17 | ) 18 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/daemon/graphdriver/aufs/mount.go: -------------------------------------------------------------------------------- 1 | package aufs 2 | 3 | import ( 4 | "os/exec" 5 | "syscall" 6 | 7 | log "github.com/Sirupsen/logrus" 8 | ) 9 | 10 | func Unmount(target string) error { 11 | if err := exec.Command("auplink", target, "flush").Run(); err != nil { 12 | log.Errorf("[warning]: couldn't run auplink before unmount: %s", err) 13 | } 14 | if err := syscall.Unmount(target, 0); err != nil { 15 | return err 16 | } 17 | return nil 18 | } 19 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docopt/docopt-go/examples/quick/quick_example.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | "github.com/docopt/docopt-go" 6 | ) 7 | 8 | func main() { 9 | usage := `Usage: 10 | quick_example tcp [--timeout=] 11 | quick_example serial [--baud=9600] [--timeout=] 12 | quick_example -h | --help | --version` 13 | 14 | arguments, _ := docopt.Parse(usage, nil, true, "0.1.1rc", false) 15 | fmt.Println(arguments) 16 | } 17 | -------------------------------------------------------------------------------- /docs/toctree.rst: -------------------------------------------------------------------------------- 1 | :title: Documentation 2 | :description: Deis toctree 3 | 4 | .. _toctree: 5 | 6 | Documentation 7 | ============= 8 | 9 | This documentation has the following resources: 10 | 11 | .. toctree:: 12 | 13 | index 14 | understanding_deis/index 15 | installing_deis/index 16 | using_deis/index 17 | managing_deis/index 18 | troubleshooting_deis/index 19 | customizing_deis/index 20 | roadmap/index 21 | contributing/index 22 | reference/index 23 | faq 24 | -------------------------------------------------------------------------------- /router/rootfs/etc/confd/conf.d/nginx.conf.toml: -------------------------------------------------------------------------------- 1 | [template] 2 | src = "nginx.conf" 3 | dest = "/opt/nginx/conf/nginx.conf" 4 | uid = 0 5 | gid = 0 6 | mode = "0644" 7 | keys = [ 8 | "/deis/config", 9 | "/deis/services", 10 | "/deis/router", 11 | "/deis/domains", 12 | "/deis/controller", 13 | "/deis/builder", 14 | "/deis/store/gateway", 15 | "/deis/certs", 16 | "/registry/services/", 17 | ] 18 | check_cmd = "check {{ .src }}" 19 | reload_cmd = "/opt/nginx/sbin/nginx -s reload" 20 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/urlutil/url.go: -------------------------------------------------------------------------------- 1 | package urlutil 2 | 3 | import "strings" 4 | 5 | var validUrlPrefixes = []string{ 6 | "http://", 7 | "https://", 8 | } 9 | 10 | // IsURL returns true if the provided str is a valid URL by doing 11 | // a simple change for the transport of the url. 12 | func IsURL(str string) bool { 13 | for _, prefix := range validUrlPrefixes { 14 | if strings.HasPrefix(str, prefix) { 15 | return true 16 | } 17 | } 18 | return false 19 | } 20 | -------------------------------------------------------------------------------- /client/cmd/apps_test.go: -------------------------------------------------------------------------------- 1 | package cmd 2 | 3 | import "testing" 4 | 5 | func TestPrintLogLinesBadLine(t *testing.T) { 6 | t.Parallel() 7 | 8 | // Regression test for https://github.com/deis/deis/issues/4420 9 | logs := `\nDone preparing production files\n\n\u001b[4mRunning \"concat:plugins\" (concat) task\u001b[24m\n` 10 | if err := printLogs(logs); err != nil { 11 | t.Fatal(err) 12 | } 13 | 14 | logs = `\n\n\n` 15 | if err := printLogs(logs); err != nil { 16 | t.Fatal(err) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /docs/reference/server/index.rst: -------------------------------------------------------------------------------- 1 | :description: API Reference for Deis Server 2 | 3 | .. _server: 4 | 5 | Server Reference 6 | ================ 7 | :Release: |version| 8 | :Date: |today| 9 | 10 | .. toctree:: 11 | 12 | api.admin 13 | api.authentication 14 | api.fields 15 | api.middleware 16 | api.models 17 | api.permissions 18 | api.routers 19 | api.serializers 20 | api.utils 21 | api.views 22 | api.viewsets 23 | registry 24 | scheduler 25 | web 26 | -------------------------------------------------------------------------------- /swarm/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM golang:1.5 2 | 3 | WORKDIR /go/src/github.com/docker 4 | RUN git clone https://github.com/deis/swarm 5 | WORKDIR /go/src/github.com/docker/swarm 6 | RUN git fetch origin nodefailover 7 | RUN git checkout nodefailover 8 | 9 | ENV GOPATH /go/src/github.com/docker/swarm/Godeps/_workspace:$GOPATH 10 | RUN CGO_ENABLED=0 go build -a -tags netgo -installsuffix cgo \ 11 | -ldflags "-s -w -X github.com/docker/swarm/version.GITCOMMIT `git rev-parse --short HEAD`" \ 12 | -o deis-swarm 13 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/engine/hack.go: -------------------------------------------------------------------------------- 1 | package engine 2 | 3 | type Hack map[string]interface{} 4 | 5 | func (eng *Engine) Hack_GetGlobalVar(key string) interface{} { 6 | if eng.hack == nil { 7 | return nil 8 | } 9 | val, exists := eng.hack[key] 10 | if !exists { 11 | return nil 12 | } 13 | return val 14 | } 15 | 16 | func (eng *Engine) Hack_SetGlobalVar(key string, val interface{}) { 17 | if eng.hack == nil { 18 | eng.hack = make(Hack) 19 | } 20 | eng.hack[key] = val 21 | } 22 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/ziutek/syslog/internallog.go: -------------------------------------------------------------------------------- 1 | package syslog 2 | 3 | // Logger is an interface for package internal (non fatal) logging 4 | type Logger interface { 5 | Print(...interface{}) 6 | Printf(format string, v ...interface{}) 7 | Println(...interface{}) 8 | } 9 | 10 | // FatalLogger is an interface for logging package internal fatal errors 11 | type FatalLogger interface { 12 | Fatal(...interface{}) 13 | Fatalf(format string, v ...interface{}) 14 | Fatalln(...interface{}) 15 | } 16 | -------------------------------------------------------------------------------- /contrib/aws/config.sh: -------------------------------------------------------------------------------- 1 | export SUGGEST_DEV_REGISTRY="registry.hub.docker.com" 2 | export STACK_TAG="${STACK_TAG:-test}-${DEIS_ID}" 3 | export DEIS_NUM_INSTANCES=${DEIS_NUM_INSTANCES:-3} 4 | export STACK_NAME="${STACK_NAME:-deis-${STACK_TAG}}" 5 | 6 | prompt "Enter your AWS key:" AWS_ACCESS_KEY_ID 7 | prompt "Enter your AWS secret key:" AWS_SECRET_ACCESS_KEY 8 | 9 | rigger-save-vars AWS_ACCESS_KEY_ID \ 10 | AWS_SECRET_ACCESS_KEY \ 11 | STACK_NAME \ 12 | STACK_TAG 13 | -------------------------------------------------------------------------------- /pkg/Makefile: -------------------------------------------------------------------------------- 1 | include ../includes.mk 2 | 3 | repo_path = github.com/deis/deis/pkg 4 | 5 | GO_PACKAGES = prettyprint time 6 | GO_PACKAGES_REPO_PATH = $(addprefix $(repo_path)/,$(GO_PACKAGES)) 7 | 8 | test: test-style test-unit 9 | 10 | test-style: 11 | # display output, then check 12 | $(GOFMT) $(GO_PACKAGES) 13 | @$(GOFMT) $(GO_PACKAGES) | read; if [ $$? == 0 ]; then echo "gofmt check failed."; exit 1; fi 14 | $(GOVET) $(GO_PACKAGES_REPO_PATH) 15 | $(GOLINT) ./... 16 | 17 | test-unit: 18 | $(GOTEST) ./... 19 | -------------------------------------------------------------------------------- /router/rootfs/opt/nginx/firewall/active-mode.rules: -------------------------------------------------------------------------------- 1 | #LearningMode; #Enables learning mode 2 | SecRulesEnabled; 3 | #SecRulesDisabled; 4 | DeniedUrl "/RequestDenied"; 5 | 6 | ## check rules 7 | CheckRule "$SQL >= 8" BLOCK; 8 | CheckRule "$RFI >= 8" BLOCK; 9 | CheckRule "$TRAVERSAL >= 4" BLOCK; 10 | CheckRule "$EVADE >= 4" BLOCK; 11 | CheckRule "$XSS >= 8" BLOCK; 12 | 13 | # UnWantedAccess -> see app-server.rules 14 | CheckRule "$UWA >= 8" BLOCK; 15 | 16 | # Identified Attacks 17 | CheckRule "$ATTACK >= 8" BLOCK; 18 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/coreos/go-semver/semver/sort.go: -------------------------------------------------------------------------------- 1 | package semver 2 | 3 | import ( 4 | "sort" 5 | ) 6 | 7 | type Versions []*Version 8 | 9 | func (s Versions) Len() int { 10 | return len(s) 11 | } 12 | 13 | func (s Versions) Swap(i, j int) { 14 | s[i], s[j] = s[j], s[i] 15 | } 16 | 17 | func (s Versions) Less(i, j int) bool { 18 | return s[i].LessThan(*s[j]) 19 | } 20 | 21 | // Sort sorts the given slice of Version 22 | func Sort(versions []*Version) { 23 | sort.Sort(Versions(versions)) 24 | } 25 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/system/meminfo.go: -------------------------------------------------------------------------------- 1 | package system 2 | 3 | // MemInfo contains memory statistics of the host system. 4 | type MemInfo struct { 5 | // Total usable RAM (i.e. physical RAM minus a few reserved bits and the 6 | // kernel binary code). 7 | MemTotal int64 8 | 9 | // Amount of free memory. 10 | MemFree int64 11 | 12 | // Total amount of swap space available. 13 | SwapTotal int64 14 | 15 | // Amount of swap space that is currently unused. 16 | SwapFree int64 17 | } 18 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/libtrust/doc.go: -------------------------------------------------------------------------------- 1 | /* 2 | Package libtrust provides an interface for managing authentication and 3 | authorization using public key cryptography. Authentication is handled 4 | using the identity attached to the public key and verified through TLS 5 | x509 certificates, a key challenge, or signature. Authorization and 6 | access control is managed through a trust graph distributed between 7 | both remote trust servers and locally cached and managed data. 8 | */ 9 | package libtrust 10 | -------------------------------------------------------------------------------- /mesos/pkg/types/current-boot.go: -------------------------------------------------------------------------------- 1 | package types 2 | 3 | import ( 4 | "net" 5 | "time" 6 | 7 | "github.com/deis/deis/mesos/pkg/etcd" 8 | ) 9 | 10 | // CurrentBoot information about the boot 11 | // process related to the component 12 | type CurrentBoot struct { 13 | ConfdNodes []string 14 | EtcdClient *etcd.Client 15 | EtcdPath string 16 | EtcdPort int 17 | EtcdPeers string 18 | EtcdURL []string 19 | Host net.IP 20 | Port int 21 | Timeout time.Duration 22 | TTL time.Duration 23 | } 24 | -------------------------------------------------------------------------------- /tests/fixtures/mock-store/mock-s3-patch.diff: -------------------------------------------------------------------------------- 1 | diff --git a/mock_s3/main.py b/mock_s3/main.py 2 | index bd0307f..29c431a 100755 3 | --- a/mock_s3/main.py 4 | +++ b/mock_s3/main.py 5 | @@ -65,6 +65,9 @@ class S3Handler(BaseHTTPRequestHandler): 6 | def do_HEAD(self): 7 | return self.do_GET() 8 | 9 | + def do_POST(self): 10 | + return self.do_GET() 11 | + 12 | def do_PUT(self): 13 | parsed_path = urlparse.urlparse(self.path) 14 | qs = urlparse.parse_qs(parsed_path.query, True) 15 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/ActiveState/tail/watch/polling_windows.go: -------------------------------------------------------------------------------- 1 | // +build windows 2 | 3 | package watch 4 | 5 | import ( 6 | "os" 7 | ) 8 | 9 | const permissionDeniedRetryCount int = 5 10 | 11 | func permissionErrorRetry(err error, retry *int) bool { 12 | if os.IsPermission(err) && *retry < permissionDeniedRetryCount { 13 | // While pooling a file that does not exist yet, but will be created by another process we can get Permission Denied 14 | (*retry)++ 15 | return true 16 | } 17 | return false 18 | } 19 | -------------------------------------------------------------------------------- /mesos/pkg/log/stdout_formatter.go: -------------------------------------------------------------------------------- 1 | package log 2 | 3 | import ( 4 | "bytes" 5 | "fmt" 6 | "strings" 7 | 8 | "github.com/Sirupsen/logrus" 9 | ) 10 | 11 | // StdOutFormatter struct 12 | type StdOutFormatter struct { 13 | } 14 | 15 | // Format change the default output format to incluse the log level 16 | func (f *StdOutFormatter) Format(entry *logrus.Entry) ([]byte, error) { 17 | b := &bytes.Buffer{} 18 | fmt.Fprintf(b, "[%s] - %s\n", strings.ToUpper(entry.Level.String()), entry.Message) 19 | return b.Bytes(), nil 20 | } 21 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/ugorji/go/codec/codecgen_test.go: -------------------------------------------------------------------------------- 1 | //+build x,codecgen 2 | 3 | package codec 4 | 5 | import ( 6 | "fmt" 7 | "testing" 8 | ) 9 | 10 | func TestCodecgenJson1(t *testing.T) { 11 | const callCodecgenDirect bool = true 12 | v := newTestStruc(2, false, !testSkipIntf, false) 13 | var bs []byte 14 | e := NewEncoderBytes(&bs, testJsonH) 15 | if callCodecgenDirect { 16 | v.CodecEncodeSelf(e) 17 | e.w.atEndOfEncode() 18 | } else { 19 | e.MustEncode(v) 20 | } 21 | fmt.Printf("%s\n", bs) 22 | } 23 | -------------------------------------------------------------------------------- /contrib/aws/stack_policy.json: -------------------------------------------------------------------------------- 1 | { 2 | "Statement" : [ 3 | { 4 | "Effect" : "Deny", 5 | "Principal" : "*", 6 | "Action" : "Update:Replace", 7 | "Resource" : "*", 8 | "Condition" : { 9 | "StringEquals" : { 10 | "ResourceType" : ["AWS::EC2::Instance", "AWS::AutoScaling::AutoScalingGroup"] 11 | } 12 | } 13 | }, 14 | { 15 | "Effect" : "Allow", 16 | "Principal" : "*", 17 | "Action" : "Update:*", 18 | "Resource" : "*" 19 | } 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /controller/api/tests/test_limits.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | from api.serializers import MEMLIMIT_MATCH 4 | 5 | 6 | class TestLimits(unittest.TestCase): 7 | """Tests the regex for unit format used by "deis limits:set --memory=". 8 | """ 9 | 10 | def test_memlimit_regex(self): 11 | self.assertTrue(MEMLIMIT_MATCH.match("20MB")) 12 | self.assertFalse(MEMLIMIT_MATCH.match("20MK")) 13 | self.assertTrue(MEMLIMIT_MATCH.match("20gb")) 14 | self.assertFalse(MEMLIMIT_MATCH.match("20gK")) 15 | -------------------------------------------------------------------------------- /docs/reference/terms/application.rst: -------------------------------------------------------------------------------- 1 | :title: Application 2 | :description: A Deis application services requests and background jobs from a deployed git repository. 3 | 4 | 5 | .. _application: 6 | 7 | Application 8 | =========== 9 | 10 | An application services requests and background jobs for a deployed git repository. 11 | Each application includes a set of :ref:`Containers ` 12 | used to run isolated processes, and a :ref:`Release` that defines the current 13 | :ref:`Build` and :ref:`config` deployed by containers. 14 | -------------------------------------------------------------------------------- /mesos/pkg/fleet/machine_test.go: -------------------------------------------------------------------------------- 1 | package fleet 2 | 3 | import ( 4 | "reflect" 5 | "testing" 6 | ) 7 | 8 | func TestParseMetadata(t *testing.T) { 9 | data, err := ParseMetadata("zookeeper=true") 10 | if err != nil { 11 | t.Fatalf("Unexpected error '%v'", err) 12 | } 13 | 14 | expected := make(map[string][]string) 15 | expected["zookeeper"] = append(expected["zookeeper"], "true") 16 | 17 | if !reflect.DeepEqual(data, expected) { 18 | t.Fatalf("Expected map with zookeeper=true but it returned %v", expected) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/stdcopy/stdcopy_test.go: -------------------------------------------------------------------------------- 1 | package stdcopy 2 | 3 | import ( 4 | "bytes" 5 | "io/ioutil" 6 | "testing" 7 | ) 8 | 9 | func BenchmarkWrite(b *testing.B) { 10 | w := NewStdWriter(ioutil.Discard, Stdout) 11 | data := []byte("Test line for testing stdwriter performance\n") 12 | data = bytes.Repeat(data, 100) 13 | b.SetBytes(int64(len(data))) 14 | b.ResetTimer() 15 | for i := 0; i < b.N; i++ { 16 | if _, err := w.Write(data); err != nil { 17 | b.Fatal(err) 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /deisctl/utils/utils_test.go: -------------------------------------------------------------------------------- 1 | package utils 2 | 3 | import ( 4 | "os" 5 | "testing" 6 | ) 7 | 8 | // TestResolvePath ensures ResolvePath replaces $HOME and ~ as expected 9 | func TestResolvePath(t *testing.T) { 10 | t.Parallel() 11 | 12 | paths := []string{"$HOME/foo/bar", "~/foo/bar"} 13 | expected := os.Getenv("HOME") + "/foo/bar" 14 | for _, path := range paths { 15 | resolved := ResolvePath(path) 16 | if resolved != expected { 17 | t.Errorf("Test failed: expected %s, got %s", expected, resolved) 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/ActiveState/tail/deps.json: -------------------------------------------------------------------------------- 1 | { 2 | "github.com/howeyc/fsnotify": { 3 | "repo": "http://github.com/howeyc/fsnotify.git", 4 | "version": "441bbc86b167", 5 | "type": "git-clone", 6 | "alias": "github.com/howeyc/fsnotify" 7 | }, 8 | "gopkg.in/tomb.v1": { 9 | "repo": "https://github.com/go-tomb/tomb.git", 10 | "version": "c131134a1947e9afd9cecfe11f4c6dff0732ae58", 11 | "type": "git-clone", 12 | "alias": "gopkg.in/tomb.v1" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /docs/using_deis/index.rst: -------------------------------------------------------------------------------- 1 | :title: Using Deis 2 | :description: Step-by-step guide for developers using Deis to deploy and manage applications. 3 | 4 | .. _using_deis: 5 | 6 | Using Deis 7 | =============== 8 | 9 | :Release: |version| 10 | :Date: |today| 11 | 12 | .. toctree:: 13 | 14 | 15 | install-client 16 | register-user 17 | deploy-application 18 | process-types 19 | using-buildpacks 20 | using-dockerfiles 21 | using-docker-images 22 | config-application 23 | manage-application 24 | app-ssl 25 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/coreos/go-etcd/etcd/requests_test.go: -------------------------------------------------------------------------------- 1 | package etcd 2 | 3 | import "testing" 4 | 5 | func TestKeyToPath(t *testing.T) { 6 | tests := []struct { 7 | key string 8 | wpath string 9 | }{ 10 | {"", "keys/"}, 11 | {"foo", "keys/foo"}, 12 | {"foo/bar", "keys/foo/bar"}, 13 | {"%z", "keys/%25z"}, 14 | {"/", "keys/"}, 15 | } 16 | for i, tt := range tests { 17 | path := keyToPath(tt.key) 18 | if path != tt.wpath { 19 | t.Errorf("#%d: path = %s, want %s", i, path, tt.wpath) 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /controller/requirements.txt: -------------------------------------------------------------------------------- 1 | # Deis controller requirements 2 | # 3 | Django==1.6.11 4 | django-cors-headers==1.0.0 5 | # required for south migrations 6 | django-fsm==2.2.0 7 | django-guardian==1.2.5 8 | django-json-field==0.5.7 9 | django-auth-ldap==1.2.5 10 | djangorestframework==3.0.5 11 | docker-py==1.6.0 12 | gunicorn==19.3.0 13 | marathon==0.6.15 14 | paramiko==1.15.2 15 | psycopg2==2.6.1 16 | python-etcd==0.3.2 17 | python-ldap==2.4.19 18 | PyYAML==3.11 19 | semantic_version==2.4.2 20 | simpleflock==0.0.2 21 | South==1.0.2 22 | static==1.1.1 23 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/Masterminds/cookoo/glide.yaml: -------------------------------------------------------------------------------- 1 | package: github.com/Masterminds/cookoo 2 | 3 | import: 4 | # Use 'go get' to fetch a package: 5 | #- package: github.com/Masterminds/cookoo 6 | # Get and manage a package with Git: 7 | #- package: github.com/Masterminds/cookoo 8 | # # The repository URL 9 | # repo: git@github.com:Masterminds/cookoo.git 10 | # # A tag, branch, or SHA 11 | # ref: 1.1.0 12 | # # the VCS type (compare to bzr, hg, svn). You should 13 | # # set this if you know it. 14 | # vcs: git 15 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/libtrust/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to libtrust 2 | 3 | Want to hack on libtrust? Awesome! Here are instructions to get you 4 | started. 5 | 6 | libtrust is a part of the [Docker](https://www.docker.com) project, and follows 7 | the same rules and principles. If you're already familiar with the way 8 | Docker does things, you'll feel right at home. 9 | 10 | Otherwise, go read 11 | [Docker's contributions guidelines](https://github.com/docker/docker/blob/master/CONTRIBUTING.md). 12 | 13 | Happy hacking! 14 | -------------------------------------------------------------------------------- /client/controller/api/keys.go: -------------------------------------------------------------------------------- 1 | package api 2 | 3 | // Key is the definition of the key object. 4 | type Key struct { 5 | Created string `json:"created"` 6 | ID string `json:"id"` 7 | Owner string `json:"owner"` 8 | Public string `json:"public"` 9 | Updated string `json:"updated"` 10 | UUID string `json:"uuid"` 11 | } 12 | 13 | // KeyCreateRequest is the definition of POST /v1/keys/. 14 | type KeyCreateRequest struct { 15 | ID string `json:"id"` 16 | Public string `json:"public"` 17 | Name string `json:"name,omitempty"` 18 | } 19 | -------------------------------------------------------------------------------- /client/controller/api/users.go: -------------------------------------------------------------------------------- 1 | package api 2 | 3 | // User is the definition of the user object. 4 | type User struct { 5 | ID int `json:"id"` 6 | LastLogin string `json:"last_login"` 7 | IsSuperuser bool `json:"is_superuser"` 8 | Username string `json:"username"` 9 | FirstName string `json:"first_name"` 10 | LastName string `json:"last_name"` 11 | Email string `json:"email"` 12 | IsStaff bool `json:"is_staff"` 13 | IsActive bool `json:"is_active"` 14 | DateJoined string `json:"date_joined"` 15 | } 16 | -------------------------------------------------------------------------------- /deisctl/utils/utils.go: -------------------------------------------------------------------------------- 1 | // Package utils contains commonly useful functions from Deisctl 2 | package utils 3 | 4 | import ( 5 | "os" 6 | "strings" 7 | ) 8 | 9 | // ResolvePath returns the path with a tilde (~) and $HOME replaced by the actual home directory 10 | func ResolvePath(path string) string { 11 | path = strings.Replace(path, "~", os.Getenv("HOME"), -1) 12 | // Using $HOME seems to work just fine with `deisctl config`, but not `deisctl refresh-units` 13 | path = strings.Replace(path, "$HOME", os.Getenv("HOME"), -1) 14 | return path 15 | } 16 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/term/tc_other.go: -------------------------------------------------------------------------------- 1 | // +build !windows 2 | // +build !linux !cgo 3 | 4 | package term 5 | 6 | import ( 7 | "syscall" 8 | "unsafe" 9 | ) 10 | 11 | func tcget(fd uintptr, p *Termios) syscall.Errno { 12 | _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, uintptr(getTermios), uintptr(unsafe.Pointer(p))) 13 | return err 14 | } 15 | 16 | func tcset(fd uintptr, p *Termios) syscall.Errno { 17 | _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, setTermios, uintptr(unsafe.Pointer(p))) 18 | return err 19 | } 20 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/kardianos/osext/osext_plan9.go: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package osext 6 | 7 | import ( 8 | "os" 9 | "strconv" 10 | "syscall" 11 | ) 12 | 13 | func executable() (string, error) { 14 | f, err := os.Open("/proc/" + strconv.Itoa(os.Getpid()) + "/text") 15 | if err != nil { 16 | return "", err 17 | } 18 | defer f.Close() 19 | return syscall.Fd2path(int(f.Fd())) 20 | } 21 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/lib/pq/user_posix.go: -------------------------------------------------------------------------------- 1 | // Package pq is a pure Go Postgres driver for the database/sql package. 2 | 3 | // +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris 4 | 5 | package pq 6 | 7 | import ( 8 | "os" 9 | "os/user" 10 | ) 11 | 12 | func userCurrent() (string, error) { 13 | u, err := user.Current() 14 | if err == nil { 15 | return u.Username, nil 16 | } 17 | 18 | name := os.Getenv("USER") 19 | if name != "" { 20 | return name, nil 21 | } 22 | 23 | return "", ErrCouldNotDetectUsername 24 | } 25 | -------------------------------------------------------------------------------- /controller/web/templates/web/dashboard.html: -------------------------------------------------------------------------------- 1 | {% extends "web/base.html" %} 2 | {% load humanize %} 3 | 4 | {% block title %}Dashboard{% endblock %} 5 | 6 | {% block content %} 7 |
8 |

Dashboard

9 |

10 | You have {% if apps %}{{ apps|length|apnumber }}{% else %}no{% endif %} app{{ apps|pluralize }}. 11 |

12 |

13 | Connected to Deis controller v{{ version }} at 14 | {{ site.domain }}.
15 |

16 |
17 | {% endblock %} 18 | -------------------------------------------------------------------------------- /docs/reference/terms/release.rst: -------------------------------------------------------------------------------- 1 | :title: Release 2 | :description: A Deis application release combines a build with a config. 3 | 4 | .. _release: 5 | 6 | Release 7 | ======= 8 | A Deis release is a combination of a :ref:`Build` with a :ref:`Config`. 9 | Each :ref:`Application` is associated with one release at a time. 10 | Deis releases are numbered and new releases always increment by 11 | one (e.g. v1, v2, v3). 12 | 13 | :ref:`Containers ` that host an application use these 14 | release versions to pull the correct code and configuration. 15 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/golang.org/x/crypto/ssh/terminal/util_linux.go: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package terminal 6 | 7 | // These constants are declared here, rather than importing 8 | // them from the syscall package as some syscall packages, even 9 | // on linux, for example gccgo, do not declare them. 10 | const ioctlReadTermios = 0x5401 // syscall.TCGETS 11 | const ioctlWriteTermios = 0x5402 // syscall.TCSETS 12 | -------------------------------------------------------------------------------- /contrib/docker-registry/README.md: -------------------------------------------------------------------------------- 1 | Private Docker registry 2 | ======================= 3 | 4 | This directory provides a Vagrantfile and user-data file to provision and configure a CoreOS machine 5 | which runs a private Docker registry. This is useful for testing Deis because it is significantly 6 | faster than the public Docker registry. 7 | 8 | To run the registry, in this directory simply: 9 | ```console 10 | $ vagrant up 11 | ``` 12 | 13 | The registry will then be accessible at `172.21.12.100:5000` from any other local VM, including 14 | Deis machines. 15 | -------------------------------------------------------------------------------- /contrib/vagrant/create: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -eo pipefail -o nounset 4 | 5 | function deisctl-tunnel { 6 | local port="$(vagrant ssh-config deis-01 \ 7 | | grep Port \ 8 | | awk '{print $2}')" 9 | local ip="$(vagrant ssh-config deis-01 \ 10 | | grep HostName \ 11 | | awk '{print $2}')" 12 | echo "${ip}:${port}" 13 | } 14 | 15 | ( 16 | cd ${DEIS_ROOT} 17 | vagrant up --provider virtualbox 18 | ) 19 | 20 | export DEISCTL_TUNNEL="$(deisctl-tunnel)" 21 | rigger-save-vars DEISCTL_TUNNEL 22 | -------------------------------------------------------------------------------- /docs/_includes/_generate-discovery-url.rst: -------------------------------------------------------------------------------- 1 | A discovery URL links `etcd`_ instances together by storing their peer 2 | addresses and metadata under a unique identifier. Run this command from the root 3 | of the repository to generate a ``contrib/coreos/user-data`` file with a new 4 | discovery URL: 5 | 6 | .. code-block:: console 7 | 8 | $ make discovery-url 9 | 10 | Required scripts are supplied in this ``user-data`` file, so do not provision a 11 | Deis cluster without running ``make discovery-url``. 12 | 13 | .. _`etcd`: https://github.com/coreos/etcd 14 | -------------------------------------------------------------------------------- /router/logger/stdout_formatter.go: -------------------------------------------------------------------------------- 1 | package logger 2 | 3 | import ( 4 | "bytes" 5 | "fmt" 6 | "strings" 7 | 8 | "github.com/Sirupsen/logrus" 9 | ) 10 | 11 | // StdOutFormatter formats log messages from the router component. 12 | type StdOutFormatter struct { 13 | } 14 | 15 | // Format rewrites a log entry for stdout as a byte array. 16 | func (f *StdOutFormatter) Format(entry *logrus.Entry) ([]byte, error) { 17 | b := &bytes.Buffer{} 18 | fmt.Fprintf(b, "[%s] - %s\n", strings.ToUpper(entry.Level.String()), entry.Message) 19 | return b.Bytes(), nil 20 | } 21 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/syslog/README.md: -------------------------------------------------------------------------------- 1 | # Syslog Hooks for Logrus :walrus: 2 | 3 | ## Usage 4 | 5 | ```go 6 | import ( 7 | "log/syslog" 8 | "github.com/Sirupsen/logrus" 9 | "github.com/Sirupsen/logrus/hooks/syslog" 10 | ) 11 | 12 | func main() { 13 | log := logrus.New() 14 | hook, err := logrus_syslog.NewSyslogHook("udp", "localhost:514", syslog.LOG_INFO, "") 15 | 16 | if err == nil { 17 | log.Hooks.Add(hook) 18 | } 19 | } 20 | ``` -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/go-martini/martini/env_test.go: -------------------------------------------------------------------------------- 1 | package martini 2 | 3 | import ( 4 | "testing" 5 | ) 6 | 7 | func Test_SetENV(t *testing.T) { 8 | tests := []struct { 9 | in string 10 | out string 11 | }{ 12 | {"", "development"}, 13 | {"not_development", "not_development"}, 14 | } 15 | 16 | for _, test := range tests { 17 | setENV(test.in) 18 | if Env != test.out { 19 | expect(t, Env, test.out) 20 | } 21 | } 22 | } 23 | 24 | func Test_Root(t *testing.T) { 25 | if len(Root) == 0 { 26 | t.Errorf("Expected root path will be set") 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/chrootarchive/init.go: -------------------------------------------------------------------------------- 1 | package chrootarchive 2 | 3 | import ( 4 | "fmt" 5 | "io" 6 | "io/ioutil" 7 | "os" 8 | 9 | "github.com/docker/docker/pkg/reexec" 10 | ) 11 | 12 | func init() { 13 | reexec.Register("docker-untar", untar) 14 | reexec.Register("docker-applyLayer", applyLayer) 15 | } 16 | 17 | func fatal(err error) { 18 | fmt.Fprint(os.Stderr, err) 19 | os.Exit(1) 20 | } 21 | 22 | // flush consumes all the bytes from the reader discarding 23 | // any errors 24 | func flush(r io.Reader) { 25 | io.Copy(ioutil.Discard, r) 26 | } 27 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/leeor/etcd-sync/README.md: -------------------------------------------------------------------------------- 1 | etcd-sync 2 | ========= 3 | 4 | An etcd-based sync module, aiming at implementing the Go sync pkg over etcd for cluster-wide synchronization. 5 | 6 | Installation 7 | ============ 8 | 9 | ~~~shell 10 | go get github.com/leeor/etcd-sync 11 | ~~~ 12 | 13 | Usage 14 | ===== 15 | 16 | At this time, only a simple mutex has been implemented. 17 | 18 | ## EtcdMutex 19 | 20 | ~~~go 21 | mutex := NewMutexFromServers([]string{"http://127.0.0.1:4001"}, key, 0) 22 | mutex.Lock() 23 | // do some critical stuff 24 | mutex.Unlock() 25 | ~~~ 26 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/Masterminds/cookoo/safely/safely_test.go: -------------------------------------------------------------------------------- 1 | package safely 2 | 3 | import ( 4 | "testing" 5 | "bytes" 6 | "log" 7 | "time" 8 | ) 9 | 10 | func TestGo( t *testing.T) { 11 | f := func() { 12 | panic("OUCH!") 13 | } 14 | Go(f) 15 | } 16 | 17 | func TestGoLog(t *testing.T) { 18 | var buf bytes.Buffer 19 | logger := log.New(&buf, "", 0) 20 | GoLog(logger, func() { 21 | panic("OUCH") 22 | }) 23 | time.Sleep(time.Second) 24 | if !bytes.Contains(buf.Bytes(), []byte("OUCH")) { 25 | t.Errorf("Expected to find 'OUCH' in %s.", buf.String()) 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/Masterminds/cookoo/web/auth/auth_datasource.go: -------------------------------------------------------------------------------- 1 | package auth 2 | 3 | // Authenticate a username/password pair. 4 | // 5 | // This expects a username and a password as strings. 6 | // A boolean `true` indicates that the user has been authenticated. A `false` 7 | // indicates that the user/password combo has failed to auth. This is not 8 | // necessarily an error. An error should only be returned when an unexpected 9 | // condition has obtained during authentication. 10 | type UserDatasource interface { 11 | AuthUser(username, password string) (bool, error) 12 | } 13 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/daemon/graphdriver/btrfs/version.go: -------------------------------------------------------------------------------- 1 | // +build linux,!btrfs_noversion 2 | 3 | package btrfs 4 | 5 | /* 6 | #include 7 | 8 | // because around version 3.16, they did not define lib version yet 9 | int my_btrfs_lib_version() { 10 | #ifdef BTRFS_LIB_VERSION 11 | return BTRFS_LIB_VERSION; 12 | #else 13 | return -1; 14 | #endif 15 | } 16 | */ 17 | import "C" 18 | 19 | func BtrfsBuildVersion() string { 20 | return string(C.BTRFS_BUILD_VERSION) 21 | } 22 | func BtrfsLibVersion() int { 23 | return int(C.BTRFS_LIB_VERSION) 24 | } 25 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/coreos/go-etcd/etcd/debug_test.go: -------------------------------------------------------------------------------- 1 | package etcd 2 | 3 | import ( 4 | "testing" 5 | ) 6 | 7 | type Foo struct{} 8 | type Bar struct { 9 | one string 10 | two int 11 | } 12 | 13 | // Tests that logs don't panic with arbitrary interfaces 14 | func TestDebug(t *testing.T) { 15 | f := &Foo{} 16 | b := &Bar{"asfd", 3} 17 | for _, test := range []interface{}{ 18 | 1234, 19 | "asdf", 20 | f, 21 | b, 22 | } { 23 | logger.Debug(test) 24 | logger.Debugf("something, %s", test) 25 | logger.Warning(test) 26 | logger.Warningf("something, %s", test) 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/vendor/src/code.google.com/p/go/src/pkg/archive/tar/stat_atim.go: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build linux dragonfly openbsd solaris 6 | 7 | package tar 8 | 9 | import ( 10 | "syscall" 11 | "time" 12 | ) 13 | 14 | func statAtime(st *syscall.Stat_t) time.Time { 15 | return time.Unix(st.Atim.Unix()) 16 | } 17 | 18 | func statCtime(st *syscall.Stat_t) time.Time { 19 | return time.Unix(st.Ctim.Unix()) 20 | } 21 | -------------------------------------------------------------------------------- /deisctl/backend/fleet/dock.go: -------------------------------------------------------------------------------- 1 | package fleet 2 | 3 | import ( 4 | "fmt" 5 | "strings" 6 | ) 7 | 8 | // Dock connects to the appropriate host and runs 'docker exec -it'. 9 | func (c *FleetClient) Dock(target string, cmd []string) error { 10 | 11 | units, err := c.Units(target) 12 | if err != nil { 13 | return err 14 | } 15 | target = units[0][0 : len(units[0])-len(".service")] 16 | 17 | cmdStr := "sh" 18 | if len(cmd) > 0 { 19 | cmdStr = strings.Join(cmd, " ") 20 | } 21 | 22 | execit := fmt.Sprintf("docker exec -it %s %s", target, cmdStr) 23 | 24 | return c.SSHExec(target, execit) 25 | } 26 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/vendor/src/code.google.com/p/go/src/pkg/archive/tar/stat_atimespec.go: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build darwin freebsd netbsd 6 | 7 | package tar 8 | 9 | import ( 10 | "syscall" 11 | "time" 12 | ) 13 | 14 | func statAtime(st *syscall.Stat_t) time.Time { 15 | return time.Unix(st.Atimespec.Unix()) 16 | } 17 | 18 | func statCtime(st *syscall.Stat_t) time.Time { 19 | return time.Unix(st.Ctimespec.Unix()) 20 | } 21 | -------------------------------------------------------------------------------- /tests/bin/destroy-all-vagrants.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # WARNING: Don't run this script unless you understand that it will destroy all Deis vagrant VMs. 4 | # 5 | # Tells vagrant to destroy all VMs with "deis" in the name. 6 | 7 | VMS=$(vagrant global-status | grep deis | awk '{ print $5 }') 8 | for dir in $VMS; do 9 | cd $dir && vagrant destroy --force 10 | done 11 | 12 | # optional commands to remove all VirtualBox vms, since sometimes they are orphaned 13 | #VBoxManage list vms | sed -n -e 's/^.* {\(.*\)}/\1/p' | xargs -L1 -I {} VBoxManage unregistervm {} --delete 14 | #rm -rf $HOME/VirtualBox\ VMs/deis* 15 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2013, 2014 Engine Yard, Inc. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /client/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2015 Engine Yard, Inc. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /store/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2014 Engine Yard, Inc. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/opts/ip.go: -------------------------------------------------------------------------------- 1 | package opts 2 | 3 | import ( 4 | "fmt" 5 | "net" 6 | ) 7 | 8 | type IpOpt struct { 9 | *net.IP 10 | } 11 | 12 | func NewIpOpt(ref *net.IP, defaultVal string) *IpOpt { 13 | o := &IpOpt{ 14 | IP: ref, 15 | } 16 | o.Set(defaultVal) 17 | return o 18 | } 19 | 20 | func (o *IpOpt) Set(val string) error { 21 | ip := net.ParseIP(val) 22 | if ip == nil { 23 | return fmt.Errorf("%s is not an ip address", val) 24 | } 25 | (*o.IP) = net.ParseIP(val) 26 | return nil 27 | } 28 | 29 | func (o *IpOpt) String() string { 30 | return (*o.IP).String() 31 | } 32 | -------------------------------------------------------------------------------- /controller/migrations/data/0001.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ETCD_PORT=${ETCD_PORT:-4001} 4 | ETCD="$HOST:$ETCD_PORT" 5 | ETCDCTL="etcdctl -C $ETCD" 6 | 7 | if [[ "$($ETCDCTL get /deis/migrations/data/0001 2> /dev/null)" != "done" ]]; 8 | then 9 | for i in $($ETCDCTL ls /deis/domains 2> /dev/null); 10 | do 11 | for j in $($ETCDCTL get "$i"); 12 | do 13 | $ETCDCTL set "/deis/domains/$j" "$(basename "$i")" 1> /dev/null; 14 | echo "migrated $j" 15 | done; 16 | $ETCDCTL rm "$i"; 17 | done 18 | $ETCDCTL set /deis/migrations/data/0001 "done" 19 | fi 20 | -------------------------------------------------------------------------------- /deisctl/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2014 Engine Yard, Inc. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /publisher/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2014 Engine Yard, Inc. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /database/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2013, 2014 Engine Yard, Inc. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /docs/customizing_deis/index.rst: -------------------------------------------------------------------------------- 1 | :title: Customizing Deis 2 | :description: Instructions for how to customize your Deis application platform 3 | 4 | .. _customizing_deis: 5 | 6 | Customizing Deis 7 | ================ 8 | 9 | :Release: |version| 10 | :Date: |today| 11 | 12 | .. toctree:: 13 | 14 | choosing-a-scheduler 15 | cli-plugins 16 | builder_settings 17 | controller_settings 18 | database_settings 19 | logger_settings 20 | registry_settings 21 | router_settings 22 | store_daemon_settings 23 | store_gateway_settings 24 | store_metadata_settings 25 | store_monitor_settings 26 | -------------------------------------------------------------------------------- /registry/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2013, 2014 Engine Yard, Inc. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /client/controller/api/releases.go: -------------------------------------------------------------------------------- 1 | package api 2 | 3 | // Release is the definition of the release object. 4 | type Release struct { 5 | App string `json:"app"` 6 | Build string `json:"build,omitempty"` 7 | Config string `json:"config"` 8 | Created string `json:"created"` 9 | Owner string `json:"owner"` 10 | Summary string `json:"summary"` 11 | Updated string `json:"updated"` 12 | UUID string `json:"uuid"` 13 | Version int `json:"version"` 14 | } 15 | 16 | // ReleaseRollback is the defenition of POST /v1/apps//releases/. 17 | type ReleaseRollback struct { 18 | Version int `json:"version"` 19 | } 20 | -------------------------------------------------------------------------------- /tests/fixtures/test-etcd/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.2 2 | 3 | # install common packages 4 | RUN apk add --update-cache curl tar && rm -rf /var/cache/apk/* 5 | 6 | # ETCD_VERSION is actually used by the etcd daemon, and causes an issue if we 7 | # format it for our use here. So, we call this something else. 8 | ENV INSTALL_ETCD_VERSION v2.1.2 9 | 10 | # install etcd and etcdctl 11 | RUN curl -sSL https://github.com/coreos/etcd/releases/download/$INSTALL_ETCD_VERSION/etcd-$INSTALL_ETCD_VERSION-linux-amd64.tar.gz \ 12 | | tar -vxz -C /usr/local/bin --strip=1 13 | 14 | EXPOSE 4001 7001 2379 2380 15 | CMD ["/usr/local/bin/etcd"] 16 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/nat/sort.go: -------------------------------------------------------------------------------- 1 | package nat 2 | 3 | import "sort" 4 | 5 | type portSorter struct { 6 | ports []Port 7 | by func(i, j Port) bool 8 | } 9 | 10 | func (s *portSorter) Len() int { 11 | return len(s.ports) 12 | } 13 | 14 | func (s *portSorter) Swap(i, j int) { 15 | s.ports[i], s.ports[j] = s.ports[j], s.ports[i] 16 | } 17 | 18 | func (s *portSorter) Less(i, j int) bool { 19 | ip := s.ports[i] 20 | jp := s.ports[j] 21 | 22 | return s.by(ip, jp) 23 | } 24 | 25 | func Sort(ports []Port, predicate func(i, j Port) bool) { 26 | s := &portSorter{ports, predicate} 27 | sort.Sort(s) 28 | } 29 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/system/mknod.go: -------------------------------------------------------------------------------- 1 | // +build !windows 2 | 3 | package system 4 | 5 | import ( 6 | "syscall" 7 | ) 8 | 9 | func Mknod(path string, mode uint32, dev int) error { 10 | return syscall.Mknod(path, mode, dev) 11 | } 12 | 13 | // Linux device nodes are a bit weird due to backwards compat with 16 bit device nodes. 14 | // They are, from low to high: the lower 8 bits of the minor, then 12 bits of the major, 15 | // then the top 12 bits of the minor 16 | func Mkdev(major int64, minor int64) uint32 { 17 | return uint32(((minor & 0xfff00) << 12) | ((major & 0xfff) << 8) | (minor & 0xff)) 18 | } 19 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/golang.org/x/crypto/ssh/tcpip_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package ssh 6 | 7 | import ( 8 | "testing" 9 | ) 10 | 11 | func TestAutoPortListenBroken(t *testing.T) { 12 | broken := "SSH-2.0-OpenSSH_5.9hh11" 13 | works := "SSH-2.0-OpenSSH_6.1" 14 | if !isBrokenOpenSSHVersion(broken) { 15 | t.Errorf("version %q not marked as broken", broken) 16 | } 17 | if isBrokenOpenSSHVersion(works) { 18 | t.Errorf("version %q marked as broken", works) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/golang.org/x/net/context/ctxhttp/cancelreq_go14.go: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !go1.5 6 | 7 | package ctxhttp 8 | 9 | import "net/http" 10 | 11 | type requestCanceler interface { 12 | CancelRequest(*http.Request) 13 | } 14 | 15 | func canceler(client *http.Client, req *http.Request) func() { 16 | rc, ok := client.Transport.(requestCanceler) 17 | if !ok { 18 | return func() {} 19 | } 20 | return func() { 21 | rc.CancelRequest(req) 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /deisctl/units/deis-kube-proxy.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Kubernetes Proxy 3 | Documentation=https://github.com/GoogleCloudPlatform/kubernetes 4 | 5 | [Service] 6 | EnvironmentFile=/etc/environment 7 | ExecStartPre=/bin/bash -c "/opt/bin/download-k8s-binary kube-proxy" 8 | ExecStartPre=/bin/bash -c "/opt/bin/wupiao $(/usr/bin/etcdctl get /deis/scheduler/k8s/master):8080" 9 | ExecStart=/bin/bash -c '/opt/bin/kube-proxy --master=`/usr/bin/etcdctl get /deis/scheduler/k8s/master`:8080 --logtostderr=true --healthz-bind-address=0.0.0.0' 10 | Restart=always 11 | RestartSec=10 12 | SuccessExitStatus=2 13 | 14 | [X-Fleet] 15 | Global=true 16 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/gorilla/mux/bench_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Gorilla Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package mux 6 | 7 | import ( 8 | "net/http" 9 | "testing" 10 | ) 11 | 12 | func BenchmarkMux(b *testing.B) { 13 | router := new(Router) 14 | handler := func(w http.ResponseWriter, r *http.Request) {} 15 | router.HandleFunc("/v1/{v1}", handler) 16 | 17 | request, _ := http.NewRequest("GET", "/v1/anything", nil) 18 | for i := 0; i < b.N; i++ { 19 | router.ServeHTTP(nil, request) 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/papertrail/papertrail_test.go: -------------------------------------------------------------------------------- 1 | package logrus_papertrail 2 | 3 | import ( 4 | "fmt" 5 | "testing" 6 | 7 | "github.com/Sirupsen/logrus" 8 | "github.com/stvp/go-udp-testing" 9 | ) 10 | 11 | func TestWritingToUDP(t *testing.T) { 12 | port := 16661 13 | udp.SetAddr(fmt.Sprintf(":%d", port)) 14 | 15 | hook, err := NewPapertrailHook("localhost", port, "test") 16 | if err != nil { 17 | t.Errorf("Unable to connect to local UDP server.") 18 | } 19 | 20 | log := logrus.New() 21 | log.Hooks.Add(hook) 22 | 23 | udp.ShouldReceive(t, "foo", func() { 24 | log.Info("foo") 25 | }) 26 | } 27 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/Sirupsen/logrus/json_formatter.go: -------------------------------------------------------------------------------- 1 | package logrus 2 | 3 | import ( 4 | "encoding/json" 5 | "fmt" 6 | "time" 7 | ) 8 | 9 | type JSONFormatter struct{} 10 | 11 | func (f *JSONFormatter) Format(entry *Entry) ([]byte, error) { 12 | prefixFieldClashes(entry) 13 | entry.Data["time"] = entry.Time.Format(time.RFC3339) 14 | entry.Data["msg"] = entry.Message 15 | entry.Data["level"] = entry.Level.String() 16 | 17 | serialized, err := json.Marshal(entry.Data) 18 | if err != nil { 19 | return nil, fmt.Errorf("Failed to marshal fields to JSON, %v", err) 20 | } 21 | return append(serialized, '\n'), nil 22 | } 23 | -------------------------------------------------------------------------------- /store/gateway/build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # fail on any command exiting non-zero 4 | set -eo pipefail 5 | 6 | if [[ -z $DOCKER_BUILD ]]; then 7 | echo 8 | echo "Note: this script is intended for use by the Dockerfile and not as a way to build the store dashboard locally" 9 | echo 10 | exit 1 11 | fi 12 | 13 | DEBIAN_FRONTEND=noninteractive 14 | 15 | apt-get update && apt-get install -yq radosgw radosgw-agent 16 | 17 | # cleanup. indicate that python is a required package. 18 | apt-get clean -y && \ 19 | rm -Rf /usr/share/man /usr/share/doc && \ 20 | rm -rf /tmp/* /var/tmp/* && \ 21 | rm -rf /var/lib/apt/lists/* 22 | 23 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/utils/timeoutconn.go: -------------------------------------------------------------------------------- 1 | package utils 2 | 3 | import ( 4 | "net" 5 | "time" 6 | ) 7 | 8 | func NewTimeoutConn(conn net.Conn, timeout time.Duration) net.Conn { 9 | return &TimeoutConn{conn, timeout} 10 | } 11 | 12 | // A net.Conn that sets a deadline for every Read or Write operation 13 | type TimeoutConn struct { 14 | net.Conn 15 | timeout time.Duration 16 | } 17 | 18 | func (c *TimeoutConn) Read(b []byte) (int, error) { 19 | if c.timeout > 0 { 20 | err := c.Conn.SetReadDeadline(time.Now().Add(c.timeout)) 21 | if err != nil { 22 | return 0, err 23 | } 24 | } 25 | return c.Conn.Read(b) 26 | } 27 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/go-martini/martini/env.go: -------------------------------------------------------------------------------- 1 | package martini 2 | 3 | import ( 4 | "os" 5 | ) 6 | 7 | // Envs 8 | const ( 9 | Dev string = "development" 10 | Prod string = "production" 11 | Test string = "test" 12 | ) 13 | 14 | // Env is the environment that Martini is executing in. The MARTINI_ENV is read on initialization to set this variable. 15 | var Env = Dev 16 | var Root string 17 | 18 | func setENV(e string) { 19 | if len(e) > 0 { 20 | Env = e 21 | } 22 | } 23 | 24 | func init() { 25 | setENV(os.Getenv("MARTINI_ENV")) 26 | var err error 27 | Root, err = os.Getwd() 28 | if err != nil { 29 | panic(err) 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /client/controller/models/users/users.go: -------------------------------------------------------------------------------- 1 | package users 2 | 3 | import ( 4 | "encoding/json" 5 | 6 | "github.com/deis/deis/client/controller/api" 7 | "github.com/deis/deis/client/controller/client" 8 | ) 9 | 10 | // List users registered with the controller. 11 | func List(c *client.Client, results int) ([]api.User, int, error) { 12 | body, count, err := c.LimitedRequest("/v1/users/", results) 13 | 14 | if err != nil { 15 | return []api.User{}, -1, err 16 | } 17 | 18 | var users []api.User 19 | if err = json.Unmarshal([]byte(body), &users); err != nil { 20 | return []api.User{}, -1, err 21 | } 22 | 23 | return users, count, nil 24 | } 25 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/Masterminds/cookoo/convert/commands.go: -------------------------------------------------------------------------------- 1 | package convert 2 | /* 3 | Conversion commands. 4 | 5 | Convert one type to another. 6 | 7 | This package provides conversions that can be used in chains of commands. 8 | */ 9 | 10 | import ( 11 | "github.com/Masterminds/cookoo" 12 | "strconv" 13 | ) 14 | 15 | // Convert a string to an integer. 16 | // 17 | // Params: 18 | // - str (string): A string that contains a number. 19 | // 20 | // Returns: 21 | // - An integer. 22 | func Atoi(c cookoo.Context, p *cookoo.Params) (interface{}, cookoo.Interrupt) { 23 | src := p.Get("str", "0").(string) 24 | return strconv.Atoi(src) 25 | } 26 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/system/lstat_test.go: -------------------------------------------------------------------------------- 1 | package system 2 | 3 | import ( 4 | "os" 5 | "testing" 6 | ) 7 | 8 | func TestLstat(t *testing.T) { 9 | file, invalid, _, dir := prepareFiles(t) 10 | defer os.RemoveAll(dir) 11 | 12 | statFile, err := Lstat(file) 13 | if err != nil { 14 | t.Fatal(err) 15 | } 16 | if statFile == nil { 17 | t.Fatal("returned empty stat for existing file") 18 | } 19 | 20 | statInvalid, err := Lstat(invalid) 21 | if err == nil { 22 | t.Fatal("did not return error for non-existing file") 23 | } 24 | if statInvalid != nil { 25 | t.Fatal("returned non-nil stat for non-existing file") 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docopt/docopt-go/examples/counted/counted_example.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | "github.com/docopt/docopt-go" 6 | ) 7 | 8 | func main() { 9 | usage := `Usage: counted_example --help 10 | counted_example -v... 11 | counted_example go [go] 12 | counted_example (--path=)... 13 | counted_example 14 | 15 | Try: counted_example -vvvvvvvvvv 16 | counted_example go go 17 | counted_example --path ./here --path ./there 18 | counted_example this.txt that.txt` 19 | 20 | arguments, _ := docopt.Parse(usage, nil, true, "", false) 21 | fmt.Println(arguments) 22 | } 23 | -------------------------------------------------------------------------------- /controller/web/static/css/deis-docs.css: -------------------------------------------------------------------------------- 1 | 2 | a.headerlink { 3 | visibility: hidden; 4 | margin-left: 8px; 5 | vertical-align: middle; 6 | } 7 | 8 | h1:hover > a.headerlink, 9 | h2:hover > a.headerlink, 10 | h3:hover > a.headerlink, 11 | h4:hover > a.headerlink, 12 | h5:hover > a.headerlink, 13 | h6:hover > a.headerlink, 14 | dt:hover > a.headerlink { 15 | visibility: visible; 16 | } 17 | 18 | span.viewcode-link { 19 | font-size: 10px; 20 | margin-left: 6px; 21 | vertical-align: super; 22 | } 23 | 24 | a.viewcode-back { 25 | font-size: 10px; 26 | margin-right: 6px; 27 | vertical-align: super; 28 | } 29 | 30 | blockquote { 31 | border-left: none; 32 | } 33 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/system/utimes_freebsd.go: -------------------------------------------------------------------------------- 1 | package system 2 | 3 | import ( 4 | "syscall" 5 | "unsafe" 6 | ) 7 | 8 | func LUtimesNano(path string, ts []syscall.Timespec) error { 9 | var _path *byte 10 | _path, err := syscall.BytePtrFromString(path) 11 | if err != nil { 12 | return err 13 | } 14 | 15 | if _, _, err := syscall.Syscall(syscall.SYS_LUTIMES, uintptr(unsafe.Pointer(_path)), uintptr(unsafe.Pointer(&ts[0])), 0); err != 0 && err != syscall.ENOSYS { 16 | return err 17 | } 18 | 19 | return nil 20 | } 21 | 22 | func UtimesNano(path string, ts []syscall.Timespec) error { 23 | return syscall.UtimesNano(path, ts) 24 | } 25 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/coreos/go-etcd/etcd/add_child.go: -------------------------------------------------------------------------------- 1 | package etcd 2 | 3 | // Add a new directory with a random etcd-generated key under the given path. 4 | func (c *Client) AddChildDir(key string, ttl uint64) (*Response, error) { 5 | raw, err := c.post(key, "", ttl) 6 | 7 | if err != nil { 8 | return nil, err 9 | } 10 | 11 | return raw.Unmarshal() 12 | } 13 | 14 | // Add a new file with a random etcd-generated key under the given path. 15 | func (c *Client) AddChild(key string, value string, ttl uint64) (*Response, error) { 16 | raw, err := c.post(key, value, ttl) 17 | 18 | if err != nil { 19 | return nil, err 20 | } 21 | 22 | return raw.Unmarshal() 23 | } 24 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/tarsum/testdata/511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158/json: -------------------------------------------------------------------------------- 1 | {"id":"511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158","comment":"Imported from -","created":"2013-06-13T14:03:50.821769-07:00","container_config":{"Hostname":"","Domainname":"","User":"","Memory":0,"MemorySwap":0,"CpuShares":0,"AttachStdin":false,"AttachStdout":false,"AttachStderr":false,"PortSpecs":null,"ExposedPorts":null,"Tty":false,"OpenStdin":false,"StdinOnce":false,"Env":null,"Cmd":null,"Image":"","Volumes":null,"WorkingDir":"","Entrypoint":null,"NetworkDisabled":false,"OnBuild":null},"docker_version":"0.4.0","architecture":"x86_64","Size":0} -------------------------------------------------------------------------------- /router/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.2 2 | 3 | # install common packages 4 | RUN apk add --update-cache \ 5 | bash \ 6 | curl \ 7 | geoip \ 8 | libssl1.0 \ 9 | openssl \ 10 | pcre \ 11 | sudo \ 12 | && rm -rf /var/cache/apk/* 13 | 14 | # install confd 15 | RUN curl -sSL -o /usr/local/bin/confd https://s3-us-west-2.amazonaws.com/opdemand/confd-git-73f7489 \ 16 | && chmod +x /usr/local/bin/confd 17 | 18 | # add nginx user 19 | RUN addgroup -S nginx && \ 20 | adduser -S -G nginx -H -h /opt/nginx -s /sbin/nologin -D nginx 21 | 22 | COPY rootfs / 23 | 24 | # compile nginx from source 25 | RUN build 26 | 27 | CMD ["boot"] 28 | EXPOSE 80 2222 9090 29 | 30 | ENV DEIS_RELEASE 1.13.0-dev 31 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/coreos/go-etcd/etcd/member.go: -------------------------------------------------------------------------------- 1 | package etcd 2 | 3 | import "encoding/json" 4 | 5 | type Member struct { 6 | ID string `json:"id"` 7 | Name string `json:"name"` 8 | PeerURLs []string `json:"peerURLs"` 9 | ClientURLs []string `json:"clientURLs"` 10 | } 11 | 12 | type memberCollection []Member 13 | 14 | func (c *memberCollection) UnmarshalJSON(data []byte) error { 15 | d := struct { 16 | Members []Member 17 | }{} 18 | 19 | if err := json.Unmarshal(data, &d); err != nil { 20 | return err 21 | } 22 | 23 | if d.Members == nil { 24 | *c = make([]Member, 0) 25 | return nil 26 | } 27 | 28 | *c = d.Members 29 | return nil 30 | } 31 | -------------------------------------------------------------------------------- /contrib/azure/parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "newStorageAccountName": { 3 | "value": "" 4 | }, 5 | "publicDomainName": { 6 | "value": "" 7 | }, 8 | "dnsPrefixNameForPublicIP": { 9 | "value": "" 10 | }, 11 | "vmSize": { 12 | "value": "Standard_DS2" 13 | }, 14 | "adminUsername": { 15 | "value": "core" 16 | }, 17 | "sshKeyData": { 18 | "value": "" 19 | }, 20 | "customData": { 21 | "value": "" 22 | }, 23 | "numberOfNodes": { 24 | "value": 3 25 | }, 26 | "dockerVolumeSize": { 27 | "value": 100 28 | }, 29 | "coreosVersion": { 30 | "value": "835.9.0" 31 | }, 32 | "storageAccountType": { 33 | "value": "Premium_LRS" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /controller/api/management/commands/load_db_state_to_etcd.py: -------------------------------------------------------------------------------- 1 | from django.core.management.base import BaseCommand 2 | 3 | from api.models import Key, App, Domain, Certificate, Config 4 | 5 | 6 | class Command(BaseCommand): 7 | """Management command for publishing Deis platform state from the database 8 | to etcd. 9 | """ 10 | def handle(self, *args, **options): 11 | """Publishes Deis platform state from the database to etcd.""" 12 | print "Publishing DB state to etcd..." 13 | for model in (Key, App, Domain, Certificate, Config): 14 | for obj in model.objects.all(): 15 | obj.save() 16 | print "Done Publishing DB state to etcd." 17 | -------------------------------------------------------------------------------- /controller/deis/urls.py: -------------------------------------------------------------------------------- 1 | """ 2 | URL routing patterns for the Deis project. 3 | 4 | This is the "master" urls.py which then includes the urls.py files of 5 | installed apps. 6 | """ 7 | 8 | from __future__ import unicode_literals 9 | 10 | from django.conf import settings 11 | from django.conf.urls import patterns, include, url 12 | from django.contrib import admin 13 | 14 | 15 | admin.autodiscover() 16 | 17 | 18 | urlpatterns = patterns( 19 | '', 20 | url(r'^v1/', include('api.urls')), 21 | ) 22 | 23 | if settings.WEB_ENABLED: 24 | urlpatterns += patterns( 25 | '', 26 | url(r'^', include('web.urls')), 27 | url(r'^admin/', include(admin.site.urls)), 28 | ) 29 | -------------------------------------------------------------------------------- /database/templates/reload: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # This script is designed to be run inside the container 4 | # 5 | 6 | # provide defaults for required envvars 7 | PG_CONFIG=${PG_CONFIG:-/etc/postgresql/main/postgresql.conf} 8 | PG_LISTEN=${PG_LISTEN:-*} 9 | 10 | # run idemptoent database configuration 11 | sudo -i -u postgres psql postgres <` then use 12 | :ref:`installing_deis` to start provisioning your cluster. 13 | 14 | The full documentation tree can be seen :ref:`here `. 15 | 16 | .. image:: ../controller/web/static/img/deis-graphic.png 17 | :alt: Deis cover logo 18 | -------------------------------------------------------------------------------- /client/controller/client/utils.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "fmt" 5 | "os" 6 | "path" 7 | 8 | "github.com/deis/deis/version" 9 | ) 10 | 11 | func locateSettingsFile() string { 12 | filename := os.Getenv("DEIS_PROFILE") 13 | 14 | if filename == "" { 15 | filename = "client" 16 | } 17 | 18 | return path.Join(FindHome(), ".deis", filename+".json") 19 | } 20 | 21 | func checkAPICompatibility(serverAPIVersion string) { 22 | if serverAPIVersion != version.APIVersion { 23 | fmt.Printf(`! WARNING: Client and server API versions do not match. Please consider upgrading. 24 | ! Client version: %s 25 | ! Server version: %s 26 | `, version.APIVersion, serverAPIVersion) 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/Sirupsen/logrus/terminal_notwindows.go: -------------------------------------------------------------------------------- 1 | // Based on ssh/terminal: 2 | // Copyright 2011 The Go Authors. All rights reserved. 3 | // Use of this source code is governed by a BSD-style 4 | // license that can be found in the LICENSE file. 5 | 6 | // +build linux,!appengine darwin freebsd 7 | 8 | package logrus 9 | 10 | import ( 11 | "syscall" 12 | "unsafe" 13 | ) 14 | 15 | // IsTerminal returns true if the given file descriptor is a terminal. 16 | func IsTerminal() bool { 17 | fd := syscall.Stdout 18 | var termios Termios 19 | _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0) 20 | return err == 0 21 | } 22 | -------------------------------------------------------------------------------- /controller/.coveragerc: -------------------------------------------------------------------------------- 1 | [run] 2 | omit = 3 | */venv/* 4 | */virtualenv/* 5 | *tests* 6 | api/__init__.py 7 | api/docker.py 8 | scheduler/* 9 | web/__init__.py 10 | web/models.py 11 | web/templatetags/__init__.py 12 | # osx library files when not running in virtualenv 13 | /Library/* 14 | /System/* 15 | 16 | [report] 17 | ignore_errors = True 18 | exclude_lines = 19 | pragma: no cover 20 | def __repr__ 21 | if self.debug: 22 | if settings.DEBUG 23 | raise AssertionError 24 | raise NotImplementedError 25 | if 0: 26 | if __name__ == .__main__.: 27 | 28 | [html] 29 | extra_css = web/static/css/main.css 30 | title = Deis Coverage Report 31 | -------------------------------------------------------------------------------- /deisctl/utils/net/net.go: -------------------------------------------------------------------------------- 1 | // Package net contains commonly useful network functions 2 | package net 3 | 4 | import ( 5 | "errors" 6 | "io/ioutil" 7 | "net/http" 8 | ) 9 | 10 | // Download downloads a resource from a specified 11 | // source (URL) to the specified destination 12 | func Download(src string, dest string) error { 13 | res, err := http.Get(src) 14 | if err != nil { 15 | return err 16 | } 17 | if res.StatusCode != 200 { 18 | return errors.New(res.Status) 19 | } 20 | defer res.Body.Close() 21 | data, err := ioutil.ReadAll(res.Body) 22 | if err != nil { 23 | return err 24 | } 25 | if err = ioutil.WriteFile(dest, data, 0644); err != nil { 26 | return err 27 | } 28 | return nil 29 | } 30 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/ActiveState/tail/watch/watch.go: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2013 ActiveState Software Inc. All rights reserved. 2 | 3 | package watch 4 | 5 | import ( 6 | "gopkg.in/tomb.v1" 7 | "os" 8 | ) 9 | 10 | // FileWatcher monitors file-level events. 11 | type FileWatcher interface { 12 | // BlockUntilExists blocks until the file comes into existence. 13 | BlockUntilExists(*tomb.Tomb) error 14 | 15 | // ChangeEvents reports on changes to a file, be it modification, 16 | // deletion, renames or truncations. Returned FileChanges group of 17 | // channels will be closed, thus become unusable, after a deletion 18 | // or truncation event. 19 | ChangeEvents(*tomb.Tomb, os.FileInfo) *FileChanges 20 | } 21 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks/syslog/syslog_test.go: -------------------------------------------------------------------------------- 1 | package logrus_syslog 2 | 3 | import ( 4 | "github.com/Sirupsen/logrus" 5 | "log/syslog" 6 | "testing" 7 | ) 8 | 9 | func TestLocalhostAddAndPrint(t *testing.T) { 10 | log := logrus.New() 11 | hook, err := NewSyslogHook("udp", "localhost:514", syslog.LOG_INFO, "") 12 | 13 | if err != nil { 14 | t.Errorf("Unable to connect to local syslog.") 15 | } 16 | 17 | log.Hooks.Add(hook) 18 | 19 | for _, level := range hook.Levels() { 20 | if len(log.Hooks[level]) != 1 { 21 | t.Errorf("SyslogHook was not added. The length of log.Hooks[%v]: %v", level, len(log.Hooks[level])) 22 | } 23 | } 24 | 25 | log.Info("Congratulations!") 26 | } 27 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/libtrust/util_test.go: -------------------------------------------------------------------------------- 1 | package libtrust 2 | 3 | import ( 4 | "encoding/pem" 5 | "reflect" 6 | "testing" 7 | ) 8 | 9 | func TestAddPEMHeadersToKey(t *testing.T) { 10 | pk := &rsaPublicKey{nil, map[string]interface{}{}} 11 | blk := &pem.Block{Headers: map[string]string{"hosts": "localhost,127.0.0.1"}} 12 | addPEMHeadersToKey(blk, pk) 13 | 14 | val := pk.GetExtendedField("hosts") 15 | hosts, ok := val.([]string) 16 | if !ok { 17 | t.Fatalf("hosts type(%v), expected []string", reflect.TypeOf(val)) 18 | } 19 | expected := []string{"localhost", "127.0.0.1"} 20 | if !reflect.DeepEqual(hosts, expected) { 21 | t.Errorf("hosts(%v), expected %v", hosts, expected) 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /deisctl/units/deis-kube-scheduler.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Kubernetes Scheduler 3 | Documentation=https://github.com/GoogleCloudPlatform/kubernetes 4 | Requires=deis-kube-apiserver.service 5 | After=deis-kube-apiserver.service 6 | 7 | [Service] 8 | EnvironmentFile=/etc/environment 9 | ExecStartPre=/bin/bash -c "/opt/bin/download-k8s-binary kube-scheduler" 10 | ExecStartPre=/bin/bash -c "/opt/bin/wupiao $(/usr/bin/etcdctl get /deis/scheduler/k8s/master):8080" 11 | ExecStart=/opt/bin/kube-scheduler \ 12 | --master=127.0.0.1:8080 \ 13 | --policy-config-file=/opt/bin/scheduler-policy.json 14 | Restart=always 15 | RestartSec=10 16 | SuccessExitStatus=2 17 | 18 | [X-Fleet] 19 | MachineOf=deis-kube-apiserver.service 20 | -------------------------------------------------------------------------------- /docs/reference/server/scheduler.rst: -------------------------------------------------------------------------------- 1 | :description: Python API Reference for the Deis scheduler module 2 | 3 | scheduler 4 | ========= 5 | 6 | scheduler.chaos 7 | --------------- 8 | .. contents:: 9 | :local: 10 | .. automodule:: scheduler.chaos 11 | 12 | scheduler.fleet 13 | --------------- 14 | .. contents:: 15 | :local: 16 | .. automodule:: scheduler.fleet 17 | 18 | scheduler.mock 19 | -------------- 20 | .. contents:: 21 | :local: 22 | .. automodule:: scheduler.mock 23 | 24 | scheduler.states 25 | ---------------- 26 | .. contents:: 27 | :local: 28 | .. automodule:: scheduler.states 29 | 30 | scheduler.swarm 31 | --------------- 32 | .. contents:: 33 | :local: 34 | .. automodule:: scheduler.swarm 35 | -------------------------------------------------------------------------------- /logspout/utils/docker-listener.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/fsouza/go-dockerclient" 5 | "log" 6 | ) 7 | 8 | func assert(err error, context string) { 9 | if err != nil { 10 | log.Fatal(context+": ", err) 11 | } 12 | } 13 | 14 | func main() { 15 | client, err := docker.NewClient("unix:///var/run/docker.sock") 16 | assert(err, "docker") 17 | events := make(chan *docker.APIEvents) 18 | //assert(client.AddEventListener(events), "attacher") 19 | //assert(client.RemoveEventListener(events), "attacher") 20 | assert(client.AddEventListener(events), "attacher") 21 | log.Println("listening for events") 22 | for msg := range events { 23 | log.Println("event:", msg.ID[:12], msg.Status) 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /client/cmd/users.go: -------------------------------------------------------------------------------- 1 | package cmd 2 | 3 | import ( 4 | "fmt" 5 | 6 | "github.com/deis/deis/client/controller/client" 7 | "github.com/deis/deis/client/controller/models/users" 8 | ) 9 | 10 | // UsersList lists users registered with the controller. 11 | func UsersList(results int) error { 12 | c, err := client.New() 13 | 14 | if err != nil { 15 | return err 16 | } 17 | 18 | if results == defaultLimit { 19 | results = c.ResponseLimit 20 | } 21 | 22 | users, count, err := users.List(c, results) 23 | 24 | if err != nil { 25 | return err 26 | } 27 | 28 | fmt.Printf("=== Users%s", limitCount(len(users), count)) 29 | 30 | for _, user := range users { 31 | fmt.Println(user.Username) 32 | } 33 | return nil 34 | } 35 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/Masterminds/cookoo/convert/commands_test.go: -------------------------------------------------------------------------------- 1 | package convert 2 | 3 | import ( 4 | "github.com/Masterminds/cookoo" 5 | "testing" 6 | ) 7 | 8 | func TestAtoi(t *testing.T) { 9 | reg, router, c := cookoo.Cookoo() 10 | reg.Route("test", "Test convert.").Does(Atoi, "i").Using("str").From("cxt:a") 11 | 12 | c.Put("a", "100") 13 | e := router.HandleRequest("test", c, false) 14 | 15 | if e != nil { 16 | t.Errorf("! Failed during HandleRequest: %s", e) 17 | return 18 | } 19 | i, ok := c.Has("i") 20 | if !ok { 21 | t.Error("! Expected to find 'a' in context, but it was missing.") 22 | } 23 | if i.(int) != 100 { 24 | t.Errorf("! Expected '100' to be converted to 100. Got %d", i) 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /client/controller/api/certs.go: -------------------------------------------------------------------------------- 1 | package api 2 | 3 | // Cert is the definition of the cert object. 4 | // Some fields are omtempty because they are only 5 | // returned when creating or getting a cert. 6 | type Cert struct { 7 | Updated string `json:"updated,omitempty"` 8 | Created string `json:"created,omitempty"` 9 | Name string `json:"common_name"` 10 | Expires string `json:"expires"` 11 | Owner string `json:"owner,omitempty"` 12 | ID int `json:"id,omitempty"` 13 | } 14 | 15 | // CertCreateRequest is the definition of POST /v1/certs/. 16 | type CertCreateRequest struct { 17 | Certificate string `json:"certificate"` 18 | Key string `json:"key"` 19 | Name string `json:"common_name,omitempty"` 20 | } 21 | -------------------------------------------------------------------------------- /mesos/pkg/boot/zookeeper/bash/remove-node.bash: -------------------------------------------------------------------------------- 1 | set -eo pipefail 2 | 3 | # set debug based on envvar 4 | [[ $DEBUG ]] && set -x 5 | 6 | main() { 7 | export PATH=$PATH:/jre/bin 8 | 9 | # We cannot use the IP of this node to performe the removal of this node of the cluster 10 | ZKHOST=$(sed -e "s/$HOST:3888//;s/^,//;s/,$//" < /opt/zookeeper/conf/server.list | cut -d ',' -f 1) 11 | ACTUAL_SERVERS=$(/opt/zookeeper/bin/zkCli.sh -server "$ZKHOST" config | grep "^server.") 12 | 13 | if echo "$ACTUAL_SERVERS" | grep -q "$HOST"; then 14 | echo "Removing $HOST server from zookeeper cluster" 15 | echo "" 16 | /opt/zookeeper/bin/zkCli.sh -server "$ZKHOST" reconfig -remove "$(cat /opt/zookeeper-data/data/myid)" 17 | fi 18 | } 19 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/Sirupsen/logrus/examples/basic/basic.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/Sirupsen/logrus" 5 | ) 6 | 7 | var log = logrus.New() 8 | 9 | func init() { 10 | log.Formatter = new(logrus.JSONFormatter) 11 | log.Formatter = new(logrus.TextFormatter) // default 12 | } 13 | 14 | func main() { 15 | log.WithFields(logrus.Fields{ 16 | "animal": "walrus", 17 | "size": 10, 18 | }).Info("A group of walrus emerges from the ocean") 19 | 20 | log.WithFields(logrus.Fields{ 21 | "omg": true, 22 | "number": 122, 23 | }).Warn("The group's number increased tremendously!") 24 | 25 | log.WithFields(logrus.Fields{ 26 | "omg": true, 27 | "number": 100, 28 | }).Fatal("The ice breaks!") 29 | } 30 | -------------------------------------------------------------------------------- /docs/managing_deis/index.rst: -------------------------------------------------------------------------------- 1 | :title: Managing Deis 2 | :description: Guide for operations engineers managing a private PaaS using Deis. 3 | 4 | .. _managing_deis: 5 | 6 | Managing Deis 7 | ============= 8 | 9 | :Release: |version| 10 | :Date: |today| 11 | 12 | .. toctree:: 13 | 14 | add_remove_host 15 | backing_up_data 16 | configure-dns 17 | configure-load-balancers 18 | disk_usage 19 | operational_tasks 20 | platform_logging 21 | platform_monitoring 22 | production_deployments 23 | isolating-planes 24 | isolating-etcd 25 | recovering-ceph-quorum 26 | running-deis-without-ceph 27 | security_considerations 28 | ssl-endpoints 29 | upgrading-deis 30 | using-a-proxy-server 31 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docopt/docopt-go/examples/calculator/calculator_example.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | "github.com/docopt/docopt-go" 6 | ) 7 | 8 | func main() { 9 | usage := `Not a serious example. 10 | 11 | Usage: 12 | calculator_example ( ( + | - | * | / ) )... 13 | calculator_example [( , )]... 14 | calculator_example (-h | --help) 15 | 16 | Examples: 17 | calculator_example 1 + 2 + 3 + 4 + 5 18 | calculator_example 1 + 2 '*' 3 / 4 - 5 # note quotes around '*' 19 | calculator_example sum 10 , 20 , 30 , 40 20 | 21 | Options: 22 | -h, --help 23 | ` 24 | arguments, _ := docopt.Parse(usage, nil, true, "", false) 25 | fmt.Println(arguments) 26 | } 27 | -------------------------------------------------------------------------------- /docs/installing_deis/download-linux-brightgreen.svg: -------------------------------------------------------------------------------- 1 | downloaddownloadLinuxLinux -------------------------------------------------------------------------------- /contrib/aws/check: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -eo pipefail -o nounset 4 | 5 | function check-elb-service { 6 | local elb_name="${1}" 7 | 8 | ATTEMPTS=45 9 | SLEEPTIME=10 10 | COUNTER=1 11 | IN_SERVICE=0 12 | until [ $IN_SERVICE -ge 1 ]; do 13 | if [ $COUNTER -gt $ATTEMPTS ]; then exit 1; fi # timeout after 7 1/2 minutes 14 | if [ $COUNTER -ne 1 ]; then sleep $SLEEPTIME; fi 15 | rigger-log "Waiting for ELB (${elb_name}) to see an instance in InService..." 16 | IN_SERVICE=$(aws elb describe-instance-health \ 17 | --load-balancer-name "${elb_name}" \ 18 | --query 'length(InstanceStates[?State==`InService`])') 19 | done 20 | } 21 | 22 | check-elb-service "${ELB_NAME}" 23 | -------------------------------------------------------------------------------- /database/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.1 2 | 3 | # install common packages 4 | RUN apk add --update-cache curl bash sudo && rm -rf /var/cache/apk/* 5 | 6 | # install etcdctl 7 | RUN curl -sSL -o /usr/local/bin/etcdctl https://s3-us-west-2.amazonaws.com/get-deis/etcdctl-v0.4.9 \ 8 | && chmod +x /usr/local/bin/etcdctl 9 | 10 | # install confd 11 | RUN curl -sSL -o /usr/local/bin/confd https://github.com/kelseyhightower/confd/releases/download/v0.10.0/confd-0.10.0-linux-amd64 \ 12 | && chmod +x /usr/local/bin/confd 13 | 14 | ADD build.sh /tmp/build.sh 15 | RUN DOCKER_BUILD=true /tmp/build.sh 16 | 17 | # define the execution environment 18 | WORKDIR /app 19 | CMD ["/app/bin/boot"] 20 | EXPOSE 5432 21 | ADD . /app 22 | 23 | ENV DEIS_RELEASE 1.13.0-dev 24 | -------------------------------------------------------------------------------- /docs/installing_deis/download-osx-brightgreen.svg: -------------------------------------------------------------------------------- 1 | downloaddownloadMac OS XMac OS X -------------------------------------------------------------------------------- /Godeps/_workspace/src/golang.org/x/net/websocket/examplehandler_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package websocket_test 6 | 7 | import ( 8 | "io" 9 | "net/http" 10 | 11 | "golang.org/x/net/websocket" 12 | ) 13 | 14 | // Echo the data received on the WebSocket. 15 | func EchoServer(ws *websocket.Conn) { 16 | io.Copy(ws, ws) 17 | } 18 | 19 | // This example demonstrates a trivial echo server. 20 | func ExampleHandler() { 21 | http.Handle("/echo", websocket.Handler(EchoServer)) 22 | err := http.ListenAndServe(":12345", nil) 23 | if err != nil { 24 | panic("ListenAndServe: " + err.Error()) 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/ActiveState/tail/README.md: -------------------------------------------------------------------------------- 1 | [![Build Status](https://travis-ci.org/ActiveState/tail.svg)](https://travis-ci.org/ActiveState/tail) 2 | 3 | # Go package for tail-ing files 4 | 5 | A Go package striving to emulate the features of the BSD `tail` program. 6 | 7 | ```Go 8 | t, err := tail.TailFile("/var/log/nginx.log", tail.Config{Follow: true}) 9 | for line := range t.Lines { 10 | fmt.Println(line.Text) 11 | } 12 | ``` 13 | 14 | See [API documentation](http://godoc.org/github.com/ActiveState/tail). 15 | 16 | ## Log rotation 17 | 18 | Tail comes with full support for truncation/move detection as it is 19 | designed to work with log rotation tools. 20 | 21 | ## Installing 22 | 23 | go get github.com/ActiveState/tail/... 24 | 25 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/system/stat.go: -------------------------------------------------------------------------------- 1 | package system 2 | 3 | import ( 4 | "syscall" 5 | ) 6 | 7 | type Stat struct { 8 | mode uint32 9 | uid uint32 10 | gid uint32 11 | rdev uint64 12 | size int64 13 | mtim syscall.Timespec 14 | } 15 | 16 | func (s Stat) Mode() uint32 { 17 | return s.mode 18 | } 19 | 20 | func (s Stat) Uid() uint32 { 21 | return s.uid 22 | } 23 | 24 | func (s Stat) Gid() uint32 { 25 | return s.gid 26 | } 27 | 28 | func (s Stat) Rdev() uint64 { 29 | return s.rdev 30 | } 31 | 32 | func (s Stat) Size() int64 { 33 | return s.size 34 | } 35 | 36 | func (s Stat) Mtim() syscall.Timespec { 37 | return s.mtim 38 | } 39 | 40 | func (s Stat) GetLastModification() syscall.Timespec { 41 | return s.Mtim() 42 | } 43 | -------------------------------------------------------------------------------- /client/controller/client/utils_test.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "os" 5 | "testing" 6 | ) 7 | 8 | func TestChooseSettingsFileLocation(t *testing.T) { 9 | os.Unsetenv("DEIS_PROFILE") 10 | os.Setenv("HOME", "/home/test") 11 | expected := "/home/test/.deis/client.json" 12 | 13 | actual := locateSettingsFile() 14 | 15 | if actual != expected { 16 | t.Errorf("Expected %s, Got %s", expected, actual) 17 | } 18 | } 19 | 20 | func TestChooseSettingsFileUsingProfile(t *testing.T) { 21 | os.Setenv("DEIS_PROFILE", "testing") 22 | os.Setenv("HOME", "/home/test") 23 | expected := "/home/test/.deis/testing.json" 24 | 25 | actual := locateSettingsFile() 26 | 27 | if actual != expected { 28 | t.Errorf("Expected %s, Got %s", expected, actual) 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/pkg/tarsum/builder_context.go: -------------------------------------------------------------------------------- 1 | package tarsum 2 | 3 | // This interface extends TarSum by adding the Remove method. In general 4 | // there was concern about adding this method to TarSum itself so instead 5 | // it is being added just to "BuilderContext" which will then only be used 6 | // during the .dockerignore file processing - see builder/evaluator.go 7 | type BuilderContext interface { 8 | TarSum 9 | Remove(string) 10 | } 11 | 12 | func (bc *tarSum) Remove(filename string) { 13 | for i, fis := range bc.sums { 14 | if fis.Name() == filename { 15 | bc.sums = append(bc.sums[:i], bc.sums[i+1:]...) 16 | // Note, we don't just return because there could be 17 | // more than one with this name 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /tests/README.md: -------------------------------------------------------------------------------- 1 | # Deis Tests 2 | 3 | This directory contains a [Go](http://golang.org/) package with integration 4 | tests for the [Deis](http://deis.io/) open source PaaS. 5 | 6 | Please refer to [Testing Deis](http://docs.deis.io/en/latest/contributing/testing/) 7 | for help with running these tests. 8 | 9 | [![Testing Deis](https://readthedocs.org/projects/deis/badge/)](http://docs.deis.io/en/latest/contributing/testing/) 10 | 11 | **NOTE**: These integration tests are targeted for use in Deis' 12 | [continuous integration system](https://ci.deis.io/). The tests currently assume 13 | they are targeting a freshly provisioned Deis cluster. **Don't** run the 14 | integration tests on a Deis installation with existing users; the tests will 15 | fail and could overwrite data. 16 | -------------------------------------------------------------------------------- /database/bin/backup: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | export BACKUP_FREQUENCY=${BACKUP_FREQUENCY:-3h} 4 | export BACKUPS_TO_RETAIN=${BACKUPS_TO_RETAIN:-5} 5 | 6 | while true; do 7 | sleep "$BACKUP_FREQUENCY" 8 | echo "database: performing a backup..." 9 | if [[ -f /var/lib/postgresql/9.3/main/recovery.conf ]] ; then 10 | echo "database: database is currently recovering from a backup. Will try again next loop..." 11 | else 12 | # perform a backup 13 | envdir /etc/wal-e.d/env wal-e backup-push /var/lib/postgresql/9.3/main 14 | # only retain the latest BACKUPS_TO_RETAIN backups 15 | envdir /etc/wal-e.d/env wal-e delete --confirm retain "$BACKUPS_TO_RETAIN" 16 | echo "database: backup has been completed." 17 | fi 18 | done 19 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/docker/docker/dockerversion/dockerversion.go: -------------------------------------------------------------------------------- 1 | package dockerversion 2 | 3 | // FIXME: this should be embedded in the docker/docker.go, 4 | // but we can't because distro policy requires us to 5 | // package a separate dockerinit binary, and that binary needs 6 | // to know its version too. 7 | 8 | var ( 9 | GITCOMMIT string 10 | VERSION string 11 | 12 | IAMSTATIC string // whether or not Docker itself was compiled statically via ./hack/make.sh binary ("true" or not "true") 13 | INITSHA1 string // sha1sum of separate static dockerinit, if Docker itself was compiled dynamically via ./hack/make.sh dynbinary 14 | INITPATH string // custom location to search for a valid dockerinit binary (available for packagers as a last resort escape hatch) 15 | ) 16 | --------------------------------------------------------------------------------