|
|
@@ -26,7 +26,7 @@ import (
|
|
|
"strconv"
|
|
|
"strings"
|
|
|
|
|
|
- "github.com/Azure/azure-sdk-for-go/profiles/latest/containerinstance/mgmt/containerinstance"
|
|
|
+ "github.com/Azure/azure-sdk-for-go/services/containerinstance/mgmt/2018-10-01/containerinstance"
|
|
|
"github.com/Azure/go-autorest/autorest/to"
|
|
|
"github.com/compose-spec/compose-go/types"
|
|
|
|
|
|
@@ -71,6 +71,15 @@ func ToContainerGroup(aciContext store.AciContext, p types.Project) (containerin
|
|
|
return containerinstance.ContainerGroup{}, err
|
|
|
}
|
|
|
|
|
|
+ var restartPolicyCondition containerinstance.ContainerGroupRestartPolicy
|
|
|
+ if len(p.Services) == 1 &&
|
|
|
+ p.Services[0].Deploy != nil &&
|
|
|
+ p.Services[0].Deploy.RestartPolicy != nil {
|
|
|
+ restartPolicyCondition = toAciRestartPolicy(p.Services[0].Deploy.RestartPolicy.Condition)
|
|
|
+ } else {
|
|
|
+ restartPolicyCondition = containerinstance.Always
|
|
|
+ }
|
|
|
+
|
|
|
var containers []containerinstance.Container
|
|
|
groupDefinition := containerinstance.ContainerGroup{
|
|
|
Name: &containerGroupName,
|
|
|
@@ -80,6 +89,7 @@ func ToContainerGroup(aciContext store.AciContext, p types.Project) (containerin
|
|
|
Containers: &containers,
|
|
|
Volumes: volumes,
|
|
|
ImageRegistryCredentials: ®istryCreds,
|
|
|
+ RestartPolicy: restartPolicyCondition,
|
|
|
},
|
|
|
}
|
|
|
|
|
|
@@ -125,6 +135,32 @@ func ToContainerGroup(aciContext store.AciContext, p types.Project) (containerin
|
|
|
return groupDefinition, nil
|
|
|
}
|
|
|
|
|
|
+func toAciRestartPolicy(restartPolicy string) containerinstance.ContainerGroupRestartPolicy {
|
|
|
+ switch restartPolicy {
|
|
|
+ case containers.RestartPolicyNone:
|
|
|
+ return containerinstance.Never
|
|
|
+ case containers.RestartPolicyAny:
|
|
|
+ return containerinstance.Always
|
|
|
+ case containers.RestartPolicyOnFailure:
|
|
|
+ return containerinstance.OnFailure
|
|
|
+ default:
|
|
|
+ return containerinstance.Always
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func toContainerRestartPolicy(aciRestartPolicy containerinstance.ContainerGroupRestartPolicy) string {
|
|
|
+ switch aciRestartPolicy {
|
|
|
+ case containerinstance.Never:
|
|
|
+ return containers.RestartPolicyNone
|
|
|
+ case containerinstance.Always:
|
|
|
+ return containers.RestartPolicyAny
|
|
|
+ case containerinstance.OnFailure:
|
|
|
+ return containers.RestartPolicyOnFailure
|
|
|
+ default:
|
|
|
+ return containers.RestartPolicyAny
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
func getDNSSidecar(containers []containerinstance.Container) containerinstance.Container {
|
|
|
var commands []string
|
|
|
for _, container := range containers {
|
|
|
@@ -348,19 +384,20 @@ func ContainerGroupToContainer(containerID string, cg containerinstance.Containe
|
|
|
platform := string(cg.OsType)
|
|
|
|
|
|
c := containers.Container{
|
|
|
- ID: containerID,
|
|
|
- Status: status,
|
|
|
- Image: to.String(cc.Image),
|
|
|
- Command: command,
|
|
|
- CPUTime: 0,
|
|
|
- CPULimit: cpuLimit,
|
|
|
- MemoryUsage: 0,
|
|
|
- MemoryLimit: uint64(memLimits),
|
|
|
- PidsCurrent: 0,
|
|
|
- PidsLimit: 0,
|
|
|
- Labels: nil,
|
|
|
- Ports: ToPorts(cg.IPAddress, *cc.Ports),
|
|
|
- Platform: platform,
|
|
|
+ ID: containerID,
|
|
|
+ Status: status,
|
|
|
+ Image: to.String(cc.Image),
|
|
|
+ Command: command,
|
|
|
+ CPUTime: 0,
|
|
|
+ CPULimit: cpuLimit,
|
|
|
+ MemoryUsage: 0,
|
|
|
+ MemoryLimit: uint64(memLimits),
|
|
|
+ PidsCurrent: 0,
|
|
|
+ PidsLimit: 0,
|
|
|
+ Labels: nil,
|
|
|
+ Ports: ToPorts(cg.IPAddress, *cc.Ports),
|
|
|
+ Platform: platform,
|
|
|
+ RestartPolicyCondition: toContainerRestartPolicy(cg.RestartPolicy),
|
|
|
}
|
|
|
|
|
|
return c, nil
|