No description
This repository has been archived on 2020-03-24. You can view files and clone it, but cannot push or open issues or pull requests.
Find a file
Joseph Schorr 8aac3fd86e Add support for an external JWT-based authentication system
This authentication system hits two HTTP endpoints to check and verify the existence of users:

Existance endpoint:
GET http://endpoint/ with Authorization: Basic (username:) =>
    Returns 200 if the username/email exists, 4** otherwise

Verification endpoint:
GET http://endpoint/ with Authorization: Basic (username:password) =>
    Returns 200 and a signed JWT with the user's username and email address if the username+password validates, 4** otherwise with the body containing an optional error message

The JWT produced by the endpoint must be issued with an issuer matching that configured in the config.yaml, and the audience must be "quay.io/jwtauthn". The JWT is signed using a private key and then validated on the Quay.io side with the associated public key, found as "jwt-authn.cert" in the conf/stack directory.
2015-06-05 13:20:10 -04:00
art Move other PSDs to the art directory as well 2014-05-08 18:31:01 -04:00
auth Remove extra call to the DB for a user we already have 2015-05-07 17:17:05 -04:00
avatars Switch avatars to be built out of CSS and only overlayed with the gravatar when a non-default exists 2015-03-30 17:55:04 -04:00
binary_dependencies Remove the old builder infrastructure. 2015-01-29 11:03:23 -05:00
buildman - Have the heartbeat fail to update if the worker has timed out 2015-05-26 16:05:36 -04:00
buildstatus status badges updated to use shields.io standard 2015-03-23 20:24:08 -04:00
conf nginx: move ssl config out of server-base 2015-05-26 16:05:37 -04:00
data Add support for an external JWT-based authentication system 2015-06-05 13:20:10 -04:00
emails Switch avatars to be built out of CSS and only overlayed with the gravatar when a non-default exists 2015-03-30 17:55:04 -04:00
endpoints Add support for an external JWT-based authentication system 2015-06-05 13:20:10 -04:00
events Strip whitespace from ALL the things. 2014-11-24 16:07:38 -05:00
features Strip whitespace from ALL the things. 2014-11-24 16:07:38 -05:00
formats formats/aci: handle config['ENV'] is None 2015-03-03 16:53:28 -05:00
grunt Make sure CSS compilation in grunt loads all CSS files recursively. 2015-02-25 11:47:19 -05:00
health Fix the DB health check 2015-05-20 17:40:43 -04:00
screenshots Update screenshots and tour content 2015-05-13 14:24:12 -04:00
static Add support for an external JWT-based authentication system 2015-06-05 13:20:10 -04:00
storage End-to-end registry tests 2015-06-01 16:35:30 -04:00
templates Fix OAuth 500 error 2015-04-24 16:42:31 -04:00
test Add support for an external JWT-based authentication system 2015-06-05 13:20:10 -04:00
tools Change API calls that expect non-robots to explicitly filter 2015-05-26 17:47:33 -04:00
util Add support for an external JWT-based authentication system 2015-06-05 13:20:10 -04:00
workers Make the repositoryactioncount worker disconnect from the DB between runs 2015-04-22 17:11:08 -04:00
.dockerignore Don't add .pyc files to the Docker images 2014-11-23 14:20:10 -05:00
.gitignore Add UI for handling the case when an enterprise has reached its maximum seat count 2014-05-28 15:22:36 -04:00
alembic.ini Add alembic plumbing for database schema migrations. 2014-04-09 19:11:33 -04:00
app.py gitlab oauth 2015-05-02 17:54:48 -04:00
application.py Unify the logging infrastructure and turn the prod logging level to INFO in preparation for picking up a new cloud logger. 2015-02-11 14:15:18 -05:00
Bobfile Update the bobfile to only use the one dockerfile. 2015-01-29 11:04:05 -05:00
build.sh Change the build.sh to append -dirty to the tag name if the git repo is not clean. 2015-03-13 10:36:35 -07:00
config.py Add missing default for the gitlab feature flag 2015-05-04 19:04:27 -07:00
Dockerfile End-to-end registry tests 2015-06-01 16:35:30 -04:00
external_libraries.py Fix the CoreOS Icon font in the non-CDN case 2015-05-13 17:14:20 -04:00
initdb.py Add support for an external JWT-based authentication system 2015-06-05 13:20:10 -04:00
local-run.sh remove shebang from local scripts 2014-11-20 15:25:13 -05:00
local-setup-osx.sh scripts: add a local setup script for OSX 2015-01-30 11:48:44 -05:00
local-test.sh tests: fail fast 2015-04-23 18:16:14 -04:00
README.md Rename the repository in the README 2014-12-08 13:31:44 -05:00
registry.py Make sure to import the exception decorators so that we raise 4xx errors to Docker instead of 500s 2015-04-01 15:34:07 -04:00
requirements-nover.txt Add support for an external JWT-based authentication system 2015-06-05 13:20:10 -04:00
requirements.txt Add support for an external JWT-based authentication system 2015-06-05 13:20:10 -04:00
ROADMAP.md Add a roadmap. 2015-05-27 15:54:45 -04:00
verbs.py Split the app into separate backends, which can use different worker types and different timeouts. 2014-10-14 13:58:08 -04:00
web.py gitlab oauth 2015-05-02 17:54:48 -04:00

