// RunController creates a new replication controller named 'name' which creates 'replicas' pods running 'image' func RunController(image, name string, replicas int, client client.Interface, portSpec string, servicePort int) error { controller := api.ReplicationController{ JSONBase: api.JSONBase{ ID: name, }, DesiredState: api.ReplicationControllerState{ Replicas: replicas, ReplicaSelector: map[string]string{ "name": name, }, PodTemplate: api.PodTemplate{ DesiredState: api.PodState{ Manifest: api.ContainerManifest{ Version: "v1beta2", Containers: []api.Container{ { Name: strings.ToLower(name), Image: image, Ports: makePorts(portSpec), }, }, }, }, Labels: map[string]string{ "name": name, }, }, }, Labels: map[string]string{ "name": name, }, } controllerOut, err := client.CreateReplicationController(controller) if err != nil { return err } data, err := yaml.Marshal(controllerOut) if err != nil { return err } fmt.Print(string(data)) if servicePort > 0 { svc, err := createService(name, servicePort, client) if err != nil { return err } data, err = yaml.Marshal(svc) if err != nil { return err } fmt.Printf(string(data)) } return nil }
// RunController creates a new replication controller named 'name' which creates 'replicas' pods running 'image'. func RunController(image, name string, replicas int, client client.Interface, portSpec string, servicePort int) error { if servicePort > 0 && !util.IsDNSLabel(name) { return fmt.Errorf("Service creation requested, but an invalid name for a service was provided (%s). Service names must be valid DNS labels.", name) } controller := &api.ReplicationController{ JSONBase: api.JSONBase{ ID: name, }, DesiredState: api.ReplicationControllerState{ Replicas: replicas, ReplicaSelector: map[string]string{ "replicationController": name, }, PodTemplate: api.PodTemplate{ DesiredState: api.PodState{ Manifest: api.ContainerManifest{ Version: "v1beta2", Containers: []api.Container{ { Name: strings.ToLower(name), Image: image, Ports: portsFromString(portSpec), }, }, }, }, Labels: map[string]string{ "replicationController": name, }, }, }, } controllerOut, err := client.CreateReplicationController(controller) if err != nil { return err } data, err := yaml.Marshal(controllerOut) if err != nil { return err } fmt.Print(string(data)) if servicePort > 0 { svc, err := createService(name, servicePort, client) if err != nil { return err } data, err = yaml.Marshal(svc) if err != nil { return err } fmt.Printf(string(data)) } return nil }