mirror of
https://github.com/containers/podman.git
synced 2025-06-26 04:46:57 +08:00
api: allow build api to accept secrets
Following commit makes sure that `build` api can accept external secret and allows currently `NOOP` `podman-remote build -t tag --secret id=mysecret,src=/path/on/remote` to become functional. Just like `docker` following api is a hidden field and only exposed to `podman-remote` but could document it if it needs exposed on `swagger`. Signed-off-by: Aditya Rajan <arajan@redhat.com>
This commit is contained in:
@ -122,6 +122,7 @@ func BuildImage(w http.ResponseWriter, r *http.Request) {
|
|||||||
Target string `schema:"target"`
|
Target string `schema:"target"`
|
||||||
Timestamp int64 `schema:"timestamp"`
|
Timestamp int64 `schema:"timestamp"`
|
||||||
Ulimits string `schema:"ulimits"`
|
Ulimits string `schema:"ulimits"`
|
||||||
|
Secrets string `schema:"secrets"`
|
||||||
}{
|
}{
|
||||||
Dockerfile: "Dockerfile",
|
Dockerfile: "Dockerfile",
|
||||||
Registry: "docker.io",
|
Registry: "docker.io",
|
||||||
@ -239,6 +240,16 @@ func BuildImage(w http.ResponseWriter, r *http.Request) {
|
|||||||
dnssearch = m
|
dnssearch = m
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var secrets = []string{}
|
||||||
|
if _, found := r.URL.Query()["secrets"]; found {
|
||||||
|
var m = []string{}
|
||||||
|
if err := json.Unmarshal([]byte(query.Secrets), &m); err != nil {
|
||||||
|
utils.BadRequest(w, "secrets", query.Secrets, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
secrets = m
|
||||||
|
}
|
||||||
|
|
||||||
var output string
|
var output string
|
||||||
if len(query.Tag) > 0 {
|
if len(query.Tag) > 0 {
|
||||||
output = query.Tag[0]
|
output = query.Tag[0]
|
||||||
@ -447,6 +458,7 @@ func BuildImage(w http.ResponseWriter, r *http.Request) {
|
|||||||
SeccompProfilePath: seccomp,
|
SeccompProfilePath: seccomp,
|
||||||
ShmSize: strconv.Itoa(query.ShmSize),
|
ShmSize: strconv.Itoa(query.ShmSize),
|
||||||
Ulimit: ulimits,
|
Ulimit: ulimits,
|
||||||
|
Secrets: secrets,
|
||||||
},
|
},
|
||||||
CNIConfigDir: rtc.Network.CNIPluginDirs[0],
|
CNIConfigDir: rtc.Network.CNIPluginDirs[0],
|
||||||
CNIPluginPath: util.DefaultCNIPluginPath,
|
CNIPluginPath: util.DefaultCNIPluginPath,
|
||||||
|
@ -116,6 +116,13 @@ func Build(ctx context.Context, containerFiles []string, options entities.BuildO
|
|||||||
}
|
}
|
||||||
params.Add("dnsservers", c)
|
params.Add("dnsservers", c)
|
||||||
}
|
}
|
||||||
|
if secrets := options.CommonBuildOpts.Secrets; len(secrets) > 0 {
|
||||||
|
c, err := jsoniter.MarshalToString(secrets)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
params.Add("secrets", c)
|
||||||
|
}
|
||||||
if dnsoptions := options.CommonBuildOpts.DNSOptions; len(dnsoptions) > 0 {
|
if dnsoptions := options.CommonBuildOpts.DNSOptions; len(dnsoptions) > 0 {
|
||||||
c, err := jsoniter.MarshalToString(dnsoptions)
|
c, err := jsoniter.MarshalToString(dnsoptions)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Reference in New Issue
Block a user