本文整理汇总了Golang中github.com/rancher/go-rancher/client.LaunchConfig类的典型用法代码示例。如果您正苦于以下问题:Golang LaunchConfig类的具体用法?Golang LaunchConfig怎么用?Golang LaunchConfig使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了LaunchConfig类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: setupNetworking
func setupNetworking(netMode string, launchConfig *rancherClient.LaunchConfig) {
if netMode == "" {
launchConfig.NetworkMode = "managed"
} else if runconfig.IpcMode(netMode).IsContainer() {
// For some reason NetworkMode object is gone runconfig, but IpcMode works the same for this
launchConfig.NetworkMode = "container"
launchConfig.NetworkLaunchConfig = strings.TrimPrefix(netMode, "container:")
} else {
launchConfig.NetworkMode = netMode
}
}
示例2: createLaunchConfig
func createLaunchConfig(r *RancherService, name string, serviceConfig *project.ServiceConfig) (rancherClient.LaunchConfig, error) {
var result rancherClient.LaunchConfig
rancherConfig := r.context.RancherConfig[name]
schemasUrl := strings.SplitN(r.Context().Client.Schemas.Links["self"], "/schemas", 2)[0]
scriptsUrl := schemasUrl + "/scripts/transform"
config, hostConfig, err := docker.Convert(serviceConfig)
if err != nil {
return result, err
}
dockerContainer := &ContainerInspect{
Config: config,
HostConfig: hostConfig,
}
dockerContainer.HostConfig.NetworkMode = runconfig.NetworkMode("")
dockerContainer.Name = "/" + name
err = r.Context().Client.Post(scriptsUrl, dockerContainer, &result)
if err != nil {
return result, err
}
setupNetworking(serviceConfig.Net, &result)
setupVolumesFrom(serviceConfig.VolumesFrom, &result)
err = setupBuild(r, name, &result, serviceConfig)
if result.Labels == nil {
result.Labels = map[string]interface{}{}
}
result.Kind = rancherConfig.Type
result.Vcpu = rancherConfig.Vcpu
result.Userdata = rancherConfig.Userdata
result.MemoryMb = rancherConfig.Memory
result.Disks = []interface{}{}
for _, i := range rancherConfig.Disks {
result.Disks = append(result.Disks, i)
}
if strings.EqualFold(result.Kind, "virtual_machine") || strings.EqualFold(result.Kind, "virtualmachine") {
result.Kind = "virtualMachine"
}
return result, err
}
示例3: populateLbFields
func populateLbFields(r *RancherService, launchConfig *rancherClient.LaunchConfig, service *CompositeService) error {
config, ok := r.context.RancherConfig[r.name]
if ok {
service.LoadBalancerConfig = config.LoadBalancerConfig
}
if err := populateCerts(r.context.Client, service, &config); err != nil {
return err
}
if FindServiceType(r) == LbServiceType {
launchConfig.ImageUuid = ""
// Write back to the ports passed in because the Docker parsing logic changes then
launchConfig.Ports = r.serviceConfig.Ports
launchConfig.Expose = r.serviceConfig.Expose
}
return nil
}
示例4: createLaunchConfig
func createLaunchConfig(r *RancherService, serviceConfig *project.ServiceConfig) (rancherClient.LaunchConfig, error) {
var result rancherClient.LaunchConfig
schemasUrl := strings.SplitN(r.Context().Client.Schemas.Links["self"], "/schemas", 2)[0]
scriptsUrl := schemasUrl + "/scripts/transform"
config, hostConfig, err := docker.Convert(serviceConfig)
if err != nil {
return result, err
}
dockerContainer := &ContainerInspect{
Config: config,
HostConfig: hostConfig,
}
dockerContainer.HostConfig.NetworkMode = runconfig.NetworkMode("")
if serviceConfig.Name != "" {
dockerContainer.Name = "/" + serviceConfig.Name
} else {
dockerContainer.Name = "/" + r.name
}
err = r.Context().Client.Post(scriptsUrl, dockerContainer, &result)
if err != nil {
return result, err
}
result.HealthCheck = r.HealthCheck()
setupNetworking(serviceConfig.Net, &result)
setupVolumesFrom(serviceConfig.VolumesFrom, &result)
err = r.setupBuild(&result, serviceConfig)
if result.Labels == nil {
result.Labels = map[string]interface{}{}
}
return result, err
}
示例5: setupBuild
func (r *RancherService) setupBuild(result *rancherClient.LaunchConfig, serviceConfig *project.ServiceConfig) error {
if serviceConfig.Build != "" {
result.Build = &rancherClient.DockerBuild{
Remote: serviceConfig.Build,
Dockerfile: serviceConfig.Dockerfile,
}
needBuild := true
for _, remote := range project.ValidRemotes {
if strings.HasPrefix(serviceConfig.Build, remote) {
needBuild = false
break
}
}
if needBuild {
image, url, err := Upload(r.context, r.name)
if err != nil {
return err
}
logrus.Infof("Build for %s available at %s", r.name, url)
serviceConfig.Build = url
if serviceConfig.Image == "" {
serviceConfig.Image = image
}
result.Build = &rancherClient.DockerBuild{
Context: url,
Dockerfile: serviceConfig.Dockerfile,
}
result.ImageUuid = "docker:" + image
} else if result.ImageUuid == "" {
result.ImageUuid = fmt.Sprintf("docker:%s_%s_%d", r.context.ProjectName, r.name, time.Now().UnixNano()/int64(time.Millisecond))
}
}
return nil
}
示例6: setupVolumesFrom
func setupVolumesFrom(volumesFrom []string, launchConfig *rancherClient.LaunchConfig) {
launchConfig.DataVolumesFromLaunchConfigs = volumesFrom
}