åã®2ã€ã®æçš¿ã§ã¯ãææ°ã®Webã¢ããªã±ãŒã·ã§ã³ããããæ°ã¹ãããã§ãããã€ããæ¹æ³ãšãæ°ããS2Iã€ã¡ãŒãžãNGINXãªã©ã®æ¢è£œã®HTTPãµãŒããŒã€ã¡ãŒãžãšãšãã«äœ¿çšããŠãæ¬çªãããã€ã¡ã³ãã«ãã§ãŒã³ãã«ãã䜿çšããæ¹æ³ã«ã€ããŠèª¬æããŸããã
仿¥ã¯ãOpenShiftãã©ãããã©ãŒã ã§ã¢ããªã±ãŒã·ã§ã³ã®éçºãµãŒããŒãå®è¡ãããããããŒã«ã«ãã¡ã€ã«ã·ã¹ãã ãšåæããæ¹æ³ã瀺ããŸãããŸããOpenShift Pipelinesãšã¯äœãããªã³ã¯ãããã¢ã»ã³ããªã®ä»£ããã«äœ¿çšããæ¹æ³ã«ã€ããŠã説æããŸãã
éçºç°å¢ãšããŠã®OpenShift
éçºã¯ãŒã¯ãããŒ
æåã®æçš¿ã§ èª¬æããããã«ãææ°ã®Webã¢ããªã±ãŒã·ã§ã³ã®äžè¬çãªéçºã¯ãŒã¯ãããŒã¯ãããŒã«ã«ãã¡ã€ã«ã®å€æŽãç£èŠããåãªããéçºãµãŒããŒãã§ããããããçºçãããšãã¢ããªã±ãŒã·ã§ã³ã®ãã«ããéå§ããããã©ãŠã¶ã«æŽæ°ãããŸãã
ææ°ã®ãã¬ãŒã ã¯ãŒã¯ã®ã»ãšãã©ã§ã¯ããã®ãéçºãµãŒããŒãã¯å¯Ÿå¿ããã³ãã³ãã©ã€ã³ããŒã«ã«çµã¿èŸŒãŸããŠããŸãã
ããŒã«ã«ã®äŸ
ãŸããã¢ããªã±ãŒã·ã§ã³ãããŒã«ã«ã§å®è¡ããå Žåã«ãããã©ã®ããã«æ©èœããããèŠãŠã¿ãŸãããã以åã®èšäºã®Reactã¢ããªãäŸãšããŠåãäžããŸãããããã ããåãã¯ãŒã¯ãããŒã®æŠå¿µã®å€ããä»ã®ãã¹ãŠã®ææ°ã®ãã¬ãŒã ã¯ãŒã¯ã«é©çšãããŸãã
ãããã£ãŠãReactã®äŸã§ãéçºãµãŒããŒããèµ·åããã«ã¯ã次ã®ã³ãã³ããçºè¡ããŸãã
$ npm run start
次ã«ãã¿ãŒããã«ãŠã£ã³ããŠã«æ¬¡ã®ãããªãã®ã衚瀺ãããŸãã

ãããŠãã¢ããªã±ãŒã·ã§ã³ã¯ããã©ã«ãã®ãã©ãŠã¶ã§éããŸãã

ããã§ããã¡ã€ã«ã«å€æŽãå ãããšãã¢ããªã±ãŒã·ã§ã³ã¯ãã©ãŠã¶ãŒã§æŽæ°ãããŸãã
OKãããŒã«ã«éçºã§ã¯ãã¹ãŠãæç¢ºã§ãããOpenShiftã§åãããšãéæããã«ã¯ã©ãããã°ããã§ããïŒ
OpenShiftéçºãµãŒããŒ
èŠããŠããããšæããŸãããååã®æçš¿ã§ãS2Iã€ã¡ãŒãžã®ããããå®è¡ãã§ãŒãºãåæããããã©ã«ãã§ãµãŒãã¢ãžã¥ãŒã«ãWebã¢ããªã±ãŒã·ã§ã³ã®ãµãŒãã¹ãæ åœããŠããããšã確èªããŸããã
ãã ãããã®äŸã®å®è¡ã¹ã¯ãªããã詳ããèŠããšã$ NPM_RUNç°å¢å€æ°ãå«ãŸããŠããããšãããããŸããããã«ãããç¬èªã®ã³ãã³ããå®è¡ã§ããŸãã
ããšãã°ãnodeshiftã¢ãžã¥ãŒã«ã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ããããã€ã§ããŸãã
$ npx nodeshift --deploy.env NPM_RUN="yarn start" --dockerImage=nodeshift/ubi8-s2i-web-app
泚ïŒäžèšã®äŸã¯ãäžè¬çãªèãæ¹ã説æããããã«çç¥ãããŠããŸãã
ããã§ã¯ãNPM_RUNç°å¢å€æ°ããããã€ã¡ã³ãã«è¿œå ããŸãããããã¯ãOpenShiftãããå ã§ReactéçºãµãŒããŒãèµ·åããyarnstartã³ãã³ããå®è¡ããããã«ã©ã³ã¿ã€ã ã«æç€ºããŸãã
å®è¡äžã®ãããã®ãã°ãèŠããšã次ã®ãããªãã®ããããŸãã

