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)
        }
    }
  • 相关阅读:
    MongoDB 安装及其配置
    hdu 1241 Oil Deposits
    2014ACM/ICPC亚洲区北京站
    hdu 5901 count prime & code vs 3223 素数密度
    hdu 2191 珍惜现在,感恩生活
    FOJ 2181 快来买肉松饼
    hdu 5384 Danganronpa
    hdu 2222 Keywords Search
    hdu 1300 Pearls
    2016.2.24. 《构建之法》开始阅读
  • 原文地址:https://www.cnblogs.com/wangjq19920210/p/13129550.html
Copyright © 2011-2022 走看看