Jorge Morales Pou
2018-07-19 27c2f1207c42530960ce0f426604948e7a806988
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
---
- 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