Ka hangaia e matou he mahi tuku ki te GKE kaore he monomai, he SMS, he rehitatanga ranei. Me titiro ki raro i te koti o Jenkins

I timata te katoa i te wa i tono mai te kaiarahi o tetahi o o matou roopu whanaketanga ki te whakamatau i ta raatau tono hou, i mauhia i te ra i mua. I whakairihia e ahau. I muri tata ki te 20 meneti, ka tae mai he tono ki te whakahou i te tono, na te mea he mea tino tika kua taapirihia ki reira. I whakahoutia e ahau. Whai muri i etahi atu haora e rua... kaati, ka taea e koe te whakaaro he aha nga mea ka timata i muri mai...

Me whakaae ahau, he mangere ahau (kaore au i whakaae i tenei i mua atu? Kao?), me te mea ka whai waahi nga kaiarahi o te roopu ki a Jenkins, kei a tatou katoa nga CI/CD, ka whakaaro ahau: me tuku ia hei te nui o tana hiahia! I mahara ahau ki tetahi kata: hoatu he ika ki te tangata ka kai ia mo te ra kotahi; karangahia he tangata Fed ka whangai ia i tona oranga katoa. Na ka haere takaro tinihanga i runga i te mahi, ka taea ki te toha i tetahi ipu kei roto te tono o tetahi putanga kua oti te hanga ki Kuber me te whakawhiti i nga uara ki reira ENV (Ko taku koroua, he kaimätai hinengaro, he kaiako reo Ingarihi i mua, ka huri i tana maihao ki tona whare tapu, ka tino titiro mai ki ahau i muri i te panuitanga o tenei rerenga korero).

Na, i roto i tenei tuhipoka ka korero ahau ki a koe me pehea taku ako:

  1. Whakahouhia nga mahi i Jenkins mai i te mahi ake, mai i etahi atu mahi ranei;
  2. Hono atu ki te papatohu kapua (Cloud shell) mai i tetahi pona kua whakauruhia te kaihoko Jenkins;
  3. Tukuna te uta mahi ki a Google Kubernetes Engine.


Ko te mea pono, he ahua kino ahau. Ko te whakaaro kei a koe tetahi waahanga iti rawa o nga hanganga kei roto i te kapua Google, na reira, ko koe tana kaiwhakamahi, he pono, he putea GCP koe. Engari ehara i te mea ko te korero tenei.

Ko taku pepa tinihanga e whai ake nei. Ko taku hiahia anake ki te tuhi i nga korero penei i roto i tetahi keehi: I raru ahau, i te tuatahi kaore au i mohio me pehea te whakaoti, kaore i te rapuhia te otinga ki te google, no reira ka rapuhia e au etahi waahanga ka mutu te raru. A, i te wa kei te heke mai, ka wareware ahau ki taku mahi, kaore au e rapu i nga mea katoa ki te google i nga waahanga katoa ka whakahiatohia, ka tuhia e au nga pepa tinihanga.

Whakakape: 1. I tuhia te tuhipoka "mo ahau", mo te mahi mahi pai e kore e tono. Kei te koa ahau ki te panui i nga whiringa "he pai ake te mahi penei" i roto i nga korero.
2. Mena ka kiia he tote te waahanga tono o te tuhipoka, ka rite ki aku korero katoa o mua, he otinga tote ngoikore tenei.

Te whakahōu hihiko i nga tautuhinga mahi i Jenkins

Ka kite au i to patai: he aha te hononga o te whakahou mahi hihiri? Whakauruhia te uara o te tawhā aho ā-ringa ka haere koe!

Ka whakautu ahau: He tino mangere ahau, kaore au e pai ki te amuamu ratou: Misha, kua pakaru te tuku, kua ngaro nga mea katoa! Ka timata koe ki te titiro, a he hapa te uara o etahi tawhā whakarewatanga mahi. Na reira, pai ake ahau ki te mahi i nga mea katoa kia pai. Mena ka taea te aukati i te kaiwhakamahi ki te whakauru tika i nga raraunga ma te tuku i te rarangi o nga uara hei whiriwhiri, katahi ka whakarite au i te kowhiringa.

Ko te mahere ko tenei: ka hangaia e matou he mahi ki Jenkins, i mua i te whakarewatanga, ka taea e matou te kowhiri i tetahi putanga mai i te raarangi, ka tohua nga uara mo nga tawhā ka tukuna ki te ipu ma ENV, ka kohia te ipu ka pana ki roto i te Rehita Ipu. Na mai i reira ka whakarewahia te ipu ki te cuber as taumaha me nga tawhā kua tohua i roto i te mahi.

