check.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package amazon
  2. import (
  3. "github.com/compose-spec/compose-go/types"
  4. "github.com/docker/ecs-plugin/pkg/compose"
  5. )
  6. type Warning string
  7. type Warnings []string
  8. type CompatibilityChecker interface {
  9. CheckService(service *types.ServiceConfig)
  10. CheckCapAdd(service *types.ServiceConfig)
  11. CheckDependsOn(service *types.ServiceConfig)
  12. CheckDNS(service *types.ServiceConfig)
  13. CheckDNSOpts(service *types.ServiceConfig)
  14. CheckDNSSearch(service *types.ServiceConfig)
  15. CheckDomainName(service *types.ServiceConfig)
  16. CheckExtraHosts(service *types.ServiceConfig)
  17. CheckHostname(service *types.ServiceConfig)
  18. CheckIpc(service *types.ServiceConfig)
  19. CheckLabels(service *types.ServiceConfig)
  20. CheckLinks(service *types.ServiceConfig)
  21. CheckLogging(service *types.ServiceConfig)
  22. CheckMacAddress(service *types.ServiceConfig)
  23. CheckNetworkMode(service *types.ServiceConfig)
  24. CheckPid(service *types.ServiceConfig)
  25. CheckSysctls(service *types.ServiceConfig)
  26. CheckTmpfs(service *types.ServiceConfig)
  27. CheckUserNSMode(service *types.ServiceConfig)
  28. Errors() []error
  29. }
  30. // Check the compose model do not use unsupported features and inject sane defaults for ECS deployment
  31. func Check(project *compose.Project) []error {
  32. c := FargateCompatibilityChecker{}
  33. for i, service := range project.Services {
  34. c.CheckService(&service)
  35. project.Services[i] = service
  36. }
  37. return c.errors
  38. }