Kuinka asentaa Drone CI Kubernetesiin

PÄIVITYS: Kun olen kirjoittanut tämän viestin, luotiin ruorikartta Dronen asentamisen helpottamiseksi, voit tarkistaa sen täältä.

Drone on mahtava avoimen lähdekoodin CI, joka on kirjoitettu Golangilla.

Voit asentaa sen käyttämällä docker compose -sovellusta virallisten asiakirjojen mukaisesti. Mutta koska olen rakastunut Kubernetesiin, halusin ottaa sen käyttöön hyötyäkseen myös itsensä parantamisesta ja k8s: n mahosta.

Luo Github OAuth -sovellus

Oletan, että haluat käyttää Githubia Drone-ilmentymän todentamiseen. Joten mennään eteenpäin ja konfiguroidaan se:

  • mene Github-tilillesi
  • napsauta profiilikuvaketta ja valitse Asetukset
  • valitse vasemmanpuoleisesta valikosta OAuth-sovellukset (sama asia organisaatioille, mutta organisaatioprofiilin sisällä)
  • napsauta painiketta uuden sovelluksen luomiseksi
  • täytä kentät haluamallasi URL-osoitteella
  • Lisää viimeiselle kentälle / valtuuta URL-osoitteen loppuun
  • saada asiakas ja salaisuus luomaan

Palvelin

Sinulla on oltava käynnissä oleva kubernetes-klusteri, jos sinulla ei vielä ole sitä, suosittelen Google Cloud Platformin (GCP) käyttöä, koska se hallitsee kubernetes-klusterin puolestasi.

Palvelimen käyttöönottoa varten käytetään Kubernetesin käyttöönottoa ja palvelua seuraavasti:

Sinun on päivitettävä joidenkin env-varsien sisältö kontekstin perusteella, joten mene eteenpäin ja vaihda kaikki CHANGE_ME-konteksti. Voit myös lisätä DRONE_ORGS-muuttujan kertomaan, että vain tietystä Github-organisaatiosta tulevilla ihmisillä on pääsy siihen.

Asenna se vain suorittamalla:

kubectl apply -f server-deployment.yml

Osoiteajon löytäminen:

kubectl saa palvelut -w

Jos näet -viesti, siinä ulkoinen IP-osoite tulee näkyviin.

Käytä sitä ja voila drone -palvelin on valmis! Mutta tähän pisteeseen saakka emme voi vielä rakentaa mitään.

Agentti

Jotta saat rakennuksesi käynnissä, meidän on otettava käyttöön myös drone-agentti. Jotta tämä tapahtuisi, käytämme myös Kubernetes-käyttöönottoa:

Päivitä DRONE_SECRET samalle, jota olet käyttänyt palvelimella, ja ota se käyttöön:

 kubectl apply -f agent-deployment.yml

Asenna DNS

Jotta Githubin ja Dronen välinen yhteys toimisi, meidän on määritettävä DNS-asetukset, tämä riippuu käyttämästäsi alustasta.

Siirry GCP: ssä projektiisi ja sitten Verkkopalvelut> Cloud DNS. Määritä A-tietue osoittamaan IP-osoite Drone-palvelimelle.

Varmista, että olet lisännyt NS-tietueet osoittaaksesi DNS-tietueesi GCP: hen.

Poistu rakennuksesta!

Käytä uutta CI-palvelinta, kirjaudu Github-tililläsi, aktivoi arkisto, jonka haluat jatkuvasti integroitua.

Nyt sinun tarvitsee vain lisätä .drone.yml-tiedosto projektiisi. Tämä tiedosto käyttää puhdasta ja suoraviivaista tapaa rakentaa putkilinjasi, koska yksinkertainen Ruby-projekti olisi samanlainen kuin tämä:

Katso tätä kauneutta

Työnnä uusi sitoutuminen repoosi ja nauti katsomasi rakennustasi Drone CI: ssä.

Nauti dronoinnista!