Skip to content

Commit 4bccde3

Browse files
author
Alexander Menzhinsky
committed
Parametrize container env and create options
1 parent d9758be commit 4bccde3

File tree

2 files changed

+23
-10
lines changed

2 files changed

+23
-10
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Azure IoT Hub SDK for Golang, provides both device-to-cloud ([`iotdevice`](iotdevice)) and cloud-to-device ([`iotservice`](iotservice)) packages for end-to-end communication.
44

5-
API is subject to change until `v1.0.0`. Bumping minor version indicates breaking changes.
5+
API is subject to change until `v1.0.0`. Bumping minor version may indicate breaking changes.
66

77
See [TODO](#todo) section to see what's missing in the library.
88

cmd/iothub-service/main.go

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,12 @@ var (
9090

9191
jobTypeFlag iotservice.JobV2Type
9292
jobStatusFlag iotservice.JobV2Status
93+
94+
// deployments
95+
envFlag map[string]interface{}
96+
97+
// https://docs.docker.com/engine/api/v1.30/#operation/ContainerCreate
98+
createOptionsFlag map[string]interface{}
9399
)
94100

95101
func main() {
@@ -376,6 +382,8 @@ func run() error {
376382
f.StringVar(&targetConditionFlag, "target-condition", "*", "target condition")
377383
f.Var((*internal.StringsMapFlag)(&metricsFlag), "metric", "metric name and query, key=value")
378384
f.Var((*internal.JSONMapFlag)(&modulesContentFlag), "module-prop", "module property, key=value")
385+
f.Var((*internal.JSONMapFlag)(&envFlag), "env", "container environment, key=value")
386+
f.Var((*internal.JSONMapFlag)(&createOptionsFlag), "create-options", "container create options, key=value")
379387
},
380388
},
381389
{
@@ -736,6 +744,17 @@ func createConfiguration(ctx context.Context, c *iotservice.Client, args []strin
736744

737745
// https://github.com/Azure/azure-iot-cli-extension/blob/v0.8.7/azext_iot/assets/edge-deploy-2.0.schema.json
738746
func createDeployment(ctx context.Context, c *iotservice.Client, args []string) error {
747+
env := make(map[string]interface{}, len(envFlag))
748+
for k, v := range envFlag {
749+
env[k] = map[string]interface{}{
750+
"value": v,
751+
}
752+
}
753+
createOptions, err := json.Marshal(createOptionsFlag)
754+
if err != nil {
755+
return err
756+
}
757+
739758
return output(c.CreateConfiguration(ctx, &iotservice.Configuration{
740759
ID: args[0],
741760
SchemaVersion: schemaVersionFlag,
@@ -750,16 +769,10 @@ func createDeployment(ctx context.Context, c *iotservice.Client, args []string)
750769
args[1]: map[string]interface{}{
751770
"type": "docker",
752771
"settings": map[string]interface{}{
753-
"image": args[2],
754-
755-
// https://docs.docker.com/engine/api/v1.30/#operation/ContainerCreate
756-
// TODO: "createOptions": "{\"Cmd\":\"date\"}",
772+
"image": args[2],
773+
"createOptions": string(createOptions),
757774
},
758-
// TODO: "env": map[string]interface{}{
759-
// TODO: "KEY": map[string]interface{}{
760-
// TODO: "value": "value",
761-
// TODO: },
762-
// TODO: },
775+
"env": env,
763776
"status": "running",
764777
"restartPolicy": "always",
765778
"version": "1.0",

0 commit comments

Comments
 (0)