E kore matou e whai whakaaro ki te hanga me te whakatuu mahi ki Jenkins, kei waho tenei kaupapa. Ka whakaaro tatou kua reri te mahi. Hei whakatinana i tetahi rarangi whakahou me nga putanga, e rua nga mea e hiahiatia ana: he rarangi puna o mua me nga tau putanga whaimana me te taurangi penei Tawhā whiriwhiri i roto i te mahi. I roto i ta maatau tauira, me whakaingoatia te taurangi BUILD_VERSION, e kore matou e korero mo nga korero. Engari kia ata titiro ki te rarangi puna.

Kaore i te maha nga whiringa. E rua nga mea i mahara tonu:

  • Whakamahia te API uru Mamao e tukuna ana e Jenkins ki ona kaiwhakamahi;
  • Tonoa nga ihirangi o te kōpaki rokiroki mamao (i roto i ta maatau ko JFrog Artifactory tenei, ehara i te mea nui).

API uru Mamao Jenkins

E ai ki nga tikanga tino pai kua whakaritea, ka pai ake ahau ki te karo i nga whakamarama roa.
Ka tuku noa ahau i te whakamaoritanga kore utu o tetahi waahanga o te whiti tuatahi wharangi tuatahi o nga tuhinga API:

Ka whakaratohia e Jenkins he API mo te uru atu ki te miihini-marama ki tana mahi. <…> Ka tukuna te uru mamao i roto i te ahua o te REST. Ko te tikanga karekau he waahi urunga ki nga ahuatanga katoa, engari he URL penei ".../api/", Kei hea"..." te tikanga o te ahanoa e whakamahia ai nga kaha API.

I etahi atu kupu, mena kei te waatea te mahi tohatoha e korerohia nei e matou i tenei wa http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_build, ka watea mai nga whiowhio API mo tenei mahi i http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_build/api/

I muri mai, ka whai waahi taatau ki te ahua o te whakaputanga. Kia arotahi tatou ki te XML, na te mea ka taea e te API anake te tātari i tenei keehi.

Me ngana noa ki te tiki rarangi o nga mahi katoa. Kei te aro noa matou ki te ingoa hui (ingoa whakaatu) me ona hua (hua):

http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_build/api/xml?tree=allBuilds[displayName,result]

I puta mai?

Inaianei me tātari noa nga oma ka mutu ki te hua Tuhinga. Me whakamahi te tautohe &whakakore a hei tawhā ka tukuna e matou te ara ki te uara kore e rite ki Tuhinga. Ae Ae. He korero toraro takirua. Ka whakakorehia e matou nga mea katoa kaore e pai ki a matou:

http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_build/api/xml?tree=allBuilds[displayName,result]&exclude=freeStyleProject/allBuild[result!='SUCCESS']

Whakaahuamata o te rarangi o nga mea angitu
Ka waihangahia e matou he mahi tuku ki te GKE kaore he monomai, he SMS, he rehitatanga ranei. Me titiro ki raro i te koti o Jenkins

Ana, mo te ngahau noa, kia mohio tatou kaore te tātari i whakapohehe ia tatou (kaore nga tātari e teka!) me te whakaatu i te rarangi o nga "kaore i angitu":

http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_build/api/xml?tree=allBuilds[displayName,result]&exclude=freeStyleProject/allBuild[result='SUCCESS']

Whakaahuamata o te rarangi o nga mea kaore i angitu
Ka waihangahia e matou he mahi tuku ki te GKE kaore he monomai, he SMS, he rehitatanga ranei. Me titiro ki raro i te koti o Jenkins

Rarangi o nga putanga mai i te kōpaki kei runga i te tūmau mamao

He huarahi tuarua ki te tiki rarangi o nga putanga. He pai ake ki a au i te uru atu ki te Jenkins API. Kaati, na te mea i pai te hanga o te tono, ko te tikanga he mea kapi ka tuu ki roto i te putunga i roto i te kōpaki e tika ana. Ka rite ki, he putunga ko te rokiroki taunoa o nga putanga mahi o nga tono. Pērā. Ana, me patai atu ki a ia he aha nga putanga kei roto i te rokiroki. Ka korikori, ka grep me te awk te kōpaki mamao. Mena kei te hiahia tetahi ki te oneliner, kei raro i te kaipahua.

