This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
tech:openshift:start [2018/06/25 08:16] admin |
tech:openshift:start [2019/01/05 16:52] (current) rk4n3 |
||
---|---|---|---|
Line 1: | Line 1: | ||
<typo fs:xx-large; fw: bold;>OpenShift</typo> | <typo fs:xx-large; fw: bold;>OpenShift</typo> | ||
+ | |||
+ | <code>oc import-image <NAME OF STREAM></code> | ||
====== Resources ====== | ====== Resources ====== | ||
Line 32: | Line 34: | ||
* Remove image:<code>docker image rm bluejay-loadgen</code> | * Remove image:<code>docker image rm bluejay-loadgen</code> | ||
+ | ------ | ||
+ | ===== Example: Resurrect Bluejay in OpenShift ===== | ||
+ | * Set up OpenShift cluster, and start with ''rc.openshift start'' | ||
+ | * The ''rc.openshift'' wrapper calls ''oc cluster up'' with args | ||
+ | * Initialize service account<code>oc create serviceaccount bluejay | ||
+ | oc policy add-role-to-user system:image-builder -z bluejay | ||
+ | oc policy add-role-to-user admin -z bluejay | ||
+ | oc sa get-token bluejay</code> | ||
+ | * Populate the token into ''~bluejay/.bluejayrc'' | ||
+ | * Ensure access to OpenShift docker repo<code>docker login -u yourlogin -p $(oc whoami -t) 172.30.1.1:5000</code> | ||
+ | * Build, tag, and push JMeter image<code>cd ~/src/bluejay/s2ijm ; make | ||
+ | docker tag <newimage> 172.30.1.1:5000/bluejay/jmeter | ||
+ | docker push 172.30.1.1:5000/bluejay/jmeter</code> | ||
+ | * Build, tag, and push Locust image<code>cd ~/src/bluejay/s2iloc ; make | ||
+ | docker tag <newimage> 172.30.1.1:5000/bluejay/locust | ||
+ | docker push 172.30.1.1:5000/bluejay/locust</code> | ||
+ | * Build, tag, and push Maven image<code>cd ~/src/bluejay/s2imvn ; make | ||
+ | docker tag <newimage> 172.30.1.1:5000/bluejay/maven | ||
+ | docker push 172.30.1.1:5000/bluejay/maven</code> | ||
+ | * Build, tag, and push Gatling image<code>cd ~/src/bluejay/s2igat ; make | ||
+ | docker tag <newimage> 172.30.1.1:5000/bluejay/gatling | ||
+ | docker push 172.30.1.1:5000/bluejay/gatling</code> | ||
+ | * Create image streams<code>cd ~/src/bluejay/etc | ||
+ | oc create -f loadctl.json | ||
+ | oc create -f loadloc.json | ||
+ | oc create -f loadmvn.json | ||
+ | oc create -f loadgat.json</code> | ||
+ | * Create load-gen build configs \\ //Remember to set LDAP credentials in YAML files//<code>cd ~/src/bluejay/etc | ||
+ | oc create -f bld-loadctl.yaml | ||
+ | oc create -f bld-loadloc.yaml | ||
+ | oc create -f bld-loadmvn.yaml | ||
+ | oc create -f bld-loadgat.yaml</code> | ||
+ | * Verify build completions and image streams | ||
+ | * Add OAPT storage \\ //Remember to make it "shared", use name like ''oaptpubrpt201''// | ||
+ | * Add OAPT application | ||
+ | * Add OAPT storage at mount path ''/opt/app-root/pub'' | ||
+ | |||
+ | ------ | ||
====== Trivia ====== | ====== Trivia ====== | ||
+ | |||
+ | ===== Installation: Docker & OC CLI ===== | ||
+ | * In /etc/yum.repos.d/docker.repo<code>[dockerrepo] | ||
+ | name=Docker Repository | ||
+ | baseurl=https://yum.dockerproject.org/repo/main/centos/7 | ||
+ | enabled=1 | ||
+ | gpgcheck=1 | ||
+ | gpgkey=https://yum.dockerproject.org/gpg</code> | ||
+ | * ''yum install docker-engine'' | ||
+ | * ''usermod -aG docker msamud1'' | ||
+ | * ''chkconfig docker on'' | ||
+ | * Install S2I: download and extract to /usr/local/bin ...<code>wget https://github.com/openshift/source-to-image/releases/download/v1.1.10/source-to-image-v1.1.10-27f0729d-linux-amd64.tar.gz</code> | ||
+ | * OpenShift CLI client (oc): | ||
+ | * Requires active RHEL subscription to download | ||
+ | * Once downloaded, extract "oc" from archive into /usr/local/bin | ||
===== PoC/Exploration Notes ===== | ===== PoC/Exploration Notes ===== | ||
- | ===== Some URLs researched ... ===== | + | ==== Some URLs researched ... ==== |
http://www.testautomationguru.com/jmeter-distributed-load-testing-using-docker/ \\ | http://www.testautomationguru.com/jmeter-distributed-load-testing-using-docker/ \\ | ||
https://hub.docker.com/_/openjdk/ \\ | https://hub.docker.com/_/openjdk/ \\ | ||
https://eleanordare.com/blog/2018/5/3/using-a-jenkins-pipeline-to-run-jmeter-tests-in-openshift-bkba6 \\ | https://eleanordare.com/blog/2018/5/3/using-a-jenkins-pipeline-to-run-jmeter-tests-in-openshift-bkba6 \\ | ||
https://eleanordare.com/blog/2017/6/14/using-a-jenkins-pipeline-to-run-jmeter-tests-in-openshift \\ | https://eleanordare.com/blog/2017/6/14/using-a-jenkins-pipeline-to-run-jmeter-tests-in-openshift \\ | ||
+ | https://blog.openshift.com/remotely-push-pull-container-images-openshift \\ | ||
+ | https://docs.openshift.org/latest/dev_guide/jobs.html \\ | ||
+ | https://docs.openshift.com/enterprise/3.0/architecture/core_concepts/builds_and_image_streams.html \\ | ||
https://blog.openshift.com/running-any-docker-image-on-openshift-origin/ \\ | https://blog.openshift.com/running-any-docker-image-on-openshift-origin/ \\ | ||
https://docs.openshift.com/online/architecture/core_concepts/builds_and_image_streams.html#pipeline-build \\ | https://docs.openshift.com/online/architecture/core_concepts/builds_and_image_streams.html#pipeline-build \\ | ||
https://docs.openshift.com/online/dev_guide/application_lifecycle/new_app.html#dev-guide-new-app \\ | https://docs.openshift.com/online/dev_guide/application_lifecycle/new_app.html#dev-guide-new-app \\ | ||
https://docs.openshift.com/online/dev_guide/index.html \\ | https://docs.openshift.com/online/dev_guide/index.html \\ | ||
+ | https://docs.openshift.com/online/dev_guide/builds/build_inputs.html#image-source \\ | ||
+ | https://docs.openshift.com/online/dev_guide/application_lifecycle/new_app.html \\ | ||
https://blog.openshift.com/getting-any-docker-image-running-in-your-own-openshift-cluster/ \\ | https://blog.openshift.com/getting-any-docker-image-running-in-your-own-openshift-cluster/ \\ | ||
+ | https://blog.openshift.com/openshift-jobs \\ | ||
+ | https://docs.openshift.com/online/rest_api/apis-batch/v1.Job.html \\ | ||
+ | |||
+ | ==== Initial PoC at Optum's OpenShift ==== | ||
+ | * Ensure that docker-engine is installed on Linux XaaS VM | ||
+ | * Log in to DTR (Docker Trusted Registry) \\ ''docker login docker.optum.com'' | ||
+ | * Pull existing repository (previously created in web GUI) \\ ''docker pull docker.optum.com/msamud1/bluejay-jmeter'' | ||
+ | * Build new image using S2I (S2I build is another topic) | ||
+ | * Tag new image in local registry \\ ''docker tag <newimageid> docker.optum.com/msamud1/bluejay-jmeter'' | ||
+ | * Push to DTR \\ ''docker push docker.optum.com/msamud1/bluejay-jmeter'' | ||
+ | |||
+ | //**NOTE:** these commands assume being run from $HOME/src/bluejay ... // \\ | ||
+ | * Log in to Optum's OpenShift (this is elk river non-prod) \\ ''oc login https://ocp-elr-core-nonprod.optum.com'' | ||
+ | * Create image stream for base JMeter builder image \\ ''oc create -f ./etc/jmeter.yaml'' | ||
+ | * Create image stream for app-specific load controller \\ ''oc create -f ./etc/timbrado.json'' | ||
+ | * Create image stream for load generator(s) \\ ''oc create -f ./etc/loadgen.json'' | ||
+ | * Create BuildConfig for app-specific load controller \\ ''oc create -f ./etc/bld-timbrado.json'' | ||
+ | * Create BuildConfig for load generator(s) \\ ''oc create -f ./etc/bld-loadgen.json'' | ||
+ | * Run a job: \\ ''oc create -f ./etc/job-launch.yaml'' | ||
===== Misc ... ===== | ===== Misc ... ===== |