---
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
    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: {}