ãã¡ãããããŒã«ã«ã³ãŒããã倿Žãç£èŠãããŠããããªã¢ãŒããµãŒããŒäžã«ããã³ãŒããšåæã§ããããã«ãªããŸã§ãããã¯ã»ãšãã©äœãèµ·ãããŸããã
ãªã¢ãŒãã³ãŒããšããŒã«ã«ã³ãŒãã®åæ
幞ããnodeshiftã¯åæã«ç°¡åã«åœ¹ç«ã¡ãwatchã³ãã³ãã䜿çšããŠå€æŽã远跡ã§ããŸãã
ãããã£ãŠãã¢ããªã±ãŒã·ã§ã³ã®éçºãµãŒããŒããããã€ããã³ãã³ããå®è¡ããåŸã次ã®ã³ãã³ããå®å šã«äœ¿çšã§ããŸãã
$ 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
watchã³ãã³ãã¯ãoc rsyncã³ãã³ããæœè±¡åãããã®ã§ãããããã§ã©ã®ããã«æ©èœãããã«ã€ããŠè©³ããç¥ãããšãã§ããŸãã
ããã¯Reactã®äŸã§ãããä»ã®ãã¬ãŒã ã¯ãŒã¯ã§ããŸã£ããåãæ¹æ³ã䜿çšã§ããŸããå¿ èŠã«å¿ããŠNPM_RUNç°å¢å€æ°ãèšå®ããã ãã§ãã
â
ãªãŒãã³ã·ãããã€ãã©ã€ã³

