Hyppää sisältöön

Docs CSC now features an automatic Finnish translation. Click here for more information.

Warning!

Puhti and Mahti are being decommissioned in stages, and their storage areas will become fully unavailable from 15 October 2026. Clean up unnecessary files and move any data you need to keep by 31 August 2026. See the Roihu data migration guide for instructions on transferring your data to Roihu.

Puhti computing services have been decommissioned and no new jobs are accepted or executed on its compute nodes. Puhti login nodes and storage services are planned to remain available until 15 October 2026.

Edistynyt taso

Sinun tulee tutustua ImageStreamiin ja BuildConfig APIin
Tässä oppaassa käytämme OKD:n komentorivityökalua oc

Johdanto

Nykyään ketteriä ohjelmistokehitysmenetelmiä käytetään vastaamaan ohjelmistojen 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 uusien koodimuutosten käyttöönoton sujuvoittamiseen ja nopeuttamiseen sekä ketterämmän kehityksen mahdollistamiseen.

Tässä oppaassa rakennamme yksinkertaisen CI/CD-putken käyttäen Kubernetes-käsitteitä, kuten ImageStream, BuildConfig ja Deployment``. Katso lisätietoja näistä Kubernetes-käsitteistä sivulta Kubernetesin ja OKD:n käsitteet.

Info

Käytännössä monimutkaisten sovellusten CI/CD-putket hyödyntävät erillisiä resursseja ja työkaluja, kuten Tektonia ja Jenkinsiä. 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 tarvittaessa ohjeet komentorivityökalun asennukseen.

Pika-aloitus

Olemme kirjoittaneet hello world -verkkosovelluksen ja määritelleet tarvittavat Kubernetes-oliot sen rakentamiseksi ja käyttöönotoksi Rahtiin. Seuraavilla vaiheilla pääset nopeasti alkuun:

Kloonaa esimerkkisovelluksen lähdekoodirepositorio.

git clone https://github.com/CSCfi/rahti-bc-example.git
cd rahti-bc-example/

Kirjaudu Rahtiin, jos et ole vielä tehnyt niin. Voit kopioida kirjautumiskomentosi Rahti-käyttöliittymästä.

 oc login https://api.2.rahti.csc.fi:6443 --token=<your_token>

Varmista komennolla oc project, että olet oikeassa projektissa. Jos et ole, voit luoda uuden komennolla oc new-project <your-new-project-name>.

Kaikki tarvittavat oliomäärittelyt ovat projektissa rahti-bc-example tiedostossa k8s-api-objs.yaml. Katso sivulta Kubernetesin ja OKD:n käsitteet, jotta ymmärrät tiedostossa k8s-api-objs.yaml määritellyt oliot. Voit helposti luoda nämä CI/CD-putkeemme tarvittavat oliot 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:

oc start-build dockerfile-example --from-dir=./ -F

Kun putki on suorittanut työnsä loppuun, voit avata sovelluksesi käyttöönoton seuraamalla reittiä, joka 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 (esimerkiksi index.html-tiedoston päivitys), 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:

oc delete all --selector app=dockerfile-example

Tämä poistaa kaikki oliot, 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-olioilla ImageStream, BuildConfig ja Deployment. Putkea voidaan laajentaa edelleen käyttämällä erillisiä työkaluja ja resursseja, kuten Jenkins, Tekton ja Webhookit.

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta