momo's Blog.

使用kubebuilder写一个cron Operator

字数统计: 173阅读时长: 1 min
2023/12/12 Share

前言

算是记录一下学习笔记,完全按照官方文档来的.
https://book.kubebuilder.io/cronjob-tutorial/basic-project

项目初始化

1
2
3
4
5
6
# create a project directory, and then run the init command.
mkdir project
cd project
# we'll use a domain of tutorial.kubebuilder.io,
# so all API groups will be <group>.tutorial.kubebuilder.io.
kubebuilder init --domain tutorial.kubebuilder.io --repo tutorial.kubebuilder.io/project

启动

限定namespace

通过在 ctrl.NewManager 传递 cache.Options 指定mgr工作的namespace.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var namespaces []string // List of Namespaces
defaultNamespaces := make(map[string]cache.Config)

for _, ns := range namespaces {
defaultNamespaces[ns] = cache.Config{}
}

mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{
Scheme: scheme,
Cache: cache.Options{
DefaultNamespaces: defaultNamespaces,
},
Metrics: server.Options{
BindAddress: metricsAddr,
},
WebhookServer: webhook.NewServer(webhook.Options{Port: 9443}),
HealthProbeBindAddress: probeAddr,
LeaderElection: enableLeaderElection,
LeaderElectionID: "80807133.tutorial.kubebuilder.io",
})

API关系

group kind,

CATALOG
  1. 1. 前言
  2. 2. 项目初始化
  3. 3. 启动
    1. 3.1. 限定namespace
    2. 3.2. API关系