Kotahi te whakahau raina
Kia mahara ki nga mea e rua: Ka tukuna e ahau nga taipitopito hononga ki te pane kaore au e hiahia ki nga putanga katoa mai i te kōpaki, ka tohua e au nga mea i hangaia i roto i te marama. Whakatikaina te whakahau kia rite ki o tino me o hiahia:

curl -H "X-JFrog-Art-Api:VeryLongAPIKey" -s http://arts.myre.po/artifactory/awesomeapp/ | sed 's/a href=//' | grep "$(date +%b)-$(date +%Y)|$(date +%b --date='-1 month')-$(date +%Y)" | awk '{print $1}' | grep -oP '>K[^/]+' )

Te whakarite mahi me te konae whirihora mahi i Jenkins

I kitea e matou te puna o te rarangi o nga putanga. Me whakauru inaianei te rarangi hua ki roto i te mahi. Ki ahau nei, ko te otinga maamaa ko te taapiri i tetahi taahiraa i roto i te mahi hanga tono. Ko te taahiraa ka mahia mena he "angitu" te hua.

Whakatuwheratia nga tautuhinga mahi hui ka panuku ki raro rawa. Patohia nga paatene: Tāpirihia te taahiraa hanga -> Te taahiraa here (kotahi). I nga tautuhinga taahiraa, tohua te ahuatanga Te mana hanga o naianei, whakaritea te uara Tuhinga, te mahi ka mahia ki te angitu Whakahaerehia te whakahau anga.

Na inaianei ko te waahanga ngahau. Ka penapena a Jenkins i nga whirihoranga mahi i roto i nga konae. I roto i te whakatakotoranga XML. I te ara http://путь-до-задания/config.xml Na reira, ka taea e koe te tango i te konae whirihoranga, whakatika i te mea e tika ana ka whakahokia ki te wahi i riro mai ai.

Kia maumahara, i whakaae matou i runga ake nei ka hangaia e matou he tawhā mo te rarangi o nga putanga BUILD_VERSION?

Me tango i te konae whirihoranga ka titiro ki roto. Me whakarite noa kei te noho te tawhā me te momo e hiahiatia ana.

Whakaahuamata i raro i te kaipahua.

Kia rite te ahua o to wahanga config.xml. Engari kei te ngaro tonu nga ihirangi o te huānga whiringa
Ka waihangahia e matou he mahi tuku ki te GKE kaore he monomai, he SMS, he rehitatanga ranei. Me titiro ki raro i te koti o Jenkins

Kei te tino mohio koe? Kaati, me tuhi he tuhinga ka mahia mena ka angitu te hanga.
Ka whiwhi te tuhinga i te rarangi o nga putanga, ka tango i te konae whirihoranga, tuhia te rarangi o nga putanga ki roto ki te waahi e hiahia ana matou, katahi ka whakahoki ano. Ae. Ka tika. Tuhia he rarangi o nga putanga ki te XML ki te waahi kei reira he rarangi o nga putanga (ka noho a muri ake nei, i muri i te whakarewatanga tuatahi o te tuhinga). Kei te mohio ahau kei te kaha tonu nga kaiwhaiwhai ki nga korero o te ao. Ehara ahau i a ratou. Tāuta koa xmlstarler ki te miihini ka whakatikahia te whirihora. Ki taku whakaaro ehara tenei i te utu nui hei utu ki te karo i te whakatika XML ma te whakamahi sed.

I raro i te kaipahua, ka whakaatuhia e ahau te waehere e mahi ana i te raupapa o runga ake nei.

Tuhia he rarangi o nga putanga mai i te kōpaki i runga i te tūmau mamao ki te whirihora

#!/bin/bash
############## Скачиваем конфиг
curl -X GET -u username:apiKey http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_k8s/config.xml -o appConfig.xml

############## Удаляем и заново создаем xml-элемент для списка версий
xmlstarlet ed --inplace -d '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]/a[@class="string-array"]' appConfig.xml

xmlstarlet ed --inplace --subnode '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]' --type elem -n a appConfig.xml

xmlstarlet ed --inplace --insert '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]/a' --type attr -n class -v string-array appConfig.xml

