mirror of https://github.com/openkruise/charts.git
Compare commits
92 Commits
kruise-1.0
...
master
Author | SHA1 | Date |
---|---|---|
|
d0cfc2e2d7 | |
|
1259df091a | |
|
2b75a2f7db | |
|
8cbbdac027 | |
|
8b4803f8cc | |
|
8c097e79ea | |
|
1f4d8405c6 | |
|
9deb623ef1 | |
|
8dca36c77a | |
|
79e725cb0e | |
|
1806e0a55c | |
|
083a43ccf6 | |
|
4d538cf371 | |
|
e111262f53 | |
|
6b875eefa1 | |
|
3103338756 | |
|
32acdf43d6 | |
|
c4879675db | |
|
e9c56f1925 | |
|
b96d3417bd | |
|
6af33c3cbc | |
|
5e41bbdcdf | |
|
eab1d11a45 | |
|
7afba0dc8f | |
|
c0a6585e27 | |
|
bc4068ea76 | |
|
5011dcc52c | |
|
73f28b5ceb | |
|
c1f90ee621 | |
|
bb715d90d9 | |
|
d1e50a23e7 | |
|
ed494c6e1b | |
|
0a616991a8 | |
|
762a133235 | |
|
089189d58a | |
|
52e41dc9c7 | |
|
d1c325e49c | |
|
2b15628bdc | |
|
28808a4297 | |
|
daed104b11 | |
|
cf0f57434a | |
|
c3c902f681 | |
|
69359be9ac | |
|
1ef814f0cc | |
|
9e232d6bc2 | |
|
6b8372c022 | |
|
8424d7b532 | |
|
030f5de05e | |
|
5066fd01f0 | |
|
21f8a3b8e2 | |
|
72880546a8 | |
|
a8b368fa8a | |
|
96f1c026e6 | |
|
573aaa450d | |
|
f7a09ec6f7 | |
|
03f3670e6f | |
|
b04e2a6d71 | |
|
657a896b4b | |
|
f93fce17e5 | |
|
27a0f0e0a2 | |
|
22e34d104c | |
|
ec3332446d | |
|
05a8041151 | |
|
9e0266d8b2 | |
|
0e5e5bac67 | |
|
bafb56ca97 | |
|
05bbc56455 | |
|
f08cc4f30f | |
|
b59801a0b0 | |
|
17a0ddbae5 | |
|
f5439cab4a | |
|
201a65e191 | |
|
1ca7afe6b4 | |
|
e9e3a2b0d6 | |
|
284394fd99 | |
|
4cf0011744 | |
|
682cbeaaf7 | |
|
a44ffe1eb6 | |
|
a0fced74d7 | |
|
5d8159bd25 | |
|
eac28d38bc | |
|
de55acdf22 | |
|
423883ac06 | |
|
2237183513 | |
|
3f1f71c683 | |
|
c0cfe9d359 | |
|
dd61115856 | |
|
f46b9f3265 | |
|
1e02966f43 | |
|
60d442c3ec | |
|
96d603fee8 | |
|
a083cdd160 |
|
@ -0,0 +1,81 @@
|
|||
name: E2E-base
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- release-*
|
||||
pull_request: { }
|
||||
workflow_dispatch: { }
|
||||
|
||||
# Declare default permissions as read only.
|
||||
permissions: read-all
|
||||
|
||||
env:
|
||||
# Common versions
|
||||
GO_VERSION: '1.22'
|
||||
KIND_VERSION: 'v0.18.0'
|
||||
KIND_VERSION_FOR_HIGHER: 'v0.22.0'
|
||||
KIND_CLUSTER_NAME: 'ci-testing'
|
||||
# todo: add kruise e2e here
|
||||
jobs:
|
||||
# 1.27-
|
||||
install-for-lower:
|
||||
runs-on: ubuntu-24.04
|
||||
strategy:
|
||||
matrix:
|
||||
kind-version: [ v1.20.15, v1.24.6, v1.26.3 ]
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
submodules: true
|
||||
- name: Setup Kind Cluster ${{ matrix.kind-version }}
|
||||
uses: helm/kind-action@a1b0e391336a6ee6713a0583f8c6240d70863de3 # v1.12.0
|
||||
with:
|
||||
node_image: kindest/node:${{ matrix.kind-version }}
|
||||
cluster_name: ${{ env.KIND_CLUSTER_NAME }}
|
||||
config: ./test/kind-conf.yaml
|
||||
version: ${{ env.KIND_VERSION }}
|
||||
- name: Install Kruise
|
||||
run: |
|
||||
make install-kruise-from-local
|
||||
- name: install Kruise state metrics
|
||||
run: |
|
||||
make install-kruise-state-metrics-from-local
|
||||
- name: install Kruise rollout
|
||||
if: ${{ ! startsWith(matrix.kind-version, 'v1.18') }}
|
||||
run: |
|
||||
make install-kruise-rollout-from-local
|
||||
- name: install Kruise game
|
||||
run: |
|
||||
make install-kruise-game-from-local
|
||||
|
||||
# 1.27+
|
||||
install-for-higher:
|
||||
runs-on: ubuntu-24.04
|
||||
strategy:
|
||||
matrix:
|
||||
kind-version: [ v1.28.7, v1.30.8 ]
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
submodules: true
|
||||
- name: Setup Kind Cluster ${{ matrix.kind-version }}
|
||||
uses: helm/kind-action@a1b0e391336a6ee6713a0583f8c6240d70863de3 # v1.12.0
|
||||
with:
|
||||
node_image: kindest/node:${{ matrix.kind-version }}
|
||||
cluster_name: ${{ env.KIND_CLUSTER_NAME }}
|
||||
config: ./test/kind-conf-with-vpa.yaml
|
||||
version: ${{ env.KIND_VERSION_FOR_HIGHER }}
|
||||
- name: Install Kruise
|
||||
run: |
|
||||
make install-kruise-from-local
|
||||
- name: install Kruise state metrics
|
||||
run: |
|
||||
make install-kruise-state-metrics-from-local
|
||||
- name: install Kruise rollout
|
||||
run: |
|
||||
make install-kruise-rollout-from-local
|
||||
- name: install Kruise game
|
||||
run: |
|
||||
make install-kruise-game-from-local
|
|
@ -17,7 +17,7 @@ jobs:
|
|||
- name: Set up python
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.7
|
||||
python-version: 3.x
|
||||
|
||||
- name: Setup Chart Linting
|
||||
id: lint
|
||||
|
|
|
@ -5,6 +5,12 @@ on:
|
|||
branches:
|
||||
- master
|
||||
- rewrite-build
|
||||
|
||||
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
||||
permissions:
|
||||
id-token: write
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
runs-on: ubuntu-latest
|
||||
|
@ -15,27 +21,29 @@ jobs:
|
|||
fetch-depth: 0
|
||||
|
||||
- name: Install Helm
|
||||
uses: azure/setup-helm@v1
|
||||
uses: azure/setup-helm@v3
|
||||
|
||||
- name: Add dependency chart repos
|
||||
run: |
|
||||
helm repo add openkruise https://openkruise.github.io/charts
|
||||
helm repo add minio https://helm.min.io/
|
||||
helm repo add minio https://operator.min.io
|
||||
helm repo add stable https://charts.helm.sh/stable
|
||||
helm repo add incubator https://charts.helm.sh/incubator
|
||||
- name: Configure Git
|
||||
run: |
|
||||
git config user.name "gh-actions"
|
||||
git config user.email "actions@github.com"
|
||||
git config user.email "actions@github.com"
|
||||
|
||||
# This is required to consider the old Circle-CI Index and to stay compatible with all the old releases.
|
||||
- name: Fetch current Chart Index
|
||||
- name: Fetch current Chart Index
|
||||
run: |
|
||||
git checkout origin/gh-pages index.yaml
|
||||
- name: Run chart-releaser
|
||||
uses: helm/chart-releaser-action@v1.2.1
|
||||
with:
|
||||
with:
|
||||
charts_dir: charts
|
||||
config: "./.github/configs/cr.yaml"
|
||||
env:
|
||||
CR_TOKEN: "${{ secrets.GH_TOKEN }}"
|
||||
CR_SKIP_EXISTING: "true"
|
||||
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
||||
|
|
|
@ -16,6 +16,19 @@ Any breaking changes to a chart (backwards incompatible) require:
|
|||
* Bump of the current Major version of the chart
|
||||
* State possible manual changes for this chart version in the `Upgrading` section of the chart's `README.md.gotmpl` ([See Upgrade](#upgrades))
|
||||
|
||||
A pseudo version called `next` is used to prepare changes for the next major release, any fix and optimization of the chart can be made in the next version. Before creating the actual new major version, one should copy the content of `next` version and make changes accordingly. As an example, when preparing for the new major release of kruise 1.8.0, the operations is as follows:
|
||||
```
|
||||
cd <repo-root>/versions/kruise/
|
||||
cp -r next 1.8.0
|
||||
```
|
||||
|
||||
Before creating a new minor version, one should copy the latest version of corresponding major version. As an example. when preparing for the next minor release of kruise 1.7.x, and the latest version of 1.7.x is 1.7.3, then the operation is as follows:
|
||||
```
|
||||
cd <repo-root>/versions/kruise/
|
||||
cp -r 1.7.3 1.7.4
|
||||
```
|
||||
|
||||
|
||||
### Immutability
|
||||
|
||||
Each release for each chart must be immutable. Any change to a chart (even just documentation) requires a version bump. Trying to release the same version twice will result in an error.
|
||||
|
@ -88,4 +101,11 @@ The linting can be invoked manually with the following command:
|
|||
|
||||
## Publishing Changes
|
||||
|
||||
Changes are automatically publish whenever a commit is merged to master. The CI job (see `./.github/workflows/publish.yml`).
|
||||
Before actually publish new releases, one should link the chart directory to the corresponding version directory. As an example, if one is about to release kruise 1.7.4, the operation is as follows:
|
||||
|
||||
```
|
||||
cd <repo-root>/charts
|
||||
ln -sf ../versions/kruise/1.7.4 kruise
|
||||
```
|
||||
|
||||
Changes are automatically publish whenever a commit is merged to master. The CI job (see `./.github/workflows/publish.yml`).
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
IMG ?= openkruise/kruise-manager:test
|
||||
|
||||
|
||||
.PHONY: install-kruise-from-local
|
||||
install-kruise-from-local:
|
||||
helm install kruise charts/kruise
|
||||
./scripts/check-kruise.sh
|
||||
|
||||
.PHONY: install-kruise-from-helm
|
||||
install-kruise-from-helm:
|
||||
helm install kruise openkruise/kruise
|
||||
./scripts/check-kruise.sh
|
||||
|
||||
.PHONY: install-kruise-state-metrics-from-local
|
||||
install-kruise-state-metrics-from-local:
|
||||
helm install kruise-sm charts/kruise-state-metrics --set installation.installServiceMonitor=false
|
||||
sleep 1
|
||||
kubectl -n kruise-system wait --for=condition=Ready pods -l control-plane=kruise-state-metrics --timeout=60s || exit 1
|
||||
|
||||
.PHONY: install-kruise-rollout-from-local
|
||||
install-kruise-rollout-from-local:
|
||||
helm install kruise-rollout charts/kruise-rollout
|
||||
sleep 1
|
||||
kubectl -n kruise-rollout wait --for=condition=Ready pods -l control-plane=kruise-rollout-controller-manager --timeout=60s || exit 1
|
||||
|
||||
|
||||
.PHONY: install-kruise-game-from-local
|
||||
install-kruise-game-from-local:
|
||||
helm install kruise-game charts/kruise-game
|
||||
sleep 1
|
||||
kubectl -n kruise-game-system wait --for=condition=Ready pods -l control-plane=kruise-game-controller-manager --timeout=60s || exit 1
|
||||
|
||||
install-from-local: install-kruise-from-local install-kruise-state-metrics-from-local
|
|
@ -0,0 +1,11 @@
|
|||
# See: https://go.k8s.io/owners
|
||||
approvers:
|
||||
- FillZpp
|
||||
- furykerry
|
||||
- zmberg
|
||||
- chrisliu1995
|
||||
reviewers:
|
||||
- FillZpp
|
||||
- furykerry
|
||||
- zmberg
|
||||
- chrisliu1995
|
|
@ -1 +1 @@
|
|||
../versions/1.0.1
|
||||
../versions/kruise/1.8.0
|
|
@ -0,0 +1 @@
|
|||
../versions/kruise-game/1.0.0
|
|
@ -0,0 +1 @@
|
|||
../versions/kruise-rollout/0.6.1
|
|
@ -0,0 +1 @@
|
|||
../versions/kruise-state-metrics/0.2
|
|
@ -0,0 +1,21 @@
|
|||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
|
@ -0,0 +1,17 @@
|
|||
apiVersion: v1
|
||||
name: kruise
|
||||
description: Helm chart for all kruise-manager components
|
||||
version: 0.1.0
|
||||
appVersion: 0.1.0
|
||||
icon: http://openkruise.io/img/kruise_white.png
|
||||
keywords:
|
||||
- kubernetes
|
||||
- kruise
|
||||
- workload
|
||||
- statefulset
|
||||
- sidecar
|
||||
- job
|
||||
- deployment
|
||||
home: https://openkruise.io
|
||||
sources:
|
||||
- https://github.com/openkruise/kruise
|
|
@ -0,0 +1,93 @@
|
|||
# Kruise
|
||||
|
||||
## Install
|
||||
|
||||
```bash
|
||||
# git clone https://github.com/openkruise/kruise
|
||||
# cd charts/kruise
|
||||
# helm install kruise ./
|
||||
```
|
||||
|
||||
you will see follow:
|
||||
|
||||
```
|
||||
[root@k8s-master submitted]# helm install kruise ./
|
||||
NAME: kruise
|
||||
LAST DEPLOYED: Fri Aug 23 10:37:52 2019
|
||||
NAMESPACE: default
|
||||
STATUS: DEPLOYED
|
||||
|
||||
RESOURCES:
|
||||
==> v1/ClusterRole
|
||||
NAME AGE
|
||||
kruise-manager-role 0s
|
||||
|
||||
==> v1/ClusterRoleBinding
|
||||
NAME AGE
|
||||
kruise-manager-rolebinding 0s
|
||||
|
||||
==> v1/Namespace
|
||||
NAME STATUS AGE
|
||||
kruise-system Active 0s
|
||||
|
||||
==> v1/Pod(related)
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
kruise-controller-manager-0 0/1 ContainerCreating 0 0s
|
||||
|
||||
==> v1/Secret
|
||||
NAME TYPE DATA AGE
|
||||
kruise-webhook-server-secret Opaque 0 0s
|
||||
|
||||
==> v1/Service
|
||||
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
|
||||
kruise-controller-manager-service ClusterIP 10.98.202.12 <none> 443/TCP 0s
|
||||
|
||||
==> v1/StatefulSet
|
||||
NAME READY AGE
|
||||
kruise-controller-manager 0/1 0s
|
||||
|
||||
==> v1beta1/CustomResourceDefinition
|
||||
NAME AGE
|
||||
broadcastjobs.apps.kruise.io 0s
|
||||
sidecarsets.apps.kruise.io 0s
|
||||
statefulsets.apps.kruise.io 0s
|
||||
|
||||
==> v1beta1/MutatingWebhookConfiguration
|
||||
NAME AGE
|
||||
kruise-mutating-webhook-configuration 0s
|
||||
|
||||
==> v1beta1/ValidatingWebhookConfiguration
|
||||
NAME AGE
|
||||
kruise-validating-webhook-configuration 0s
|
||||
|
||||
```
|
||||
|
||||
## Uninstall
|
||||
|
||||
```bash
|
||||
# helm delete kruise
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
The following table lists the configurable parameters of the kruise chart and their default values.
|
||||
|
||||
| Parameter | Description | Default |
|
||||
|-------------------------------------------|--------------------------------------------------------------------|-------------------------------------|
|
||||
| `log.level` | Log level that kruise-manager printed | `4` |
|
||||
| `revisionHistoryLimit` | Limit of revision history | `3` |
|
||||
| `manager.resources.limits.cpu` | CPU resource limit of kruise-manager container | |
|
||||
| `manager.resources.limits.memory` | Memory resource limit of kruise-manager container | |
|
||||
| `manager.resources.requests.cpu` | CPU resource request of kruise-manager container | |
|
||||
| `manager.resources.requests.memory` | Memory resource request of kruise-manager container | |
|
||||
| `manager.metrics.addr` | Addr of metrics served | `localhost` |
|
||||
| `manager.metrics.port` | Port of metrics served | `8080` |
|
||||
| `spec.nodeAffinity` | Node affinity policy for kruise-manager pod | `{}` |
|
||||
| `spec.nodeSelector` | Node labels for kruise-manager pod | `{}` |
|
||||
| `spec.tolerations` | Tolerations for kruise-manager pod | `[]`
|
||||
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
|
||||
|
||||
```bash
|
||||
# helm install kruise ./ --set manager.log.level=5
|
||||
```
|
|
@ -0,0 +1,32 @@
|
|||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "kruise.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "kruise.fullname" -}}
|
||||
{{- if .Values.fullnameOverride -}}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "kruise.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
|
@ -0,0 +1,186 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: broadcastjobs.apps.kruise.io
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- JSONPath: .status.desired
|
||||
description: The desired number of pods. This is typically equal to the number
|
||||
of nodes satisfied to run pods.
|
||||
name: Desired
|
||||
type: integer
|
||||
- JSONPath: .status.active
|
||||
description: The number of actively running pods.
|
||||
name: Active
|
||||
type: integer
|
||||
- JSONPath: .status.succeeded
|
||||
description: The number of pods which reached phase Succeeded.
|
||||
name: Succeeded
|
||||
type: integer
|
||||
- JSONPath: .status.failed
|
||||
description: The number of pods which reached phase Failed.
|
||||
name: Failed
|
||||
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: BroadcastJob
|
||||
plural: broadcastjobs
|
||||
shortNames:
|
||||
- bj
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
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
|
||||
backoffLimit:
|
||||
description: BackoffLimit specifies the number of retries before
|
||||
marking this job failed. Not setting value means no limit. Only
|
||||
works for Always type.
|
||||
format: int32
|
||||
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
|
||||
parallelism:
|
||||
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.
|
||||
format: int32
|
||||
type: integer
|
||||
template:
|
||||
description: Template describes the pod that will be created when executing
|
||||
a job.
|
||||
type: object
|
||||
required:
|
||||
- template
|
||||
- completionPolicy
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
active:
|
||||
description: The number of actively running pods.
|
||||
format: int32
|
||||
type: integer
|
||||
completionTime:
|
||||
description: Represents time when the job was completed. It is not guaranteed
|
||||
to be set in happens-before order across separate operations. It is
|
||||
represented in RFC3339 form and is in UTC.
|
||||
format: date-time
|
||||
type: string
|
||||
conditions:
|
||||
description: The latest available observations of an object's current
|
||||
state. +patchMergeKey=type +patchStrategy=merge
|
||||
items:
|
||||
properties:
|
||||
lastProbeTime:
|
||||
description: Last time the condition was checked.
|
||||
format: date-time
|
||||
type: string
|
||||
lastTransitionTime:
|
||||
description: Last time the condition transit from one status to
|
||||
another.
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
description: Human readable message indicating details about last
|
||||
transition.
|
||||
type: string
|
||||
reason:
|
||||
description: (brief) reason for the condition's last transition.
|
||||
type: string
|
||||
status:
|
||||
description: Status of the condition, one of True, False, Unknown.
|
||||
type: string
|
||||
type:
|
||||
description: Type of job condition, Complete or Failed.
|
||||
type: string
|
||||
required:
|
||||
- type
|
||||
- status
|
||||
type: object
|
||||
type: array
|
||||
desired:
|
||||
description: The desired number of pods, this is typically equal to
|
||||
the number of nodes satisfied to run pods.
|
||||
format: int32
|
||||
type: integer
|
||||
failed:
|
||||
description: The number of pods which reached phase Failed.
|
||||
format: int32
|
||||
type: integer
|
||||
startTime:
|
||||
description: Represents time when the job was acknowledged by the job
|
||||
controller. It is not guaranteed to be set in happens-before order
|
||||
across separate operations. It is represented in RFC3339 form and
|
||||
is in UTC.
|
||||
format: date-time
|
||||
type: string
|
||||
succeeded:
|
||||
description: The number of pods which reached phase Succeeded.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- active
|
||||
- succeeded
|
||||
- failed
|
||||
- desired
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,101 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: sidecarsets.apps.kruise.io
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- JSONPath: .status.matchedPods
|
||||
description: The number of pods matched.
|
||||
name: MATCHED
|
||||
type: integer
|
||||
- JSONPath: .status.updatedPods
|
||||
description: The number of pods matched and updated.
|
||||
name: UPDATED
|
||||
type: integer
|
||||
- JSONPath: .status.readyPods
|
||||
description: The number of pods matched and 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: SidecarSet
|
||||
plural: sidecarsets
|
||||
scope: Cluster
|
||||
subresources:
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
properties:
|
||||
containers:
|
||||
description: Containers is the list of sidecar containers to be injected
|
||||
into the selected pod
|
||||
items:
|
||||
type: object
|
||||
type: array
|
||||
paused:
|
||||
description: Paused indicates that the sidecarset is paused and will
|
||||
not be processed by the sidecarset controller.
|
||||
type: boolean
|
||||
selector:
|
||||
description: selector is a label query over pods that should be injected
|
||||
type: object
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
matchedPods:
|
||||
description: matchedPods is the number of Pods whose labels are matched
|
||||
with this SidecarSet's selector and are created after sidecarset creates
|
||||
format: int32
|
||||
type: integer
|
||||
observedGeneration:
|
||||
description: observedGeneration is the most recent generation observed
|
||||
for this SidecarSet. It corresponds to the SidecarSet's generation,
|
||||
which is updated on mutation by the API Server.
|
||||
format: int64
|
||||
type: integer
|
||||
readyPods:
|
||||
description: readyPods is the number of matched Pods that have a ready
|
||||
condition
|
||||
format: int32
|
||||
type: integer
|
||||
updatedPods:
|
||||
description: updatedPods is the number of matched Pods that are injected
|
||||
with the latest SidecarSet's containers
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- matchedPods
|
||||
- updatedPods
|
||||
- readyPods
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,221 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
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
|
||||
plural: statefulsets
|
||||
shortNames:
|
||||
- sts
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
scale:
|
||||
labelSelectorPath: .status.labelSelector
|
||||
specReplicasPath: .spec.replicas
|
||||
statusReplicasPath: .status.replicas
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
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'
|
||||
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
|
||||
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:
|
||||
maxUnavailable:
|
||||
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.'
|
||||
oneOf:
|
||||
- type: string
|
||||
- type: integer
|
||||
partition:
|
||||
description: Partition indicates the ordinal at which the StatefulSet
|
||||
should be partitioned. 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
|
||||
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:
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- selector
|
||||
- template
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
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. +patchMergeKey=type +patchStrategy=merge
|
||||
items:
|
||||
type: object
|
||||
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
|
||||
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:
|
||||
- replicas
|
||||
- readyReplicas
|
||||
- currentReplicas
|
||||
- updatedReplicas
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,111 @@
|
|||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: kruise-system
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: kruise-controller-manager-service
|
||||
namespace: kruise-system
|
||||
spec:
|
||||
ports:
|
||||
- port: 443
|
||||
selector:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: kruise-controller-manager
|
||||
namespace: kruise-system
|
||||
spec:
|
||||
replicas: 1
|
||||
serviceName: kruise-controller-manager-service
|
||||
revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
|
||||
selector:
|
||||
matchLabels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
prometheus.io/scrape: "true"
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
spec:
|
||||
containers:
|
||||
- command:
|
||||
- /manager
|
||||
args:
|
||||
- "--metrics-addr={{ .Values.manager.metrics.addr }}:{{ .Values.manager.metrics.port }}"
|
||||
- "--logtostderr=true"
|
||||
- "--v={{ .Values.manager.log.level }}"
|
||||
env:
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
- name: SECRET_NAME
|
||||
value: kruise-webhook-server-secret
|
||||
image: openkruise/kruise-manager:v0.1.0
|
||||
imagePullPolicy: Always
|
||||
name: manager
|
||||
ports:
|
||||
- containerPort: {{ .Values.manager.metrics.port }}
|
||||
name: metrics
|
||||
protocol: TCP
|
||||
- containerPort: 9876
|
||||
name: webhook-server
|
||||
protocol: TCP
|
||||
readinessProbe:
|
||||
tcpSocket:
|
||||
port: 9876
|
||||
resources:
|
||||
{{- toYaml .Values.manager.resources | nindent 12 }}
|
||||
volumeMounts:
|
||||
- mountPath: /tmp/cert
|
||||
name: cert
|
||||
readOnly: true
|
||||
terminationGracePeriodSeconds: 10
|
||||
|
||||
{{- if .Values.spec.nodeAffinity }}
|
||||
affinity:
|
||||
{{- end }}
|
||||
{{- with .Values.spec.nodeAffinity }}
|
||||
nodeAffinity:
|
||||
{{ toYaml . | indent 10 }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.spec.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{ toYaml .Values.spec.nodeSelector | indent 8 }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.spec.tolerations }}
|
||||
tolerations:
|
||||
{{ toYaml .Values.spec.tolerations | indent 8 }}
|
||||
{{- end }}
|
||||
|
||||
volumes:
|
||||
- name: cert
|
||||
secret:
|
||||
defaultMode: 420
|
||||
secretName: kruise-webhook-server-secret
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: kruise-webhook-server-secret
|
||||
namespace: kruise-system
|
|
@ -0,0 +1,199 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: kruise-manager-role
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- broadcastjobs
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- broadcastjobs/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- sidecarsets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- sidecarsets/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- persistentvolumeclaims
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- controllerrevisions
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- statefulsets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- statefulsets/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- admissionregistration.k8s.io
|
||||
resources:
|
||||
- mutatingwebhookconfigurations
|
||||
- validatingwebhookconfigurations
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- services
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
|
@ -0,0 +1,13 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: kruise-manager-rolebinding
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: kruise-manager-role
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: default
|
||||
namespace: kruise-system
|
|
@ -0,0 +1,76 @@
|
|||
apiVersion: admissionregistration.k8s.io/v1beta1
|
||||
kind: MutatingWebhookConfiguration
|
||||
metadata:
|
||||
name: kruise-mutating-webhook-configuration
|
||||
---
|
||||
apiVersion: admissionregistration.k8s.io/v1beta1
|
||||
kind: ValidatingWebhookConfiguration
|
||||
metadata:
|
||||
name: kruise-validating-webhook-configuration
|
||||
webhooks:
|
||||
- clientConfig:
|
||||
caBundle: fake
|
||||
service:
|
||||
name: kruise-webhook-server-service
|
||||
namespace: kruise-system
|
||||
path: /validating-create-update-broadcastjob
|
||||
failurePolicy: Fail
|
||||
name: validating-create-update-broadcastjob.kruise.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: control-plane
|
||||
operator: DoesNotExist
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- broadcastjobs
|
||||
- clientConfig:
|
||||
caBundle: fake
|
||||
service:
|
||||
name: kruise-webhook-server-service
|
||||
namespace: kruise-system
|
||||
path: /validating-create-update-sidecarset
|
||||
failurePolicy: Fail
|
||||
name: validating-create-update-sidecarset.kruise.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: control-plane
|
||||
operator: DoesNotExist
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- sidecarsets
|
||||
- clientConfig:
|
||||
caBundle: fake
|
||||
service:
|
||||
name: kruise-webhook-server-service
|
||||
namespace: kruise-system
|
||||
path: /validating-create-update-statefulset
|
||||
failurePolicy: Fail
|
||||
name: validating-create-update-statefulset.kruise.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: control-plane
|
||||
operator: DoesNotExist
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- statefulsets
|
|
@ -0,0 +1,27 @@
|
|||
# Default values for kruise.
|
||||
|
||||
revisionHistoryLimit: 3
|
||||
|
||||
spec:
|
||||
nodeAffinity: {}
|
||||
nodeSelector: {}
|
||||
tolerations: []
|
||||
|
||||
manager:
|
||||
# settings for log print
|
||||
log:
|
||||
# log level for kruise-manager
|
||||
level: "4"
|
||||
|
||||
# resources of kruise-manager container
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 100Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 60Mi
|
||||
|
||||
metrics:
|
||||
addr: localhost
|
||||
port: 8080
|
|
@ -0,0 +1,21 @@
|
|||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
|
@ -0,0 +1,17 @@
|
|||
apiVersion: v1
|
||||
name: kruise
|
||||
description: Helm chart for all kruise-manager components
|
||||
version: 0.2.0
|
||||
appVersion: 0.2.0
|
||||
icon: http://openkruise.io/img/kruise_white.png
|
||||
keywords:
|
||||
- kubernetes
|
||||
- kruise
|
||||
- workload
|
||||
- statefulset
|
||||
- sidecar
|
||||
- job
|
||||
- deployment
|
||||
home: https://openkruise.io
|
||||
sources:
|
||||
- https://github.com/openkruise/kruise
|
|
@ -0,0 +1,52 @@
|
|||
# Kruise
|
||||
|
||||
## Install
|
||||
|
||||
```bash
|
||||
# wget https://raw.githubusercontent.com/openkruise/kruise/master/hack/auto_generate_charts.sh
|
||||
# chmod +x auto_generate_charts.sh
|
||||
# ./auto_generate_charts.sh
|
||||
# helm install kruise charts/
|
||||
```
|
||||
|
||||
you will see follow:
|
||||
|
||||
```
|
||||
# helm install kruise charts
|
||||
NAME: kruise
|
||||
LAST DEPLOYED: 2019-10-10 15:57:30.485362 +0800 CST m=+0.210181363
|
||||
NAMESPACE: default
|
||||
STATUS: deployed
|
||||
|
||||
```
|
||||
|
||||
## Uninstall
|
||||
|
||||
```bash
|
||||
# helm delete kruise
|
||||
release "kruise" uninstalled
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
The following table lists the configurable parameters of the kruise chart and their default values.
|
||||
|
||||
| Parameter | Description | Default |
|
||||
|-------------------------------------------|--------------------------------------------------------------------|-------------------------------------|
|
||||
| `log.level` | Log level that kruise-manager printed | `4` |
|
||||
| `revisionHistoryLimit` | Limit of revision history | `3` |
|
||||
| `manager.resources.limits.cpu` | CPU resource limit of kruise-manager container | |
|
||||
| `manager.resources.limits.memory` | Memory resource limit of kruise-manager container | |
|
||||
| `manager.resources.requests.cpu` | CPU resource request of kruise-manager container | |
|
||||
| `manager.resources.requests.memory` | Memory resource request of kruise-manager container | |
|
||||
| `manager.metrics.addr` | Addr of metrics served | `localhost` |
|
||||
| `manager.metrics.port` | Port of metrics served | `8080` |
|
||||
| `spec.nodeAffinity` | Node affinity policy for kruise-manager pod | `{}` |
|
||||
| `spec.nodeSelector` | Node labels for kruise-manager pod | `{}` |
|
||||
| `spec.tolerations` | Tolerations for kruise-manager pod | `[]`
|
||||
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
|
||||
|
||||
```bash
|
||||
# helm install kruise ./ --set manager.log.level=5
|
||||
```
|
|
@ -0,0 +1,32 @@
|
|||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "kruise.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "kruise.fullname" -}}
|
||||
{{- if .Values.fullnameOverride -}}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "kruise.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
|
@ -0,0 +1,201 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: broadcastjobs.apps.kruise.io
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- JSONPath: .status.desired
|
||||
description: The desired number of pods. This is typically equal to the number
|
||||
of nodes satisfied to run pods.
|
||||
name: Desired
|
||||
type: integer
|
||||
- JSONPath: .status.active
|
||||
description: The number of actively running pods.
|
||||
name: Active
|
||||
type: integer
|
||||
- JSONPath: .status.succeeded
|
||||
description: The number of pods which reached phase Succeeded.
|
||||
name: Succeeded
|
||||
type: integer
|
||||
- JSONPath: .status.failed
|
||||
description: The number of pods which reached phase Failed.
|
||||
name: Failed
|
||||
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: BroadcastJob
|
||||
plural: broadcastjobs
|
||||
shortNames:
|
||||
- bj
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
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:
|
||||
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.
|
||||
oneOf:
|
||||
- type: string
|
||||
- type: integer
|
||||
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
|
||||
required:
|
||||
- template
|
||||
- completionPolicy
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
active:
|
||||
description: The number of actively running pods.
|
||||
format: int32
|
||||
type: integer
|
||||
completionTime:
|
||||
description: Represents time when the job was completed. It is not guaranteed
|
||||
to be set in happens-before order across separate operations. It is
|
||||
represented in RFC3339 form and is in UTC.
|
||||
format: date-time
|
||||
type: string
|
||||
conditions:
|
||||
description: The latest available observations of an object's current
|
||||
state. +patchMergeKey=type +patchStrategy=merge
|
||||
items:
|
||||
properties:
|
||||
lastProbeTime:
|
||||
description: Last time the condition was checked.
|
||||
format: date-time
|
||||
type: string
|
||||
lastTransitionTime:
|
||||
description: Last time the condition transit from one status to
|
||||
another.
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
description: Human readable message indicating details about last
|
||||
transition.
|
||||
type: string
|
||||
reason:
|
||||
description: (brief) reason for the condition's last transition.
|
||||
type: string
|
||||
status:
|
||||
description: Status of the condition, one of True, False, Unknown.
|
||||
type: string
|
||||
type:
|
||||
description: Type of job condition, Complete or Failed.
|
||||
type: string
|
||||
required:
|
||||
- type
|
||||
- status
|
||||
type: object
|
||||
type: array
|
||||
desired:
|
||||
description: The desired number of pods, this is typically equal to
|
||||
the number of nodes satisfied to run pods.
|
||||
format: int32
|
||||
type: integer
|
||||
failed:
|
||||
description: The number of pods which reached phase Failed.
|
||||
format: int32
|
||||
type: integer
|
||||
phase:
|
||||
description: The phase of the job.
|
||||
type: string
|
||||
startTime:
|
||||
description: Represents time when the job was acknowledged by the job
|
||||
controller. It is not guaranteed to be set in happens-before order
|
||||
across separate operations. It is represented in RFC3339 form and
|
||||
is in UTC.
|
||||
format: date-time
|
||||
type: string
|
||||
succeeded:
|
||||
description: The number of pods which reached phase Succeeded.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- active
|
||||
- succeeded
|
||||
- failed
|
||||
- desired
|
||||
- phase
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,118 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: sidecarsets.apps.kruise.io
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- JSONPath: .status.matchedPods
|
||||
description: The number of pods matched.
|
||||
name: MATCHED
|
||||
type: integer
|
||||
- JSONPath: .status.updatedPods
|
||||
description: The number of pods matched and updated.
|
||||
name: UPDATED
|
||||
type: integer
|
||||
- JSONPath: .status.readyPods
|
||||
description: The number of pods matched and 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: SidecarSet
|
||||
plural: sidecarsets
|
||||
scope: Cluster
|
||||
subresources:
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
properties:
|
||||
containers:
|
||||
description: Containers is the list of sidecar containers to be injected
|
||||
into the selected pod
|
||||
items:
|
||||
type: object
|
||||
type: array
|
||||
paused:
|
||||
description: Paused indicates that the sidecarset is paused and will
|
||||
not be processed by the sidecarset controller.
|
||||
type: boolean
|
||||
selector:
|
||||
description: selector is a label query over pods that should be injected
|
||||
type: object
|
||||
strategy:
|
||||
description: The sidecarset strategy to use to replace existing pods
|
||||
with new ones.
|
||||
properties:
|
||||
rollingUpdate:
|
||||
properties:
|
||||
maxUnavailable:
|
||||
oneOf:
|
||||
- type: string
|
||||
- type: integer
|
||||
type: object
|
||||
type: object
|
||||
volumes:
|
||||
description: List of volumes that can be mounted by sidecar containers
|
||||
items:
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
matchedPods:
|
||||
description: matchedPods is the number of Pods whose labels are matched
|
||||
with this SidecarSet's selector and are created after sidecarset creates
|
||||
format: int32
|
||||
type: integer
|
||||
observedGeneration:
|
||||
description: observedGeneration is the most recent generation observed
|
||||
for this SidecarSet. It corresponds to the SidecarSet's generation,
|
||||
which is updated on mutation by the API Server.
|
||||
format: int64
|
||||
type: integer
|
||||
readyPods:
|
||||
description: readyPods is the number of matched Pods that have a ready
|
||||
condition
|
||||
format: int32
|
||||
type: integer
|
||||
updatedPods:
|
||||
description: updatedPods is the number of matched Pods that are injected
|
||||
with the latest SidecarSet's containers
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- matchedPods
|
||||
- updatedPods
|
||||
- readyPods
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,221 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
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
|
||||
plural: statefulsets
|
||||
shortNames:
|
||||
- sts
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
scale:
|
||||
labelSelectorPath: .status.labelSelector
|
||||
specReplicasPath: .spec.replicas
|
||||
statusReplicasPath: .status.replicas
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
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'
|
||||
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
|
||||
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:
|
||||
maxUnavailable:
|
||||
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.'
|
||||
oneOf:
|
||||
- type: string
|
||||
- type: integer
|
||||
partition:
|
||||
description: Partition indicates the ordinal at which the StatefulSet
|
||||
should be partitioned. 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
|
||||
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:
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- selector
|
||||
- template
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
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. +patchMergeKey=type +patchStrategy=merge
|
||||
items:
|
||||
type: object
|
||||
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
|
||||
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:
|
||||
- replicas
|
||||
- readyReplicas
|
||||
- currentReplicas
|
||||
- updatedReplicas
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,111 @@
|
|||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: kruise-system
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: kruise-controller-manager-service
|
||||
namespace: kruise-system
|
||||
spec:
|
||||
ports:
|
||||
- port: 443
|
||||
selector:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: kruise-controller-manager
|
||||
namespace: kruise-system
|
||||
spec:
|
||||
replicas: 1
|
||||
serviceName: kruise-controller-manager-service
|
||||
revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
|
||||
selector:
|
||||
matchLabels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
prometheus.io/scrape: "true"
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
spec:
|
||||
containers:
|
||||
- command:
|
||||
- /manager
|
||||
args:
|
||||
- "--metrics-addr={{ .Values.manager.metrics.addr }}:{{ .Values.manager.metrics.port }}"
|
||||
- "--logtostderr=true"
|
||||
- "--v={{ .Values.manager.log.level }}"
|
||||
env:
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
- name: SECRET_NAME
|
||||
value: kruise-webhook-server-secret
|
||||
image: openkruise/kruise-manager:v0.2.0
|
||||
imagePullPolicy: Always
|
||||
name: manager
|
||||
ports:
|
||||
- containerPort: {{ .Values.manager.metrics.port }}
|
||||
name: metrics
|
||||
protocol: TCP
|
||||
- containerPort: 9876
|
||||
name: webhook-server
|
||||
protocol: TCP
|
||||
readinessProbe:
|
||||
tcpSocket:
|
||||
port: 9876
|
||||
resources:
|
||||
{{- toYaml .Values.manager.resources | nindent 12 }}
|
||||
volumeMounts:
|
||||
- mountPath: /tmp/cert
|
||||
name: cert
|
||||
readOnly: true
|
||||
terminationGracePeriodSeconds: 10
|
||||
|
||||
{{- if .Values.spec.nodeAffinity }}
|
||||
affinity:
|
||||
{{- end }}
|
||||
{{- with .Values.spec.nodeAffinity }}
|
||||
nodeAffinity:
|
||||
{{ toYaml . | indent 10 }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.spec.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{ toYaml .Values.spec.nodeSelector | indent 8 }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.spec.tolerations }}
|
||||
tolerations:
|
||||
{{ toYaml .Values.spec.tolerations | indent 8 }}
|
||||
{{- end }}
|
||||
|
||||
volumes:
|
||||
- name: cert
|
||||
secret:
|
||||
defaultMode: 420
|
||||
secretName: kruise-webhook-server-secret
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: kruise-webhook-server-secret
|
||||
namespace: kruise-system
|
|
@ -0,0 +1,199 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: kruise-manager-role
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- broadcastjobs
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- broadcastjobs/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- sidecarsets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- sidecarsets/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- persistentvolumeclaims
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- controllerrevisions
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- statefulsets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- statefulsets/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- admissionregistration.k8s.io
|
||||
resources:
|
||||
- mutatingwebhookconfigurations
|
||||
- validatingwebhookconfigurations
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- services
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
|
@ -0,0 +1,13 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: kruise-manager-rolebinding
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: kruise-manager-role
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: default
|
||||
namespace: kruise-system
|
|
@ -0,0 +1,76 @@
|
|||
apiVersion: admissionregistration.k8s.io/v1beta1
|
||||
kind: MutatingWebhookConfiguration
|
||||
metadata:
|
||||
name: kruise-mutating-webhook-configuration
|
||||
---
|
||||
apiVersion: admissionregistration.k8s.io/v1beta1
|
||||
kind: ValidatingWebhookConfiguration
|
||||
metadata:
|
||||
name: kruise-validating-webhook-configuration
|
||||
webhooks:
|
||||
- clientConfig:
|
||||
caBundle: fake
|
||||
service:
|
||||
name: kruise-webhook-server-service
|
||||
namespace: kruise-system
|
||||
path: /validating-create-update-broadcastjob
|
||||
failurePolicy: Fail
|
||||
name: validating-create-update-broadcastjob.kruise.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: control-plane
|
||||
operator: DoesNotExist
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- broadcastjobs
|
||||
- clientConfig:
|
||||
caBundle: fake
|
||||
service:
|
||||
name: kruise-webhook-server-service
|
||||
namespace: kruise-system
|
||||
path: /validating-create-update-sidecarset
|
||||
failurePolicy: Fail
|
||||
name: validating-create-update-sidecarset.kruise.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: control-plane
|
||||
operator: DoesNotExist
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- sidecarsets
|
||||
- clientConfig:
|
||||
caBundle: fake
|
||||
service:
|
||||
name: kruise-webhook-server-service
|
||||
namespace: kruise-system
|
||||
path: /validating-create-update-statefulset
|
||||
failurePolicy: Fail
|
||||
name: validating-create-update-statefulset.kruise.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: control-plane
|
||||
operator: DoesNotExist
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- statefulsets
|
|
@ -0,0 +1,27 @@
|
|||
# Default values for kruise.
|
||||
|
||||
revisionHistoryLimit: 3
|
||||
|
||||
spec:
|
||||
nodeAffinity: {}
|
||||
nodeSelector: {}
|
||||
tolerations: []
|
||||
|
||||
manager:
|
||||
# settings for log print
|
||||
log:
|
||||
# log level for kruise-manager
|
||||
level: "4"
|
||||
|
||||
# resources of kruise-manager container
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 100Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 60Mi
|
||||
|
||||
metrics:
|
||||
addr: localhost
|
||||
port: 8080
|
|
@ -0,0 +1,21 @@
|
|||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
|
@ -0,0 +1,17 @@
|
|||
apiVersion: v1
|
||||
name: kruise
|
||||
description: Helm chart for all kruise-manager components
|
||||
version: 0.3.0
|
||||
appVersion: 0.3.0
|
||||
icon: http://openkruise.io/img/kruise_white.png
|
||||
keywords:
|
||||
- kubernetes
|
||||
- kruise
|
||||
- workload
|
||||
- statefulset
|
||||
- sidecar
|
||||
- job
|
||||
- deployment
|
||||
home: https://openkruise.io
|
||||
sources:
|
||||
- https://github.com/openkruise/kruise
|
|
@ -0,0 +1,52 @@
|
|||
# Kruise
|
||||
|
||||
## Install
|
||||
|
||||
```bash
|
||||
# wget https://raw.githubusercontent.com/openkruise/kruise/master/hack/auto_generate_charts.sh
|
||||
# chmod +x auto_generate_charts.sh
|
||||
# ./auto_generate_charts.sh
|
||||
# helm install kruise charts/
|
||||
```
|
||||
|
||||
you will see follow:
|
||||
|
||||
```
|
||||
# helm install kruise charts
|
||||
NAME: kruise
|
||||
LAST DEPLOYED: 2019-10-10 15:57:30.485362 +0800 CST m=+0.210181363
|
||||
NAMESPACE: default
|
||||
STATUS: deployed
|
||||
|
||||
```
|
||||
|
||||
## Uninstall
|
||||
|
||||
```bash
|
||||
# helm delete kruise
|
||||
release "kruise" uninstalled
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
The following table lists the configurable parameters of the kruise chart and their default values.
|
||||
|
||||
| Parameter | Description | Default |
|
||||
|-------------------------------------------|--------------------------------------------------------------------|-------------------------------------|
|
||||
| `log.level` | Log level that kruise-manager printed | `4` |
|
||||
| `revisionHistoryLimit` | Limit of revision history | `3` |
|
||||
| `manager.resources.limits.cpu` | CPU resource limit of kruise-manager container | |
|
||||
| `manager.resources.limits.memory` | Memory resource limit of kruise-manager container | |
|
||||
| `manager.resources.requests.cpu` | CPU resource request of kruise-manager container | |
|
||||
| `manager.resources.requests.memory` | Memory resource request of kruise-manager container | |
|
||||
| `manager.metrics.addr` | Addr of metrics served | `localhost` |
|
||||
| `manager.metrics.port` | Port of metrics served | `8080` |
|
||||
| `spec.nodeAffinity` | Node affinity policy for kruise-manager pod | `{}` |
|
||||
| `spec.nodeSelector` | Node labels for kruise-manager pod | `{}` |
|
||||
| `spec.tolerations` | Tolerations for kruise-manager pod | `[]`
|
||||
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
|
||||
|
||||
```bash
|
||||
# helm install kruise ./ --set manager.log.level=5
|
||||
```
|
|
@ -0,0 +1,32 @@
|
|||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "kruise.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "kruise.fullname" -}}
|
||||
{{- if .Values.fullnameOverride -}}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "kruise.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
|
@ -0,0 +1,201 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: broadcastjobs.apps.kruise.io
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- JSONPath: .status.desired
|
||||
description: The desired number of pods. This is typically equal to the number
|
||||
of nodes satisfied to run pods.
|
||||
name: Desired
|
||||
type: integer
|
||||
- JSONPath: .status.active
|
||||
description: The number of actively running pods.
|
||||
name: Active
|
||||
type: integer
|
||||
- JSONPath: .status.succeeded
|
||||
description: The number of pods which reached phase Succeeded.
|
||||
name: Succeeded
|
||||
type: integer
|
||||
- JSONPath: .status.failed
|
||||
description: The number of pods which reached phase Failed.
|
||||
name: Failed
|
||||
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: BroadcastJob
|
||||
plural: broadcastjobs
|
||||
shortNames:
|
||||
- bj
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
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:
|
||||
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.
|
||||
oneOf:
|
||||
- type: string
|
||||
- type: integer
|
||||
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
|
||||
required:
|
||||
- template
|
||||
- completionPolicy
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
active:
|
||||
description: The number of actively running pods.
|
||||
format: int32
|
||||
type: integer
|
||||
completionTime:
|
||||
description: Represents time when the job was completed. It is not guaranteed
|
||||
to be set in happens-before order across separate operations. It is
|
||||
represented in RFC3339 form and is in UTC.
|
||||
format: date-time
|
||||
type: string
|
||||
conditions:
|
||||
description: The latest available observations of an object's current
|
||||
state. +patchMergeKey=type +patchStrategy=merge
|
||||
items:
|
||||
properties:
|
||||
lastProbeTime:
|
||||
description: Last time the condition was checked.
|
||||
format: date-time
|
||||
type: string
|
||||
lastTransitionTime:
|
||||
description: Last time the condition transit from one status to
|
||||
another.
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
description: Human readable message indicating details about last
|
||||
transition.
|
||||
type: string
|
||||
reason:
|
||||
description: (brief) reason for the condition's last transition.
|
||||
type: string
|
||||
status:
|
||||
description: Status of the condition, one of True, False, Unknown.
|
||||
type: string
|
||||
type:
|
||||
description: Type of job condition, Complete or Failed.
|
||||
type: string
|
||||
required:
|
||||
- type
|
||||
- status
|
||||
type: object
|
||||
type: array
|
||||
desired:
|
||||
description: The desired number of pods, this is typically equal to
|
||||
the number of nodes satisfied to run pods.
|
||||
format: int32
|
||||
type: integer
|
||||
failed:
|
||||
description: The number of pods which reached phase Failed.
|
||||
format: int32
|
||||
type: integer
|
||||
phase:
|
||||
description: The phase of the job.
|
||||
type: string
|
||||
startTime:
|
||||
description: Represents time when the job was acknowledged by the job
|
||||
controller. It is not guaranteed to be set in happens-before order
|
||||
across separate operations. It is represented in RFC3339 form and
|
||||
is in UTC.
|
||||
format: date-time
|
||||
type: string
|
||||
succeeded:
|
||||
description: The number of pods which reached phase Succeeded.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- active
|
||||
- succeeded
|
||||
- failed
|
||||
- desired
|
||||
- phase
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,118 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: sidecarsets.apps.kruise.io
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- JSONPath: .status.matchedPods
|
||||
description: The number of pods matched.
|
||||
name: MATCHED
|
||||
type: integer
|
||||
- JSONPath: .status.updatedPods
|
||||
description: The number of pods matched and updated.
|
||||
name: UPDATED
|
||||
type: integer
|
||||
- JSONPath: .status.readyPods
|
||||
description: The number of pods matched and 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: SidecarSet
|
||||
plural: sidecarsets
|
||||
scope: Cluster
|
||||
subresources:
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
properties:
|
||||
containers:
|
||||
description: Containers is the list of sidecar containers to be injected
|
||||
into the selected pod
|
||||
items:
|
||||
type: object
|
||||
type: array
|
||||
paused:
|
||||
description: Paused indicates that the sidecarset is paused and will
|
||||
not be processed by the sidecarset controller.
|
||||
type: boolean
|
||||
selector:
|
||||
description: selector is a label query over pods that should be injected
|
||||
type: object
|
||||
strategy:
|
||||
description: The sidecarset strategy to use to replace existing pods
|
||||
with new ones.
|
||||
properties:
|
||||
rollingUpdate:
|
||||
properties:
|
||||
maxUnavailable:
|
||||
oneOf:
|
||||
- type: string
|
||||
- type: integer
|
||||
type: object
|
||||
type: object
|
||||
volumes:
|
||||
description: List of volumes that can be mounted by sidecar containers
|
||||
items:
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
matchedPods:
|
||||
description: matchedPods is the number of Pods whose labels are matched
|
||||
with this SidecarSet's selector and are created after sidecarset creates
|
||||
format: int32
|
||||
type: integer
|
||||
observedGeneration:
|
||||
description: observedGeneration is the most recent generation observed
|
||||
for this SidecarSet. It corresponds to the SidecarSet's generation,
|
||||
which is updated on mutation by the API Server.
|
||||
format: int64
|
||||
type: integer
|
||||
readyPods:
|
||||
description: readyPods is the number of matched Pods that have a ready
|
||||
condition
|
||||
format: int32
|
||||
type: integer
|
||||
updatedPods:
|
||||
description: updatedPods is the number of matched Pods that are injected
|
||||
with the latest SidecarSet's containers
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- matchedPods
|
||||
- updatedPods
|
||||
- readyPods
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,269 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
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
|
||||
plural: statefulsets
|
||||
shortNames:
|
||||
- sts
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
scale:
|
||||
labelSelectorPath: .status.labelSelector
|
||||
specReplicasPath: .spec.replicas
|
||||
statusReplicasPath: .status.replicas
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
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'
|
||||
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
|
||||
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:
|
||||
maxUnavailable:
|
||||
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.'
|
||||
oneOf:
|
||||
- type: string
|
||||
- type: integer
|
||||
partition:
|
||||
description: Partition indicates the number of pods with non-updated
|
||||
revisions when rolling update. This 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
|
||||
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. Also, priorityStrategy
|
||||
can just be allowed to work with Parallel podManagementPolicy.
|
||||
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:
|
||||
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:
|
||||
properties:
|
||||
matchSelector:
|
||||
description: MatchSelector is used to select by pod's
|
||||
labels.
|
||||
type: object
|
||||
weight:
|
||||
description: Weight associated with matching the corresponding
|
||||
matchExpressions, in the range 1-100.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- weight
|
||||
- matchSelector
|
||||
type: object
|
||||
type: array
|
||||
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:
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- selector
|
||||
- template
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
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. +patchMergeKey=type +patchStrategy=merge
|
||||
items:
|
||||
type: object
|
||||
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
|
||||
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:
|
||||
- replicas
|
||||
- readyReplicas
|
||||
- currentReplicas
|
||||
- updatedReplicas
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,234 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: uniteddeployments.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: UnitedDeployment
|
||||
plural: uniteddeployments
|
||||
shortNames:
|
||||
- ud
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
scale:
|
||||
labelSelectorPath: .status.selector
|
||||
specReplicasPath: .spec.replicas
|
||||
statusReplicasPath: .status.replicas
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
properties:
|
||||
replicas:
|
||||
description: Replicas is the total desired replicas of all the subsets.
|
||||
If unspecified, defaults to 1.
|
||||
format: int32
|
||||
type: integer
|
||||
revisionHistoryLimit:
|
||||
description: Indicates the number of histories to be conserved. If unspecified,
|
||||
defaults to 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.
|
||||
type: object
|
||||
template:
|
||||
description: Template describes the subset that will be created.
|
||||
properties:
|
||||
statefulSetTemplate:
|
||||
description: StatefulSet template
|
||||
properties:
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
type: object
|
||||
required:
|
||||
- spec
|
||||
type: object
|
||||
type: object
|
||||
topology:
|
||||
description: Topology describes the pods distribution detail between
|
||||
each of subsets.
|
||||
properties:
|
||||
subsets:
|
||||
description: Contains the details of each subset. Each element in
|
||||
this array represents one subset which will be provisioned and
|
||||
managed by UnitedDeployment.
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
description: Indicates subset name as a DNS_LABEL, which will
|
||||
be used to generate subset workload name prefix in the format
|
||||
'<deployment-name>-<subset-name>-'. Name should be unique
|
||||
between all of the subsets under one UnitedDeployment.
|
||||
type: string
|
||||
nodeSelectorTerm:
|
||||
description: Indicates the node selector to form the subset.
|
||||
Depending on the node selector, pods provisioned could be
|
||||
distributed across multiple groups of nodes. A subset's
|
||||
nodeSelectorTerm is not allowed to be updated.
|
||||
type: object
|
||||
replicas:
|
||||
description: Indicates the number of the pod to be created
|
||||
under this subset. Replicas could also be percentage like
|
||||
'10%', which means 10% of UnitedDeployment replicas of pods
|
||||
will be distributed under this subset. If nil, the number
|
||||
of replicas in this subset is determined by controller.
|
||||
Controller will try to keep all the subsets with nil replicas
|
||||
have average pods.
|
||||
oneOf:
|
||||
- type: string
|
||||
- type: integer
|
||||
required:
|
||||
- name
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
updateStrategy:
|
||||
description: UpdateStrategy indicates the strategy the UnitedDeployment
|
||||
use to preform the update, when template is changed.
|
||||
properties:
|
||||
manualUpdate:
|
||||
description: Includes all of the parameters a Manual update strategy
|
||||
needs.
|
||||
properties:
|
||||
partitions:
|
||||
description: Indicates number of subset partition.
|
||||
type: object
|
||||
type: object
|
||||
type:
|
||||
description: Type of UnitedDeployment update strategy. Default is
|
||||
Manual.
|
||||
type: string
|
||||
type: object
|
||||
required:
|
||||
- selector
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
collisionCount:
|
||||
description: Count of hash collisions for the UnitedDeployment. The
|
||||
UnitedDeployment 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 UnitedDeployment's
|
||||
current state.
|
||||
items:
|
||||
properties:
|
||||
lastTransitionTime:
|
||||
description: Last time the condition transitioned from one status
|
||||
to another.
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
description: A human readable message indicating details about
|
||||
the transition.
|
||||
type: string
|
||||
reason:
|
||||
description: The reason for the condition's last transition.
|
||||
type: string
|
||||
status:
|
||||
description: Status of the condition, one of True, False, Unknown.
|
||||
type: string
|
||||
type:
|
||||
description: Type of in place set condition.
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
currentRevision:
|
||||
description: CurrentRevision, if not empty, indicates the current version
|
||||
of the UnitedDeployment.
|
||||
type: string
|
||||
observedGeneration:
|
||||
description: ObservedGeneration is the most recent generation observed
|
||||
for this UnitedDeployment. It corresponds to the UnitedDeployment's
|
||||
generation, which is updated on mutation by the API Server.
|
||||
format: int64
|
||||
type: integer
|
||||
readyReplicas:
|
||||
description: The number of ready replicas.
|
||||
format: int32
|
||||
type: integer
|
||||
replicas:
|
||||
description: Replicas is the most recently observed number of replicas.
|
||||
format: int32
|
||||
type: integer
|
||||
subsetReplicas:
|
||||
description: Records the topology detail information of the replicas
|
||||
of each subset.
|
||||
type: object
|
||||
updateStatus:
|
||||
description: Records the information of update progress.
|
||||
properties:
|
||||
currentPartitions:
|
||||
description: Records the current partition.
|
||||
type: object
|
||||
updatedRevision:
|
||||
description: Records the latest revision.
|
||||
type: string
|
||||
type: object
|
||||
updatedReadyReplicas:
|
||||
description: The number of ready current revision replicas for this
|
||||
UnitedDeployment.
|
||||
format: int32
|
||||
type: integer
|
||||
updatedReplicas:
|
||||
description: The number of pods in current version.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- replicas
|
||||
- updatedReplicas
|
||||
- currentRevision
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,111 @@
|
|||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: kruise-system
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: kruise-controller-manager-service
|
||||
namespace: kruise-system
|
||||
spec:
|
||||
ports:
|
||||
- port: 443
|
||||
selector:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: kruise-controller-manager
|
||||
namespace: kruise-system
|
||||
spec:
|
||||
replicas: 1
|
||||
serviceName: kruise-controller-manager-service
|
||||
revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
|
||||
selector:
|
||||
matchLabels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
prometheus.io/scrape: "true"
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
spec:
|
||||
containers:
|
||||
- command:
|
||||
- /manager
|
||||
args:
|
||||
- "--metrics-addr={{ .Values.manager.metrics.addr }}:{{ .Values.manager.metrics.port }}"
|
||||
- "--logtostderr=true"
|
||||
- "--v={{ .Values.manager.log.level }}"
|
||||
env:
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
- name: SECRET_NAME
|
||||
value: kruise-webhook-server-secret
|
||||
image: openkruise/kruise-manager:v0.3.0
|
||||
imagePullPolicy: Always
|
||||
name: manager
|
||||
ports:
|
||||
- containerPort: {{ .Values.manager.metrics.port }}
|
||||
name: metrics
|
||||
protocol: TCP
|
||||
- containerPort: 9876
|
||||
name: webhook-server
|
||||
protocol: TCP
|
||||
readinessProbe:
|
||||
tcpSocket:
|
||||
port: 9876
|
||||
resources:
|
||||
{{- toYaml .Values.manager.resources | nindent 12 }}
|
||||
volumeMounts:
|
||||
- mountPath: /tmp/cert
|
||||
name: cert
|
||||
readOnly: true
|
||||
terminationGracePeriodSeconds: 10
|
||||
|
||||
{{- if .Values.spec.nodeAffinity }}
|
||||
affinity:
|
||||
{{- end }}
|
||||
{{- with .Values.spec.nodeAffinity }}
|
||||
nodeAffinity:
|
||||
{{ toYaml . | indent 10 }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.spec.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{ toYaml .Values.spec.nodeSelector | indent 8 }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.spec.tolerations }}
|
||||
tolerations:
|
||||
{{ toYaml .Values.spec.tolerations | indent 8 }}
|
||||
{{- end }}
|
||||
|
||||
volumes:
|
||||
- name: cert
|
||||
secret:
|
||||
defaultMode: 420
|
||||
secretName: kruise-webhook-server-secret
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: kruise-webhook-server-secret
|
||||
namespace: kruise-system
|
|
@ -0,0 +1,239 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: kruise-manager-role
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- broadcastjobs
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- broadcastjobs/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- sidecarsets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- sidecarsets/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- persistentvolumeclaims
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- controllerrevisions
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- statefulsets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- statefulsets/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- uniteddeployments
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- uniteddeployments/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- statefulsets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- statefulsets/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- admissionregistration.k8s.io
|
||||
resources:
|
||||
- mutatingwebhookconfigurations
|
||||
- validatingwebhookconfigurations
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- services
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
|
@ -0,0 +1,13 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: kruise-manager-rolebinding
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: kruise-manager-role
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: default
|
||||
namespace: kruise-system
|
|
@ -0,0 +1,98 @@
|
|||
apiVersion: admissionregistration.k8s.io/v1beta1
|
||||
kind: MutatingWebhookConfiguration
|
||||
metadata:
|
||||
name: kruise-mutating-webhook-configuration
|
||||
---
|
||||
apiVersion: admissionregistration.k8s.io/v1beta1
|
||||
kind: ValidatingWebhookConfiguration
|
||||
metadata:
|
||||
name: kruise-validating-webhook-configuration
|
||||
webhooks:
|
||||
- clientConfig:
|
||||
caBundle: fake
|
||||
service:
|
||||
name: kruise-webhook-server-service
|
||||
namespace: kruise-system
|
||||
path: /validating-create-update-broadcastjob
|
||||
failurePolicy: Fail
|
||||
name: validating-create-update-broadcastjob.kruise.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: control-plane
|
||||
operator: DoesNotExist
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- broadcastjobs
|
||||
- clientConfig:
|
||||
caBundle: fake
|
||||
service:
|
||||
name: kruise-webhook-server-service
|
||||
namespace: kruise-system
|
||||
path: /validating-create-update-sidecarset
|
||||
failurePolicy: Fail
|
||||
name: validating-create-update-sidecarset.kruise.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: control-plane
|
||||
operator: DoesNotExist
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- sidecarsets
|
||||
- clientConfig:
|
||||
caBundle: fake
|
||||
service:
|
||||
name: kruise-webhook-server-service
|
||||
namespace: kruise-system
|
||||
path: /validating-create-update-statefulset
|
||||
failurePolicy: Fail
|
||||
name: validating-create-update-statefulset.kruise.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: control-plane
|
||||
operator: DoesNotExist
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- statefulsets
|
||||
- clientConfig:
|
||||
caBundle: fake
|
||||
service:
|
||||
name: kruise-webhook-server-service
|
||||
namespace: kruise-system
|
||||
path: /validating-create-update-uniteddeployment
|
||||
failurePolicy: Fail
|
||||
name: validating-create-update-uniteddeployment.kruise.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: control-plane
|
||||
operator: DoesNotExist
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- uniteddeployments
|
|
@ -0,0 +1,27 @@
|
|||
# Default values for kruise.
|
||||
|
||||
revisionHistoryLimit: 3
|
||||
|
||||
spec:
|
||||
nodeAffinity: {}
|
||||
nodeSelector: {}
|
||||
tolerations: []
|
||||
|
||||
manager:
|
||||
# settings for log print
|
||||
log:
|
||||
# log level for kruise-manager
|
||||
level: "4"
|
||||
|
||||
# resources of kruise-manager container
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 100Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 60Mi
|
||||
|
||||
metrics:
|
||||
addr: localhost
|
||||
port: 8080
|
|
@ -0,0 +1,17 @@
|
|||
apiVersion: v1
|
||||
name: kruise
|
||||
description: Helm chart for all kruise-manager components
|
||||
version: 0.3.1
|
||||
appVersion: 0.3.1
|
||||
icon: http://openkruise.io/img/kruise_white.png
|
||||
keywords:
|
||||
- kubernetes
|
||||
- kruise
|
||||
- workload
|
||||
- statefulset
|
||||
- sidecar
|
||||
- job
|
||||
- deployment
|
||||
home: https://openkruise.io
|
||||
sources:
|
||||
- https://github.com/openkruise/kruise
|
|
@ -0,0 +1,49 @@
|
|||
# Kruise
|
||||
|
||||
## Install
|
||||
|
||||
```bash
|
||||
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.3.1/kruise-chart.tgz
|
||||
```
|
||||
|
||||
you will see follow:
|
||||
|
||||
```
|
||||
NAME: kruise
|
||||
LAST DEPLOYED: Mon Jan 6 14:47:48 2020
|
||||
NAMESPACE: default
|
||||
STATUS: deployed
|
||||
REVISION: 1
|
||||
TEST SUITE: None
|
||||
```
|
||||
|
||||
## Uninstall
|
||||
|
||||
```bash
|
||||
$ helm delete kruise
|
||||
release "kruise" uninstalled
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
The following table lists the configurable parameters of the kruise chart and their default values.
|
||||
|
||||
| Parameter | Description | Default |
|
||||
|-------------------------------------------|--------------------------------------------------------------------|-------------------------------------|
|
||||
| `log.level` | Log level that kruise-manager printed | `4` |
|
||||
| `revisionHistoryLimit` | Limit of revision history | `3` |
|
||||
| `manager.resources.limits.cpu` | CPU resource limit of kruise-manager container | |
|
||||
| `manager.resources.limits.memory` | Memory resource limit of kruise-manager container | |
|
||||
| `manager.resources.requests.cpu` | CPU resource request of kruise-manager container | |
|
||||
| `manager.resources.requests.memory` | Memory resource request of kruise-manager container | |
|
||||
| `manager.metrics.addr` | Addr of metrics served | `localhost` |
|
||||
| `manager.metrics.port` | Port of metrics served | `8080` |
|
||||
| `spec.nodeAffinity` | Node affinity policy for kruise-manager pod | `{}` |
|
||||
| `spec.nodeSelector` | Node labels for kruise-manager pod | `{}` |
|
||||
| `spec.tolerations` | Tolerations for kruise-manager pod | `[]`
|
||||
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
|
||||
|
||||
```bash
|
||||
# helm install kruise https://github.com/openkruise/kruise/releases/download/v0.3.1/kruise-chart.tgz --set manager.log.level=5
|
||||
```
|
|
@ -0,0 +1,201 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: broadcastjobs.apps.kruise.io
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- JSONPath: .status.desired
|
||||
description: The desired number of pods. This is typically equal to the number
|
||||
of nodes satisfied to run pods.
|
||||
name: Desired
|
||||
type: integer
|
||||
- JSONPath: .status.active
|
||||
description: The number of actively running pods.
|
||||
name: Active
|
||||
type: integer
|
||||
- JSONPath: .status.succeeded
|
||||
description: The number of pods which reached phase Succeeded.
|
||||
name: Succeeded
|
||||
type: integer
|
||||
- JSONPath: .status.failed
|
||||
description: The number of pods which reached phase Failed.
|
||||
name: Failed
|
||||
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: BroadcastJob
|
||||
plural: broadcastjobs
|
||||
shortNames:
|
||||
- bj
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
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:
|
||||
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.
|
||||
oneOf:
|
||||
- type: string
|
||||
- type: integer
|
||||
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
|
||||
required:
|
||||
- template
|
||||
- completionPolicy
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
active:
|
||||
description: The number of actively running pods.
|
||||
format: int32
|
||||
type: integer
|
||||
completionTime:
|
||||
description: Represents time when the job was completed. It is not guaranteed
|
||||
to be set in happens-before order across separate operations. It is
|
||||
represented in RFC3339 form and is in UTC.
|
||||
format: date-time
|
||||
type: string
|
||||
conditions:
|
||||
description: The latest available observations of an object's current
|
||||
state. +patchMergeKey=type +patchStrategy=merge
|
||||
items:
|
||||
properties:
|
||||
lastProbeTime:
|
||||
description: Last time the condition was checked.
|
||||
format: date-time
|
||||
type: string
|
||||
lastTransitionTime:
|
||||
description: Last time the condition transit from one status to
|
||||
another.
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
description: Human readable message indicating details about last
|
||||
transition.
|
||||
type: string
|
||||
reason:
|
||||
description: (brief) reason for the condition's last transition.
|
||||
type: string
|
||||
status:
|
||||
description: Status of the condition, one of True, False, Unknown.
|
||||
type: string
|
||||
type:
|
||||
description: Type of job condition, Complete or Failed.
|
||||
type: string
|
||||
required:
|
||||
- type
|
||||
- status
|
||||
type: object
|
||||
type: array
|
||||
desired:
|
||||
description: The desired number of pods, this is typically equal to
|
||||
the number of nodes satisfied to run pods.
|
||||
format: int32
|
||||
type: integer
|
||||
failed:
|
||||
description: The number of pods which reached phase Failed.
|
||||
format: int32
|
||||
type: integer
|
||||
phase:
|
||||
description: The phase of the job.
|
||||
type: string
|
||||
startTime:
|
||||
description: Represents time when the job was acknowledged by the job
|
||||
controller. It is not guaranteed to be set in happens-before order
|
||||
across separate operations. It is represented in RFC3339 form and
|
||||
is in UTC.
|
||||
format: date-time
|
||||
type: string
|
||||
succeeded:
|
||||
description: The number of pods which reached phase Succeeded.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- active
|
||||
- succeeded
|
||||
- failed
|
||||
- desired
|
||||
- phase
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,118 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: sidecarsets.apps.kruise.io
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- JSONPath: .status.matchedPods
|
||||
description: The number of pods matched.
|
||||
name: MATCHED
|
||||
type: integer
|
||||
- JSONPath: .status.updatedPods
|
||||
description: The number of pods matched and updated.
|
||||
name: UPDATED
|
||||
type: integer
|
||||
- JSONPath: .status.readyPods
|
||||
description: The number of pods matched and 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: SidecarSet
|
||||
plural: sidecarsets
|
||||
scope: Cluster
|
||||
subresources:
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
properties:
|
||||
containers:
|
||||
description: Containers is the list of sidecar containers to be injected
|
||||
into the selected pod
|
||||
items:
|
||||
type: object
|
||||
type: array
|
||||
paused:
|
||||
description: Paused indicates that the sidecarset is paused and will
|
||||
not be processed by the sidecarset controller.
|
||||
type: boolean
|
||||
selector:
|
||||
description: selector is a label query over pods that should be injected
|
||||
type: object
|
||||
strategy:
|
||||
description: The sidecarset strategy to use to replace existing pods
|
||||
with new ones.
|
||||
properties:
|
||||
rollingUpdate:
|
||||
properties:
|
||||
maxUnavailable:
|
||||
oneOf:
|
||||
- type: string
|
||||
- type: integer
|
||||
type: object
|
||||
type: object
|
||||
volumes:
|
||||
description: List of volumes that can be mounted by sidecar containers
|
||||
items:
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
matchedPods:
|
||||
description: matchedPods is the number of Pods whose labels are matched
|
||||
with this SidecarSet's selector and are created after sidecarset creates
|
||||
format: int32
|
||||
type: integer
|
||||
observedGeneration:
|
||||
description: observedGeneration is the most recent generation observed
|
||||
for this SidecarSet. It corresponds to the SidecarSet's generation,
|
||||
which is updated on mutation by the API Server.
|
||||
format: int64
|
||||
type: integer
|
||||
readyPods:
|
||||
description: readyPods is the number of matched Pods that have a ready
|
||||
condition
|
||||
format: int32
|
||||
type: integer
|
||||
updatedPods:
|
||||
description: updatedPods is the number of matched Pods that are injected
|
||||
with the latest SidecarSet's containers
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- matchedPods
|
||||
- updatedPods
|
||||
- readyPods
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,279 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
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
|
||||
plural: statefulsets
|
||||
shortNames:
|
||||
- sts
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
scale:
|
||||
labelSelectorPath: .status.labelSelector
|
||||
specReplicasPath: .spec.replicas
|
||||
statusReplicasPath: .status.replicas
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
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'
|
||||
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
|
||||
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:
|
||||
maxUnavailable:
|
||||
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.'
|
||||
oneOf:
|
||||
- type: string
|
||||
- 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:
|
||||
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:
|
||||
properties:
|
||||
matchSelector:
|
||||
description: MatchSelector is used to select by
|
||||
pod's labels.
|
||||
type: object
|
||||
weight:
|
||||
description: Weight associated with matching the
|
||||
corresponding matchExpressions, in the range
|
||||
1-100.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- weight
|
||||
- matchSelector
|
||||
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:
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- selector
|
||||
- template
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
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. +patchMergeKey=type +patchStrategy=merge
|
||||
items:
|
||||
type: object
|
||||
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
|
||||
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:
|
||||
- replicas
|
||||
- readyReplicas
|
||||
- currentReplicas
|
||||
- updatedReplicas
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,234 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: uniteddeployments.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: UnitedDeployment
|
||||
plural: uniteddeployments
|
||||
shortNames:
|
||||
- ud
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
scale:
|
||||
labelSelectorPath: .status.selector
|
||||
specReplicasPath: .spec.replicas
|
||||
statusReplicasPath: .status.replicas
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
properties:
|
||||
replicas:
|
||||
description: Replicas is the total desired replicas of all the subsets.
|
||||
If unspecified, defaults to 1.
|
||||
format: int32
|
||||
type: integer
|
||||
revisionHistoryLimit:
|
||||
description: Indicates the number of histories to be conserved. If unspecified,
|
||||
defaults to 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.
|
||||
type: object
|
||||
template:
|
||||
description: Template describes the subset that will be created.
|
||||
properties:
|
||||
statefulSetTemplate:
|
||||
description: StatefulSet template
|
||||
properties:
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
type: object
|
||||
required:
|
||||
- spec
|
||||
type: object
|
||||
type: object
|
||||
topology:
|
||||
description: Topology describes the pods distribution detail between
|
||||
each of subsets.
|
||||
properties:
|
||||
subsets:
|
||||
description: Contains the details of each subset. Each element in
|
||||
this array represents one subset which will be provisioned and
|
||||
managed by UnitedDeployment.
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
description: Indicates subset name as a DNS_LABEL, which will
|
||||
be used to generate subset workload name prefix in the format
|
||||
'<deployment-name>-<subset-name>-'. Name should be unique
|
||||
between all of the subsets under one UnitedDeployment.
|
||||
type: string
|
||||
nodeSelectorTerm:
|
||||
description: Indicates the node selector to form the subset.
|
||||
Depending on the node selector, pods provisioned could be
|
||||
distributed across multiple groups of nodes. A subset's
|
||||
nodeSelectorTerm is not allowed to be updated.
|
||||
type: object
|
||||
replicas:
|
||||
description: Indicates the number of the pod to be created
|
||||
under this subset. Replicas could also be percentage like
|
||||
'10%', which means 10% of UnitedDeployment replicas of pods
|
||||
will be distributed under this subset. If nil, the number
|
||||
of replicas in this subset is determined by controller.
|
||||
Controller will try to keep all the subsets with nil replicas
|
||||
have average pods.
|
||||
oneOf:
|
||||
- type: string
|
||||
- type: integer
|
||||
required:
|
||||
- name
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
updateStrategy:
|
||||
description: UpdateStrategy indicates the strategy the UnitedDeployment
|
||||
use to preform the update, when template is changed.
|
||||
properties:
|
||||
manualUpdate:
|
||||
description: Includes all of the parameters a Manual update strategy
|
||||
needs.
|
||||
properties:
|
||||
partitions:
|
||||
description: Indicates number of subset partition.
|
||||
type: object
|
||||
type: object
|
||||
type:
|
||||
description: Type of UnitedDeployment update strategy. Default is
|
||||
Manual.
|
||||
type: string
|
||||
type: object
|
||||
required:
|
||||
- selector
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
collisionCount:
|
||||
description: Count of hash collisions for the UnitedDeployment. The
|
||||
UnitedDeployment 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 UnitedDeployment's
|
||||
current state.
|
||||
items:
|
||||
properties:
|
||||
lastTransitionTime:
|
||||
description: Last time the condition transitioned from one status
|
||||
to another.
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
description: A human readable message indicating details about
|
||||
the transition.
|
||||
type: string
|
||||
reason:
|
||||
description: The reason for the condition's last transition.
|
||||
type: string
|
||||
status:
|
||||
description: Status of the condition, one of True, False, Unknown.
|
||||
type: string
|
||||
type:
|
||||
description: Type of in place set condition.
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
currentRevision:
|
||||
description: CurrentRevision, if not empty, indicates the current version
|
||||
of the UnitedDeployment.
|
||||
type: string
|
||||
observedGeneration:
|
||||
description: ObservedGeneration is the most recent generation observed
|
||||
for this UnitedDeployment. It corresponds to the UnitedDeployment's
|
||||
generation, which is updated on mutation by the API Server.
|
||||
format: int64
|
||||
type: integer
|
||||
readyReplicas:
|
||||
description: The number of ready replicas.
|
||||
format: int32
|
||||
type: integer
|
||||
replicas:
|
||||
description: Replicas is the most recently observed number of replicas.
|
||||
format: int32
|
||||
type: integer
|
||||
subsetReplicas:
|
||||
description: Records the topology detail information of the replicas
|
||||
of each subset.
|
||||
type: object
|
||||
updateStatus:
|
||||
description: Records the information of update progress.
|
||||
properties:
|
||||
currentPartitions:
|
||||
description: Records the current partition.
|
||||
type: object
|
||||
updatedRevision:
|
||||
description: Records the latest revision.
|
||||
type: string
|
||||
type: object
|
||||
updatedReadyReplicas:
|
||||
description: The number of ready current revision replicas for this
|
||||
UnitedDeployment.
|
||||
format: int32
|
||||
type: integer
|
||||
updatedReplicas:
|
||||
description: The number of pods in current version.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- replicas
|
||||
- updatedReplicas
|
||||
- currentRevision
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,111 @@
|
|||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: kruise-system
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: kruise-controller-manager-service
|
||||
namespace: kruise-system
|
||||
spec:
|
||||
ports:
|
||||
- port: 443
|
||||
selector:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: kruise-controller-manager
|
||||
namespace: kruise-system
|
||||
spec:
|
||||
replicas: 1
|
||||
serviceName: kruise-controller-manager-service
|
||||
revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
|
||||
selector:
|
||||
matchLabels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
prometheus.io/scrape: "true"
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
spec:
|
||||
containers:
|
||||
- command:
|
||||
- /manager
|
||||
args:
|
||||
- "--metrics-addr={{ .Values.manager.metrics.addr }}:{{ .Values.manager.metrics.port }}"
|
||||
- "--logtostderr=true"
|
||||
- "--v={{ .Values.manager.log.level }}"
|
||||
env:
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
- name: SECRET_NAME
|
||||
value: kruise-webhook-server-secret
|
||||
image: openkruise/kruise-manager:v0.3.1
|
||||
imagePullPolicy: Always
|
||||
name: manager
|
||||
ports:
|
||||
- containerPort: {{ .Values.manager.metrics.port }}
|
||||
name: metrics
|
||||
protocol: TCP
|
||||
- containerPort: 9876
|
||||
name: webhook-server
|
||||
protocol: TCP
|
||||
readinessProbe:
|
||||
tcpSocket:
|
||||
port: 9876
|
||||
resources:
|
||||
{{- toYaml .Values.manager.resources | nindent 12 }}
|
||||
volumeMounts:
|
||||
- mountPath: /tmp/cert
|
||||
name: cert
|
||||
readOnly: true
|
||||
terminationGracePeriodSeconds: 10
|
||||
|
||||
{{- if .Values.spec.nodeAffinity }}
|
||||
affinity:
|
||||
{{- end }}
|
||||
{{- with .Values.spec.nodeAffinity }}
|
||||
nodeAffinity:
|
||||
{{ toYaml . | indent 10 }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.spec.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{ toYaml .Values.spec.nodeSelector | indent 8 }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.spec.tolerations }}
|
||||
tolerations:
|
||||
{{ toYaml .Values.spec.tolerations | indent 8 }}
|
||||
{{- end }}
|
||||
|
||||
volumes:
|
||||
- name: cert
|
||||
secret:
|
||||
defaultMode: 420
|
||||
secretName: kruise-webhook-server-secret
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: kruise-webhook-server-secret
|
||||
namespace: kruise-system
|
|
@ -0,0 +1,315 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: kruise-manager-role
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- broadcastjobs
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- broadcastjobs/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- persistentvolumeclaims
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- controllerrevisions
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- clonesets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- clonesets/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- sidecarsets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- sidecarsets/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- persistentvolumeclaims
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- controllerrevisions
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- statefulsets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- statefulsets/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- uniteddeployments
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- uniteddeployments/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- statefulsets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- statefulsets/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- admissionregistration.k8s.io
|
||||
resources:
|
||||
- mutatingwebhookconfigurations
|
||||
- validatingwebhookconfigurations
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- services
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
|
@ -0,0 +1,13 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: kruise-manager-rolebinding
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: kruise-manager-role
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: default
|
||||
namespace: kruise-system
|
|
@ -0,0 +1,98 @@
|
|||
apiVersion: admissionregistration.k8s.io/v1beta1
|
||||
kind: MutatingWebhookConfiguration
|
||||
metadata:
|
||||
name: kruise-mutating-webhook-configuration
|
||||
---
|
||||
apiVersion: admissionregistration.k8s.io/v1beta1
|
||||
kind: ValidatingWebhookConfiguration
|
||||
metadata:
|
||||
name: kruise-validating-webhook-configuration
|
||||
webhooks:
|
||||
- clientConfig:
|
||||
caBundle: fake
|
||||
service:
|
||||
name: kruise-webhook-server-service
|
||||
namespace: kruise-system
|
||||
path: /validating-create-update-broadcastjob
|
||||
failurePolicy: Fail
|
||||
name: validating-create-update-broadcastjob.kruise.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: control-plane
|
||||
operator: DoesNotExist
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- broadcastjobs
|
||||
- clientConfig:
|
||||
caBundle: fake
|
||||
service:
|
||||
name: kruise-webhook-server-service
|
||||
namespace: kruise-system
|
||||
path: /validating-create-update-sidecarset
|
||||
failurePolicy: Fail
|
||||
name: validating-create-update-sidecarset.kruise.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: control-plane
|
||||
operator: DoesNotExist
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- sidecarsets
|
||||
- clientConfig:
|
||||
caBundle: fake
|
||||
service:
|
||||
name: kruise-webhook-server-service
|
||||
namespace: kruise-system
|
||||
path: /validating-create-update-statefulset
|
||||
failurePolicy: Fail
|
||||
name: validating-create-update-statefulset.kruise.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: control-plane
|
||||
operator: DoesNotExist
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- statefulsets
|
||||
- clientConfig:
|
||||
caBundle: fake
|
||||
service:
|
||||
name: kruise-webhook-server-service
|
||||
namespace: kruise-system
|
||||
path: /validating-create-update-uniteddeployment
|
||||
failurePolicy: Fail
|
||||
name: validating-create-update-uniteddeployment.kruise.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: control-plane
|
||||
operator: DoesNotExist
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- uniteddeployments
|
|
@ -0,0 +1,27 @@
|
|||
# Default values for kruise.
|
||||
|
||||
revisionHistoryLimit: 3
|
||||
|
||||
spec:
|
||||
nodeAffinity: {}
|
||||
nodeSelector: {}
|
||||
tolerations: []
|
||||
|
||||
manager:
|
||||
# settings for log print
|
||||
log:
|
||||
# log level for kruise-manager
|
||||
level: "4"
|
||||
|
||||
# resources of kruise-manager container
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
|
||||
metrics:
|
||||
addr: localhost
|
||||
port: 8080
|
|
@ -0,0 +1,17 @@
|
|||
apiVersion: v1
|
||||
name: kruise
|
||||
description: Helm chart for all kruise-manager components
|
||||
version: 0.4.0
|
||||
appVersion: 0.4.0
|
||||
icon: http://openkruise.io/img/kruise_white.png
|
||||
keywords:
|
||||
- kubernetes
|
||||
- kruise
|
||||
- workload
|
||||
- statefulset
|
||||
- sidecar
|
||||
- job
|
||||
- deployment
|
||||
home: https://openkruise.io
|
||||
sources:
|
||||
- https://github.com/openkruise/kruise
|
|
@ -0,0 +1,49 @@
|
|||
# Kruise
|
||||
|
||||
## Install
|
||||
|
||||
```bash
|
||||
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.4.0/kruise-chart.tgz
|
||||
```
|
||||
|
||||
you will see follow:
|
||||
|
||||
```
|
||||
NAME: kruise
|
||||
LAST DEPLOYED: Mon Jan 6 14:47:48 2020
|
||||
NAMESPACE: default
|
||||
STATUS: deployed
|
||||
REVISION: 1
|
||||
TEST SUITE: None
|
||||
```
|
||||
|
||||
## Uninstall
|
||||
|
||||
```bash
|
||||
$ helm delete kruise
|
||||
release "kruise" uninstalled
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
The following table lists the configurable parameters of the kruise chart and their default values.
|
||||
|
||||
| Parameter | Description | Default |
|
||||
|-------------------------------------------|--------------------------------------------------------------------|-------------------------------------|
|
||||
| `log.level` | Log level that kruise-manager printed | `4` |
|
||||
| `revisionHistoryLimit` | Limit of revision history | `3` |
|
||||
| `manager.resources.limits.cpu` | CPU resource limit of kruise-manager container | |
|
||||
| `manager.resources.limits.memory` | Memory resource limit of kruise-manager container | |
|
||||
| `manager.resources.requests.cpu` | CPU resource request of kruise-manager container | |
|
||||
| `manager.resources.requests.memory` | Memory resource request of kruise-manager container | |
|
||||
| `manager.metrics.addr` | Addr of metrics served | `localhost` |
|
||||
| `manager.metrics.port` | Port of metrics served | `8080` |
|
||||
| `spec.nodeAffinity` | Node affinity policy for kruise-manager pod | `{}` |
|
||||
| `spec.nodeSelector` | Node labels for kruise-manager pod | `{}` |
|
||||
| `spec.tolerations` | Tolerations for kruise-manager pod | `[]`
|
||||
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
|
||||
|
||||
```bash
|
||||
# helm install kruise https://github.com/openkruise/kruise/releases/download/v0.4.0/kruise-chart.tgz --set manager.log.level=5
|
||||
```
|
|
@ -0,0 +1,201 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: broadcastjobs.apps.kruise.io
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- JSONPath: .status.desired
|
||||
description: The desired number of pods. This is typically equal to the number
|
||||
of nodes satisfied to run pods.
|
||||
name: Desired
|
||||
type: integer
|
||||
- JSONPath: .status.active
|
||||
description: The number of actively running pods.
|
||||
name: Active
|
||||
type: integer
|
||||
- JSONPath: .status.succeeded
|
||||
description: The number of pods which reached phase Succeeded.
|
||||
name: Succeeded
|
||||
type: integer
|
||||
- JSONPath: .status.failed
|
||||
description: The number of pods which reached phase Failed.
|
||||
name: Failed
|
||||
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: BroadcastJob
|
||||
plural: broadcastjobs
|
||||
shortNames:
|
||||
- bj
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
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:
|
||||
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.
|
||||
oneOf:
|
||||
- type: string
|
||||
- type: integer
|
||||
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
|
||||
required:
|
||||
- template
|
||||
- completionPolicy
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
active:
|
||||
description: The number of actively running pods.
|
||||
format: int32
|
||||
type: integer
|
||||
completionTime:
|
||||
description: Represents time when the job was completed. It is not guaranteed
|
||||
to be set in happens-before order across separate operations. It is
|
||||
represented in RFC3339 form and is in UTC.
|
||||
format: date-time
|
||||
type: string
|
||||
conditions:
|
||||
description: The latest available observations of an object's current
|
||||
state. +patchMergeKey=type +patchStrategy=merge
|
||||
items:
|
||||
properties:
|
||||
lastProbeTime:
|
||||
description: Last time the condition was checked.
|
||||
format: date-time
|
||||
type: string
|
||||
lastTransitionTime:
|
||||
description: Last time the condition transit from one status to
|
||||
another.
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
description: Human readable message indicating details about last
|
||||
transition.
|
||||
type: string
|
||||
reason:
|
||||
description: (brief) reason for the condition's last transition.
|
||||
type: string
|
||||
status:
|
||||
description: Status of the condition, one of True, False, Unknown.
|
||||
type: string
|
||||
type:
|
||||
description: Type of job condition, Complete or Failed.
|
||||
type: string
|
||||
required:
|
||||
- type
|
||||
- status
|
||||
type: object
|
||||
type: array
|
||||
desired:
|
||||
description: The desired number of pods, this is typically equal to
|
||||
the number of nodes satisfied to run pods.
|
||||
format: int32
|
||||
type: integer
|
||||
failed:
|
||||
description: The number of pods which reached phase Failed.
|
||||
format: int32
|
||||
type: integer
|
||||
phase:
|
||||
description: The phase of the job.
|
||||
type: string
|
||||
startTime:
|
||||
description: Represents time when the job was acknowledged by the job
|
||||
controller. It is not guaranteed to be set in happens-before order
|
||||
across separate operations. It is represented in RFC3339 form and
|
||||
is in UTC.
|
||||
format: date-time
|
||||
type: string
|
||||
succeeded:
|
||||
description: The number of pods which reached phase Succeeded.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- active
|
||||
- succeeded
|
||||
- failed
|
||||
- desired
|
||||
- phase
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,287 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: clonesets.apps.kruise.io
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- JSONPath: .spec.replicas
|
||||
description: The desired number of pods.
|
||||
name: DESIRED
|
||||
type: integer
|
||||
- JSONPath: .status.updatedReplicas
|
||||
description: The number of pods updated.
|
||||
name: UPDATED
|
||||
type: integer
|
||||
- JSONPath: .status.updatedReadyReplicas
|
||||
description: The number of pods updated and ready.
|
||||
name: UPDATED_READY
|
||||
type: integer
|
||||
- JSONPath: .status.readyReplicas
|
||||
description: The number of pods ready.
|
||||
name: READY
|
||||
type: integer
|
||||
- JSONPath: .status.replicas
|
||||
description: The number of currently all pods.
|
||||
name: TOTAL
|
||||
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: CloneSet
|
||||
plural: clonesets
|
||||
shortNames:
|
||||
- clone
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
scale:
|
||||
labelSelectorPath: .status.labelSelector
|
||||
specReplicasPath: .spec.replicas
|
||||
statusReplicasPath: .status.replicas
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
properties:
|
||||
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. If unspecified, defaults to 1.
|
||||
format: int32
|
||||
type: integer
|
||||
revisionHistoryLimit:
|
||||
description: RevisionHistoryLimit is the maximum number of revisions
|
||||
that will be maintained in the CloneSet's revision history. The revision
|
||||
history consists of all revisions not represented by a currently applied
|
||||
CloneSetSpec version. The default value is 10.
|
||||
format: int32
|
||||
type: integer
|
||||
scaleStrategy:
|
||||
description: ScaleStrategy indicates the ScaleStrategy that will be
|
||||
employed to create and delete Pods in the CloneSet.
|
||||
properties:
|
||||
podsToDelete:
|
||||
description: PodsToDelete is the names of Pod should be deleted.
|
||||
Note that this list will be truncated for non-existing pod names.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
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'
|
||||
type: object
|
||||
template:
|
||||
description: Template describes the pods that will be created.
|
||||
type: object
|
||||
updateStrategy:
|
||||
description: UpdateStrategy indicates the UpdateStrategy that will be
|
||||
employed to update Pods in the CloneSet when a revision is made to
|
||||
Template.
|
||||
properties:
|
||||
inPlaceUpdateStrategy:
|
||||
description: InPlaceUpdateStrategy contains strategies for in-place
|
||||
update.
|
||||
type: object
|
||||
maxUnavailable:
|
||||
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. Defaults to 20%.'
|
||||
oneOf:
|
||||
- type: string
|
||||
- type: integer
|
||||
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
|
||||
paused:
|
||||
description: Paused indicates that the CloneSet is paused. Default
|
||||
value is false
|
||||
type: boolean
|
||||
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:
|
||||
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:
|
||||
properties:
|
||||
matchSelector:
|
||||
description: MatchSelector is used to select by pod's
|
||||
labels.
|
||||
type: object
|
||||
weight:
|
||||
description: Weight associated with matching the corresponding
|
||||
matchExpressions, in the range 1-100.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- weight
|
||||
- matchSelector
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
scatterStrategy:
|
||||
description: ScatterStrategy defines the scatter rules to make pods
|
||||
been scattered when update. This will avoid pods with the same
|
||||
key-value to be updated in one batch. - Note that pods will be
|
||||
scattered after priority sort. So, although priority strategy
|
||||
and scatter strategy can be applied together, we suggest to use
|
||||
either one of them. - If scatterStrategy is used, we suggest to
|
||||
just use one term. Otherwise, the update order can be hard to
|
||||
understand.
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
required:
|
||||
- key
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
type:
|
||||
description: Type indicates the type of the CloneSetUpdateStrategy.
|
||||
Default is ReCreate.
|
||||
type: string
|
||||
type: object
|
||||
volumeClaimTemplates:
|
||||
description: VolumeClaimTemplates is a list of claims that pods are
|
||||
allowed to reference. Note that PVC will be deleted when its pod has
|
||||
been deleted.
|
||||
items:
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- replicas
|
||||
- selector
|
||||
- template
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
collisionCount:
|
||||
description: CollisionCount is the count of hash collisions for the
|
||||
CloneSet. The CloneSet 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: Conditions represents the latest available observations
|
||||
of a CloneSet's current state.
|
||||
items:
|
||||
properties:
|
||||
lastTransitionTime:
|
||||
description: Last time the condition transitioned from one status
|
||||
to another.
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
description: A human readable message indicating details about
|
||||
the transition.
|
||||
type: string
|
||||
reason:
|
||||
description: The reason for the condition's last transition.
|
||||
type: string
|
||||
status:
|
||||
description: Status of the condition, one of True, False, Unknown.
|
||||
type: string
|
||||
type:
|
||||
description: Type of CloneSet condition.
|
||||
type: string
|
||||
required:
|
||||
- type
|
||||
- status
|
||||
type: object
|
||||
type: array
|
||||
observedGeneration:
|
||||
description: ObservedGeneration is the most recent generation observed
|
||||
for this CloneSet. It corresponds to the CloneSet'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 CloneSet
|
||||
controller that have a Ready Condition.
|
||||
format: int32
|
||||
type: integer
|
||||
replicas:
|
||||
description: Replicas is the number of Pods created by the CloneSet
|
||||
controller.
|
||||
format: int32
|
||||
type: integer
|
||||
updateRevision:
|
||||
description: UpdateRevision, if not empty, indicates the latest revision
|
||||
of the CloneSet.
|
||||
type: string
|
||||
updatedReadyReplicas:
|
||||
description: UpdatedReadyReplicas is the number of Pods created by the
|
||||
CloneSet controller from the CloneSet version indicated by updateRevision
|
||||
and have a Ready Condition.
|
||||
format: int32
|
||||
type: integer
|
||||
updatedReplicas:
|
||||
description: UpdatedReplicas is the number of Pods created by the CloneSet
|
||||
controller from the CloneSet version indicated by updateRevision.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- replicas
|
||||
- readyReplicas
|
||||
- updatedReplicas
|
||||
- updatedReadyReplicas
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,118 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: sidecarsets.apps.kruise.io
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- JSONPath: .status.matchedPods
|
||||
description: The number of pods matched.
|
||||
name: MATCHED
|
||||
type: integer
|
||||
- JSONPath: .status.updatedPods
|
||||
description: The number of pods matched and updated.
|
||||
name: UPDATED
|
||||
type: integer
|
||||
- JSONPath: .status.readyPods
|
||||
description: The number of pods matched and 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: SidecarSet
|
||||
plural: sidecarsets
|
||||
scope: Cluster
|
||||
subresources:
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
properties:
|
||||
containers:
|
||||
description: Containers is the list of sidecar containers to be injected
|
||||
into the selected pod
|
||||
items:
|
||||
type: object
|
||||
type: array
|
||||
paused:
|
||||
description: Paused indicates that the sidecarset is paused and will
|
||||
not be processed by the sidecarset controller.
|
||||
type: boolean
|
||||
selector:
|
||||
description: selector is a label query over pods that should be injected
|
||||
type: object
|
||||
strategy:
|
||||
description: The sidecarset strategy to use to replace existing pods
|
||||
with new ones.
|
||||
properties:
|
||||
rollingUpdate:
|
||||
properties:
|
||||
maxUnavailable:
|
||||
oneOf:
|
||||
- type: string
|
||||
- type: integer
|
||||
type: object
|
||||
type: object
|
||||
volumes:
|
||||
description: List of volumes that can be mounted by sidecar containers
|
||||
items:
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
matchedPods:
|
||||
description: matchedPods is the number of Pods whose labels are matched
|
||||
with this SidecarSet's selector and are created after sidecarset creates
|
||||
format: int32
|
||||
type: integer
|
||||
observedGeneration:
|
||||
description: observedGeneration is the most recent generation observed
|
||||
for this SidecarSet. It corresponds to the SidecarSet's generation,
|
||||
which is updated on mutation by the API Server.
|
||||
format: int64
|
||||
type: integer
|
||||
readyPods:
|
||||
description: readyPods is the number of matched Pods that have a ready
|
||||
condition
|
||||
format: int32
|
||||
type: integer
|
||||
updatedPods:
|
||||
description: updatedPods is the number of matched Pods that are injected
|
||||
with the latest SidecarSet's containers
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- matchedPods
|
||||
- updatedPods
|
||||
- readyPods
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,279 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
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
|
||||
plural: statefulsets
|
||||
shortNames:
|
||||
- sts
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
scale:
|
||||
labelSelectorPath: .status.labelSelector
|
||||
specReplicasPath: .spec.replicas
|
||||
statusReplicasPath: .status.replicas
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
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'
|
||||
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
|
||||
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:
|
||||
maxUnavailable:
|
||||
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.'
|
||||
oneOf:
|
||||
- type: string
|
||||
- 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:
|
||||
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:
|
||||
properties:
|
||||
matchSelector:
|
||||
description: MatchSelector is used to select by
|
||||
pod's labels.
|
||||
type: object
|
||||
weight:
|
||||
description: Weight associated with matching the
|
||||
corresponding matchExpressions, in the range
|
||||
1-100.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- weight
|
||||
- matchSelector
|
||||
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:
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- selector
|
||||
- template
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
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. +patchMergeKey=type +patchStrategy=merge
|
||||
items:
|
||||
type: object
|
||||
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
|
||||
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:
|
||||
- replicas
|
||||
- readyReplicas
|
||||
- currentReplicas
|
||||
- updatedReplicas
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,424 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: uniteddeployments.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: UnitedDeployment
|
||||
plural: uniteddeployments
|
||||
shortNames:
|
||||
- ud
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
scale:
|
||||
labelSelectorPath: .status.selector
|
||||
specReplicasPath: .spec.replicas
|
||||
statusReplicasPath: .status.replicas
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
properties:
|
||||
replicas:
|
||||
description: Replicas is the total desired replicas of all the subsets.
|
||||
If unspecified, defaults to 1.
|
||||
format: int32
|
||||
type: integer
|
||||
revisionHistoryLimit:
|
||||
description: Indicates the number of histories to be conserved. If unspecified,
|
||||
defaults to 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.
|
||||
type: object
|
||||
template:
|
||||
description: Template describes the subset that will be created.
|
||||
properties:
|
||||
advancedStatefulSetTemplate:
|
||||
description: AdvancedStatefulSet template
|
||||
properties:
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
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'
|
||||
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
|
||||
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:
|
||||
maxUnavailable:
|
||||
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.'
|
||||
oneOf:
|
||||
- type: string
|
||||
- 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:
|
||||
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:
|
||||
properties:
|
||||
matchSelector:
|
||||
description: MatchSelector is used
|
||||
to select by pod's labels.
|
||||
type: object
|
||||
weight:
|
||||
description: Weight associated with
|
||||
matching the corresponding matchExpressions,
|
||||
in the range 1-100.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- weight
|
||||
- matchSelector
|
||||
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:
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- selector
|
||||
- template
|
||||
type: object
|
||||
required:
|
||||
- spec
|
||||
type: object
|
||||
statefulSetTemplate:
|
||||
description: StatefulSet template
|
||||
properties:
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
type: object
|
||||
required:
|
||||
- spec
|
||||
type: object
|
||||
type: object
|
||||
topology:
|
||||
description: Topology describes the pods distribution detail between
|
||||
each of subsets.
|
||||
properties:
|
||||
subsets:
|
||||
description: Contains the details of each subset. Each element in
|
||||
this array represents one subset which will be provisioned and
|
||||
managed by UnitedDeployment.
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
description: Indicates subset name as a DNS_LABEL, which will
|
||||
be used to generate subset workload name prefix in the format
|
||||
'<deployment-name>-<subset-name>-'. Name should be unique
|
||||
between all of the subsets under one UnitedDeployment.
|
||||
type: string
|
||||
nodeSelectorTerm:
|
||||
description: Indicates the node selector to form the subset.
|
||||
Depending on the node selector, pods provisioned could be
|
||||
distributed across multiple groups of nodes. A subset's
|
||||
nodeSelectorTerm is not allowed to be updated.
|
||||
type: object
|
||||
replicas:
|
||||
description: Indicates the number of the pod to be created
|
||||
under this subset. Replicas could also be percentage like
|
||||
'10%', which means 10% of UnitedDeployment replicas of pods
|
||||
will be distributed under this subset. If nil, the number
|
||||
of replicas in this subset is determined by controller.
|
||||
Controller will try to keep all the subsets with nil replicas
|
||||
have average pods.
|
||||
oneOf:
|
||||
- type: string
|
||||
- type: integer
|
||||
tolerations:
|
||||
description: Indicates the tolerations the pods under this
|
||||
subset have. A subset's tolerations is not allowed to be
|
||||
updated.
|
||||
items:
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- name
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
updateStrategy:
|
||||
description: UpdateStrategy indicates the strategy the UnitedDeployment
|
||||
use to preform the update, when template is changed.
|
||||
properties:
|
||||
manualUpdate:
|
||||
description: Includes all of the parameters a Manual update strategy
|
||||
needs.
|
||||
properties:
|
||||
partitions:
|
||||
description: Indicates number of subset partition.
|
||||
type: object
|
||||
type: object
|
||||
type:
|
||||
description: Type of UnitedDeployment update strategy. Default is
|
||||
Manual.
|
||||
type: string
|
||||
type: object
|
||||
required:
|
||||
- selector
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
collisionCount:
|
||||
description: Count of hash collisions for the UnitedDeployment. The
|
||||
UnitedDeployment 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 UnitedDeployment's
|
||||
current state.
|
||||
items:
|
||||
properties:
|
||||
lastTransitionTime:
|
||||
description: Last time the condition transitioned from one status
|
||||
to another.
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
description: A human readable message indicating details about
|
||||
the transition.
|
||||
type: string
|
||||
reason:
|
||||
description: The reason for the condition's last transition.
|
||||
type: string
|
||||
status:
|
||||
description: Status of the condition, one of True, False, Unknown.
|
||||
type: string
|
||||
type:
|
||||
description: Type of in place set condition.
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
currentRevision:
|
||||
description: CurrentRevision, if not empty, indicates the current version
|
||||
of the UnitedDeployment.
|
||||
type: string
|
||||
observedGeneration:
|
||||
description: ObservedGeneration is the most recent generation observed
|
||||
for this UnitedDeployment. It corresponds to the UnitedDeployment's
|
||||
generation, which is updated on mutation by the API Server.
|
||||
format: int64
|
||||
type: integer
|
||||
readyReplicas:
|
||||
description: The number of ready replicas.
|
||||
format: int32
|
||||
type: integer
|
||||
replicas:
|
||||
description: Replicas is the most recently observed number of replicas.
|
||||
format: int32
|
||||
type: integer
|
||||
subsetReplicas:
|
||||
description: Records the topology detail information of the replicas
|
||||
of each subset.
|
||||
type: object
|
||||
updateStatus:
|
||||
description: Records the information of update progress.
|
||||
properties:
|
||||
currentPartitions:
|
||||
description: Records the current partition.
|
||||
type: object
|
||||
updatedRevision:
|
||||
description: Records the latest revision.
|
||||
type: string
|
||||
type: object
|
||||
updatedReadyReplicas:
|
||||
description: The number of ready current revision replicas for this
|
||||
UnitedDeployment.
|
||||
format: int32
|
||||
type: integer
|
||||
updatedReplicas:
|
||||
description: The number of pods in current version.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- replicas
|
||||
- updatedReplicas
|
||||
- currentRevision
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,111 @@
|
|||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: kruise-system
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: kruise-controller-manager-service
|
||||
namespace: kruise-system
|
||||
spec:
|
||||
ports:
|
||||
- port: 443
|
||||
selector:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: kruise-controller-manager
|
||||
namespace: kruise-system
|
||||
spec:
|
||||
replicas: 1
|
||||
serviceName: kruise-controller-manager-service
|
||||
revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
|
||||
selector:
|
||||
matchLabels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
prometheus.io/scrape: "true"
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
spec:
|
||||
containers:
|
||||
- command:
|
||||
- /manager
|
||||
args:
|
||||
- "--metrics-addr={{ .Values.manager.metrics.addr }}:{{ .Values.manager.metrics.port }}"
|
||||
- "--logtostderr=true"
|
||||
- "--v={{ .Values.manager.log.level }}"
|
||||
env:
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
- name: SECRET_NAME
|
||||
value: kruise-webhook-server-secret
|
||||
image: openkruise/kruise-manager:v0.4.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: manager
|
||||
ports:
|
||||
- containerPort: {{ .Values.manager.metrics.port }}
|
||||
name: metrics
|
||||
protocol: TCP
|
||||
- containerPort: 9876
|
||||
name: webhook-server
|
||||
protocol: TCP
|
||||
readinessProbe:
|
||||
tcpSocket:
|
||||
port: 9876
|
||||
resources:
|
||||
{{- toYaml .Values.manager.resources | nindent 12 }}
|
||||
volumeMounts:
|
||||
- mountPath: /tmp/cert
|
||||
name: cert
|
||||
readOnly: true
|
||||
terminationGracePeriodSeconds: 10
|
||||
|
||||
{{- if .Values.spec.nodeAffinity }}
|
||||
affinity:
|
||||
{{- end }}
|
||||
{{- with .Values.spec.nodeAffinity }}
|
||||
nodeAffinity:
|
||||
{{ toYaml . | indent 10 }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.spec.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{ toYaml .Values.spec.nodeSelector | indent 8 }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.spec.tolerations }}
|
||||
tolerations:
|
||||
{{ toYaml .Values.spec.tolerations | indent 8 }}
|
||||
{{- end }}
|
||||
|
||||
volumes:
|
||||
- name: cert
|
||||
secret:
|
||||
defaultMode: 420
|
||||
secretName: kruise-webhook-server-secret
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: kruise-webhook-server-secret
|
||||
namespace: kruise-system
|
|
@ -0,0 +1,335 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: kruise-manager-role
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- broadcastjobs
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- broadcastjobs/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- persistentvolumeclaims
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- controllerrevisions
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- clonesets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- clonesets/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- sidecarsets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- sidecarsets/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- persistentvolumeclaims
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- controllerrevisions
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- statefulsets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- statefulsets/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- uniteddeployments
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- uniteddeployments/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- statefulsets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- statefulsets/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- statefulsets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- statefulsets/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- admissionregistration.k8s.io
|
||||
resources:
|
||||
- mutatingwebhookconfigurations
|
||||
- validatingwebhookconfigurations
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- services
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
|
@ -0,0 +1,13 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: kruise-manager-rolebinding
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: kruise-manager-role
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: default
|
||||
namespace: kruise-system
|
|
@ -0,0 +1,120 @@
|
|||
apiVersion: admissionregistration.k8s.io/v1beta1
|
||||
kind: MutatingWebhookConfiguration
|
||||
metadata:
|
||||
name: kruise-mutating-webhook-configuration
|
||||
---
|
||||
apiVersion: admissionregistration.k8s.io/v1beta1
|
||||
kind: ValidatingWebhookConfiguration
|
||||
metadata:
|
||||
name: kruise-validating-webhook-configuration
|
||||
webhooks:
|
||||
- clientConfig:
|
||||
caBundle: fake
|
||||
service:
|
||||
name: webhook-server-service
|
||||
namespace: kruise-system
|
||||
path: /validating-create-update-broadcastjob
|
||||
failurePolicy: Fail
|
||||
name: validating-create-update-broadcastjob.kruise.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: control-plane
|
||||
operator: DoesNotExist
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- broadcastjobs
|
||||
- clientConfig:
|
||||
caBundle: fake
|
||||
service:
|
||||
name: webhook-server-service
|
||||
namespace: kruise-system
|
||||
path: /validating-create-update-cloneset
|
||||
failurePolicy: Fail
|
||||
name: validating-create-update-cloneset.kruise.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: control-plane
|
||||
operator: DoesNotExist
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- clonesets
|
||||
- clientConfig:
|
||||
caBundle: fake
|
||||
service:
|
||||
name: webhook-server-service
|
||||
namespace: kruise-system
|
||||
path: /validating-create-update-sidecarset
|
||||
failurePolicy: Fail
|
||||
name: validating-create-update-sidecarset.kruise.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: control-plane
|
||||
operator: DoesNotExist
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- sidecarsets
|
||||
- clientConfig:
|
||||
caBundle: fake
|
||||
service:
|
||||
name: webhook-server-service
|
||||
namespace: kruise-system
|
||||
path: /validating-create-update-statefulset
|
||||
failurePolicy: Fail
|
||||
name: validating-create-update-statefulset.kruise.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: control-plane
|
||||
operator: DoesNotExist
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- statefulsets
|
||||
- clientConfig:
|
||||
caBundle: fake
|
||||
service:
|
||||
name: webhook-server-service
|
||||
namespace: kruise-system
|
||||
path: /validating-create-update-uniteddeployment
|
||||
failurePolicy: Fail
|
||||
name: validating-create-update-uniteddeployment.kruise.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: control-plane
|
||||
operator: DoesNotExist
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- uniteddeployments
|
|
@ -0,0 +1,27 @@
|
|||
# Default values for kruise.
|
||||
|
||||
revisionHistoryLimit: 3
|
||||
|
||||
spec:
|
||||
nodeAffinity: {}
|
||||
nodeSelector: {}
|
||||
tolerations: []
|
||||
|
||||
manager:
|
||||
# settings for log print
|
||||
log:
|
||||
# log level for kruise-manager
|
||||
level: "4"
|
||||
|
||||
# resources of kruise-manager container
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
|
||||
metrics:
|
||||
addr: localhost
|
||||
port: 8080
|
|
@ -0,0 +1,17 @@
|
|||
apiVersion: v1
|
||||
name: kruise
|
||||
description: Helm chart for all kruise-manager components
|
||||
version: 0.4.1
|
||||
appVersion: 0.4.1
|
||||
icon: http://openkruise.io/img/kruise_white.png
|
||||
keywords:
|
||||
- kubernetes
|
||||
- kruise
|
||||
- workload
|
||||
- statefulset
|
||||
- sidecar
|
||||
- job
|
||||
- deployment
|
||||
home: https://openkruise.io
|
||||
sources:
|
||||
- https://github.com/openkruise/kruise
|
|
@ -0,0 +1,50 @@
|
|||
# Kruise
|
||||
|
||||
## Install
|
||||
|
||||
```bash
|
||||
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.4.1/kruise-chart.tgz
|
||||
```
|
||||
|
||||
you will see follow:
|
||||
|
||||
```
|
||||
NAME: kruise
|
||||
LAST DEPLOYED: Mon Jan 6 14:47:48 2020
|
||||
NAMESPACE: default
|
||||
STATUS: deployed
|
||||
REVISION: 1
|
||||
TEST SUITE: None
|
||||
```
|
||||
|
||||
## Uninstall
|
||||
|
||||
```bash
|
||||
$ helm delete kruise
|
||||
release "kruise" uninstalled
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
The following table lists the configurable parameters of the kruise chart and their default values.
|
||||
|
||||
| Parameter | Description | Default |
|
||||
|-------------------------------------------|--------------------------------------------------------------------|-------------------------------------|
|
||||
| `log.level` | Log level that kruise-manager printed | `4` |
|
||||
| `revisionHistoryLimit` | Limit of revision history | `3` |
|
||||
| `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` |
|
||||
| `manager.resources.requests.memory` | Memory resource request of kruise-manager container | `256Mi` |
|
||||
| `manager.metrics.addr` | Addr of metrics served | `localhost` |
|
||||
| `manager.metrics.port` | Port of metrics served | `8080` |
|
||||
| `manager.custom_resource_enable` | Custom resources enabled by kruise-manager | `""(empty means all enabled)` |
|
||||
| `spec.nodeAffinity` | Node affinity policy for kruise-manager pod | `{}` |
|
||||
| `spec.nodeSelector` | Node labels for kruise-manager pod | `{}` |
|
||||
| `spec.tolerations` | Tolerations for kruise-manager pod | `[]`
|
||||
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
|
||||
|
||||
```bash
|
||||
# helm install kruise https://github.com/openkruise/kruise/releases/download/v0.4.1/kruise-chart.tgz --set manager.log.level=5,manager.custom_resource_enable="StatefulSet\,SidecarSet"
|
||||
```
|
|
@ -0,0 +1,201 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: broadcastjobs.apps.kruise.io
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- JSONPath: .status.desired
|
||||
description: The desired number of pods. This is typically equal to the number
|
||||
of nodes satisfied to run pods.
|
||||
name: Desired
|
||||
type: integer
|
||||
- JSONPath: .status.active
|
||||
description: The number of actively running pods.
|
||||
name: Active
|
||||
type: integer
|
||||
- JSONPath: .status.succeeded
|
||||
description: The number of pods which reached phase Succeeded.
|
||||
name: Succeeded
|
||||
type: integer
|
||||
- JSONPath: .status.failed
|
||||
description: The number of pods which reached phase Failed.
|
||||
name: Failed
|
||||
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: BroadcastJob
|
||||
plural: broadcastjobs
|
||||
shortNames:
|
||||
- bj
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
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:
|
||||
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.
|
||||
oneOf:
|
||||
- type: string
|
||||
- type: integer
|
||||
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
|
||||
required:
|
||||
- template
|
||||
- completionPolicy
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
active:
|
||||
description: The number of actively running pods.
|
||||
format: int32
|
||||
type: integer
|
||||
completionTime:
|
||||
description: Represents time when the job was completed. It is not guaranteed
|
||||
to be set in happens-before order across separate operations. It is
|
||||
represented in RFC3339 form and is in UTC.
|
||||
format: date-time
|
||||
type: string
|
||||
conditions:
|
||||
description: The latest available observations of an object's current
|
||||
state. +patchMergeKey=type +patchStrategy=merge
|
||||
items:
|
||||
properties:
|
||||
lastProbeTime:
|
||||
description: Last time the condition was checked.
|
||||
format: date-time
|
||||
type: string
|
||||
lastTransitionTime:
|
||||
description: Last time the condition transit from one status to
|
||||
another.
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
description: Human readable message indicating details about last
|
||||
transition.
|
||||
type: string
|
||||
reason:
|
||||
description: (brief) reason for the condition's last transition.
|
||||
type: string
|
||||
status:
|
||||
description: Status of the condition, one of True, False, Unknown.
|
||||
type: string
|
||||
type:
|
||||
description: Type of job condition, Complete or Failed.
|
||||
type: string
|
||||
required:
|
||||
- type
|
||||
- status
|
||||
type: object
|
||||
type: array
|
||||
desired:
|
||||
description: The desired number of pods, this is typically equal to
|
||||
the number of nodes satisfied to run pods.
|
||||
format: int32
|
||||
type: integer
|
||||
failed:
|
||||
description: The number of pods which reached phase Failed.
|
||||
format: int32
|
||||
type: integer
|
||||
phase:
|
||||
description: The phase of the job.
|
||||
type: string
|
||||
startTime:
|
||||
description: Represents time when the job was acknowledged by the job
|
||||
controller. It is not guaranteed to be set in happens-before order
|
||||
across separate operations. It is represented in RFC3339 form and
|
||||
is in UTC.
|
||||
format: date-time
|
||||
type: string
|
||||
succeeded:
|
||||
description: The number of pods which reached phase Succeeded.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- active
|
||||
- succeeded
|
||||
- failed
|
||||
- desired
|
||||
- phase
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,311 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: clonesets.apps.kruise.io
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- JSONPath: .spec.replicas
|
||||
description: The desired number of pods.
|
||||
name: DESIRED
|
||||
type: integer
|
||||
- JSONPath: .status.updatedReplicas
|
||||
description: The number of pods updated.
|
||||
name: UPDATED
|
||||
type: integer
|
||||
- JSONPath: .status.updatedReadyReplicas
|
||||
description: The number of pods updated and ready.
|
||||
name: UPDATED_READY
|
||||
type: integer
|
||||
- JSONPath: .status.readyReplicas
|
||||
description: The number of pods ready.
|
||||
name: READY
|
||||
type: integer
|
||||
- JSONPath: .status.replicas
|
||||
description: The number of currently all pods.
|
||||
name: TOTAL
|
||||
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: CloneSet
|
||||
plural: clonesets
|
||||
shortNames:
|
||||
- clone
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
scale:
|
||||
labelSelectorPath: .status.labelSelector
|
||||
specReplicasPath: .spec.replicas
|
||||
statusReplicasPath: .status.replicas
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
properties:
|
||||
minReadySeconds:
|
||||
description: Minimum number of seconds for which a newly created pod
|
||||
should be ready without any of its container crashing, for it to be
|
||||
considered available. Defaults to 0 (pod will be considered available
|
||||
as soon as it is ready)
|
||||
format: int32
|
||||
type: integer
|
||||
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. If unspecified, defaults to 1.
|
||||
format: int32
|
||||
type: integer
|
||||
revisionHistoryLimit:
|
||||
description: RevisionHistoryLimit is the maximum number of revisions
|
||||
that will be maintained in the CloneSet's revision history. The revision
|
||||
history consists of all revisions not represented by a currently applied
|
||||
CloneSetSpec version. The default value is 10.
|
||||
format: int32
|
||||
type: integer
|
||||
scaleStrategy:
|
||||
description: ScaleStrategy indicates the ScaleStrategy that will be
|
||||
employed to create and delete Pods in the CloneSet.
|
||||
properties:
|
||||
podsToDelete:
|
||||
description: PodsToDelete is the names of Pod should be deleted.
|
||||
Note that this list will be truncated for non-existing pod names.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
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'
|
||||
type: object
|
||||
template:
|
||||
description: Template describes the pods that will be created.
|
||||
type: object
|
||||
updateStrategy:
|
||||
description: UpdateStrategy indicates the UpdateStrategy that will be
|
||||
employed to update Pods in the CloneSet when a revision is made to
|
||||
Template.
|
||||
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:
|
||||
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. Defaults to 20%.'
|
||||
oneOf:
|
||||
- type: string
|
||||
- type: integer
|
||||
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
|
||||
paused:
|
||||
description: Paused indicates that the CloneSet is paused. Default
|
||||
value is false
|
||||
type: boolean
|
||||
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:
|
||||
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:
|
||||
properties:
|
||||
matchSelector:
|
||||
description: MatchSelector is used to select by pod's
|
||||
labels.
|
||||
type: object
|
||||
weight:
|
||||
description: Weight associated with matching the corresponding
|
||||
matchExpressions, in the range 1-100.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- weight
|
||||
- matchSelector
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
scatterStrategy:
|
||||
description: ScatterStrategy defines the scatter rules to make pods
|
||||
been scattered when update. This will avoid pods with the same
|
||||
key-value to be updated in one batch. - Note that pods will be
|
||||
scattered after priority sort. So, although priority strategy
|
||||
and scatter strategy can be applied together, we suggest to use
|
||||
either one of them. - If scatterStrategy is used, we suggest to
|
||||
just use one term. Otherwise, the update order can be hard to
|
||||
understand.
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
required:
|
||||
- key
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
type:
|
||||
description: Type indicates the type of the CloneSetUpdateStrategy.
|
||||
Default is ReCreate.
|
||||
type: string
|
||||
type: object
|
||||
volumeClaimTemplates:
|
||||
description: VolumeClaimTemplates is a list of claims that pods are
|
||||
allowed to reference. Note that PVC will be deleted when its pod has
|
||||
been deleted.
|
||||
items:
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- replicas
|
||||
- selector
|
||||
- template
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
availableReplicas:
|
||||
description: AvailableReplicas is the number of Pods created by the
|
||||
CloneSet controller that have a Ready Condition for at least minReadySeconds.
|
||||
format: int32
|
||||
type: integer
|
||||
collisionCount:
|
||||
description: CollisionCount is the count of hash collisions for the
|
||||
CloneSet. The CloneSet 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: Conditions represents the latest available observations
|
||||
of a CloneSet's current state.
|
||||
items:
|
||||
properties:
|
||||
lastTransitionTime:
|
||||
description: Last time the condition transitioned from one status
|
||||
to another.
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
description: A human readable message indicating details about
|
||||
the transition.
|
||||
type: string
|
||||
reason:
|
||||
description: The reason for the condition's last transition.
|
||||
type: string
|
||||
status:
|
||||
description: Status of the condition, one of True, False, Unknown.
|
||||
type: string
|
||||
type:
|
||||
description: Type of CloneSet condition.
|
||||
type: string
|
||||
required:
|
||||
- type
|
||||
- status
|
||||
type: object
|
||||
type: array
|
||||
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 CloneSet. It corresponds to the CloneSet'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 CloneSet
|
||||
controller that have a Ready Condition.
|
||||
format: int32
|
||||
type: integer
|
||||
replicas:
|
||||
description: Replicas is the number of Pods created by the CloneSet
|
||||
controller.
|
||||
format: int32
|
||||
type: integer
|
||||
updateRevision:
|
||||
description: UpdateRevision, if not empty, indicates the latest revision
|
||||
of the CloneSet.
|
||||
type: string
|
||||
updatedReadyReplicas:
|
||||
description: UpdatedReadyReplicas is the number of Pods created by the
|
||||
CloneSet controller from the CloneSet version indicated by updateRevision
|
||||
and have a Ready Condition.
|
||||
format: int32
|
||||
type: integer
|
||||
updatedReplicas:
|
||||
description: UpdatedReplicas is the number of Pods created by the CloneSet
|
||||
controller from the CloneSet version indicated by updateRevision.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- replicas
|
||||
- readyReplicas
|
||||
- availableReplicas
|
||||
- updatedReplicas
|
||||
- updatedReadyReplicas
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,118 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: sidecarsets.apps.kruise.io
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- JSONPath: .status.matchedPods
|
||||
description: The number of pods matched.
|
||||
name: MATCHED
|
||||
type: integer
|
||||
- JSONPath: .status.updatedPods
|
||||
description: The number of pods matched and updated.
|
||||
name: UPDATED
|
||||
type: integer
|
||||
- JSONPath: .status.readyPods
|
||||
description: The number of pods matched and 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: SidecarSet
|
||||
plural: sidecarsets
|
||||
scope: Cluster
|
||||
subresources:
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
properties:
|
||||
containers:
|
||||
description: Containers is the list of sidecar containers to be injected
|
||||
into the selected pod
|
||||
items:
|
||||
type: object
|
||||
type: array
|
||||
paused:
|
||||
description: Paused indicates that the sidecarset is paused and will
|
||||
not be processed by the sidecarset controller.
|
||||
type: boolean
|
||||
selector:
|
||||
description: selector is a label query over pods that should be injected
|
||||
type: object
|
||||
strategy:
|
||||
description: The sidecarset strategy to use to replace existing pods
|
||||
with new ones.
|
||||
properties:
|
||||
rollingUpdate:
|
||||
properties:
|
||||
maxUnavailable:
|
||||
oneOf:
|
||||
- type: string
|
||||
- type: integer
|
||||
type: object
|
||||
type: object
|
||||
volumes:
|
||||
description: List of volumes that can be mounted by sidecar containers
|
||||
items:
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
matchedPods:
|
||||
description: matchedPods is the number of Pods whose labels are matched
|
||||
with this SidecarSet's selector and are created after sidecarset creates
|
||||
format: int32
|
||||
type: integer
|
||||
observedGeneration:
|
||||
description: observedGeneration is the most recent generation observed
|
||||
for this SidecarSet. It corresponds to the SidecarSet's generation,
|
||||
which is updated on mutation by the API Server.
|
||||
format: int64
|
||||
type: integer
|
||||
readyPods:
|
||||
description: readyPods is the number of matched Pods that have a ready
|
||||
condition
|
||||
format: int32
|
||||
type: integer
|
||||
updatedPods:
|
||||
description: updatedPods is the number of matched Pods that are injected
|
||||
with the latest SidecarSet's containers
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- matchedPods
|
||||
- updatedPods
|
||||
- readyPods
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,294 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
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
|
||||
plural: statefulsets
|
||||
shortNames:
|
||||
- sts
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
scale:
|
||||
labelSelectorPath: .status.labelSelector
|
||||
specReplicasPath: .spec.replicas
|
||||
statusReplicasPath: .status.replicas
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
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'
|
||||
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
|
||||
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:
|
||||
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.'
|
||||
oneOf:
|
||||
- type: string
|
||||
- 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:
|
||||
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:
|
||||
properties:
|
||||
matchSelector:
|
||||
description: MatchSelector is used to select by
|
||||
pod's labels.
|
||||
type: object
|
||||
weight:
|
||||
description: Weight associated with matching the
|
||||
corresponding matchExpressions, in the range
|
||||
1-100.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- weight
|
||||
- matchSelector
|
||||
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:
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- selector
|
||||
- template
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
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. +patchMergeKey=type +patchStrategy=merge
|
||||
items:
|
||||
type: object
|
||||
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:
|
||||
- replicas
|
||||
- readyReplicas
|
||||
- currentReplicas
|
||||
- updatedReplicas
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,436 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: uniteddeployments.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: UnitedDeployment
|
||||
plural: uniteddeployments
|
||||
shortNames:
|
||||
- ud
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
scale:
|
||||
labelSelectorPath: .status.selector
|
||||
specReplicasPath: .spec.replicas
|
||||
statusReplicasPath: .status.replicas
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
properties:
|
||||
replicas:
|
||||
description: Replicas is the total desired replicas of all the subsets.
|
||||
If unspecified, defaults to 1.
|
||||
format: int32
|
||||
type: integer
|
||||
revisionHistoryLimit:
|
||||
description: Indicates the number of histories to be conserved. If unspecified,
|
||||
defaults to 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.
|
||||
type: object
|
||||
template:
|
||||
description: Template describes the subset that will be created.
|
||||
properties:
|
||||
advancedStatefulSetTemplate:
|
||||
description: AdvancedStatefulSet template
|
||||
properties:
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
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'
|
||||
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
|
||||
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:
|
||||
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.'
|
||||
oneOf:
|
||||
- type: string
|
||||
- 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:
|
||||
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:
|
||||
properties:
|
||||
matchSelector:
|
||||
description: MatchSelector is used
|
||||
to select by pod's labels.
|
||||
type: object
|
||||
weight:
|
||||
description: Weight associated with
|
||||
matching the corresponding matchExpressions,
|
||||
in the range 1-100.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- weight
|
||||
- matchSelector
|
||||
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:
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- selector
|
||||
- template
|
||||
type: object
|
||||
required:
|
||||
- spec
|
||||
type: object
|
||||
statefulSetTemplate:
|
||||
description: StatefulSet template
|
||||
properties:
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
type: object
|
||||
required:
|
||||
- spec
|
||||
type: object
|
||||
type: object
|
||||
topology:
|
||||
description: Topology describes the pods distribution detail between
|
||||
each of subsets.
|
||||
properties:
|
||||
subsets:
|
||||
description: Contains the details of each subset. Each element in
|
||||
this array represents one subset which will be provisioned and
|
||||
managed by UnitedDeployment.
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
description: Indicates subset name as a DNS_LABEL, which will
|
||||
be used to generate subset workload name prefix in the format
|
||||
'<deployment-name>-<subset-name>-'. Name should be unique
|
||||
between all of the subsets under one UnitedDeployment.
|
||||
type: string
|
||||
nodeSelectorTerm:
|
||||
description: Indicates the node selector to form the subset.
|
||||
Depending on the node selector, pods provisioned could be
|
||||
distributed across multiple groups of nodes. A subset's
|
||||
nodeSelectorTerm is not allowed to be updated.
|
||||
type: object
|
||||
replicas:
|
||||
description: Indicates the number of the pod to be created
|
||||
under this subset. Replicas could also be percentage like
|
||||
'10%', which means 10% of UnitedDeployment replicas of pods
|
||||
will be distributed under this subset. If nil, the number
|
||||
of replicas in this subset is determined by controller.
|
||||
Controller will try to keep all the subsets with nil replicas
|
||||
have average pods.
|
||||
oneOf:
|
||||
- type: string
|
||||
- type: integer
|
||||
tolerations:
|
||||
description: Indicates the tolerations the pods under this
|
||||
subset have. A subset's tolerations is not allowed to be
|
||||
updated.
|
||||
items:
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- name
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
updateStrategy:
|
||||
description: UpdateStrategy indicates the strategy the UnitedDeployment
|
||||
use to preform the update, when template is changed.
|
||||
properties:
|
||||
manualUpdate:
|
||||
description: Includes all of the parameters a Manual update strategy
|
||||
needs.
|
||||
properties:
|
||||
partitions:
|
||||
description: Indicates number of subset partition.
|
||||
type: object
|
||||
type: object
|
||||
type:
|
||||
description: Type of UnitedDeployment update strategy. Default is
|
||||
Manual.
|
||||
type: string
|
||||
type: object
|
||||
required:
|
||||
- selector
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
collisionCount:
|
||||
description: Count of hash collisions for the UnitedDeployment. The
|
||||
UnitedDeployment 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 UnitedDeployment's
|
||||
current state.
|
||||
items:
|
||||
properties:
|
||||
lastTransitionTime:
|
||||
description: Last time the condition transitioned from one status
|
||||
to another.
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
description: A human readable message indicating details about
|
||||
the transition.
|
||||
type: string
|
||||
reason:
|
||||
description: The reason for the condition's last transition.
|
||||
type: string
|
||||
status:
|
||||
description: Status of the condition, one of True, False, Unknown.
|
||||
type: string
|
||||
type:
|
||||
description: Type of in place set condition.
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
currentRevision:
|
||||
description: CurrentRevision, if not empty, indicates the current version
|
||||
of the UnitedDeployment.
|
||||
type: string
|
||||
observedGeneration:
|
||||
description: ObservedGeneration is the most recent generation observed
|
||||
for this UnitedDeployment. It corresponds to the UnitedDeployment's
|
||||
generation, which is updated on mutation by the API Server.
|
||||
format: int64
|
||||
type: integer
|
||||
readyReplicas:
|
||||
description: The number of ready replicas.
|
||||
format: int32
|
||||
type: integer
|
||||
replicas:
|
||||
description: Replicas is the most recently observed number of replicas.
|
||||
format: int32
|
||||
type: integer
|
||||
subsetReplicas:
|
||||
description: Records the topology detail information of the replicas
|
||||
of each subset.
|
||||
type: object
|
||||
updateStatus:
|
||||
description: Records the information of update progress.
|
||||
properties:
|
||||
currentPartitions:
|
||||
description: Records the current partition.
|
||||
type: object
|
||||
updatedRevision:
|
||||
description: Records the latest revision.
|
||||
type: string
|
||||
type: object
|
||||
updatedReadyReplicas:
|
||||
description: The number of ready current revision replicas for this
|
||||
UnitedDeployment.
|
||||
format: int32
|
||||
type: integer
|
||||
updatedReplicas:
|
||||
description: The number of pods in current version.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- replicas
|
||||
- updatedReplicas
|
||||
- currentRevision
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,113 @@
|
|||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: kruise-system
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: kruise-controller-manager-service
|
||||
namespace: kruise-system
|
||||
spec:
|
||||
ports:
|
||||
- port: 443
|
||||
selector:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: kruise-controller-manager
|
||||
namespace: kruise-system
|
||||
spec:
|
||||
replicas: 1
|
||||
serviceName: kruise-controller-manager-service
|
||||
revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
|
||||
selector:
|
||||
matchLabels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
prometheus.io/scrape: "true"
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
spec:
|
||||
containers:
|
||||
- command:
|
||||
- /manager
|
||||
args:
|
||||
- "--metrics-addr={{ .Values.manager.metrics.addr }}:{{ .Values.manager.metrics.port }}"
|
||||
- "--logtostderr=true"
|
||||
- "--v={{ .Values.manager.log.level }}"
|
||||
env:
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
- name: SECRET_NAME
|
||||
value: kruise-webhook-server-secret
|
||||
- name: CUSTOM_RESOURCE_ENABLE
|
||||
value: {{ .Values.manager.custom_resource_enable }}
|
||||
image: openkruise/kruise-manager:v0.4.1
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: manager
|
||||
ports:
|
||||
- containerPort: {{ .Values.manager.metrics.port }}
|
||||
name: metrics
|
||||
protocol: TCP
|
||||
- containerPort: 9876
|
||||
name: webhook-server
|
||||
protocol: TCP
|
||||
readinessProbe:
|
||||
tcpSocket:
|
||||
port: 9876
|
||||
resources:
|
||||
{{- toYaml .Values.manager.resources | nindent 12 }}
|
||||
volumeMounts:
|
||||
- mountPath: /tmp/cert
|
||||
name: cert
|
||||
readOnly: true
|
||||
terminationGracePeriodSeconds: 10
|
||||
|
||||
{{- if .Values.spec.nodeAffinity }}
|
||||
affinity:
|
||||
{{- end }}
|
||||
{{- with .Values.spec.nodeAffinity }}
|
||||
nodeAffinity:
|
||||
{{ toYaml . | indent 10 }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.spec.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{ toYaml .Values.spec.nodeSelector | indent 8 }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.spec.tolerations }}
|
||||
tolerations:
|
||||
{{ toYaml .Values.spec.tolerations | indent 8 }}
|
||||
{{- end }}
|
||||
|
||||
volumes:
|
||||
- name: cert
|
||||
secret:
|
||||
defaultMode: 420
|
||||
secretName: kruise-webhook-server-secret
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: kruise-webhook-server-secret
|
||||
namespace: kruise-system
|
|
@ -0,0 +1,335 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: kruise-manager-role
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- broadcastjobs
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- broadcastjobs/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- persistentvolumeclaims
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- controllerrevisions
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- clonesets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- clonesets/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- sidecarsets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- sidecarsets/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- persistentvolumeclaims
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- controllerrevisions
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- statefulsets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- statefulsets/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- uniteddeployments
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- uniteddeployments/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- statefulsets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- statefulsets/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- statefulsets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- statefulsets/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- admissionregistration.k8s.io
|
||||
resources:
|
||||
- mutatingwebhookconfigurations
|
||||
- validatingwebhookconfigurations
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- services
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
|
@ -0,0 +1,13 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: kruise-manager-rolebinding
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: kruise-manager-role
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: default
|
||||
namespace: kruise-system
|
|
@ -0,0 +1,120 @@
|
|||
apiVersion: admissionregistration.k8s.io/v1beta1
|
||||
kind: MutatingWebhookConfiguration
|
||||
metadata:
|
||||
name: kruise-mutating-webhook-configuration
|
||||
---
|
||||
apiVersion: admissionregistration.k8s.io/v1beta1
|
||||
kind: ValidatingWebhookConfiguration
|
||||
metadata:
|
||||
name: kruise-validating-webhook-configuration
|
||||
webhooks:
|
||||
- clientConfig:
|
||||
caBundle: fake
|
||||
service:
|
||||
name: webhook-server-service
|
||||
namespace: kruise-system
|
||||
path: /validating-create-update-broadcastjob
|
||||
failurePolicy: Fail
|
||||
name: validating-create-update-broadcastjob.kruise.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: control-plane
|
||||
operator: DoesNotExist
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- broadcastjobs
|
||||
- clientConfig:
|
||||
caBundle: fake
|
||||
service:
|
||||
name: webhook-server-service
|
||||
namespace: kruise-system
|
||||
path: /validating-create-update-cloneset
|
||||
failurePolicy: Fail
|
||||
name: validating-create-update-cloneset.kruise.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: control-plane
|
||||
operator: DoesNotExist
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- clonesets
|
||||
- clientConfig:
|
||||
caBundle: fake
|
||||
service:
|
||||
name: webhook-server-service
|
||||
namespace: kruise-system
|
||||
path: /validating-create-update-sidecarset
|
||||
failurePolicy: Fail
|
||||
name: validating-create-update-sidecarset.kruise.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: control-plane
|
||||
operator: DoesNotExist
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- sidecarsets
|
||||
- clientConfig:
|
||||
caBundle: fake
|
||||
service:
|
||||
name: webhook-server-service
|
||||
namespace: kruise-system
|
||||
path: /validating-create-update-statefulset
|
||||
failurePolicy: Fail
|
||||
name: validating-create-update-statefulset.kruise.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: control-plane
|
||||
operator: DoesNotExist
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- statefulsets
|
||||
- clientConfig:
|
||||
caBundle: fake
|
||||
service:
|
||||
name: webhook-server-service
|
||||
namespace: kruise-system
|
||||
path: /validating-create-update-uniteddeployment
|
||||
failurePolicy: Fail
|
||||
name: validating-create-update-uniteddeployment.kruise.io
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: control-plane
|
||||
operator: DoesNotExist
|
||||
rules:
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
apiVersions:
|
||||
- v1alpha1
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- uniteddeployments
|
|
@ -0,0 +1,29 @@
|
|||
# Default values for kruise.
|
||||
|
||||
revisionHistoryLimit: 3
|
||||
|
||||
spec:
|
||||
nodeAffinity: {}
|
||||
nodeSelector: {}
|
||||
tolerations: []
|
||||
|
||||
manager:
|
||||
# settings for log print
|
||||
log:
|
||||
# log level for kruise-manager
|
||||
level: "4"
|
||||
|
||||
# resources of kruise-manager container
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
|
||||
metrics:
|
||||
addr: localhost
|
||||
port: 8080
|
||||
|
||||
custom_resource_enable:
|
|
@ -0,0 +1,17 @@
|
|||
apiVersion: v1
|
||||
name: kruise
|
||||
description: Helm chart for all kruise-manager components
|
||||
version: 0.5.0
|
||||
appVersion: 0.5.0
|
||||
icon: http://openkruise.io/img/kruise_white.png
|
||||
keywords:
|
||||
- kubernetes
|
||||
- kruise
|
||||
- workload
|
||||
- statefulset
|
||||
- sidecar
|
||||
- job
|
||||
- deployment
|
||||
home: https://openkruise.io
|
||||
sources:
|
||||
- https://github.com/openkruise/kruise
|
|
@ -0,0 +1,50 @@
|
|||
# Kruise
|
||||
|
||||
## Install
|
||||
|
||||
```bash
|
||||
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.5.0/kruise-chart.tgz
|
||||
```
|
||||
|
||||
you will see follow:
|
||||
|
||||
```
|
||||
NAME: kruise
|
||||
LAST DEPLOYED: Mon Jan 6 14:47:48 2020
|
||||
NAMESPACE: default
|
||||
STATUS: deployed
|
||||
REVISION: 1
|
||||
TEST SUITE: None
|
||||
```
|
||||
|
||||
## Uninstall
|
||||
|
||||
```bash
|
||||
$ helm delete kruise
|
||||
release "kruise" uninstalled
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
The following table lists the configurable parameters of the kruise chart and their default values.
|
||||
|
||||
| Parameter | Description | Default |
|
||||
|-------------------------------------------|--------------------------------------------------------------------|-------------------------------------|
|
||||
| `log.level` | Log level that kruise-manager printed | `4` |
|
||||
| `revisionHistoryLimit` | Limit of revision history | `3` |
|
||||
| `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` |
|
||||
| `manager.resources.requests.memory` | Memory resource request of kruise-manager container | `256Mi` |
|
||||
| `manager.metrics.addr` | Addr of metrics served | `localhost` |
|
||||
| `manager.metrics.port` | Port of metrics served | `8080` |
|
||||
| `manager.custom_resource_enable` | Custom resources enabled by kruise-manager | `""(empty means all enabled)` |
|
||||
| `spec.nodeAffinity` | Node affinity policy for kruise-manager pod | `{}` |
|
||||
| `spec.nodeSelector` | Node labels for kruise-manager pod | `{}` |
|
||||
| `spec.tolerations` | Tolerations for kruise-manager pod | `[]`
|
||||
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
|
||||
|
||||
```bash
|
||||
# helm install kruise https://github.com/openkruise/kruise/releases/download/v0.5.0/kruise-chart.tgz --set manager.log.level=5,manager.custom_resource_enable="StatefulSet\,SidecarSet"
|
||||
```
|
|
@ -0,0 +1,201 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: broadcastjobs.apps.kruise.io
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- JSONPath: .status.desired
|
||||
description: The desired number of pods. This is typically equal to the number
|
||||
of nodes satisfied to run pods.
|
||||
name: Desired
|
||||
type: integer
|
||||
- JSONPath: .status.active
|
||||
description: The number of actively running pods.
|
||||
name: Active
|
||||
type: integer
|
||||
- JSONPath: .status.succeeded
|
||||
description: The number of pods which reached phase Succeeded.
|
||||
name: Succeeded
|
||||
type: integer
|
||||
- JSONPath: .status.failed
|
||||
description: The number of pods which reached phase Failed.
|
||||
name: Failed
|
||||
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: BroadcastJob
|
||||
plural: broadcastjobs
|
||||
shortNames:
|
||||
- bj
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
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:
|
||||
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.
|
||||
oneOf:
|
||||
- type: string
|
||||
- type: integer
|
||||
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
|
||||
required:
|
||||
- template
|
||||
- completionPolicy
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
active:
|
||||
description: The number of actively running pods.
|
||||
format: int32
|
||||
type: integer
|
||||
completionTime:
|
||||
description: Represents time when the job was completed. It is not guaranteed
|
||||
to be set in happens-before order across separate operations. It is
|
||||
represented in RFC3339 form and is in UTC.
|
||||
format: date-time
|
||||
type: string
|
||||
conditions:
|
||||
description: The latest available observations of an object's current
|
||||
state. +patchMergeKey=type +patchStrategy=merge
|
||||
items:
|
||||
properties:
|
||||
lastProbeTime:
|
||||
description: Last time the condition was checked.
|
||||
format: date-time
|
||||
type: string
|
||||
lastTransitionTime:
|
||||
description: Last time the condition transit from one status to
|
||||
another.
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
description: Human readable message indicating details about last
|
||||
transition.
|
||||
type: string
|
||||
reason:
|
||||
description: (brief) reason for the condition's last transition.
|
||||
type: string
|
||||
status:
|
||||
description: Status of the condition, one of True, False, Unknown.
|
||||
type: string
|
||||
type:
|
||||
description: Type of job condition, Complete or Failed.
|
||||
type: string
|
||||
required:
|
||||
- type
|
||||
- status
|
||||
type: object
|
||||
type: array
|
||||
desired:
|
||||
description: The desired number of pods, this is typically equal to
|
||||
the number of nodes satisfied to run pods.
|
||||
format: int32
|
||||
type: integer
|
||||
failed:
|
||||
description: The number of pods which reached phase Failed.
|
||||
format: int32
|
||||
type: integer
|
||||
phase:
|
||||
description: The phase of the job.
|
||||
type: string
|
||||
startTime:
|
||||
description: Represents time when the job was acknowledged by the job
|
||||
controller. It is not guaranteed to be set in happens-before order
|
||||
across separate operations. It is represented in RFC3339 form and
|
||||
is in UTC.
|
||||
format: date-time
|
||||
type: string
|
||||
succeeded:
|
||||
description: The number of pods which reached phase Succeeded.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- active
|
||||
- succeeded
|
||||
- failed
|
||||
- desired
|
||||
- phase
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,320 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: clonesets.apps.kruise.io
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- JSONPath: .spec.replicas
|
||||
description: The desired number of pods.
|
||||
name: DESIRED
|
||||
type: integer
|
||||
- JSONPath: .status.updatedReplicas
|
||||
description: The number of pods updated.
|
||||
name: UPDATED
|
||||
type: integer
|
||||
- JSONPath: .status.updatedReadyReplicas
|
||||
description: The number of pods updated and ready.
|
||||
name: UPDATED_READY
|
||||
type: integer
|
||||
- JSONPath: .status.readyReplicas
|
||||
description: The number of pods ready.
|
||||
name: READY
|
||||
type: integer
|
||||
- JSONPath: .status.replicas
|
||||
description: The number of currently all pods.
|
||||
name: TOTAL
|
||||
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: CloneSet
|
||||
plural: clonesets
|
||||
shortNames:
|
||||
- clone
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
scale:
|
||||
labelSelectorPath: .status.labelSelector
|
||||
specReplicasPath: .spec.replicas
|
||||
statusReplicasPath: .status.replicas
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
properties:
|
||||
minReadySeconds:
|
||||
description: Minimum number of seconds for which a newly created pod
|
||||
should be ready without any of its container crashing, for it to be
|
||||
considered available. Defaults to 0 (pod will be considered available
|
||||
as soon as it is ready)
|
||||
format: int32
|
||||
type: integer
|
||||
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. If unspecified, defaults to 1.
|
||||
format: int32
|
||||
type: integer
|
||||
revisionHistoryLimit:
|
||||
description: RevisionHistoryLimit is the maximum number of revisions
|
||||
that will be maintained in the CloneSet's revision history. The revision
|
||||
history consists of all revisions not represented by a currently applied
|
||||
CloneSetSpec version. The default value is 10.
|
||||
format: int32
|
||||
type: integer
|
||||
scaleStrategy:
|
||||
description: ScaleStrategy indicates the ScaleStrategy that will be
|
||||
employed to create and delete Pods in the CloneSet.
|
||||
properties:
|
||||
podsToDelete:
|
||||
description: PodsToDelete is the names of Pod should be deleted.
|
||||
Note that this list will be truncated for non-existing pod names.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
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'
|
||||
type: object
|
||||
template:
|
||||
description: Template describes the pods that will be created.
|
||||
type: object
|
||||
updateStrategy:
|
||||
description: UpdateStrategy indicates the UpdateStrategy that will be
|
||||
employed to update Pods in the CloneSet when a revision is made to
|
||||
Template.
|
||||
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
|
||||
maxSurge:
|
||||
description: 'The maximum number of pods that can be scheduled above
|
||||
the desired replicas 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 up. Defaults
|
||||
to 0.'
|
||||
oneOf:
|
||||
- type: string
|
||||
- type: integer
|
||||
maxUnavailable:
|
||||
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 up. Defaults to 20%.'
|
||||
oneOf:
|
||||
- type: string
|
||||
- type: integer
|
||||
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
|
||||
paused:
|
||||
description: Paused indicates that the CloneSet is paused. Default
|
||||
value is false
|
||||
type: boolean
|
||||
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:
|
||||
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:
|
||||
properties:
|
||||
matchSelector:
|
||||
description: MatchSelector is used to select by pod's
|
||||
labels.
|
||||
type: object
|
||||
weight:
|
||||
description: Weight associated with matching the corresponding
|
||||
matchExpressions, in the range 1-100.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- weight
|
||||
- matchSelector
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
scatterStrategy:
|
||||
description: ScatterStrategy defines the scatter rules to make pods
|
||||
been scattered when update. This will avoid pods with the same
|
||||
key-value to be updated in one batch. - Note that pods will be
|
||||
scattered after priority sort. So, although priority strategy
|
||||
and scatter strategy can be applied together, we suggest to use
|
||||
either one of them. - If scatterStrategy is used, we suggest to
|
||||
just use one term. Otherwise, the update order can be hard to
|
||||
understand.
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
required:
|
||||
- key
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
type:
|
||||
description: Type indicates the type of the CloneSetUpdateStrategy.
|
||||
Default is ReCreate.
|
||||
type: string
|
||||
type: object
|
||||
volumeClaimTemplates:
|
||||
description: VolumeClaimTemplates is a list of claims that pods are
|
||||
allowed to reference. Note that PVC will be deleted when its pod has
|
||||
been deleted.
|
||||
items:
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- replicas
|
||||
- selector
|
||||
- template
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
availableReplicas:
|
||||
description: AvailableReplicas is the number of Pods created by the
|
||||
CloneSet controller that have a Ready Condition for at least minReadySeconds.
|
||||
format: int32
|
||||
type: integer
|
||||
collisionCount:
|
||||
description: CollisionCount is the count of hash collisions for the
|
||||
CloneSet. The CloneSet 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: Conditions represents the latest available observations
|
||||
of a CloneSet's current state.
|
||||
items:
|
||||
properties:
|
||||
lastTransitionTime:
|
||||
description: Last time the condition transitioned from one status
|
||||
to another.
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
description: A human readable message indicating details about
|
||||
the transition.
|
||||
type: string
|
||||
reason:
|
||||
description: The reason for the condition's last transition.
|
||||
type: string
|
||||
status:
|
||||
description: Status of the condition, one of True, False, Unknown.
|
||||
type: string
|
||||
type:
|
||||
description: Type of CloneSet condition.
|
||||
type: string
|
||||
required:
|
||||
- type
|
||||
- status
|
||||
type: object
|
||||
type: array
|
||||
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 CloneSet. It corresponds to the CloneSet'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 CloneSet
|
||||
controller that have a Ready Condition.
|
||||
format: int32
|
||||
type: integer
|
||||
replicas:
|
||||
description: Replicas is the number of Pods created by the CloneSet
|
||||
controller.
|
||||
format: int32
|
||||
type: integer
|
||||
updateRevision:
|
||||
description: UpdateRevision, if not empty, indicates the latest revision
|
||||
of the CloneSet.
|
||||
type: string
|
||||
updatedReadyReplicas:
|
||||
description: UpdatedReadyReplicas is the number of Pods created by the
|
||||
CloneSet controller from the CloneSet version indicated by updateRevision
|
||||
and have a Ready Condition.
|
||||
format: int32
|
||||
type: integer
|
||||
updatedReplicas:
|
||||
description: UpdatedReplicas is the number of Pods created by the CloneSet
|
||||
controller from the CloneSet version indicated by updateRevision.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- replicas
|
||||
- readyReplicas
|
||||
- availableReplicas
|
||||
- updatedReplicas
|
||||
- updatedReadyReplicas
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,118 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: sidecarsets.apps.kruise.io
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- JSONPath: .status.matchedPods
|
||||
description: The number of pods matched.
|
||||
name: MATCHED
|
||||
type: integer
|
||||
- JSONPath: .status.updatedPods
|
||||
description: The number of pods matched and updated.
|
||||
name: UPDATED
|
||||
type: integer
|
||||
- JSONPath: .status.readyPods
|
||||
description: The number of pods matched and 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: SidecarSet
|
||||
plural: sidecarsets
|
||||
scope: Cluster
|
||||
subresources:
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
properties:
|
||||
containers:
|
||||
description: Containers is the list of sidecar containers to be injected
|
||||
into the selected pod
|
||||
items:
|
||||
type: object
|
||||
type: array
|
||||
paused:
|
||||
description: Paused indicates that the sidecarset is paused and will
|
||||
not be processed by the sidecarset controller.
|
||||
type: boolean
|
||||
selector:
|
||||
description: selector is a label query over pods that should be injected
|
||||
type: object
|
||||
strategy:
|
||||
description: The sidecarset strategy to use to replace existing pods
|
||||
with new ones.
|
||||
properties:
|
||||
rollingUpdate:
|
||||
properties:
|
||||
maxUnavailable:
|
||||
oneOf:
|
||||
- type: string
|
||||
- type: integer
|
||||
type: object
|
||||
type: object
|
||||
volumes:
|
||||
description: List of volumes that can be mounted by sidecar containers
|
||||
items:
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
matchedPods:
|
||||
description: matchedPods is the number of Pods whose labels are matched
|
||||
with this SidecarSet's selector and are created after sidecarset creates
|
||||
format: int32
|
||||
type: integer
|
||||
observedGeneration:
|
||||
description: observedGeneration is the most recent generation observed
|
||||
for this SidecarSet. It corresponds to the SidecarSet's generation,
|
||||
which is updated on mutation by the API Server.
|
||||
format: int64
|
||||
type: integer
|
||||
readyPods:
|
||||
description: readyPods is the number of matched Pods that have a ready
|
||||
condition
|
||||
format: int32
|
||||
type: integer
|
||||
updatedPods:
|
||||
description: updatedPods is the number of matched Pods that are injected
|
||||
with the latest SidecarSet's containers
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- matchedPods
|
||||
- updatedPods
|
||||
- readyPods
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,294 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
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
|
||||
plural: statefulsets
|
||||
shortNames:
|
||||
- sts
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
scale:
|
||||
labelSelectorPath: .status.labelSelector
|
||||
specReplicasPath: .spec.replicas
|
||||
statusReplicasPath: .status.replicas
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
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'
|
||||
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
|
||||
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:
|
||||
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.'
|
||||
oneOf:
|
||||
- type: string
|
||||
- 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:
|
||||
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:
|
||||
properties:
|
||||
matchSelector:
|
||||
description: MatchSelector is used to select by
|
||||
pod's labels.
|
||||
type: object
|
||||
weight:
|
||||
description: Weight associated with matching the
|
||||
corresponding matchExpressions, in the range
|
||||
1-100.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- weight
|
||||
- matchSelector
|
||||
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:
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- selector
|
||||
- template
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
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. +patchMergeKey=type +patchStrategy=merge
|
||||
items:
|
||||
type: object
|
||||
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:
|
||||
- replicas
|
||||
- readyReplicas
|
||||
- currentReplicas
|
||||
- updatedReplicas
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,436 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: uniteddeployments.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: UnitedDeployment
|
||||
plural: uniteddeployments
|
||||
shortNames:
|
||||
- ud
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
scale:
|
||||
labelSelectorPath: .status.selector
|
||||
specReplicasPath: .spec.replicas
|
||||
statusReplicasPath: .status.replicas
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
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/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/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
properties:
|
||||
replicas:
|
||||
description: Replicas is the total desired replicas of all the subsets.
|
||||
If unspecified, defaults to 1.
|
||||
format: int32
|
||||
type: integer
|
||||
revisionHistoryLimit:
|
||||
description: Indicates the number of histories to be conserved. If unspecified,
|
||||
defaults to 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.
|
||||
type: object
|
||||
template:
|
||||
description: Template describes the subset that will be created.
|
||||
properties:
|
||||
advancedStatefulSetTemplate:
|
||||
description: AdvancedStatefulSet template
|
||||
properties:
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
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'
|
||||
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
|
||||
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:
|
||||
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.'
|
||||
oneOf:
|
||||
- type: string
|
||||
- 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:
|
||||
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:
|
||||
properties:
|
||||
matchSelector:
|
||||
description: MatchSelector is used
|
||||
to select by pod's labels.
|
||||
type: object
|
||||
weight:
|
||||
description: Weight associated with
|
||||
matching the corresponding matchExpressions,
|
||||
in the range 1-100.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- weight
|
||||
- matchSelector
|
||||
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:
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- selector
|
||||
- template
|
||||
type: object
|
||||
required:
|
||||
- spec
|
||||
type: object
|
||||
statefulSetTemplate:
|
||||
description: StatefulSet template
|
||||
properties:
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
type: object
|
||||
required:
|
||||
- spec
|
||||
type: object
|
||||
type: object
|
||||
topology:
|
||||
description: Topology describes the pods distribution detail between
|
||||
each of subsets.
|
||||
properties:
|
||||
subsets:
|
||||
description: Contains the details of each subset. Each element in
|
||||
this array represents one subset which will be provisioned and
|
||||
managed by UnitedDeployment.
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
description: Indicates subset name as a DNS_LABEL, which will
|
||||
be used to generate subset workload name prefix in the format
|
||||
'<deployment-name>-<subset-name>-'. Name should be unique
|
||||
between all of the subsets under one UnitedDeployment.
|
||||
type: string
|
||||
nodeSelectorTerm:
|
||||
description: Indicates the node selector to form the subset.
|
||||
Depending on the node selector, pods provisioned could be
|
||||
distributed across multiple groups of nodes. A subset's
|
||||
nodeSelectorTerm is not allowed to be updated.
|
||||
type: object
|
||||
replicas:
|
||||
description: Indicates the number of the pod to be created
|
||||
under this subset. Replicas could also be percentage like
|
||||
'10%', which means 10% of UnitedDeployment replicas of pods
|
||||
will be distributed under this subset. If nil, the number
|
||||
of replicas in this subset is determined by controller.
|
||||
Controller will try to keep all the subsets with nil replicas
|
||||
have average pods.
|
||||
oneOf:
|
||||
- type: string
|
||||
- type: integer
|
||||
tolerations:
|
||||
description: Indicates the tolerations the pods under this
|
||||
subset have. A subset's tolerations is not allowed to be
|
||||
updated.
|
||||
items:
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- name
|
||||
type: object
|
||||
type: array
|
||||
type: object
|
||||
updateStrategy:
|
||||
description: UpdateStrategy indicates the strategy the UnitedDeployment
|
||||
use to preform the update, when template is changed.
|
||||
properties:
|
||||
manualUpdate:
|
||||
description: Includes all of the parameters a Manual update strategy
|
||||
needs.
|
||||
properties:
|
||||
partitions:
|
||||
description: Indicates number of subset partition.
|
||||
type: object
|
||||
type: object
|
||||
type:
|
||||
description: Type of UnitedDeployment update strategy. Default is
|
||||
Manual.
|
||||
type: string
|
||||
type: object
|
||||
required:
|
||||
- selector
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
collisionCount:
|
||||
description: Count of hash collisions for the UnitedDeployment. The
|
||||
UnitedDeployment 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 UnitedDeployment's
|
||||
current state.
|
||||
items:
|
||||
properties:
|
||||
lastTransitionTime:
|
||||
description: Last time the condition transitioned from one status
|
||||
to another.
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
description: A human readable message indicating details about
|
||||
the transition.
|
||||
type: string
|
||||
reason:
|
||||
description: The reason for the condition's last transition.
|
||||
type: string
|
||||
status:
|
||||
description: Status of the condition, one of True, False, Unknown.
|
||||
type: string
|
||||
type:
|
||||
description: Type of in place set condition.
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
currentRevision:
|
||||
description: CurrentRevision, if not empty, indicates the current version
|
||||
of the UnitedDeployment.
|
||||
type: string
|
||||
observedGeneration:
|
||||
description: ObservedGeneration is the most recent generation observed
|
||||
for this UnitedDeployment. It corresponds to the UnitedDeployment's
|
||||
generation, which is updated on mutation by the API Server.
|
||||
format: int64
|
||||
type: integer
|
||||
readyReplicas:
|
||||
description: The number of ready replicas.
|
||||
format: int32
|
||||
type: integer
|
||||
replicas:
|
||||
description: Replicas is the most recently observed number of replicas.
|
||||
format: int32
|
||||
type: integer
|
||||
subsetReplicas:
|
||||
description: Records the topology detail information of the replicas
|
||||
of each subset.
|
||||
type: object
|
||||
updateStatus:
|
||||
description: Records the information of update progress.
|
||||
properties:
|
||||
currentPartitions:
|
||||
description: Records the current partition.
|
||||
type: object
|
||||
updatedRevision:
|
||||
description: Records the latest revision.
|
||||
type: string
|
||||
type: object
|
||||
updatedReadyReplicas:
|
||||
description: The number of ready current revision replicas for this
|
||||
UnitedDeployment.
|
||||
format: int32
|
||||
type: integer
|
||||
updatedReplicas:
|
||||
description: The number of pods in current version.
|
||||
format: int32
|
||||
type: integer
|
||||
required:
|
||||
- replicas
|
||||
- updatedReplicas
|
||||
- currentRevision
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -0,0 +1,113 @@
|
|||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: kruise-system
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: kruise-controller-manager-service
|
||||
namespace: kruise-system
|
||||
spec:
|
||||
ports:
|
||||
- port: 443
|
||||
selector:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: kruise-controller-manager
|
||||
namespace: kruise-system
|
||||
spec:
|
||||
replicas: 1
|
||||
serviceName: kruise-controller-manager-service
|
||||
revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
|
||||
selector:
|
||||
matchLabels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
prometheus.io/scrape: "true"
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
controller-tools.k8s.io: "1.0"
|
||||
spec:
|
||||
containers:
|
||||
- command:
|
||||
- /manager
|
||||
args:
|
||||
- "--metrics-addr={{ .Values.manager.metrics.addr }}:{{ .Values.manager.metrics.port }}"
|
||||
- "--logtostderr=true"
|
||||
- "--v={{ .Values.manager.log.level }}"
|
||||
env:
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
- name: SECRET_NAME
|
||||
value: kruise-webhook-server-secret
|
||||
- name: CUSTOM_RESOURCE_ENABLE
|
||||
value: {{ .Values.manager.custom_resource_enable }}
|
||||
image: openkruise/kruise-manager:v0.5.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: manager
|
||||
ports:
|
||||
- containerPort: {{ .Values.manager.metrics.port }}
|
||||
name: metrics
|
||||
protocol: TCP
|
||||
- containerPort: 9876
|
||||
name: webhook-server
|
||||
protocol: TCP
|
||||
readinessProbe:
|
||||
tcpSocket:
|
||||
port: 9876
|
||||
resources:
|
||||
{{- toYaml .Values.manager.resources | nindent 12 }}
|
||||
volumeMounts:
|
||||
- mountPath: /tmp/cert
|
||||
name: cert
|
||||
readOnly: true
|
||||
terminationGracePeriodSeconds: 10
|
||||
|
||||
{{- if .Values.spec.nodeAffinity }}
|
||||
affinity:
|
||||
{{- end }}
|
||||
{{- with .Values.spec.nodeAffinity }}
|
||||
nodeAffinity:
|
||||
{{ toYaml . | indent 10 }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.spec.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{ toYaml .Values.spec.nodeSelector | indent 8 }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.spec.tolerations }}
|
||||
tolerations:
|
||||
{{ toYaml .Values.spec.tolerations | indent 8 }}
|
||||
{{- end }}
|
||||
|
||||
volumes:
|
||||
- name: cert
|
||||
secret:
|
||||
defaultMode: 420
|
||||
secretName: kruise-webhook-server-secret
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: kruise-webhook-server-secret
|
||||
namespace: kruise-system
|
|
@ -0,0 +1,335 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: kruise-manager-role
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- broadcastjobs
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- broadcastjobs/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- persistentvolumeclaims
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- controllerrevisions
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- clonesets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- clonesets/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- sidecarsets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- sidecarsets/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- persistentvolumeclaims
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- controllerrevisions
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- statefulsets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- statefulsets/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- uniteddeployments
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- uniteddeployments/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- statefulsets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- statefulsets/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- statefulsets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- apps.kruise.io
|
||||
resources:
|
||||
- statefulsets/status
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- admissionregistration.k8s.io
|
||||
resources:
|
||||
- mutatingwebhookconfigurations
|
||||
- validatingwebhookconfigurations
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- services
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- delete
|
|
@ -0,0 +1,13 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: kruise-manager-rolebinding
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: kruise-manager-role
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: default
|
||||
namespace: kruise-system
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue