GitHub Actions Self Hosted Runner (Autoscaling with Kubernetes)

Поділитися
Вставка
  • Опубліковано 9 січ 2025

КОМЕНТАРІ • 82

  • @AntonPutra
    @AntonPutra  Рік тому

    🔴 - To support my channel, I’d like to offer Mentorship/On-the-Job Support/Consulting - me@antonputra.com

  • @AntonPutra
    @AntonPutra  Рік тому +2

    👉 How to Manage Secrets in Terraform - ua-cam.com/video/3N0tGKwvBdA/v-deo.html
    👉 Terraform Tips & Tricks - ua-cam.com/video/7S94oUTy2z4/v-deo.html
    👉 ArgoCD Tutorial - ua-cam.com/video/zGndgdGa1Tc/v-deo.html

    • @ВладиславЗагородний-ш9ш
      @ВладиславЗагородний-ш9ш Рік тому

      Anton hi, thanks for a great tutorial. Can you pls suggest how to define image for self hosted K8s github actions runner? Let's assume I have automation tests written on Java and to run those tests I need Chrome browser, for time saving purpose - it could be great to have already installed on my runner Java and Chrome , so I will justly run the tests and not perform any installations from workflows (within github actions).

  • @AntonPutra
    @AntonPutra  3 роки тому +2

    Build a Docker Image and Publish It to AWS ECR using Github Actions - ua-cam.com/video/Hv5UcBYseus/v-deo.html
    Build a Docker Image and Publish It to GCP GCR & Artifact Registry using Github Actions - ua-cam.com/video/6dLHcnlPi_U/v-deo.html

  • @jonathanhle
    @jonathanhle 2 роки тому +1

    Thanks!

  • @saadullahkhanwarsi5853
    @saadullahkhanwarsi5853 Рік тому +1

    Amazing man
    Keep sharing that level of content

  • @mohammadkarimi9386
    @mohammadkarimi9386 2 роки тому +5

    Awesome tutorial. Have learned so much.
    Would you create another video on how to create this with webhook and using OIDC or similar

    • @AntonPutra
      @AntonPutra  2 роки тому +1

      Propably in the future, combining with org level runners.

    • @jimbrannlund4677
      @jimbrannlund4677 2 роки тому

      I just did this (webhook), it was pretty straightforward. But then we have a sweet setup with Contour and Envoy which makes ingresses a breeze.

    • @jishaashok
      @jishaashok 2 роки тому +1

      @@jimbrannlund4677 Can you please share the entire steps here?

    • @jimbrannlund4677
      @jimbrannlund4677 2 роки тому +1

      @@jishaashok I can try

  • @SuvodeepPyne
    @SuvodeepPyne Рік тому +1

    Awesome work! Thank you so much for sharing this!

  • @smokzpolski
    @smokzpolski 3 роки тому +1

    More and more useful videos! Thank you!

  • @valour.se47
    @valour.se47 3 роки тому +1

    Keep up the good work, as always to the point.

  • @LunaLovegood-1981
    @LunaLovegood-1981 7 місяців тому +1

    This is legacy version. It would be greate if you make an other video about GitHub Actions Self Hosted Runner with runner-scale-set chart and runner-scale-set-controller chart.

    • @AntonPutra
      @AntonPutra  7 місяців тому +1

      I was thinking about refreshing. Maybe I'll create a mini playlist for GitHub Actions.

  • @elibukin4840
    @elibukin4840 Рік тому +1

    super stuff!
    thank you my good dude, that helped alot!

  • @mondo1926
    @mondo1926 2 роки тому +4

    Clear, concise and to the point. Nice job on this video Anton. I just have a general question about the custom resource definition for k8s self hosted runners. Did you create it? Is there an officially supported CRDs for Github self hosted runners?

    • @AntonPutra
      @AntonPutra  2 роки тому +1

      Sorry for the late response, here is a reference - github.com/actions-runner-controller/actions-runner-controller/tree/master/config/crd

  • @haseebahmad857
    @haseebahmad857 Рік тому +1

    Hello Anton. Thank you very much, it was straight to the point and a very good explanation of the topic.
    I have one question, I am just curious if we can provide custom docker image to our runner pods having all the dependencies for the applicaton build preinstalled. Any article/video will be much appreciated. Thanks in advance

    • @AntonPutra
      @AntonPutra  Рік тому

      Welsome, you can build your own image github.com/machine-learning-apps/self-hosted-k8s-runner/blob/master/README.md#optional-customize-your-self-hosted-runner

  • @kayoutube690
    @kayoutube690 9 місяців тому

    Do you have module how to build image via tags, pr and branch using github actions?

  • @sacardillas
    @sacardillas 2 роки тому +1

    amazing job, thank you so much for this material

  • @siamak.hatami
    @siamak.hatami 2 роки тому +1

    It is more than great. Thanks.

  • @spasham74
    @spasham74 2 роки тому +1

    Great video.
    Question. I have a self hosted runner deployed in AWS eks. I am able to build most the stages in GitHub actions. I understand docker is not longer supported on k8s so how do you build images on self hosted runner on k8s

    • @AntonPutra
      @AntonPutra  2 роки тому

      You don't have to use docker to build docker images, for example you can use kaniko

    • @spasham74
      @spasham74 2 роки тому

      @@AntonPutra do you have any example snippets that you can share? There isn’t any office GitHub actions for kaniko

  • @mrdeshapiro
    @mrdeshapiro Рік тому

    for horizontal run autoscalar you specify repositoryNames:. What if you want to allow all repositories in an org?

    • @AntonPutra
      @AntonPutra  Рік тому

      Take a look at this "Adding ARC runners to a repository, organization, or enterprise"
      github.com/actions/actions-runner-controller/blob/master/docs/choosing-runner-destination.md

    • @mrdeshapiro
      @mrdeshapiro Рік тому

      @@AntonPutra It sounds like metrics requires you to list repositories if I am reading it correctly. Note that I set this up, but I never seem to see scaldown happening. I even had cases where I was left with many sitting offline. I ended up manually deleting those in the Github console.

  • @InigoMontoyaGAMING
    @InigoMontoyaGAMING 2 роки тому

    Thanks a lot Anton!
    Can you please create a video on how to host Self Hosted Runner with Fargate profile? or any tips about it?

    • @AntonPutra
      @AntonPutra  2 роки тому

      Sure, I already have a video for AWS Fargate

    • @dtwilliams
      @dtwilliams 2 роки тому

      Hi. Could you let me know where your Fargate video is? I couldn’t find it. I wasn’t sure if I could use Fargate to host self hosted runners as Fargate doesn’t allow privileged containers.

  • @Han-ws8he
    @Han-ws8he 6 місяців тому +1

    Very nice! Thanks!

    • @AntonPutra
      @AntonPutra  6 місяців тому +1

      thanks! I'll refresh series soon..

  • @hrushie
    @hrushie 2 роки тому

    Hi Anton,
    Great video! but I have a question, what if we want to use our own docker image for the runners? I did not see any configuration for custom docker image. Thank you!

    • @AntonPutra
      @AntonPutra  2 роки тому

      Thanks! You can then configure the runner to use a custom docker image by configuring the image field of a Runner or RunnerDeployment.
      Doc - github.com/actions-runner-controller/actions-runner-controller/blob/master/docs/detailed-docs.md#software-installed-in-the-runner-image

  • @jimbrannlund4677
    @jimbrannlund4677 3 роки тому +1

    Execellent video, thank you!
    What's the point of RunnerDeployment, I don't understand the difference with custom runners.

    • @AntonPutra
      @AntonPutra  3 роки тому +1

      It's a Custom Resource Definition provided by actions-runner-controller, that watches the repository and creates pods to run your workflows. Here is a link - github.com/actions-runner-controller/actions-runner-controller#runnerdeployments

    • @jimbrannlund4677
      @jimbrannlund4677 3 роки тому

      @@AntonPutra Thanks for the fast reply!

  • @OutOfDevOps
    @OutOfDevOps 3 роки тому +1

    Awesome tutorial, I implemented something similar in GCP but using VMs, this allows me to scale down to zero when idle. Do you think would be possible to implement something similar in AWS? I didn’t put the link but you should be able to find it in my channel.

    • @AntonPutra
      @AntonPutra  3 роки тому +1

      Thanks! You can defiantly scale down to 0 Kubernetes instance group.

    • @OutOfDevOps
      @OutOfDevOps 3 роки тому

      @@AntonPutra do you have to pay for the master nodes even if you have zero nodes?

    • @AntonPutra
      @AntonPutra  3 роки тому +1

      @@OutOfDevOps well, not even masters, you still need to run DNS and some other components. Even autoscaller has to be deployed somewhere. It's a good solution when you already have a cluster and want to share it with ci/cd.

  • @kirbyliu8965
    @kirbyliu8965 2 роки тому

    Great video Anton! I had a question regarding installing cert-manager, if you aren't handling SSL/TLS for DNS, did you need to install cert-manager? You mentioned the webbook as an option which I'm sure is where the cert-manager would have been supported/used.

    • @AntonPutra
      @AntonPutra  2 роки тому

      Thanks, you need cert-manager only if you want to expose your service from kubernetes to the internet and encrypt the traffic with SSL/TLS (HTTPS). If you just want to use plain http, you don't need cert-manager.

  • @armandoleon9901
    @armandoleon9901 2 роки тому

    Awesome video!!! Curious, is it possible to configure the images of the runners? Especially via the runner deployment?

    • @armandoleon9901
      @armandoleon9901 2 роки тому

      whoops, ignore, I read the docs and found my answer

    • @AntonPutra
      @AntonPutra  2 роки тому +1

      yeah, you should be able to create custom image

  • @amalberty
    @amalberty 2 роки тому

    Hello Anton. Thank you for the video. Re: AWS EKS, are you using Fargate or EC2 instance for autoscaling?

    • @AntonPutra
      @AntonPutra  2 роки тому +1

      Hi Alejandro, in that video as far as i remember i was using ec2 instances.

    • @amalberty
      @amalberty 2 роки тому

      @@AntonPutra Thank you

  • @vinayhegde9888
    @vinayhegde9888 Рік тому

    Can we setup this on EKS-Fargate!!??
    Plz respond. I’m getting an error during this implementation on Fargate.

    • @AntonPutra
      @AntonPutra  Рік тому

      I haven't tried it yet, but my guess you can. You can run controller on the regular instance group and workers on fargate

  • @swathiadhik
    @swathiadhik 2 роки тому

    Can we not configure same runner for 2 repos? in k8s infrastructure

    • @AntonPutra
      @AntonPutra  2 роки тому +1

      You can configure runner on org level which is more convenient actually.

  • @shohidurrahmanshaju5798
    @shohidurrahmanshaju5798 Рік тому

    How can I have the autoscale runner pod to gave some linux dependency packages installed?

  • @vamshikrishna-th2ly
    @vamshikrishna-th2ly 2 роки тому

    I have couple of questions related to self hosted runners.
    1. I have configured self hosted runner and i always wanted to be active so that my other team members can use it. But when my laptop is not turned on, other people who are running the pipeline, it is going to queue. Any idea on how to overcome that?
    2. Lets say I create 3 individual self hosted runners in 3 of my team mates machines. I need github pipeline to pick the one which is online not the one which is offline. Is it possible and how do we do that.?

    • @AntonPutra
      @AntonPutra  2 роки тому

      i never ran self hosted runners for prod environments on local machine. I would assume it should automatically run on online runners, or you can try to use labels/tags.

    • @Kruziikrel13
      @Kruziikrel13 2 роки тому +1

      Gee, Spamming everyone with this query.

  • @shohidurrahmanshaju5798
    @shohidurrahmanshaju5798 Рік тому

    Currently if I want to run cypress test on selfhosted runner, I get error saying dependency is not installed

    • @AntonPutra
      @AntonPutra  Рік тому +1

      You can build your custom Docker image that you can use as the runner with all your dependencies.

    • @shohidurrahmanshaju5798
      @shohidurrahmanshaju5798 Рік тому

      @@AntonPutra Okay, thanks for the reply.

  • @jimbrannlund4677
    @jimbrannlund4677 3 роки тому

    Why does the app (the runners) need read & write for Administration?

    • @AntonPutra
      @AntonPutra  3 роки тому +1

      I found it in the docs "Administration (read / write)". Here is a link - github.com/actions-runner-controller/actions-runner-controller#deploying-using-github-app-authentication

  • @vovaripetsky6885
    @vovaripetsky6885 3 роки тому

    what image are those containers using?

    • @AntonPutra
      @AntonPutra  3 роки тому +1

      this one - Docker: github.com/actions-runner-controller/actions-runner-controller/blob/master/runner/Dockerfile, image - github.com/actions-runner-controller/actions-runner-controller/blob/master/charts/actions-runner-controller/values.yaml#L40-L42

  • @MuradHasanov-e6y
    @MuradHasanov-e6y Рік тому

    How to add lablel to runner ?

    • @AntonPutra
      @AntonPutra  Рік тому

      it's been a while, next time when i refresh this tutorial I'll point it out

  • @aromaticcut6898
    @aromaticcut6898 2 роки тому +1

    Made my day!!