@@ -96,7 +96,59 @@ Once decrypted within docker-worker, the variable can be referenced just like an
9696}
9797```
9898
99- ### Features: ` taskclusterProxy `
99+ ### Features
100+
101+ Features are services provided by docker-worker that give tasks additional
102+ capabilities and in some cases the ability to communicate with external
103+ resources that would otherwise be unavailable.
104+
105+ These features are enabled by declaring them within the task payload in the
106+ ` features ` object.
107+
108+ Note: Some features require additional information within the task definition.
109+ Consult the documentation for each feature to understand the requirements.
110+
111+ Example:
112+ ``` js
113+ {
114+ " payload" : {
115+ " features" : {
116+ " exampleFeature" : true
117+ }
118+ }
119+ }
120+ ```
121+
122+ #### Features: ` balrogVPNProxy `
123+
124+ Some tasks have the need for communicating with production balrog server over
125+ port 80 through a vpn tunnel. The balrog vpn proxy feature allows a task to
126+ direct requests to http://balrog which will proxy the request over a vpn connection
127+ to production balrog.
128+
129+ This is a restricted feature and taskcluster credentials of the submitter must
130+ contain scopes for ` docker-worker:feature:balrogVPNProxy ` .
131+
132+ To enable, the task must contain the proper scope as well as be declared in
133+ the ` features ` object within the task payload.
134+
135+ Example:
136+ ``` js
137+ {
138+ " scopes" : [" docker-worker:feature:balrogVPNProxy" ],
139+ " payload" : {
140+ " features" : {
141+ " balrogVPNProxy" : true
142+ }
143+ }
144+ }
145+ ```
146+
147+ References:
148+ * [ taskcluster-vpn-proxy] ( https://github.com/taskcluster/taskcluster-vpn-proxy )
149+ * [ docker-worker integration] ( https://github.com/taskcluster/docker-worker/blob/master/lib/balrog_vpn_proxy.js )
150+
151+ #### Features: ` taskclusterProxy `
100152
101153The taskcluster proxy provides an easy and safe way to make authenticated
102154taskcluster requests within the scope(s) of a particular task.
@@ -141,3 +193,31 @@ var queue = new taskcluster.Queue({
141193
142194queue .getTask (' <taskId>' );
143195```
196+
197+ References:
198+ * [ taskcluster-proxy] ( https://github.com/taskcluster/taskcluster-proxy )
199+ * [ docker-worker integration] ( https://github.com/taskcluster/docker-worker/blob/master/lib/features/taskcluster_proxy.js )
200+
201+ #### Features: ` testdroidProxy `
202+
203+ Source: https://github.com/taskcluster/testdroid-proxy
204+
205+ The testdroid proxy allows a task to request and release a device by making
206+ the appropriate calls to http://testdroid . These actions are documented in the
207+ testdroid-proxy
208+ [ documentation] ( https://github.com/taskcluster/testdroid-proxy/blob/master/README.md ) .
209+
210+ Example:
211+ ``` js
212+ {
213+ " payload" : {
214+ " features" : {
215+ " testdroidProxy" : true
216+ },
217+ }
218+ }
219+ ```
220+
221+ References:
222+ * [ testdroid-proxy] ( https://github.com/taskcluster/testdroid-proxy )
223+ * [ docker-worker integration] ( https://github.com/taskcluster/docker-worker/blob/master/lib/features/testdroid_proxy.js )
0 commit comments