mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2024-11-30 05:41:12 +00:00
Add support for configuring escalated plugins via envvar.
This commit is contained in:
parent
a84db63f11
commit
d5767b7d57
4 changed files with 26 additions and 12 deletions
|
@ -264,9 +264,10 @@ func PostBuild(c *gin.Context) {
|
||||||
Config: string(raw),
|
Config: string(raw),
|
||||||
Secret: string(sec),
|
Secret: string(sec),
|
||||||
System: &model.System{
|
System: &model.System{
|
||||||
Link: httputil.GetURL(c.Request),
|
Link: httputil.GetURL(c.Request),
|
||||||
Plugins: strings.Split(os.Getenv("PLUGIN_FILTER"), " "),
|
Plugins: strings.Split(os.Getenv("PLUGIN_FILTER"), " "),
|
||||||
Globals: strings.Split(os.Getenv("PLUGIN_PARAMS"), " "),
|
Globals: strings.Split(os.Getenv("PLUGIN_PARAMS"), " "),
|
||||||
|
Escalates: strings.Split(os.Getenv("ESCALATE_FILTER"), " "),
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -2,11 +2,12 @@ package controller
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
|
||||||
"regexp"
|
"regexp"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
|
||||||
log "github.com/Sirupsen/logrus"
|
log "github.com/Sirupsen/logrus"
|
||||||
"github.com/drone/drone/engine"
|
"github.com/drone/drone/engine"
|
||||||
|
@ -214,9 +215,10 @@ func PostHook(c *gin.Context) {
|
||||||
Config: string(raw),
|
Config: string(raw),
|
||||||
Secret: string(sec),
|
Secret: string(sec),
|
||||||
System: &model.System{
|
System: &model.System{
|
||||||
Link: httputil.GetURL(c.Request),
|
Link: httputil.GetURL(c.Request),
|
||||||
Plugins: strings.Split(os.Getenv("PLUGIN_FILTER"), " "),
|
Plugins: strings.Split(os.Getenv("PLUGIN_FILTER"), " "),
|
||||||
Globals: strings.Split(os.Getenv("PLUGIN_PARAMS"), " "),
|
Globals: strings.Split(os.Getenv("PLUGIN_PARAMS"), " "),
|
||||||
|
Escalates: strings.Split(os.Getenv("ESCALATE_FILTER"), " "),
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -19,3 +19,13 @@ Whitelist official Drone plugins and registry user `octocat`
|
||||||
```
|
```
|
||||||
PLUGIN_FILTER=plugins/* octocat/*
|
PLUGIN_FILTER=plugins/* octocat/*
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Additionally, some plugins may require to be execute as a "privileged" container.
|
||||||
|
This mode is most common for plugins that are attempting to run docker in docker type behaviors (for example the plugins/docker requires this mode).
|
||||||
|
Drone will ship will a default pattern that will allow selected official Drone plugins to run in an privileged mode.
|
||||||
|
This whitelist can be customized by setting the `ESCALATE_FILTER` environment variable.
|
||||||
|
This is a space-separated list and includes glob matching capabilities.
|
||||||
|
|
||||||
|
```
|
||||||
|
ESCALATE_FILTER=plugins/drone-docker plugins/drone-ecr plugins/drone-gcr
|
||||||
|
```
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
package model
|
package model
|
||||||
|
|
||||||
type System struct {
|
type System struct {
|
||||||
Version string `json:"version"`
|
Version string `json:"version"`
|
||||||
Link string `json:"link_url"`
|
Link string `json:"link_url"`
|
||||||
Plugins []string `json:"plugins"`
|
Plugins []string `json:"plugins"`
|
||||||
Globals []string `json:"globals"`
|
Globals []string `json:"globals"`
|
||||||
|
Escalates []string `json:"privileged_plugins"`
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue