Back to Charts

Drone.io

stable/drone/README.md

latest29.1 KB
Original Source

Drone.io

This chart is deprecated in favor of the official Drone chart.

Drone v1 is a Continuous Integration platform built on container technology with native Kubernetes support.

It is not recommended to upgrade from earlier (0.8.x) versions of Drone due to the large amount of breaking changes both in the product and in the helm charts.

TL;DR;

console
helm install stable/drone

Installing the Chart

To install the chart with the release name my-release:

console
helm install --name my-release stable/drone

note: The chart will not install the drone server until you have configured a source control option. If this is the case it will print out notes on how to configure it in place using helm upgrade.

An example (secrets redacted) working install of the chart using github as the source control provider:

console
helm install --name drone --namespace drone stable/drone

kubectl create secret generic drone-server-secrets \
      --namespace=cicd-drone \
      --from-literal=clientSecret="XXXXXXXXXXXXXXXXXXXXXXXX"

helm upgrade drone \
  --reuse-values --set 'service.type=LoadBalancer' \
  --set 'service.loadBalancerIP=2.1.60.3' --set 'sourceControl.provider=github' \
  --set 'sourceControl.github.clientID=XXXXXXXX' \
  --set 'sourceControl.secret=drone-server-secrets' --set 'server.host=drone.example.com' \
  stable/drone

Uninstalling the Chart

To uninstall/delete the my-release deployment:

console
helm delete --purge my-release

The command removes nearly all the Kubernetes components associated with the chart and deletes the release.

Configuration

The following table lists the configurable parameters of the drone charts and their default values.

ParameterDescriptionDefault
images.server.repositoryDrone server imagedocker.io/drone/drone
images.server.tagDrone server image tag1.6.1
images.server.pullSecretDrone server image pull secret``
images.server.pullPolicyDrone server image pull policyIfNotPresent
images.agent.repositoryDrone agent imagedocker.io/drone/agent
images.agent.tagDrone agent image tag1.6.1
images.agent.pullPolicyDrone agent image pull policyIfNotPresent
images.dind.repositoryDocker dind imagedocker.io/library/docker
images.dind.tagDocker dind image tag18.06.1-ce-dind
images.dind.pullPolicyDocker dind image pull policyIfNotPresent
images.runner.repositoryDocker runner imagedocker.io/drone/drone-runner-kube
images.runner.tagDocker runner image tag1.0.0-beta.2
images.runner.pullPolicyDocker runner image pull policyIfNotPresent
images.secrets.repositoryDocker secrets plugin imagerobotinfra/drone-kubernetes-secrets
images.secrets.tagDocker secrets plugin image tag0c5746b
images.secrets.pullPolicyDocker secrets plugin image pull policyIfNotPresent
service.annotationsService annotations{}
service.httpPortDrone's Web GUI HTTP port80
service.nodePortIf service.type is NodePort and this is non-empty, sets the http node port of the service32015
service.typeService type (ClusterIP, NodePort or LoadBalancer)ClusterIP
ingress.enabledEnables Ingress for Dronefalse
ingress.annotationsIngress annotations{}
ingress.hostsIngress accepted hostnamesnil
ingress.tlsIngress TLS configuration[]
ingress.pathIngress path mapping``
licenseKeyEnterprise License Key``
licenseKeySecretEnterprise License Key Secret Name``
sourceControl.providername of source control provider [github,gitlab,gitea,gogs,bitbucketCloud,bitbucketServer]``
sourceControl.secretname of secret containing source control keys and passwords``
sourceControl.githubvalues to configure githubsee values.yaml
sourceControl.gitlabvalues to configure gitlabsee values.yaml
sourceControl.giteavalues to configure giteasee values.yaml
sourceControl.gogsvalues to configure gogssee values.yaml
sourceControl.bitbucketCloudvalues to configure bitbucket cloudsee values.yaml
sourceControl.bitbucketServervalues to configure bitbucket server (stash)see values.yaml
server.hostDrone server hostname (should match callback url in oauth config)(internal hostname)
server.protocolDrone server scheme/protocol [http,https]http
server.httpPortDrone server http port80
server.envDrone server environment variables(default values)
server.database.driverDrone server database driver, options are (mysql, postgres, sqlite3)sqlite3
server.database.dataSourceDrone server database DataSource/var/lib/drone/drone.sqlite
server.logs.debugDrone server enables debug modefalse
server.logs.traceDrone server enables trace modefalse
server.logs.colorDrone server enables colored logsfalse
server.logs.prettyDrone server enables pretty logsfalse
server.logs.textDrone server enables text logs rather than json logstrue
server.envSecrets       Drone server secret environment variables                                                (default values)        
server.adminUser       Initial user to create and set as admin                                                ``
server.alwaysAuthwhether to authenticate when cloning public repositoriesfalse
server.kubernetes.enabledwhether to use kubernetes to run pipelines (if false will run agents instead)true
server.kubernetes.namespacenamespace in which to run pipelines, defaults to release namespace.``        
server.kubernetes.pipelineServiceAccount       if rbac is enabled, what should name of pipeline service account be?                                           ``        
server.annotationsDrone server annotations{}
server.resourcesDrone server pod resource requests & limits{}
server.schedulerNameDrone server alternate scheduler namenil
server.affinityDrone server scheduling preferences{}
server.nodeSelectorDrone server node labels for pod assignment{}
server.tolerationsDrone server node taints to tolerate[]
server.securityContextDrone server securityContext{}
server.extraContainersAdditional sidecar containers""
server.extraVolumesAdditional volumes for use in extraContainers""
agent.envDrone agent environment variables(default values)
agent.replicasDrone agent replicas1
agent.annotationsDrone agent annotations{}
agent.resourcesDrone agent pod resource requests & limits{}
agent.schedulerNameDrone agent alternate scheduler namenil
agent.affinityDrone agent scheduling preferences{}
agent.nodeSelectorDrone agent node labels for pod assignment{}
agent.tolerationsDrone agent node taints to tolerate[]
agent.livenessProbeNot currently used.{}
agent.readinessProbeNot currently used{}
agent.volumesAdditional volumes to make available to agent (shared by dind if used)nil
agent.volumeMountsMount points for volumesnil
agent.rpcServerOverrideOverride rpc server urlnil
dind.enabledEnable or disable DinDtrue
dind.driverDinD storage driveroverlay2
dind.volumeMountsMount points for volumes (defined in agent.volumes)nil
dind.resourcesDinD pod resource requests & limits{}
dind.envDinD environment variablesnil
dind.commandDinD custom command instead of default entry pointnil
dind.argsDinD arguments for custom command or entry pointnil
runner.enabledEnable or disable Drone Kubernetes runner enablefalse
runner.replicasDrone runner replicas1
runner.envDrone runner environment variables(default values)
runner.logs.debugDrone runner enables debug modefalse
runner.logs.traceDrone runner enables trace modefalse
runner.annotationsDrone runner annotations{}
runner.resourcesDrone runner pod resource requests & limits{}
runner.schedulerNameDrone runner alternate scheduler namenil
runner.affinityDrone runner scheduling preferences{}
runner.nodeSelectorDrone runner node labels for pod assignment{}
runner.tolerationsDrone runner node taints to tolerate[]
runner.securityContextDrone runner securityContext{}
secrets.enabledEnable or disable Drone secrets plugin, only used if server.kubernetes.enabled is false and runner.enabled is truefalse
secrets.replicasDrone secrets plugin replicas1
secrets.service.httpPortDrone secrets plugin service HTTP port80
secrets.httpPortDrone secrets plugin HTTP port port3000
secrets.logs.debugDrone secrets plugin enables debug modefalse
secrets.annotationsDrone secrets plugin annotations{}
secrets.resourcesDrone secrets plugin pod resource requests & limits{}
secrets.schedulerNameDrone secrets plugin alternate scheduler namenil
secrets.affinityDrone secrets plugin scheduling preferences{}
secrets.nodeSelectorDrone secrets plugin node labels for pod assignment{}
secrets.tolerationsDrone secrets plugin node taints to tolerate[]
secrets.securityContextDrone secrets plugin securityContext{}
metrics.prometheus.enabledEnable Prometheus metrics endpointfalse
persistence.enabledUse a PVC to persist datatrue
persistence.existingClaimUse an existing PVC to persist datanil
persistence.storageClassStorage class of backing PVCnil
persistence.accessModeUse volume as ReadOnly or ReadWriteReadWriteOnce
persistence.sizeSize of data volume1Gi
sharedSecretDrone server and agent shared secret (Note: The Default random value changes on every helm upgrade causing a rolling update of server and agents)(random value)
rbac.createSpecifies whether RBAC resources should be created.true
rbac.apiVersionRBAC API versionv1
serviceAccount.createSpecifies whether a ServiceAccount should be created.true
serviceAccount.nameThe name of the ServiceAccount to use. If not set and create is true, a name is generated using the fullname template.(fullname template)