GithubHelp home page GithubHelp logo

classicvalues / circleci-runner-k8s Goto Github PK

View Code? Open in Web Editor NEW

This project forked from circleci-public/circleci-runner-k8s

0.0 1.0 0.0 46 KB

Repository with Helm charts to install CircleCI's runner on a Kubernetes cluster.

License: Apache License 2.0

Smarty 83.50% Shell 16.50%

circleci-runner-k8s's Introduction

CircleCI Runner on Kubernetes

Repository with various files to install CircleCI's runner on Kubernetes via Helm chart.

Prerequisites

  • You must be on our Scale Plan or sign up for a trial. Reach out to our sales team to ask about both.
  • Generate a token and resource class for your runner. For each different type of runner you want to run, you will need to repeat these same steps.
    • For example, if you want ten runners that pull the same types of jobs or run the same parallel job based on availability, you only need to create one runner resource class. All ten runners would share the same token.
    • If you want to run ten separate runners that pull different jobs that do different things, we recommend creating ten different runner resource classes. Each one would have a different name and use a different token, and you would a copy of this Helm chart for each type of runner resource.
  • Have a Kubernetes cluster (and nodes) you would like to install the runner pod(s) in.

Setup

  1. Clone this repository.
  2. Modify values as needed in values.yaml:
Value Description Default
image.repository
image.tag
You can extend a custom Docker image from the CircleCI default runner and use that instead. circleci/runner
launch-agent
replicaCount The number of replicas of this runner you want in your cluster. Must currently be set and updated manually. See pending work 1
resourceClass The resource class you created for your runner. We recommend not inserting it into values.yaml directly and setting it when you install your chart instead. See next step. ""
runnerToken The token you created for your runner. We recommend not inserting it into values.yaml directly and setting it when you install your chart instead. See next step. ""
All other values Modify at your own discretion and risk. N/A
  1. Using the resource class name and token you created in the Prerequisites section, you'll want to set parameters as you install the Helm chart:
$ helm install "circleci-runner" ./ \
  --set runnerToken=$CIRCLECI_RUNNER_TOKEN \
  --set resourceClass=$CIRCLECI_RUNNER_RESOURCE_CLASS \
  --namespace your-namespace
  1. Call your runner class(es) in your job(s). Example:
version: 2.1

executors:
  my-runner:
    machine: true
    resource_class: my-namespace/my-runner-resource-class
  
workflows:
  my-workflow:
    jobs:
      - my-job

jobs:
  my-job:
    executor: my-runner
    steps:
      - checkout
      - run: echo "Hello from my custom runner!"

Support Scope

  • Customers who modify the chart beyond values in values.yaml do so at their own risk. The type of support CircleCI provides for those customizations will be limited.

Reporting Issues

  • Customers are encouraged to open issues here to report bugs or problems, and open support tickets to receive specific help from support engineers.

Known Issues/Pending Work

  • Autoscaling is not yet implemented - for now, you'll need to manually modify the replicaCount in values.yaml and update the cluster and run:
$ helm upgrade "circleci-runner" ./ \
  --set runnerToken=$CIRCLECI_RUNNER_TOKEN \
  --set resourceClass=$CIRCLECI_RUNNER_RESOURCE_CLASS \
  --namespace your-namespace
  • Containers are not currently privileged, so you would not be able to execute privileged workloads (e.g., Docker in Docker).

circleci-runner-k8s's People

Contributors

jrahme-cci avatar kkowalski avatar circlemossbot-public avatar projectfrank avatar mvxt avatar mat1g3r avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.