OpenShift تي جديد ايپليڪيشنون، حصو 3: OpenShift هڪ ترقياتي ماحول ۽ OpenShift پائپ لائنز جي طور تي

هيلو هرڪو هن بلاگ تي! هي هڪ سيريز ۾ ٽيون پوسٽ آهي جنهن ۾ اسين ڏيکاريون ٿا ته جديد ويب ايپليڪيشنن کي ڪيئن لڳايو وڃي Red Hat OpenShift تي.

OpenShift تي جديد ايپليڪيشنون، حصو 3: OpenShift هڪ ترقياتي ماحول ۽ OpenShift پائپ لائنز جي طور تي

پوئين ٻن پوسٽن ۾، اسان ڏيکاريو ته جديد ويب ايپليڪيشنن کي صرف چند قدمن ۾ ڪيئن لڳايو وڃي ۽ ڪيئن استعمال ڪجي نئين S2I تصوير سان گڏ هڪ آف-دي-شيلف HTTP سرور تصوير، جهڙوڪ NGINX، پيداوار جي ترتيبن کي ترتيب ڏيڻ لاءِ زنجير ٺهيل استعمال ڪندي. .

اڄ اسين ڏيکارينداسين ته توهان جي ايپليڪيشن لاءِ ڊولپمينٽ سرور ڪيئن هلائجي OpenShift پليٽ فارم تي ۽ ان کي مقامي فائل سسٽم سان هم وقت سازي ڪجي، ۽ ان بابت پڻ ڳالهائينداسين ته OpenShift پائپ لائنون ڇا آهن ۽ انهن کي ڳنڍيل اسيمبلين جي متبادل طور ڪيئن استعمال ڪري سگهجي ٿو.

OpenShift ترقي جي ماحول جي طور تي

ترقياتي ڪم فلو

جيئن اڳ ۾ چيو ويو آهي پهرين پوسٽ، جديد ويب ايپليڪيشنن لاءِ عام ڊولپمينٽ وارو عمل صرف ڪجهه قسم جو ”ڊوولپمينٽ سرور“ آهي جيڪو مقامي فائلن ۾ تبديلين کي ٽريڪ ڪري ٿو. جڏهن اهي ٿين ٿا، ايپليڪيشن جي تعمير شروع ڪئي وئي آهي ۽ پوء اهو برائوزر ڏانهن اپڊيٽ ڪيو ويو آهي.

اڪثر جديد فريم ورڪ ۾، اهڙي "ترقي سرور" سان لاڳاپيل ڪمانڊ لائين اوزار ۾ ٺهيل آهي.

مقامي مثال

پهرين، اچو ته ڏسو ته اهو ڪيئن ڪم ڪري ٿو جڏهن ايپليڪيشنون مقامي طور تي هلائي رهيون آهن. اچو ته ايپليڪيشن کي مثال طور وٺون تصديق ڪريو پوئين مضمونن مان، جيتوڻيڪ لڳ ڀڳ ساڳيو ڪم فلو تصور ٻين سڀني جديد فريم ورڪ ۾ لاڳو ٿئي ٿو.
تنهن ڪري، اسان جي رد عمل جي مثال ۾ "dev سرور" شروع ڪرڻ لاء، اسان هيٺ ڏنل حڪم داخل ڪنداسين:

$ npm run start

پوءِ ٽرمينل ونڊو ۾ اسان ڪجھه ڏسنداسين:

OpenShift تي جديد ايپليڪيشنون، حصو 3: OpenShift هڪ ترقياتي ماحول ۽ OpenShift پائپ لائنز جي طور تي

۽ اسان جي ايپليڪيشن ڊفالٽ برائوزر ۾ کلي ويندي:

OpenShift تي جديد ايپليڪيشنون، حصو 3: OpenShift هڪ ترقياتي ماحول ۽ OpenShift پائپ لائنز جي طور تي

هاڻي، جيڪڏهن اسان فائل ۾ تبديليون ڪيون، ايپليڪيشن کي برائوزر ۾ تازه ڪاري ڪرڻ گهرجي.

