mirror of https://github.com/openkruise/charts.git
fix kruise-game 0.4.1 (#59)
Signed-off-by: “skkkkkkk” <sk01199367@alibaba-inc.com> Co-authored-by: “skkkkkkk” <sk01199367@alibaba-inc.com>
This commit is contained in:
parent
f93fce17e5
commit
657a896b4b
|
@ -1 +1 @@
|
|||
../versions/kruise-game/0.4
|
||||
../versions/kruise-game/0.4.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.4.1
|
||||
appVersion: 0.4.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,43 @@
|
|||
# Kruise Game v0.4.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` |
|
||||
| `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.4.1` |
|
||||
| `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,842 @@
|
|||
---
|
||||
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:
|
||||
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,726 @@
|
|||
---
|
||||
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
|
||||
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,108 @@
|
|||
{{- 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
|
||||
{{- if .Values.prometheus.enabled }}
|
||||
- --metrics-bind-address=:{{ .Values.prometheus.monitorService.port }}
|
||||
- --scale-server-bind-address=:{{ .Values.scale.service.targetPort }}
|
||||
{{- 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,13 @@
|
|||
{{- if .Values.prometheus.enabled }}
|
||||
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 }}
|
||||
{{- end }}
|
|
@ -0,0 +1,328 @@
|
|||
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:
|
||||
- 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:
|
||||
- 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,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,64 @@
|
|||
# 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
|
||||
|
||||
replicaCount: 1
|
||||
|
||||
image:
|
||||
repository: openkruise/kruise-game-manager
|
||||
tag: v0.4.1
|
||||
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