1"use strict";(self.webpackChunkwoodpecker=self.webpackChunkwoodpecker||[]).push([["1707"],{84276(e,o,r){r.r(o),r.d(o,{metadata:()=>t,default:()=>u,frontMatter:()=>s,contentTitle:()=>c,toc:()=>i,assets:()=>d});var t=JSON.parse('{"id":"administration/advanced/autoscaler","title":"Autoscaler","description":"If your would like dynamically scale your agents with the load, you can use our autoscaler.","source":"@site/versioned_docs/version-2.8/30-administration/40-advanced/30-autoscaler.md","sourceDirName":"30-administration/40-advanced","slug":"/administration/advanced/autoscaler","permalink":"/docs/2.8/administration/advanced/autoscaler","draft":false,"unlisted":false,"editUrl":"https://github.com/woodpecker-ci/woodpecker/edit/main/docs/versioned_docs/version-2.8/30-administration/40-advanced/30-autoscaler.md","tags":[],"version":"2.8","sidebarPosition":30,"frontMatter":{},"sidebar":"tutorialSidebar","previous":{"title":"SSL","permalink":"/docs/2.8/administration/advanced/ssl"},"next":{"title":"Prometheus","permalink":"/docs/2.8/administration/advanced/prometheus"}}'),n=r(94686),a=r(23191);let s={},c="Autoscaler",d={},i=[{value:"Setup",id:"setup",level:2},{value:"docker-compose",id:"docker-compose",level:3}];function l(e){let o={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",...(0,a.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.header,{children:(0,n.jsx)(o.h1,{id:"autoscaler",children:"Autoscaler"})}),"\n",(0,n.jsxs)(o.p,{children:["If your would like dynamically scale your agents with the load, you can use ",(0,n.jsx)(o.a,{href:"https://github.com/woodpecker-ci/autoscaler",children:"our autoscaler"}),"."]}),"\n",(0,n.jsxs)(o.p,{children:["Please note that the autoscaler is not feature-complete yet. You can follow the progress ",(0,n.jsx)(o.a,{href:"https://github.com/woodpecker-ci/autoscaler#roadmap",children:"here"}),"."]}),"\n",(0,n.jsx)(o.h2,{id:"setup",children:"Setup"}),"\n",(0,n.jsx)(o.h3,{id:"docker-compose",children:"docker-compose"}),"\n",(0,n.jsxs)(o.p,{children:["If you are using docker-compose you can add the following to your ",(0,n.jsx)(o.code,{children:"docker-compose.yaml"})," file:"]}),"\n",(0,n.jsx)(o.pre,{children:(0,n.jsx)(o.code,{className:"language-yaml",children:"version: '3'\n\nservices:\n woodpecker-server:\n image: woodpeckerci/woodpecker-server:next\n [...]\n\n woodpecker-autoscaler:\n image: woodpeckerci/autoscaler:next\n restart: always\n depends_on:\n - woodpecker-server\n environment:\n - WOODPECKER_SERVER=https://your-woodpecker-server.tld # the url of your woodpecker server / could also be a public url\n - WOODPECKER_TOKEN=${WOODPECKER_TOKEN} # the api token you can get from the UI https://your-woodpecker-server.tld/user\n - WOODPECKER_MIN_AGENTS=0\n - WOODPECKER_MAX_AGENTS=3\n - WOODPECKER_WORKFLOWS_PER_AGENT=2 # the number of workflows each agent can run at the same time\n - WOODEPCKER_GRPC_ADDR=https://grpc.your-woodpecker-server.tld # the grpc address of your woodpecker server, publicly accessible from the agents\n - WOODEPCKER_GRPC_SECURE=true\n - WOODPECKER_AGENT_ENV= # optional environment variables to pass to the agents\n - WOODPECKER_PROVIDER=hetznercloud # set the provider, you can find all the available ones down below\n - WOODPECKER_HETZNERCLOUD_API_TOKEN=${WOODPECKER_HETZNERCLOUD_API_TOKEN} # your api token for the Hetzner cloud\n"})})]})}function u(e={}){let{wrapper:o}={...(0,a.R)(),...e.components};return o?(0,n.jsx)(o,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},23191(e,o,r){r.d(o,{R:()=>s,x:()=>c});var t=r(92990);let n={},a=t.createContext(n);function s(e){let o=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(o):{...o,...e}},[o,e])}function c(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:s(e.components),t.createElement(a.Provider,{value:o},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.