zoukankan      html  css  js  c++  java
  • package controllerutil

    原文链接:https://s0godoc0org.icopy.site/sigs.k8s.io/controller-runtime/pkg/controller/controllerutil

    import "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"

    软件包controllerutil包含用于使用和实现Controller的实用程序功能.

    demo

    package main
    
    import (
        "context"
    
        appsv1 "k8s.io/api/apps/v1"
        corev1 "k8s.io/api/core/v1"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    
        "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
        logf "sigs.k8s.io/controller-runtime/pkg/log"
    )
    
    var (
        log = logf.Log.WithName("controllerutil-examples")
    )
    
    // This example creates or updates an existing deployment
    func main() {
        // c is client.Client
    
        // Create or Update the deployment default/foo
        deploy := &appsv1.Deployment{ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"}}
    
        op, err := controllerutil.CreateOrUpdate(context.TODO(), c, deploy, func() error {
    
            // Deployment selector is immutable so we set this value only if
            // a new object is going to be created
            if deploy.ObjectMeta.CreationTimestamp.IsZero() {
                deploy.Spec.Selector = &metav1.LabelSelector{
                    MatchLabels: map[string]string{"foo": "bar"},
                }
            }
    
            // update the Deployment pod template
            deploy.Spec.Template = corev1.PodTemplateSpec{
                ObjectMeta: metav1.ObjectMeta{
                    Labels: map[string]string{
                        "foo": "bar",
                    },
                },
                Spec: corev1.PodSpec{
                    Containers: []corev1.Container{
                        {
                            Name:  "busybox",
                            Image: "busybox",
                        },
                    },
                },
            }
    
            return nil
        })
    
        if err != nil {
            log.Error(err, "Deployment reconcile failed")
        } else {
            log.Info("Deployment successfully reconciled", "operation", op)
        }
    }
  • 相关阅读:
    三、checkedListBoxControl
    三、安装MyCat-Web
    三、zookeeper安装
    二、.Net 连接mycat
    一、MyCat的搭建
    二、优惠卷
    二、Docker部署应用
    【2019-05-08】感知当下
    【一句日历】2019年7月
    【读书】2019
  • 原文地址:https://www.cnblogs.com/wangjq19920210/p/13129550.html
Copyright © 2011-2022 走看看