# Sock Shop
Sock Shop Architecture:
Open the Jenkins X Prow:
firefox https://deck.jx.mylabs.dev &
Deploy the Sock Shop microservices to the jx-production
and jx-staging
.
Only the front-end
microservice will be modified and handled by Jenkins X.
The rest of microservices will be installed form default Sock Shop
k8s manifests.
Modifications can be seen here: https://github.com/ruzickap/k8s-jenkins-x/blob/master/files/complete-demo.yaml (opens new window)
sed "s/namespace: sock-shop/namespace: jx-production/" files/complete-demo.yaml | kubectl apply -f -
sed "s/namespace: sock-shop/namespace: jx-staging/" files/complete-demo.yaml | kubectl apply -f -
Output:
deployment.extensions/carts-db created
service/carts-db created
deployment.extensions/carts created
service/carts created
deployment.extensions/catalogue-db created
service/catalogue-db created
deployment.extensions/catalogue created
service/catalogue created
deployment.extensions/orders-db created
service/orders-db created
deployment.extensions/orders created
service/orders created
deployment.extensions/payment created
service/payment created
deployment.extensions/queue-master created
service/queue-master created
deployment.extensions/rabbitmq created
service/rabbitmq created
deployment.extensions/shipping created
service/shipping created
deployment.extensions/user-db created
service/user-db created
deployment.extensions/user created
service/user created
deployment.extensions/carts-db created
service/carts-db created
deployment.extensions/carts created
service/carts created
deployment.extensions/catalogue-db created
service/catalogue-db created
deployment.extensions/catalogue created
service/catalogue created
deployment.extensions/orders-db created
service/orders-db created
deployment.extensions/orders created
service/orders created
deployment.extensions/payment created
service/payment created
deployment.extensions/queue-master created
service/queue-master created
deployment.extensions/rabbitmq created
service/rabbitmq created
deployment.extensions/shipping created
service/shipping created
deployment.extensions/user-db created
service/user-db created
deployment.extensions/user created
service/user created
Fork the "Sock Shop" repository front-end
:
mkdir tmp
cd tmp
hub clone "microservices-demo/front-end"
Output:
Cloning into 'front-end'...
remote: Enumerating objects: 1156, done.
remote: Total 1156 (delta 0), reused 0 (delta 0), pack-reused 1156
Receiving objects: 100% (1156/1156), 47.86 MiB | 8.27 MiB/s, done.
Resolving deltas: 100% (642/642), done.
The jx import
command expects, that the Dockerfile
will expose single port 8080
.
Therefore I need to change this in front-end
Docker file to be able to work
with jx import
smoothly:
sed -i 's/8079/8080/' front-end/Dockerfile
git -C front-end add Dockerfile
git -C front-end commit -m "Port in Dockerfile changed from 8079 to 8080"
Output:
[master b7f3b45] Port in Dockerfile changed from 8079 to 8080
1 file changed, 2 insertions(+), 2 deletions(-)
Fork the repository and push the changes there:
hub -C "front-end" fork
git -C front-end push ruzickap
rm -rf "front-end"
Output:
Updating ruzickap
From https://github.com/microservices-demo/front-end
* [new branch] abuehrle-patch-2 -> ruzickap/abuehrle-patch-2
* [new branch] add-localserver-option -> ruzickap/add-localserver-option
* [new branch] add-weave-imgs -> ruzickap/add-weave-imgs
* [new branch] add-zipkin -> ruzickap/add-zipkin
* [new branch] add_zipkin2 -> ruzickap/add_zipkin2
* [new branch] adduser -> ruzickap/adduser
* [new branch] cpu_usage -> ruzickap/cpu_usage
* [new branch] deals-integration -> ruzickap/deals-integration
* [new branch] documentation/commands -> ruzickap/documentation/commands
* [new branch] enhancement/brander -> ruzickap/enhancement/brander
* [new branch] enhancement/opentracing-frontend -> ruzickap/enhancement/opentracing-frontend
* [new branch] fix-42 -> ruzickap/fix-42
* [new branch] hackathon-fixed -> ruzickap/hackathon-fixed
* [new branch] master -> ruzickap/master
* [new branch] remove-metric-cardinality -> ruzickap/remove-metric-cardinality
new remote: ruzickap
Warning: Permanently added '[ssh.github.com]:443,[192.30.253.123]:443' (RSA) to the list of known hosts.
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 332 bytes | 332.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To github.com:ruzickap/front-end.git
b6604d9..b7f3b45 master -> master
You can see the code in: https://github.com/ruzickap/front-end (opens new window)
Import application into Jenkins X:
jx import --git-username=ruzickap --name="front-end" --url="https://github.com/ruzickap/front-end"
cd ..
Output:
Using Git user name: ruzickap
performing pack detection in folder /home/pruzicka/git/k8s-jenkins-x/tmp/front-end
--> Draft detected Coq (51.985930%)
--> Could not find a pack for Coq. Trying to find the next likely language match...
--> Draft detected SVG (16.817856%)
--> Could not find a pack for SVG. Trying to find the next likely language match...
--> Draft detected HTML (16.808026%)
--> Could not find a pack for HTML. Trying to find the next likely language match...
--> Draft detected JavaScript (9.282228%)
selected pack: /home/pruzicka/.jx/draft/packs/github.com/jenkins-x-buildpacks/jenkins-x-kubernetes/packs/javascript
replacing placeholders in directory /home/pruzicka/git/k8s-jenkins-x/tmp/front-end
app name: front-end, git server: github.com, org: ruzickap, Docker registry org: ruzickap
skipping directory "/home/pruzicka/git/k8s-jenkins-x/tmp/front-end/.git"
Let's ensure that we have an ECR repository for the Docker image ruzickap/front-end
Creating GitHub webhook for ruzickap/front-end for url http://hook.jx.mylabs.dev/hook
Watch pipeline activity via: jx get activity -f front-end -w
Browse the pipeline log via: jx get build logs ruzickap/front-end/master
You can list the pipelines via: jx get pipelines
When the pipeline is complete: jx get applications
For more help on available commands see: https://jenkins-x.io/developing/browsing/
Note that your first pipeline may take a few minutes to start while the necessary images get downloaded!
Browse the pipeline log via:
jx get build logs --wait=true ruzickap/front-end/master
Output:
The selected pipeline didn't start, let's wait a bit
Build logs for ruzickap/front-end/master #1
waiting for stage meta-pipeline : container step-credential-initializer-mxv7z to start...
Showing logs for build ruzickap/front-end/master #1 stage meta-pipeline and container step-credential-initializer-mxv7z
{"level":"warn","ts":1571326350.6521983,"logger":"fallback-logger","caller":"logging/config.go:69","msg":"Fetch GitHub commit ID from kodata failed: \"ref: refs/heads/master\" is not a valid GitHub commit ID"}
{"level":"info","ts":1571326350.6530662,"logger":"fallback-logger","caller":"creds-init/main.go:40","msg":"Credentials initialized."}
waiting for stage meta-pipeline : container step-working-dir-initializer-jvx69 to start...
Showing logs for build ruzickap/front-end/master #1 stage meta-pipeline and container step-working-dir-initializer-jvx69
{"level":"warn","ts":1571326353.7272487,"logger":"fallback-logger","caller":"logging/config.go:69","msg":"Fetch GitHub commit ID from kodata failed: open /var/run/ko/HEAD: no such file or directory"}
{"level":"info","ts":1571326353.7283375,"logger":"fallback-logger","caller":"bash/main.go:65","msg":"Successfully executed command \"mkdir -p /workspace/source\""}
waiting for stage meta-pipeline : container step-place-tools to start...
Showing logs for build ruzickap/front-end/master #1 stage meta-pipeline and container step-place-tools
waiting for stage meta-pipeline : container step-git-source-meta-ruzickap-front-end-master-hxhmf to start...
Showing logs for build ruzickap/front-end/master #1 stage meta-pipeline and container step-git-source-meta-ruzickap-front-end-master-hxhmf
{"level":"warn","ts":1571326362.0682209,"logger":"fallback-logger","caller":"logging/config.go:69","msg":"Fetch GitHub commit ID from kodata failed: \"ref: refs/heads/master\" is not a valid GitHub commit ID"}
{"level":"info","ts":1571326368.849677,"logger":"fallback-logger","caller":"git/git.go:102","msg":"Successfully cloned https://github.com/ruzickap/front-end.git @ bc24537484dfa7aed349edf20f63034e3d4f72f6 in path /workspace/source"}
waiting for stage meta-pipeline : container step-git-merge to start...
Showing logs for build ruzickap/front-end/master #1 stage meta-pipeline and container step-git-merge
Using SHAs from PULL_REFS=master:bc24537484dfa7aed349edf20f63034e3d4f72f6
WARNING: no SHAs to merge, falling back to initial cloned commit
waiting for stage meta-pipeline : container step-merge-pull-refs to start...
Showing logs for build ruzickap/front-end/master #1 stage meta-pipeline and container step-merge-pull-refs
SKIP merge-pull-refs: Nothing to merge
waiting for stage meta-pipeline : container step-create-effective-pipeline to start...
Showing logs for build ruzickap/front-end/master #1 stage meta-pipeline and container step-create-effective-pipeline
Deleting and cloning the Jenkins X versions repo
Cloning the Jenkins X versions repo https://github.com/jenkins-x/jenkins-x-versions.git with ref refs/heads/master to /builder/home/.jx/jenkins-x-versions
Effective pipeline written to jenkins-x-effective.yml
waiting for stage meta-pipeline : container step-create-tekton-crds to start...
Showing logs for build ruzickap/front-end/master #1 stage meta-pipeline and container step-create-tekton-crds
running command: echo \$(jx-release-version) > VERSION
running command: jx step tag --version \$(cat VERSION)
Updating chart version in charts/front-end/Chart.yaml to 0.3.13
Updating repository in charts/front-end/values.yaml to 822044714040.dkr.ecr.eu-central-1.amazonaws.com/ruzickap/front-end
Updating tag in charts/front-end/values.yaml to 0.3.13
Tag v0.3.13 created and pushed to remote origin
WARNING: failed to find secret kaniko-secret in namespace jx: secrets "kaniko-secret" not found
PipelineActivity for ruzickap-front-end-master-1
Applying changes
upserted PipelineResource ruzickap-front-end-master for the git repository https://github.com/ruzickap/front-end.git
upserted Task ruzickap-front-end-master-from-build-pack-1
upserted Pipeline ruzickap-front-end-master-1
created PipelineRun ruzickap-front-end-master-1
created PipelineStructure ruzickap-front-end-master-1
Showing logs for build ruzickap/front-end/master #1 stage from-build-pack and container step-credential-initializer-r9p2h
{"level":"warn","ts":1571326394.9351523,"logger":"fallback-logger","caller":"logging/config.go:69","msg":"Fetch GitHub commit ID from kodata failed: \"ref: refs/heads/master\" is not a valid GitHub commit ID"}
{"level":"info","ts":1571326394.9359286,"logger":"fallback-logger","caller":"creds-init/main.go:40","msg":"Credentials initialized."}
waiting for stage from-build-pack : container step-working-dir-initializer-x95mf to start...
Showing logs for build ruzickap/front-end/master #1 stage from-build-pack and container step-working-dir-initializer-x95mf
{"level":"warn","ts":1571326397.5499449,"logger":"fallback-logger","caller":"logging/config.go:69","msg":"Fetch GitHub commit ID from kodata failed: open /var/run/ko/HEAD: no such file or directory"}
{"level":"info","ts":1571326397.550805,"logger":"fallback-logger","caller":"bash/main.go:65","msg":"Successfully executed command \"mkdir -p /workspace/source\""}
waiting for stage from-build-pack : container step-place-tools to start...
Showing logs for build ruzickap/front-end/master #1 stage from-build-pack and container step-place-tools
waiting for stage from-build-pack : container step-git-source-ruzickap-front-end-master-5h7d7 to start...
Showing logs for build ruzickap/front-end/master #1 stage from-build-pack and container step-git-source-ruzickap-front-end-master-5h7d7
{"level":"warn","ts":1571326427.4969535,"logger":"fallback-logger","caller":"logging/config.go:69","msg":"Fetch GitHub commit ID from kodata failed: \"ref: refs/heads/master\" is not a valid GitHub commit ID"}
{"level":"info","ts":1571326430.9216669,"logger":"fallback-logger","caller":"git/git.go:102","msg":"Successfully cloned https://github.com/ruzickap/front-end.git @ v0.3.13 in path /workspace/source"}
waiting for stage from-build-pack : container step-git-merge to start...
Showing logs for build ruzickap/front-end/master #1 stage from-build-pack and container step-git-merge
Using SHAs from PULL_REFS=master:bc24537484dfa7aed349edf20f63034e3d4f72f6
WARNING: no SHAs to merge, falling back to initial cloned commit
waiting for stage from-build-pack : container step-setup-jx-git-credentials to start...
Showing logs for build ruzickap/front-end/master #1 stage from-build-pack and container step-setup-jx-git-credentials
Generated Git credentials file /workspace/xdg_config/git/credentials
waiting for stage from-build-pack : container step-build-npmrc to start...
Showing logs for build ruzickap/front-end/master #1 stage from-build-pack and container step-build-npmrc
WARNING: failed to find Secret npm-token in namespace jx
waiting for stage from-build-pack : container step-build-npm-install to start...
Showing logs for build ruzickap/front-end/master #1 stage from-build-pack and container step-build-npm-install
npm WARN deprecated istanbul@0.4.5: This module is no longer maintained, try this instead:
npm WARN deprecated npm i nyc
npm WARN deprecated Visit https://istanbul.js.org/integrations for other alternatives.
npm WARN deprecated json3@3.3.2: Please use the native JSON object instead of JSON 3
npm WARN deprecated formatio@1.1.1: This package is unmaintained. Use @sinonjs/formatio instead
npm WARN deprecated superagent@2.3.0: Please note that v5.0.1+ of superagent removes User-Agent header by default, therefore you may need to add it yourself (e.g. GitHub blocks requests without a User-Agent header). This notice will go away with v5.0.2+ once it is released.
npm WARN deprecated samsam@1.1.2: This package has been deprecated in favour of @sinonjs/samsam
npm WARN deprecated samsam@1.1.3: This package has been deprecated in favour of @sinonjs/samsam
npm notice created a lockfile as package-lock.json. You should commit this file.
added 246 packages from 706 contributors and audited 489 packages in 5.614s
found 4 vulnerabilities (3 low, 1 critical)
run `npm audit fix` to fix them, or `npm audit` for details
waiting for stage from-build-pack : container step-build-npm-test to start...
Showing logs for build ruzickap/front-end/master #1 stage from-build-pack and container step-build-npm-test
> microservices-demo-front-end@0.0.1 test /workspace/source
> istanbul cover node_modules/.bin/_mocha -- test/*_test.js test/api/*_test.js
helpers
#errorHandler
the rendered JSON
✓ includes an error message
✓ includes an error object
✓ returns the right HTTP status code
given the error has no status defined
✓ responds with HTTP status code 500
#respondSuccessBody
✓ renders the given body with status 200 OK
#respondStatusBody
✓ sets the proper status code & body
#respondStatus
✓ sets the proper status code
#simpleHttpRequest
✓ performs a GET request to the given URL
given the external service responds with success
✓ yields the external service response to the response body
✓ responds with success
given the external service fails
✓ invokes the given callback with an error object
#getCustomerId
given the environment is development
- returns the customer id from the query string
given a customer id set in session
- returns the customer id from the session
given no customer id set in the cookies
given no customer id set session
- throws a 'User not logged in' error
endpoints
catalogueUrl
✓ points to the proper endpoint
tagsUrl
✓ points to the proper endpoint
cartsUrl
✓ points to the proper endpoint
ordersUrl
✓ points to the proper endpoint
customersUrl
✓ points to the proper endpoint
addressUrl
✓ points to the proper endpoint
cardsUrl
✓ points to the proper endpoint
loginUrl
✓ points to the proper endpoint
registerUrl
✓ points to the proper endpoint
20 passing (69ms)
3 pending
=============================================================================
Writing coverage object [/workspace/source/coverage/coverage.json]
Writing coverage reports at [/workspace/source/coverage]
=============================================================================
=============================== Coverage summary ===============================
Statements : 65.96% ( 31/47 )
Branches : 22.73% ( 5/22 )
Functions : 75% ( 9/12 )
Lines : 65.22% ( 30/46 )
================================================================================
waiting for stage from-build-pack : container step-build-container-build to start...
Showing logs for build ruzickap/front-end/master #1 stage from-build-pack and container step-build-container-build
INFO[0000] Downloading base image node:10-alpine
INFO[0001] Error while retrieving image from cache: getting file info: stat /workspace/sha256:5cf3bedcacc2b6ae46504c4c165c74ae88b5fb5eb67f9dfcc3b0cca193f366ff: no such file or directory
INFO[0001] Downloading base image node:10-alpine
INFO[0002] cmd: EXPOSE
INFO[0002] Adding exposed port: 8080/tcp
INFO[0002] Checking for cached layer 822044714040.dkr.ecr.eu-central-1.amazonaws.com/todo/cache:bd87bc6d085113780d96ba07a293b80fe884174ca0eacf65c175e0ba3c4cba94...
INFO[0002] No cached layer found for cmd RUN addgroup mygroup && adduser -D -G mygroup myuser && mkdir -p /usr/src/app && chown -R myuser /usr/src/app
INFO[0002] Unpacking rootfs as cmd RUN addgroup mygroup && adduser -D -G mygroup myuser && mkdir -p /usr/src/app && chown -R myuser /usr/src/app requires it.
INFO[0004] Taking snapshot of full filesystem...
INFO[0005] ENV NODE_ENV "production"
INFO[0005] No files changed in this command, skipping snapshotting.
INFO[0005] ENV PORT 8080
INFO[0005] No files changed in this command, skipping snapshotting.
INFO[0005] EXPOSE 8080
INFO[0005] cmd: EXPOSE
INFO[0005] Adding exposed port: 8080/tcp
INFO[0005] No files changed in this command, skipping snapshotting.
INFO[0005] RUN addgroup mygroup && adduser -D -G mygroup myuser && mkdir -p /usr/src/app && chown -R myuser /usr/src/app
INFO[0005] cmd: /bin/sh
INFO[0005] args: [-c addgroup mygroup && adduser -D -G mygroup myuser && mkdir -p /usr/src/app && chown -R myuser /usr/src/app]
INFO[0005] Taking snapshot of full filesystem...
INFO[0005] WORKDIR /usr/src/app
INFO[0005] cmd: workdir
INFO[0005] Changed working directory to /usr/src/app
INFO[0005] No files changed in this command, skipping snapshotting.
INFO[0005] Pushing layer 822044714040.dkr.ecr.eu-central-1.amazonaws.com/todo/cache:bd87bc6d085113780d96ba07a293b80fe884174ca0eacf65c175e0ba3c4cba94 to cache now
INFO[0005] Using files from context: [/workspace/source/package.json]
INFO[0005] COPY package.json /usr/src/app/
INFO[0005] Taking snapshot of files...
INFO[0005] Using files from context: [/workspace/source/yarn.lock]
INFO[0005] COPY yarn.lock /usr/src/app/
INFO[0005] Taking snapshot of files...
INFO[0005] RUN chown myuser /usr/src/app/yarn.lock
INFO[0005] cmd: /bin/sh
INFO[0005] args: [-c chown myuser /usr/src/app/yarn.lock]
INFO[0005] Taking snapshot of full filesystem...
INFO[0006] USER myuser
INFO[0006] cmd: USER
INFO[0006] No files changed in this command, skipping snapshotting.
INFO[0006] RUN yarn install
INFO[0006] cmd: /bin/sh
INFO[0006] args: [-c yarn install]
INFO[0006] Pushing layer 822044714040.dkr.ecr.eu-central-1.amazonaws.com/todo/cache:8d57e812fc750aa16ea221c05ce0f66849985b956fbcd185393e5845859caf77 to cache now
yarn install v1.17.3
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
Done in 3.39s.
INFO[0010] Taking snapshot of full filesystem...
INFO[0012] Pushing layer 822044714040.dkr.ecr.eu-central-1.amazonaws.com/todo/cache:65687f541e775add659f8825098e577c070b7aae5b46536acdb2e2e777c52970 to cache now
INFO[0012] Using files from context: [/workspace/source]
INFO[0013] COPY . /usr/src/app
INFO[0013] Taking snapshot of files...
INFO[0016] CMD ["/usr/local/bin/npm", "start"]
INFO[0016] No files changed in this command, skipping snapshotting.
WARN[0016] error uploading layer to cache: failed to push to destination 822044714040.dkr.ecr.eu-central-1.amazonaws.com/todo/cache:bd87bc6d085113780d96ba07a293b80fe884174ca0eacf65c175e0ba3c4cba94: NAME_UNKNOWN: The repository with name 'todo/cache' does not exist in the registry with id '822044714040'
2019/10/17 15:34:17 existing blob: sha256:50958466d97a8d1ceedc4e851de4fc43e3e3e0618e548597f63f0b546cb8797c
2019/10/17 15:34:17 existing blob: sha256:56174ae7ed1d5c96ca66882e205154d7067a1a8a325bd8fdec6d5f933f66e0a3
2019/10/17 15:34:17 existing blob: sha256:284842a36c0d8eea230cfd5e7a4a6b450fcd63d1c4737f236a91e1671455050a
2019/10/17 15:34:17 existing blob: sha256:e7c96db7181be991f19a9fb6975cdbbd73c65f4a2681348e63a141a2192a5f10
2019/10/17 15:34:17 pushed blob: sha256:9163581487edf11423ffc421fda77d06cf6d0957bffc4300ee240a4bda374b53
2019/10/17 15:34:17 pushed blob: sha256:5926b01463ec4a87cfba2318b6e4dab94db7175e9a54763a66c3004ac2bce8b1
2019/10/17 15:34:17 pushed blob: sha256:78d96deb504edacdfa883ba1e73171270e1e6d4973b21838f1962a4bca74e8cf
2019/10/17 15:34:17 pushed blob: sha256:d8331e67b06655ef960a19dc626c7d20769cd51c8db9aafa4a948f6c6678bf8f
2019/10/17 15:34:17 pushed blob: sha256:d1f29b270034b2c82ee12c29bc12f56c2dbe8fec63b17f3e04e4f6b6ef807675
2019/10/17 15:34:21 pushed blob: sha256:a36db1027eba54167d866a6d7e71be248d245f45a30e4126d741fa4ed382f162
2019/10/17 15:34:30 pushed blob: sha256:f29d7a0aae9b9222ca0bdab5b993a2a9856511981ca9d12bee9d67fab50d528f
2019/10/17 15:34:30 822044714040.dkr.ecr.eu-central-1.amazonaws.com/ruzickap/front-end:0.3.13: digest: sha256:6a78c378e6f4426eba0eda2ef658a3675b289b68f32b803845444f45a799c913 size: 1893
waiting for stage from-build-pack : container step-build-post-build to start...
Showing logs for build ruzickap/front-end/master #1 stage from-build-pack and container step-build-post-build
no CVE provider running in the current jx namespace so skip adding image to be analysed
waiting for stage from-build-pack : container step-promote-changelog to start...
Showing logs for build ruzickap/front-end/master #1 stage from-build-pack and container step-promote-changelog
Converted /workspace/source/charts/front-end to an unshallow repository
Generating change log from git ref b2308a3ecc70b9ac97b93ce73985e57d5d0c186b => 96b824f0dfe7fefb5e6300a1aecebe5952dc8bfb
Associating user x-0 in users.jenkins.io with email petr.ruzicka@gmail.com to git GitProvider user with login -0 as emails match
Adding label jenkins.io/git-github-userid=-0 to user x-0 in users.jenkins.io
WARNING: Failed to enrich commit bc24537484dfa7aed349edf20f63034e3d4f72f6 with issues: User.jenkins.io "x-0" is invalid: metadata.labels: Invalid value: "-0": a valid label must be an empty string or consist of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyValue', or 'my_value', or '12345', regex used for validation is '(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?')
Finding issues in commit messages using git format
Associating user x-0 in users.jenkins.io with email petr.ruzicka@gmail.com to git GitProvider user with login -0 as emails match
Adding label jenkins.io/git-github-userid=-0 to user x-0 in users.jenkins.io
WARNING: Failed to enrich commit b7f3b45438e3c21a1df16fd6f4bd8d4fb2935dea with issues: User.jenkins.io "x-0" is invalid: metadata.labels: Invalid value: "-0": a valid label must be an empty string or consist of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyValue', or 'my_value', or '12345', regex used for validation is '(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?')
Associating user x-0 in users.jenkins.io with email petr.ruzicka@gmail.com to git GitProvider user with login -0 as emails match
Adding label jenkins.io/git-github-userid=-0 to user x-0 in users.jenkins.io
WARNING: Failed to enrich commit b7f3b45438e3c21a1df16fd6f4bd8d4fb2935dea with issues: User.jenkins.io "x-0" is invalid: metadata.labels: Invalid value: "-0": a valid label must be an empty string or consist of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyValue', or 'my_value', or '12345', regex used for validation is '(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?')
WARNING: Failed to enrich commit a73c693b4b4d4eb2cfc6d4d386a69d29648fc59c with issues: users.jenkins.io "x-0" already exists
WARNING: Failed to enrich commit a73c693b4b4d4eb2cfc6d4d386a69d29648fc59c with issues: users.jenkins.io "x-0" already exists
WARNING: Failed to enrich commit b1ff2c3b4b1af9fdee85320a8ce7b4af39e3c582 with issues: users.jenkins.io "x-0" already exists
WARNING: Failed to enrich commit b1ff2c3b4b1af9fdee85320a8ce7b4af39e3c582 with issues: users.jenkins.io "x-0" already exists
WARNING: Failed to enrich commit 8fc609241f33c15531d6997155a5ad25974d841b with issues: users.jenkins.io "x-0" already exists
WARNING: Failed to enrich commit 8fc609241f33c15531d6997155a5ad25974d841b with issues: users.jenkins.io "x-0" already exists
WARNING: Failed to enrich commit 61d1fdf3ed96a7172e0a2cbaf136d158784f09c0 with issues: users.jenkins.io "x-0" already exists
WARNING: Failed to enrich commit 61d1fdf3ed96a7172e0a2cbaf136d158784f09c0 with issues: users.jenkins.io "x-0" already exists
WARNING: Failed to enrich commit f7775f5882f39b0e3c579d880311f4020a4d97fd with issues: users.jenkins.io "x-0" already exists
WARNING: Failed to enrich commit f7775f5882f39b0e3c579d880311f4020a4d97fd with issues: users.jenkins.io "x-0" already exists
WARNING: Failed to enrich commit 82ebb7c9a018063aaeff91eeebdd9e8e4d810519 with issues: users.jenkins.io "x-0" already exists
WARNING: Failed to enrich commit 82ebb7c9a018063aaeff91eeebdd9e8e4d810519 with issues: users.jenkins.io "x-0" already exists
WARNING: Failed to enrich commit c3eebf2763bdd9a1e0cc5a0f2a9f402ed8c269aa with issues: users.jenkins.io "x-0" already exists
WARNING: Failed to enrich commit c3eebf2763bdd9a1e0cc5a0f2a9f402ed8c269aa with issues: users.jenkins.io "x-0" already exists
WARNING: Failed to enrich commit 390c3fd9ecd95db19eb1044d83161e3d4e261219 with issues: users.jenkins.io "x-0" already exists
WARNING: Failed to enrich commit 390c3fd9ecd95db19eb1044d83161e3d4e261219 with issues: users.jenkins.io "x-0" already exists
WARNING: Failed to enrich commit 7bc6120079b3d403d75a0bfc2248441e94bcdf4f with issues: users.jenkins.io "x-0" already exists
WARNING: Failed to enrich commit 7bc6120079b3d403d75a0bfc2248441e94bcdf4f with issues: users.jenkins.io "x-0" already exists
WARNING: Failed to enrich commit 5adfac298a9d65061b86eba813cab4f151132ae7 with issues: users.jenkins.io "x-0" already exists
WARNING: Failed to enrich commit 5adfac298a9d65061b86eba813cab4f151132ae7 with issues: users.jenkins.io "x-0" already exists
WARNING: Failed to enrich commit d2803dc6f6f46aa34494640b45b8b600d5fbef57 with issues: users.jenkins.io "x-0" already exists
WARNING: Failed to enrich commit d2803dc6f6f46aa34494640b45b8b600d5fbef57 with issues: users.jenkins.io "x-0" already exists
WARNING: Failed to enrich commit e0ed7795e74370b90a3f57da641f25764966768f with issues: users.jenkins.io "x-0" already exists
WARNING: Failed to enrich commit e0ed7795e74370b90a3f57da641f25764966768f with issues: users.jenkins.io "x-0" already exists
WARNING: Failed to enrich commit cd028e31f06a245fe641fb138c8e91165e80ccbb with issues: users.jenkins.io "x-0" already exists
WARNING: Failed to enrich commit cd028e31f06a245fe641fb138c8e91165e80ccbb with issues: users.jenkins.io "x-0" already exists
WARNING: No release found for ruzickap/front-end and tag v0.3.13 so creating a new release
Updated the release information at https://github.com/ruzickap/front-end/releases/tag/v0.3.13
generated: /workspace/source/charts/front-end/templates/release.yaml
Created Release front-end-0-3-13 resource in namespace jx
Updating PipelineActivity ruzickap-front-end-master-1 with version 0.3.13
Updated PipelineActivities ruzickap-front-end-master-1 with release notes URL: https://github.com/ruzickap/front-end/releases/tag/v0.3.13
waiting for stage from-build-pack : container step-promote-helm-release to start...
Showing logs for build ruzickap/front-end/master #1 stage from-build-pack and container step-promote-helm-release
WARNING: No $CHART_REPOSITORY defined so using the default value of: http://jenkins-x-chartmuseum:8080
Adding missing Helm repo: storage.googleapis.com https://storage.googleapis.com/chartmuseum.jenkins-x.io
Successfully added Helm repository storage.googleapis.com.
Adding missing Helm repo: jenkins-x-chartmuseum http://jenkins-x-chartmuseum:8080
Successfully added Helm repository jenkins-x-chartmuseum.
WARNING: No $CHART_REPOSITORY defined so using the default value of: http://jenkins-x-chartmuseum:8080
Uploading chart file front-end-0.3.13.tgz to http://jenkins-x-chartmuseum:8080/api/charts
Received 201 response: {"saved":true}
waiting for stage from-build-pack : container step-promote-jx-promote to start...
Showing logs for build ruzickap/front-end/master #1 stage from-build-pack and container step-promote-jx-promote
WARNING: prow based install so skip waiting for the merge of Pull Requests to go green as currently there is an issue with gettingstatuses from the PR, see https://github.com/jenkins-x/jx/issues/2410
Promoting app front-end version 0.3.13 to namespace jx-staging
Created Pull Request: https://github.com/ruzickap/environment-mylabs-staging/pull/1
Pull Request https://github.com/ruzickap/environment-mylabs-staging/pull/1 is merged at sha 46b4b8c22d3f1e1271170c96598c90f3a247f45c
Pull Request merged but we are not waiting for the update pipeline to complete!
WARNING: Could not find the service URL in namespace jx-staging for names front-end, jx-front-end, jx-staging-front-end
You should be able to see created container image in AWS ECR: https://eu-central-1.console.aws.amazon.com/ecr/repositories?region=eu-central-1 (opens new window)
Watch pipeline activity via:
jx get activity -f front-end
sleep 60
Output:
STEP STARTED AGO DURATION STATUS
ruzickap/front-end/master #1 3m53s Succeeded Version: 0.3.13
meta pipeline 3m53s 41s Succeeded
Credential Initializer Mxv7z 3m53s 0s Succeeded
Working Dir Initializer Jvx69 3m53s 3s Succeeded
Place Tools 3m50s 3s Succeeded
Git Source Meta Ruzickap Front End Master Hxhmf 3m47s 12s Succeeded https://github.com/ruzickap/front-end.git
Git Merge 3m35s 3s Succeeded
Merge Pull Refs 3m32s 1s Succeeded
Create Effective Pipeline 3m31s 9s Succeeded
Create Tekton Crds 3m22s 10s Succeeded
from build pack 3m9s Running
Credential Initializer R9p2h 3m9s 0s Succeeded
Working Dir Initializer X95mf 3m9s 3s Succeeded
Place Tools 3m6s 2s Succeeded
Git Source Ruzickap Front End Master 5h7d7 3m4s 31s Succeeded https://github.com/ruzickap/front-end.git
Git Merge 2m33s 2s Succeeded
Setup Jx Git Credentials 2m31s 0s Succeeded
Build Npmrc 2m31s 0s Succeeded
Build Npm Install 2m31s 7s Succeeded
Build Npm Test 2m24s 1s Succeeded
Build Container Build 2m23s 30s Succeeded
Build Post Build 1m53s 1s Succeeded
Promote Changelog 1m52s 28s Succeeded
Promote Helm Release 1m24s 4s Succeeded
Promote Jx Promote 1m20s Running
Promote: staging 1m12s 1m6s Succeeded
PullRequest 1m12s 1m6s Succeeded PullRequest: https://github.com/ruzickap/environment-mylabs-staging/pull/1 Merge SHA: 46b4b8c22d3f1e1271170c96598c90f3a247f45c
Update 6s 0s Succeeded
Check the applications:
jx get applications
Output:
APPLICATION STAGING PODS URL PRODUCTION PODS URL
carts 1/1 1/1
carts-db 1/1 1/1
catalogue 1/1 1/1
catalogue-db 1/1 1/1
front-end 0.3.13 1/1 http://front-end.jx-staging.mylabs.dev 0.3.13 1/1
orders 1/1 1/1
orders-db 1/1 1/1
payment 1/1 1/1
queue-master 1/1 1/1
rabbitmq 1/1 1/1
shipping 1/1 1/1
user 1/1 1/1
user-db 1/1 1/1
Verify the URLs:
jx get urls -n jx-staging
Output:
NAME URL
front-end http://front-end.jx-staging.mylabs.dev
The application was only deployed on the staging environment http://front-end.jx-staging.mylabs.dev/ (opens new window) and now it is time to promote it to production:
jx promote front-end --build="1" --version 0.3.13 --env production --batch-mode=true
Output:
WARNING: prow based install so skip waiting for the merge of Pull Requests to go green as currently there is an issue with gettingstatuses from the PR, see https://github.com/jenkins-x/jx/issues/2410
Promoting app front-end version 0.3.13 to namespace jx-production
Created Pull Request: https://github.com/ruzickap/environment-mylabs-production/pull/1
WARNING: failed to parse git provider URL git@github.com:ruzickap/k8s-jenkins-x.git: parse git@github.com:ruzickap/k8s-jenkins-x.git: first path segment in URL cannot contain colon
Pull Request https://github.com/ruzickap/environment-mylabs-production/pull/1 is merged at sha ab7ff64339b03362a8a6a064258ba61ba8ccc120
Pull Request merged but we are not waiting for the update pipeline to complete!
WARNING: Could not find the service URL in namespace jx-production for names front-end, jx-production-front-end, jx-production-front-end
The promotion to production should be completed soon:
jx get activity
sleep 60
Output:
STEP STARTED AGO DURATION STATUS
ruzickap/environment-mylabs-production/master #1 14s Running
meta pipeline 14s Running
Credential Initializer Gm5lq 14s 0s Succeeded
Working Dir Initializer 6zjqx 14s 0s Succeeded
Place Tools 14s 1s Succeeded
Git Source Meta Ruzickap Environment Mylab Lx5fq 13s Running https://github.com/ruzickap/environment-mylabs-production.git
Git Merge Pending
Merge Pull Refs Pending
Create Effective Pipeline Pending
Create Tekton Crds Pending
ruzickap/environment-mylabs-production/PR-1 #1 43s Running
meta pipeline 43s 16s Succeeded
Credential Initializer Dj45d 43s 0s Succeeded
Working Dir Initializer Xb56p 43s 0s Succeeded
Place Tools 43s 1s Succeeded
Git Source Meta Ruzickap Environment Mylab R7dcd 42s 5s Succeeded https://github.com/ruzickap/environment-mylabs-production.git
Git Merge 37s 2s Succeeded
Merge Pull Refs 35s 2s Succeeded
Create Effective Pipeline 33s 5s Succeeded
Create Tekton Crds 28s 1s Succeeded
from build pack 23s Running
Credential Initializer H6t5f 23s 0s Succeeded
Working Dir Initializer 9765x 23s 0s Succeeded
Place Tools 23s 1s Succeeded
Git Source Ruzickap Environment Mylabs Pro D9dnj 22s 6s Succeeded https://github.com/ruzickap/environment-mylabs-production.git
Git Merge 16s 4s Succeeded
Build Helm Build 12s Running
ruzickap/environment-mylabs-staging/master #1 1m21s Running
meta pipeline 1m21s 18s Succeeded
Credential Initializer L7wk6 1m21s 0s Succeeded
Working Dir Initializer Kjt4g 1m21s 0s Succeeded
Place Tools 1m21s 1s Succeeded
Git Source Meta Ruzickap Environment Mylab Jgfj9 1m20s 5s Succeeded https://github.com/ruzickap/environment-mylabs-staging.git
Git Merge 1m15s 1s Succeeded
Merge Pull Refs 1m14s 0s Succeeded
Create Effective Pipeline 1m14s 5s Succeeded
Create Tekton Crds 1m9s 6s Succeeded
from build pack 1m2s Running
Credential Initializer Ml2z7 1m2s 0s Succeeded
Working Dir Initializer 9w6zf 1m2s 1s Succeeded
Place Tools 1m1s 1s Succeeded
Git Source Ruzickap Environment Mylabs Sta V96rm 1m0s 7s Succeeded https://github.com/ruzickap/environment-mylabs-staging.git
Git Merge 53s 1s Succeeded
Setup Jx Git Credentials 52s 1s Succeeded
Build Helm Apply 51s Running
ruzickap/environment-mylabs-staging/PR-1 #1 2m7s 1m31s Succeeded
meta pipeline 2m7s 19s Succeeded
Credential Initializer Pxxn6 2m7s 0s Succeeded
Working Dir Initializer K8s7w 2m7s 1s Succeeded
Place Tools 2m6s 1s Succeeded
Git Source Meta Ruzickap Environment Mylab Xnsv9 2m5s 6s Succeeded https://github.com/ruzickap/environment-mylabs-staging.git
Git Merge 1m59s 2s Succeeded
Merge Pull Refs 1m57s 2s Succeeded
Create Effective Pipeline 1m55s 6s Succeeded
Create Tekton Crds 1m49s 1s Succeeded
from build pack 1m42s 1m6s Succeeded
Credential Initializer Jzqnd 1m42s 0s Succeeded
Working Dir Initializer Cfdx4 1m42s 2s Succeeded
Place Tools 1m40s 1s Succeeded
Git Source Ruzickap Environment Mylabs Sta Nx9rn 1m39s 28s Succeeded https://github.com/ruzickap/environment-mylabs-staging.git
Git Merge 1m11s 5s Succeeded
Build Helm Build 1m6s 30s Succeeded
ruzickap/front-end/master #1 4m50s 3m47s Succeeded Version: 0.3.13
meta pipeline 4m50s 41s Succeeded
Credential Initializer Mxv7z 4m50s 0s Succeeded
Working Dir Initializer Jvx69 4m50s 3s Succeeded
Place Tools 4m47s 3s Succeeded
Git Source Meta Ruzickap Front End Master Hxhmf 4m44s 12s Succeeded https://github.com/ruzickap/front-end.git
Git Merge 4m32s 3s Succeeded
Merge Pull Refs 4m29s 1s Succeeded
Create Effective Pipeline 4m28s 9s Succeeded
Create Tekton Crds 4m19s 10s Succeeded
from build pack 4m6s 3m3s Succeeded
Credential Initializer R9p2h 4m6s 0s Succeeded
Working Dir Initializer X95mf 4m6s 3s Succeeded
Place Tools 4m3s 2s Succeeded
Git Source Ruzickap Front End Master 5h7d7 4m1s 31s Succeeded https://github.com/ruzickap/front-end.git
Git Merge 3m30s 2s Succeeded
Setup Jx Git Credentials 3m28s 0s Succeeded
Build Npmrc 3m28s 0s Succeeded
Build Npm Install 3m28s 7s Succeeded
Build Npm Test 3m21s 1s Succeeded
Build Container Build 3m20s 30s Succeeded
Build Post Build 2m50s 1s Succeeded
Promote Changelog 2m49s 28s Succeeded
Promote Helm Release 2m21s 4s Succeeded
Promote Jx Promote 2m17s 1m14s Succeeded
Promote: staging 2m9s 1m6s Succeeded
PullRequest 2m9s 1m6s Succeeded PullRequest: https://github.com/ruzickap/environment-mylabs-staging/pull/1 Merge SHA: 46b4b8c22d3f1e1271170c96598c90f3a247f45c
Update 1m3s 0s Succeeded
ruzickap/k8s-jenkins-x/master #1 Running Version: 0.3.13
Release 1m46s 1m0s Succeeded
Promote: production 46s 46s Succeeded
PullRequest 46s 45s Succeeded PullRequest: https://github.com/ruzickap/environment-mylabs-production/pull/1 Merge SHA: ab7ff64339b03362a8a6a064258ba61ba8ccc120
Update 1s 1s Succeeded
You should be able to see the same Sock Shop instance on this URL: http://front-end.jx-production.mylabs.dev/ (opens new window)
Check the production URLs:
jx get urls -n jx-production
Output:
NAME URL
front-end http://front-end.jx-production.mylabs.dev
Verify the pipelineactivity
:
kubectl get pipelineactivity -n jx
Output:
NAME GIT URL STATUS
ruzickap-environment-mylabs-production-master-1 https://github.com/ruzickap/environment-mylabs-production.git Running
ruzickap-environment-mylabs-production-pr-1-1 https://github.com/ruzickap/environment-mylabs-production.git Running
ruzickap-environment-mylabs-staging-master-1 https://github.com/ruzickap/environment-mylabs-staging.git Succeeded
ruzickap-environment-mylabs-staging-pr-1-1 https://github.com/ruzickap/environment-mylabs-staging.git Succeeded
ruzickap-front-end-master-1 https://github.com/ruzickap/front-end.git Succeeded
ruzickap-k8s-jenkins-x-master-1 git@github.com:ruzickap/k8s-jenkins-x.git Running
Look at the Tekton's pipelineruns
:
kubectl get pipelineruns.tekton.dev -n jx
Output:
NAME AGE
meta-ruzickap-environment-mylab-1 2m10s
meta-ruzickap-environment-mylab-jb9k5-1 46s
meta-ruzickap-environment-mylab-rdchv-1 83s
meta-ruzickap-environment-mylab-zln5m-1 21s
meta-ruzickap-front-end-master-1 5m
ruzickap-environment-mylabs-pro-1 28s
ruzickap-environment-mylabs-sta-1 109s
ruzickap-environment-mylabs-sta-74ttt-1 64s
ruzickap-front-end-master-1 4m10s
Those pods were created by the pipelines during the build process:
kubectl get pods -l jenkins.io/pipelineType=build -n jx
Output:
NAME READY STATUS RESTARTS AGE
ruzickap-environment-mylabs-pro-1-from-build-pack-lgzxp-pod-fa1dec 1/3 Running 0 26s
ruzickap-environment-mylabs-sta-1-from-build-pack-h4ds4-pod-2ef560 0/3 Completed 0 108s
ruzickap-environment-mylabs-sta-74ttt-1-from-build-pack-s2vbb-pod-f42bb6 0/4 Completed 0 65s
ruzickap-front-end-master-1-from-build-pack-8k8x9-pod-9ef55a 0/11 Completed 0 4m11s
See the labels on one of the pods created during the build process:
kubectl get pods $(kubectl get pods -l jenkins.io/pipelineType=build -n jx -o "jsonpath={.items[0].metadata.name}") -n jx --show-labels
Output:
NAME READY STATUS RESTARTS AGE LABELS
ruzickap-environment-mylabs-pro-1-from-build-pack-lgzxp-pod-fa1dec 1/3 Running 0 26s branch=PR-1,build=1,context=promotion-build,created-by-prow=true,jenkins.io/pipelineType=build,jenkins.io/task-stage-name=from-build-pack,owner=ruzickap,prowJobName=e69bad31-f0f3-11e9-b692-7e7c118eea63,repository=environment-mylabs-production,tekton.dev/pipeline=ruzickap-environment-mylabs-pro-1,tekton.dev/pipelineRun=ruzickap-environment-mylabs-pro-1,tekton.dev/pipelineTask=from-build-pack,tekton.dev/task=ruzickap-environment-mylabs-pro-from-build-pack-1,tekton.dev/taskRun=ruzickap-environment-mylabs-pro-1-from-build-pack-lgzxp
List all the pipelines using the tkn
command (default Tekton client):
tkn pipeline list -n jx
Output:
NAME AGE LAST RUN STARTED DURATION STATUS
meta-ruzickap-environment-mylab-1 18 minutes ago meta-ruzickap-environment-mylab-1 18 minutes ago 23 seconds Succeeded
meta-ruzickap-environment-mylab-jb9k5-1 16 minutes ago meta-ruzickap-environment-mylab-jb9k5-1 16 minutes ago 21 seconds Succeeded
meta-ruzickap-environment-mylab-rdchv-1 17 minutes ago meta-ruzickap-environment-mylab-rdchv-1 17 minutes ago 22 seconds Succeeded
meta-ruzickap-environment-mylab-zln5m-1 16 minutes ago meta-ruzickap-environment-mylab-zln5m-1 16 minutes ago 1 minute Succeeded
meta-ruzickap-front-end-master-1 21 minutes ago meta-ruzickap-front-end-master-1 21 minutes ago 53 seconds Succeeded
pipeline0 21 minutes ago --- --- --- ---
ruzickap-environment-mylabs-pro-1 16 minutes ago ruzickap-environment-mylabs-pro-1 16 minutes ago 1 minute Succeeded
ruzickap-environment-mylabs-pro-7r8jr-1 15 minutes ago ruzickap-environment-mylabs-pro-7r8jr-1 15 minutes ago 47 seconds Succeeded
ruzickap-environment-mylabs-sta-1 17 minutes ago ruzickap-environment-mylabs-sta-1 17 minutes ago 1 minute Succeeded
ruzickap-environment-mylabs-sta-74ttt-1 17 minutes ago ruzickap-environment-mylabs-sta-74ttt-1 17 minutes ago 57 seconds Succeeded
ruzickap-front-end-master-1 20 minutes ago ruzickap-front-end-master-1 20 minutes ago 3 minutes Succeeded
Screenshot form Prow https://deck.jx.mylabs.dev (opens new window):
You may also see the Tekton Pipelines using Tekton Dashboard https://tekton-dashboard.jx.mylabs.dev (opens new window):