-
CI/CD Rahtissa
Edistynyt taso
Sinun tulee tutustua OpenShiftin ImageStream- ja BuildConfig-APIin
Tässä oppaassa käytämme OpenShiftin komentorivityökalua oc
Johdanto
Nykyään ketteriä ohjelmistokehitysmenetelmiä käytetään vastaamaan tietyn ohjelmiston jatkuvasti muuttuviin vaatimuksiin. Ketterän ohjelmistokehityksen päätavoitteena on toimittaa jatkuvasti ja nopeasti uusia ohjelmistoversioita sekä parantaa asiakastyytyväisyyttä. Jatkuva integraatio ja jatkuva toimitus (CI/CD) tarjoavat kehittäjille tarvittavat työkalut sujuvoittaa ja nopeuttaa uuden koodin käyttöönottoa sekä lisätä ketteryyttä.
Tässä oppaassa rakennamme yksinkertaisen CI/CD-putken käyttäen Kubernetesin käsitteitä, kuten ImageStream, BuildConfig ja Deployment``. Katso lisätietoja näistä Kubernetesin käsitteistä sivulta Kubernetesin ja OpenShiftin käsitteet.
Info
Käytännössä monimutkaisten sovellusten CI/CD-putket edellyttävät erillisten resurssien ja työkalujen, kuten Tektonin ja Jenkinsin, käyttöä. Yksinkertaisia sovelluksia voidaan kuitenkin ottaa käyttöön tässä oppaassa kuvatulla tavalla. Tämän oppaan ensisijainen tavoite on opettaa Kubernetesin ydinkäsitteet CI/CD:n näkökulmasta.
Valmistelut
Varmista, että oc-komentorivikäyttöliittymä on asennettu ja että olet kirjautunut sisään. Katso
komentorivityökalun asennus, jos tarvitset siinä apua.
Pika-aloitus
Olemme kirjoittaneet hello world -verkkosovelluksen ja määritelleet tarvittavat Kubernetes-objektit sen rakentamista ja Rahtiin käyttöönottoa varten. Seuraavilla vaiheilla pääset nopeasti alkuun:
Kloonaa mallisovelluksen lähdekoodirepositorio.
Kirjaudu Rahtiin, jos et ole vielä tehnyt niin. Voit kopioida kirjautumiskomentosi Rahti-käyttöliittymästä.
Varmista komennolla oc project, että olet oikeassa projektissa. Jos et ole, voit luoda uuden
komennolla oc new-project <your-new-project-name>.
Meillä on kaikki tarvittavat objektimääritykset rahti-bc-example-projektissa tiedostossa k8s-api-objs.yaml.
Katso sivua Kubernetesin ja OpenShiftin käsitteet, jotta ymmärrät tiedostossa
k8s-api-objs.yaml määritellyt objektit. Voit luoda nämä CI/CD-putkeemme tarvittavat objektit helposti
komennolla oc create seuraavasti:
$ oc create -f k8s-api-objs.yaml
imagestream.image.openshift.io/dockerfile-example created
buildconfig.build.openshift.io/dockerfile-example created
deployment.apps/dockerfile-example created
service/dockerfile-example created
route.route.openshift.io/dockerfile-example created
Tässä vaiheessa olet luonut yksinkertaisen CI\CD-putken. Seuraava vaihe
on käynnistää koonti ja antaa putken hoitaa koonti sekä käyttöönotto.
Voit käynnistää tämän toiminnon komennolla oc build seuraavasti:
Kun putki on suorittanut työnsä loppuun, voit avata sovelluksesi käyttöönoton
seuraamalla reittiä, jonka pitäisi näyttää tältä: http://dockerfile-example-<your_project_name>.2.rahtiapp.fi/.
Tämä putki voidaan käynnistää uudelleen minkä tahansa sovelluspäivityksen jälkeen (esim. päivitys tiedostoon index.html), ja
muutokset näkyvät lähes välittömästi. Myös Webhookit voidaan määrittää
käynnistämään putki.
Siivoaminen
Kun olemme tyytyväisiä sovellukseen, emme jätä sitä käyntiin
klusteriin, vaan poistamme sen komennolla oc delete:
Tämä poistaa kaikki objektit, joilla on tunniste app: dockerfile-example.
Yhteenveto
Tässä oppaassa luotiin yksinkertainen CI/CD-putki staattisen verkkosivun rakentamiseen ja käyttöönottoon pääasiassa Kubernetes-objekteilla ImageStream, BuildConfig ja Deployment. Putkea voidaan laajentaa edelleen käyttämällä erillisiä työkaluja ja resursseja, kuten Jenkins, Tekton ja Webhookit.