---
|
- name: define ocp_project
|
set_fact:
|
ocp_project: "parksmap-{{guid}}"
|
ocp_project_completed: "parksmap-{{guid}}-completed"
|
|
# Templates come from here: https://raw.githubusercontent.com/jorgemoralespou/ose-sample-apps-layouts
|
|
- name: Create project for completed parksmap example
|
shell: |
|
oc new-project {{ocp_project_completed}} \
|
--display-name="Parksmap (completed)" \
|
--description="Project with the Parksmap demo completed (and guides)"
|
ignore_errors: true
|
|
- name: Deploy Parksmap
|
shell: "oc apply -f /tmp/{{guid}}/workshop-parksmap.yaml -n {{ocp_project_completed}}"
|
|
- name: Deploy Nationalparks
|
shell: "oc apply -f /tmp/{{guid}}/workshop-nationalparks.yaml -n {{ocp_project_completed}}"
|
|
- name: Deploy MLBParks
|
shell: "oc apply -f /tmp/{{guid}}/workshop-mlbparks.yaml -n {{ocp_project_completed}}"
|
|
- name: Add the template guide
|
shell: "oc apply -f /tmp/{{guid}}/workshopper-template.yaml -n {{ocp_project_completed}}"
|
|
- name: Deploy the guide to follow
|
shell: |
|
oc new-app starter-guides \
|
-p CONSOLE_ADDRESS={{ocp_master}} \
|
-p ROUTER_ADDRESS={{ocp_apps_domain}} \
|
-p USER_PROJECT={{ocp_project}} \
|
-p INFRA_PROJECT={{ocp_project_completed}} \
|
-n "{{ocp_project_completed}}"
|
|
- name: Print where's the guide
|
debug:
|
msg: "Guide has been installed in http://guides-{{ocp_project_completed}}.{{ocp_apps_domain}}"
|
|
#####
|
# Gogs
|
#####
|
- set_fact:
|
gogs_hostname: "gogs-{{ ocp_project_completed }}.{{ ocp_apps_domain }}"
|
|
- import_role:
|
name: siamaksade.openshift_gogs
|
vars:
|
project_name: "{{ ocp_project_completed }}"
|
gogs_route: "{{ gogs_hostname }}"
|
gogs_user: "developer"
|
gogs_password: "developer"
|
clean_deploy: false
|
# Clone required project in Gogs
|
#
|
- name: "Create local repository to push to git (Java version)"
|
command: git clone https://github.com/openshift-roadshow/nationalparks.git
|
args:
|
chdir: "/tmp/{{guid}}"
|
|
- name: Check if repository nationalparks exists in git for user "developer"
|
uri:
|
url: http://{{ gogs_hostname }}/api/v1/repos/developer/nationalparks
|
user: "developer"
|
password: "developer"
|
force_basic_auth: true
|
status_code: 200,404
|
register: repo_result
|
|
- name: Create git repository nationalparks for user "developer"
|
uri:
|
url: http://{{ gogs_hostname }}/api/v1/user/repos
|
method: POST
|
body: '{"name": "nationalparks", "private": false}'
|
body_format: json
|
user: "developer"
|
password: "developer"
|
status_code: 200,201
|
force_basic_auth: true
|
when: repo_result.status != 200
|
|
- name: Push nationalparks to git repository in Gogs for user "developer"
|
shell: |
|
git remote add developer http://developer:developer@{{ gogs_hostname }}/developer/nationalparks.git
|
git config --local user.email "developer@example.com"
|
git config --local user.name "developer"
|
git push -f --all developer
|
args:
|
chdir: "/tmp/{{guid}}/nationalparks"
|
when: repo_result.status != 200
|
|
- name: Annotate the completed project as requested by user
|
shell: "oc annotate namespace {{ocp_project_completed}} openshift.io/requester={{ocp_username}} --overwrite"
|
|
- name: Give user access to the completed project
|
shell: "oc policy add-role-to-user admin {{ocp_username}} -n {{ocp_project_completed}}"
|
|
#
|
# Now create an empty project for the user to execute the demo themselves
|
#
|
|
- name: Create project for empty parksmap
|
shell: |
|
oc new-project {{ocp_project}} \
|
--display-name="Parksmap" \
|
--description="Project to exercise the Parksmap demo"
|
ignore_errors: true
|
|
- name: Annotate the empty project as requested by user
|
shell: "oc annotate namespace {{ocp_project}} openshift.io/requester={{ocp_username}} --overwrite"
|
|
- name: Give user access to the empty project
|
shell: "oc policy add-role-to-user admin {{ocp_username}} -n {{ocp_project}}"
|
|
- name: workload Tasks Complete
|
debug:
|
msg: workload Tasks Complete
|