Browse code

Merge pull request #412 from thaJeztah/19.03_backport_builder_entitilement_confg

[19.03 backport] builder entitlements configuration added.

Andrew Hsu authored on 2019/10/29 02:53:19
Showing 2 changed files
... ...
@@ -196,10 +196,7 @@ func newController(rt http.RoundTripper, opt Opt) (*control.Controller, error) {
196 196
 		ResolveCacheExporterFuncs: map[string]remotecache.ResolveCacheExporterFunc{
197 197
 			"inline": inlineremotecache.ResolveCacheExporterFunc(),
198 198
 		},
199
-		Entitlements: []string{
200
-			string(entitlements.EntitlementNetworkHost),
201
-			// string(entitlements.EntitlementSecurityInsecure),
202
-		},
199
+		Entitlements: getEntitlements(opt.BuilderConfig),
203 200
 	})
204 201
 }
205 202
 
... ...
@@ -255,3 +252,15 @@ func parsePlatforms(platformsStr []string) ([]specs.Platform, error) {
255 255
 	}
256 256
 	return out, nil
257 257
 }
258
+
259
+func getEntitlements(conf config.BuilderConfig) []string {
260
+	var ents []string
261
+	// Incase of no config settings, NetworkHost should be enabled & SecurityInsecure must be disabled.
262
+	if conf.Entitlements.NetworkHost == nil || *conf.Entitlements.NetworkHost {
263
+		ents = append(ents, string(entitlements.EntitlementNetworkHost))
264
+	}
265
+	if conf.Entitlements.SecurityInsecure != nil && *conf.Entitlements.SecurityInsecure {
266
+		ents = append(ents, string(entitlements.EntitlementSecurityInsecure))
267
+	}
268
+	return ents
269
+}
... ...
@@ -61,7 +61,14 @@ type BuilderGCConfig struct {
61 61
 	DefaultKeepStorage string          `json:",omitempty"`
62 62
 }
63 63
 
64
+// BuilderEntitlements contains settings to enable/disable entitlements
65
+type BuilderEntitlements struct {
66
+	NetworkHost      *bool `json:"network-host,omitempty"`
67
+	SecurityInsecure *bool `json:"security-insecure,omitempty"`
68
+}
69
+
64 70
 // BuilderConfig contains config for the builder
65 71
 type BuilderConfig struct {
66
-	GC BuilderGCConfig `json:",omitempty"`
72
+	GC           BuilderGCConfig     `json:",omitempty"`
73
+	Entitlements BuilderEntitlements `json:",omitempty"`
67 74
 }