Skip to content

Latest commit

 

History

History
158 lines (137 loc) · 10.6 KB

README.md

File metadata and controls

158 lines (137 loc) · 10.6 KB

woodpecker

Version: 2.0.0 Type: application AppVersion: 2.7.3

Source Code: https://github.com/woodpecker-ci/woodpecker

Installation

To install the latest release of the chart:

# since > 1.6.1
helm repo add woodpecker oci://ghcr.io/woodpecker-ci/helm
helm install woodpecker woodpecker/woodpecker

# deprecated (but still functional)
helm repo add woodpecker https://woodpecker-ci.org/
helm install woodpecker woodpecker/woodpecker

Note: The woodpecker/woodpecker chart contains both the server and the agent. If you want to install only the server or agent you can use the woodpecker/server or woodpecker/agent charts respectively.

Backend Configuration

The Kubernetes backend configuration is documented in greater detail in the Woodpecker documentation.

Terraform

If you're using the helm-release terraform module, the following definition can be used:

resource "helm_release" "woodpecker" {
  name             = "woodpecker"
  chart            = "woodpecker"
  repository       = "https://woodpecker-ci.org/"
  create_namespace = true # optional
  version          = 2.0.0
  namespace        = "woodpecker"
  count            = 1 # optional
  timeout          = 90 # optional

Upgrading

To 1.0.0
  • split metrics.enabled and the PodMonitor deployment to prometheus.podmonitor.enabled
  • move metrics.interval to prometheus.podmonitor.interval

Requirements

Repository Name Version
agent 1.0.0
server 2.0.0

Values

Key Type Default Description
agent.affinity object {} Specifies the affinity
agent.dnsConfig object {} Overrides the default DNS configuration
agent.enabled bool true Enable the agent component
agent.env.WOODPECKER_BACKEND string "kubernetes"
agent.env.WOODPECKER_BACKEND_K8S_NAMESPACE string "woodpecker"
agent.env.WOODPECKER_BACKEND_K8S_POD_ANNOTATIONS string ""
agent.env.WOODPECKER_BACKEND_K8S_POD_LABELS string ""
agent.env.WOODPECKER_BACKEND_K8S_STORAGE_CLASS string ""
agent.env.WOODPECKER_BACKEND_K8S_STORAGE_RWX bool true
agent.env.WOODPECKER_BACKEND_K8S_VOLUME_SIZE string "10G"
agent.env.WOODPECKER_CONNECT_RETRY_COUNT string "1"
agent.env.WOODPECKER_SERVER string "woodpecker-server:9000" Add the environment variables for the agent component
agent.extraSecretNamesForEnvFrom list [] Add extra secret that is contains environment variables
agent.extraVolumeMounts list [] Additional volumes that will be attached to the agent container
agent.extraVolumes list [] Additional volumes that can be mounted in containers
agent.fullnameOverride string "" Overrides the full name of the chart of the agent component
agent.image.pullPolicy string "IfNotPresent" The pull policy for the image
agent.image.registry string "docker.io" The image registry
agent.image.repository string "woodpeckerci/woodpecker-agent" The image repository
agent.image.tag string "" Overrides the image tag whose default is the chart appVersion.
agent.imagePullSecrets list [] The image pull secrets
agent.nameOverride string "" Overrides the name of the chart of the agent component
agent.nodeSelector object {} Specifies the labels of the nodes that the agent component must be running
agent.persistence.accessModes list ["ReadWriteOnce"] Defines the access mode of the persistent volume
agent.persistence.enabled bool true Enable the creation of the persistent volume
agent.persistence.existingClaim string nil Defines an existing claim to use
agent.persistence.mountPath string "/etc/woodpecker" Defines the path where the volume should be mounted
agent.persistence.size string "1Gi" Defines the size of the persistent volume
agent.persistence.storageClass string "" Defines the storageClass of the persistent volume
agent.podAnnotations object {} Add pod annotations for the agent component
agent.podSecurityContext object {} Add pod security context
agent.replicaCount int 2 The number of replicas for the deployment
agent.resources object {} Specifies the resources for the agent component
agent.securityContext object {} Add security context
agent.serviceAccount.annotations object {} Annotations to add to the service account
agent.serviceAccount.create bool true Specifies whether a service account should be created (also see RBAC subsection)
agent.serviceAccount.name string "" The name of the service account to use. If not set and create is true, a name is generated using the fullname template
agent.serviceAccount.rbac.create bool true If your cluster has RBAC enabled and you're using the Kubernetes agent- backend you'll need this. (this is true for almost all production clusters) only change this if you have a non CNCF compliant cluster, missing the RBAC endpoints the Role and RoleBinding are only created if serviceAccount.create is also true
agent.serviceAccount.rbac.role.annotations object {}
agent.serviceAccount.rbac.role.labels object {}
agent.serviceAccount.rbac.roleBinding.annotations object {}
agent.serviceAccount.rbac.roleBinding.labels object {}
agent.tolerations list [] Specifies the tolerations
agent.topologySpreadConstraints list [] Using topology spread constraints, you can ensure that there is at least one agent pod for each topology zone, e.g. one per arch for multi-architecture clusters or one for each region for geographically distributed cloud-hosted clusters. Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
fullnameOverride string "" Overrides the full name of the chart
nameOverride string "" Overrides the name of the chart
server.affinity object {} Add affinity
server.createAgentSecret bool true
server.dnsConfig object {} Overrides the default DNS configuration
server.enabled bool true Enable the server component
server.env object {"WOODPECKER_ADMIN":"woodpecker,admin","WOODPECKER_HOST":"https://xxxxxxx"} Add environment variables for the server component
server.extraSecretNamesForEnvFrom list [] Add extra environment variables from the secrets list
server.extraVolumeMounts list [] Additional volumes that will be attached to the agent container
server.extraVolumes list [] Additional volumes that can be mounted in containers
server.fullnameOverride string "" Overrides the full name of the helm chart of the server component
server.image.pullPolicy string "IfNotPresent" The image pull policy
server.image.registry string "docker.io" The image registry
server.image.repository string "woodpeckerci/woodpecker-server" The image repository
server.image.tag string "" Overrides the image tag whose default is the chart appVersion.
server.imagePullSecrets list [] The image pull secrets
server.ingress.annotations string nil Add annotations to the ingress
server.ingress.enabled bool false Enable the ingress for the server component
server.ingress.hosts[0].host string "chart-example.local"
server.ingress.hosts[0].paths[0].backend.serviceName string "chart-example.local"
server.ingress.hosts[0].paths[0].backend.servicePort int 80
server.ingress.hosts[0].paths[0].path string "/"
server.ingress.ingressClassName string "" Defines which ingress controller will implement the resource
server.ingress.tls list []
server.initContainers list [] Add additional init containers to the pod (evaluated as a template)
server.nameOverride string "" Overrides the name of the helm chart of the server component
server.nodeSelector object {} Defines the labels of the node where the server component must be running
server.persistentVolume.enabled bool true Enable the creation of the persistent volume
server.persistentVolume.mountPath string "/var/lib/woodpecker" Defines the path where the volume should be mounted
server.persistentVolume.size string "10Gi" Defines the size of the persistent volume
server.persistentVolume.storageClass string "" Defines the storageClass of the persistent volume
server.podAnnotations object {} Add pod annotations
server.podSecurityContext object {} Add pod security context
server.resources object {} Specifies the ressources for the server component
server.secrets list [] Create a generic secret to store things in, e.g. env values
server.securityContext object {} Add security context
server.service.clusterIP string nil The cluster IP of the service (optional)
server.service.loadBalancerIP string nil The loadbalancer IP of the service (optional)
server.service.port int 80 The port of the service
server.service.type string "ClusterIP" The type of the service
server.serviceAccount.annotations object {} Annotations to add to the service account
server.serviceAccount.create bool false Specifies whether a service account should be created
server.serviceAccount.name string "" The name of the service account to use. If not set and create is true, a name is generated using the fullname template
server.statefulSet.annotations object {} Add annotations to the StatefulSet
server.statefulSet.labels object {} Add labels to the StatefulSet
server.statefulSet.replicaCount int 1 Defines the number of replicas
server.statefulSet.revisionHistoryLimit int 5 The maximum number of revisions that will be maintained in the StatefulSet's revision history Default in 10.
server.tolerations list [] Add tolerations rules
server.updateStrategy.type string "RollingUpdate" Defines the update strategy of the StatefulSet