ٺيڪ، مقامي موڊ ۾ ترقي سان سڀ ڪجهه واضح آهي، پر OpenShift تي ساڳيو ڪيئن حاصل ڪجي؟

OpenShift تي ڊولپمينٽ سرور

جيڪڏهن توهان کي ياد آهي، ۾ پوئين پوسٽ، اسان S2I تصوير جي نام نهاد رن واري مرحلي کي ڏٺو ۽ ڏٺو ته ڊفالٽ طور، سرو ماڊل اسان جي ويب ايپليڪيشن جي خدمت لاءِ ذميوار آهي.

بهرحال، جيڪڏهن توهان هڪ ويجهي نظر وٺو اسڪرپٽ هلائڻ انهي مثال مان، اهو $NPM_RUN ماحوليات تي مشتمل آهي، جيڪو توهان کي توهان جي حڪم تي عمل ڪرڻ جي اجازت ڏئي ٿو.

مثال طور، اسان استعمال ڪري سگھون ٿا نوڊ شفٽ ماڊل اسان جي ايپليڪيشن کي ترتيب ڏيڻ لاء:

$ npx nodeshift --deploy.env NPM_RUN="yarn start" --dockerImage=nodeshift/ubi8-s2i-web-app

نوٽ: مٿيون مثال عام خيال کي واضح ڪرڻ لاءِ مختصر ڪيو ويو آهي.

هتي اسان پنهنجي ڊيپلائيمينٽ ۾ NPM_RUN ماحوليات جي تبديلي کي شامل ڪيو آهي، جيڪو رن ٽائم کي ٻڌائي ٿو يارن اسٽارٽ ڪمانڊ کي هلائڻ لاءِ، جيڪو اسان جي OpenShift پوڊ اندر React ڊولپمينٽ سرور کي شروع ڪري ٿو.

جيڪڏهن توهان هڪ هلندڙ پوڊ جي لاگ کي ڏسو، اهو ڪجهه هن طرح نظر ايندو:

OpenShift تي جديد ايپليڪيشنون، حصو 3: OpenShift هڪ ترقياتي ماحول ۽ OpenShift پائپ لائنز جي طور تي

يقينن، اهو سڀ ڪجهه نه ٿيندو جيستائين اسان مقامي ڪوڊ کي ڪوڊ سان هم وقت سازي ڪري سگهون ٿا، جيڪو پڻ تبديلين جي نگراني آهي، پر ريموٽ سرور تي رهي ٿو.

ريموٽ ۽ مقامي ڪوڊ کي هم وقت سازي ڪرڻ

خوشقسمتيء سان، 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 تي جديد ايپليڪيشنون، حصو 3: OpenShift هڪ ترقياتي ماحول ۽ OpenShift پائپ لائنز جي طور تي

اڳتي اسان هڪ اوزار جي باري ۾ ڳالهائينداسين جهڙوڪ OpenShift Pipelines ۽ اهو ڪيئن استعمال ڪري سگهجي ٿو هڪ متبادل طور تي زنجير ٿيل تعميرن جي.

OpenShift پائپ لائنون ڇا آهن

OpenShift Pipelines هڪ ڪلائوڊ-آبائي CI/CD مسلسل انضمام ۽ ترسيل نظام آهي جيڪو ٽيڪٽن استعمال ڪندي پائپ لائنن کي ترتيب ڏيڻ لاءِ ٺهيل آهي. Tekton هڪ لچڪدار اوپن سورس آهي Kubernetes-آبائي CI/CD فريم ورڪ جيڪو توهان کي مختلف پليٽ فارمن (Kubernetes، سرور کان سواءِ، ورچوئل مشينن وغيره) تي ترتيب ڏيڻ کي خودڪار ڪرڻ جي اجازت ڏئي ٿو.

ھن مضمون کي سمجھڻ لاءِ پائپ لائنز جي ڪجھ ڄاڻ جي ضرورت آھي، تنھنڪري اسان زور ڀريو ٿا ته توھان پھرين پڙھو سرڪاري درسي ڪتاب.

توهان جي ڪم جي ماحول کي ترتيب ڏيو

