Flesh out workshop instructions.
This commit is contained in:
@ -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.
|
||||||
|
|
||||||
@ -93,11 +130,11 @@ 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'" \
|
||||||
|
--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
|
"\"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 |
@ -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~.
|
||||||
|
|||||||
Reference in New Issue
Block a user