](https://careers.hellofresh.com/)
-
-## Status
-
-Even though actions-runner-controller is used in production environments, it is still in its early stage of development, hence versioned 0.x.
-
-actions-runner-controller complies to Semantic Versioning 2.0.0 in which v0.x means that there could be backward-incompatible changes for every release.
-
-The documentation is kept inline with master@HEAD, we do our best to highlight any features that require a specific ARC version or higher however this is not always easily done due to there being many moving parts. Additionally, we actively do not retain compatibly with every GitHub Enterprise Server version nor every Kubernetes version so you will need to ensure you stay current within a reasonable timespan.
-
-## About
-
-[GitHub Actions](https://github.com/features/actions) is a very useful tool for automating development. GitHub Actions jobs are run in the cloud by default, but you may want to run your jobs in your environment. [Self-hosted runner](https://github.com/actions/runner) can be used for such use cases, but requires the provisioning and configuration of a virtual machine instance. Instead if you already have a Kubernetes cluster, it makes more sense to run the self-hosted runner on top of it.
-
-**actions-runner-controller** makes that possible. Just create a *Runner* resource on your Kubernetes, and it will run and operate the self-hosted runner for the specified repository. Combined with Kubernetes RBAC, you can also build simple Self-hosted runners as a Service.
-## Installation
-
-By default, actions-runner-controller uses [cert-manager](https://cert-manager.io/docs/installation/kubernetes/) for certificate management of Admission Webhook. Make sure you have already installed cert-manager before you install. The installation instructions for the cert-manager can be found below.
-
-- [Installing cert-manager on Kubernetes](https://cert-manager.io/docs/installation/kubernetes/)
-
-After installing cert-manager, install the custom resource definitions and actions-runner-controller with `kubectl` or `helm`. This will create an actions-runner-system namespace in your Kubernetes and deploy the required resources.
-
-**Kubectl Deployment:**
+:one: Install cert-manager in your cluster. For more information, see "[cert-manager](https://cert-manager.io/docs/installation/)."
```shell
-# REPLACE "v0.25.2" with the version you wish to deploy
-kubectl create -f https://github.com/actions-runner-controller/actions-runner-controller/releases/download/v0.25.2/actions-runner-controller.yaml
+kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.8.2/cert-manager.yaml
```
-**Helm Deployment:**
+ *note:- This command uses v1.8.2. Please replace with a later version, if available.
-Configure your values.yaml, see the chart's [README](./charts/actions-runner-controller/README.md) for the values documentation
+>You may also install cert-manager using Helm. For instructions, see "[Installing with Helm](https://cert-manager.io/docs/installation/helm/#installing-with-helm)."
+
+:two: Next, Generate a Personal Access Token (PAT) for ARC to authenticate with GitHub.
+
+- Login to your GitHub account and Navigate to "[Create new Token](https://github.com/settings/tokens/new)."
+- Select **repo**.
+- Click **Generate Token** and then copy the token locally ( we’ll need it later).
+
+### Deploy and Configure ARC
+
+1️⃣ Deploy and configure ARC on your K8s cluster. You may use Helm or Kubectl.
+
+
-
-Download the private key file by pushing the "Generate a private key" button at the bottom of the GitHub App page. This file will also be used later.
-
-
-
-Go to the "Install App" tab on the left side of the page and install the GitHub App that you created for your account or organization.
-
-
-
-When the installation is complete, you will be taken to a URL in one of the following formats, the last number of the URL will be used as the Installation ID later (For example, if the URL ends in `settings/installations/12345`, then the Installation ID is `12345`).
-
-- `https://github.com/settings/installations/${INSTALLATION_ID}`
-- `https://github.com/organizations/eventreactor/settings/installations/${INSTALLATION_ID}`
-
-
-Finally, register the App ID (`APP_ID`), Installation ID (`INSTALLATION_ID`), and the downloaded private key file (`PRIVATE_KEY_FILE_PATH`) to Kubernetes as a secret.
-
-**Kubectl Deployment:**
+##### Deploy ARC
```shell
-$ kubectl create secret generic controller-manager \
- -n actions-runner-system \
- --from-literal=github_app_id=${APP_ID} \
- --from-literal=github_app_installation_id=${INSTALLATION_ID} \
- --from-file=github_app_private_key=${PRIVATE_KEY_FILE_PATH}
+kubectl apply -f \
+https://github.com/actions-runner-controller/actions-runner-controller/\
+releases/download/v0.22.0/actions-runner-controller.yaml
```
-**Helm Deployment:**
+ *note:- Replace "v0.22.0" with the version you wish to deploy
-Configure your values.yaml, see the chart's [README](./charts/actions-runner-controller/README.md) for deploying the secret via Helm
-
-### Deploying Using PAT Authentication
-
-Personal Access Tokens can be used to register a self-hosted runner by *actions-runner-controller*.
-
-Log-in to a GitHub account that has `admin` privileges for the repository, and [create a personal access token](https://github.com/settings/tokens/new) with the appropriate scopes listed below:
-
-**Required Scopes for Repository Runners**
-
-* repo (Full control)
-
-**Required Scopes for Organization Runners**
-
-* repo (Full control)
-* admin:org (Full control)
-* admin:public_key (read:public_key)
-* admin:repo_hook (read:repo_hook)
-* admin:org_hook (Full control)
-* notifications (Full control)
-* workflow (Full control)
-
-**Required Scopes for Enterprise Runners**
-
-* admin:enterprise (manage_runners:enterprise)
-
-_Note: When you deploy enterprise runners they will get access to organizations, however, access to the repositories themselves is **NOT** allowed by default. Each GitHub organization must allow enterprise runner groups to be used in repositories as an initial one-time configuration step, this only needs to be done once after which it is permanent for that runner group._
-
-_Note: GitHub does not document exactly what permissions you get with each PAT scope beyond a vague description. The best documentation they provide on the topic can be found [here](https://docs.github.com/en/developers/apps/building-oauth-apps/scopes-for-oauth-apps) if you wish to review. The docs target OAuth apps and so are incomplete and may not be 100% accurate._
-
----
-
-Once you have created the appropriate token, deploy it as a secret to your Kubernetes cluster that you are going to deploy the solution on:
-
-**Kubectl Deployment:**
+##### Configure Personal Access Token
```shell
kubectl create secret generic controller-manager \
-n actions-runner-system \
- --from-literal=github_token=${GITHUB_TOKEN}
-```
+ --from-literal=github_token=REPLACE_YOUR_TOKEN_HERE
+````
-**Helm Deployment:**
+ *note:- Replace REPLACE_YOUR_TOKEN_HERE with your PAT that was generated previously.
+
+
-
-#### RunnerDeployment
-
-```yaml
----
-apiVersion: actions.summerwind.dev/v1alpha1
-kind: RunnerDeployment
-metadata:
- name: k8s-runners-windows
- namespace: actions-runner-system
-spec:
- template:
- spec:
- image:
-
-#### RunnerDeployment
-
-```yaml
----
-apiVersion: actions.summerwind.dev/v1alpha1
-kind: RunnerDeployment
-metadata:
- name: k8s-runners-linux
- namespace: actions-runner-system
-spec:
- template:
- spec:
- image: