Flesh out workshop instructions.

This commit is contained in:
2023-08-31 08:43:47 +12:00
parent 7515d116a4
commit 91220f9a78
3 changed files with 136 additions and 29 deletions

View File

@ -38,7 +38,7 @@ oc new-project bitbucket
#+RESULTS: #+RESULTS:
#+begin_example #+begin_example
Already on project "bitbucket" on server "https://api.rosa-7lpn7.2pqm.p1.openshiftapps.com:6443". Now using project "bitbucket" on server "https://api.cluster-dkxhl.dkxhl.sandbox1652.opentlc.com:6443".
You can add applications to this project with the 'new-app' command. For example, try: You can add applications to this project with the 'new-app' command. For example, try:
@ -53,35 +53,72 @@ to build a new example application in Ruby. Or use kubectl to deploy a simple Ku
Once the namespace is created we can deploy Bitbucket using the official Bitbucket image from Atlassian. Once the namespace is created we can deploy Bitbucket using the official Bitbucket image from Atlassian.
#+begin_src bash :results output #+begin_src bash :results output
oc --namespace bitbucket new-app --image docker.io/atlassian/bitbucket-server --name bitbucket cat << EOF | oc --namespace bitbucket apply --filename -
kind: Deployment
apiVersion: apps/v1
metadata:
name: bitbucket
namespace: bitbucket
labels:
app: bitbucket
spec:
replicas: 1
selector:
matchLabels:
deployment: bitbucket
template:
metadata:
labels:
deployment: bitbucket
spec:
volumes:
- name: bitbucket-volume
emptyDir: {}
containers:
- name: bitbucket
image: docker.io/atlassian/bitbucket-server@sha256:30556d63fc935a1c3c9da41e6fff617e452ad7a52060a92b6a20f9179dd637a5
ports:
- containerPort: 7990
protocol: TCP
- containerPort: 7999
protocol: TCP
resources:
limits:
cpu: 500m
memory: 4096Mi
volumeMounts:
- name: bitbucket-volume
mountPath: /var/atlassian/application-data/bitbucket
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
securityContext: {}
schedulerName: default-scheduler
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 25%
maxSurge: 25%
revisionHistoryLimit: 10
progressDeadlineSeconds: 600
EOF
#+end_src #+end_src
#+RESULTS: #+RESULTS:
#+begin_example : deployment.apps/bitbucket created
--> Found container image 525a6bc (3 days old) from docker.io for "docker.io/atlassian/bitbucket-server"
,* An image stream tag will be created as "bitbucket:latest" that will track this image
--> Creating resources ...
imagestream.image.openshift.io "bitbucket" created
deployment.apps "bitbucket" created
service "bitbucket" created
--> Success
Application is not exposed. You can expose services to the outside world by executing one or more of the commands below:
'oc expose service/bitbucket'
Run 'oc status' to view your app.
#+end_example
Now, let's verify that the Bitbucket pod started successfully. Now, let's verify that the Bitbucket pod started successfully.
#+begin_src bash :results output #+begin_src bash :results output
oc --namespace bitbucket get pods oc --namespace bitbucket get pods
#+end_src #+end_src
#+RESULTS: #+RESULTS:
: NAME READY STATUS RESTARTS AGE : NAME READY STATUS RESTARTS AGE
: bitbucket-56d9849bbf-7922z 1/1 Running 0 2m36s : bitbucket-74bc96b849-5nbvl 1/1 Running 0 45s
As this is running successfully, let's expose it with a ~route~ so that we can access it from our web browser. As this is running successfully, let's expose it with a ~route~ so that we can access it from our web browser.
@ -92,12 +129,12 @@ oc --namespace bitbucket get route
#+RESULTS: #+RESULTS:
: route.route.openshift.io/bitbucket created : route.route.openshift.io/bitbucket created
: NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD : NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
: bitbucket bitbucket-bitbucket.apps.rosa-7lpn7.2pqm.p1.openshiftapps.com bitbucket 7990 edge None : bitbucket bitbucket-bitbucket.apps.cluster-dkxhl.dkxhl.sandbox1652.opentlc.com bitbucket 7990 edge None
Once we open the Bitbucket route in our browser, we need to follow a short setup process manually before we can continue with the rest of our automation. Once we open the Bitbucket route in our browser, we need to follow a short setup process manually before we can continue with the rest of our automation.
1. Select your language ~English~. 1. Select your language ~English (United States)~.
2. Select ~internal~ and click ~Next~. 2. Select ~internal~ and click ~Next~.
You'll then be prompted for an Atlassian license key. For the purposes of this workshop, we'll be generating a new trial license [[https://my.atlassian.com/license/evaluation][here]]. You'll then be prompted for an Atlassian license key. For the purposes of this workshop, we'll be generating a new trial license [[https://my.atlassian.com/license/evaluation][here]].
@ -118,15 +155,14 @@ First step is to create additional users.
#+begin_src bash :results none #+begin_src bash :results none
source .env source .env
bitbucket_route=$(oc get route --namespace bitbucket | awk '{print $2}' | tail -n 1) bitbucket_route=$(oc get route --namespace bitbucket | awk '{print $2}' | tail -n 1)
for user in {1..30}; do for user in {1..30}; do
echo curl --user "admin:${bitbucket_password}" \ echo curl --user "admin:${bitbucket_password}" \
--header "'Content-Type: application/json'" \ --header "'Content-Type: application/json'" \
--data "" --header "'X-Atlassian-Token: nocheck'" \
"\"https://${bitbucket_route}/rest/api/latest/admin/users?name=user${user}&displayName=user${user}&emailAddress=user${user}%40example.com&password=${bitbucket_user_password}\"" >> users.sh --request "POST" \
"\"https://${bitbucket_route}/rest/api/latest/admin/users?name=user${user}&displayName=user${user}&emailAddress=user${user}%40example.com&password=${bitbucket_user_password}\"" >> users.sh
cat users.sh
done done
chmod +x users.sh && ./users.sh && rm users.sh chmod +x users.sh && ./users.sh && rm users.sh
#+end_src #+end_src
@ -178,7 +214,7 @@ EOF
#+end_src #+end_src
#+RESULTS: #+RESULTS:
: subscription.operators.coreos.com/openshift-pipelines-operator created : subscription.operators.coreos.com/openshift-pipelines-operator configured
* 5 - Install openshift web terminal operator * 5 - Install openshift web terminal operator
@ -241,4 +277,3 @@ EOF
#+end_src #+end_src
#+RESULTS: #+RESULTS:
: knativeserving.operator.knative.dev/knative-serving created

Binary file not shown.

After

Width:  |  Height:  |  Size: 746 KiB

View File

@ -111,6 +111,14 @@ Want to quickly test a proof of concept or spin up a container? Awesome, within
[[./images/add-application.png]] [[./images/add-application.png]]
** Visual pipeline builder
OpenShift Pipelines (based on Tekton) make creating cloud native pipelines on OpenShift easy. There is a pipeline web interface built into the OpenShift web console so you don't need to login to another system and switch contexts to be able to interact with your pipelines.
[[./images/openshift-pipelines.gif]]
* 3. Setting up your development environment * 3. Setting up your development environment
For our first hands on excercise let's get logged into the tools we'll be using today and get familar with each. For our first hands on excercise let's get logged into the tools we'll be using today and get familar with each.
@ -126,7 +134,7 @@ Use the credentials provided on the workshop etherpad to login.
[[./images/bitbucket-login.png]] [[./images/bitbucket-login.png]]
Once logged in you should be able to view and create a fork of the ~Rails Team/openstreetmap-website~ repository to your own user using this link: [[https://bitbucket-bitbucket.apps.rosa-7lpn7.2pqm.p1.openshiftapps.com/projects/MSD/repos/openstreetmap-website?fork]] Once logged in you should be able to view and create a fork of the ~Rails Team/rails-example~ repository to your own user using this link: [[https://bitbucket-bitbucket.apps.rosa-7lpn7.2pqm.p1.openshiftapps.com/projects/MSD/repos/rails-example?fork]]
[[./images/bitbucket-fork.png]] [[./images/bitbucket-fork.png]]
@ -139,4 +147,68 @@ Use the credentials provided on the workshop etherpad to login.
[[./images/openshift-login.png]] [[./images/openshift-login.png]]
Once logged in feel free to repeat the OpenShift tour we went through as a group in section two to get more comfortable with the user interface. Once logged in, feel free to repeat the OpenShift tour we went through as a group in section two to get more comfortable with the user interface.
* 4. Deploying a ruby application
Now that we are logged into our environment let's move on to deplying the ~rails-example~ codebase we forked earlier, onto OpenShift. We'll do this in two different ways:
** User the web interface to import from git and deploy
1) Create a project bu clicking +Add > Create Project > Enter Project name (i.e. userXX)
2) Click on the ~Import from Git~ tile in your add menu.
3) Enter the repo-url for your repository fork.
4) Click on the ~Ruby~ on Builder Image.
5) Enter ~rails-example~ in Name field.
6) Click create button and you will be redirected to ~Topology~ screen.
7) Click on ~rails-example~ application to see check the progress of the build (this should take roughly 2 minutes).
8) Click the route once the pod is ~Running~
** Using the command line to import from git deploy
1) Click on the web terminal ~>_~ icon in the top right corner of the web console.
2) A terminal will pop up in the bottom of the window, this can sometimes take a minute or two to start.
3) Copy the following command into the termuinal and press ~Enter~.
#+begin_src bash :results output
oc --namespace user1 new-app --name rails-cli centos/ruby-25-centos7~https://github.com/sclorg/ruby-ex.git
#+end_src
#+RESULTS:
#+begin_example
--> Found container image e96bd99 (2 years old) from Docker Hub for "centos/ruby-25-centos7"
Ruby 2.5
--------
Ruby 2.5 available as container is a base platform for building and running various Ruby 2.5 applications and frameworks. Ruby is the interpreted scripting language for quick and easy object-oriented programming. It has many features to process text files and to do system management tasks (as in Perl). It is simple, straight-forward, and extensible.
Tags: builder, ruby, ruby25, rh-ruby25
,* An image stream tag will be created as "ruby-25-centos7:latest" that will track the source image
,* A source build using source code from https://github.com/sclorg/ruby-ex.git will be created
,* The resulting image will be pushed to image stream tag "rails-cli:latest"
,* Every time "ruby-25-centos7:latest" changes a new build will be triggered
--> Creating resources ...
imagestream.image.openshift.io "ruby-25-centos7" created
imagestream.image.openshift.io "rails-cli" created
buildconfig.build.openshift.io "rails-cli" created
deployment.apps "rails-cli" created
service "rails-cli" created
--> Success
Build scheduled, use 'oc logs -f buildconfig/rails-cli' to track its progress.
Application is not exposed. You can expose services to the outside world by executing one or more of the commands below:
'oc expose service/rails-cli'
Run 'oc status' to view your app.
#+end_example
4) Let's open the web console again and we should now see another application pod in our topology view!
5) Click on the pod, and open the route to see the application serving traffic.
** Creating a tekton deployment pipeline for our app
1) Click on "Pipelines" in the OpenShift web console developer view.
2) Click on ~Create~ > ~Pipeline~ in the top right hand corner.
3) Enter the name ~ruby-pipeline~.
4) Click on ~Add task~, and type in ~clone~, then select ~git-clone~ from Red Hat and click ~Add~.