本文整理汇总了Golang中k8s/io/kubernetes/pkg/client/unversioned.Interface.Services方法的典型用法代码示例。如果您正苦于以下问题:Golang Interface.Services方法的具体用法?Golang Interface.Services怎么用?Golang Interface.Services使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类k8s/io/kubernetes/pkg/client/unversioned.Interface
的用法示例。
在下文中一共展示了Interface.Services方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: InstallRegistry
// InstallRegistry checks whether a registry is installed and installs one if not already installed
func (h *Helper) InstallRegistry(kubeClient kclient.Interface, f *clientcmd.Factory, configDir, images string, out io.Writer) error {
_, err := kubeClient.Services("default").Get(svcDockerRegistry)
if err == nil {
// If there's no error, the registry already exists
return nil
}
if !apierrors.IsNotFound(err) {
return errors.NewError("error retrieving docker registry service").WithCause(err)
}
imageTemplate := variable.NewDefaultImageTemplate()
imageTemplate.Format = images
cfg := ®istry.RegistryConfig{
Name: "registry",
Type: "docker-registry",
ImageTemplate: imageTemplate,
Ports: "5000",
Replicas: 1,
Labels: "docker-registry=default",
Volume: "/registry",
ServiceAccount: "registry",
}
cmd := registry.NewCmdRegistry(f, "", "registry", out)
output := &bytes.Buffer{}
err = registry.RunCmdRegistry(f, cmd, output, cfg, []string{})
glog.V(4).Infof("Registry command output:\n%s", output.String())
return err
}
示例2: deleteServices
func deleteServices(kubeClient client.Interface, ns string) error {
items, err := kubeClient.Services(ns).List(labels.Everything(), fields.Everything())
if err != nil {
return err
}
for i := range items.Items {
err := kubeClient.Services(ns).Delete(items.Items[i].Name)
if err != nil && !errors.IsNotFound(err) {
return err
}
}
return nil
}
示例3: deleteServices
func deleteServices(kubeClient client.Interface, ns string) error {
items, err := kubeClient.Services(ns).List(unversioned.ListOptions{})
if err != nil {
return err
}
for i := range items.Items {
err := kubeClient.Services(ns).Delete(items.Items[i].Name)
if err != nil && !errors.IsNotFound(err) {
return err
}
}
return nil
}
示例4: unloadServiceLabel
func unloadServiceLabel(client kclient.Interface, application *api.Application, labelSelector labels.Selector) error {
resourceList, _ := client.Services(application.Namespace).List(kapi.ListOptions{LabelSelector: labelSelector, FieldSelector: fields.Everything()})
errs := []error{}
for _, resource := range resourceList.Items {
if !hasItem(application.Spec.Items, api.Item{Kind: "Service", Name: resource.Name}) {
delete(resource.Labels, fmt.Sprintf("%s.application.%s", application.Namespace, application.Name))
if _, err := client.Services(application.Namespace).Update(&resource); err != nil {
errs = append(errs, err)
}
}
}
return nil
}
示例5: GetServicePods
// GetServicePods gets list of pods targeted by given label selector in given namespace.
func GetServicePods(client k8sClient.Interface, heapsterClient client.HeapsterClient, namespace,
name string, dsQuery *dataselect.DataSelectQuery) (*pod.PodList, error) {
service, err := client.Services(namespace).Get(name)
if err != nil {
return nil, err
}
labelSelector := labels.SelectorFromSet(service.Spec.Selector)
channels := &common.ResourceChannels{
PodList: common.GetPodListChannelWithOptions(client,
common.NewSameNamespaceQuery(namespace),
api.ListOptions{
LabelSelector: labelSelector,
FieldSelector: fields.Everything(),
},
1),
}
apiPodList := <-channels.PodList.List
if err := <-channels.PodList.Error; err != nil {
return nil, err
}
podList := pod.CreatePodList(apiPodList.Items, dsQuery, heapsterClient)
return &podList, nil
}
示例6: getServicesForDSDeletion
// Based on given selector returns list of services that are candidates for deletion.
// Services are matched by daemon sets' label selector. They are deleted if given
// label selector is targeting only 1 daemon set.
func getServicesForDSDeletion(client client.Interface, labelSelector labels.Selector,
namespace string) ([]api.Service, error) {
daemonSet, err := client.Extensions().DaemonSets(namespace).List(api.ListOptions{
LabelSelector: labelSelector,
FieldSelector: fields.Everything(),
})
if err != nil {
return nil, err
}
// if label selector is targeting only 1 daemon set
// then we can delete services targeted by this label selector,
// otherwise we can not delete any services so just return empty list
if len(daemonSet.Items) != 1 {
return []api.Service{}, nil
}
services, err := client.Services(namespace).List(api.ListOptions{
LabelSelector: labelSelector,
FieldSelector: fields.Everything(),
})
if err != nil {
return nil, err
}
return services.Items, nil
}
示例7: DeleteDaemonSetServices
// DeleteDaemonSetServices deletes services related to daemon set with given name in given namespace.
func DeleteDaemonSetServices(client k8sClient.Interface, namespace, name string) error {
log.Printf("Deleting services related to %s daemon set from %s namespace", name,
namespace)
daemonSet, err := client.Extensions().DaemonSets(namespace).Get(name)
if err != nil {
return err
}
labelSelector, err := unversioned.LabelSelectorAsSelector(daemonSet.Spec.Selector)
if err != nil {
return err
}
services, err := getServicesForDSDeletion(client, labelSelector, namespace)
if err != nil {
return err
}
for _, service := range services {
if err := client.Services(namespace).Delete(service.Name); err != nil {
return err
}
}
log.Printf("Successfully deleted services related to %s daemon set from %s namespace",
name, namespace)
return nil
}
示例8: ValidateAppName
// ValidateAppName validates application name. When error is returned, name validity could not be
// determined.
func ValidateAppName(spec *AppNameValiditySpec, client client.Interface) (*AppNameValidity, error) {
log.Printf("Validating %s application name in %s namespace", spec.Name, spec.Namespace)
isValidRc := false
isValidService := false
_, err := client.ReplicationControllers(spec.Namespace).Get(spec.Name)
if err != nil {
if isNotFoundError(err) {
isValidRc = true
} else {
return nil, err
}
}
_, err = client.Services(spec.Namespace).Get(spec.Name)
if err != nil {
if isNotFoundError(err) {
isValidService = true
} else {
return nil, err
}
}
isValid := isValidRc && isValidService
log.Printf("Validation result for %s application name in %s namespace is %t", spec.Name,
spec.Namespace, isValid)
return &AppNameValidity{Valid: isValid}, nil
}
示例9: DeleteReplicationControllerServices
// Deletes services related to replication controller with given name in given namespace.
func DeleteReplicationControllerServices(client client.Interface, namespace, name string) error {
log.Printf("Deleting services related to %s replication controller from %s namespace", name,
namespace)
replicationController, err := client.ReplicationControllers(namespace).Get(name)
if err != nil {
return err
}
labelSelector, err := toLabelSelector(replicationController.Spec.Selector)
if err != nil {
return err
}
services, err := getServicesForDeletion(client, labelSelector, namespace)
if err != nil {
return err
}
for _, service := range services {
if err := client.Services(namespace).Delete(service.Name); err != nil {
return err
}
}
log.Printf("Successfully deleted services related to %s replication controller from %s namespace",
name, namespace)
return nil
}
示例10: getServicesForDeletion
// Based on given selector returns list of services that are candidates for deletion.
// Services are matched by replication controllers' label selector. They are deleted if given
// label selector is targeting only 1 replication controller.
func getServicesForDeletion(client client.Interface, labelSelector labels.Selector,
namespace string) ([]api.Service, error) {
replicationControllers, err := client.ReplicationControllers(namespace).List(api.ListOptions{
LabelSelector: labelSelector,
FieldSelector: fields.Everything(),
})
if err != nil {
return nil, err
}
// if label selector is targeting only 1 replication controller
// then we can delete services targeted by this label selector,
// otherwise we can not delete any services so just return empty list
if len(replicationControllers.Items) != 1 {
return []api.Service{}, nil
}
services, err := client.Services(namespace).List(api.ListOptions{
LabelSelector: labelSelector,
FieldSelector: fields.Everything(),
})
if err != nil {
return nil, err
}
return services.Items, nil
}
开发者ID:FujitsuEnablingSoftwareTechnologyGmbH,项目名称:dashboard,代码行数:31,代码来源:replicationcontrollercommon.go
示例11: createService
func createService(kc kclient.Interface, name string, typeLoadBalancer bool) (*kapi.Service, error) {
serviceType := kapi.ServiceTypeClusterIP
if typeLoadBalancer {
serviceType = kapi.ServiceTypeLoadBalancer
}
service := &kapi.Service{
ObjectMeta: kapi.ObjectMeta{
GenerateName: "service-",
Name: name,
},
Spec: kapi.ServiceSpec{
Type: serviceType,
Ports: []kapi.ServicePort{{
Protocol: "TCP",
Port: 8080,
}},
},
}
return kc.Services(kapi.NamespaceDefault).Create(service)
}
示例12: InstallRegistry
// InstallRegistry checks whether a registry is installed and installs one if not already installed
func (h *Helper) InstallRegistry(kubeClient kclient.Interface, f *clientcmd.Factory, configDir, images string, out, errout io.Writer) error {
_, err := kubeClient.Services(DefaultNamespace).Get(SvcDockerRegistry)
if err == nil {
// If there's no error, the registry already exists
return nil
}
if !apierrors.IsNotFound(err) {
return errors.NewError("error retrieving docker registry service").WithCause(err).WithDetails(h.OriginLog())
}
imageTemplate := variable.NewDefaultImageTemplate()
imageTemplate.Format = images
opts := ®istry.RegistryOptions{
Config: ®istry.RegistryConfig{
Name: "registry",
Type: "docker-registry",
ImageTemplate: imageTemplate,
Ports: "5000",
Replicas: 1,
Labels: "docker-registry=default",
Volume: "/registry",
ServiceAccount: "registry",
},
}
cmd := registry.NewCmdRegistry(f, "", "registry", out, errout)
output := &bytes.Buffer{}
err = opts.Complete(f, cmd, output, output, []string{})
if err != nil {
return errors.NewError("error completing the registry configuration").WithCause(err)
}
err = opts.RunCmdRegistry()
glog.V(4).Infof("Registry command output:\n%s", output.String())
if err != nil {
return errors.NewError("cannot install registry").WithCause(err).WithDetails(h.OriginLog())
}
return nil
}
示例13: GetDaemonSetDetail
// Returns detailed information about the given daemon set in the given namespace.
func GetDaemonSetDetail(client k8sClient.Interface, heapsterClient client.HeapsterClient,
namespace, name string) (*DaemonSetDetail, error) {
log.Printf("Getting details of %s daemon set in %s namespace", name, namespace)
daemonSetWithPods, err := getRawDaemonSetWithPods(client, namespace, name)
if err != nil {
return nil, err
}
daemonSet := daemonSetWithPods.DaemonSet
pods := daemonSetWithPods.Pods
services, err := client.Services(namespace).List(api.ListOptions{
LabelSelector: labels.Everything(),
FieldSelector: fields.Everything(),
})
if err != nil {
return nil, err
}
daemonSetDetail := &DaemonSetDetail{
ObjectMeta: common.NewObjectMeta(daemonSet.ObjectMeta),
TypeMeta: common.NewTypeMeta(common.ResourceKindDaemonSet),
LabelSelector: daemonSet.Spec.Selector,
PodInfo: getDaemonSetPodInfo(daemonSet, pods.Items),
ServiceList: resourceService.ServiceList{Services: make([]resourceService.Service, 0)},
}
matchingServices := getMatchingServicesforDS(services.Items, daemonSet)
for _, service := range matchingServices {
daemonSetDetail.ServiceList.Services = append(daemonSetDetail.ServiceList.Services,
resourceService.ToService(&service))
}
for _, container := range daemonSet.Spec.Template.Spec.Containers {
daemonSetDetail.ContainerImages = append(daemonSetDetail.ContainerImages,
container.Image)
}
daemonSetDetail.Pods = pod.CreatePodList(pods.Items, heapsterClient)
return daemonSetDetail, nil
}
示例14: GetReplicationControllerDetail
// GetReplicationControllerDetail returns detailed information about the given replication
// controller in the given namespace.
func GetReplicationControllerDetail(client k8sClient.Interface, heapsterClient client.HeapsterClient,
namespace, name string) (*ReplicationControllerDetail, error) {
log.Printf("Getting details of %s replication controller in %s namespace", name, namespace)
replicationControllerWithPods, err := getRawReplicationControllerWithPods(client, namespace, name)
if err != nil {
return nil, err
}
replicationController := replicationControllerWithPods.ReplicationController
pods := replicationControllerWithPods.Pods
services, err := client.Services(namespace).List(api.ListOptions{
LabelSelector: labels.Everything(),
FieldSelector: fields.Everything(),
})
if err != nil {
return nil, err
}
replicationControllerDetail := &ReplicationControllerDetail{
ObjectMeta: common.NewObjectMeta(replicationController.ObjectMeta),
TypeMeta: common.NewTypeMeta(common.ResourceKindReplicationController),
LabelSelector: replicationController.Spec.Selector,
PodInfo: getReplicationPodInfo(replicationController, pods.Items),
ServiceList: resourceService.ServiceList{Services: make([]resourceService.Service, 0)},
}
matchingServices := getMatchingServices(services.Items, replicationController)
for _, service := range matchingServices {
replicationControllerDetail.ServiceList.Services = append(
replicationControllerDetail.ServiceList.Services, resourceService.ToService(&service))
}
for _, container := range replicationController.Spec.Template.Spec.Containers {
replicationControllerDetail.ContainerImages = append(replicationControllerDetail.ContainerImages,
container.Image)
}
replicationControllerDetail.Pods = pod.CreatePodList(pods.Items, heapsterClient)
return replicationControllerDetail, nil
}
开发者ID:FujitsuEnablingSoftwareTechnologyGmbH,项目名称:dashboard,代码行数:46,代码来源:replicationcontrollerdetail.go
示例15: GetServiceDetail
// GetServiceDetail gets service details.
func GetServiceDetail(client k8sClient.Interface, heapsterClient client.HeapsterClient,
namespace, name string) (*ServiceDetail, error) {
log.Printf("Getting details of %s service in %s namespace", name, namespace)
// TODO(maciaszczykm): Use channels.
serviceData, err := client.Services(namespace).Get(name)
if err != nil {
return nil, err
}
podList, err := GetServicePods(client, heapsterClient, namespace, serviceData.Spec.Selector)
if err != nil {
return nil, err
}
service := ToServiceDetail(serviceData)
service.PodList = *podList
return &service, nil
}