Skip to content

Commit

Permalink
Feat: 🚀 actions-runner-controller, version 0.23.5 (#43)
Browse files Browse the repository at this point in the history
* Feat: 🚀 actions-runner-controller, version 0.23.5

* Feat: 🚀 actions-runner-controller, version 0.23.5

* Feat: 🚀 actions-runner-controller, version 0.23.5

* Feat: 🚀 added prerequiste in readme and renamed override file name

* Feat: 🚀 added prerequiste in readme

* feat: 🚀 added variable for action runner controler helm chart

* feat: 🚀 added variables for action runner controller

* feat:feat: 🚀 added path of action runner controller in readme workflow

* feat:feat: 🚀 added description for override values

* feat:feat: 🚀 added description for override values
  • Loading branch information
VishwajitNagulkar authored Nov 2, 2023
1 parent 08834eb commit 177ddad
Show file tree
Hide file tree
Showing 16 changed files with 721 additions and 4 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/readme.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ jobs:
- name: Generate TF Docs
uses: terraform-docs/gh-actions@v1.0.0
with:
working-dir: addons/aws-ebs-csi-driver,addons/aws-efs-csi-driver,addons/aws-load-balancer-controller,addons/aws-node-termination-handler,addons/calico-tigera,addons/cluster-autoscaler,addons/external-secrets,addons/fluent-bit,addons/helm,addons/ingress-nginx,addons/istio-ingress,addons/karpenter,addons/kiali-server,addons/kubeclarity,addons/metrics-server,addons/nri-bundle,addons/velero,addons/kube-state-metrics,addons/keda,addons/cert-manager,addons/filebeat,addons/reloader,addons/external-dns,addons/redis
working-dir: addons/aws-ebs-csi-driver,addons/aws-efs-csi-driver,addons/aws-load-balancer-controller,addons/aws-node-termination-handler,addons/calico-tigera,addons/cluster-autoscaler,addons/external-secrets,addons/fluent-bit,addons/helm,addons/ingress-nginx,addons/istio-ingress,addons/karpenter,addons/kiali-server,addons/kubeclarity,addons/metrics-server,addons/nri-bundle,addons/velero,addons/kube-state-metrics,addons/keda,addons/cert-manager,addons/filebeat,addons/reloader,addons/external-dns,addons/redis,addons/actions-runner-controller
git-push: true
template: |-
<!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
Expand Down
1 change: 1 addition & 0 deletions _examples/basic/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,7 @@ module "addons" {
reloader = true
external_dns = true
redis = true
actions_runner_controller = true

# -- Addons with mandatory variable
istio_ingress = true
Expand Down
37 changes: 37 additions & 0 deletions _examples/complete/config/override-actions-runner-controller.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
## Node affinity for particular node in which labels key is "Infra-Services" and value is "true"

affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: "eks.amazonaws.com/nodegroup"
operator: In
values:
- "critical"

resources:
limits:
cpu: 200m
memory: 250Mi
requests:
cpu: 50m
memory: 150Mi

authSecret:
enabled: true
create: false
name: "controller-manager"
annotations: {}
github_token: "ghp_zAXXXXXXXXXXXXXXXXXXX" ## GitHub token is required to enable action-runner-controller-addon

### other GitHub Apps Configuration
## NOTE: IDs MUST be strings, use quotes
#github_app_id: ""
#github_app_installation_id: ""
#github_app_private_key: |
### GitHub PAT Configuration
#github_token: ""
### Basic auth for github API proxy
#github_basicauth_username: ""
#github_basicauth_password: ""
4 changes: 3 additions & 1 deletion _examples/complete/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@ module "addons" {
reloader = true
external_dns = true
redis = true
actions_runner_controller = true



Expand Down Expand Up @@ -206,7 +207,7 @@ module "addons" {
reloader_helm_config = { values = [file("./config/reloader/override-reloader.yaml")] }
external_dns_helm_config = { values = [file("./config/override-external-dns.yaml")] }
redis_helm_config = { values = [file("./config/override-redis.yaml")] }

actions_runner_controller_helm_config = { values = [file("./config/override-actions-runner-controller.yaml")] }

# -- Override Helm Release attributes
metrics_server_extra_configs = var.metrics_server_extra_configs
Expand All @@ -232,6 +233,7 @@ module "addons" {
reloader_extra_configs = var.reloader_extra_configs
external_dns_extra_configs = var.external_dns_extra_configs
redis_extra_configs = var.redis_extra_configs
actions_runner_controller_extra_configs = var.actions_runner_controller_extra_configs

# -- Custom IAM Policy Json for Addon's ServiceAccount
cluster_autoscaler_iampolicy_json_content = file("./custom-iam-policies/cluster-autoscaler.json")
Expand Down
8 changes: 7 additions & 1 deletion _examples/complete/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -201,4 +201,10 @@ variable "redis_extra_configs" {
atomic = true
timeout = 300
}
}
}

# ------------------ ACTIONS-RUNNER-CONTROLLER -----------------------------------------------------
variable "actions_runner_controller_extra_configs" {
type = any
default = {}
}
80 changes: 80 additions & 0 deletions addons/actions-runner-controller/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# Actions Runner Controller Helm Chart

Actions Runner Controller is a Kubernetes addon to automate the management and issuance of TLS certificates from various issuing sources.
It will ensure certificates are valid and up to date periodically, and attempt to renew certificates at an appropriate time before expiry..

## Installation
Below terraform script shows how to use Actions Runner Controller Terraform Addon, A complete example is also given [here](https://github.com/clouddrove/terraform-helm-eks-addons/blob/master/_examples/complete/main.tf).
```hcl
module "addons" {
source = "clouddrove/eks-addons/aws"
version = "0.1.2"
depends_on = [module.eks]
eks_cluster_name = module.eks.cluster_name
actions_runner_controller = true
}
```
## Prerequisite

Before you begin, make sure you have the following:

### Authentication for Self-Hosted Runners
Access to a GitHub repository for creating PAT and adding runners.

There are two ways for the actions-runner-controller to authenticate with the GitHub API (only 1 can be configured at a time, however)

Using a GitHub App (not supported for enterprise-level runners due to lack of support from GitHub)
Using a PAT(Personal Access Token)
1. Using CLI:
`kubectl create secret generic controller-manager1 -n actions-runner-system --from-literal=github_token=XXXXXX`
2. pass secrets in override-actions-runner-controller.yaml
### Cert Manager on K8s cluster
Installing Cert Manager on K8s cluster.
Well, actions-runner-controller(ACR) uses cert-manager for certificate management of admission webhook, so we have to ensure cert-manager is installed on Kubernetes before installing actions-runner-controller.
Refer to this link for Cert Manager Installation via Helm [certification manager](https://artifacthub.io/packages/helm/cert-manager/cert-manager) also you can refere our addon module

<!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
## Requirements

| Name | Version |
|------|---------|
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.0.0 |
| <a name="requirement_kubernetes"></a> [kubernetes](#requirement\_kubernetes) | >= 2.10 |

## Providers

| Name | Version |
|------|---------|
| <a name="provider_kubernetes"></a> [kubernetes](#provider\_kubernetes) | >= 2.10 |

## Modules

| Name | Source | Version |
|------|--------|---------|
| <a name="module_helm_addon"></a> [helm\_addon](#module\_helm\_addon) | ../helm | n/a |

## Resources

| Name | Type |
|------|------|
| [kubernetes_namespace_v1.this](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/namespace_v1) | resource |

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| <a name="input_addon_context"></a> [addon\_context](#input\_addon\_context) | Input configuration for the addon | <pre>object({<br> aws_caller_identity_account_id = string<br> aws_caller_identity_arn = string<br> aws_eks_cluster_endpoint = string<br> aws_partition_id = string<br> aws_region_name = string<br> eks_cluster_id = string<br> eks_oidc_issuer_url = string<br> eks_oidc_provider_arn = string<br> tags = map(string)<br> })</pre> | n/a | yes |
| <a name="input_helm_config"></a> [helm\_config](#input\_helm\_config) | Helm provider config for Actions Runner Controller | `any` | `{}` | no |
| <a name="input_manage_via_gitops"></a> [manage\_via\_gitops](#input\_manage\_via\_gitops) | Determines if the add-on should be managed via GitOps | `bool` | `false` | no |
| <a name="input_actions_runner_controller_extra_configs"></a> [actions_runner_controller\_extra\_configs](#input\actions_runner_controller\_extra\_configs) | Override attributes of helm\_release terraform resource | `any` | `{}` | no |

## Outputs

| Name | Description |
|------|-------------|
| <a name="output_chart_version"></a> [chart\_version](#output\_chart\_version) | n/a |
| <a name="output_namespace"></a> [namespace](#output\_namespace) | n/a |
| <a name="output_repository"></a> [repository](#output\_repository) | n/a |
<!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
Loading

0 comments on commit 177ddad

Please sign in to comment.