هن مضمون ۾ مثالن سان راند ڪرڻ لاء، توهان کي پهريان توهان جي ڪم ڪندڙ ماحول کي تيار ڪرڻ جي ضرورت آهي:

  1. هڪ OpenShift 4 ڪلسٽر انسٽال ۽ ترتيب ڏيو. اسان جا مثال استعمال ڪندا آهن CodeReady Containers (CRD) ان لاءِ، تنصيب جون هدايتون جنهن لاءِ ڳولي سگهجن ٿا هتي.
  2. ڪلستر تيار ٿيڻ کان پوء، توهان کي ان تي پائپ لائن آپريٽر کي نصب ڪرڻو پوندو. ڊپ نه ٿيو، اهو آسان آهي، تنصيب جون هدايتون هتي.
  3. ڊائون لوڊ Tekton CLI (tkn) هتي.
  4. هلايو Create-react-app ڪمانڊ لائن ٽول هڪ ايپليڪيشن ٺاهڻ لاءِ جنهن کي توهان پوءِ ترتيب ڏيندا (هي هڪ سادي ايپليڪيشن آهي تصديق ڪريو).
  5. (اختياري) ريپوزٽري کي ڪلون ڪريو مثال جي ايپليڪيشن کي هلائڻ لاءِ مقامي طور تي npm انسٽال سان ۽ پوءِ شروع ڪريو npm.

ايپليڪيشن جي مخزن ۾ پڻ k8s فولڊر هوندو، جنهن ۾ ڪبرنيٽس/OpenShift YAMLs شامل هوندا جيڪي ايپليڪيشن کي ترتيب ڏيڻ لاءِ استعمال ڪيا ويندا. اتي ٽاسڪ، ڪلسٽر ٽاسڪس، وسيلا ۽ پائپ لائنون هونديون جيڪي اسان هن ۾ ٺاهينداسين ذخيرو.

اچو ته شروع ڪريون

اسان جي مثال لاء پهريون قدم OpenShift ڪلستر ۾ هڪ نئون منصوبو ٺاهڻ آهي. اچو ته هن پروجيڪٽ کي سڏيون webapp-pipeline ۽ ان کي ھيٺ ڏنل حڪم سان ٺاھيو:

$ oc new-project webapp-pipeline

ھن پروجيڪٽ جو نالو بعد ۾ ڪوڊ ۾ ظاھر ٿيندو، تنھنڪري جيڪڏھن توھان ان کي ڪنھن ٻئي نالي جو نالو ڏيڻ جو فيصلو ڪيو، ته مثالي ڪوڊ مطابق تبديل ڪرڻ نه وساريو. هن نقطي کان شروع ڪندي، اسان مٿي کان هيٺ نه وڃون، پر هيٺيون مٿي: اهو آهي، اسان سڀ کان پهريان ڪنويئر جا سڀئي اجزاء ٺاهينداسين، ۽ صرف ان کان پوء خود ڪنويئر.

تنهن ڪري، سڀ کان پهريان ...

ڪم

اچو ته ڪجھ ڪم ٺاھيون، جيڪي پوءِ اسان جي پائپ لائن ۾ ايپليڪيشن کي ترتيب ڏيڻ ۾ مدد ڪندا. پهريون ڪم - apply_manifests_task - انهن Kubernetes وسيلن جي YAML کي لاڳو ڪرڻ جو ذميوار آهي (سروس، تعیناتي ۽ رستو) جيڪي اسان جي ايپليڪيشن جي 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

نوٽ: اهي مقامي ڪم آهن توهان جي موجوده منصوبي لاءِ.

ڪلستر جا ڪم

ڪلستر جا ڪم بنيادي طور تي سادو ڪمن وانگر آهن. اهو آهي، اهو قدمن جو هڪ ٻيهر قابل استعمال مجموعو آهي جيڪو هڪ خاص ڪم کي هلائڻ دوران هڪ طريقي سان يا ٻئي ۾ گڏيل آهي. فرق اهو آهي ته هڪ ڪلستر ڪم ڪلستر جي اندر هر جڳهه موجود آهي. ڪلسٽر ڪمن جي لسٽ ڏسڻ لاءِ جيڪي پاڻمرادو ٺاهيا ويندا آهن جڏهن پائپ لائن آپريٽر کي شامل ڪيو ويندو، اسان ٻيهر استعمال ڪنداسين 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 استعمال ڪندي پنھنجي ايپليڪيشنن کي ترتيب ڏيو ٿا. .

اسان کي اهو سڀ ڪيئن معلوم ٿيو، توهان پڇو؟ کان سرڪاري 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

ڊفالٽ طور، هي پيٽرولر تعمير ڪرڻ جي برابر آهي، جتي ريڪٽ گڏ ڪيل مواد رکي ٿو. ٻيا فريم ورڪ مختلف رستا استعمال ڪن ٿا، مثال طور، ايمبر ۾ اهو ڊسٽ آهي. اسان جي پهرين ڪلستر ٽاسڪ جي پيداوار هڪ تصوير هوندي جنهن ۾ HTML، JavaScript، ۽ CSS اسان گڏ ڪيون.

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. پيرامس سيڪشن ۾ يو آر ايل ڪي مخصوص مخزن ڏانهن اشارو ڪري ٿو ۽ ماسٽر برانچ کي بيان ڪري ٿو (هي اختياري آهي، پر اسان ان کي مڪمل ڪرڻ لاء لکون ٿا).

هاڻي اسان کي تصوير لاء هڪ وسيلو ٺاهڻ جي ضرورت آهي جتي 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 تصويري رجسٽري ڏانهن اشارو ڪري ٿو، خاص طور تي جيڪو ويب ايپ-پائپ لائن نالي جي جاء تي واقع آهي. هن سيٽنگ کي تبديل ڪرڻ نه وساريو جيڪڏهن توهان هڪ مختلف نالي جي جاء استعمال ڪري رهيا آهيو.

۽ آخرڪار، آخري وسيلو جيڪو اسان کي گهربل هجي اهو به قسم جي تصوير جو هوندو ۽ اهو حتمي 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 ۾.

انهن سڀني وسيلن کي هڪ ڀيرو ٺاهڻ لاءِ، اسان استعمال ڪريون ٿا create command:

$ oc create -f https://raw.githubusercontent.com/nodeshift/webapp-pipeline-tutorial/master/resources/resource.yaml

توهان پڪ ڪري سگهو ٿا ته وسيلن کي هن طرح ٺاهيو ويو آهي:

$ tkn resource ls

Conveyor پائيپ لائين

هاڻي ته اسان وٽ سڀئي ضروري جزا آهن، اچو ته انهن مان هڪ پائپ لائن گڏ ڪريون ان کي هيٺ ڏنل حڪم سان ٺاهي:

$ 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

اهو ڪم انپٽ (گر ريسورس) ۽ آئوٽ پُٽ (بلٽ-ويب-ايپليڪيشن-تصوير ريسورس) پيرا ميٽرز وٺندو آهي. اسان ان کي هڪ خاص پيٽرولر پڻ پاس ڪريون ٿا ته جيئن اهو 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

جيئن پوئين ڪم سان، اسان هڪ وسيلا ۾ پاس ڪريون ٿا، پر هاڻي اهو ٺهيل آهي-ويب-ايپليڪيشن-تصوير (اسان جي پوئين ڪم جي پيداوار). ۽ هڪ آئوٽ جي طور تي اسان ٻيهر تصوير کي سيٽ ڪيو. جيئن ته هن ڪم کي پوئين هڪ کان پوء عمل ڪيو وڃي، اسان شامل ڪيو 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

ايندڙ ٻه ڪم اسان جي ويب ايپليڪيشن جي k8s ڊاريڪٽري ۾ رهندڙ YAML فائلن جي سروس، روٽ ۽ ڊيپلائيمينٽ کي استعمال ڪرڻ جا ذميوار آهن، ۽ نيون تصويرون ٺاهڻ وقت هن ڊيپلائيمينٽ کي اپڊيٽ ڪرڻ لاءِ پڻ. اسان مضمون جي شروعات ۾ انهن ٻن ڪلسٽر ڪمن جي وضاحت ڪئي.

ڪنويئر کي شروع ڪندي

تنهن ڪري، اسان جي پائپ لائن جا سڀئي حصا ٺاهيا ويا آهن، ۽ اسان ان کي هيٺ ڏنل حڪم سان هلائينداسين:

$ tkn pipeline start build-and-deploy-react

هن اسٽيج تي، ڪمانڊ لائن استعمال ڪيو ويندو آهي مداخلت سان ۽ توهان کي ان جي هر درخواست جي جواب ۾ مناسب وسيلن کي چونڊڻ جي ضرورت آهي: گٽ وسيلن لاء، چونڊيو ويب-ايپليڪيشن-ريپو، پوء پهرين تصويري وسيلن لاء، بلٽ-ويب-ايپليڪيشن -تصوير، ۽ آخرڪار، ٻئي تصويري وسيلن لاءِ -رن ٽائم-ويب-ايپليڪيشن-تصوير:

? 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}}'

وڌيڪ ڏسڻ لاءِ، توھان ڏسي سگھو ٿا اسان جي پائپ لائن کي ڊولپر موڊ ۾ ويب ڪنسول جي سيڪشن ۾ پوسٽون، جيئن تصوير ۾ ڏيکاريل آهي. 1.

OpenShift تي جديد ايپليڪيشنون، حصو 3: OpenShift هڪ ترقياتي ماحول ۽ OpenShift پائپ لائنز جي طور تي

تصوير 1. هلندڙ پائپ لائنن جو جائزو.

ھلندڙ پائپ لائن تي ڪلڪ ڪرڻ اضافي تفصيل ڏيکاري ٿو، جيئن تصوير 2 ۾ ڏيکاريل آھي.

OpenShift تي جديد ايپليڪيشنون، حصو 3: OpenShift هڪ ترقياتي ماحول ۽ OpenShift پائپ لائنز جي طور تي

چانور. 2. پائپ لائن بابت اضافي معلومات.

وڌيڪ معلومات کان پوء، توهان ڏسي سگهو ٿا هلندڙ ايپليڪيشنون ڏسڻ ۾ ماھر پوزيشنجيئن تصوير 3 ۾ ڏيکاريل آهي.

OpenShift تي جديد ايپليڪيشنون، حصو 3: OpenShift هڪ ترقياتي ماحول ۽ OpenShift پائپ لائنز جي طور تي

تصوير 3. لانچ ٿيل پوڊ.

آئڪن جي مٿي ساڄي ڪنڊ ۾ دائري تي ڪلڪ ڪرڻ سان اسان جي ايپليڪيشن کي کوليندو آهي، جيئن تصوير 4 ۾ ڏيکاريل آهي.

OpenShift تي جديد ايپليڪيشنون، حصو 3: OpenShift هڪ ترقياتي ماحول ۽ OpenShift پائپ لائنز جي طور تي

چانور. 4. رننگ ريڪٽ ايپليڪيشن.

ٿڪل

تنهن ڪري، اسان ڏيکاريو ته توهان جي ايپليڪيشن لاءِ ڊولپمينٽ سرور ڪيئن هلائجي OpenShift تي ۽ ان کي مقامي فائل سسٽم سان هم وقت سازي ڪريو. اسان اهو پڻ ڏٺو ته OpenShift Pipelines استعمال ڪندي هڪ زنجير ٺهيل ٽيمپليٽ کي ڪيئن ٺاهيو. هن مضمون مان سڀئي مثال ڪوڊ ڳولي سگهجن ٿا هتي.

اضافي وسيلن (EN)

ايندڙ ويبنرز جا اعلان

اسان ريڊ Hat OpenShift ڪنٽينر پليٽ فارم ۽ ڪبرنيٽس استعمال ڪندي مقامي تجربي بابت جمعه جي ويبنرز جو هڪ سلسلو شروع ڪري رهيا آهيون:

جو ذريعو: www.habr.com

تبصرو شامل ڪريو