αα½ααααΈα’αααααΆααα’ααααααΆαααα»ααααααααα! αααααΊααΆααΆααααααΆαααΈααΈαα αααα»ααααααΈαα½ααααααΎααααα αΆαααΈααααααΆαααααααΆααααααα·ααΈαααααΆαααααΎααα ααΎ Red Hat OpenShift α
αα
αααα»αααΆααααα ααααΈαααΎααα»α ααΎαααΆααααα αΆαααΈαα·ααΈααΆαααααααΆααααααα·ααΈαααααΆαααααΎααααααααΆααααααΈαααΈααα αΆαααα»ααααα αα·αααααααααΎααΌαααΆα S2I ααααΈ αα½αααΆαα½αααΉαααΌαααΆααααΆαααΈααα HTTP αααα
ααααΎ ααΌα
ααΆ NGINX αααααααΎααΆααααααΎαααΆα
ααααΆαα ααΎααααΈαααα
αααΆαααΆαααααααΆαααα·αααααα .
αααααααααΎαααΉααααα αΆαααΈααααααααΎαααΆααααΆαααΈαααα’αα·αααααααααααΆαααααααα·ααΈααααα’ααααα
ααΎαααα·ααΆ OpenShift αα·αααααΎααααΆαααααααΆααΆαα½αααααααααα―αααΆαααΌαααααΆα α αΎααααα·ααΆαα’αααΈα’αααΈααα OpenShift Pipelines αα·αααααααααα½αααΆα’αΆα
ααααΌαααΆαααααΎααΆαααααΎααααα½αααΆααα½αααααα»αααααΆαααααΆαααααΆααα
OpenShift ααΆααα·ααΆααΆαα’αα·αααααα
ααααΎαααΆαα’αα·αααααα
ααΌα
αααααΆααααααΆαααα½α
α αΎααα
αααα»α
αα αααα»ααααααααααααααΎαααΆαα αααΎα "αααΆαααΈαααα’αα·αααααα" ααααααααααΌαααΆααααααΎαα‘αΎααα αααα»αα§ααααααααααΆααααΆααααααααΆαααααααΌαααααΆα
α§ααΆα ααααααα»ααααα»α
ααααΌα ααΌαααΎαααΈαααααααααΆααααΎαααΆααα
αααααααΎαααΆααααααα·ααΈαααα»αααΌαααααΆαα αααααααΆααααα»αααααΎααΆα§ααΆα ααα
ααΌα
αααα ααΎααααΈα
αΆααααααΎα "dev server" αα
αααα»αα§ααΆα ααα React ααααααΎα ααΎαααΉααααα
αΌαααΆααααααααΆααΆααααααα
$ npm run start
αααααΆαααααα αααα»ααααα’α½α ααααΆααΈαααΎαααΉαααΎαα’αααΈαα½αααΌα ααα:
α αΎααααααα·ααΈααααααΎαααΉαααΎααα αααα»ααααααα·ααΈαα»αααααααΆαααΎαα
α₯α‘αΌαααα ααααα·αααΎααΎαααααΎααΆαααααΆααααααΌαα―αααΆαααα αααααα·ααΈαα½αααα’αΆααααααα αααα»ααααααα·ααΈαα»αααα
ααααααα α’αααΈααααααααΆαααΊα αααΆααααΆαα½αααΉαααΆαα’αα·αααααααα αααα»αααααααΌαααααΆα ααα»ααααααΎααααΎααΌα ααααα ααΎααααΈαααααα ααΆαααΌα ααααΆαα ααΎ OpenShift?
αααΆαααΈαααα’αα·αααααααα ααΎ OpenShift
ααααα·αααΎα’αααα
αΆα, αα
αααα»α
ααααααΆαααΆαααααααααα·αααΎα’ααααα·αα·αααααΎαα±ααααΆααααα
αααΆαα
α§ααΆα ααα ααΎαα’αΆα ααααΎαααΌαα»α nodeshift ααΎααααΈααΆααα±ααααααΎααααΆαααααααα·ααΈααααααΎαα
$ npx nodeshift --deploy.env NPM_RUN="yarn start" --dockerImage=nodeshift/ubi8-s2i-web-app
α αααΆαα α§ααΆα αααααΆαααΎααααΌαααΆααααααααΆα’ααααααΆααααΎααααΈαααα αΆαααΈαααα·αααΌαα α
αα ααΈααα ααΎαααΆαααααααα’αααααα·ααααΆα NPM_RUN αα ααΉαααΆαααΆααα±ααααααΎααααΆααααααααΎα αααααααΆααααααααααααΎαααΆαααΎααααΈααααΎαααΆαααΆααααααααΆ yarn start αααα αΆααααααΎα React developer server αα ααΆααααα»α OpenShift pod ααααααΎαα
ααααα·αααΎα’ααααααα‘ααααΎααααααα ααα»ααααΆαααα pod ααΆααΉαααΎααα ααΌα ααα:
ααΆααΆααα·αααΆαα α’αααΈαααΆααα’αααααααΉααα·αααΆαα’αααΈααΆααααααα αα αΌαααΆααααααΎαα’αΆα ααααΎααααΆαααααααΌαααΌαααααΆαααΆαα½αααΌα αααααααΌαααΆααααα½ααα·αα·αααααααααααααΆααααΆαααααΆααααααΌα ααα»ααααααααα ααΎαααΆαααΈαααααΈα ααααΆαα
ααααΎααααΆαααααααΈα ααααΆα αα·ααααααΌαααΌαααααΆα
ααΆααααΆαααα’ nodeshift α’αΆα αα½αααΆααααΆαααΆααααα½αααΆαα½αααΉαααΆαααααΎααααΆααααα α αΎαα’αααα’αΆα ααααΎααΆααααααααΆααΆα‘α·ααΆααΎααααΈααΆαααΆαααΆαααααΆααααααΌαα
ααΌα αααααααααΆααααΈααΎαααΆαααααΎαααΆαααΆααααααααΆααΎααααΈααΆαααααααΆααααΆαααΈαααα’αα·αααααααααααΆαααααααα·ααΈααααααΎα ααΎαα’αΆα ααααΎααΆααααααααΆααΆααααααααααα»ααααα·ααΆαα
$ npx nodeshift watch
ααΆαααααα ααΆααααααΆααααΉαααααΌαααΆαααααΎα‘αΎαα ααααααααααααα»αααααΎαααΆααααααΎαααΆααααααΎααα»ααααααααα·α ααΆαααααΎααααΆαααααααα―αααΆαααΌαααααΆαααααααΎαααΆαα½αααΉαα αααααααΈα ααααΆαααΉαααααΌαααΆαααααΎα±ααααααα α αΎαα―αααΆααα ααΎααααααααααΌαααααΆαααααααΎαααΉαα αΆααααααΎαααααΌαααΆααααα½ααα·αα·ααααααααΆααααΆαααααΆααααααΌαα
ααΌα αααα ααααα·αααΎα₯α‘αΌααααααΎαα’αΆαααααα―αααΆα src/App.js ααααααααααΉαααααα·ααααα ααααααΆαααααΆααααααΌαααΆααααα α αααααα½αααΆαα α αααααααΈα ααααΆα α αΎαα αΆααααααΎααααΆαααΈαααα’αα·αααααα ααααααααΆααααααΉαααααΎαα αα α»ααααααααΆααααααα·ααΈααααααΎααα αααα»ααααααα·ααΈαα»αααα
ααΎααααΈβαααα ααβααΌαααΆα ααΌαβαααα αΆαβααΈβα’αααΈβαααβααΆαααβαααααΆβααΆααβα’ααβαααβααΎαβαα βααΌα βααΆα
$ npx nodeshift --strictSSL=false --dockerImage=nodeshift/ubi8-s2i-web-app --build.env YARN_ENABLED=true --expose --deploy.env NPM_RUN="yarn start" --deploy.port 3000
$ npx nodeshift watch --strictSSL=false
ααΆααααααααΆααΆα‘α·ααΆααΊααΆα’ααΌααΈαα½ααα
ααΎααααΌαααααΆααααααααΆ oc rsync α’αααα’αΆα
ααααααααααααααα’αααΈαααααααααΆααααΎαααΆα
αααααΆα§ααΆα ααααααααΆαα React ααα»αααααα·ααΈααΆαααααααΌα
ααααΆαα·αααααΆααα’αΆα
ααααΌαααΆαααααΎααΆαα½αααααααααααααααααα αααααααΆαααααααααα’αααααα·ααααΆα NPM_RUN ααΆααΆαα
αΆαααΆα
αα
β
ααααα Openshift
αααααΆααααααΎαααΉααα·ααΆαα’αααΈα§αααααααΌα ααΆ OpenShift Pipelines αα·ααααααααααΆα’αΆα ααααΌαααΆαααααΎααΆαααααΎααα½ααααααΆααααΆααααααΎααααααααααΆααα
ααΎα’αααΈαα ααΆ OpenShift Pipelines
OpenShift Pipelines ααΊααΆαααααααααα½ααααα αΌα αα·ααααααΌααααα CI/CD αααααΆαααΎαααααΎαααΈααα αααααααΌαααΆααα ααΆα‘αΎααααααΆαααααα αααααααααα αΌαααααααααααααΎ Tekton α Tekton ααΊααΆαααααααΎαα αα ααααα’αΆα ααααααααΆα Kubernetes-native CI/CD framework αααα’αα»ααααΆαα±ααα’αααααααΎααααααααααααα·ααααααΆαααΆααα±ααααααΎααααΆαααα ααΎαααα·ααΆαααααα (Kubernetes, serverless, virtual machines ααα) αααα’ααΌααΈααΈαααααΆααααΌαααααΆαα
ααΆααααααΉαα’αααΈα’ααααααααααΆαααΆαα
ααααααΉααααααα’αααΈααααααααα αΌαααααα ααΌα
ααααααΎαααΌαααααΆααααΆααα»αααΆαααΆα’αααα’αΆαααΆαα»ααα·α
αααα αααα·ααΆααΆαααΆαααΆαααααα’αααα
ααΎααααΈαααααΆαα½αα§ααΆα ααααααα»αα’αααααααα ααααΌαα’αααααααΌααααα αααα·ααΆααΆαααΆαααΆαααααα’αααα
- ααα‘αΎα αα·αααααααα
ααΆαααααααααααα»α OpenShift 4 α α§ααΆα αααααααααΎαααααΎ CodeReady Containers (CRD) αααααΆααααΆ ααΆαααααΆαα’αααΈααΆαααα‘αΎααααα’αΆα
ααααΌαααΆαααααΎα
αα ααΈααα . - αααααΆααααΈα
ααααααα½α
ααΆαα α’αααααααΌαααα‘αΎα Pipeline Operator αα
ααΎααΆα αα»ααααααααΆα
ααΆααΆααααα½α ααΆαααααΆαα’αααΈααΆαααα‘αΎα
αα ααΈααα . - ααΆααα
Tekton CLI (tkn)αα ααΈααα . - ααααΎαααΆαα§ααααααααααΆααααΆααααααααΆ create-react-app ααΎααααΈαααααΎααααααα·ααΈααααααααΆααααα’αααααΉαααΆαααααααΆα (αααααΊααΆαααααα·ααΈααΆαααα
ααααα·αααα ). - (ααΆαααααΎα) ααααΌαααααΆααααΎααααΈααααΎαααΆααααααα·ααΈα§ααΆα ααααααα»αααΌαααααΆααααααα‘αΎα npm α αΎααααααΆαααα npm α αΆααααααΎαα
ααααΆαααααααα·ααΈααααΉαααΆααα k8s αααααΉαααΆα Kubernetes/OpenShift YAMLs αααααααΎααΎααααΈααΆααα±ααααααΎααααΆαααααααα·ααΈα ααΆααΉαααΆα Tasks, ClusterTasks, Resources and Pipelines αααααΎαααΉααααααΎααα
αααα»ααααα
αααβα αΆααααααΎα
ααα αΆαααααΌααααααΆααα§ααΆα αααααααααΎαααΊαααααΎαααααααααααΈαα αααα»αα ααααα OpenShift α α αΌαα α αααααααααααΆ webapp-pipeline α αΎααααααΎαααΆαααααααΎααΆααααααααΆααΆααααααα
$ oc new-project webapp-pipeline
ααααααααααααααααΉααααα αΆααα αααα»αααΌααα αααααααα ααΌα ααααααααα·αααΎα’ααααααααα α α·αααααΆαααααααααΆα’αααΈαααααααα αα»αααααα ααααααα½αααΌαα§ααΆα αααααΆαα α αΆααααααΎαααΈα ααα»α ααα ααΎαααΉααα·αα α»αααΈααΎα α»αααααααα ααα»ααααα α»ααααααα αααααΊααααΌαααΎαααΉααααααΎααααΆαααΆαα»ααΆααα’αααα conveyor α αΎααααααΆααααααΆααα conveyor αααα½αα―αααα»αααααα
ααΌα αααα ααΆααααΌα...
ααΆααα·α αα
α αΌαααΎααααααΎααα·α αα ααΆαααΈαααΈ ααααααααΆααααααΉααα½αααΆααα±ααααααΎααααΆαααααααα·ααΈαα αααα»αααααααααα αΌααααααααααααΎαα αα·α αα ααΆαααΈαα½α - apply_manifests_task - ααα½ααα»αααααΌααααα»αααΆαα’αα»αααα YAML ααααααΆα Kubernetes ααΆααααα (ααααΆαααα ααΆαααΆαααααααΆα αα·αααααΌα) αααααΆαααΈααΆαααα αααα»αααα―αααΆα k8s αααααααα·ααΈααααααΎαα αα·α αα ααΆαααΈααΈα β update_deployment_task β ααα½ααα»αααααΌαα ααααααΆαα’αΆαααααααΌαααΆααααααΆαααΆαααααααΆααα½α α αΎααα ααΆααααΌαααΆααααααΆααααααΎααααααααααααα αΌααααααααααααΎαα
αα»αααΆααααααααα·αααΎααΆαα·αααΆααα αααΆαααα α‘αΎαα ααΆαααΆααα·α ααΆαααΆαααΆαααααααΊααΌα ααΆα§αααααααααΎααααΆαα α αΎαααΎαααΉααα·αα·αααααΎαααΆα±ααααΆαααααααα’α·ααα ααααααααα αααααΆαααααααα α αΌαααΎααααααΎααα½αααΆα
$ oc create -f https://raw.githubusercontent.com/nodeshift/webapp-pipeline-tutorial/master/tasks/update_deployment_task.yaml
$ oc create -f https://raw.githubusercontent.com/nodeshift/webapp-pipeline-tutorial/master/tasks/apply_manifests_task.yaml
αααααΆαααααααααααΎααΆααααααααΆ tkn CLI ααΎαααΉααα·αα·αααααΎαααΆααΆααα·α αα ααααΌαααΆααααααΎαα
$ tkn task ls
NAME AGE
apply-manifests 1 minute ago
update-deployment 1 minute ago
α αααΆαα ααΆαααααααΊααΆαα·α αα ααΆααααα»ααααα»ααααααΆαααααααααα αα α»ααααααααααα’αααα
αα·α αα ααΆαααΆαααα»α
αα·α αα ααΆαβα αααααβααΊβααΆβααΌαααααΆαβααΌα ααααΆβααΉαβαα·α αα ααΆαβααΆααααα αααααΊ ααΆααΊααΆααααα»αααααα αΆααααα’αΆα ααααΎα‘αΎααα·αααΆα αααααααΌαααΆααααα αΌαααααΆαααα»ααααααααΆααα½α α¬αα½ααααααααα αα αααααααΎαααΆααα·α αα ααΆαααΆααααΆαααα½αα ααΆαβαα»αβααααΆβααΊβααΆβαα·α αα ααΆαβα αααααβααΆαβαα βαααααβααΈααααααβαααα»αβα αααααα ααΎααααΈααΎααααααΈαααα·α αα ααΆαα ααααααααααααΌαααΆααααααΎααααααααααααααααα·αα ααααααααα Pipeline Operator ααΎαααΉαααααΎααΆααααααααΆ tkn CLI αααααααα
$ tkn clustertask ls
NAME AGE
buildah 1 day ago
buildah-v0-10-0 1 day ago
jib-maven 1 day ago
kn 1 day ago
maven 1 day ago
openshift-client 1 day ago
openshift-client-v0-10-0 1 day ago
s2i 1 day ago
s2i-go 1 day ago
s2i-go-v0-10-0 1 day ago
s2i-java-11 1 day ago
s2i-java-11-v0-10-0 1 day ago
s2i-java-8 1 day ago
s2i-java-8-v0-10-0 1 day ago
s2i-nodejs 1 day ago
s2i-nodejs-v0-10-0 1 day ago
s2i-perl 1 day ago
s2i-perl-v0-10-0 1 day ago
s2i-php 1 day ago
s2i-php-v0-10-0 1 day ago
s2i-python-3 1 day ago
s2i-python-3-v0-10-0 1 day ago
s2i-ruby 1 day ago
s2i-ruby-v0-10-0 1 day ago
s2i-v0-10-0 1 day ago
α₯α‘αΌαβααΎαβαααααΎαβαα·α αα ααΆαβα αααααβααΈαα ααΈαα½αααΉααααααΎαααΌαααΆα S2I α αΎαααααΎααΆαα αααααΈααααα OpenShift ααΆααααα»αα ααΈααΈαααΊαααααΎαααΌαααΆαααααααΎααααααα’ααααΎ NGINX αααααααΎαααααα·ααΈαααααΎαααΆααααααΎαααΆααΆαα·ααΆα
αααααΎααα·αααααΎααΌαααΆα
αα ααααααααΎααα·α αα ααΆαααααΌα ααΎαααΉααα·ααΆαα‘αΎααα·αααΌαα’αααΈαααααΎαααΆαααααΎαα½α α αΎααα αααα»αα’ααααααα»αα’αααΈααΆααα½αααααα»αααααΆαααααΆαααααΆααα ααΌαα αΆαααΆααΎαααΆαααααΎααΌαααΆα S2I (ubi8-s2i-web-app) ααΎααααΈ "αααααΎα" αααααα·ααΈααααααΎα α αΎαααΆααααα αααααααΌαααΆααααααΆααααααΆαα»ααα αααα»ααααααΈαααααααΆααααα»α OpenShift α α₯α‘αΌααααααΎαααΉαααααΎααΌαααΆααααααα·ααΈαααααΆα S2I αααααΎααααΈαααααΎα DockerFile αααααΆαααααααα·ααΈααααααΎα α αΎααααααΆααααααααΎ Buildah ααΎααααΈααααΎααΆαααΆαααααα·αααααΆαα α αΎααα»αααΌαααΆααααααααα αααααΈαααααααΆααααα»α OpenShift ααααααααααΆα’αααΈααα OpenShift ααααΎαα αααα’αααααΆαααααααΆααααααα·ααΈααααα’ααααααααααΎ NodeShift .
ααΎααΎαααΉαααΏαααΆααα’ααααααααααααααΆ? ααΈ
ααΌα αααα α₯α‘αΌαβααΎαβαααααΎαβαα·α αα ααΆαβα ααααα s2i-web-appα
$ oc create -f https://raw.githubusercontent.com/nodeshift/webapp-pipeline-tutorial/master/clustertasks/s2i-web-app-task.yaml
ααΎαααΉααα·ααα·ααΆααααα’α·ααα ααα»ααααααΉααααααααααΎαααΆαααΆαααααα OUTPUT_DIRα
params:
- name: OUTPUT_DIR
description: The location of the build output directory
default: build
ααΆαααααΆαααΎα αααΆαααΆαααααααααααΊααααΎααΉα build αααααΆαααααα React ααΆααααΆαα·ααΆαααααΆααα½αααααα»αααααΆα ααααααααααααααααααααΎααααΌααααααααααΆ α§ααΆα ααααα αααα»α Ember ααΆαα ααααΆαα αααααααααα·α αα ααΆαα αααααααααΌαααααααΎαααΉαααΆααΌαααΆααααααΆα HTML, JavaScript αα·α CSS αααααΎααααααΌαααΆαα
αααααΎαααΌαααΆααααααα’ααααΎ NGINX
αααααΆαααα·α αα ααΆαα αααααααΈααΈαααααααΎα ααΆαα½ααααααααΎαααΌαααΆααααααΆαααΌαααααΆαααΎ NGINX αααααΆαααα½αααΎα αααααααΎααααΉαααΆααααααααα·ααΈαααααΎαααΆααααααΎααα½α α αΎαα ααααΆαα αααβααΊβααΆβαααααβααβαααααβαα»αβαααβααΎαβααΎαβαα βααΎβααΆαβααΆαβαααβααΆβα ααααΆααα
ααΎααααΈααααΎααΌα αααααΎα - ααΌα ααααΆαα ααΉαα’αααΈαααααΆααααααΆααααΆαααΎ - ααΉααααααΎαααΆαααΆαααΆαααα»α webapp-build-runtime:
$ oc create -f https://raw.githubusercontent.com/nodeshift/webapp-pipeline-tutorial/master/clustertasks/webapp-build-runtime-task.yaml
ααααα·αααΎα’ααααααα‘ααααΎαααΌααααααΆαααα·α αα ααΆαα αααααααΆααααα α’αααα’αΆα ααΎαααΎαααΆααΆαα·ααααααΆααααααΆαα Git αααααΎααααα»αααααΎααΆαααΆαα½α α¬αααααααΌαααΆααααααΎααααα»ααααααΎααααααα ααΎαααααΆαααααααααΆααααΌαα’αααΈαααααΎααααα»αααααααα Git α¬ααΌαααΆαααΆααααΆαααααααΌαααΆαα α»αααααααα½αααααΆααααααα αααβααΆβααΌαα ααα»βαααβαα·α αα ααΆαβα αααααβααΆαααααβα’αΆα βααααΌαβααΆαβααααΎβα‘αΎααα·αβαα αααβααααΎααΆαααΆαα½αβαααααα·ααΈβααααααααα
α αΎααα ααΈαααααΎααααααα α ααα»α αααααΆααααααα»ααΆαααΆαααΆ ...
ααααΆα
ααΌα αααα ααΌα αααααΎαααΎαααααΆααα·ααΆα αα·α αα ααΆαα ααααααα½αααααΆαααααααααΌαα ααΆααααα’αΆα ααααΎαα ααΆα ααΎαααααΌααααααΎαααααΆααααααΉαααααΌαααΆαααααΎααΆααΆαα»αααα αΌα (ααααΆαα Git) αα·αααΆαααααα (ααΌαααΆαα α»αααααα)α ααααΆαααααΌααααααΎαααααΌαααΆαααΊ Git ααΆααααααααααααααα·ααΈααααααΎαααααα α’αααΈαα½αααΌα αααα
# This resource is the location of the git repo with the web application source
apiVersion: tekton.dev/v1alpha1
kind: PipelineResource
metadata:
name: web-application-repo
spec:
type: git
params:
- name: url
value: https://github.com/nodeshift-starters/react-pipeline-example
- name: revision
value: master
αα ααΈααα PipelineResource ααΊααΆαααααα git α αααααΉα url αααα»αβααααα params α ααα’α»αβαα βααααααβαααα»αβααΆααααΆαα α αΎαβαααααΆααβααΆααΆβαα (αααβααΆβαααααΎα ααα»ααααβααΎαβαααααβααΆβαααααΆααβααΆαβαααααα)α
α₯α‘αΌααααααΎαααααΌααααααΎαααααΆααααααΆααααΌαααΆαααααααααααααα·α αα ααΆα s2i-web-app ααΉαααααΌαααΆααααααΆαα»α ααΆααααΌαααΆαααααΎααΌα αααα
# This resource is the result of running "npm run build", the resulting built files will be located in /opt/app-root/output
apiVersion: tekton.dev/v1alpha1
kind: PipelineResource
metadata:
name: built-web-application-image
spec:
type: image
params:
- name: url
value: image-registry.openshift-image-registry.svc:5000/webapp-pipeline/built-web-application:latest
αα ααΈααα PipelineResource ααΊααΆααΌαααΆααααααα α αΎαααααααααααΆαααΆαααααα url α ααα’α»ααα OpenShift Image Registry ααΆααααα»α ααΆαα·αααααΌαααΆααααααΆαααΈααΆαααα webapp-pipeline namespaceα αα»αααααα ααααΆααααααΌαααΆααααααααα ααααα·αααΎα’ααααααα»αααααΎααα ααααααααααα
α αΎαααΆα α»αααααα ααααΆαα α»αααααααααααΎαααααΌαααΆαααααΆααΌαααΆααααααα α αΎααααααΉαααααΆαααΆααΌαααΆα NGINX α α»ααααααααααααααΆααααααΉαααααΌαααΆαααααΎααα‘α»ααααααΆαααααααΆαα
# This resource is the image that will be just the static html, css, js files being run with nginx
apiVersion: tekton.dev/v1alpha1
kind: PipelineResource
metadata:
name: runtime-web-application-image
spec:
type: image
params:
- name: url
value: image-registry.openshift-image-registry.svc:5000/webapp-pipeline/runtime-web-application:latest
ααΆααααΈααααααα ααΌαα αααΆαααΆααααΆαααααααααΆαα»αααΌαααΆααα αααα»ααααααΈααααα OpenShift ααΆααααα»ααα αααα»α webapp-pipeline namespaceα
ααΎααααΈαααααΎαααααΆαααΆααα’ααααααααα»αααααααα½α ααΎαααααΎααΆααααααααΆαααααΎαα
$ oc create -f https://raw.githubusercontent.com/nodeshift/webapp-pipeline-tutorial/master/resources/resource.yaml
α’αααα’αΆα ααααΆααααΆααααΆαααααΌαααΆααααααΎαααΌα αααα
$ tkn resource ls
ααααααααααΌα
α₯α‘αΌαβαααβααΎαβααΆαβαααΆαααΆαα»βα αΆαααΆα αβααΆααβα’ααβα αΎα α αΌαβαααααΌαβαααααβααΈβαα½αβααΆβαααβαααααΎαβααΆβαααβααααΎβααΆαααβαααααΆβααΌα βααΆαβαααααα
$ oc create -f https://raw.githubusercontent.com/nodeshift/webapp-pipeline-tutorial/master/pipelines/build-and-deploy-react.yaml
ααα»αααααα»αααααααααΎαααααΎαααΆαααΆααααααααΆααα ααΌααααα‘ααααΎααααΆαααΆαα»ααΆαααααα ααΈαα½αααΊαααααα
apiVersion: tekton.dev/v1alpha1
kind: Pipeline
metadata:
name: build-and-deploy-react
αααααΆαααααα αααα»αααααα spec ααΎαααΎαααΆαα ααα’α»ααααα αΆαα’αααΈααααΆααααααΎαααΆααααααΎααα»ααααα
spec:
resources:
- name: web-application-repo
type: git
- name: built-web-application-image
type: image
- name: runtime-web-application-image
type: image
αααααΆααααααΎααααααΎααα·α αα ααΆααααααααααααα αΌααααααααααααΎαααααΌαααΆαααΎααααΈαααα ααα ααΆααααΌαααΆααααΌαααααααα·ααααα·ααΆααα·α αα s2i-web-app αααααΎαααΆααααααΎααα½α α αΎαα
tasks:
- name: build-web-application
taskRef:
name: s2i-web-app
kind: ClusterTask
ααΆααα·α αα αααααααΌαααΆααααα αΌα (ααααΆα gir) αα·ααα·ααααα (ααααΆαααα ααααααααααΆαααΆααααα‘αΎα - αααααα·ααΈ - ααΌαααΆα) α ααΎαααααααααΆααααΆααΌααααΆαααΆαααααααα·ααααα½αααααα ααΌα ααααααΆαα·αα’αΆα αααααααααΆαα TLS ααΆααα αααααΆαααΎααααα»αααααΎαα·ααααΆαααααααααα α»αα αααααααΆααααααα½αα―αα
resources:
inputs:
- name: source
resource: web-application-repo
outputs:
- name: image
resource: built-web-application-image
params:
- name: TLSVERIFY
value: "false"
αα·α αα ααΆααααααΆααααΊααααΎαααααΌα ααααΆ ααΆααααα ααΈααα webapp-build-runtime cluster task αααααΎαααΆααααααΎααα½α α αΎαααααΌαααΆαααα α ααΆα
name: build-runtime-image
taskRef:
name: webapp-build-runtime
kind: ClusterTask
ααΌα ααΉααα·α αα ααΆααα»αααα ααΎαααααααΆααααααΆααα½α ααα»ααααα₯α‘αΌαααα ααΆααααΌαααΆαααΆααααα‘αΎα-web-application-image (αααααααααα·α αα ααΆαααΈαα»αααααααΎα)α α αΎαααΆαααααα ααΎααααααααΌαααΆααααααααα αααααΆαβαα·α αα ααΆαβαααβααααΌαβααβααααΌαβααΆαβααααα·ααααα·βαααααΆααβααΈβαα·α αα ααΆαβαα»α ααΎαβααααααβααΆα runAfterα
resources:
inputs:
- name: image
resource: built-web-application-image
outputs:
- name: image
resource: runtime-web-application-image
params:
- name: TLSVERIFY
value: "false"
runAfter:
- build-web-application
αα·α αα ααΆαααΈααααααΆααααΊααα½ααα»αααααΌαα ααααααΆαααααΎααααΆααααααΆαααα ααααΌα αα·αααΆαααΆαααααααΆαα―αααΆα YAML αααααααα αααα»ααα k8s αααααααα·ααΈααα αααααααααααΎα α αΎααααααααΆααααααΎαα αα α»ααααααααΆαααΆαααΆαααααααΆαααααα ααααααααΎαααΌαααΆαααααΈα ααΎαααΆααααααααΆααα·α αα α αααααααΆααααΈαααααα ααΎαα’αααααα
ααΆαα αΆααααααΎαα§ααααααααααΌα
ααΌα ααααααααααααααααΆααα’ααααααααααααα αΌααααααααααααΎαααααΌαααΆααααααΎαα‘αΎα α αΎαααΎαααΉαααααΎαααΆαααΆαααααααΎααΆααααααααΆααΌα ααΆααααααα
$ tkn pipeline start build-and-deploy-react
αα ααααΆααααΆαααα αααααΆααααΆααααααααΆααααΌαααΆαααααΎααααΆααα’αααααααα α αΎαα’αααααααΌαααααΎαααΎαααααΆααααααα ααΎααααΈααααΎααααα ααΉαααααΎααΈαα½ααααααααΆα αααααΆααααααΆα git ααΌαααααΎαααΎα web-application-repo αααααΆαααααααααΆααααααΆαααΌαααΆαααααΌα αααααα·ααΈαααααΎαααα ααααα -image α αΎαα α»αααααααααααΆααααααΆαααΌαααΆαααΈααΈα -runtime-web-application-imageα
? Choose the git resource to use for web-application-repo: web-application-repo (https://github.com/nodeshift-starters/react-pipeline-example)
? Choose the image resource to use for built-web-application-image: built-web-application-image (image-registry.openshift-image-registry.svc:5000/webapp-pipeline/built-web-
application:latest)
? Choose the image resource to use for runtime-web-application-image: runtime-web-application-image (image-registry.openshift-image-registry.svc:5000/webapp-pipeline/runtim
e-web-application:latest)
Pipelinerun started: build-and-deploy-react-run-4xwsr
α₯α‘αΌααααααΌααα·αα·αααααΎαααααΆαααΆαααααααααααααααΎααΆααααααααΆααΆαααααα:
$ tkn pipeline logs -f
αα ααααααααααααααα αΌααααααααΆαα αΆααααααΎα α αΎααααααα·ααΈααααΌαααΆαααΆααα±ααααααΎααααΆαα ααΎαα’αΆα ααααΎαα»αααααΌααααααΆααααααααΆααααααααΎααΆααααααααΆααΌα ααΆααααααα
$ oc get route react-pipeline-example --template='http://{{.spec.host}}'
αααααΆααααΆαααΎαααΎαααΆααααα αααΆαα α’αααα’αΆα ααΎααααααααααααΎααα αααα»αααααα’αααα’αα·αααααααααα»αααΌαααα ααααααα αααα»αααααα αααααααΌα αααααΆααααα αΆααα αααα»αααΌαααα α‘.
ααΌα α‘. ααΆααα·αα·αααα‘αΎααα·ααααααααααααααα»αααααΎαααΆαα
ααΆαα α»α ααΎαααααααααααα»αααααΎαααΆααααα αΆαααααααΆααααα’α·ααααααα ααΌα αααα αΆααααα»αααΌαααΆαααΈ 2 α
α’ααααα 2. ααααααΆαααααααα’αααΈααααααααα αΌααααααα
αααααΆααααΈααααααΆααααααα α’αααα’αΆα ααΎααααααα·ααΈααααααα»αααααΎαααΆααα αααα»ααα·αααααΆα TopologyααΌα αααααΆααααα αΆααααα»αααΌαααΆαααΈ 3 α
ααΌαααΈ 3. α αΆααααααΎαααα
α α»α ααΎαααααααα αααα»αααΆαααααΆαααΆαααΎααααΌαααααΆαααΎααααααα·ααΈααααααΎα ααΌα αααααΆααααα αΆααααα»αααΌαααΈ 4 α
α’ααααα 4. αααα»αααααΎαααΆααααααα·ααΈ React α
ααα ααααΈααααα·ααααΆα
ααΌα
αααα ααΎαααΆααααα αΆαααΈααααααααΎαααΆααααΆαααΈαααα’αα·αααααααααααΆαααααααα·ααΈααααα’ααααα
ααΎ OpenShift α αΎαααααΎααααΆαααααααΆααΆαα½αααααααααα―αααΆαααΌαααααΆαα ααΎαααααΆαααΎαααΈαααααααααααααΎααααΌαααααΎααααααααααΆαααααααααΎ OpenShift Pipelines α ααΌαα§ααΆα αααααΆααα’ααααΈα’ααααααααα’αΆα
ααααΆα
ααααΆααααααα (EN)
- ααααα
α’αα‘α·α
ααααΌαα·α
α₯ααα·ααααα
"ααΆαα’αα·ααααααααΎ OpenShift: ααΆαααααΆααααααΆααα’ααααα·αα ααα’ααααααα" ααΆααααααΎααααααα·ααΈ Node.js ααααααααααΎαα»αααΊααααααααααΎ Red Hat OpenShift Application Runtimes αα·α Istio ααΆαααααΆααααα α»ααααααα·ααΈ Node.js αα ααΎ OpenShift αααααααΎ Chrome DevTools ααΆααααααααΆααΈααΎααααΈααααΎααΆααα αΆαα Express αα ααΎ OpenShift ααΈααα ααα ααααΈαααααΆααααααααααα’αΆα ααααΎααΆαααΆααΌαα αα Node.js αααααΆααααααα½ααα Red Hat OpenShift Application Runtimes ααΆααααα½ααα·αα·ααααααααα·ααΈ Node.js αα ααΎ OpenShift ααΆαα½α Prometheus - α’ααααααααααααααα
ααΎ
OpenShift αα·α Kubernetes αα ααΎααα ααααα Red Hat
ααα ααααΈαααααΆαα’αααΈ webinars ααΆαααααΆααα»α
ααΎαβαααα»αβα αΆααααααΎαβααααβαα·ααααΆααΆααΆβαα βααααβαα»αααβα’αααΈβαααα·αααααβααΎαβαααβααααΎ Red Hat OpenShift Container Platform αα·α Kubernetesα
ααααααΈ 28 ααααΈα αΆ ααΆααα·ααααΆααΆααΆααΎαααααΆαα’αα·ααΆα "ααααα·ααααα·αα"α ααααα·ααααα·αααα αααα»α OpenShift αα·α Kubernetes ααααααΈ 11 αααααααΆ DeploymentConfig vs Deployment β ββOpenShift-specific magic αααααΆααααΆααααΆα αα·αααΆαααααααΆααααααα·ααΈ ααααααΈ 25 αααααααΆ Red Hat OpenShift αα·α Machine API ααααααΈ 9 αααα»ααΆ ααααααααααααΉαααΆαααΎαα‘αΎαααααΆααααααααα»αααΆαααΆα ααααααΈ 23 αααα»ααΆ Embedded Jenkins, Pipeline-builds, Tekton in Red Hat OpenShift Container Platform
ααααα: www.habr.com