to build and upload quay to quay:

curl -s https://get.docker.io/ubuntu/ | sudo sh
sudo apt-get update && sudo apt-get install -y git
git clone https://github.com/coreos-inc/quay.git
cd quay
rm Dockerfile
ln -s Dockerfile.web Dockerfile
sudo docker build -t quay.io/quay/quay .
sudo docker push quay.io/quay/quay

to prepare a new host:

Deploy cloud-init script from quayconfig/cloudconfig/webserver.yaml

or

curl -s https://get.docker.io/ubuntu/ | sudo sh
sudo apt-get update && sudo apt-get install -y git
git clone https://github.com/DevTable/gantryd.git
cd gantryd
cat requirements.system | xargs sudo apt-get install -y
virtualenv --distribute venv
venv/bin/pip install -r requirements.txt
sudo docker login -u 'quay+deploy' -e notused staging.quay.io

start the quay processes:

cd ~
git clone https://github.com/coreos-inc/quay.git
sudo docker pull staging.quay.io/quay/quay
cd ~/gantryd
sudo venv/bin/python gantry.py ../quayconfig/production/gantry.json update quay

to build and upload the builder to quay

curl -s https://get.docker.io/ubuntu/ | sudo sh
sudo apt-get update && sudo apt-get install -y git
git clone git clone https://github.com/coreos-inc/quay.git
cd quay
rm Dockerfile
ln -s Dockerfile.buildworker Dockerfile
sudo docker build -t quay.io/quay/builder .
sudo docker push quay.io/quay/builder

to run the builder from a fresh 14.04 server:

Deploy cloud-init script from quayconfig/cloudconfig/builder.yaml

or

sudo apt-get update && sudo apt-get install -y git lxc linux-image-extra-`uname -r`
curl -s https://get.docker.io/ubuntu/ | sudo sh
git clone https://github.com/DevTable/gantryd.git
cd gantryd
cat requirements.system | xargs sudo apt-get install -y
virtualenv --distribute venv
venv/bin/pip install -r requirements.txt
sudo docker login -u 'quay+deploy' -e notused quay.io

start the worker

cd ~
git clone https://github.com/coreos-inc/quay.git
sudo docker pull quay.io/quay/builder
cd ~/gantryd
sudo venv/bin/python gantry.py ../quayconfig/production/gantry.json update builder

running the tests:

TEST=true python -m unittest discover

running the tests with coverage (requires coverage module):

TEST=true coverage run -m unittest discover
coverage html

generating screenshots:

cd screenshots
casperjs screenshots.js --d