Skip to content
This repository was archived by the owner on Aug 1, 2024. It is now read-only.

Commit 6e56be8

Browse files
committed
Add provisioning script
ECOM-6565
1 parent 3949de3 commit 6e56be8

3 files changed

Lines changed: 52 additions & 1 deletion

File tree

Makefile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.PHONY: clone devstack.reset devstack.start devstack.stop help requirements validate
1+
.PHONY: clone devstack.provision devstack.reset devstack.start devstack.stop help requirements validate
22

33
help: ## Display this help message
44
@echo "Please use \`make <target>' where <target> is one of"
@@ -12,6 +12,9 @@ clone: ## Clone service repos
1212
devstack.open.%: clone ## Open a shell into the specified service container
1313
docker exec -it edx.devstack.$* env TERM=$(TERM) /edx/app/$*/devstack.sh open
1414

15+
devstack.provision: ## Provision all services
16+
./provision.sh
17+
1518
devstack.reset: ## Remove all service containers
1619
docker-compose down
1720

README.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,29 @@
11
# devstack
22

33
Get up and running quickly with edX services.
4+
5+
## Getting Started
6+
7+
All of the services can be run by following the steps below.
8+
9+
1. Run the provision command, if you haven't already, to configure the various services with super-users (for
10+
development without the auth service) and tenants (for multi-tenancy).
11+
12+
The username and password for the superusers are both "edx". You can access the services directly via Django admin
13+
at the `/admin` path.
14+
15+
```
16+
$ make devstack.provision
17+
```
18+
19+
2. Start the services.
20+
21+
```
22+
$ make devstack.start
23+
```
24+
25+
After the services have started, if you need shell access to one of the services, run `make devstack.open.<service>`.
26+
27+
```
28+
$ make devstack.open.discovery
29+
```

provision.sh

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/usr/bin/env bash
2+
3+
# Ensure the containers are started
4+
docker-compose up -d
5+
6+
# Create superusers that can access the services without the need for single sign-on
7+
# NOTE: If the users already exist, errors will be raised (in the Django shell), but execution of this provisioning
8+
# script will continue.
9+
services=('credentials' 'discovery' 'ecommerce' 'programs')
10+
for service in "${services[@]}"
11+
do
12+
docker exec -t edx.devstack.${service} bash -c 'source /edx/app/$1/$1_env && echo "from django.contrib.auth import get_user_model; User = get_user_model(); User.objects.create_superuser(\"edx\", \"edx@example.com\", \"edx\")" | python /edx/app/$1/$1/manage.py shell' -- "$service"
13+
done
14+
15+
16+
# TODO Create ecommerce tenant (ECOM-6564)
17+
# Use create_or_update_site (https://github.com/edx/ecommerce/blob/master/ecommerce/core/management/commands/create_or_update_site.py)
18+
19+
# TODO Create discovery tenant with correct credentials (ECOM-6565)
20+
docker exec -t edx.devstack.discovery bash -c 'source /edx/app/discovery/discovery_env && python /edx/app/discovery/discovery/manage.py create_or_update_partner --code edx --name edX --courses-api-url "https://courses.edx.org/api/courses/v1/" --ecommerce-api-url "http://edx.devstack.ecommerce/api/v2/" --organizations-api-url "https://courses.edx.org/api/organizations/v0/" --programs-api-url "http://edx.devstack.programs/api/v1/" --marketing-site-url-root "http://edx.devstack.marketing-site/" --marketing-site-api-url "http://edx.devstack.marketing-site/api/catalog/v2/" --marketing-site-api-username coursediscoveryworker --marketing-site-api-password "edx" --oidc-url-root "https://courses.edx.org/oauth2" --oidc-key discovery-key --oidc-secret discovery-secret'
21+
22+
# TODO Create credentials tenant (ECOM-6566)

0 commit comments

Comments
 (0)