mirror of https://github.com/openkruise/kruise.git
Preparing docs and chart for v0.7.0 (#480)
Signed-off-by: Siyu Wang <FillZpp.pub@gmail.com>
This commit is contained in:
parent
d734546559
commit
7e3550bf25
|
|
@ -2,6 +2,9 @@
|
|||
"ignorePatterns": [
|
||||
{
|
||||
"pattern": "^https://codecov.io"
|
||||
},
|
||||
{
|
||||
"pattern": "^https://openkruise.io"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
72
CHANGELOG.md
72
CHANGELOG.md
|
|
@ -1,5 +1,71 @@
|
|||
# Change Log
|
||||
|
||||
## v0.7.0
|
||||
|
||||
Since v0.7.0:
|
||||
|
||||
1. OpenKruise requires Kubernetes 1.13+ because of CRD conversion.
|
||||
Note that for Kubernetes 1.13 and 1.14, users must enable `CustomResourceWebhookConversion` feature-gate in kube-apiserver before install or upgrade Kruise.
|
||||
2. OpenKruise official image supports multi-arch, by default including linux/amd64, linux/arm64, and linux/arm platforms.
|
||||
|
||||
### A NEW workload controller - AdvancedCronJob
|
||||
Thanks for @rishi-anand contributing!
|
||||
|
||||
An enhanced version of CronJob, it supports multiple kind in a template:
|
||||
|
||||
```yaml
|
||||
apiVersion: apps.kruise.io/v1alpha1
|
||||
kind: AdvancedCronJob
|
||||
spec:
|
||||
template:
|
||||
|
||||
# Option 1: use jobTemplate, which is equivalent to original CronJob
|
||||
jobTemplate:
|
||||
# ...
|
||||
|
||||
# Option 2: use broadcastJobTemplate, which will create a BroadcastJob object when cron schedule triggers
|
||||
broadcastJobTemplate:
|
||||
# ...
|
||||
|
||||
# Options 3(future): ...
|
||||
```
|
||||
|
||||
### CloneSet
|
||||
|
||||
- **Partition support intOrStr format**
|
||||
- Warning log for expectation timeout
|
||||
- Remove ownerRef when pod's labels not matched CloneSet's selector
|
||||
- Allow updating revisionHistoryLimit in validation
|
||||
- Fix resourceVersionExpectation race condition
|
||||
- Fix overwrite gracePeriod update
|
||||
- Fix webhook checking podsToDelete
|
||||
|
||||
### StatefulSet
|
||||
|
||||
- **Promote Advanced StatefulSet to v1beta1**
|
||||
- A conversion webhook will help users to transfer existing and new `v1alpha1` advanced statefulsets to `v1beta1` automatically
|
||||
- Even all advanced statefulsets have been converted to `v1beta1`, users can still get them through `v1alpha1` client and api
|
||||
- **Support reserveOrdinal for Advanced StatefulSet**
|
||||
|
||||
### DaemonSet
|
||||
|
||||
- Add validation webhook for DaemonSet
|
||||
- Fix pending pods created by controller
|
||||
|
||||
### BroadcastJob
|
||||
|
||||
- Optimize the way to calculate parallelism
|
||||
- Check ownerReference for filtered pods
|
||||
- Add pod label validation
|
||||
- Add ScaleExpectation for BroadcastJob
|
||||
|
||||
### Others
|
||||
|
||||
- Initializing capabilities if allowPrivileged is true
|
||||
- Support secret cert for webhook with vip
|
||||
- Add rate limiter config
|
||||
- Fix in-place rollback when spec image no latest tag
|
||||
|
||||
## v0.6.1
|
||||
|
||||
### CloneSet
|
||||
|
|
@ -209,9 +275,9 @@ It provides full features for more efficient, deterministic and controlled deplo
|
|||
### Documents
|
||||
|
||||
- Three blog posts are added in Kruise [website](http://openkruise.io/en-us/blog/index.html), titled:
|
||||
1. Kruise Controller Classification Guidance.
|
||||
2. Learning Concurrent Reconciling.
|
||||
3. UnitedDeploymemt - Supporting Multi-domain Workload Management.
|
||||
1. Kruise Controller Classification Guidance.
|
||||
2. Learning Concurrent Reconciling.
|
||||
3. UnitedDeploymemt - Supporting Multi-domain Workload Management.
|
||||
- New documents are added for UnitedDeployment, including a [tutorial](./docs/tutorial/uniteddeployment.md).
|
||||
- Revise main README.md.
|
||||
|
||||
|
|
|
|||
|
|
@ -12,10 +12,9 @@
|
|||
|
||||
| 最新进展:|
|
||||
|------------------|
|
||||
|Dec 16th, 2020. Kruise v0.7.0 发布! 提供一个新的 AdvancedCronJob CRD、将 Advanced StatefulSet 升级 v1beta1 版本、以及其他控制器一些新增能力,详情参见 [CHANGELOG](CHANGELOG.md).|
|
||||
|Oct 1st, 2020. Kruise v0.6.1 发布! 提供一系列增强 feature 和 bugfix 比如 CloneSet lifecycle hook 、UnitedDeployment 支持 CloneSet 等,详情参见 [CHANGELOG](CHANGELOG.md).|
|
||||
|Aug 19th, 2020. Kruise v0.6.0 发布! 升级新的项目结构和依赖,并提供新的 Advanced DaemonSet 控制器,详情参见 [CHANGELOG](CHANGELOG.md).|
|
||||
|May 19th, 2020. Kruise v0.5.0 发布! CloneSet 支持 `maxSurge` 策略、为 StatefulSet/SidecarSet 修复部分 bug,详情参见 [CHANGELOG](CHANGELOG.md).|
|
||||
|Mar 20th, 2020. Kruise v0.4.1 发布! 为 Advanced StatefulSet 和 CloneSet 提供了 **优雅原地升级** 功能,详情参见 [CHANGELOG](CHANGELOG.md).|
|
||||
|
||||
## 介绍
|
||||
|
||||
|
|
@ -36,6 +35,8 @@ OpenKruise (官网: [https://openkruise.io](https://openkruise.io)) 是托管在
|
|||
|
||||
- [Advanced DaemonSet](https://openkruise.io/zh-cn/docs/advanced_daemonset.html): 基于原生 DaemonSet 之上的增强版本,默认行为与原生一致,在此之外提供了灰度分批、按 Node label 选择、暂停、热升级等发布策略。
|
||||
|
||||
- [AdvancedCronJob](https://openkruise.io/zh-cn/docs/advancedcronjob.html): 一个扩展的 CronJob 控制器,目前 template 模板支持配置使用 Job 或 BroadcastJob。
|
||||
|
||||
项目的 **roadmap** 参考[这里](https://github.com/openkruise/kruise/projects)。
|
||||
[Video](https://www.youtube.com/watch?v=elB7reZ6eAQ) by [Lachlan Evenson](https://github.com/lachie83) 是一个对于新人很友好的 demo。
|
||||
|
||||
|
|
@ -58,14 +59,14 @@ OpenKruise (官网: [https://openkruise.io](https://openkruise.io)) 是托管在
|
|||
## 快速开始
|
||||
|
||||
想要快速使用 OpenKruise 非常简单!
|
||||
对于版本高于 v1.12+ 的 Kubernetes 集群来说,只要使用 helm v3.1.0+ 执行安装即可:
|
||||
对于版本高于 v1.13+ 的 Kubernetes 集群来说,只要使用 helm v3.1.0+ 执行安装即可:
|
||||
|
||||
```bash
|
||||
# Kubernetes 版本低于 1.14
|
||||
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.6.1/kruise-chart.tgz --disable-openapi-validation
|
||||
# Kubernetes 版本 1.13 或 1.14
|
||||
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.7.0/kruise-chart.tgz --disable-openapi-validation
|
||||
|
||||
# Kubernetes 版本大于等于 1.15
|
||||
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.6.1/kruise-chart.tgz
|
||||
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.7.0/kruise-chart.tgz
|
||||
```
|
||||
|
||||
注意直接安装 chart 会使用默认的 template values,你也可以根据你的集群情况指定一些特殊配置,比如修改 resources 限制或者只启用某些特定的控制器能力。
|
||||
|
|
|
|||
13
README.md
13
README.md
|
|
@ -12,10 +12,9 @@ English | [简体中文](./README-zh_CN.md)
|
|||
|
||||
| What is NEW!|
|
||||
|------------------|
|
||||
|Dec 16th, 2020. Kruise v0.7.0 is **RELEASED**! It provides a new CRD named AdvancedCronJob, promotes AdvancedStatefulSet to v1beta1 and a few features in other controllers, please check the [CHANGELOG](CHANGELOG.md) for details.|
|
||||
|Oct 1st, 2020. Kruise v0.6.1 is **RELEASED**! It provides various features and bugfix, such as CloneSet lifecycle hook and UnitedDeployment supported CloneSet, please check the [CHANGELOG](CHANGELOG.md) for details.|
|
||||
|Aug 19th, 2020. Kruise v0.6.0 is **RELEASED**! It updates Kubernetes dependency and switches to new controller runtime framework. It also supports a new controller called Advanced DaemonSet, please check the [CHANGELOG](CHANGELOG.md) for details.|
|
||||
|May 19th, 2020. Kruise v0.5.0 is **RELEASED**! It supports `maxSurge` for CloneSet and fixes bugs for StatefulSet/SidecarSet, please check the [CHANGELOG](CHANGELOG.md) for details.|
|
||||
|Mar 20th, 2020. Kruise v0.4.1 is **RELEASED**! It provides **graceful in-place update** for Advanced StatefulSet and CloneSet, please check the [CHANGELOG](CHANGELOG.md) for details.|
|
||||
|
||||
## Introduction
|
||||
|
||||
|
|
@ -36,6 +35,8 @@ As of now, Kruise offers these workload controllers:
|
|||
|
||||
- [Advanced DaemonSet](https://openkruise.io/en-us/docs/advanced_daemonset.html): An enhanced version of default [DaemonSet](https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/) with extra upgrade strategies such as partition, node selector, pause and surging.
|
||||
|
||||
- [AdvancedCronJob](https://openkruise.io/en-us/docs/advancedcronjob.html): An extended CronJob controller, currently its template supports Job and BroadcastJob.
|
||||
|
||||
The project **roadmap** is actively updated in [here](https://github.com/openkruise/kruise/projects).
|
||||
This [video](https://www.youtube.com/watch?v=elB7reZ6eAQ) demo by [Lachlan Evenson](https://github.com/lachie83) is a good introduction for new users.
|
||||
|
||||
|
|
@ -55,14 +56,14 @@ This [video](https://www.youtube.com/watch?v=elB7reZ6eAQ) demo by [Lachlan Evens
|
|||
|
||||
## Quick Start
|
||||
|
||||
For a Kubernetes cluster with its version higher than v1.12, you can simply install Kruise with helm v3.1.0+:
|
||||
For a Kubernetes cluster with its version higher than v1.13, you can simply install Kruise with helm v3.1.0+:
|
||||
|
||||
```bash
|
||||
# Kubernetes 1.14 and older versions
|
||||
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.6.1/kruise-chart.tgz --disable-openapi-validation
|
||||
# Kubernetes 1.13 and 1.14
|
||||
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.7.0/kruise-chart.tgz --disable-openapi-validation
|
||||
|
||||
# Kubernetes 1.15 and newer versions
|
||||
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.6.1/kruise-chart.tgz
|
||||
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.7.0/kruise-chart.tgz
|
||||
```
|
||||
|
||||
Note that installing this chart directly means it will use the default template values for the kruise-manager.
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ apiVersion: v1
|
|||
name: kruise
|
||||
description: Helm chart for all kruise-manager components
|
||||
version: 0.7.0
|
||||
appVersion: 0.7.0
|
||||
icon: http://openkruise.io/img/kruise_white.png
|
||||
keywords:
|
||||
- kubernetes
|
||||
|
|
|
|||
|
|
@ -4,9 +4,8 @@
|
|||
|
||||
Install with Helm 3:
|
||||
|
||||
Note that Kruise v0.7+ will only support Kubernetes 1.13+ and 1.13/1.14 must enable `CustomResourceWebhookConversion` feature-gate.
|
||||
|
||||
If your Kubernetes version is lower than 1.15, you'll need Helm v3.1.0+ that has the flag --disable-openapi-validation.
|
||||
OpenKruise only supports Kubernetes version >= `1.13+` because of CRD conversion.
|
||||
Note that for Kubernetes 1.13 and 1.14, users must enable `CustomResourceWebhookConversion` feature-gate in kube-apiserver before install or upgrade Kruise.
|
||||
|
||||
```bash
|
||||
# Kubernetes 1.13 and 1.14
|
||||
|
|
@ -43,7 +42,7 @@ The following table lists the configurable parameters of the kruise chart and th
|
|||
| `revisionHistoryLimit` | Limit of revision history | `3` |
|
||||
| `manager.replicas` | Replicas of kruise-controller-manager deployment | `2` |
|
||||
| `manager.image.repository` | Repository for kruise-manager image | `openkruise/kruise-manager` |
|
||||
| `manager.image.tag` | Tag for kruise-manager image | `v0.6.1` |
|
||||
| `manager.image.tag` | Tag for kruise-manager image | `v0.7.0` |
|
||||
| `manager.resources.limits.cpu` | CPU resource limit of kruise-manager container | `100m` |
|
||||
| `manager.resources.limits.memory` | Memory resource limit of kruise-manager container | `256Mi` |
|
||||
| `manager.resources.requests.cpu` | CPU resource request of kruise-manager container | `100m` |
|
||||
|
|
|
|||
|
|
@ -0,0 +1,220 @@
|
|||
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.2.9
|
||||
creationTimestamp: null
|
||||
name: advancedcronjobs.apps.kruise.io
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- JSONPath: .spec.schedule
|
||||
description: The schedule of advanced cron job.
|
||||
name: Schedule
|
||||
type: string
|
||||
- JSONPath: .status.type
|
||||
description: Type of cron job.
|
||||
name: Type
|
||||
type: string
|
||||
- JSONPath: .status.lastScheduleTime
|
||||
description: The last time at which job was scheduled.
|
||||
name: LastScheduleTime
|
||||
type: date
|
||||
- JSONPath: .metadata.creationTimestamp
|
||||
description: CreationTimestamp is a timestamp representing the server time when
|
||||
this object was created. It is not guaranteed to be set in happens-before order
|
||||
across separate operations. Clients may not set this value. It is represented
|
||||
in RFC3339 form and is in UTC.
|
||||
name: AGE
|
||||
type: date
|
||||
group: apps.kruise.io
|
||||
names:
|
||||
kind: AdvancedCronJob
|
||||
listKind: AdvancedCronJobList
|
||||
plural: advancedcronjobs
|
||||
shortNames:
|
||||
- acj
|
||||
singular: advancedcronjob
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
description: AdvancedCronJob is the Schema for the advancedcronjobs API
|
||||
properties:
|
||||
apiVersion:
|
||||
description: 'APIVersion defines the versioned schema of this representation
|
||||
of an object. Servers should convert recognized schemas to the latest
|
||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||
type: string
|
||||
kind:
|
||||
description: 'Kind is a string value representing the REST resource this
|
||||
object represents. Servers may infer this from the endpoint the client
|
||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
description: AdvancedCronJobSpec defines the desired state of AdvancedCronJob
|
||||
properties:
|
||||
concurrencyPolicy:
|
||||
description: 'Specifies how to treat concurrent executions of a Job.
|
||||
Valid values are: - "Allow" (default): allows CronJobs to run concurrently;
|
||||
- "Forbid": forbids concurrent runs, skipping next run if previous
|
||||
run hasn''t finished yet; - "Replace": cancels currently running job
|
||||
and replaces it with a new one'
|
||||
enum:
|
||||
- Allow
|
||||
- Forbid
|
||||
- Replace
|
||||
type: string
|
||||
failedJobsHistoryLimit:
|
||||
description: The number of failed finished jobs to retain. This is a
|
||||
pointer to distinguish between explicit zero and not specified.
|
||||
format: int32
|
||||
minimum: 0
|
||||
type: integer
|
||||
paused:
|
||||
description: Paused will pause the cron job.
|
||||
type: boolean
|
||||
schedule:
|
||||
description: The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.
|
||||
minLength: 0
|
||||
type: string
|
||||
startingDeadlineSeconds:
|
||||
description: Optional deadline in seconds for starting the job if it
|
||||
misses scheduled time for any reason. Missed jobs executions will
|
||||
be counted as failed ones.
|
||||
format: int64
|
||||
minimum: 0
|
||||
type: integer
|
||||
successfulJobsHistoryLimit:
|
||||
description: The number of successful finished jobs to retain. This
|
||||
is a pointer to distinguish between explicit zero and not specified.
|
||||
format: int32
|
||||
minimum: 0
|
||||
type: integer
|
||||
template:
|
||||
description: Specifies the job that will be created when executing a
|
||||
CronJob.
|
||||
properties:
|
||||
broadcastJobTemplate:
|
||||
description: Specifies the broadcastjob that will be created when
|
||||
executing a BroadcastCronJob.
|
||||
properties:
|
||||
metadata:
|
||||
description: Standard object's metadata of the jobs created
|
||||
from this template.
|
||||
type: object
|
||||
spec:
|
||||
description: Specification of the desired behavior of the broadcastjob.
|
||||
properties:
|
||||
completionPolicy:
|
||||
description: CompletionPolicy indicates the completion policy
|
||||
of the job. Default is Always CompletionPolicyType
|
||||
properties:
|
||||
activeDeadlineSeconds:
|
||||
description: ActiveDeadlineSeconds specifies the duration
|
||||
in seconds relative to the startTime that the job
|
||||
may be active before the system tries to terminate
|
||||
it; value must be positive integer. Only works for
|
||||
Always type.
|
||||
format: int64
|
||||
type: integer
|
||||
ttlSecondsAfterFinished:
|
||||
description: ttlSecondsAfterFinished limits the lifetime
|
||||
of a Job that has finished execution (either Complete
|
||||
or Failed). If this field is set, ttlSecondsAfterFinished
|
||||
after the Job finishes, it is eligible to be automatically
|
||||
deleted. When the Job is being deleted, its lifecycle
|
||||
guarantees (e.g. finalizers) will be honored. If this
|
||||
field is unset, the Job won't be automatically deleted.
|
||||
If this field is set to zero, the Job becomes eligible
|
||||
to be deleted immediately after it finishes. This
|
||||
field is alpha-level and is only honored by servers
|
||||
that enable the TTLAfterFinished feature. Only works
|
||||
for Always type
|
||||
format: int32
|
||||
type: integer
|
||||
type:
|
||||
description: Type indicates the type of the CompletionPolicy
|
||||
Default is Always
|
||||
type: string
|
||||
type: object
|
||||
failurePolicy:
|
||||
description: FailurePolicy indicates the behavior of the
|
||||
job, when failed pod is found.
|
||||
properties:
|
||||
restartLimit:
|
||||
description: RestartLimit specifies the number of retries
|
||||
before marking the pod failed.
|
||||
format: int32
|
||||
type: integer
|
||||
type:
|
||||
description: Type indicates the type of FailurePolicyType.
|
||||
type: string
|
||||
type: object
|
||||
parallelism:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: Parallelism specifies the maximum desired number
|
||||
of pods the job should run at any given time. The actual
|
||||
number of pods running in steady state will be less than
|
||||
this number when the work left to do is less than max
|
||||
parallelism. Not setting this value means no limit.
|
||||
x-kubernetes-int-or-string: true
|
||||
paused:
|
||||
description: Paused will pause the job.
|
||||
type: boolean
|
||||
template:
|
||||
description: Template describes the pod that will be created
|
||||
when executing a job.
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
required:
|
||||
- template
|
||||
type: object
|
||||
type: object
|
||||
jobTemplate:
|
||||
description: Specifies the job that will be created when executing
|
||||
a CronJob.
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
type: object
|
||||
required:
|
||||
- schedule
|
||||
- template
|
||||
type: object
|
||||
status:
|
||||
description: AdvancedCronJobStatus defines the observed state of AdvancedCronJob
|
||||
properties:
|
||||
active:
|
||||
description: A list of pointers to currently running jobs.
|
||||
items:
|
||||
description: ObjectReference contains enough information to let you
|
||||
inspect or modify the referred object.
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
type: array
|
||||
lastScheduleTime:
|
||||
description: Information when was the last time the job was successfully
|
||||
scheduled.
|
||||
format: date-time
|
||||
type: string
|
||||
type:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
version: v1alpha1
|
||||
versions:
|
||||
- name: v1alpha1
|
||||
served: true
|
||||
storage: true
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
||||
|
|
@ -221,13 +221,12 @@ spec:
|
|||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: 'Partition is the desired number of pods
|
||||
in old revisions. Value can be an absolute number
|
||||
(ex: 5) or a percentage of desired pods (ex: 10%).
|
||||
Absolute number is calculated from percentage by rounding
|
||||
up by default. It means when partition is set during
|
||||
pods updating, (replicas - partition value) number
|
||||
of pods will be updated. Default value is 0.'
|
||||
description: 'Partition is the desired number of pods in old revisions.
|
||||
Value can be an absolute number (ex: 5) or a percentage of desired
|
||||
pods (ex: 10%). Absolute number is calculated from percentage
|
||||
by rounding up by default. It means when partition is set during
|
||||
pods updating, (replicas - partition value) number of pods will
|
||||
be updated. Default value is 0.'
|
||||
x-kubernetes-int-or-string: true
|
||||
paused:
|
||||
description: Paused indicates that the CloneSet is paused. Default
|
||||
|
|
@ -0,0 +1,820 @@
|
|||
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.2.9
|
||||
creationTimestamp: null
|
||||
name: statefulsets.apps.kruise.io
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- JSONPath: .spec.replicas
|
||||
description: The desired number of pods.
|
||||
name: DESIRED
|
||||
type: integer
|
||||
- JSONPath: .status.replicas
|
||||
description: The number of currently all pods.
|
||||
name: CURRENT
|
||||
type: integer
|
||||
- JSONPath: .status.updatedReplicas
|
||||
description: The number of pods updated.
|
||||
name: UPDATED
|
||||
type: integer
|
||||
- JSONPath: .status.readyReplicas
|
||||
description: The number of pods ready.
|
||||
name: READY
|
||||
type: integer
|
||||
- JSONPath: .metadata.creationTimestamp
|
||||
description: CreationTimestamp is a timestamp representing the server time when
|
||||
this object was created. It is not guaranteed to be set in happens-before order
|
||||
across separate operations. Clients may not set this value. It is represented
|
||||
in RFC3339 form and is in UTC.
|
||||
name: AGE
|
||||
type: date
|
||||
group: apps.kruise.io
|
||||
names:
|
||||
kind: StatefulSet
|
||||
listKind: StatefulSetList
|
||||
plural: statefulsets
|
||||
shortNames:
|
||||
- sts
|
||||
- asts
|
||||
singular: statefulset
|
||||
scope: Namespaced
|
||||
conversion:
|
||||
strategy: Webhook
|
||||
webhookClientConfig:
|
||||
caBundle: Cg==
|
||||
service:
|
||||
namespace: kruise-system
|
||||
name: kruise-webhook-service
|
||||
path: /convert
|
||||
preserveUnknownFields: false
|
||||
subresources:
|
||||
scale:
|
||||
labelSelectorPath: .status.labelSelector
|
||||
specReplicasPath: .spec.replicas
|
||||
statusReplicasPath: .status.replicas
|
||||
status: {}
|
||||
version: v1alpha1
|
||||
versions:
|
||||
- name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: StatefulSet is the Schema for the statefulsets API
|
||||
properties:
|
||||
apiVersion:
|
||||
description: 'APIVersion defines the versioned schema of this representation
|
||||
of an object. Servers should convert recognized schemas to the latest
|
||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||
type: string
|
||||
kind:
|
||||
description: 'Kind is a string value representing the REST resource this
|
||||
object represents. Servers may infer this from the endpoint the client
|
||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
description: StatefulSetSpec defines the desired state of StatefulSet
|
||||
properties:
|
||||
podManagementPolicy:
|
||||
description: podManagementPolicy controls how pods are created during
|
||||
initial scale up, when replacing pods on nodes, or when scaling
|
||||
down. The default policy is `OrderedReady`, where pods are created
|
||||
in increasing order (pod-0, then pod-1, etc) and the controller
|
||||
will wait until each pod is ready before continuing. When scaling
|
||||
down, the pods are removed in the opposite order. The alternative
|
||||
policy is `Parallel` which will create pods in parallel to match
|
||||
the desired scale without waiting, and on scale down will delete
|
||||
all pods at once.
|
||||
type: string
|
||||
replicas:
|
||||
description: 'replicas is the desired number of replicas of the given
|
||||
Template. These are replicas in the sense that they are instantiations
|
||||
of the same Template, but individual replicas also have a consistent
|
||||
identity. If unspecified, defaults to 1. TODO: Consider a rename
|
||||
of this field.'
|
||||
format: int32
|
||||
type: integer
|
||||
revisionHistoryLimit:
|
||||
description: revisionHistoryLimit is the maximum number of revisions
|
||||
that will be maintained in the StatefulSet's revision history. The
|
||||
revision history consists of all revisions not represented by a
|
||||
currently applied StatefulSetSpec version. The default value is
|
||||
10.
|
||||
format: int32
|
||||
type: integer
|
||||
selector:
|
||||
description: 'selector is a label query over pods that should match
|
||||
the replica count. It must match the pod template''s labels. More
|
||||
info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors'
|
||||
properties:
|
||||
matchExpressions:
|
||||
description: matchExpressions is a list of label selector requirements.
|
||||
The requirements are ANDed.
|
||||
items:
|
||||
description: A label selector requirement is a selector that
|
||||
contains values, a key, and an operator that relates the key
|
||||
and values.
|
||||
properties:
|
||||
key:
|
||||
description: key is the label key that the selector applies
|
||||
to.
|
||||
type: string
|
||||
operator:
|
||||
description: operator represents a key's relationship to
|
||||
a set of values. Valid operators are In, NotIn, Exists
|
||||
and DoesNotExist.
|
||||
type: string
|
||||
values:
|
||||
description: values is an array of string values. If the
|
||||
operator is In or NotIn, the values array must be non-empty.
|
||||
If the operator is Exists or DoesNotExist, the values
|
||||
array must be empty. This array is replaced during a strategic
|
||||
merge patch.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: matchLabels is a map of {key,value} pairs. A single
|
||||
{key,value} in the matchLabels map is equivalent to an element
|
||||
of matchExpressions, whose key field is "key", the operator
|
||||
is "In", and the values array contains only "value". The requirements
|
||||
are ANDed.
|
||||
type: object
|
||||
type: object
|
||||
serviceName:
|
||||
description: 'serviceName is the name of the service that governs
|
||||
this StatefulSet. This service must exist before the StatefulSet,
|
||||
and is responsible for the network identity of the set. Pods get
|
||||
DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local
|
||||
where "pod-specific-string" is managed by the StatefulSet controller.'
|
||||
type: string
|
||||
template:
|
||||
description: template is the object that describes the pod that will
|
||||
be created if insufficient replicas are detected. Each pod stamped
|
||||
out by the StatefulSet will fulfill this Template, but have a unique
|
||||
identity from the rest of the StatefulSet.
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
updateStrategy:
|
||||
description: updateStrategy indicates the StatefulSetUpdateStrategy
|
||||
that will be employed to update Pods in the StatefulSet when a revision
|
||||
is made to Template.
|
||||
properties:
|
||||
rollingUpdate:
|
||||
description: RollingUpdate is used to communicate parameters when
|
||||
Type is RollingUpdateStatefulSetStrategyType.
|
||||
properties:
|
||||
inPlaceUpdateStrategy:
|
||||
description: InPlaceUpdateStrategy contains strategies for
|
||||
in-place update.
|
||||
properties:
|
||||
gracePeriodSeconds:
|
||||
description: GracePeriodSeconds is the timespan between
|
||||
set Pod status to not-ready and update images in Pod
|
||||
spec when in-place update a Pod.
|
||||
format: int32
|
||||
type: integer
|
||||
type: object
|
||||
maxUnavailable:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: 'The maximum number of pods that can be unavailable
|
||||
during the update. Value can be an absolute number (ex:
|
||||
5) or a percentage of desired pods (ex: 10%). Absolute number
|
||||
is calculated from percentage by rounding down. Also, maxUnavailable
|
||||
can just be allowed to work with Parallel podManagementPolicy.
|
||||
Defaults to 1.'
|
||||
x-kubernetes-int-or-string: true
|
||||
minReadySeconds:
|
||||
description: MinReadySeconds indicates how long will the pod
|
||||
be considered ready after it's updated. MinReadySeconds
|
||||
works with both OrderedReady and Parallel podManagementPolicy.
|
||||
It affects the pod scale up speed when the podManagementPolicy
|
||||
is set to be OrderedReady. Combined with MaxUnavailable,
|
||||
it affects the pod update speed regardless of podManagementPolicy.
|
||||
Default value is 0, max is 300.
|
||||
format: int32
|
||||
type: integer
|
||||
partition:
|
||||
description: 'Partition indicates the ordinal at which the
|
||||
StatefulSet should be partitioned by default. But if unorderedUpdate
|
||||
has been set: - Partition indicates the number of pods
|
||||
with non-updated revisions when rolling update. - It means
|
||||
controller will update $(replicas - partition) number of
|
||||
pod. Default value is 0.'
|
||||
format: int32
|
||||
type: integer
|
||||
paused:
|
||||
description: Paused indicates that the StatefulSet is paused.
|
||||
Default value is false
|
||||
type: boolean
|
||||
podUpdatePolicy:
|
||||
description: PodUpdatePolicy indicates how pods should be
|
||||
updated Default value is "ReCreate"
|
||||
type: string
|
||||
unorderedUpdate:
|
||||
description: UnorderedUpdate contains strategies for non-ordered
|
||||
update. If it is not nil, pods will be updated with non-ordered
|
||||
sequence. Noted that UnorderedUpdate can only be allowed
|
||||
to work with Parallel podManagementPolicy
|
||||
properties:
|
||||
priorityStrategy:
|
||||
description: Priorities are the rules for calculating
|
||||
the priority of updating pods. Each pod to be updated,
|
||||
will pass through these terms and get a sum of weights.
|
||||
properties:
|
||||
orderPriority:
|
||||
description: 'Order priority terms, pods will be sorted
|
||||
by the value of orderedKey. For example: ``` orderPriority:
|
||||
- orderedKey: key1 - orderedKey: key2 ``` First,
|
||||
all pods which have key1 in labels will be sorted
|
||||
by the value of key1. Then, the left pods which
|
||||
have no key1 but have key2 in labels will be sorted
|
||||
by the value of key2 and put behind those pods have
|
||||
key1.'
|
||||
items:
|
||||
description: UpdatePriorityOrder defines order priority.
|
||||
properties:
|
||||
orderedKey:
|
||||
description: Calculate priority by value of
|
||||
this key. Values of this key, will be sorted
|
||||
by GetInt(val). GetInt method will find the
|
||||
last int in value, such as getting 5 in value
|
||||
'5', getting 10 in value 'sts-10'.
|
||||
type: string
|
||||
required:
|
||||
- orderedKey
|
||||
type: object
|
||||
type: array
|
||||
weightPriority:
|
||||
description: Weight priority terms, pods will be sorted
|
||||
by the sum of all terms weight.
|
||||
items:
|
||||
description: UpdatePriorityWeightTerm defines weight
|
||||
priority.
|
||||
properties:
|
||||
matchSelector:
|
||||
description: MatchSelector is used to select
|
||||
by pod's labels.
|
||||
properties:
|
||||
matchExpressions:
|
||||
description: matchExpressions is a list
|
||||
of label selector requirements. The requirements
|
||||
are ANDed.
|
||||
items:
|
||||
description: A label selector requirement
|
||||
is a selector that contains values,
|
||||
a key, and an operator that relates
|
||||
the key and values.
|
||||
properties:
|
||||
key:
|
||||
description: key is the label key
|
||||
that the selector applies to.
|
||||
type: string
|
||||
operator:
|
||||
description: operator represents a
|
||||
key's relationship to a set of values.
|
||||
Valid operators are In, NotIn, Exists
|
||||
and DoesNotExist.
|
||||
type: string
|
||||
values:
|
||||
description: values is an array of
|
||||
string values. If the operator is
|
||||
In or NotIn, the values array must
|
||||
be non-empty. If the operator is
|
||||
Exists or DoesNotExist, the values
|
||||
array must be empty. This array
|
||||
is replaced during a strategic merge
|
||||
patch.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: matchLabels is a map of {key,value}
|
||||
pairs. A single {key,value} in the matchLabels
|
||||
map is equivalent to an element of matchExpressions,
|
||||
whose key field is "key", the operator
|
||||
is "In", and the values array contains
|
||||
only "value". The requirements are ANDed.
|
||||
type: object
|
||||
type: object
|
||||
weight:
|
||||
description: Weight associated with matching
|
||||
the corresponding matchExpressions, in the
|
||||
range 1-100.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- matchSelector
|
||||
- weight
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
type: object
|
||||
type: object
|
||||
type:
|
||||
description: Type indicates the type of the StatefulSetUpdateStrategy.
|
||||
Default is RollingUpdate.
|
||||
type: string
|
||||
type: object
|
||||
volumeClaimTemplates:
|
||||
description: 'volumeClaimTemplates is a list of claims that pods are
|
||||
allowed to reference. The StatefulSet controller is responsible
|
||||
for mapping network identities to claims in a way that maintains
|
||||
the identity of a pod. Every claim in this list must have at least
|
||||
one matching (by name) volumeMount in one container in the template.
|
||||
A claim in this list takes precedence over any volumes in the template,
|
||||
with the same name. TODO: Define the behavior if a claim already
|
||||
exists with the same name.'
|
||||
items:
|
||||
description: PersistentVolumeClaim is a user's request for and claim
|
||||
to a persistent volume
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
type: array
|
||||
required:
|
||||
- selector
|
||||
- template
|
||||
type: object
|
||||
status:
|
||||
description: StatefulSetStatus defines the observed state of StatefulSet
|
||||
properties:
|
||||
availableReplicas:
|
||||
description: AvailableReplicas is the number of Pods created by the
|
||||
StatefulSet controller that have been ready for minReadySeconds.
|
||||
format: int32
|
||||
type: integer
|
||||
collisionCount:
|
||||
description: collisionCount is the count of hash collisions for the
|
||||
StatefulSet. The StatefulSet controller uses this field as a collision
|
||||
avoidance mechanism when it needs to create the name for the newest
|
||||
ControllerRevision.
|
||||
format: int32
|
||||
type: integer
|
||||
conditions:
|
||||
description: Represents the latest available observations of a statefulset's
|
||||
current state.
|
||||
items:
|
||||
description: StatefulSetCondition describes the state of a statefulset
|
||||
at a certain point.
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
type: array
|
||||
currentReplicas:
|
||||
description: currentReplicas is the number of Pods created by the
|
||||
StatefulSet controller from the StatefulSet version indicated by
|
||||
currentRevision.
|
||||
format: int32
|
||||
type: integer
|
||||
currentRevision:
|
||||
description: currentRevision, if not empty, indicates the version
|
||||
of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).
|
||||
type: string
|
||||
labelSelector:
|
||||
description: LabelSelector is label selectors for query over pods
|
||||
that should match the replica count used by HPA.
|
||||
type: string
|
||||
observedGeneration:
|
||||
description: observedGeneration is the most recent generation observed
|
||||
for this StatefulSet. It corresponds to the StatefulSet's generation,
|
||||
which is updated on mutation by the API Server.
|
||||
format: int64
|
||||
type: integer
|
||||
readyReplicas:
|
||||
description: readyReplicas is the number of Pods created by the StatefulSet
|
||||
controller that have a Ready Condition.
|
||||
format: int32
|
||||
type: integer
|
||||
replicas:
|
||||
description: replicas is the number of Pods created by the StatefulSet
|
||||
controller.
|
||||
format: int32
|
||||
type: integer
|
||||
updateRevision:
|
||||
description: updateRevision, if not empty, indicates the version of
|
||||
the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)
|
||||
type: string
|
||||
updatedReplicas:
|
||||
description: updatedReplicas is the number of Pods created by the
|
||||
StatefulSet controller from the StatefulSet version indicated by
|
||||
updateRevision.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- availableReplicas
|
||||
- currentReplicas
|
||||
- readyReplicas
|
||||
- replicas
|
||||
- updatedReplicas
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: false
|
||||
- name: v1beta1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: StatefulSet is the Schema for the statefulsets API
|
||||
properties:
|
||||
apiVersion:
|
||||
description: 'APIVersion defines the versioned schema of this representation
|
||||
of an object. Servers should convert recognized schemas to the latest
|
||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||
type: string
|
||||
kind:
|
||||
description: 'Kind is a string value representing the REST resource this
|
||||
object represents. Servers may infer this from the endpoint the client
|
||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
description: StatefulSetSpec defines the desired state of StatefulSet
|
||||
properties:
|
||||
podManagementPolicy:
|
||||
description: podManagementPolicy controls how pods are created during
|
||||
initial scale up, when replacing pods on nodes, or when scaling
|
||||
down. The default policy is `OrderedReady`, where pods are created
|
||||
in increasing order (pod-0, then pod-1, etc) and the controller
|
||||
will wait until each pod is ready before continuing. When scaling
|
||||
down, the pods are removed in the opposite order. The alternative
|
||||
policy is `Parallel` which will create pods in parallel to match
|
||||
the desired scale without waiting, and on scale down will delete
|
||||
all pods at once.
|
||||
type: string
|
||||
replicas:
|
||||
description: 'replicas is the desired number of replicas of the given
|
||||
Template. These are replicas in the sense that they are instantiations
|
||||
of the same Template, but individual replicas also have a consistent
|
||||
identity. If unspecified, defaults to 1. TODO: Consider a rename
|
||||
of this field.'
|
||||
format: int32
|
||||
type: integer
|
||||
reserveOrdinals:
|
||||
description: 'reserveOrdinals controls the ordinal numbers that should
|
||||
be reserved, and the replicas will always be the expectation number
|
||||
of running Pods. For a sts with replicas=3 and its Pods in [0, 1,
|
||||
2]: - If you want to migrate Pod-1 and reserve this ordinal, just
|
||||
set spec.reserveOrdinal to [1]. Then controller will delete Pod-1
|
||||
and create Pod-3 (existing Pods will be [0, 2, 3]) - If you just
|
||||
want to delete Pod-1, you should set spec.reserveOrdinal to [1]
|
||||
and spec.replicas to 2. Then controller will delete Pod-1 (existing
|
||||
Pods will be [0, 2])'
|
||||
items:
|
||||
type: integer
|
||||
type: array
|
||||
revisionHistoryLimit:
|
||||
description: revisionHistoryLimit is the maximum number of revisions
|
||||
that will be maintained in the StatefulSet's revision history. The
|
||||
revision history consists of all revisions not represented by a
|
||||
currently applied StatefulSetSpec version. The default value is
|
||||
10.
|
||||
format: int32
|
||||
type: integer
|
||||
selector:
|
||||
description: 'selector is a label query over pods that should match
|
||||
the replica count. It must match the pod template''s labels. More
|
||||
info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors'
|
||||
properties:
|
||||
matchExpressions:
|
||||
description: matchExpressions is a list of label selector requirements.
|
||||
The requirements are ANDed.
|
||||
items:
|
||||
description: A label selector requirement is a selector that
|
||||
contains values, a key, and an operator that relates the key
|
||||
and values.
|
||||
properties:
|
||||
key:
|
||||
description: key is the label key that the selector applies
|
||||
to.
|
||||
type: string
|
||||
operator:
|
||||
description: operator represents a key's relationship to
|
||||
a set of values. Valid operators are In, NotIn, Exists
|
||||
and DoesNotExist.
|
||||
type: string
|
||||
values:
|
||||
description: values is an array of string values. If the
|
||||
operator is In or NotIn, the values array must be non-empty.
|
||||
If the operator is Exists or DoesNotExist, the values
|
||||
array must be empty. This array is replaced during a strategic
|
||||
merge patch.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: matchLabels is a map of {key,value} pairs. A single
|
||||
{key,value} in the matchLabels map is equivalent to an element
|
||||
of matchExpressions, whose key field is "key", the operator
|
||||
is "In", and the values array contains only "value". The requirements
|
||||
are ANDed.
|
||||
type: object
|
||||
type: object
|
||||
serviceName:
|
||||
description: 'serviceName is the name of the service that governs
|
||||
this StatefulSet. This service must exist before the StatefulSet,
|
||||
and is responsible for the network identity of the set. Pods get
|
||||
DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local
|
||||
where "pod-specific-string" is managed by the StatefulSet controller.'
|
||||
type: string
|
||||
template:
|
||||
description: template is the object that describes the pod that will
|
||||
be created if insufficient replicas are detected. Each pod stamped
|
||||
out by the StatefulSet will fulfill this Template, but have a unique
|
||||
identity from the rest of the StatefulSet.
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
updateStrategy:
|
||||
description: updateStrategy indicates the StatefulSetUpdateStrategy
|
||||
that will be employed to update Pods in the StatefulSet when a revision
|
||||
is made to Template.
|
||||
properties:
|
||||
rollingUpdate:
|
||||
description: RollingUpdate is used to communicate parameters when
|
||||
Type is RollingUpdateStatefulSetStrategyType.
|
||||
properties:
|
||||
inPlaceUpdateStrategy:
|
||||
description: InPlaceUpdateStrategy contains strategies for
|
||||
in-place update.
|
||||
properties:
|
||||
gracePeriodSeconds:
|
||||
description: GracePeriodSeconds is the timespan between
|
||||
set Pod status to not-ready and update images in Pod
|
||||
spec when in-place update a Pod.
|
||||
format: int32
|
||||
type: integer
|
||||
type: object
|
||||
maxUnavailable:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: 'The maximum number of pods that can be unavailable
|
||||
during the update. Value can be an absolute number (ex:
|
||||
5) or a percentage of desired pods (ex: 10%). Absolute number
|
||||
is calculated from percentage by rounding down. Also, maxUnavailable
|
||||
can just be allowed to work with Parallel podManagementPolicy.
|
||||
Defaults to 1.'
|
||||
x-kubernetes-int-or-string: true
|
||||
minReadySeconds:
|
||||
description: MinReadySeconds indicates how long will the pod
|
||||
be considered ready after it's updated. MinReadySeconds
|
||||
works with both OrderedReady and Parallel podManagementPolicy.
|
||||
It affects the pod scale up speed when the podManagementPolicy
|
||||
is set to be OrderedReady. Combined with MaxUnavailable,
|
||||
it affects the pod update speed regardless of podManagementPolicy.
|
||||
Default value is 0, max is 300.
|
||||
format: int32
|
||||
type: integer
|
||||
partition:
|
||||
description: 'Partition indicates the ordinal at which the
|
||||
StatefulSet should be partitioned by default. But if unorderedUpdate
|
||||
has been set: - Partition indicates the number of pods
|
||||
with non-updated revisions when rolling update. - It means
|
||||
controller will update $(replicas - partition) number of
|
||||
pod. Default value is 0.'
|
||||
format: int32
|
||||
type: integer
|
||||
paused:
|
||||
description: Paused indicates that the StatefulSet is paused.
|
||||
Default value is false
|
||||
type: boolean
|
||||
podUpdatePolicy:
|
||||
description: PodUpdatePolicy indicates how pods should be
|
||||
updated Default value is "ReCreate"
|
||||
type: string
|
||||
unorderedUpdate:
|
||||
description: UnorderedUpdate contains strategies for non-ordered
|
||||
update. If it is not nil, pods will be updated with non-ordered
|
||||
sequence. Noted that UnorderedUpdate can only be allowed
|
||||
to work with Parallel podManagementPolicy
|
||||
properties:
|
||||
priorityStrategy:
|
||||
description: Priorities are the rules for calculating
|
||||
the priority of updating pods. Each pod to be updated,
|
||||
will pass through these terms and get a sum of weights.
|
||||
properties:
|
||||
orderPriority:
|
||||
description: 'Order priority terms, pods will be sorted
|
||||
by the value of orderedKey. For example: ``` orderPriority:
|
||||
- orderedKey: key1 - orderedKey: key2 ``` First,
|
||||
all pods which have key1 in labels will be sorted
|
||||
by the value of key1. Then, the left pods which
|
||||
have no key1 but have key2 in labels will be sorted
|
||||
by the value of key2 and put behind those pods have
|
||||
key1.'
|
||||
items:
|
||||
description: UpdatePriorityOrder defines order priority.
|
||||
properties:
|
||||
orderedKey:
|
||||
description: Calculate priority by value of
|
||||
this key. Values of this key, will be sorted
|
||||
by GetInt(val). GetInt method will find the
|
||||
last int in value, such as getting 5 in value
|
||||
'5', getting 10 in value 'sts-10'.
|
||||
type: string
|
||||
required:
|
||||
- orderedKey
|
||||
type: object
|
||||
type: array
|
||||
weightPriority:
|
||||
description: Weight priority terms, pods will be sorted
|
||||
by the sum of all terms weight.
|
||||
items:
|
||||
description: UpdatePriorityWeightTerm defines weight
|
||||
priority.
|
||||
properties:
|
||||
matchSelector:
|
||||
description: MatchSelector is used to select
|
||||
by pod's labels.
|
||||
properties:
|
||||
matchExpressions:
|
||||
description: matchExpressions is a list
|
||||
of label selector requirements. The requirements
|
||||
are ANDed.
|
||||
items:
|
||||
description: A label selector requirement
|
||||
is a selector that contains values,
|
||||
a key, and an operator that relates
|
||||
the key and values.
|
||||
properties:
|
||||
key:
|
||||
description: key is the label key
|
||||
that the selector applies to.
|
||||
type: string
|
||||
operator:
|
||||
description: operator represents a
|
||||
key's relationship to a set of values.
|
||||
Valid operators are In, NotIn, Exists
|
||||
and DoesNotExist.
|
||||
type: string
|
||||
values:
|
||||
description: values is an array of
|
||||
string values. If the operator is
|
||||
In or NotIn, the values array must
|
||||
be non-empty. If the operator is
|
||||
Exists or DoesNotExist, the values
|
||||
array must be empty. This array
|
||||
is replaced during a strategic merge
|
||||
patch.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: matchLabels is a map of {key,value}
|
||||
pairs. A single {key,value} in the matchLabels
|
||||
map is equivalent to an element of matchExpressions,
|
||||
whose key field is "key", the operator
|
||||
is "In", and the values array contains
|
||||
only "value". The requirements are ANDed.
|
||||
type: object
|
||||
type: object
|
||||
weight:
|
||||
description: Weight associated with matching
|
||||
the corresponding matchExpressions, in the
|
||||
range 1-100.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- matchSelector
|
||||
- weight
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
type: object
|
||||
type: object
|
||||
type:
|
||||
description: Type indicates the type of the StatefulSetUpdateStrategy.
|
||||
Default is RollingUpdate.
|
||||
type: string
|
||||
type: object
|
||||
volumeClaimTemplates:
|
||||
description: 'volumeClaimTemplates is a list of claims that pods are
|
||||
allowed to reference. The StatefulSet controller is responsible
|
||||
for mapping network identities to claims in a way that maintains
|
||||
the identity of a pod. Every claim in this list must have at least
|
||||
one matching (by name) volumeMount in one container in the template.
|
||||
A claim in this list takes precedence over any volumes in the template,
|
||||
with the same name. TODO: Define the behavior if a claim already
|
||||
exists with the same name.'
|
||||
items:
|
||||
description: PersistentVolumeClaim is a user's request for and claim
|
||||
to a persistent volume
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
type: array
|
||||
required:
|
||||
- selector
|
||||
- template
|
||||
type: object
|
||||
status:
|
||||
description: StatefulSetStatus defines the observed state of StatefulSet
|
||||
properties:
|
||||
availableReplicas:
|
||||
description: AvailableReplicas is the number of Pods created by the
|
||||
StatefulSet controller that have been ready for minReadySeconds.
|
||||
format: int32
|
||||
type: integer
|
||||
collisionCount:
|
||||
description: collisionCount is the count of hash collisions for the
|
||||
StatefulSet. The StatefulSet controller uses this field as a collision
|
||||
avoidance mechanism when it needs to create the name for the newest
|
||||
ControllerRevision.
|
||||
format: int32
|
||||
type: integer
|
||||
conditions:
|
||||
description: Represents the latest available observations of a statefulset's
|
||||
current state.
|
||||
items:
|
||||
description: StatefulSetCondition describes the state of a statefulset
|
||||
at a certain point.
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
type: array
|
||||
currentReplicas:
|
||||
description: currentReplicas is the number of Pods created by the
|
||||
StatefulSet controller from the StatefulSet version indicated by
|
||||
currentRevision.
|
||||
format: int32
|
||||
type: integer
|
||||
currentRevision:
|
||||
description: currentRevision, if not empty, indicates the version
|
||||
of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).
|
||||
type: string
|
||||
labelSelector:
|
||||
description: LabelSelector is label selectors for query over pods
|
||||
that should match the replica count used by HPA.
|
||||
type: string
|
||||
observedGeneration:
|
||||
description: observedGeneration is the most recent generation observed
|
||||
for this StatefulSet. It corresponds to the StatefulSet's generation,
|
||||
which is updated on mutation by the API Server.
|
||||
format: int64
|
||||
type: integer
|
||||
readyReplicas:
|
||||
description: readyReplicas is the number of Pods created by the StatefulSet
|
||||
controller that have a Ready Condition.
|
||||
format: int32
|
||||
type: integer
|
||||
replicas:
|
||||
description: replicas is the number of Pods created by the StatefulSet
|
||||
controller.
|
||||
format: int32
|
||||
type: integer
|
||||
updateRevision:
|
||||
description: updateRevision, if not empty, indicates the version of
|
||||
the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)
|
||||
type: string
|
||||
updatedReplicas:
|
||||
description: updatedReplicas is the number of Pods created by the
|
||||
StatefulSet controller from the StatefulSet version indicated by
|
||||
updateRevision.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- availableReplicas
|
||||
- currentReplicas
|
||||
- readyReplicas
|
||||
- replicas
|
||||
- updatedReplicas
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
||||
|
|
@ -271,17 +271,15 @@ spec:
|
|||
format: int32
|
||||
type: integer
|
||||
partition:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: 'Partition is the desired number of pods
|
||||
in old revisions. Value can be an absolute number
|
||||
(ex: 5) or a percentage of desired pods (ex: 10%).
|
||||
Absolute number is calculated from percentage by rounding
|
||||
up by default. It means when partition is set during
|
||||
pods updating, (replicas - partition value) number
|
||||
of pods will be updated. Default value is 0.'
|
||||
x-kubernetes-int-or-string: true
|
||||
description: 'Partition indicates the ordinal at
|
||||
which the StatefulSet should be partitioned by
|
||||
default. But if unorderedUpdate has been set: -
|
||||
Partition indicates the number of pods with non-updated
|
||||
revisions when rolling update. - It means controller
|
||||
will update $(replicas - partition) number of
|
||||
pod. Default value is 0.'
|
||||
format: int32
|
||||
type: integer
|
||||
paused:
|
||||
description: Paused indicates that the StatefulSet
|
||||
is paused. Default value is false
|
||||
|
|
@ -607,12 +605,17 @@ spec:
|
|||
Defaults to 20%.'
|
||||
x-kubernetes-int-or-string: true
|
||||
partition:
|
||||
description: Partition is the desired number of pods
|
||||
in old revisions. It means when partition is set during
|
||||
pods updating, (replicas - partition) number of pods
|
||||
will be updated. Default value is 0.
|
||||
format: int32
|
||||
type: integer
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: 'Partition is the desired number of pods
|
||||
in old revisions. Value can be an absolute number
|
||||
(ex: 5) or a percentage of desired pods (ex: 10%).
|
||||
Absolute number is calculated from percentage by rounding
|
||||
up by default. It means when partition is set during
|
||||
pods updating, (replicas - partition value) number
|
||||
of pods will be updated. Default value is 0.'
|
||||
x-kubernetes-int-or-string: true
|
||||
paused:
|
||||
description: Paused indicates that the CloneSet is paused.
|
||||
Default value is false
|
||||
|
|
@ -1,433 +0,0 @@
|
|||
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.2.9
|
||||
creationTimestamp: null
|
||||
name: statefulsets.apps.kruise.io
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- JSONPath: .spec.replicas
|
||||
description: The desired number of pods.
|
||||
name: DESIRED
|
||||
type: integer
|
||||
- JSONPath: .status.replicas
|
||||
description: The number of currently all pods.
|
||||
name: CURRENT
|
||||
type: integer
|
||||
- JSONPath: .status.updatedReplicas
|
||||
description: The number of pods updated.
|
||||
name: UPDATED
|
||||
type: integer
|
||||
- JSONPath: .status.readyReplicas
|
||||
description: The number of pods ready.
|
||||
name: READY
|
||||
type: integer
|
||||
- JSONPath: .metadata.creationTimestamp
|
||||
description: CreationTimestamp is a timestamp representing the server time when
|
||||
this object was created. It is not guaranteed to be set in happens-before order
|
||||
across separate operations. Clients may not set this value. It is represented
|
||||
in RFC3339 form and is in UTC.
|
||||
name: AGE
|
||||
type: date
|
||||
group: apps.kruise.io
|
||||
names:
|
||||
kind: StatefulSet
|
||||
listKind: StatefulSetList
|
||||
plural: statefulsets
|
||||
shortNames:
|
||||
- sts
|
||||
- asts
|
||||
singular: statefulset
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
scale:
|
||||
labelSelectorPath: .status.labelSelector
|
||||
specReplicasPath: .spec.replicas
|
||||
statusReplicasPath: .status.replicas
|
||||
status: {}
|
||||
conversion:
|
||||
strategy: Webhook
|
||||
webhookClientConfig:
|
||||
caBundle: Cg==
|
||||
service:
|
||||
namespace: kruise-system
|
||||
name: kruise-webhook-service
|
||||
path: /convert
|
||||
preserveUnknownFields: false
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
description: StatefulSet is the Schema for the statefulsets API
|
||||
properties:
|
||||
apiVersion:
|
||||
description: 'APIVersion defines the versioned schema of this representation
|
||||
of an object. Servers should convert recognized schemas to the latest
|
||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||
type: string
|
||||
kind:
|
||||
description: 'Kind is a string value representing the REST resource this
|
||||
object represents. Servers may infer this from the endpoint the client
|
||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
description: StatefulSetSpec defines the desired state of StatefulSet
|
||||
properties:
|
||||
podManagementPolicy:
|
||||
description: podManagementPolicy controls how pods are created during
|
||||
initial scale up, when replacing pods on nodes, or when scaling down.
|
||||
The default policy is `OrderedReady`, where pods are created in increasing
|
||||
order (pod-0, then pod-1, etc) and the controller will wait until
|
||||
each pod is ready before continuing. When scaling down, the pods are
|
||||
removed in the opposite order. The alternative policy is `Parallel`
|
||||
which will create pods in parallel to match the desired scale without
|
||||
waiting, and on scale down will delete all pods at once.
|
||||
type: string
|
||||
replicas:
|
||||
description: 'replicas is the desired number of replicas of the given
|
||||
Template. These are replicas in the sense that they are instantiations
|
||||
of the same Template, but individual replicas also have a consistent
|
||||
identity. If unspecified, defaults to 1. TODO: Consider a rename of
|
||||
this field.'
|
||||
format: int32
|
||||
type: integer
|
||||
revisionHistoryLimit:
|
||||
description: revisionHistoryLimit is the maximum number of revisions
|
||||
that will be maintained in the StatefulSet's revision history. The
|
||||
revision history consists of all revisions not represented by a currently
|
||||
applied StatefulSetSpec version. The default value is 10.
|
||||
format: int32
|
||||
type: integer
|
||||
selector:
|
||||
description: 'selector is a label query over pods that should match
|
||||
the replica count. It must match the pod template''s labels. More
|
||||
info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors'
|
||||
properties:
|
||||
matchExpressions:
|
||||
description: matchExpressions is a list of label selector requirements.
|
||||
The requirements are ANDed.
|
||||
items:
|
||||
description: A label selector requirement is a selector that contains
|
||||
values, a key, and an operator that relates the key and values.
|
||||
properties:
|
||||
key:
|
||||
description: key is the label key that the selector applies
|
||||
to.
|
||||
type: string
|
||||
operator:
|
||||
description: operator represents a key's relationship to a
|
||||
set of values. Valid operators are In, NotIn, Exists and
|
||||
DoesNotExist.
|
||||
type: string
|
||||
values:
|
||||
description: values is an array of string values. If the operator
|
||||
is In or NotIn, the values array must be non-empty. If the
|
||||
operator is Exists or DoesNotExist, the values array must
|
||||
be empty. This array is replaced during a strategic merge
|
||||
patch.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: matchLabels is a map of {key,value} pairs. A single
|
||||
{key,value} in the matchLabels map is equivalent to an element
|
||||
of matchExpressions, whose key field is "key", the operator is
|
||||
"In", and the values array contains only "value". The requirements
|
||||
are ANDed.
|
||||
type: object
|
||||
type: object
|
||||
serviceName:
|
||||
description: 'serviceName is the name of the service that governs this
|
||||
StatefulSet. This service must exist before the StatefulSet, and is
|
||||
responsible for the network identity of the set. Pods get DNS/hostnames
|
||||
that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local
|
||||
where "pod-specific-string" is managed by the StatefulSet controller.'
|
||||
type: string
|
||||
template:
|
||||
description: template is the object that describes the pod that will
|
||||
be created if insufficient replicas are detected. Each pod stamped
|
||||
out by the StatefulSet will fulfill this Template, but have a unique
|
||||
identity from the rest of the StatefulSet.
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
updateStrategy:
|
||||
description: updateStrategy indicates the StatefulSetUpdateStrategy
|
||||
that will be employed to update Pods in the StatefulSet when a revision
|
||||
is made to Template.
|
||||
properties:
|
||||
rollingUpdate:
|
||||
description: RollingUpdate is used to communicate parameters when
|
||||
Type is RollingUpdateStatefulSetStrategyType.
|
||||
properties:
|
||||
inPlaceUpdateStrategy:
|
||||
description: InPlaceUpdateStrategy contains strategies for in-place
|
||||
update.
|
||||
properties:
|
||||
gracePeriodSeconds:
|
||||
description: GracePeriodSeconds is the timespan between
|
||||
set Pod status to not-ready and update images in Pod spec
|
||||
when in-place update a Pod.
|
||||
format: int32
|
||||
type: integer
|
||||
type: object
|
||||
maxUnavailable:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: 'The maximum number of pods that can be unavailable
|
||||
during the update. Value can be an absolute number (ex: 5)
|
||||
or a percentage of desired pods (ex: 10%). Absolute number
|
||||
is calculated from percentage by rounding down. Also, maxUnavailable
|
||||
can just be allowed to work with Parallel podManagementPolicy.
|
||||
Defaults to 1.'
|
||||
x-kubernetes-int-or-string: true
|
||||
minReadySeconds:
|
||||
description: MinReadySeconds indicates how long will the pod
|
||||
be considered ready after it's updated. MinReadySeconds works
|
||||
with both OrderedReady and Parallel podManagementPolicy. It
|
||||
affects the pod scale up speed when the podManagementPolicy
|
||||
is set to be OrderedReady. Combined with MaxUnavailable, it
|
||||
affects the pod update speed regardless of podManagementPolicy.
|
||||
Default value is 0, max is 300.
|
||||
format: int32
|
||||
type: integer
|
||||
partition:
|
||||
description: 'Partition indicates the ordinal at which the StatefulSet
|
||||
should be partitioned by default. But if unorderedUpdate has
|
||||
been set: - Partition indicates the number of pods with
|
||||
non-updated revisions when rolling update. - It means controller
|
||||
will update $(replicas - partition) number of pod. Default
|
||||
value is 0.'
|
||||
format: int32
|
||||
type: integer
|
||||
paused:
|
||||
description: Paused indicates that the StatefulSet is paused.
|
||||
Default value is false
|
||||
type: boolean
|
||||
podUpdatePolicy:
|
||||
description: PodUpdatePolicy indicates how pods should be updated
|
||||
Default value is "ReCreate"
|
||||
type: string
|
||||
unorderedUpdate:
|
||||
description: UnorderedUpdate contains strategies for non-ordered
|
||||
update. If it is not nil, pods will be updated with non-ordered
|
||||
sequence. Noted that UnorderedUpdate can only be allowed to
|
||||
work with Parallel podManagementPolicy
|
||||
properties:
|
||||
priorityStrategy:
|
||||
description: Priorities are the rules for calculating the
|
||||
priority of updating pods. Each pod to be updated, will
|
||||
pass through these terms and get a sum of weights.
|
||||
properties:
|
||||
orderPriority:
|
||||
description: 'Order priority terms, pods will be sorted
|
||||
by the value of orderedKey. For example: ``` orderPriority:
|
||||
- orderedKey: key1 - orderedKey: key2 ``` First, all
|
||||
pods which have key1 in labels will be sorted by the
|
||||
value of key1. Then, the left pods which have no key1
|
||||
but have key2 in labels will be sorted by the value
|
||||
of key2 and put behind those pods have key1.'
|
||||
items:
|
||||
description: UpdatePriorityOrder defines order priority.
|
||||
properties:
|
||||
orderedKey:
|
||||
description: Calculate priority by value of this
|
||||
key. Values of this key, will be sorted by GetInt(val).
|
||||
GetInt method will find the last int in value,
|
||||
such as getting 5 in value '5', getting 10 in
|
||||
value 'sts-10'.
|
||||
type: string
|
||||
required:
|
||||
- orderedKey
|
||||
type: object
|
||||
type: array
|
||||
weightPriority:
|
||||
description: Weight priority terms, pods will be sorted
|
||||
by the sum of all terms weight.
|
||||
items:
|
||||
description: UpdatePriorityWeightTerm defines weight
|
||||
priority.
|
||||
properties:
|
||||
matchSelector:
|
||||
description: MatchSelector is used to select by
|
||||
pod's labels.
|
||||
properties:
|
||||
matchExpressions:
|
||||
description: matchExpressions is a list of
|
||||
label selector requirements. The requirements
|
||||
are ANDed.
|
||||
items:
|
||||
description: A label selector requirement
|
||||
is a selector that contains values, a
|
||||
key, and an operator that relates the
|
||||
key and values.
|
||||
properties:
|
||||
key:
|
||||
description: key is the label key that
|
||||
the selector applies to.
|
||||
type: string
|
||||
operator:
|
||||
description: operator represents a key's
|
||||
relationship to a set of values. Valid
|
||||
operators are In, NotIn, Exists and
|
||||
DoesNotExist.
|
||||
type: string
|
||||
values:
|
||||
description: values is an array of string
|
||||
values. If the operator is In or NotIn,
|
||||
the values array must be non-empty.
|
||||
If the operator is Exists or DoesNotExist,
|
||||
the values array must be empty. This
|
||||
array is replaced during a strategic
|
||||
merge patch.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: matchLabels is a map of {key,value}
|
||||
pairs. A single {key,value} in the matchLabels
|
||||
map is equivalent to an element of matchExpressions,
|
||||
whose key field is "key", the operator is
|
||||
"In", and the values array contains only
|
||||
"value". The requirements are ANDed.
|
||||
type: object
|
||||
type: object
|
||||
weight:
|
||||
description: Weight associated with matching the
|
||||
corresponding matchExpressions, in the range
|
||||
1-100.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- matchSelector
|
||||
- weight
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
type: object
|
||||
type: object
|
||||
type:
|
||||
description: Type indicates the type of the StatefulSetUpdateStrategy.
|
||||
Default is RollingUpdate.
|
||||
type: string
|
||||
type: object
|
||||
volumeClaimTemplates:
|
||||
description: 'volumeClaimTemplates is a list of claims that pods are
|
||||
allowed to reference. The StatefulSet controller is responsible for
|
||||
mapping network identities to claims in a way that maintains the identity
|
||||
of a pod. Every claim in this list must have at least one matching
|
||||
(by name) volumeMount in one container in the template. A claim in
|
||||
this list takes precedence over any volumes in the template, with
|
||||
the same name. TODO: Define the behavior if a claim already exists
|
||||
with the same name.'
|
||||
items:
|
||||
description: PersistentVolumeClaim is a user's request for and claim
|
||||
to a persistent volume
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
type: array
|
||||
required:
|
||||
- selector
|
||||
- template
|
||||
type: object
|
||||
status:
|
||||
description: StatefulSetStatus defines the observed state of StatefulSet
|
||||
properties:
|
||||
availableReplicas:
|
||||
description: AvailableReplicas is the number of Pods created by the
|
||||
StatefulSet controller that have been ready for minReadySeconds.
|
||||
format: int32
|
||||
type: integer
|
||||
collisionCount:
|
||||
description: collisionCount is the count of hash collisions for the
|
||||
StatefulSet. The StatefulSet controller uses this field as a collision
|
||||
avoidance mechanism when it needs to create the name for the newest
|
||||
ControllerRevision.
|
||||
format: int32
|
||||
type: integer
|
||||
conditions:
|
||||
description: Represents the latest available observations of a statefulset's
|
||||
current state.
|
||||
items:
|
||||
description: StatefulSetCondition describes the state of a statefulset
|
||||
at a certain point.
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
type: array
|
||||
currentReplicas:
|
||||
description: currentReplicas is the number of Pods created by the StatefulSet
|
||||
controller from the StatefulSet version indicated by currentRevision.
|
||||
format: int32
|
||||
type: integer
|
||||
currentRevision:
|
||||
description: currentRevision, if not empty, indicates the version of
|
||||
the StatefulSet used to generate Pods in the sequence [0,currentReplicas).
|
||||
type: string
|
||||
labelSelector:
|
||||
description: LabelSelector is label selectors for query over pods that
|
||||
should match the replica count used by HPA.
|
||||
type: string
|
||||
observedGeneration:
|
||||
description: observedGeneration is the most recent generation observed
|
||||
for this StatefulSet. It corresponds to the StatefulSet's generation,
|
||||
which is updated on mutation by the API Server.
|
||||
format: int64
|
||||
type: integer
|
||||
readyReplicas:
|
||||
description: readyReplicas is the number of Pods created by the StatefulSet
|
||||
controller that have a Ready Condition.
|
||||
format: int32
|
||||
type: integer
|
||||
replicas:
|
||||
description: replicas is the number of Pods created by the StatefulSet
|
||||
controller.
|
||||
format: int32
|
||||
type: integer
|
||||
updateRevision:
|
||||
description: updateRevision, if not empty, indicates the version of
|
||||
the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)
|
||||
type: string
|
||||
updatedReplicas:
|
||||
description: updatedReplicas is the number of Pods created by the StatefulSet
|
||||
controller from the StatefulSet version indicated by updateRevision.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- availableReplicas
|
||||
- currentReplicas
|
||||
- readyReplicas
|
||||
- replicas
|
||||
- updatedReplicas
|
||||
type: object
|
||||
type: object
|
||||
version: v1alpha1
|
||||
versions:
|
||||
- name: v1alpha1
|
||||
served: true
|
||||
storage: false
|
||||
- name: v1beta1
|
||||
served: true
|
||||
storage: true
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
||||
|
|
@ -42,8 +42,6 @@ rules:
|
|||
resources:
|
||||
- mutatingwebhookconfigurations
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
|
|
@ -54,8 +52,6 @@ rules:
|
|||
resources:
|
||||
- validatingwebhookconfigurations
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
|
|
@ -103,6 +99,26 @@ rules:
|
|||
- get
|
||||
- patch
|
||||
- update
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- advancedcronjobs
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- advancedcronjobs/status
|
||||
verbs:
|
||||
- get
|
||||
- patch
|
||||
- update
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
|
|
@ -223,6 +239,26 @@ rules:
|
|||
- get
|
||||
- patch
|
||||
- update
|
||||
- apiGroups:
|
||||
- batch
|
||||
resources:
|
||||
- jobs
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- batch
|
||||
resources:
|
||||
- jobs/status
|
||||
verbs:
|
||||
- get
|
||||
- patch
|
||||
- update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
|
|
|
|||
|
|
@ -45,6 +45,24 @@ webhooks:
|
|||
- CREATE
|
||||
resources:
|
||||
- pods
|
||||
- clientConfig:
|
||||
caBundle: Cg==
|
||||
service:
|
||||
name: kruise-webhook-service
|
||||
namespace: kruise-system
|
||||
path: /mutate-apps-kruise-io-v1alpha1-advancedcronjob
|
||||
failurePolicy: Fail
|
||||
name: madvancedcronjob.kb.io
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- advancedcronjobs
|
||||
- clientConfig:
|
||||
caBundle: Cg==
|
||||
service:
|
||||
|
|
@ -145,6 +163,24 @@ metadata:
|
|||
annotations:
|
||||
template: ""
|
||||
webhooks:
|
||||
- clientConfig:
|
||||
caBundle: Cg==
|
||||
service:
|
||||
name: kruise-webhook-service
|
||||
namespace: kruise-system
|
||||
path: /validate-apps-kruise-io-v1alpha1-advancedcronjob
|
||||
failurePolicy: Fail
|
||||
name: vadvancedcronjob.kb.io
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- advancedcronjobs
|
||||
- clientConfig:
|
||||
caBundle: Cg==
|
||||
service:
|
||||
|
|
@ -181,6 +217,24 @@ webhooks:
|
|||
- UPDATE
|
||||
resources:
|
||||
- clonesets
|
||||
- clientConfig:
|
||||
caBundle: Cg==
|
||||
service:
|
||||
name: kruise-webhook-service
|
||||
namespace: kruise-system
|
||||
path: /validate-apps-kruise-io-v1alpha1-daemonset
|
||||
failurePolicy: Fail
|
||||
name: vdaemonset.kb.io
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- daemonsets
|
||||
- clientConfig:
|
||||
caBundle: Cg==
|
||||
service:
|
||||
|
|
|
|||
|
|
@ -10,4 +10,5 @@ kubectl delete clusterrolebinding kruise-manager-rolebinding
|
|||
kubectl delete clusterrole kruise-manager-role
|
||||
|
||||
# delete CRDs
|
||||
kubectl get crd -o name | grep "customresourcedefinition.apiextensions.k8s.io/[a-z.]*.kruise.io" | xargs kubectl patch -p '{"spec":{"conversion":null}}'
|
||||
kubectl get crd -o name | grep "customresourcedefinition.apiextensions.k8s.io/[a-z.]*.kruise.io" | xargs kubectl delete
|
||||
|
|
|
|||
Loading…
Reference in New Issue