---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.17.2
  name: frpservers.eks.infra.pingcap.com
spec:
  group: eks.infra.pingcap.com
  names:
    kind: Frpserver
    listKind: FrpserverList
    plural: frpservers
    shortNames:
    - frps
    singular: frpserver
  scope: Cluster
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: READY
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: AGE
      type: date
    - jsonPath: .metadata.annotations.infra\.pingcap\.com/frps-svc-name
      name: FRPS-SVC-NAME
      type: string
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: Frpserver is the Schema for the frpservers 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: FrpserverSpec defines the desired state of Frpserver
            properties:
              bindPort:
                default: 8080
                description: BindPort is the binding port of frp server exposed to
                  frp clients.
                type: integer
              externalTcpPorts:
                description: |-
                  ExternalTcpPorts is the list of tcp ports exposed to components external to the cluster.
                  Ports listed here will be exposed as LoadBalancer type service.
                items:
                  type: integer
                type: array
              frpsImage:
                description: FrpsImage specifies the image to use for the frps server.
                type: string
              tcpPorts:
                description: |-
                  TcpPorts is the list of tcp ports exposed to components in cluster.
                  The traffic towards these ports will be forwarded to remote frp clients.
                items:
                  type: integer
                minItems: 1
                type: array
            required:
            - frpsImage
            - tcpPorts
            type: object
          status:
            description: FrpserverStatus defines the observed state of Frpserver
            properties:
              conditions:
                description: Conditions defines current status of the FRP server.
                items:
                  description: Condition defines an observation of a Cluster API resource
                    operational state.
                  properties:
                    lastTransitionTime:
                      description: |-
                        Last time the condition transitioned from one status to another.
                        This should be when the underlying condition changed. If that is not known, then using the time when
                        the API field changed is acceptable.
                      format: date-time
                      type: string
                    message:
                      description: |-
                        A human readable message indicating details about the transition.
                        This field may be empty.
                      type: string
                    reason:
                      description: |-
                        The reason for the condition's last transition in CamelCase.
                        The specific API may choose whether or not this field is considered a guaranteed API.
                        This field may not be empty.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: |-
                        Type of condition in CamelCase or in foo.example.com/CamelCase.
                        Many .condition.type values are consistent across resources like Available, but because arbitrary conditions
                        can be useful (see .node.status.conditions), the ability to deconflict is important.
                      type: string
                  required:
                  - lastTransitionTime
                  - status
                  - type
                  type: object
                type: array
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