############## Читаем в массив список версий из репозитория
readarray -t vers < <( curl -H "X-JFrog-Art-Api:Api:VeryLongAPIKey" -s http://arts.myre.po/artifactory/awesomeapp/ | sed 's/a href=//' | grep "$(date +%b)-$(date +%Y)|$(date +%b --date='-1 month')-$(date +%Y)" | awk '{print $1}' | grep -oP '>K[^/]+' )

############## Пишем массив элемент за элементом в конфиг
printf '%sn' "${vers[@]}" | sort -r | 
                while IFS= read -r line
                do
                    xmlstarlet ed --inplace --subnode '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]/a[@class="string-array"]' --type elem -n string -v "$line" appConfig.xml
                done

############## Кладем конфиг взад
curl -X POST -u username:apiKey http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_k8s/config.xml --data-binary @appConfig.xml

############## Приводим рабочее место в порядок
rm -f appConfig.xml

Mena he pai ki a koe te kowhiringa ki te tiki putanga mai i a Jenkins a he mangere koe penei i ahau, na kei raro i te kaipahua te waehere kotahi, engari he rarangi mai i a Jenkins:

Tuhia he rarangi o nga putanga mai i a Jenkins ki te whirihora
Kia maumahara ki tenei: ko taku ingoa huihuinga he nama raupapa me tetahi nama putanga, ka wehea e te kopirua. Na reira, ka tapahia e awk te waahanga kore. Mo koe ake, hurihia tenei rarangi kia rite ki o hiahia.

#!/bin/bash
############## Скачиваем конфиг
curl -X GET -u username:apiKey http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_k8s/config.xml -o appConfig.xml

############## Удаляем и заново создаем xml-элемент для списка версий
xmlstarlet ed --inplace -d '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]/a[@class="string-array"]' appConfig.xml

xmlstarlet ed --inplace --subnode '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]' --type elem -n a appConfig.xml

xmlstarlet ed --inplace --insert '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]/a' --type attr -n class -v string-array appConfig.xml

############## Пишем в файл список версий из Jenkins
curl -g -X GET -u username:apiKey 'http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_build/api/xml?tree=allBuilds[displayName,result]&exclude=freeStyleProject/allBuild[result!=%22SUCCESS%22]&pretty=true' -o builds.xml

############## Читаем в массив список версий из XML
readarray vers < <(xmlstarlet sel -t -v "freeStyleProject/allBuild/displayName" builds.xml | awk -F":" '{print $2}')

############## Пишем массив элемент за элементом в конфиг
printf '%sn' "${vers[@]}" | sort -r | 
                while IFS= read -r line
                do
                    xmlstarlet ed --inplace --subnode '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]/a[@class="string-array"]' --type elem -n string -v "$line" appConfig.xml
                done

############## Кладем конфиг взад
curl -X POST -u username:apiKey http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_k8s/config.xml --data-binary @appConfig.xml

############## Приводим рабочее место в порядок
rm -f appConfig.xml

I roto i te ariā, ki te mea kua whakamatauria e koe te waehere kua tuhia i runga i nga tauira i runga ake nei, i roto i te mahi tuku me whai rarangi taka-iho me nga putanga. He rite ki te whakaahua i raro i te kaipahua.

Kua oti tika te rarangi o nga putanga
Ka waihangahia e matou he mahi tuku ki te GKE kaore he monomai, he SMS, he rehitatanga ranei. Me titiro ki raro i te koti o Jenkins

Mena i pai nga mea katoa, ka kape-whakapirihia te tuhinga ki roto Whakahaerehia te whakahau anga me te tiaki i nga huringa.

E hono ana ki te anga kapua

He kaikohi i roto i nga ipu. Ka whakamahia e matou a Ansible hei taputapu tuku tono me te kaiwhakahaere whirihoranga. No reira, ka tae mai ki te hanga ipu, e toru nga whiringa ka puta ki te hinengaro: whakauruhia a Docker ki Docker, whakauruhia a Docker ki runga miihini e mahi ana i te Ansible, hanga ipu ranei ki te papatohu kapua. I whakaae matou ki te noho wahangu mo nga monomai mo Jenkins i tenei tuhinga. Kia mahara?

I whakatau ahau: pai, na te mea ka kohia nga ipu "i waho o te pouaka" i roto i te papatohu kapua, he aha te raru? Kia ma, tika? Kei te pirangi au ki te kohi ipu Jenkins ki roto i te papatohu kapua, katahi ka whakarewahia ki roto i te cuber mai i reira. I tua atu, he maha nga waahana a Google i roto i ona hanganga, ka whai hua ki te tere o te tuku.

Hei hono atu ki te papatohu kapua, e rua nga mea e hiahiatia ana: gcloud me nga mana uru ki API Kapua Google mo te tauira VM ka mahia ano tenei hononga.

Mo te hunga e whakamahere ana ki te hono atu kaua mai i te kapua Google
Ka taea e Google te whakakore i te whakamanatanga tauwhitiwhiti i roto i ana ratonga. Ma tenei ka taea e koe te hono atu ki te papatohu ahakoa mai i te miihini kawhe, mena kei te rere *nix he papatohu ano.

Mena kei te hiahia ahau ki te korero mo tenei take i roto i te anga o tenei tuhipoka, tuhia ki roto i nga korero. Mena ka nui nga pooti, ​​ka tuhia e au he korero mo tenei kaupapa.

Ko te huarahi ngawari ki te tuku motika ma te atanga tukutuku.

  1. Kati te tauira VM ka hono atu koe ki te papatohu kapua.
  2. Whakatuwherahia nga Taipitopito Tauira ka paato te whakatikatika.
  3. Kei raro rawa o te wharangi, tohua te atanga urunga tauira Te uru katoa ki nga API Kapua katoa.

    Matapihi
    Ka waihangahia e matou he mahi tuku ki te GKE kaore he monomai, he SMS, he rehitatanga ranei. Me titiro ki raro i te koti o Jenkins

  4. Tiakina o huringa ka whakarewahia te tauira.

Ka mutu te utaina o te VM, hono atu ma te SSH me te whakarite kia puta te hononga me te kore he. Whakamahia te tono:

gcloud alpha cloud-shell ssh

He penei te ahua o te hononga angitu
Ka waihangahia e matou he mahi tuku ki te GKE kaore he monomai, he SMS, he rehitatanga ranei. Me titiro ki raro i te koti o Jenkins

Hoatu ki te GKE

I te mea e tohe ana matou ki nga huarahi katoa ki te huri katoa ki te IaC (Infrastucture as a Code), ka penapenahia a matou konae docker ki Git. Ko tenei i tetahi taha. A ko te whakaurunga ki nga kubernetes e whakaahuahia ana e tetahi konae yaml, ka whakamahia anake e tenei mahi, he rite ano ki te waehere. No tera taha tenei. Ko te tikanga, ko te mahere ko tenei:

  1. Ka tangohia e matou nga uara o nga taurangi BUILD_VERSION a, ka taea, nga uara o nga taurangi ka tukuna ENV.
  2. Tangohia te dockerfile mai i Git.
  3. Hangaia te yaml mo te horahanga.
  4. Ka tukuna e matou enei konae e rua ma te scp ki te papatohu kapua.
  5. Ka hangaia e matou he ipu ki reira ka pana ki roto i te rehita Ipu
  6. Ka tukuna e matou te konae tuku kawenga ki te cuber.

Kia marama ake. Kia timata matou ki te korero mo ENV, ka whakaaro me tuku e tatou nga uara o nga tawhā e rua: PARAM1 и PARAM2. Ka taapirihia ta raatau mahi mo te whakatakotoranga, momo - Tawhā Aho.

Matapihi
Ka waihangahia e matou he mahi tuku ki te GKE kaore he monomai, he SMS, he rehitatanga ranei. Me titiro ki raro i te koti o Jenkins

Ka whakaputahia e matou he yaml me te anga whakamua ngawari paoro ki te konae. Ko te tikanga, kei roto koe i to dockerfile PARAM1 и PARAM2ko te ingoa kawenga awesomeapp, me te ipu kua kohia me te tono o te putanga kua tohua kei roto Rehita ipu i te ara gcr.io/awesomeapp/awesomeapp-$BUILD_VERSIONte wahi $BUILD_VERSION i tohua noa mai i te rarangi taka-iho.

Te rarangi roopu

touch deploy.yaml
echo "apiVersion: apps/v1" >> deploy.yaml
echo "kind: Deployment" >> deploy.yaml
echo "metadata:" >> deploy.yaml
echo "  name: awesomeapp" >> deploy.yaml
echo "spec:" >> deploy.yaml
echo "  replicas: 1" >> deploy.yaml
echo "  selector:" >> deploy.yaml
echo "    matchLabels:" >> deploy.yaml
echo "      run: awesomeapp" >> deploy.yaml
echo "  template:" >> deploy.yaml
echo "    metadata:" >> deploy.yaml
echo "      labels:" >> deploy.yaml
echo "        run: awesomeapp" >> deploy.yaml
echo "    spec:" >> deploy.yaml
echo "      containers:" >> deploy.yaml
echo "      - name: awesomeapp" >> deploy.yaml
echo "        image: gcr.io/awesomeapp/awesomeapp-$BUILD_VERSION:latest" >> deploy.yaml
echo "        env:" >> deploy.yaml
echo "        - name: PARAM1" >> deploy.yaml
echo "          value: $PARAM1" >> deploy.yaml
echo "        - name: PARAM2" >> deploy.yaml
echo "          value: $PARAM2" >> deploy.yaml

Ko te kaihoko a Jenkins i muri i te hono ki te whakamahi gcloud alpha cloud-shell ssh kaore i te waatea te aratau tauwhitiwhiti, no reira ka tukuna atu e matou nga whakahau ki te papatohu kapua ma te whakamahi i te tawhā --whakahau.

Ka horoia e matou te kōpaki kaainga i roto i te papatohu kapua mai i te dockerfile tawhito:

gcloud alpha cloud-shell ssh --command="rm -f Dockerfile"

Whakanohoia te konae docker hou kua tangohia ki te kōpaki kaainga o te papatohu kapua ma te whakamahi i te scp:

gcloud alpha cloud-shell scp localhost:./Dockerfile cloudshell:~

Ka kohia, ka tohua, ka panaia te ipu ki te rehita Ipu:

gcloud alpha cloud-shell ssh --command="docker build -t awesomeapp-$BUILD_VERSION ./ --build-arg BUILD_VERSION=$BUILD_VERSION --no-cache"
gcloud alpha cloud-shell ssh --command="docker tag awesomeapp-$BUILD_VERSION gcr.io/awesomeapp/awesomeapp-$BUILD_VERSION"
gcloud alpha cloud-shell ssh --command="docker push gcr.io/awesomeapp/awesomeapp-$BUILD_VERSION"

He pera ano ta matou ki te konae tuku. Kia mahara ko nga whakahau i raro nei e whakamahi ana i nga ingoa tito noa o te kahui kei reira te horahanga (awsm-cluster) me te ingoa kaupapa (whakamataku-kaupapa), kei hea te tautau.

gcloud alpha cloud-shell ssh --command="rm -f deploy.yaml"
gcloud alpha cloud-shell scp localhost:./deploy.yaml cloudshell:~
gcloud alpha cloud-shell ssh --command="gcloud container clusters get-credentials awsm-cluster --zone us-central1-c --project awesome-project && 
kubectl apply -f deploy.yaml"

Ka whakahaerehia e matou te mahi, ka whakatuwhera i te putanga papatohu me te tumanako ka kite i te huihuinga angitu o te ipu.

Matapihi
Ka waihangahia e matou he mahi tuku ki te GKE kaore he monomai, he SMS, he rehitatanga ranei. Me titiro ki raro i te koti o Jenkins

Na ka angitu te tukunga o te ipu kua kohia

Matapihi
Ka waihangahia e matou he mahi tuku ki te GKE kaore he monomai, he SMS, he rehitatanga ranei. Me titiro ki raro i te koti o Jenkins

I ata wareware ahau ki te whakatakotoranga Ingoa. Mo tetahi take ngawari: i te wa i whakaritea e koe taumaha me te ingoa kua tohua, ka mau tonu te mahi, ahakoa te maha o nga tukunga me tenei ingoa ka mahia e koe. Ae, i te nuinga o te waa, he iti noa atu tenei i te waahi o te hitori.

Engari ko nga whakatau

Ko nga mahi katoa i runga ake nei kaore pea i mahia, engari i whakauruhia he mono mo Jenkins, to ratou muuulion. Engari mo etahi take kaore au e pai ki nga monomai. Ae, he tika ake, ka toro atu ahau ki a raatau na te pouri.

A he pai noa ahau ki te tiki kaupapa hou maku. Ko te tuhinga i runga ake nei he huarahi ki te whakapuaki i nga kitenga i mahia e au i te whakaoti rapanga i whakaahuatia i te timatanga. Tuhia ki te hunga, penei i a ia, ehara rawa i te wuruhi kino i roto i nga devops. Mena ka awhina aku kitenga i tetahi tangata, ka koa ahau.

Source: will.com

Tāpiri i te kōrero