Kubernetes client-go creating services and enpdoints Kubernetes client-go creating services and enpdoints kubernetes kubernetes

Kubernetes client-go creating services and enpdoints


   clientset.CoreV1().Services("kube-system").Create(&corev1.Service{            ObjectMeta: metav1.ObjectMeta{                Name:                       controllerSVCName,                Namespace:                  "kube-system",                Labels: map[string]string{                    "k8s-app": "kube-controller-manager",                },            },            Spec: corev1.ServiceSpec{                Ports:                    nil,                Selector:                 nil,                ClusterIP:                "",            },   })


Based on this.

For Services:

serviceClient := clientset.AppsV1().Services(apiv1.NamespaceDefault)service := &corev1.Service{        ObjectMeta: metav1.ObjectMeta{            Name:                       "myservice",            Namespace:                  "default",            Labels: map[string]string{                "app": "myapp",            },        },        Spec: corev1.ServiceSpec{            Ports:                    nil,            Selector:                 nil,            ClusterIP:                "",        },})// Create Servicefmt.Println("Creating service...")result, err := servicesClient.Create(service)if err != nil {    panic(err)}

For deployments:

deploymentsClient := clientset.AppsV1().Deployments(apiv1.NamespaceDefault)deployment := &appsv1.Deployment{    ObjectMeta: metav1.ObjectMeta{        Name: "demo-deployment",    },    Spec: appsv1.DeploymentSpec{        Replicas: int32Ptr(2),        Selector: &metav1.LabelSelector{            MatchLabels: map[string]string{                "app": "demo",            },        },        Template: apiv1.PodTemplateSpec{            ObjectMeta: metav1.ObjectMeta{                Labels: map[string]string{                    "app": "demo",                },            },            Spec: apiv1.PodSpec{                Containers: []apiv1.Container{                    {                        Name:  "web",                        Image: "nginx:1.12",                        Ports: []apiv1.ContainerPort{                            {                                Name:          "http",                                Protocol:      apiv1.ProtocolTCP,                                ContainerPort: 80,                            },                        },                    },                },            },        },    },}// Create Deploymentfmt.Println("Creating deployment...")result, err := deploymentsClient.Create(deployment)if err != nil {    panic(err)}