Added init script to inject credentials for DNS and Providers

Change-Id: Id9b8454ac65cd566fa16b9863005b254af5a2eeb
This commit is contained in:
amitgandhinz 2014-12-08 18:10:33 -05:00
parent b93576f881
commit 92b8e69942
11 changed files with 170 additions and 31 deletions

1
.gitignore vendored
View File

@ -44,6 +44,7 @@ write_file
.settings/*
/Dockerfile
/docker/fig/fig_local.yml
# patch files
*.patch

View File

@ -32,9 +32,13 @@ RUN sudo pip install -r /home/poppy/requirements/requirements.txt
RUN sudo pip install -e /home/poppy/.
# Set up the configuration files
ADD ./poppy.conf /etc/poppy.conf
ADD ./logging.conf /etc/logging.conf
ADD ./uwsgi.ini /root/uwsgi.ini
ADD ./docker/api/poppy.conf /etc/poppy.conf
ADD ./docker/api/logging.conf /etc/logging.conf
ADD ./docker/api/uwsgi.ini /root/uwsgi.ini
# Deploy startup script
ADD ./docker/api/init.sh /usr/local/bin/poppy_startup
RUN chmod 755 /usr/local/bin/poppy_startup
# create uwsgi log directory
RUN mkdir -p /var/log/poppy
@ -44,8 +48,6 @@ RUN chmod -R +w /var/log/poppy
RUN mkdir -p /var/run/poppy
RUN chmod -R +w /var/run/poppy
#RUN /usr/local/bin/uwsgi --ini /root/uwsgi.ini
# Start Poppy
EXPOSE 8081
CMD ["/usr/local/bin/uwsgi", "--ini", "/root/uwsgi.ini"]
CMD poppy-startup

25
docker/api/init.sh Normal file
View File

@ -0,0 +1,25 @@
#!/usr/bin/env bash
# Setup Configs
echo "Setting Configs"
CONFIG=/etc/poppy.conf
sed -i -e "s/DNS_USERNAME/$DNS_USERNAME/" $CONFIG
sed -i -e "s/DNS_APIKEY/$DNS_APIKEY/" $CONFIG
sed -i -e "s/DNS_URL/$DNS_URL/" $CONFIG
sed -i -e "s/DNS_EMAIL/$DNS_EMAIL/" $CONFIG
sed -i -e "s/FASTLY_APIKEY/$FASTLY_APIKEY/" $CONFIG
sed -i -e "s/AKAM_POLICY_API_CLIENT_TOKEN/$AKAM_POLICY_API_CLIENT_TOKEN/" $CONFIG
sed -i -e "s/AKAM_POLICY_API_CLIENT_SECRET/$AKAM_POLICY_API_CLIENT_SECRET/" $CONFIG
sed -i -e "s/AKAM_POLICY_API_ACCESS_TOKEN/$AKAM_POLICY_API_ACCESS_TOKEN/" $CONFIG
sed -i -e "s/AKAM_POLICY_API_BASE_URL/$AKAM_POLICY_API_BASE_URL/" $CONFIG
sed -i -e "s/AKAM_CCU_API_CLIENT_TOKEN/$AKAM_CCU_API_CLIENT_TOKEN/" $CONFIG
sed -i -e "s/AKAM_CCU_API_CLIENT_SECRET/$AKAM_CCU_API_CLIENT_SECRET/" $CONFIG
sed -i -e "s/AKAM_CCU_API_ACCESS_TOKEN/$AKAM_CCU_API_ACCESS_TOKEN/" $CONFIG
sed -i -e "s/AKAM_CCU_API_BASE_URL/$AKAM_CCU_API_BASE_URL/" $CONFIG
sed -i -e "s/AKAM_ACCESS_URL_LINK/$AKAM_ACCESS_URL_LINK/" $CONFIG
/usr/local/bin/uwsgi --ini /root/uwsgi.ini

View File

@ -49,5 +49,25 @@ port = 8081
cluster = "cassandra"
keyspace = poppy
[drivers:dns:rackspace]
username = DNS_USERNAME
api_key = DNS_APIKEY
use_shards = True
num_shards = 499
shard_prefix = "cdn"
url = DNS_URL
email = DNS_EMAIL
[drivers:provider:fastly]
apikey = "MYAPIKEY"
apikey = FASTLY_APIKEY
[drivers:provider:akamai]
policy_api_client_token = AKAM_POLICY_API_CLIENT_TOKEN
policy_api_client_secret = AKAM_POLICY_API_CLIENT_SECRET
policy_api_access_token = AKAM_POLICY_API_ACCESS_TOKEN
policy_api_base_url = AKAM_POLICY_API_BASE_URL
ccu_api_client_token = AKAM_CCU_API_CLIENT_TOKEN
ccu_api_client_secret = AKAM_CCU_API_CLIENT_SECRET
ccu_api_access_token = AKAM_CCU_API_ACCESS_TOKEN
ccu_api_base_url = AKAM_CCU_API_BASE_URL
akamai_access_url_link = AKAM_ACCESS_URL_LINK

View File

@ -37,6 +37,10 @@ ADD ./docker/api_dev/poppy.conf /etc/poppy.conf
ADD ./docker/api_dev/logging.conf /etc/logging.conf
ADD ./docker/api_dev/uwsgi.ini /root/uwsgi.ini
# Deploy startup script
ADD ./docker/api_dev/init.sh /usr/local/bin/poppy_startup
RUN chmod 755 /usr/local/bin/poppy_startup
# create uwsgi log directory
RUN mkdir -p /var/log/poppy
RUN chmod -R +w /var/log/poppy
@ -45,8 +49,6 @@ RUN chmod -R +w /var/log/poppy
RUN mkdir -p /var/run/poppy
RUN chmod -R +w /var/run/poppy
#RUN /usr/local/bin/uwsgi --ini /root/uwsgi.ini
# Start Poppy
EXPOSE 8081
CMD ["/usr/local/bin/uwsgi", "--ini", "/root/uwsgi.ini"]
CMD poppy_startup

25
docker/api_dev/init.sh Normal file
View File

@ -0,0 +1,25 @@
#!/usr/bin/env bash
# Setup Configs
echo "Setting Configs"
CONFIG=/etc/poppy.conf
sed -i -e "s/DNS_USERNAME/$DNS_USERNAME/" $CONFIG
sed -i -e "s/DNS_APIKEY/$DNS_APIKEY/" $CONFIG
sed -i -e "s/DNS_URL/$DNS_URL/" $CONFIG
sed -i -e "s/DNS_EMAIL/$DNS_EMAIL/" $CONFIG
sed -i -e "s/FASTLY_APIKEY/$FASTLY_APIKEY/" $CONFIG
sed -i -e "s/AKAM_POLICY_API_CLIENT_TOKEN/$AKAM_POLICY_API_CLIENT_TOKEN/" $CONFIG
sed -i -e "s/AKAM_POLICY_API_CLIENT_SECRET/$AKAM_POLICY_API_CLIENT_SECRET/" $CONFIG
sed -i -e "s/AKAM_POLICY_API_ACCESS_TOKEN/$AKAM_POLICY_API_ACCESS_TOKEN/" $CONFIG
sed -i -e "s/AKAM_POLICY_API_BASE_URL/$AKAM_POLICY_API_BASE_URL/" $CONFIG
sed -i -e "s/AKAM_CCU_API_CLIENT_TOKEN/$AKAM_CCU_API_CLIENT_TOKEN/" $CONFIG
sed -i -e "s/AKAM_CCU_API_CLIENT_SECRET/$AKAM_CCU_API_CLIENT_SECRET/" $CONFIG
sed -i -e "s/AKAM_CCU_API_ACCESS_TOKEN/$AKAM_CCU_API_ACCESS_TOKEN/" $CONFIG
sed -i -e "s/AKAM_CCU_API_BASE_URL/$AKAM_CCU_API_BASE_URL/" $CONFIG
sed -i -e "s/AKAM_ACCESS_URL_LINK/$AKAM_ACCESS_URL_LINK/" $CONFIG
/usr/local/bin/uwsgi --ini /root/uwsgi.ini

View File

@ -49,5 +49,25 @@ port = 8081
cluster = "cassandra"
keyspace = poppy
[drivers:dns:rackspace]
username = DNS_USERNAME
api_key = DNS_APIKEY
use_shards = True
num_shards = 499
shard_prefix = "cdn"
url = DNS_URL
email = DNS_EMAIL
[drivers:provider:fastly]
apikey = "MYAPIKEY"
apikey = FASTLY_APIKEY
[drivers:provider:akamai]
policy_api_client_token = AKAM_POLICY_API_CLIENT_TOKEN
policy_api_client_secret = AKAM_POLICY_API_CLIENT_SECRET
policy_api_access_token = AKAM_POLICY_API_ACCESS_TOKEN
policy_api_base_url = AKAM_POLICY_API_BASE_URL
ccu_api_client_token = AKAM_CCU_API_CLIENT_TOKEN
ccu_api_client_secret = AKAM_CCU_API_CLIENT_SECRET
ccu_api_access_token = AKAM_CCU_API_ACCESS_TOKEN
ccu_api_base_url = AKAM_CCU_API_BASE_URL
akamai_access_url_link = AKAM_ACCESS_URL_LINK

View File

@ -2,17 +2,24 @@ Install Fig::
$ sudo pip install -U fig
Before you begin
----------------
Install Poppy from Upstream
---------------------------
Update the appropriate fig file being used with the appropriate credentials.
Warning - never git commit your secret credentials to upstream! We recommend you create a new file named fig_local.yml (this will be ignored by git) and add your credentials in there. Reference that file in the -f parameter in the instructions below.
Install Poppy from Upstream (fig.yml)
-------------------------------------
Build and Run::
$ fig up -d
$ fig -f docker/fig/fig_local.yml up -d
Build && Rebuild::
$ fig build
$ fig -f fig_local.yml build
To stop all your fig containers::
@ -28,12 +35,12 @@ To get the most-updated code of poppy::
$ fig run poppy uwsgi --reload /var/run/poppy/poppy.pid
Mounting a local Poppy Volume
-----------------------------
Mounting a local Poppy Volume (copy from fig_dev.yml)
-------------------------------------------
1. Build and Run::
$ dev up
$ ./docker/fig/dev -f fig_local.yml up -d
Note that `dev` is a wrapper around the [`fig` CLI](http://www.fig.sh/cli.html) so
any sub-commands that work with the fig CLI will work with `dev` as well.
@ -43,20 +50,12 @@ Also note that the `fig_dev.yml` file in this folder cannot be used directly wit
invoking `fig`.
Testing
--------
Access the running poppy api instance home document::
$ curl <docker_ip>/v1.0/
Building and Running the Poppy API Server w/Mimic
-------------------------------------------------
Building and Running the Poppy API Server w/Mimic (fig_mimic.yml)
-----------------------------------------------------------------
From this folder, run:
$ ./dev_mimic up -d
$ ./docker/fig/dev_mimic -f docker/fig/fig_local.yml up -d
This will bring up a poppy server with your local poppy repository mounted as a volume
and will run it with any local changes. Cassandra and Mimic will also be started and
@ -64,11 +63,11 @@ wired together.
If you are running docker locally, you can then access the API at:
$ curl http://localhost/v1.0/
$ curl http://<docker_ip>/v1.0/
If local changes are made, simply restart the services to run them:
$ ./dev_mimic restart
$ ./docker/fig/dev_mimic restart
You can run the API tests against the poppy container according to the
[API testing](https://github.com/stackforge/poppy/blob/master/tests/api/README.rst)
@ -78,3 +77,11 @@ Note that `dev_mimic` is a wrapper around [`fig`](http://www.fig.sh/cli.html) so
any sub-commands that work with the fig CLI will work with `dev_mimic` as well.
Note that `dev_mimic` does not run a repose container.
Testing
--------
Access the running poppy api instance home document::
$ curl <docker_ip>/v1.0/

View File

@ -14,8 +14,27 @@ poppy:
build: ../api/.
ports:
- "81:8081"
environment:
DNS_USERNAME: CloudUsername
DNS_APIKEY: CloudApiKey
DNS_URL: DNSUrlToUse
DNS_EMAIL: YourEmailAddress
FASTLY_APIKEY: FastlyApiKey
AKAM_POLICY_API_CLIENT_TOKEN: value
AKAM_POLICY_API_CLIENT_SECRET: value
AKAM_POLICY_API_ACCESS_TOKEN: value
AKAM_POLICY_API_BASE_URL: value
AKAM_CCU_API_CLIENT_TOKEN: value
AKAM_CCU_API_CLIENT_SECRET: value
AKAM_CCU_API_ACCESS_TOKEN: value
AKAM_CCU_API_BASE_URL: value
AKAM_ACCESS_URL_LINK: value
links:
- cassandra
cassandra:
build: ../cassandra/.
ports:

View File

@ -14,6 +14,23 @@ poppydev:
build: ../../.
ports:
- "81:8081"
environment:
DNS_USERNAME: CloudUsername
DNS_APIKEY: CloudApiKey
DNS_URL: DNSUrlToUse
DNS_EMAIL: YourEmailAddress
FASTLY_APIKEY: FastlyApiKey
AKAM_POLICY_API_CLIENT_TOKEN: value
AKAM_POLICY_API_CLIENT_SECRET: value
AKAM_POLICY_API_ACCESS_TOKEN: value
AKAM_POLICY_API_BASE_URL: value
AKAM_CCU_API_CLIENT_TOKEN: value
AKAM_CCU_API_CLIENT_SECRET: value
AKAM_CCU_API_ACCESS_TOKEN: value
AKAM_CCU_API_BASE_URL: value
AKAM_ACCESS_URL_LINK: value
links:
- cassandra
volumes:

View File

@ -2,6 +2,7 @@
-r docs.txt
-r transport/pecan.txt
-r storage/cassandra.txt
-r dns/rackspace.txt
-r provider/akamai.txt
-r provider/cloudfront.txt
-r provider/fastly.txt