apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: ergonetworks.irc.josie.cloud
spec:
  group: irc.josie.cloud
  names:
    categories: []
    kind: ErgoNetwork
    plural: ergonetworks
    shortNames:
    - ergo
    singular: ergonetwork
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.hostname
      name: Hostname
      type: string
    - jsonPath: .spec.networkName
      name: Network
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].status
      name: Ready
      type: string
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: Auto-generated derived type for ErgoNetworkSpec via `CustomResource`
        properties:
          spec:
            properties:
              cloaking:
                nullable: true
                properties:
                  cidrLenIpv4:
                    format: uint32
                    minimum: 0.0
                    nullable: true
                    type: integer
                  cidrLenIpv6:
                    format: uint32
                    minimum: 0.0
                    nullable: true
                    type: integer
                  netname:
                    type: string
                  numBits:
                    format: uint32
                    minimum: 0.0
                    nullable: true
                    type: integer
                required:
                - netname
                type: object
              hostname:
                type: string
              limits:
                nullable: true
                properties:
                  awaylen:
                    format: uint32
                    minimum: 0.0
                    nullable: true
                    type: integer
                  chanListModes:
                    format: uint32
                    minimum: 0.0
                    nullable: true
                    type: integer
                  channellen:
                    format: uint32
                    minimum: 0.0
                    nullable: true
                    type: integer
                  identlen:
                    format: uint32
                    minimum: 0.0
                    nullable: true
                    type: integer
                  kicklen:
                    format: uint32
                    minimum: 0.0
                    nullable: true
                    type: integer
                  monitorEntries:
                    format: uint32
                    minimum: 0.0
                    nullable: true
                    type: integer
                  multiline:
                    nullable: true
                    properties:
                      maxBytes:
                        format: uint32
                        minimum: 0.0
                        nullable: true
                        type: integer
                      maxLines:
                        format: uint32
                        minimum: 0.0
                        nullable: true
                        type: integer
                    type: object
                  nicklen:
                    format: uint32
                    minimum: 0.0
                    nullable: true
                    type: integer
                  realnamelen:
                    format: uint32
                    minimum: 0.0
                    nullable: true
                    type: integer
                  registrationMessages:
                    format: uint32
                    minimum: 0.0
                    nullable: true
                    type: integer
                  topiclen:
                    format: uint32
                    minimum: 0.0
                    nullable: true
                    type: integer
                  whowasEntries:
                    format: uint32
                    minimum: 0.0
                    nullable: true
                    type: integer
                type: object
              listeners:
                default: []
                items:
                  properties:
                    address:
                      type: string
                    tls:
                      default: false
                      type: boolean
                  required:
                  - address
                  type: object
                type: array
              maxSendq:
                nullable: true
                type: string
              networkName:
                nullable: true
                type: string
              oauth2:
                nullable: true
                properties:
                  autocreate:
                    default: true
                    type: boolean
                  clientId:
                    nullable: true
                    type: string
                  introspection_url:
                    type: string
                  secret_ref:
                    type: string
                required:
                - introspection_url
                - secret_ref
                type: object
              operCredentials:
                nullable: true
                properties:
                  className:
                    nullable: true
                    type: string
                  secretName:
                    type: string
                required:
                - secretName
                type: object
              resources:
                nullable: true
                properties:
                  limits:
                    nullable: true
                    properties:
                      cpu:
                        nullable: true
                        type: string
                      memory:
                        nullable: true
                        type: string
                    type: object
                  requests:
                    nullable: true
                    properties:
                      cpu:
                        nullable: true
                        type: string
                      memory:
                        nullable: true
                        type: string
                    type: object
                type: object
              route:
                nullable: true
                properties:
                  host:
                    type: string
                required:
                - host
                type: object
              storage:
                nullable: true
                properties:
                  size:
                    default: 1Gi
                    type: string
                  storageClassName:
                    nullable: true
                    type: string
                type: object
              tls:
                nullable: true
                properties:
                  dns_names:
                    items:
                      type: string
                    type: array
                  issuer_ref:
                    properties:
                      kind:
                        type: string
                      name:
                        type: string
                    required:
                    - kind
                    - name
                    type: object
                required:
                - dns_names
                - issuer_ref
                type: object
              vhosts:
                nullable: true
                properties:
                  enabled:
                    nullable: true
                    type: boolean
                  maxLength:
                    format: uint32
                    minimum: 0.0
                    nullable: true
                    type: integer
                  validRegexp:
                    nullable: true
                    type: string
                type: object
            required:
            - hostname
            type: object
          status:
            nullable: true
            properties:
              conditions:
                default: []
                items:
                  properties:
                    last_transition_time:
                      type: string
                    message:
                      type: string
                    reason:
                      type: string
                    status:
                      type: string
                    type:
                      type: string
                  required:
                  - last_transition_time
                  - message
                  - reason
                  - status
                  - type
                  type: object
                type: array
              observed_generation:
                format: int64
                nullable: true
                type: integer
            type: object
        required:
        - spec
        title: ErgoNetwork
        type: object
    served: true
    storage: true
    subresources:
      status: {}