次ã«ãOpenShift Pipelinesã®ãããªããŒã«ãšãããããã§ãŒã³ãã«ãã®ä»£ããã«äœ¿çšããæ¹æ³ã«ã€ããŠèª¬æããŸãã
OpenShiftãã€ãã©ã€ã³ãšã¯
OpenShift Pipelinesã¯ãTektonã䜿çšããŠãã€ãã©ã€ã³ãç·šæããããã®ã¯ã©ãŠãããŒã¹ã®CI / CDç¶ç¶ççµ±åããã³é ä¿¡ã·ã¹ãã ã§ããTektonã¯ãæè»ãªãªãŒãã³ãœãŒã¹ã®Kubernetesãã€ãã£ãCI / CDãã¬ãŒã ã¯ãŒã¯ã§ãããåºç€ãšãªãã¬ã€ã€ãŒããæœè±¡åããããšã«ããããã©ãããã©ãŒã ïŒKubernetesããµãŒããŒã¬ã¹ãä»®æ³ãã·ã³ãªã©ïŒå šäœã®å±éãèªååããŸãã
ãã®èšäºãçè§£ããã«ã¯ããã€ãã©ã€ã³ã«é¢ããããçšåºŠã®ç¥èãå¿ èŠã§ãããã®ãããæåã«å ¬åŒãã¥ãŒããªã¢ã«ãèªãããšã匷ããå§ãããŸãã
äœæ¥ç°å¢ã®èšå®
ãã®èšäºã®äŸã詊ãã«ã¯ãæåã«å®çšŒåç°å¢ãæºåããå¿ èŠããããŸãã
- OpenShift 4. CodeReady Containers (CRD), .
- , , Pipeline Operator. , , .
- Tekton CLI (tkn) .
- create-react-app, , ( React).
- () , npm install npm start.
ã¢ããªã±ãŒã·ã§ã³ãªããžããªã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã®å±éã«äœ¿çšãããKubernetes / OpenShiftYAMLãé 眮ãããk8sãã©ã«ãããããŸãããã®ãªããžããªã«äœæããã¿ã¹ã¯ãClusterTasksããªãœãŒã¹ãããã³ãã€ãã©ã€ã³ããããŸãã
å§ããŸããã
ãã®äŸã®æåã®ã¹ãããã¯ãOpenShiftã¯ã©ã¹ã¿ãŒã«æ°ãããããžã§ã¯ããäœæããããšã§ãããã®ãããžã§ã¯ããwebapp-pipelineãšåŒã³ã次ã®ã³ãã³ãã§äœæããŸãããã
$ oc new-project webapp-pipeline
ããã«ããããžã§ã¯ãã®ãã®ååãã³ãŒãã«è¡šç€ºããããããå¥ã®ååãä»ããå Žåã¯ãäŸã®ã³ãŒããé©å®ç·šéããããšãå¿ããªãã§ãã ããããã®æç¹ãããäžããäžã«ç§»åããã®ã§ã¯ãªããäžããäžã«ç§»åããŸããã€ãŸããæåã«ã³ã³ãã€ãŒã®ãã¹ãŠã®ã³ã³ããŒãã³ããäœæããæ¬¡ã«ããèªäœãäœæããŸãã
ã ããããŸã第äžã«...
ã¿ã¹ã¯
ãã€ãã©ã€ã³å ã«ã¢ããªã±ãŒã·ã§ã³ããããã€ããã®ã«åœ¹ç«ã€ããã€ãã®ã¿ã¹ã¯ãäœæããŸããããæåã®ã¿ã¹ã¯ïŒapply_manifests_taskïŒã¯ãã¢ããªã±ãŒã·ã§ã³ã®k8sãã©ã«ããŒã«ããKubernetesãªãœãŒã¹ïŒãµãŒãã¹ããããã€ã¡ã³ããããã³ã«ãŒãïŒã«YAMLãé©çšãã圹å²ãæãããŸãã2çªç®ã®ã¿ã¹ã¯ïŒ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
泚ïŒãããã¯çŸåšã®ãããžã§ã¯ãã®ããŒã«ã«ã¿ã¹ã¯ã§ãã
ã¯ã©ã¹ã¿ãŒã¿ã¹ã¯
ã¯ã©ã¹ã¿ãŒåãããã¿ã¹ã¯ã¯ãåºæ¬çã«åçŽãªã¿ã¹ã¯ãšåãã§ããã€ãŸããç¹å®ã®ã¿ã¹ã¯ãéå§ãããšãã«äœããã®æ¹æ³ã§çµã¿åãããããåå©çšå¯èœãªã¹ãããã®ã³ã¬ã¯ã·ã§ã³ã§ããéãã¯ãã¯ã©ã¹ã¿ãŒã¿ã¹ã¯ãã¯ã©ã¹ã¿ãŒå ã®ã©ãã§ãå©çšã§ããããšã§ãããã€ãã©ã€ã³ãªãã¬ãŒã¿ã远å ããããšãã«èªåçã«äœæãããã¯ã©ã¹ã¿ã¿ã¹ã¯ã®ãªã¹ãã衚瀺ããã«ã¯ãããäžåºŠtknCLIã³ãã³ãã䜿çšããŸãã
$ 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
次ã«ã2ã€ã®ã¯ã©ã¹ã¿ãŒã¿ã¹ã¯ãäœæããŸãããã1ã€ç®ã¯ãS2Iã€ã¡ãŒãžãçæãããããå éšOpenShiftã¬ãžã¹ããªã«éä¿¡ããŸãã2ã€ç®ã¯ãã³ã³ãã³ããšããŠæ¢ã«ã¢ã»ã³ãã«ããã¢ããªã±ãŒã·ã§ã³ã䜿çšããŠãNGINXããŒã¹ã®ã€ã¡ãŒãžãæ§ç¯ããããšã§ãã
ç»åãäœæããŠéä¿¡ãã
æåã®ã¿ã¹ã¯ãäœæãããšãã¯ããªã³ã¯ãããã¢ã»ã³ããªã«é¢ããåã®èšäºã§ãã§ã«è¡ã£ãããšãç¹°ãè¿ããŸãã S2Iã€ã¡ãŒãžïŒubi8-s2i-web-appïŒã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ãããã«ããããæçµçã«ã€ã¡ãŒãžãå éšOpenShiftã¬ãžã¹ããªã«ä¿åãããããšãæãåºããŠãã ãããããã§ãWebã¢ããªã±ãŒã·ã§ã³ã®ãã®S2Iã€ã¡ãŒãžã䜿çšããŠãã¢ããªã±ãŒã·ã§ã³ã®DockerFileãäœæããBuildahã䜿çšããŠå®éã®ãã«ããå®è¡ããçµæã®ã€ã¡ãŒãžãå éšOpenShiftã¬ãžã¹ããªã«ããã·ã¥ããŸããããã¯ãOpenShiftããããã€ãããšãã«è¡ãããšãšãŸã£ããåãã§ãã NodeShiftã䜿çšããã¢ããªã±ãŒã·ã§ã³ã
ã©ããã£ãŠããããã¹ãŠç¥ã£ãã®ã§ããïŒå ¬åŒNode.jsã®å ¬åŒããŒãžã§ã³ããããããã³ããŒããŠèªåãã¡ã§å®æãããŸããã
ããã§ã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
ããã©ã«ãã§ã¯ããã®ãã©ã¡ãŒã¿ãŒã¯ãã«ãã«èšå®ãããŠããŸãããã«ãã¯ãReactãåéããã³ã³ãã³ããé 眮ããå Žæã§ããä»ã®ãã¬ãŒã ã¯ãŒã¯ã¯ç°ãªããã¹ã䜿çšããŸããããšãã°ãEmberã¯distã䜿çšããŸããæåã®ã¯ã©ã¹ã¿ãŒã¿ã¹ã¯ã®åºåã¯ãåéããHTMLãJavaScriptãããã³CSSãå«ãç»åã«ãªããŸãã
NGINXã«åºã¥ããŠã€ã¡ãŒãžãæ§ç¯ãã
2çªç®ã®ã¯ã©ã¹ã¿ãŒã¿ã¹ã¯ã«ã€ããŠã¯ãæ¢ã«åéããã¢ããªã±ãŒã·ã§ã³ã®ã³ã³ãã³ãã䜿çšããŠã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ã§ããparamsã»ã¯ã·ã§ã³ã®urlããŒã¯ãç¹å®ã®ãªããžããªãæãããã¹ã¿ãŒãã©ã³ããèšå®ããŸãïŒããã¯ãªãã·ã§ã³ã§ãããå®å šãæãããã«èšè¿°ããŸãïŒã
次ã«ã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ã¯imageã¿ã€ãã§ãããurlãã©ã¡ãŒã¿ãŒå€ã¯å éšã®OpenShift Image Registryãç¹ã«webapp-pipelineåå空éå ã®ã¬ãžã¹ããªãæããŸããå¥ã®åååã䜿çšããŠããå Žåã¯ããã®ãã©ã¡ãŒã¿ãŒã倿Žããããšãå¿ããªãã§ãã ããã
ãããŠæåŸã«ãå¿ èŠãªæåŸã®ãªãœãŒã¹ãã€ã¡ãŒãžã¿ã€ãã§ããããããæçµçãª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
ç¹°ãè¿ãã«ãªããŸããããã®ãªãœãŒã¹ã¯ãwebapp-pipelineåååã®å éšOpenShiftã¬ãžã¹ããªã«ã€ã¡ãŒãžãæ ŒçŽããŠããããšã«æ³šæããŠãã ããã
ããããã¹ãŠã®ãªãœãŒã¹ãäžåºŠã«äœæããã«ã¯ãcreateã³ãã³ãã䜿çšããŸãã
$ 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:
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-resourceïŒããã³åºåïŒbuilt-web-application-image resourceïŒãã©ã¡ãŒã¿ãŒãåããŸãããŸããèªå·±çœ²åèšŒææžã䜿çšããŠããããã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ã¯ã©ã¹ã¿ãŒã¿ã¹ã¯ãåŒã³åºãããŸãã
name: build-runtime-image
taskRef:
name: webapp-build-runtime
kind: ClusterTask
åã®ã¿ã¹ã¯ãšåæ§ã«ããªãœãŒã¹ãæž¡ããŸãããããã¯built-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
次ã®2ã€ã®ã¿ã¹ã¯ã¯ãWebã¢ããªã±ãŒã·ã§ã³ã®k8sãã£ã¬ã¯ããªã«ãããµãŒãã¹ãã«ãŒããããã³ãããã€ã¡ã³ãã«YAMLãã¡ã€ã«ãé©çšããæ°ããã€ã¡ãŒãžãäœæãããšãã«ãã®ãããã€ã¡ã³ããæŽæ°ãã圹å²ãæãããŸããèšäºã®åé ã§ãããã2ã€ã®ã¯ã©ã¹ã¿ãŒã¿ã¹ã¯ãèšå®ããŸããã
ã³ã³ãã€ãŒã®å®è¡
ãããã£ãŠããã€ãã©ã€ã³ã®ãã¹ãŠã®éšåãäœæãããæ¬¡ã®ã³ãã³ãã§éå§ããŸãã
$ tkn pipeline start build-and-deploy-react
ãã®æ®µéã§ã¯ãã³ãã³ãã©ã€ã³ãã€ã³ã¿ã©ã¯ãã£ãã«äœ¿çšãããåãªã¯ãšã¹ãã«å¿ããŠé©åãªãªãœãŒã¹ãéžæããå¿ èŠããããŸããgitãªãœãŒã¹ã®å Žåã¯web-application-repoãéžæããæåã®ã€ã¡ãŒãžã®ãªãœãŒã¹ã®å Žåã¯built-web-application-imageãéžæããæåŸã«2çªç®ã®ç»åãªãœãŒã¹â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}}'
èŠãããããããã«ãå³ã«ç€ºãããã«ããã€ãã©ã€ã³ã»ã¯ã·ã§ã³ã®Webã³ã³ãœãŒã«ã®éçºè ã¢ãŒãã§ãã€ãã©ã€ã³ã衚瀺ã§ããŸãã1.1ã

