From 223042b5637a82f15bac86804c8e6264ca3a6679 Mon Sep 17 00:00:00 2001 From: Jorge Morales <jorgemoralespou@gmail.com> Date: Wed, 18 Jul 2018 20:31:51 +0200 Subject: [PATCH] Updated parksmap to not rely on customized content not in standard repo --- ansible/roles/ocp-workload-parksmap-demo/tasks/workload.yml | 58 +++++++++++++ ansible/roles/ocp-workload-parksmap-demo/files/workshopper-template.yaml | 135 ++++++++++++++++++++++++--------- ansible/roles/ocp-workload-parksmap-demo/readme.adoc | 2 3 files changed, 153 insertions(+), 42 deletions(-) diff --git a/ansible/roles/ocp-workload-parksmap-demo/files/workshopper-template.yaml b/ansible/roles/ocp-workload-parksmap-demo/files/workshopper-template.yaml index c6ef672..531b887 100644 --- a/ansible/roles/ocp-workload-parksmap-demo/files/workshopper-template.yaml +++ b/ansible/roles/ocp-workload-parksmap-demo/files/workshopper-template.yaml @@ -1,37 +1,94 @@ kind: Template apiVersion: v1 metadata: - name: guide + name: starter-guides annotations: description: Template to deploy a workshop guide with workshopper. Look into any of the workshops for the used variables that can be defined in the configMap. parameters: +- name: APPNAME + description: Application name + value: starter-guides + displayName: Application name + required: true - name: CONTENT_URL_PREFIX - description: Console url (e.g. https://raw.githubusercontent.com/osevg/workshopper-content/36) - value: + description: Console url (e.g. https://raw.githubusercontent.com/openshift-labs/starter-guides/ocp-3.9) + value: https://raw.githubusercontent.com/openshift-labs/starter-guides/ocp-3.9 displayName: Content URL prefix required: true - name: WORKSHOPS_URLS - description: Workshop definition url (e.g. https://raw.githubusercontent.com/osevg/workshopper-content/36/_workshops/training.yml) - value: + description: Workshop definition url (e.g. https://raw.githubusercontent.com/openshift-labs/starter-guides/ocp-3.9/_workshops/training.yml) + value: file:///workshop/workshop.yml displayName: Workshop Url required: true - name: CONSOLE_ADDRESS - description: Console url (e.g. master.mycluster.openshiftworkshop.com or console.mycluster.gce.pixy.io:8443) - value: + description: Console url (e.g. https://master.mycluster.openshiftworkshop.com or https://console.mycluster.gce.pixy.io:8443) + value: displayName: Console url required: true - name: ROUTER_ADDRESS description: Application subdomain (e.g. apps.mycluster.openshiftworkshop.com or apps.mycluster.gce.pixy.io) - value: + value: displayName: Application subdomain required: true +- name: USER_PROJECT + description: User project name + value: + displayName: User project name + required: true +- name: INFRA_PROJECT + description: Infra project name + value: + displayName: Infra project name + required: true objects: +- kind: ConfigMap + apiVersion: v1 + metadata: + name: ${APPNAME} + labels: + app: ${APPNAME} + role: config + data: + WORKSHOPS_URLS: ${WORKSHOPS_URLS} + workshop.yml: |+ + --- + id: workshop + name: Developing Java Applications on OpenShift - Starter Lab + + content: + url: ${CONTENT_URL_PREFIX} + + vars: + CONSOLE_ADDRESS: ${CONSOLE_ADDRESS} + ROUTER_ADDRESS: ${ROUTER_ADDRESS} + INFRA_PROJECT: ${INFRA_PROJECT} + USER_NAME: developer + USER_PASSWORD: developer + USER_PROJECT: ${USER_PROJECT} + + modules: + activate: + - common-parksmap-architecture + - parksmap-docker + - parksmap-scaling + - parksmap-routes + - parksmap-logging + - parksmap-permissions + - parksmap-rsh + - nationalparks-java + - nationalparks-databases + - nationalparks-application-health + - nationalparks-codechanges-gogs + - mlbparks-templates + - mlbparks-clustering + - mlbparks-binary-build + - mlbparks-debugging - kind: ImageStream apiVersion: v1 metadata: name: workshopper labels: - app: guides + app: ${APPNAME} spec: lookupPolicy: local: false @@ -46,14 +103,14 @@ - kind: DeploymentConfig apiVersion: v1 metadata: - name: guides + name: ${APPNAME} labels: - app: guides + app: ${APPNAME} spec: replicas: 1 selector: - app: guides - deploymentconfig: guides + app: ${APPNAME} + deploymentconfig: ${APPNAME} strategy: activeDeadlineSeconds: 21600 resources: {} @@ -67,14 +124,14 @@ template: metadata: labels: - app: guides - deploymentconfig: guides + app: ${APPNAME} + deploymentconfig: ${APPNAME} spec: containers: - image: workshopper envFrom: - configMapRef: - name: guides + name: ${APPNAME} imagePullPolicy: IfNotPresent livenessProbe: failureThreshold: 5 @@ -86,7 +143,7 @@ periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 - name: guides + name: ${APPNAME} ports: - containerPort: 8080 protocol: TCP @@ -100,21 +157,35 @@ periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 - resources: {} + resources: + limits: + cpu: 500m + memory: 512Mi + requests: + cpu: 50m + memory: 256Mi terminationMessagePath: /dev/termination-log terminationMessagePolicy: File + volumeMounts: + - mountPath: /workshop + name: volume-config dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: {} terminationGracePeriodSeconds: 30 + volumes: + - configMap: + defaultMode: 420 + name: ${APPNAME} + name: volume-config test: false triggers: - type: ConfigChange - imageChangeParams: automatic: true containerNames: - - guides + - ${APPNAME} from: kind: ImageStreamTag name: workshopper:latest @@ -122,9 +193,9 @@ - kind: Service apiVersion: v1 metadata: - name: guides + name: ${APPNAME} labels: - app: guides + app: ${APPNAME} spec: ports: - name: 8080-tcp @@ -132,34 +203,22 @@ protocol: TCP targetPort: 8080 selector: - app: guides - deploymentconfig: guides + app: ${APPNAME} + deploymentconfig: ${APPNAME} sessionAffinity: None type: ClusterIP - kind: Route apiVersion: v1 metadata: - name: guides + name: ${APPNAME} labels: - app: guides + app: ${APPNAME} spec: host: port: targetPort: 8080-tcp to: kind: Service - name: guides + name: ${APPNAME} weight: 100 wildcardPolicy: None -- kind: ConfigMap - apiVersion: v1 - metadata: - name: guides - labels: - app: guides - role: config - data: - CONTENT_URL_PREFIX: ${CONTENT_URL_PREFIX} - WORKSHOPS_URLS: ${WORKSHOPS_URLS} - CONSOLE_ADDRESS: ${CONSOLE_ADDRESS} - ROUTER_ADDRESS: ${ROUTER_ADDRESS} \ No newline at end of file diff --git a/ansible/roles/ocp-workload-parksmap-demo/readme.adoc b/ansible/roles/ocp-workload-parksmap-demo/readme.adoc index 72eb032..1c68468 100644 --- a/ansible/roles/ocp-workload-parksmap-demo/readme.adoc +++ b/ansible/roles/ocp-workload-parksmap-demo/readme.adoc @@ -51,7 +51,7 @@ to run these playbooks. ---- -HOST_GUID=dev37 +HOST_GUID=dev39 TARGET_HOST="bastion.$HOST_GUID.openshift.opentlc.com" OCP_USERNAME="jmorales-redhat.com" SSH_USER="opentlc-mgr" diff --git a/ansible/roles/ocp-workload-parksmap-demo/tasks/workload.yml b/ansible/roles/ocp-workload-parksmap-demo/tasks/workload.yml index 339efac..2330acb 100644 --- a/ansible/roles/ocp-workload-parksmap-demo/tasks/workload.yml +++ b/ansible/roles/ocp-workload-parksmap-demo/tasks/workload.yml @@ -27,17 +27,69 @@ - name: Deploy the guide to follow shell: | - oc new-app guide \ - -p CONTENT_URL_PREFIX=https://raw.githubusercontent.com/osevg/workshopper-content/master \ - -p WORKSHOPS_URLS=https://raw.githubusercontent.com/jorgemoralespou/workshopper-content/GPE/_workshops/gpe-parksmap-demo.yml \ + 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: 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" -- Gitblit v1.9.3