ProHoster > Блог > Whakahaerenga > Huihuinga hihiko me te horahanga o nga whakaahua Docker me te werf ma te whakamahi i te tauira o te pae tuhinga kua oti te whakaputa
Huihuinga hihiko me te horahanga o nga whakaahua Docker me te werf ma te whakamahi i te tauira o te pae tuhinga kua oti te whakaputa
Kua korerohia e matou mo a maatau taputapu GitOps neke atu i te kotahi. werf, a i tenei wa ka hiahia matou ki te whakapuaki i o maatau wheako ki te whakahiato i te waahi me nga tuhinga o te kaupapa ake - werf.io (Ko tana putanga Russian en.werf.io). He waahi noa tenei, engari he mea whakamere tona huihuinga na te mea i hangaia ma te whakamahi i te maha hihiri o nga taonga.
Haere ki nga ahuatanga o te hanganga o te waahi: te whakaputa i te tahua noa mo nga putanga katoa, nga wharangi me nga korero mo nga tukunga, etc. - e kore matou e. Engari, kia arotahi tatou ki nga take me nga ahuatanga o te huihuinga hihiri me te iti ki nga tukanga CI/CD e whai ake nei.
Kupu Whakataki: pehea te mahi a te pae
Hei timata, ka penapena nga tuhinga werf me tana waehere. Ka tukuna e tenei etahi whakaritenga whanaketanga kei tua atu i te waahanga o tenei tuhinga, engari i te iti rawa ka taea te kii ko:
Kaua e tukuna nga mahi werf hou me te kore e whakahou i nga tuhinga, a, ko nga huringa i roto i nga tuhinga e whakaatu ana i te tukunga o te putanga hou o te werf;
He tino kaha te whakawhanaketanga o te kaupapa: ka taea te tuku putanga hou i etahi wa i ia ra;
Ko nga mahi a-ringa ki te hora i tetahi waahi me te putanga hou o nga tuhinga he tino hoha;
Ka whai te kaupapa i te huarahi ororongo whakaputanga, me nga hongere pumau e 5. Kei roto i te tukanga tuku he waahanga raupapa o nga putanga ma roto i nga hongere kia pai ake ai te pumau: mai i te alpha ki te toka-toka;
Ko te pae he putanga reo-Rusia, "e ora ana, e whakawhanake ana" (arā, ko nga mea e whakahoutia ana) i roto i te whakarara me te putanga matua (arā, te reo Ingarihi).
Hei huna i enei "kihini o roto" mai i te kaiwhakamahi, ka tuku ki a ia tetahi mea "mahi noa", i mahia e matou motuhake werf tāutanga me te taputapu whakahou Ko multiwerf. Me tohu noa koe i te nama tuku me te hongere pumau kua reri koe ki te whakamahi, ka tirohia e multiwerf mena he putanga hou kei runga i te hongere ka tango mena e tika ana.
I roto i te tahua whiriwhiri putanga i runga i te paetukutuku, kei te waatea nga putanga hou o te werf ki ia hongere. Ma te taunoa, ma te wahitau werf.io/documentation ka tuwhera te putanga o te hongere tino pumau mo te tukunga hou - kua tohua ano e nga miihini rapu. Kei te waatea nga tuhinga mo te hongere ki nga wahitau motuhake (hei tauira, werf.io/v1.0-beta/documentation mo te tuku beta 1.0).
I te katoa, kei te waahi nga waahanga e whai ake nei e waatea ana:
pakiaka (tuwhera taunoa),
mo ia hongere whakahou kaha o ia tukunga (hei tauira, werf.io/v1.0-beta).
Ki te whakaputa i tetahi putanga motuhake o te pae, i te nuinga o te waa, he nui ki te whakahiato ma te whakamahi Jekyllma te rere i roto i te whaiaronga /docs werf repository whakahau e rite ana (jekyll build), i muri i te huri ki te tohu Git o te putanga e hiahiatia ana.
Ko te mea anake hei taapiri:
Ko te taputapu ake (werf) ka whakamahia mo te huihuinga;
Ko nga tukanga CI / CD ka hangaia i runga i te GitLab CI;
a ko enei katoa, ko te tikanga, ka rere ki Kubernetes.
mahi
Inaianei me whakarite nga mahi e whai whakaaro ana ki nga korero katoa kua whakaahuatia:
I muri i te huri i te putanga werf i runga i tetahi hongere whakahou me whakahou aunoa nga tuhinga i runga i te pae.
Mo te whanaketanga me kaha koe i etahi wa tirohia nga putanga arokite o te pae.
Me whakahiato ano te papanga i muri i te whakarereketanga o te putanga i runga i tetahi hongere mai i nga tohu Git e rite ana, engari i roto i te hanga i te ahua ka whiwhi tatou i nga ahuatanga e whai ake nei:
I te mea ka huri te rarangi o nga putanga i runga i nga hongere, he mea tika kia hanga ano nga tuhinga mo nga hongere kua rereke te putanga. I muri i nga mea katoa, ko te hanga ano i nga mea katoa ehara i te mea tino pai.
Ka huri pea te huinga hongere mo nga whakaputanga. I etahi wa, hei tauira, kaore pea he putanga i runga i nga waahana e pai ake ana i te tukunga 1.1 moata, engari i te wa ka puta mai - i tenei keehi, me whakarereke koe i te huihuinga a-ringa?
Ka huri te reira Ko te huihuinga ka whakawhirinaki ki te whakarereke i nga raraunga o waho.
Реализация
Te whiriwhiri huarahi
Hei tauira, ka taea e koe te whakahaere i ia putanga e hiahiatia ana hei peera motuhake i Kubernetes. Ko tenei whiringa he nui ake te maha o nga mea kei roto i te tautau, ka tipu haere me te pikinga o te maha o nga tuku werf pumau. Na ko tenei, he mea nui ake te tiaki: kei ia putanga tana ake tūmau HTTP, me te utaina iti. Ko te tikanga, ka nui ake nga utu rauemi.
He rite tonu ta maua huarahi te whakaemi i nga putanga katoa e tika ana ki te ahua kotahi. Ko nga tatauranga kua whakahiato o nga putanga katoa o te papaanga kei roto i tetahi ipu me NGINX, a ko nga waka ki te Whakataunga e rite ana ka tae mai ma NGINX Ingress. He hanganga ngawari - he tono kore whenua - ka taea e koe te whakatika i te Whakamahinga (i runga i te kawenga) ma te whakamahi i a Kubernetes ake.
Kia tika ake, kei te kohia e matou nga whakaahua e rua: kotahi mo te ara iahiko whakaputa, ko te tuarua he taapiri mo te ara iahiko dev. Ko te ahua taapiri ka whakamahia (whakarewahia) anake i runga i te ara iahiko dev me te mea matua kei roto ko te putanga o te waahi mai i te arotake, ka mahia te ararere i waenga i a raatau ma te whakamahi i nga rauemi Ingress.
werf vs git clone me nga taonga
Ka rite ki te korero i mua ake nei, ki te whakaputa i nga tatauranga o te waahi mo tetahi putanga motuhake o nga tuhinga, me hanga e koe ma te huri ki te tohu putunga tika. Ka taea hoki e koe tenei ma te kati i te putunga ia wa e hanga ana koe, ma te kowhiri i nga tohu e tika ana mai i te raarangi. Heoi, he mahi tino kaha tenei, me te mea ano, me tuhi nga tohutohu kore-iti... Ko tetahi atu kino kino ko tenei huarahi kaore he huarahi ki te huna i tetahi mea i te wa e huihui ana.
I konei ko te werf whaipainga ake ka haere mai ki te awhina, ki te whakatinana keteroki atamai me te tuku ia koe ki te whakamahi nga putunga o waho. Ma te whakamahi i te werf ki te taapiri i te waehere mai i te putunga ka tino tere ake te hanga, na te mea Ko te werf ka kati i te putunga kotahi ka mahia anakefetch mehemea e tika ana. I tua atu, ka taapirihia nga raraunga mai i te putunga, ka taea e taatau te kowhiri i nga raarangi e tika ana (i roto i a maatau ko te raarangi tenei docs), ka tino whakaitihia te nui o nga raraunga taapiri.
I te mea he taputapu a Jekyll i hangaia mo te whakahiato raraunga pateko me te kore e hiahiatia i te ahua whakamutunga, he mea tika kia whakahiato werf taonga, a ki te ahua whakamutunga kawemai anake te hua whakahiato.
Ka tuhia e matou werf.yaml
Na, i whakatau matou ka whakahiato ia putanga ki tetahi taonga werf motuhake. Heoi ko tatou kaore matou e mohio e hia o enei taonga i te wa o te huihuinga, no reira kaore e taea e matou te tuhi i tetahi whirihoranga hanga hangai (me tino korero, ka taea tonu e matou, engari kaore e tino whai hua).
werf ka taea e koe te whakamahi Haere tauira i to kōnae whirihoranga (werf.yaml), na tenei ka taea whakaputa whirihora i runga i te rere i runga i nga raraunga o waho (he aha taau e hiahia ana!). Ko nga raraunga o waho i roto i ta maatau keehi ko nga korero mo nga putanga me nga tukunga, i runga i te kaupapa ka kohia e matou te maha o nga taonga toi me te hua ka whiwhi maatau e rua nga whakaahua: werf-doc и werf-dev ki te rere i runga iahiko rereke.
Ka tukuna nga raraunga o waho ma nga taurangi taiao. Anei ta ratou hanganga:
RELEASES — he raina me te rarangi o nga whakaputanga me te putanga o naianei o te werf, i roto i te ahua o te raarangi uara wehe mokowā i te whakatakotoranga <НОМЕР_РЕЛИЗА>%<НОМЕР_ВЕРСИИ>. He tauira: 1.0%v1.0.4-beta.20
CHANNELS — he raina me te rarangi o nga hongere me te putanga o naianei o te werf, i roto i te ahua o te raarangi kua wehea mokowhiti i roto i te whakatakotoranga <КАНАЛ>%<НОМЕР_ВЕРСИИ>. He tauira: 1.0-beta%v1.0.4-beta.20 1.0-alpha%v1.0.5-alpha.22
ROOT_VERSION — werf tuku putanga ki te whakaatu i te taunoa i runga i te pae (ehara i nga wa katoa e tika ana ki te whakaatu tuhinga e te tau tuku teitei). Tauira: v1.0.4-beta.20
REVIEW_SHA — Hash o te arotake commit e hiahia ana koe ki te hanga i te putanga mo te koropiko whakamātautau.
Ka whakakiia enei taurangi ki te paipa GitLab CI, me pehea te tuhi i raro nei.
Tuatahi, mo te waatea, ka tautuhia e matou i roto werf.yaml Haere ki nga taurangi tauira, tohua nga uara mai i nga taurangi taiao:
He rite tonu te whakaahuatanga o te hanga toi mo te whakahiato i te putanga pateko o te pae mo nga keehi katoa e hiahiatia ana e matou (tae atu ki te whakaputa i te putanga pakiaka, me te putanga mo te ara iahiko dev). Na reira, ka nekehia e matou ki tetahi poraka motuhake ma te whakamahi i te mahi define - mo te whakamahi ano i muri mai include. Ka tukuna e matou nga tohenga e whai ake nei ki te tauira:
Version — putanga hangaia (ingoa tohu);
Channel — te ingoa o te hongere whakahou i hangaia ai te toi;
Commit — mahia hash, mena ka hangaia te toi mo te mahi arotake;
Me ahurei te ingoa taonga. Ka taea e tatou tenei, hei tauira, ma te taapiri i te ingoa hongere (te uara o te taurangi .Channel) hei pimuri ki te ingoa o te taonga: artifact: doc-{{ .Channel }}. Engari me maarama koe i te wa e kawemai ana mai i nga taonga toi, me korero koe ki nga ingoa ano.
I te wa e whakaahua ana i tetahi taonga, ka whakamahia te waahanga werf e whai ake nei: whakapuru. Whakapuru e tohu ana i te raarangi ratonga build_dir ka taea e koe te tiaki i te keteroki Jekyll i waenga i nga rere paipa, e tino tere ake te whakahiato.
Kua kite pea koe i te whakamahinga o te konae releases.yml he kōnae YAML me nga raraunga tuku i tonoa mai github.com (he mea hanga i te wa e mahia ana he paipa). E hiahiatia ana i te wa e whakahiato ana i te pae, engari i roto i te horopaki o te tuhinga he mea pai ki a maatau na te mea kei runga i tona ahuatanga te whakahiatotanga o te mea kotahi anake — he toi o te putanga pakiaka o te pae (kaore e hiahiatia i etahi atu taonga).
Ka whakatinanahia tenei ma te whakamahi i te korero herenga if Haere ki nga tauira me nga hoahoa {{ $Root.Files.Get "releases.yml" | sha256sum }} i te atamira nga wahanga. Ka penei te mahi: i te wa e hanga ana he taonga mo te putanga pakiaka (taurangi .Channel he rite ki root) kōnae hash releases.yml ka pa ki te hainatanga o te atamira katoa, na te mea he wahanga o te ingoa o te mahi Ansible (tawhā name). Na, ka huri ihirangi konae releases.yml ka whakahiatotia ano te taonga toi.
Kia whai whakaaro ano koe ki te mahi me tetahi putunga o waho. I te ahua o tetahi taonga mai i werf putunga, ko te whaiaronga anake ka taapirihia /docs, a i runga i nga tawhā kua paahitia, ka taapirihia nga raraunga o te tohu e hiahiatia ana, te tuku arotake ranei.
Hei whakamahi i te tauira hanga toi ki te whakaputa whakaahuatanga mo te toi o nga putanga whakawhiti o nga hongere me nga whakaputanga, ka whakarite matou i tetahi kopae ki te taurangi .WerfVersions в werf.yaml:
{{ range .WerfVersions -}}
{{ $VersionsDict := splitn "%" 2 . -}}
{{ dict "Version" $VersionsDict._1 "Channel" $VersionsDict._0 "Root" $Root | include "doc_artifact" }}
---
{{ end -}}
No te mea ka whakaputahia e te kopae etahi taonga toi (e tumanako ana matou), me whai whakaaro ki te wehenga i waenganui i a raatau - te raupapa --- (Mo etahi atu korero mo te whakatakotoranga konae whirihoranga, tirohia tuhinga). Ka rite ki te korero i mua ake nei, i te wa e karanga ana i tetahi tauira i roto i te kohanga, ka tukuna e matou nga tawhā putanga, URL me te horopaki pakiaka.
Waihoki, engari kaore he kopae, ka karangahia e matou te tauira toi mo nga "take motuhake": mo te putanga pakiaka, me te putanga mai i te arotake ka mahia:
{{ dict "Version" .WerfRootVersion "Channel" "root" "Root" $Root | include "doc_artifact" }}
---
{{- if .WerfReviewCommit }}
{{ dict "Version" "review" "Channel" "review" "Commit" .WerfReviewCommit "Root" $Root | include "doc_artifact" }}
{{- end }}
Kia mahara ko te mahi toi mo te mahi arotake ka hangaia anake mena kua tautuhia te taurangi .WerfReviewCommit.
Kua reri nga taonga - kua tae ki te wa ki te kawemai!
Ko te ahua whakamutunga, i hangaia hei whakahaere i runga i te Kubernetes, he NGINX auau me te konae whirihoranga tūmau kua taapirihia nginx.conf me te pateko mai i nga taonga toi. I tua atu i te toi o te putanga pakiaka o te papanga, me whakahoki ano i te kopae i runga i te taurangi .WerfVersions ki te kawemai i nga taonga toi o te hongere me te tuku putanga + whai i te ture whakaingoa toi i tangohia e matou i mua. I te mea ka penapenahia e ia taonga nga putanga o te waahi mo nga reo e rua, ka kawemai e matou ki nga waahi i whakaratohia e te whirihoranga.
Ko te ahua taapiri, me te mea matua, ka whakarewahia i runga i te riipene dev, e rua noa nga waahanga o te papanga: ko te putanga mai i te arotake commit me te putanga pakiaka o te papanga (he taonga whanui me, mena ka mahara koe , tuku raraunga). No reira, ka rere ke te ahua taapiri mai i te mea matua anake i te waahanga kawemai (me te tikanga, i te ingoa):
image: werf-dev
...
import:
- artifact: doc-root
add: /app/_main_site
to: /app/main_site
before: setup
- artifact: doc-root
add: /app/_ru_site
to: /app/ru_site
before: setup
{{- if .WerfReviewCommit }}
- artifact: doc-review
add: /app/_main_site
to: /app/main_site/review
before: setup
- artifact: doc-review
add: /app/_ru_site
to: /app/ru_site/review
before: setup
{{- end }}
Ka rite ki te korero i runga ake nei, ko te mea hanga mo te mahi arotake ka puta anake ka whakahaerea te taurangi taiao kua whakaritea REVIEW_SHA. Ka taea te kore e whakaputa i te ahua werf-dev mena karekau he taurangi taiao REVIEW_SHA, engari kia taea ai horoi ma nga kaupapa here Ko nga whakaahua Docker i roto i te werf i mahi mo te ahua werf-dev, ka waiho maatau kia hangaia me te ahua o te putanga pakiaka (kua oti kee te hanga), hei whakangawari i te hanganga paipa.
Kua rite te huihuinga! Me neke atu ki te CI/CD me nga ahuatanga nui.
Pipeline i GitLab CI me nga ahuatanga o te hanga hihiri
I te wa e whakahaerehia ana te hanga me tautuhi i nga taurangi taiao e whakamahia ana werf.yaml. Kaore tenei e pa ana ki te taurangi REVIEW_SHA, ka tautuhia e matou i te wa e waea ana i te paipa mai i te matau GitHub.
Ka whakaputahia e matou nga raraunga o waho e tika ana i roto i te tuhinga Bash generate_artifacts, ka whakaputa e rua nga taonga paipa GitLab:
Tuhinga releases.yml me nga raraunga tuku,
Tuhinga common_envs.sh, kei roto nga taurangi taiao hei kaweake.
Ihirangi kōnae generate_artifacts ka kitea e koe i roto i to maatau whare putunga me nga tauira. Ko te whiwhi i nga raraunga ake ehara i te kaupapa o te tuhinga, engari ko te konae common_envs.sh he mea nui ki a tatou, no te mea kei runga te mahi a te werf. He tauira o ona ihirangi:
Ka taea e koe te whakamahi i te putanga o taua tuhinga, hei tauira, ma te whakamahi i te mahi Bash source.
Inaianei kua tae mai te wahanga ngahau. Kia tika ai te mahi o te hanga me te whakatakotoranga o te tono, me whakarite werf.yaml ko te taua iti rawa i roto i te paipa kotahi. Mena kaore i tutuki tenei ahuatanga, katahi ka rereke nga hainatanga o nga waahanga e tatauhia ana e te werf i te wa o te huihuinga, hei tauira, te tuku, ka rereke. Ma tenei ka puta he hapa tuku, na te mea ... ka ngaro te ahua e hiahiatia ana mo te horahanga.
I etahi atu kupu, mehemea i te wa o te huihuinga o te ahua o te waahi he rite tonu nga korero mo nga tukunga me nga putanga, a, i te wa o te tukunga ka tukuna he putanga hou me nga taurangi o te taiao he rereke nga uara, katahi ka kore te tukunga me te hapa: i muri i nga mea katoa, kaore ano kia hangaia te taonga o te putanga hou.
Ki te whakatipuranga werf.yaml ka whakawhirinaki ki nga raraunga o waho (hei tauira, he rarangi o nga putanga o naianei, pera i ta maatau keehi), katahi ka tuhia te hanganga me nga uara o aua raraunga ki roto i te paipa. He mea nui tenei mena ka huri nga tawhā o waho i nga wa maha.
Ka tatou whiwhi me te tuhi i nga raraunga o waho i te wahanga tuatahi o te paipa i GitLab (Hanga mua) me te tuku atu i roto i te ahua GitLab CI taonga. Ma tenei ka taea e koe te whakahaere me te whakaara ano i nga mahi paipa (hanga, tohatoha, horoi) me te whirihoranga ano i roto werf.yaml.
Nga korero o te atamira Hanga mua konae .gitlab-ci.yml:
I te hopu i nga raraunga o waho i roto i te toi, ka taea e koe te hanga me te tohatoha ma te whakamahi i nga waahanga paipa GitLab CI paerewa: Hanga me te Hoatu. Ka whakarewahia e matou te pipeline ma te whakamahi matau mai i te werf GitHub repository (arā, ina he huringa kei roto i te putunga GitHub). Ko nga raraunga mo ratou ka kitea i roto i nga taonga kaupapa GitLab i te waahanga Tautuhinga CI/CD -> Pipeline keu, katahi ka hanga i te Webhook e rite ana ki GitHub (Tautuhinga -> Webhooks).
Ka taapirihia e GitLab nga taonga e rua mai i te atamira ki te waahi hanga Hanga mua, no reira ka kaweake i nga taurangi me nga raraunga whakauru kua rite ma te whakamahi i te hanga source common_envs.sh. Ka tiimata matou i te waahanga hanga i nga keehi katoa, engari mo te whakarewa i te paipa kia rite ki te raarangi. E ai ki te raarangi, ka whakahaerehia e matou he paipa mo te horoi - i tenei keehi kaore he take ki te mahi huihuinga.
I te wahanga tukunga, ka whakaahuahia e maatau nga mahi e rua - wehe ke mo te tuku ki te whakaputanga me nga iahiko dev, ma te whakamahi i te tauira YAML:
He rereke noa nga mahi i roto i te tautuhi i te horopaki huinga hei whakauru i te werf (WERF_KUBE_CONTEXT), me te whakarite i nga taurangi taiao koropiko (environment.name и environment.url), ka whakamahia i roto i nga tauira tūtohi Helm. E kore matou e whakarato i nga ihirangi o nga tauira, na te mea... karekau he mea whakamere mo te kaupapa e pa ana, engari ka kitea e koe i roto putunga mo te tuhinga.
Tapa whakamutunga
I te mea ka tukuna nga putanga werf i nga wa maha, ka hangaia nga whakaahua hou, ka tipu haere tonu te Rehita Docker. Na reira, he mea nui ki te whirihora i te horoi whakaahua aunoa i runga i nga kaupapa here. He tino ngawari ki te mahi.
Hei whakatinana ka hiahia koe:
Tāpirihia he taahiraa horoi ki .gitlab-ci.yml;
Tāpirihia te mahi i ia wa o te mahi horoi;
Whakaritehia he taurangi taiao me te tohu uru tuhi.
Kua kitea e matou tata ki runga ake i enei mea katoa - ki te horoi anake me uru tuatahi koe ki te Docker Registry me tetahi tohu e whai mana ana ki te whakakore i nga whakaahua i roto i te Docker Registry (ko te tohu mahi a GitLab CI ka tukuna aunoatia. kei a ratou enei mana). Me hanga te tohu ki GitLab i mua atu, me tohu tona uara ki te taurangi taiao WERF_IMAGES_CLEANUP_PASSWORD te kaupapa (Tautuhinga CI/CD -> Taurangi).
Ko te taapiri i tetahi mahi horoi me te raarangi e hiahiatia ana ka mahia CI/CD ->
Ngā Mahere.
Koina: he kaupapa kei roto i te Rehita Docker e kore e tipu tonu mai i nga whakaahua kore i whakamahia.
I te mutunga o te waahanga mahi, me whakamahara ahau ki a koe kei te waatea nga raarangi katoa mai i te tuhinga Git:
I whiwhi matou i te hanganga hui arorau: kotahi toi mo ia putanga.
Ko te huihuinga he ao katoa, kaore e hiahiatia he whakarereketanga a-ringa ka tukuna nga putanga hou o te werf: ko nga tuhinga kei runga i te paetukutuku ka whakahou aunoa.
E rua nga whakaahua ka kohia mo nga waahanga rereke.
Ka tere te mahi, na te mea Ka taea te whakamahi keteroki - ka tukuna he putanga hou o te werf, ka karangahia ranei he matau GitHub mo te mahi arotake, ko te mea hangai e rite ana me te putanga whakarereke ka hangaia ano.
Kaua e whakaaro mo te whakakore i nga whakaahua kaore i whakamahia: ko te horoi kia rite ki nga kaupapa here werf ka mau tonu te Rehita Docker.
kitenga
Ma te whakamahi i te werf ka tere te mahi a te huihuinga na te keteroki o te huihuinga me te keteroki i te wa e mahi ana me nga putunga o waho.
Ma te mahi tahi me nga whare putunga Git o waho ka whakakorehia te hiahia ki te kati i te katoa o te putunga ia wa, ki te hanga ano ranei i te wira me te arotau arotau uaua. Ka whakamahi a werf i te keteroki ka mahi kotahi anake te kati, katahi ka whakamahi fetch a ka tika ana.
Te kaha ki te whakamahi i nga tauira Haere i roto i te konae whirihoranga hanga werf.yaml ka taea e koe te whakaahua i tetahi huihuinga ka whakawhirinaki nga hua ki nga raraunga o waho.
Ma te whakamahi i te mount in werf ka tere ake te kohinga taonga - na te keteroki, he mea noa ki nga paipa katoa.
werf he mea ngawari ki te whirihora i te horoi, he mea tino nui ki te hanga hihiri.