å³1ãå®è¡äžã®ãã€ãã©ã€ã³ã®æŠèŠã
å³2ã«ç€ºãããã«ãå®è¡äžã®ãã€ãã©ã€ã³ãã¯ãªãã¯ãããšãè¿œå æ å ±ã衚瀺ãããŸãã

å³ïŒ2.ãã€ãã©ã€ã³ã«é¢ãã詳现æ å ±ã
詳现ã確èªãããšãå³3ã«ç€ºãããã«ãå®è¡äžã®ã¢ããªã±ãŒã·ã§ã³ãããããžãã¥ãŒã«è¡šç€ºãããŸãã

å³3.å®è¡äžã®ãããã
å³4ã«ç€ºãããã«ãã¢ã€ã³ã³ã®å³äžé ã«ããåãã¯ãªãã¯ãããšãã¢ããªã±ãŒã·ã§ã³ãéããŸãã

å³ïŒ4.Reactã¢ããªã±ãŒã·ã§ã³ãèµ·åããŸããã
çµè«
ããã§ãOpenShiftã§ã¢ããªã±ãŒã·ã§ã³ã®éçºãµãŒããŒãå®è¡ããããŒã«ã«ãã¡ã€ã«ã·ã¹ãã ãšåæããæ¹æ³ã瀺ããŸããããŸããOpenShiftPipelinesã䜿çšããŠãã§ãŒã³ãã«ããã³ãã¬ãŒããæš¡å£ããæ¹æ³ã«ã€ããŠã説æããŸããããã®èšäºã®ãã¹ãŠã®ãµã³ãã«ã³ãŒãã¯ãããã«ãããŸãã
远å ãªãœãŒã¹ïŒENïŒ
- ç¡æã®é»åæžç±ãOpenShiftã䜿çšããéçºïŒãã£ãã¡ãªäººã®ããã®ã¬ã€ãã
- Red Hat OpenShift Application RuntimesãšIstioã䜿çšããŠãã³ã³ããæåã®Node.jsã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããŸã
- ChromeDevToolsã䜿çšããOpenShiftã§ã®Node.jsã¢ããªã®ãããã°
- OpenShiftã§Expressãæåãããã¹ã¿ãŒããããã®3ã€ã®ã³ãã³ã
- Red HatOpenShiftã¢ããªã±ãŒã·ã§ã³ã©ã³ã¿ã€ã ã®äžéšãšããŠNode.jsã®ãããªãã¯ããŒãžã§ã³ãçºè¡š
- Prometheusã䜿çšããOpenShiftã§ã®Node.jsã¢ããªã±ãŒã·ã§ã³ã®ç£èŠ
- äžã®èšäºOpenShiftãšKubernetes Red Hatã®äž
ä»åŸã®ãŠã§ãããŒã®çºè¡š
Red Hat OpenShift Container PlatformãšKubernetesã®ãã€ãã£ããšã¯ã¹ããªãšã³ã¹ã«é¢ããäžé£ã®éææ¥ã®ãŠã§ãããŒãéå§ããŸãã
- 8æ28æ¥ããŠã§ãããŒçåžããªãã¬ãŒã¿ãŒãïŒOpenShiftãšKubernetesã®ãªãã¬ãŒã¿ãŒ
- 9æ11æ¥ãDeploymentConfigãšDeployment-ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããã³å±éããããã®OpenShiftåºæã®éæ³
- 9æ25æ¥ãRed HatOpenShiftããã³MachineAPI
- 10æ9æ¥çªç¶ã®è² è·å¢å ã«å¯ŸåŠããæ¹æ³
- 10æ23æ¥ãåã蟌ã¿Jenkinsããã€ãã©ã€ã³ãã«ããRed Hat OpenShift ContainerPlatformã®Tekton