mirror of https://github.com/openkruise/charts.git
fix scaler service (#73)
Signed-off-by: skkkkkkk <sk01199367@alibaba-inc.com> Co-authored-by: skkkkkkk <sk01199367@alibaba-inc.com>
This commit is contained in:
parent
030f5de05e
commit
8424d7b532
|
|
@ -1 +1 @@
|
||||||
../versions/kruise-game/0.6
|
../versions/kruise-game/0.6.1
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
# 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
|
||||||
|
*.orig
|
||||||
|
*~
|
||||||
|
# Various IDEs
|
||||||
|
.project
|
||||||
|
.idea/
|
||||||
|
*.tmproj
|
||||||
|
.vscode/
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
apiVersion: v1
|
||||||
|
name: kruise-game
|
||||||
|
description: Helm chart for kruise-game components
|
||||||
|
version: 0.6.1
|
||||||
|
appVersion: 0.6.1
|
||||||
|
kubeVersion: ">= 1.16.0-0"
|
||||||
|
sources:
|
||||||
|
- https://github.com/openkruise/kruise-game
|
||||||
|
annotations:
|
||||||
|
artifacthub.io/changes: |
|
||||||
|
- "[Changed]: https://github.com/openkruise/kruise-game/blob/master/CHANGELOG.md"
|
||||||
|
|
@ -0,0 +1,45 @@
|
||||||
|
# Kruise Game v0.6.1
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
The following table lists the configurable parameters of the kruise-game chart and their default values.
|
||||||
|
|
||||||
|
| Parameter | Description | Default |
|
||||||
|
|----------------------------------|-----------------------------------------------------------------------------|----------------------------------|
|
||||||
|
| `installation.namespace` | Namespace for kruise-game operation installation | `kruise-game-system` |
|
||||||
|
| `installation.createNamespace` | Whether to create the installation.namespace | `true` |
|
||||||
|
| `kruiseGame.fullname` | Nick name for kruise-game deployment and other configurations | `kruise-game-controller-manager` |
|
||||||
|
| `kruiseGame.healthBindPort` | Port for checking health of kruise-game container | `8082` |
|
||||||
|
| `kruiseGame.webhook.port` | Port of webhook served by kruise-game container | `443` |
|
||||||
|
| `kruiseGame.webhook.targetPort` | ObjectSelector for workloads in MutatingWebhookConfigurations | `9876` |
|
||||||
|
| `kruiseGame.apiServerQps` | Indicates the maximum QPS to the master from kruise-game-controller-manager | `5` |
|
||||||
|
| `kruiseGame.apiServerQpsBurst` | Maximum burst for throttle of kruise-game-controller-manager | `10` |
|
||||||
|
| `replicaCount` | Replicas of kruise-game deployment | `1` |
|
||||||
|
| `image.repository` | Repository for kruise-game image | `openkruise/kruise-game-manager` |
|
||||||
|
| `image.tag` | Tag for kruise-game image | `v0.6.0` |
|
||||||
|
| `image.pullPolicy` | ImagePullPolicy for kruise-game container | `Always` |
|
||||||
|
| `serviceAccount.annotations` | The annotations for serviceAccount of kruise-game | ` ` |
|
||||||
|
| `service.port` | Port of kruise-game service | `8443` |
|
||||||
|
| `resources.limits.cpu` | CPU resource limit of kruise-game container | `500m` |
|
||||||
|
| `resources.limits.memory` | Memory resource limit of kruise-game container | `1Gi` |
|
||||||
|
| `resources.requests.cpu` | CPU resource request of kruise-game container | `10m` |
|
||||||
|
| `resources.requests.memory` | Memory resource request of kruise-game container | `64Mi` |
|
||||||
|
| `prometheus.enabled` | Whether to bind metric endpoint | `true` |
|
||||||
|
| `prometheus.monitorService.port` | Port of the monitorservice bind to | `8080` |
|
||||||
|
| `scale.service.port` | Port of the external scaler server binds to | `6000` |
|
||||||
|
| `scale.service.targetPort` | TargetPort of the external scaler server binds to | `6000` |
|
||||||
|
| `network.totalWaitTime` | Maximum time to wait for network ready, the unit is seconds | `60` |
|
||||||
|
| `network.probeIntervalTime` | Time interval for detecting network status, the unit is seconds | `5` |
|
||||||
|
| `cloudProvider.installCRD` | Whether to install CloudProvider CRD | `true` |
|
||||||
|
|
||||||
|
|
||||||
|
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
|
||||||
|
|
||||||
|
### Optional: the local image for China
|
||||||
|
|
||||||
|
If you are in China and have problem to pull image from official DockerHub, you can use the registry hosted on Alibaba Cloud:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ helm install kruise-game https://... --set image.repository=registry.cn-hangzhou.aliyuncs.com/acs/kruise-game-manager
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
@ -0,0 +1,62 @@
|
||||||
|
{{/*
|
||||||
|
Expand the name of the chart.
|
||||||
|
*/}}
|
||||||
|
{{- define "kruise-game.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-game.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-game.chart" -}}
|
||||||
|
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Common labels
|
||||||
|
*/}}
|
||||||
|
{{- define "kruise-game.labels" -}}
|
||||||
|
helm.sh/chart: {{ include "kruise-game.chart" . }}
|
||||||
|
{{ include "kruise-game.selectorLabels" . }}
|
||||||
|
{{- if .Chart.AppVersion }}
|
||||||
|
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||||
|
{{- end }}
|
||||||
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Selector labels
|
||||||
|
*/}}
|
||||||
|
{{- define "kruise-game.selectorLabels" -}}
|
||||||
|
app.kubernetes.io/name: {{ include "kruise-game.name" . }}
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create the name of the service account to use
|
||||||
|
*/}}
|
||||||
|
{{- define "kruise-game.serviceAccountName" -}}
|
||||||
|
{{- if .Values.serviceAccount.create }}
|
||||||
|
{{- default (include "kruise-game.fullname" .) .Values.serviceAccount.name }}
|
||||||
|
{{- else }}
|
||||||
|
{{- default "default" .Values.serviceAccount.name }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
@ -0,0 +1,99 @@
|
||||||
|
{{- if .Values.cloudProvider.installCRD }}
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
controller-gen.kubebuilder.io/version: v0.9.0
|
||||||
|
creationTimestamp: null
|
||||||
|
name: poddnats.alibabacloud.com
|
||||||
|
spec:
|
||||||
|
group: alibabacloud.com
|
||||||
|
names:
|
||||||
|
kind: PodDNAT
|
||||||
|
listKind: PodDNATList
|
||||||
|
plural: poddnats
|
||||||
|
singular: poddnat
|
||||||
|
scope: Namespaced
|
||||||
|
versions:
|
||||||
|
- name: v1beta1
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
description: PodDNAT is the Schema for the poddnats API
|
||||||
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
description: 'APIVersion defines the versioned schema of this representation
|
||||||
|
of an object. Servers should convert recognized schemas to the latest
|
||||||
|
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||||
|
type: string
|
||||||
|
kind:
|
||||||
|
description: 'Kind is a string value representing the REST resource this
|
||||||
|
object represents. Servers may infer this from the endpoint the client
|
||||||
|
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||||
|
type: string
|
||||||
|
metadata:
|
||||||
|
type: object
|
||||||
|
spec:
|
||||||
|
description: PodDNATSpec defines the desired state of PodDNAT
|
||||||
|
properties:
|
||||||
|
eni:
|
||||||
|
type: string
|
||||||
|
entryId:
|
||||||
|
type: string
|
||||||
|
externalIP:
|
||||||
|
type: string
|
||||||
|
externalPort:
|
||||||
|
type: string
|
||||||
|
internalIP:
|
||||||
|
type: string
|
||||||
|
internalPort:
|
||||||
|
type: string
|
||||||
|
portMapping:
|
||||||
|
items:
|
||||||
|
properties:
|
||||||
|
externalPort:
|
||||||
|
type: string
|
||||||
|
internalPort:
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
protocol:
|
||||||
|
type: string
|
||||||
|
tableId:
|
||||||
|
type: string
|
||||||
|
vswitch:
|
||||||
|
type: string
|
||||||
|
zoneID:
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
status:
|
||||||
|
description: PodDNATStatus defines the observed state of PodDNAT
|
||||||
|
properties:
|
||||||
|
created:
|
||||||
|
description: created create status
|
||||||
|
type: string
|
||||||
|
entries:
|
||||||
|
description: entries
|
||||||
|
items:
|
||||||
|
description: Entry record for forwardEntry
|
||||||
|
properties:
|
||||||
|
externalIP:
|
||||||
|
type: string
|
||||||
|
externalPort:
|
||||||
|
type: string
|
||||||
|
forwardEntryId:
|
||||||
|
type: string
|
||||||
|
internalIP:
|
||||||
|
type: string
|
||||||
|
internalPort:
|
||||||
|
type: string
|
||||||
|
ipProtocol:
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
subresources:
|
||||||
|
status: {}
|
||||||
|
{{- end }}
|
||||||
|
|
@ -0,0 +1,42 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: kruise-game-manager-config
|
||||||
|
namespace: {{ .Values.installation.namespace }}
|
||||||
|
data:
|
||||||
|
config.toml: |
|
||||||
|
[kubernetes]
|
||||||
|
enable = true
|
||||||
|
[kubernetes.hostPort]
|
||||||
|
max_port = 9000
|
||||||
|
min_port = 8000
|
||||||
|
|
||||||
|
[alibabacloud]
|
||||||
|
enable = true
|
||||||
|
[alibabacloud.slb]
|
||||||
|
max_port = 700
|
||||||
|
min_port = 500
|
||||||
|
controller_manager_config.yaml: |
|
||||||
|
apiVersion: controller-runtime.sigs.k8s.io/v1alpha1
|
||||||
|
kind: ControllerManagerConfig
|
||||||
|
health:
|
||||||
|
healthProbeBindAddress: :8081
|
||||||
|
metrics:
|
||||||
|
bindAddress: 127.0.0.1:8080
|
||||||
|
webhook:
|
||||||
|
port: 9443
|
||||||
|
leaderElection:
|
||||||
|
leaderElect: true
|
||||||
|
resourceName: c637bb1e.my.domain
|
||||||
|
# leaderElectionReleaseOnCancel defines if the leader should step down volume
|
||||||
|
# when the Manager ends. This requires the binary to immediately end when the
|
||||||
|
# Manager is stopped, otherwise, this setting is unsafe. Setting this significantly
|
||||||
|
# speeds up voluntary leader transitions as the new leader don't have to wait
|
||||||
|
# LeaseDuration time first.
|
||||||
|
# In the default scaffold provided, the program ends immediately after
|
||||||
|
# the manager stops, so would be fine to enable this option. However,
|
||||||
|
# if you are doing or is intended to do any operation such as perform cleanups
|
||||||
|
# after the manager stops then its usage might be unsafe.
|
||||||
|
# leaderElectionReleaseOnCancel: true
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,876 @@
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
controller-gen.kubebuilder.io/version: v0.9.0
|
||||||
|
creationTimestamp: null
|
||||||
|
name: gameservers.game.kruise.io
|
||||||
|
spec:
|
||||||
|
group: game.kruise.io
|
||||||
|
names:
|
||||||
|
kind: GameServer
|
||||||
|
listKind: GameServerList
|
||||||
|
plural: gameservers
|
||||||
|
shortNames:
|
||||||
|
- gs
|
||||||
|
singular: gameserver
|
||||||
|
scope: Namespaced
|
||||||
|
versions:
|
||||||
|
- additionalPrinterColumns:
|
||||||
|
- description: The current state of GameServer
|
||||||
|
jsonPath: .status.currentState
|
||||||
|
name: STATE
|
||||||
|
type: string
|
||||||
|
- description: The operations state of GameServer
|
||||||
|
jsonPath: .spec.opsState
|
||||||
|
name: OPSSTATE
|
||||||
|
type: string
|
||||||
|
- description: The current deletionPriority of GameServer
|
||||||
|
jsonPath: .status.deletionPriority
|
||||||
|
name: DP
|
||||||
|
type: string
|
||||||
|
- description: The current updatePriority of GameServer
|
||||||
|
jsonPath: .status.updatePriority
|
||||||
|
name: UP
|
||||||
|
type: string
|
||||||
|
- description: The age of GameServer
|
||||||
|
jsonPath: .metadata.creationTimestamp
|
||||||
|
name: AGE
|
||||||
|
type: date
|
||||||
|
name: v1alpha1
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
description: GameServer is the Schema for the gameservers API
|
||||||
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
description: 'APIVersion defines the versioned schema of this representation
|
||||||
|
of an object. Servers should convert recognized schemas to the latest
|
||||||
|
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||||
|
type: string
|
||||||
|
kind:
|
||||||
|
description: 'Kind is a string value representing the REST resource this
|
||||||
|
object represents. Servers may infer this from the endpoint the client
|
||||||
|
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||||
|
type: string
|
||||||
|
metadata:
|
||||||
|
type: object
|
||||||
|
spec:
|
||||||
|
description: GameServerSpec defines the desired state of GameServer
|
||||||
|
properties:
|
||||||
|
deletionPriority:
|
||||||
|
anyOf:
|
||||||
|
- type: integer
|
||||||
|
- type: string
|
||||||
|
x-kubernetes-int-or-string: true
|
||||||
|
networkDisabled:
|
||||||
|
type: boolean
|
||||||
|
opsState:
|
||||||
|
type: string
|
||||||
|
updatePriority:
|
||||||
|
anyOf:
|
||||||
|
- type: integer
|
||||||
|
- type: string
|
||||||
|
x-kubernetes-int-or-string: true
|
||||||
|
type: object
|
||||||
|
status:
|
||||||
|
description: GameServerStatus defines the observed state of GameServer
|
||||||
|
properties:
|
||||||
|
conditions:
|
||||||
|
description: Conditions is an array of current observed GameServer
|
||||||
|
conditions.
|
||||||
|
items:
|
||||||
|
properties:
|
||||||
|
lastProbeTime:
|
||||||
|
description: Last time we probed the condition.
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
lastTransitionTime:
|
||||||
|
description: Last time the condition transitioned from one status
|
||||||
|
to another.
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
message:
|
||||||
|
description: Human-readable message indicating details about
|
||||||
|
last transition.
|
||||||
|
type: string
|
||||||
|
reason:
|
||||||
|
description: Unique, one-word, CamelCase reason for the condition's
|
||||||
|
last transition.
|
||||||
|
type: string
|
||||||
|
status:
|
||||||
|
description: Status is the status of the condition. Can be True,
|
||||||
|
False, Unknown.
|
||||||
|
type: string
|
||||||
|
type:
|
||||||
|
description: Type is the type of the condition.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- status
|
||||||
|
- type
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
currentState:
|
||||||
|
type: string
|
||||||
|
deletionPriority:
|
||||||
|
anyOf:
|
||||||
|
- type: integer
|
||||||
|
- type: string
|
||||||
|
x-kubernetes-int-or-string: true
|
||||||
|
desiredState:
|
||||||
|
description: 'INSERT ADDITIONAL STATUS FIELD - define observed state
|
||||||
|
of cluster Important: Run "make" to regenerate code after modifying
|
||||||
|
this file'
|
||||||
|
type: string
|
||||||
|
lastTransitionTime:
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
networkStatus:
|
||||||
|
properties:
|
||||||
|
createTime:
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
currentNetworkState:
|
||||||
|
type: string
|
||||||
|
desiredNetworkState:
|
||||||
|
type: string
|
||||||
|
externalAddresses:
|
||||||
|
items:
|
||||||
|
properties:
|
||||||
|
endPoint:
|
||||||
|
type: string
|
||||||
|
ip:
|
||||||
|
type: string
|
||||||
|
portRange:
|
||||||
|
properties:
|
||||||
|
portRange:
|
||||||
|
type: string
|
||||||
|
protocol:
|
||||||
|
default: TCP
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
ports:
|
||||||
|
description: TODO add IPv6
|
||||||
|
items:
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
port:
|
||||||
|
anyOf:
|
||||||
|
- type: integer
|
||||||
|
- type: string
|
||||||
|
x-kubernetes-int-or-string: true
|
||||||
|
protocol:
|
||||||
|
default: TCP
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
required:
|
||||||
|
- ip
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
internalAddresses:
|
||||||
|
items:
|
||||||
|
properties:
|
||||||
|
endPoint:
|
||||||
|
type: string
|
||||||
|
ip:
|
||||||
|
type: string
|
||||||
|
portRange:
|
||||||
|
properties:
|
||||||
|
portRange:
|
||||||
|
type: string
|
||||||
|
protocol:
|
||||||
|
default: TCP
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
ports:
|
||||||
|
description: TODO add IPv6
|
||||||
|
items:
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
port:
|
||||||
|
anyOf:
|
||||||
|
- type: integer
|
||||||
|
- type: string
|
||||||
|
x-kubernetes-int-or-string: true
|
||||||
|
protocol:
|
||||||
|
default: TCP
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
required:
|
||||||
|
- ip
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
lastTransitionTime:
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
networkType:
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
podStatus:
|
||||||
|
description: PodStatus represents information about the status of
|
||||||
|
a pod. Status may trail the actual state of a system, especially
|
||||||
|
if the node that hosts the pod cannot contact the control plane.
|
||||||
|
properties:
|
||||||
|
conditions:
|
||||||
|
description: 'Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions'
|
||||||
|
items:
|
||||||
|
description: PodCondition contains details for the current condition
|
||||||
|
of this pod.
|
||||||
|
properties:
|
||||||
|
lastProbeTime:
|
||||||
|
description: Last time we probed the condition.
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
lastTransitionTime:
|
||||||
|
description: Last time the condition transitioned from one
|
||||||
|
status to another.
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
message:
|
||||||
|
description: Human-readable message indicating details about
|
||||||
|
last transition.
|
||||||
|
type: string
|
||||||
|
reason:
|
||||||
|
description: Unique, one-word, CamelCase reason for the
|
||||||
|
condition's last transition.
|
||||||
|
type: string
|
||||||
|
status:
|
||||||
|
description: 'Status is the status of the condition. Can
|
||||||
|
be True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions'
|
||||||
|
type: string
|
||||||
|
type:
|
||||||
|
description: 'Type is the type of the condition. More info:
|
||||||
|
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions'
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- status
|
||||||
|
- type
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
containerStatuses:
|
||||||
|
description: 'The list has one entry per container in the manifest.
|
||||||
|
More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status'
|
||||||
|
items:
|
||||||
|
description: ContainerStatus contains details for the current
|
||||||
|
status of this container.
|
||||||
|
properties:
|
||||||
|
containerID:
|
||||||
|
description: Container's ID in the format '<type>://<container_id>'.
|
||||||
|
type: string
|
||||||
|
image:
|
||||||
|
description: 'The image the container is running. More info:
|
||||||
|
https://kubernetes.io/docs/concepts/containers/images.'
|
||||||
|
type: string
|
||||||
|
imageID:
|
||||||
|
description: ImageID of the container's image.
|
||||||
|
type: string
|
||||||
|
lastState:
|
||||||
|
description: Details about the container's last termination
|
||||||
|
condition.
|
||||||
|
properties:
|
||||||
|
running:
|
||||||
|
description: Details about a running container
|
||||||
|
properties:
|
||||||
|
startedAt:
|
||||||
|
description: Time at which the container was last
|
||||||
|
(re-)started
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
terminated:
|
||||||
|
description: Details about a terminated container
|
||||||
|
properties:
|
||||||
|
containerID:
|
||||||
|
description: Container's ID in the format '<type>://<container_id>'
|
||||||
|
type: string
|
||||||
|
exitCode:
|
||||||
|
description: Exit status from the last termination
|
||||||
|
of the container
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
finishedAt:
|
||||||
|
description: Time at which the container last terminated
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
message:
|
||||||
|
description: Message regarding the last termination
|
||||||
|
of the container
|
||||||
|
type: string
|
||||||
|
reason:
|
||||||
|
description: (brief) reason from the last termination
|
||||||
|
of the container
|
||||||
|
type: string
|
||||||
|
signal:
|
||||||
|
description: Signal from the last termination of
|
||||||
|
the container
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
startedAt:
|
||||||
|
description: Time at which previous execution of
|
||||||
|
the container started
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- exitCode
|
||||||
|
type: object
|
||||||
|
waiting:
|
||||||
|
description: Details about a waiting container
|
||||||
|
properties:
|
||||||
|
message:
|
||||||
|
description: Message regarding why the container
|
||||||
|
is not yet running.
|
||||||
|
type: string
|
||||||
|
reason:
|
||||||
|
description: (brief) reason the container is not
|
||||||
|
yet running.
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
name:
|
||||||
|
description: This must be a DNS_LABEL. Each container in
|
||||||
|
a pod must have a unique name. Cannot be updated.
|
||||||
|
type: string
|
||||||
|
ready:
|
||||||
|
description: Specifies whether the container has passed
|
||||||
|
its readiness probe.
|
||||||
|
type: boolean
|
||||||
|
restartCount:
|
||||||
|
description: The number of times the container has been
|
||||||
|
restarted.
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
started:
|
||||||
|
description: Specifies whether the container has passed
|
||||||
|
its startup probe. Initialized as false, becomes true
|
||||||
|
after startupProbe is considered successful. Resets to
|
||||||
|
false when the container is restarted, or if kubelet loses
|
||||||
|
state temporarily. Is always true when no startupProbe
|
||||||
|
is defined.
|
||||||
|
type: boolean
|
||||||
|
state:
|
||||||
|
description: Details about the container's current condition.
|
||||||
|
properties:
|
||||||
|
running:
|
||||||
|
description: Details about a running container
|
||||||
|
properties:
|
||||||
|
startedAt:
|
||||||
|
description: Time at which the container was last
|
||||||
|
(re-)started
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
terminated:
|
||||||
|
description: Details about a terminated container
|
||||||
|
properties:
|
||||||
|
containerID:
|
||||||
|
description: Container's ID in the format '<type>://<container_id>'
|
||||||
|
type: string
|
||||||
|
exitCode:
|
||||||
|
description: Exit status from the last termination
|
||||||
|
of the container
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
finishedAt:
|
||||||
|
description: Time at which the container last terminated
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
message:
|
||||||
|
description: Message regarding the last termination
|
||||||
|
of the container
|
||||||
|
type: string
|
||||||
|
reason:
|
||||||
|
description: (brief) reason from the last termination
|
||||||
|
of the container
|
||||||
|
type: string
|
||||||
|
signal:
|
||||||
|
description: Signal from the last termination of
|
||||||
|
the container
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
startedAt:
|
||||||
|
description: Time at which previous execution of
|
||||||
|
the container started
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- exitCode
|
||||||
|
type: object
|
||||||
|
waiting:
|
||||||
|
description: Details about a waiting container
|
||||||
|
properties:
|
||||||
|
message:
|
||||||
|
description: Message regarding why the container
|
||||||
|
is not yet running.
|
||||||
|
type: string
|
||||||
|
reason:
|
||||||
|
description: (brief) reason the container is not
|
||||||
|
yet running.
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- image
|
||||||
|
- imageID
|
||||||
|
- name
|
||||||
|
- ready
|
||||||
|
- restartCount
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
ephemeralContainerStatuses:
|
||||||
|
description: Status for any ephemeral containers that have run
|
||||||
|
in this pod. This field is beta-level and available on clusters
|
||||||
|
that haven't disabled the EphemeralContainers feature gate.
|
||||||
|
items:
|
||||||
|
description: ContainerStatus contains details for the current
|
||||||
|
status of this container.
|
||||||
|
properties:
|
||||||
|
containerID:
|
||||||
|
description: Container's ID in the format '<type>://<container_id>'.
|
||||||
|
type: string
|
||||||
|
image:
|
||||||
|
description: 'The image the container is running. More info:
|
||||||
|
https://kubernetes.io/docs/concepts/containers/images.'
|
||||||
|
type: string
|
||||||
|
imageID:
|
||||||
|
description: ImageID of the container's image.
|
||||||
|
type: string
|
||||||
|
lastState:
|
||||||
|
description: Details about the container's last termination
|
||||||
|
condition.
|
||||||
|
properties:
|
||||||
|
running:
|
||||||
|
description: Details about a running container
|
||||||
|
properties:
|
||||||
|
startedAt:
|
||||||
|
description: Time at which the container was last
|
||||||
|
(re-)started
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
terminated:
|
||||||
|
description: Details about a terminated container
|
||||||
|
properties:
|
||||||
|
containerID:
|
||||||
|
description: Container's ID in the format '<type>://<container_id>'
|
||||||
|
type: string
|
||||||
|
exitCode:
|
||||||
|
description: Exit status from the last termination
|
||||||
|
of the container
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
finishedAt:
|
||||||
|
description: Time at which the container last terminated
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
message:
|
||||||
|
description: Message regarding the last termination
|
||||||
|
of the container
|
||||||
|
type: string
|
||||||
|
reason:
|
||||||
|
description: (brief) reason from the last termination
|
||||||
|
of the container
|
||||||
|
type: string
|
||||||
|
signal:
|
||||||
|
description: Signal from the last termination of
|
||||||
|
the container
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
startedAt:
|
||||||
|
description: Time at which previous execution of
|
||||||
|
the container started
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- exitCode
|
||||||
|
type: object
|
||||||
|
waiting:
|
||||||
|
description: Details about a waiting container
|
||||||
|
properties:
|
||||||
|
message:
|
||||||
|
description: Message regarding why the container
|
||||||
|
is not yet running.
|
||||||
|
type: string
|
||||||
|
reason:
|
||||||
|
description: (brief) reason the container is not
|
||||||
|
yet running.
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
name:
|
||||||
|
description: This must be a DNS_LABEL. Each container in
|
||||||
|
a pod must have a unique name. Cannot be updated.
|
||||||
|
type: string
|
||||||
|
ready:
|
||||||
|
description: Specifies whether the container has passed
|
||||||
|
its readiness probe.
|
||||||
|
type: boolean
|
||||||
|
restartCount:
|
||||||
|
description: The number of times the container has been
|
||||||
|
restarted.
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
started:
|
||||||
|
description: Specifies whether the container has passed
|
||||||
|
its startup probe. Initialized as false, becomes true
|
||||||
|
after startupProbe is considered successful. Resets to
|
||||||
|
false when the container is restarted, or if kubelet loses
|
||||||
|
state temporarily. Is always true when no startupProbe
|
||||||
|
is defined.
|
||||||
|
type: boolean
|
||||||
|
state:
|
||||||
|
description: Details about the container's current condition.
|
||||||
|
properties:
|
||||||
|
running:
|
||||||
|
description: Details about a running container
|
||||||
|
properties:
|
||||||
|
startedAt:
|
||||||
|
description: Time at which the container was last
|
||||||
|
(re-)started
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
terminated:
|
||||||
|
description: Details about a terminated container
|
||||||
|
properties:
|
||||||
|
containerID:
|
||||||
|
description: Container's ID in the format '<type>://<container_id>'
|
||||||
|
type: string
|
||||||
|
exitCode:
|
||||||
|
description: Exit status from the last termination
|
||||||
|
of the container
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
finishedAt:
|
||||||
|
description: Time at which the container last terminated
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
message:
|
||||||
|
description: Message regarding the last termination
|
||||||
|
of the container
|
||||||
|
type: string
|
||||||
|
reason:
|
||||||
|
description: (brief) reason from the last termination
|
||||||
|
of the container
|
||||||
|
type: string
|
||||||
|
signal:
|
||||||
|
description: Signal from the last termination of
|
||||||
|
the container
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
startedAt:
|
||||||
|
description: Time at which previous execution of
|
||||||
|
the container started
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- exitCode
|
||||||
|
type: object
|
||||||
|
waiting:
|
||||||
|
description: Details about a waiting container
|
||||||
|
properties:
|
||||||
|
message:
|
||||||
|
description: Message regarding why the container
|
||||||
|
is not yet running.
|
||||||
|
type: string
|
||||||
|
reason:
|
||||||
|
description: (brief) reason the container is not
|
||||||
|
yet running.
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- image
|
||||||
|
- imageID
|
||||||
|
- name
|
||||||
|
- ready
|
||||||
|
- restartCount
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
hostIP:
|
||||||
|
description: IP address of the host to which the pod is assigned.
|
||||||
|
Empty if not yet scheduled.
|
||||||
|
type: string
|
||||||
|
initContainerStatuses:
|
||||||
|
description: 'The list has one entry per init container in the
|
||||||
|
manifest. The most recent successful init container will have
|
||||||
|
ready = true, the most recently started container will have
|
||||||
|
startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status'
|
||||||
|
items:
|
||||||
|
description: ContainerStatus contains details for the current
|
||||||
|
status of this container.
|
||||||
|
properties:
|
||||||
|
containerID:
|
||||||
|
description: Container's ID in the format '<type>://<container_id>'.
|
||||||
|
type: string
|
||||||
|
image:
|
||||||
|
description: 'The image the container is running. More info:
|
||||||
|
https://kubernetes.io/docs/concepts/containers/images.'
|
||||||
|
type: string
|
||||||
|
imageID:
|
||||||
|
description: ImageID of the container's image.
|
||||||
|
type: string
|
||||||
|
lastState:
|
||||||
|
description: Details about the container's last termination
|
||||||
|
condition.
|
||||||
|
properties:
|
||||||
|
running:
|
||||||
|
description: Details about a running container
|
||||||
|
properties:
|
||||||
|
startedAt:
|
||||||
|
description: Time at which the container was last
|
||||||
|
(re-)started
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
terminated:
|
||||||
|
description: Details about a terminated container
|
||||||
|
properties:
|
||||||
|
containerID:
|
||||||
|
description: Container's ID in the format '<type>://<container_id>'
|
||||||
|
type: string
|
||||||
|
exitCode:
|
||||||
|
description: Exit status from the last termination
|
||||||
|
of the container
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
finishedAt:
|
||||||
|
description: Time at which the container last terminated
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
message:
|
||||||
|
description: Message regarding the last termination
|
||||||
|
of the container
|
||||||
|
type: string
|
||||||
|
reason:
|
||||||
|
description: (brief) reason from the last termination
|
||||||
|
of the container
|
||||||
|
type: string
|
||||||
|
signal:
|
||||||
|
description: Signal from the last termination of
|
||||||
|
the container
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
startedAt:
|
||||||
|
description: Time at which previous execution of
|
||||||
|
the container started
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- exitCode
|
||||||
|
type: object
|
||||||
|
waiting:
|
||||||
|
description: Details about a waiting container
|
||||||
|
properties:
|
||||||
|
message:
|
||||||
|
description: Message regarding why the container
|
||||||
|
is not yet running.
|
||||||
|
type: string
|
||||||
|
reason:
|
||||||
|
description: (brief) reason the container is not
|
||||||
|
yet running.
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
name:
|
||||||
|
description: This must be a DNS_LABEL. Each container in
|
||||||
|
a pod must have a unique name. Cannot be updated.
|
||||||
|
type: string
|
||||||
|
ready:
|
||||||
|
description: Specifies whether the container has passed
|
||||||
|
its readiness probe.
|
||||||
|
type: boolean
|
||||||
|
restartCount:
|
||||||
|
description: The number of times the container has been
|
||||||
|
restarted.
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
started:
|
||||||
|
description: Specifies whether the container has passed
|
||||||
|
its startup probe. Initialized as false, becomes true
|
||||||
|
after startupProbe is considered successful. Resets to
|
||||||
|
false when the container is restarted, or if kubelet loses
|
||||||
|
state temporarily. Is always true when no startupProbe
|
||||||
|
is defined.
|
||||||
|
type: boolean
|
||||||
|
state:
|
||||||
|
description: Details about the container's current condition.
|
||||||
|
properties:
|
||||||
|
running:
|
||||||
|
description: Details about a running container
|
||||||
|
properties:
|
||||||
|
startedAt:
|
||||||
|
description: Time at which the container was last
|
||||||
|
(re-)started
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
terminated:
|
||||||
|
description: Details about a terminated container
|
||||||
|
properties:
|
||||||
|
containerID:
|
||||||
|
description: Container's ID in the format '<type>://<container_id>'
|
||||||
|
type: string
|
||||||
|
exitCode:
|
||||||
|
description: Exit status from the last termination
|
||||||
|
of the container
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
finishedAt:
|
||||||
|
description: Time at which the container last terminated
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
message:
|
||||||
|
description: Message regarding the last termination
|
||||||
|
of the container
|
||||||
|
type: string
|
||||||
|
reason:
|
||||||
|
description: (brief) reason from the last termination
|
||||||
|
of the container
|
||||||
|
type: string
|
||||||
|
signal:
|
||||||
|
description: Signal from the last termination of
|
||||||
|
the container
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
startedAt:
|
||||||
|
description: Time at which previous execution of
|
||||||
|
the container started
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- exitCode
|
||||||
|
type: object
|
||||||
|
waiting:
|
||||||
|
description: Details about a waiting container
|
||||||
|
properties:
|
||||||
|
message:
|
||||||
|
description: Message regarding why the container
|
||||||
|
is not yet running.
|
||||||
|
type: string
|
||||||
|
reason:
|
||||||
|
description: (brief) reason the container is not
|
||||||
|
yet running.
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- image
|
||||||
|
- imageID
|
||||||
|
- name
|
||||||
|
- ready
|
||||||
|
- restartCount
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
message:
|
||||||
|
description: A human readable message indicating details about
|
||||||
|
why the pod is in this condition.
|
||||||
|
type: string
|
||||||
|
nominatedNodeName:
|
||||||
|
description: nominatedNodeName is set only when this pod preempts
|
||||||
|
other pods on the node, but it cannot be scheduled right away
|
||||||
|
as preemption victims receive their graceful termination periods.
|
||||||
|
This field does not guarantee that the pod will be scheduled
|
||||||
|
on this node. Scheduler may decide to place the pod elsewhere
|
||||||
|
if other nodes become available sooner. Scheduler may also decide
|
||||||
|
to give the resources on this node to a higher priority pod
|
||||||
|
that is created after preemption. As a result, this field may
|
||||||
|
be different than PodSpec.nodeName when the pod is scheduled.
|
||||||
|
type: string
|
||||||
|
phase:
|
||||||
|
description: "The phase of a Pod is a simple, high-level summary
|
||||||
|
of where the Pod is in its lifecycle. The conditions array,
|
||||||
|
the reason and message fields, and the individual container
|
||||||
|
status arrays contain more detail about the pod's status. There
|
||||||
|
are five possible phase values: \n Pending: The pod has been
|
||||||
|
accepted by the Kubernetes system, but one or more of the container
|
||||||
|
images has not been created. This includes time before being
|
||||||
|
scheduled as well as time spent downloading images over the
|
||||||
|
network, which could take a while. Running: The pod has been
|
||||||
|
bound to a node, and all of the containers have been created.
|
||||||
|
At least one container is still running, or is in the process
|
||||||
|
of starting or restarting. Succeeded: All containers in the
|
||||||
|
pod have terminated in success, and will not be restarted. Failed:
|
||||||
|
All containers in the pod have terminated, and at least one
|
||||||
|
container has terminated in failure. The container either exited
|
||||||
|
with non-zero status or was terminated by the system. Unknown:
|
||||||
|
For some reason the state of the pod could not be obtained,
|
||||||
|
typically due to an error in communicating with the host of
|
||||||
|
the pod. \n More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase"
|
||||||
|
type: string
|
||||||
|
podIP:
|
||||||
|
description: IP address allocated to the pod. Routable at least
|
||||||
|
within the cluster. Empty if not yet allocated.
|
||||||
|
type: string
|
||||||
|
podIPs:
|
||||||
|
description: podIPs holds the IP addresses allocated to the pod.
|
||||||
|
If this field is specified, the 0th entry must match the podIP
|
||||||
|
field. Pods may be allocated at most 1 value for each of IPv4
|
||||||
|
and IPv6. This list is empty if no IPs have been allocated yet.
|
||||||
|
items:
|
||||||
|
description: 'IP address information for entries in the (plural)
|
||||||
|
PodIPs field. Each entry includes: IP: An IP address allocated
|
||||||
|
to the pod. Routable at least within the cluster.'
|
||||||
|
properties:
|
||||||
|
ip:
|
||||||
|
description: ip is an IP address (IPv4 or IPv6) assigned
|
||||||
|
to the pod
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
qosClass:
|
||||||
|
description: 'The Quality of Service (QOS) classification assigned
|
||||||
|
to the pod based on resource requirements See PodQOSClass type
|
||||||
|
for available QOS classes More info: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md'
|
||||||
|
type: string
|
||||||
|
reason:
|
||||||
|
description: A brief CamelCase message indicating details about
|
||||||
|
why the pod is in this state. e.g. 'Evicted'
|
||||||
|
type: string
|
||||||
|
startTime:
|
||||||
|
description: RFC 3339 date and time at which the object was acknowledged
|
||||||
|
by the Kubelet. This is before the Kubelet pulled the container
|
||||||
|
image(s) for the pod.
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
serviceQualitiesConditions:
|
||||||
|
items:
|
||||||
|
properties:
|
||||||
|
lastActionTransitionTime:
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
lastProbeTime:
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
lastTransitionTime:
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
status:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
updatePriority:
|
||||||
|
anyOf:
|
||||||
|
- type: integer
|
||||||
|
- type: string
|
||||||
|
description: Lifecycle defines the lifecycle hooks for Pods pre-delete,
|
||||||
|
in-place update.
|
||||||
|
x-kubernetes-int-or-string: true
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
subresources:
|
||||||
|
status: {}
|
||||||
|
|
@ -0,0 +1,728 @@
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
controller-gen.kubebuilder.io/version: v0.9.0
|
||||||
|
creationTimestamp: null
|
||||||
|
name: gameserversets.game.kruise.io
|
||||||
|
spec:
|
||||||
|
group: game.kruise.io
|
||||||
|
names:
|
||||||
|
kind: GameServerSet
|
||||||
|
listKind: GameServerSetList
|
||||||
|
plural: gameserversets
|
||||||
|
shortNames:
|
||||||
|
- gss
|
||||||
|
singular: gameserverset
|
||||||
|
scope: Namespaced
|
||||||
|
versions:
|
||||||
|
- additionalPrinterColumns:
|
||||||
|
- description: The desired number of GameServers.
|
||||||
|
jsonPath: .spec.replicas
|
||||||
|
name: DESIRED
|
||||||
|
type: integer
|
||||||
|
- description: The number of currently all GameServers.
|
||||||
|
jsonPath: .status.replicas
|
||||||
|
name: CURRENT
|
||||||
|
type: integer
|
||||||
|
- description: The number of GameServers updated.
|
||||||
|
jsonPath: .status.updatedReplicas
|
||||||
|
name: UPDATED
|
||||||
|
type: integer
|
||||||
|
- description: The number of GameServers ready.
|
||||||
|
jsonPath: .status.readyReplicas
|
||||||
|
name: READY
|
||||||
|
type: integer
|
||||||
|
- description: The number of GameServers Maintaining.
|
||||||
|
jsonPath: .status.maintainingReplicas
|
||||||
|
name: Maintaining
|
||||||
|
type: integer
|
||||||
|
- description: The number of GameServers WaitToBeDeleted.
|
||||||
|
jsonPath: .status.waitToBeDeletedReplicas
|
||||||
|
name: WaitToBeDeleted
|
||||||
|
type: integer
|
||||||
|
- description: The age of GameServerSet.
|
||||||
|
jsonPath: .metadata.creationTimestamp
|
||||||
|
name: AGE
|
||||||
|
type: date
|
||||||
|
name: v1alpha1
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
description: GameServerSet is the Schema for the gameserversets API
|
||||||
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
description: 'APIVersion defines the versioned schema of this representation
|
||||||
|
of an object. Servers should convert recognized schemas to the latest
|
||||||
|
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||||
|
type: string
|
||||||
|
kind:
|
||||||
|
description: 'Kind is a string value representing the REST resource this
|
||||||
|
object represents. Servers may infer this from the endpoint the client
|
||||||
|
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||||
|
type: string
|
||||||
|
metadata:
|
||||||
|
type: object
|
||||||
|
spec:
|
||||||
|
description: GameServerSetSpec defines the desired state of GameServerSet
|
||||||
|
properties:
|
||||||
|
gameServerTemplate:
|
||||||
|
description: 'INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
|
||||||
|
Important: Run "make" to regenerate code after modifying this file'
|
||||||
|
properties:
|
||||||
|
volumeClaimTemplates:
|
||||||
|
items:
|
||||||
|
description: PersistentVolumeClaim is a user's request for and
|
||||||
|
claim to a persistent volume
|
||||||
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
description: 'APIVersion defines the versioned schema of
|
||||||
|
this representation of an object. Servers should convert
|
||||||
|
recognized schemas to the latest internal value, and may
|
||||||
|
reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||||
|
type: string
|
||||||
|
kind:
|
||||||
|
description: 'Kind is a string value representing the REST
|
||||||
|
resource this object represents. Servers may infer this
|
||||||
|
from the endpoint the client submits requests to. Cannot
|
||||||
|
be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||||
|
type: string
|
||||||
|
metadata:
|
||||||
|
description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
|
||||||
|
properties:
|
||||||
|
annotations:
|
||||||
|
additionalProperties:
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
finalizers:
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
labels:
|
||||||
|
additionalProperties:
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
namespace:
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
spec:
|
||||||
|
description: 'spec defines the desired characteristics of
|
||||||
|
a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
|
||||||
|
properties:
|
||||||
|
accessModes:
|
||||||
|
description: 'accessModes contains the desired access
|
||||||
|
modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
dataSource:
|
||||||
|
description: 'dataSource field can be used to specify
|
||||||
|
either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
|
||||||
|
* An existing PVC (PersistentVolumeClaim) If the provisioner
|
||||||
|
or an external controller can support the specified
|
||||||
|
data source, it will create a new volume based on
|
||||||
|
the contents of the specified data source. If the
|
||||||
|
AnyVolumeDataSource feature gate is enabled, this
|
||||||
|
field will always have the same contents as the DataSourceRef
|
||||||
|
field.'
|
||||||
|
properties:
|
||||||
|
apiGroup:
|
||||||
|
description: APIGroup is the group for the resource
|
||||||
|
being referenced. If APIGroup is not specified,
|
||||||
|
the specified Kind must be in the core API group.
|
||||||
|
For any other third-party types, APIGroup is required.
|
||||||
|
type: string
|
||||||
|
kind:
|
||||||
|
description: Kind is the type of resource being
|
||||||
|
referenced
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
description: Name is the name of resource being
|
||||||
|
referenced
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- kind
|
||||||
|
- name
|
||||||
|
type: object
|
||||||
|
dataSourceRef:
|
||||||
|
description: 'dataSourceRef specifies the object from
|
||||||
|
which to populate the volume with data, if a non-empty
|
||||||
|
volume is desired. This may be any local object from
|
||||||
|
a non-empty API group (non core object) or a PersistentVolumeClaim
|
||||||
|
object. When this field is specified, volume binding
|
||||||
|
will only succeed if the type of the specified object
|
||||||
|
matches some installed volume populator or dynamic
|
||||||
|
provisioner. This field will replace the functionality
|
||||||
|
of the DataSource field and as such if both fields
|
||||||
|
are non-empty, they must have the same value. For
|
||||||
|
backwards compatibility, both fields (DataSource and
|
||||||
|
DataSourceRef) will be set to the same value automatically
|
||||||
|
if one of them is empty and the other is non-empty.
|
||||||
|
There are two important differences between DataSource
|
||||||
|
and DataSourceRef: * While DataSource only allows
|
||||||
|
two specific types of objects, DataSourceRef allows
|
||||||
|
any non-core object, as well as PersistentVolumeClaim
|
||||||
|
objects. * While DataSource ignores disallowed values
|
||||||
|
(dropping them), DataSourceRef preserves all values,
|
||||||
|
and generates an error if a disallowed value is specified.
|
||||||
|
(Beta) Using this field requires the AnyVolumeDataSource
|
||||||
|
feature gate to be enabled.'
|
||||||
|
properties:
|
||||||
|
apiGroup:
|
||||||
|
description: APIGroup is the group for the resource
|
||||||
|
being referenced. If APIGroup is not specified,
|
||||||
|
the specified Kind must be in the core API group.
|
||||||
|
For any other third-party types, APIGroup is required.
|
||||||
|
type: string
|
||||||
|
kind:
|
||||||
|
description: Kind is the type of resource being
|
||||||
|
referenced
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
description: Name is the name of resource being
|
||||||
|
referenced
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- kind
|
||||||
|
- name
|
||||||
|
type: object
|
||||||
|
resources:
|
||||||
|
description: 'resources represents the minimum resources
|
||||||
|
the volume should have. If RecoverVolumeExpansionFailure
|
||||||
|
feature is enabled users are allowed to specify resource
|
||||||
|
requirements that are lower than previous value but
|
||||||
|
must still be higher than capacity recorded in the
|
||||||
|
status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
|
||||||
|
properties:
|
||||||
|
limits:
|
||||||
|
additionalProperties:
|
||||||
|
anyOf:
|
||||||
|
- type: integer
|
||||||
|
- type: string
|
||||||
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
||||||
|
x-kubernetes-int-or-string: true
|
||||||
|
description: 'Limits describes the maximum amount
|
||||||
|
of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
||||||
|
type: object
|
||||||
|
requests:
|
||||||
|
additionalProperties:
|
||||||
|
anyOf:
|
||||||
|
- type: integer
|
||||||
|
- type: string
|
||||||
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
||||||
|
x-kubernetes-int-or-string: true
|
||||||
|
description: 'Requests describes the minimum amount
|
||||||
|
of compute resources required. If Requests is
|
||||||
|
omitted for a container, it defaults to Limits
|
||||||
|
if that is explicitly specified, otherwise to
|
||||||
|
an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
selector:
|
||||||
|
description: selector is a label query over volumes
|
||||||
|
to consider for binding.
|
||||||
|
properties:
|
||||||
|
matchExpressions:
|
||||||
|
description: matchExpressions is a list of label
|
||||||
|
selector requirements. The requirements are ANDed.
|
||||||
|
items:
|
||||||
|
description: A label selector requirement is a
|
||||||
|
selector that contains values, a key, and an
|
||||||
|
operator that relates the key and values.
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
description: key is the label key that the
|
||||||
|
selector applies to.
|
||||||
|
type: string
|
||||||
|
operator:
|
||||||
|
description: operator represents a key's relationship
|
||||||
|
to a set of values. Valid operators are
|
||||||
|
In, NotIn, Exists and DoesNotExist.
|
||||||
|
type: string
|
||||||
|
values:
|
||||||
|
description: values is an array of string
|
||||||
|
values. If the operator is In or NotIn,
|
||||||
|
the values array must be non-empty. If the
|
||||||
|
operator is Exists or DoesNotExist, the
|
||||||
|
values array must be empty. This array is
|
||||||
|
replaced during a strategic merge patch.
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
- operator
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
matchLabels:
|
||||||
|
additionalProperties:
|
||||||
|
type: string
|
||||||
|
description: matchLabels is a map of {key,value}
|
||||||
|
pairs. A single {key,value} in the matchLabels
|
||||||
|
map is equivalent to an element of matchExpressions,
|
||||||
|
whose key field is "key", the operator is "In",
|
||||||
|
and the values array contains only "value". The
|
||||||
|
requirements are ANDed.
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
storageClassName:
|
||||||
|
description: 'storageClassName is the name of the StorageClass
|
||||||
|
required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
|
||||||
|
type: string
|
||||||
|
volumeMode:
|
||||||
|
description: volumeMode defines what type of volume
|
||||||
|
is required by the claim. Value of Filesystem is implied
|
||||||
|
when not included in claim spec.
|
||||||
|
type: string
|
||||||
|
volumeName:
|
||||||
|
description: volumeName is the binding reference to
|
||||||
|
the PersistentVolume backing this claim.
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
status:
|
||||||
|
description: 'status represents the current information/status
|
||||||
|
of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
|
||||||
|
properties:
|
||||||
|
accessModes:
|
||||||
|
description: 'accessModes contains the actual access
|
||||||
|
modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
allocatedResources:
|
||||||
|
additionalProperties:
|
||||||
|
anyOf:
|
||||||
|
- type: integer
|
||||||
|
- type: string
|
||||||
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
||||||
|
x-kubernetes-int-or-string: true
|
||||||
|
description: allocatedResources is the storage resource
|
||||||
|
within AllocatedResources tracks the capacity allocated
|
||||||
|
to a PVC. It may be larger than the actual capacity
|
||||||
|
when a volume expansion operation is requested. For
|
||||||
|
storage quota, the larger value from allocatedResources
|
||||||
|
and PVC.spec.resources is used. If allocatedResources
|
||||||
|
is not set, PVC.spec.resources alone is used for quota
|
||||||
|
calculation. If a volume expansion capacity request
|
||||||
|
is lowered, allocatedResources is only lowered if
|
||||||
|
there are no expansion operations in progress and
|
||||||
|
if the actual volume capacity is equal or lower than
|
||||||
|
the requested capacity. This is an alpha field and
|
||||||
|
requires enabling RecoverVolumeExpansionFailure feature.
|
||||||
|
type: object
|
||||||
|
capacity:
|
||||||
|
additionalProperties:
|
||||||
|
anyOf:
|
||||||
|
- type: integer
|
||||||
|
- type: string
|
||||||
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
||||||
|
x-kubernetes-int-or-string: true
|
||||||
|
description: capacity represents the actual resources
|
||||||
|
of the underlying volume.
|
||||||
|
type: object
|
||||||
|
conditions:
|
||||||
|
description: conditions is the current Condition of
|
||||||
|
persistent volume claim. If underlying persistent
|
||||||
|
volume is being resized then the Condition will be
|
||||||
|
set to 'ResizeStarted'.
|
||||||
|
items:
|
||||||
|
description: PersistentVolumeClaimCondition contails
|
||||||
|
details about state of pvc
|
||||||
|
properties:
|
||||||
|
lastProbeTime:
|
||||||
|
description: lastProbeTime is the time we probed
|
||||||
|
the condition.
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
lastTransitionTime:
|
||||||
|
description: lastTransitionTime is the time the
|
||||||
|
condition transitioned from one status to another.
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
message:
|
||||||
|
description: message is the human-readable message
|
||||||
|
indicating details about last transition.
|
||||||
|
type: string
|
||||||
|
reason:
|
||||||
|
description: reason is a unique, this should be
|
||||||
|
a short, machine understandable string that
|
||||||
|
gives the reason for condition's last transition.
|
||||||
|
If it reports "ResizeStarted" that means the
|
||||||
|
underlying persistent volume is being resized.
|
||||||
|
type: string
|
||||||
|
status:
|
||||||
|
type: string
|
||||||
|
type:
|
||||||
|
description: PersistentVolumeClaimConditionType
|
||||||
|
is a valid value of PersistentVolumeClaimCondition.Type
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- status
|
||||||
|
- type
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
phase:
|
||||||
|
description: phase represents the current phase of PersistentVolumeClaim.
|
||||||
|
type: string
|
||||||
|
resizeStatus:
|
||||||
|
description: resizeStatus stores status of resize operation.
|
||||||
|
ResizeStatus is not set by default but when expansion
|
||||||
|
is complete resizeStatus is set to empty string by
|
||||||
|
resize controller or kubelet. This is an alpha field
|
||||||
|
and requires enabling RecoverVolumeExpansionFailure
|
||||||
|
feature.
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
type: object
|
||||||
|
x-kubernetes-preserve-unknown-fields: true
|
||||||
|
network:
|
||||||
|
properties:
|
||||||
|
networkConf:
|
||||||
|
items:
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
value:
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
networkType:
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
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.
|
||||||
|
format: int32
|
||||||
|
minimum: 0
|
||||||
|
type: integer
|
||||||
|
reserveGameServerIds:
|
||||||
|
items:
|
||||||
|
type: integer
|
||||||
|
type: array
|
||||||
|
scaleStrategy:
|
||||||
|
properties:
|
||||||
|
maxUnavailable:
|
||||||
|
anyOf:
|
||||||
|
- type: integer
|
||||||
|
- type: string
|
||||||
|
description: 'The maximum number of pods that can be unavailable
|
||||||
|
during scaling. 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. It can just be allowed to
|
||||||
|
work with Parallel podManagementPolicy.'
|
||||||
|
x-kubernetes-int-or-string: true
|
||||||
|
scaleDownStrategyType:
|
||||||
|
description: ScaleDownStrategyType indicates the scaling down
|
||||||
|
strategy. Default is GeneralScaleDownStrategyType
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
serviceName:
|
||||||
|
type: string
|
||||||
|
serviceQualities:
|
||||||
|
items:
|
||||||
|
properties:
|
||||||
|
containerName:
|
||||||
|
type: string
|
||||||
|
exec:
|
||||||
|
description: Exec specifies the action to take.
|
||||||
|
properties:
|
||||||
|
command:
|
||||||
|
description: Command is the command line to execute inside
|
||||||
|
the container, the working directory for the command is
|
||||||
|
root ('/') in the container's filesystem. The command
|
||||||
|
is simply exec'd, it is not run inside a shell, so traditional
|
||||||
|
shell instructions ('|', etc) won't work. To use a shell,
|
||||||
|
you need to explicitly call out to that shell. Exit status
|
||||||
|
of 0 is treated as live/healthy and non-zero is unhealthy.
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
type: object
|
||||||
|
failureThreshold:
|
||||||
|
description: Minimum consecutive failures for the probe to be
|
||||||
|
considered failed after having succeeded. Defaults to 3. Minimum
|
||||||
|
value is 1.
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
grpc:
|
||||||
|
description: GRPC specifies an action involving a GRPC port.
|
||||||
|
This is a beta field and requires enabling GRPCContainerProbe
|
||||||
|
feature gate.
|
||||||
|
properties:
|
||||||
|
port:
|
||||||
|
description: Port number of the gRPC service. Number must
|
||||||
|
be in the range 1 to 65535.
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
service:
|
||||||
|
description: "Service is the name of the service to place
|
||||||
|
in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
|
||||||
|
\n If this is not specified, the default behavior is defined
|
||||||
|
by gRPC."
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- port
|
||||||
|
type: object
|
||||||
|
httpGet:
|
||||||
|
description: HTTPGet specifies the http request to perform.
|
||||||
|
properties:
|
||||||
|
host:
|
||||||
|
description: Host name to connect to, defaults to the pod
|
||||||
|
IP. You probably want to set "Host" in httpHeaders instead.
|
||||||
|
type: string
|
||||||
|
httpHeaders:
|
||||||
|
description: Custom headers to set in the request. HTTP
|
||||||
|
allows repeated headers.
|
||||||
|
items:
|
||||||
|
description: HTTPHeader describes a custom header to be
|
||||||
|
used in HTTP probes
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
description: The header field name
|
||||||
|
type: string
|
||||||
|
value:
|
||||||
|
description: The header field value
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
- value
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
path:
|
||||||
|
description: Path to access on the HTTP server.
|
||||||
|
type: string
|
||||||
|
port:
|
||||||
|
anyOf:
|
||||||
|
- type: integer
|
||||||
|
- type: string
|
||||||
|
description: Name or number of the port to access on the
|
||||||
|
container. Number must be in the range 1 to 65535. Name
|
||||||
|
must be an IANA_SVC_NAME.
|
||||||
|
x-kubernetes-int-or-string: true
|
||||||
|
scheme:
|
||||||
|
description: Scheme to use for connecting to the host. Defaults
|
||||||
|
to HTTP.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- port
|
||||||
|
type: object
|
||||||
|
initialDelaySeconds:
|
||||||
|
description: 'Number of seconds after the container has started
|
||||||
|
before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
periodSeconds:
|
||||||
|
description: How often (in seconds) to perform the probe. Default
|
||||||
|
to 10 seconds. Minimum value is 1.
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
permanent:
|
||||||
|
description: Whether to make GameServerSpec not change after
|
||||||
|
the ServiceQualityAction is executed. When Permanent is true,
|
||||||
|
regardless of the detection results, ServiceQualityAction
|
||||||
|
will only be executed once. When Permanent is false, ServiceQualityAction
|
||||||
|
can be executed again even though ServiceQualityAction has
|
||||||
|
been executed.
|
||||||
|
type: boolean
|
||||||
|
serviceQualityAction:
|
||||||
|
items:
|
||||||
|
properties:
|
||||||
|
deletionPriority:
|
||||||
|
anyOf:
|
||||||
|
- type: integer
|
||||||
|
- type: string
|
||||||
|
x-kubernetes-int-or-string: true
|
||||||
|
networkDisabled:
|
||||||
|
type: boolean
|
||||||
|
opsState:
|
||||||
|
type: string
|
||||||
|
state:
|
||||||
|
type: boolean
|
||||||
|
updatePriority:
|
||||||
|
anyOf:
|
||||||
|
- type: integer
|
||||||
|
- type: string
|
||||||
|
x-kubernetes-int-or-string: true
|
||||||
|
required:
|
||||||
|
- state
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
successThreshold:
|
||||||
|
description: Minimum consecutive successes for the probe to
|
||||||
|
be considered successful after having failed. Defaults to
|
||||||
|
1. Must be 1 for liveness and startup. Minimum value is 1.
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
tcpSocket:
|
||||||
|
description: TCPSocket specifies an action involving a TCP port.
|
||||||
|
properties:
|
||||||
|
host:
|
||||||
|
description: 'Optional: Host name to connect to, defaults
|
||||||
|
to the pod IP.'
|
||||||
|
type: string
|
||||||
|
port:
|
||||||
|
anyOf:
|
||||||
|
- type: integer
|
||||||
|
- type: string
|
||||||
|
description: Number or name of the port to access on the
|
||||||
|
container. Number must be in the range 1 to 65535. Name
|
||||||
|
must be an IANA_SVC_NAME.
|
||||||
|
x-kubernetes-int-or-string: true
|
||||||
|
required:
|
||||||
|
- port
|
||||||
|
type: object
|
||||||
|
terminationGracePeriodSeconds:
|
||||||
|
description: Optional duration in seconds the pod needs to terminate
|
||||||
|
gracefully upon probe failure. The grace period is the duration
|
||||||
|
in seconds after the processes running in the pod are sent
|
||||||
|
a termination signal and the time when the processes are forcibly
|
||||||
|
halted with a kill signal. Set this value longer than the
|
||||||
|
expected cleanup time for your process. If this value is nil,
|
||||||
|
the pod's terminationGracePeriodSeconds will be used. Otherwise,
|
||||||
|
this value overrides the value provided by the pod spec. Value
|
||||||
|
must be non-negative integer. The value zero indicates stop
|
||||||
|
immediately via the kill signal (no opportunity to shut down).
|
||||||
|
This is a beta field and requires enabling ProbeTerminationGracePeriod
|
||||||
|
feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds
|
||||||
|
is used if unset.
|
||||||
|
format: int64
|
||||||
|
type: integer
|
||||||
|
timeoutSeconds:
|
||||||
|
description: 'Number of seconds after which the probe times
|
||||||
|
out. Defaults to 1 second. Minimum value is 1. More info:
|
||||||
|
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
- permanent
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
updateStrategy:
|
||||||
|
properties:
|
||||||
|
rollingUpdate:
|
||||||
|
description: RollingUpdate is used to communicate parameters when
|
||||||
|
Type is RollingUpdateStatefulSetStrategyType.
|
||||||
|
properties:
|
||||||
|
inPlaceUpdateStrategy:
|
||||||
|
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 UnorderedUpdate
|
||||||
|
*kruiseV1beta1.UnorderedUpdateStrategy `json:"unorderedUpdate,omitempty"`
|
||||||
|
InPlaceUpdateStrategy contains strategies for in-place update.
|
||||||
|
properties:
|
||||||
|
gracePeriodSeconds:
|
||||||
|
description: GracePeriodSeconds is the timespan between
|
||||||
|
set Pod status to not-ready and update images in Pod
|
||||||
|
spec when in-place update a Pod.
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
type: object
|
||||||
|
maxUnavailable:
|
||||||
|
anyOf:
|
||||||
|
- type: integer
|
||||||
|
- type: string
|
||||||
|
description: 'The maximum number of pods that can be unavailable
|
||||||
|
during the update. Value can be an absolute number (ex:
|
||||||
|
5) or a percentage of desired pods (ex: 10%). Absolute number
|
||||||
|
is calculated from percentage by rounding down. Also, maxUnavailable
|
||||||
|
can just be allowed to work with Parallel podManagementPolicy.
|
||||||
|
Defaults to 1.'
|
||||||
|
x-kubernetes-int-or-string: true
|
||||||
|
minReadySeconds:
|
||||||
|
description: MinReadySeconds indicates how long will the pod
|
||||||
|
be considered ready after it's updated. MinReadySeconds
|
||||||
|
works with both OrderedReady and Parallel podManagementPolicy.
|
||||||
|
It affects the pod scale up speed when the podManagementPolicy
|
||||||
|
is set to be OrderedReady. Combined with MaxUnavailable,
|
||||||
|
it affects the pod update speed regardless of podManagementPolicy.
|
||||||
|
Default value is 0, max is 300.
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
partition:
|
||||||
|
description: 'Partition indicates the ordinal at which the
|
||||||
|
StatefulSet should be partitioned by default. But if unorderedUpdate
|
||||||
|
has been set: - Partition indicates the number of pods with
|
||||||
|
non-updated revisions when rolling update. - It means controller
|
||||||
|
will update $(replicas - partition) number of pod. Default
|
||||||
|
value is 0.'
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
paused:
|
||||||
|
description: Paused indicates that the StatefulSet is paused.
|
||||||
|
Default value is false
|
||||||
|
type: boolean
|
||||||
|
podUpdatePolicy:
|
||||||
|
description: PodUpdatePolicy indicates how pods should be
|
||||||
|
updated Default value is "ReCreate"
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
type:
|
||||||
|
description: Type indicates the type of the StatefulSetUpdateStrategy.
|
||||||
|
Default is RollingUpdate.
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- replicas
|
||||||
|
type: object
|
||||||
|
status:
|
||||||
|
description: GameServerSetStatus defines the observed state of GameServerSet
|
||||||
|
properties:
|
||||||
|
availableReplicas:
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
currentReplicas:
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
labelSelector:
|
||||||
|
description: LabelSelector is label selectors for query over pods
|
||||||
|
that should match the replica count used by HPA.
|
||||||
|
type: string
|
||||||
|
maintainingReplicas:
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
observedGeneration:
|
||||||
|
description: The generation observed by the controller.
|
||||||
|
format: int64
|
||||||
|
type: integer
|
||||||
|
readyReplicas:
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
replicas:
|
||||||
|
description: replicas from advancedStatefulSet
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
updatedReadyReplicas:
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
updatedReplicas:
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
waitToBeDeletedReplicas:
|
||||||
|
format: int32
|
||||||
|
type: integer
|
||||||
|
required:
|
||||||
|
- availableReplicas
|
||||||
|
- currentReplicas
|
||||||
|
- readyReplicas
|
||||||
|
- replicas
|
||||||
|
- updatedReplicas
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
subresources:
|
||||||
|
scale:
|
||||||
|
labelSelectorPath: .status.labelSelector
|
||||||
|
specReplicasPath: .spec.replicas
|
||||||
|
statusReplicasPath: .status.replicas
|
||||||
|
status: {}
|
||||||
|
|
@ -0,0 +1,110 @@
|
||||||
|
{{- if .Values.installation.createNamespace }}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
control-plane: {{ .Values.kruiseGame.fullname }}
|
||||||
|
name: {{ .Values.installation.namespace }}
|
||||||
|
{{- end }}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: kruise-game-controller-manager-metrics-service
|
||||||
|
namespace: {{ .Values.installation.namespace }}
|
||||||
|
labels:
|
||||||
|
control-plane: {{ .Values.kruiseGame.fullname }}
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: https
|
||||||
|
port: {{ .Values.service.port }}
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: https
|
||||||
|
selector:
|
||||||
|
control-plane: {{ .Values.kruiseGame.fullname }}
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: {{ .Values.kruiseGame.fullname }}
|
||||||
|
namespace: {{ .Values.installation.namespace }}
|
||||||
|
labels:
|
||||||
|
control-plane: {{ .Values.kruiseGame.fullname }}
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
control-plane: {{ .Values.kruiseGame.fullname }}
|
||||||
|
replicas: {{ .Values.replicaCount }}
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
kubectl.kubernetes.io/default-container: manager
|
||||||
|
labels:
|
||||||
|
control-plane: {{ .Values.kruiseGame.fullname }}
|
||||||
|
spec:
|
||||||
|
# securityContext:
|
||||||
|
# runAsNonRoot: true
|
||||||
|
# TODO(user): For common cases that do not require escalating privileges
|
||||||
|
# it is recommended to ensure that all your Pods/Containers are restrictive.
|
||||||
|
# More info: https://kubernetes.io/docs/concepts/security/pod-security-standards/#restricted
|
||||||
|
# Please uncomment the following code if your project does NOT have to work on old Kubernetes
|
||||||
|
# versions < 1.19 or on vendors versions which do NOT support this field by default (i.e. Openshift < 4.11 ).
|
||||||
|
# seccompProfile:
|
||||||
|
# type: RuntimeDefault
|
||||||
|
containers:
|
||||||
|
- command:
|
||||||
|
- /manager
|
||||||
|
args:
|
||||||
|
- --leader-elect=false
|
||||||
|
- --provider-config=/etc/kruise-game/config.toml
|
||||||
|
- --api-server-qps={{ .Values.kruiseGame.apiServerQps }}
|
||||||
|
- --api-server-qps-burst={{ .Values.kruiseGame.apiServerQpsBurst }}
|
||||||
|
- --scale-server-bind-address=:{{ .Values.scale.service.targetPort }}
|
||||||
|
{{- if .Values.prometheus.enabled }}
|
||||||
|
- --metrics-bind-address=:{{ .Values.prometheus.monitorService.port }}
|
||||||
|
{{- end }}
|
||||||
|
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
|
||||||
|
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||||
|
name: manager
|
||||||
|
env:
|
||||||
|
- name: "NETWORK_TOTAL_WAIT_TIME"
|
||||||
|
value: {{ .Values.network.totalWaitTime | quote }}
|
||||||
|
- name: "NETWORK_PROBE_INTERVAL_TIME"
|
||||||
|
value: {{ .Values.network.probeIntervalTime | quote }}
|
||||||
|
ports:
|
||||||
|
- name: https
|
||||||
|
containerPort: {{ .Values.prometheus.monitorService.port }}
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- "ALL"
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /healthz
|
||||||
|
port: {{ .Values.kruiseGame.healthBindPort }}
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 5
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /readyz
|
||||||
|
port: {{ .Values.kruiseGame.healthBindPort }}
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 5
|
||||||
|
# TODO(user): Configure the resources accordingly based on the project requirements.
|
||||||
|
# More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||||
|
resources:
|
||||||
|
{{- toYaml .Values.resources | nindent 12 }}
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /etc/kruise-game
|
||||||
|
name: provider-config
|
||||||
|
serviceAccountName: {{ .Values.kruiseGame.fullname }}
|
||||||
|
terminationGracePeriodSeconds: 10
|
||||||
|
volumes:
|
||||||
|
- configMap:
|
||||||
|
defaultMode: 420
|
||||||
|
items:
|
||||||
|
- key: config.toml
|
||||||
|
path: config.toml
|
||||||
|
name: kruise-game-manager-config
|
||||||
|
name: provider-config
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
{{- if .Values.prometheus.enabled }}
|
||||||
|
# Prometheus Monitor Service (Metrics)
|
||||||
|
apiVersion: monitoring.coreos.com/v1
|
||||||
|
kind: ServiceMonitor
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
control-plane: {{ .Values.kruiseGame.fullname }}
|
||||||
|
name: kruise-game-controller-manager-metrics-monitor
|
||||||
|
namespace: {{ .Values.installation.namespace }}
|
||||||
|
spec:
|
||||||
|
endpoints:
|
||||||
|
- path: /metrics
|
||||||
|
port: https
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
control-plane: {{ .Values.kruiseGame.fullname }}
|
||||||
|
{{- end }}
|
||||||
|
|
@ -0,0 +1,370 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: {{ .Values.kruiseGame.fullname }}
|
||||||
|
namespace: {{ .Values.installation.namespace }}
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: Role
|
||||||
|
metadata:
|
||||||
|
name: kruise-game-leader-election-role
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- configmaps
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- create
|
||||||
|
- update
|
||||||
|
- patch
|
||||||
|
- delete
|
||||||
|
- apiGroups:
|
||||||
|
- coordination.k8s.io
|
||||||
|
resources:
|
||||||
|
- leases
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- create
|
||||||
|
- update
|
||||||
|
- patch
|
||||||
|
- delete
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- events
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- patch
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
creationTimestamp: null
|
||||||
|
name: kruise-game-manager-role
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- events
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- patch
|
||||||
|
- apiGroups:
|
||||||
|
- admissionregistration.k8s.io
|
||||||
|
resources:
|
||||||
|
- mutatingwebhookconfigurations
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- admissionregistration.k8s.io
|
||||||
|
resources:
|
||||||
|
- validatingwebhookconfigurations
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- alibabacloud.com
|
||||||
|
resources:
|
||||||
|
- poddnats
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- alibabacloud.com
|
||||||
|
resources:
|
||||||
|
- poddnats/status
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- apiGroups:
|
||||||
|
- alibabacloud.com
|
||||||
|
resources:
|
||||||
|
- podeips
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- alibabacloud.com
|
||||||
|
resources:
|
||||||
|
- podeips/status
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- apiGroups:
|
||||||
|
- apiextensions.k8s.io
|
||||||
|
resources:
|
||||||
|
- customresourcedefinitions
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- apps.kruise.io
|
||||||
|
resources:
|
||||||
|
- podprobemarkers
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- apps.kruise.io
|
||||||
|
resources:
|
||||||
|
- statefulsets
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- apps.kruise.io
|
||||||
|
resources:
|
||||||
|
- statefulsets/status
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- nodes
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- nodes/status
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- persistentvolumeclaims
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- persistentvolumeclaims/status
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- persistentvolumes
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- persistentvolumes/status
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- pods
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- pods/status
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- services
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- services/status
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- apiGroups:
|
||||||
|
- game.kruise.io
|
||||||
|
resources:
|
||||||
|
- gameservers
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- game.kruise.io
|
||||||
|
resources:
|
||||||
|
- gameservers/finalizers
|
||||||
|
verbs:
|
||||||
|
- update
|
||||||
|
- apiGroups:
|
||||||
|
- game.kruise.io
|
||||||
|
resources:
|
||||||
|
- gameservers/status
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- apiGroups:
|
||||||
|
- game.kruise.io
|
||||||
|
resources:
|
||||||
|
- gameserversets
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- game.kruise.io
|
||||||
|
resources:
|
||||||
|
- gameserversets/finalizers
|
||||||
|
verbs:
|
||||||
|
- update
|
||||||
|
- apiGroups:
|
||||||
|
- game.kruise.io
|
||||||
|
resources:
|
||||||
|
- gameserversets/status
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- apiGroups:
|
||||||
|
- networking.k8s.io
|
||||||
|
resources:
|
||||||
|
- ingresses
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- networking.k8s.io
|
||||||
|
resources:
|
||||||
|
- ingresses/status
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
name: kruise-game-metrics-reader
|
||||||
|
rules:
|
||||||
|
- nonResourceURLs:
|
||||||
|
- "/metrics"
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
name: kruise-game-proxy-role
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- authentication.k8s.io
|
||||||
|
resources:
|
||||||
|
- tokenreviews
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- apiGroups:
|
||||||
|
- authorization.k8s.io
|
||||||
|
resources:
|
||||||
|
- subjectaccessreviews
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: RoleBinding
|
||||||
|
metadata:
|
||||||
|
name: kruise-game-leader-election-rolebinding
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: Role
|
||||||
|
name: kruise-game-leader-election-role
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: {{ .Values.kruiseGame.fullname }}
|
||||||
|
namespace: {{ .Values.installation.namespace }}
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
metadata:
|
||||||
|
name: kruise-game-manager-rolebinding
|
||||||
|
namespace: {{ .Values.installation.namespace }}
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: ClusterRole
|
||||||
|
name: kruise-game-manager-role
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: {{ .Values.kruiseGame.fullname }}
|
||||||
|
namespace: {{ .Values.installation.namespace }}
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
metadata:
|
||||||
|
name: kruise-game-proxy-rolebinding
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: ClusterRole
|
||||||
|
name: proxy-role
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: {{ .Values.kruiseGame.fullname }}
|
||||||
|
namespace: {{ .Values.installation.namespace }}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: kruise-game-external-scaler
|
||||||
|
namespace: {{ .Values.installation.namespace }}
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: {{ .Values.scale.service.port }}
|
||||||
|
targetPort: {{ .Values.scale.service.targetPort }}
|
||||||
|
selector:
|
||||||
|
control-plane: {{ .Values.kruiseGame.fullname }}
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: kruise-game-webhook-service
|
||||||
|
namespace: {{ .Values.installation.namespace }}
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: {{ .Values.kruiseGame.webhook.port }}
|
||||||
|
targetPort: {{ .Values.kruiseGame.webhook.targetPort }}
|
||||||
|
selector:
|
||||||
|
control-plane: {{ .Values.kruiseGame.fullname }}
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
# Default values for kruise-game.
|
||||||
|
# This is a YAML-formatted file.
|
||||||
|
# Declare variables to be passed into your templates.
|
||||||
|
|
||||||
|
# values for kruise-game installation
|
||||||
|
installation:
|
||||||
|
namespace: kruise-game-system
|
||||||
|
createNamespace: true
|
||||||
|
|
||||||
|
kruiseGame:
|
||||||
|
fullname: kruise-game-controller-manager
|
||||||
|
healthBindPort: "8082"
|
||||||
|
webhook:
|
||||||
|
port: 443
|
||||||
|
targetPort: 9876
|
||||||
|
apiServerQps: 5
|
||||||
|
apiServerQpsBurst: 10
|
||||||
|
|
||||||
|
replicaCount: 1
|
||||||
|
|
||||||
|
image:
|
||||||
|
repository: openkruise/kruise-game-manager
|
||||||
|
tag: v0.6.0
|
||||||
|
pullPolicy: Always
|
||||||
|
# Overrides the image tag whose default is the chart appVersion.
|
||||||
|
|
||||||
|
serviceAccount:
|
||||||
|
# Annotations to add to the service account
|
||||||
|
annotations: {}
|
||||||
|
|
||||||
|
service:
|
||||||
|
port: 8443
|
||||||
|
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 500m
|
||||||
|
memory: 1024Mi
|
||||||
|
requests:
|
||||||
|
cpu: 10m
|
||||||
|
memory: 64Mi
|
||||||
|
# We usually recommend not to specify default resources and to leave this as a conscious
|
||||||
|
# choice for the user. This also increases chances charts run on environments with little
|
||||||
|
# resources, such as Minikube. If you do want to specify resources, uncomment the following
|
||||||
|
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
||||||
|
# limits:
|
||||||
|
# cpu: 100m
|
||||||
|
# memory: 128Mi
|
||||||
|
# requests:
|
||||||
|
# cpu: 100m
|
||||||
|
# memory: 128Mi
|
||||||
|
|
||||||
|
prometheus:
|
||||||
|
enabled: true
|
||||||
|
monitorService:
|
||||||
|
port: 8080
|
||||||
|
scale:
|
||||||
|
service:
|
||||||
|
port: 6000
|
||||||
|
targetPort: 6000
|
||||||
|
|
||||||
|
network:
|
||||||
|
totalWaitTime: 60
|
||||||
|
probeIntervalTime: 5
|
||||||
|
|
||||||
|
cloudProvider:
|
||||||
|
installCRD: true
|
||||||
Loading…
Reference in New Issue