apiVersion: v1
kind: ConfigMap
metadata:
  name: eap-operator

data:
  customResourceDefinitions: |-
    - apiVersion: apiextensions.k8s.io/v1
      kind: CustomResourceDefinition
      metadata:
        annotations:
          controller-gen.kubebuilder.io/version: v0.9.0
        creationTimestamp: null
        name: wildflyservers.wildfly.org
      spec:
        group: wildfly.org
        names:
          kind: WildFlyServer
          listKind: WildFlyServerList
          plural: wildflyservers
          shortNames:
          - wfly
          singular: wildflyserver
        scope: Namespaced
        versions:
        - additionalPrinterColumns:
          - jsonPath: .spec.replicas
            name: Replicas
            type: integer
          - jsonPath: .metadata.creationTimestamp
            name: Age
            type: date
          name: v1alpha1
          schema:
            openAPIV3Schema:
              description: WildFlyServer is the Schema for the wildflyservers 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: WildFlyServerSpec defines the desired state of WildFlyServer
                  properties:
                    applicationImage:
                      description: ApplicationImage is the name of the application image
                        to be deployed
                      type: string
                    bootableJar:
                      description: BootableJar specifies whether the application image is
                        using S2I Builder/Runtime images or Bootable Jar. If omitted, it
                        defaults to false (application image is expected to use S2I Builder/Runtime
                        images)
                      type: boolean
                    configMaps:
                      description: ConfigMaps is a list of ConfigMaps in the same namespace
                        as the WildFlyServer object, which shall be mounted into the WildFlyServer
                        Pods. The ConfigMaps are mounted into /etc/configmaps/<configmap-name>.
                      items:
                        type: string
                      minItems: 1
                      type: array
                      x-kubernetes-list-type: set
                    disableHTTPRoute:
                      description: DisableHTTPRoute disables the creation a route to the
                        HTTP port of the application service (false if omitted)
                      type: boolean
                    env:
                      description: Env contains environment variables for the containers
                        running the WildFlyServer application
                      items:
                        description: EnvVar represents an environment variable present in
                          a Container.
                        properties:
                          name:
                            description: Name of the environment variable. Must be a C_IDENTIFIER.
                            type: string
                          value:
                            description: 'Variable references $(VAR_NAME) are expanded using
                              the previous defined environment variables in the container
                              and any service environment variables. If a variable cannot
                              be resolved, the reference in the input string will be unchanged.
                              The $(VAR_NAME) syntax can be escaped with a double $$, ie:
                              $$(VAR_NAME). Escaped references will never be expanded, regardless
                              of whether the variable exists or not. Defaults to "".'
                            type: string
                          valueFrom:
                            description: Source for the environment variable's value. Cannot
                              be used if value is not empty.
                            properties:
                              configMapKeyRef:
                                description: Selects a key of a ConfigMap.
                                properties:
                                  key:
                                    description: The key to select.
                                    type: string
                                  name:
                                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                      TODO: Add other useful fields. apiVersion, kind, uid?'
                                    type: string
                                  optional:
                                    description: Specify whether the ConfigMap or its key
                                      must be defined
                                    type: boolean
                                required:
                                - key
                                type: object
                              fieldRef:
                                description: 'Selects a field of the pod: supports metadata.name,
                                  metadata.namespace, `metadata.labels[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,
                                  spec.nodeName, spec.serviceAccountName, status.hostIP,
                                  status.podIP, status.podIPs.'
                                properties:
                                  apiVersion:
                                    description: Version of the schema the FieldPath is
                                      written in terms of, defaults to "v1".
                                    type: string
                                  fieldPath:
                                    description: Path of the field to select in the specified
                                      API version.
                                    type: string
                                required:
                                - fieldPath
                                type: object
                              resourceFieldRef:
                                description: 'Selects a resource of the container: only
                                  resources limits and requests (limits.cpu, limits.memory,
                                  limits.ephemeral-storage, requests.cpu, requests.memory
                                  and requests.ephemeral-storage) are currently supported.'
                                properties:
                                  containerName:
                                    description: 'Container name: required for volumes,
                                      optional for env vars'
                                    type: string
                                  divisor:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: Specifies the output format of the exposed
                                      resources, defaults to "1"
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  resource:
                                    description: 'Required: resource to select'
                                    type: string
                                required:
                                - resource
                                type: object
                              secretKeyRef:
                                description: Selects a key of a secret in the pod's namespace
                                properties:
                                  key:
                                    description: The key of the secret to select from.  Must
                                      be a valid secret key.
                                    type: string
                                  name:
                                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                      TODO: Add other useful fields. apiVersion, kind, uid?'
                                    type: string
                                  optional:
                                    description: Specify whether the Secret or its key must
                                      be defined
                                    type: boolean
                                required:
                                - key
                                type: object
                            type: object
                        required:
                        - name
                        type: object
                      minItems: 1
                      type: array
                      x-kubernetes-list-type: atomic
                    envFrom:
                      description: EnvFrom contains environment variables from a source
                        such as a ConfigMap or a Secret
                      items:
                        description: EnvFromSource represents the source of a set of ConfigMaps
                        properties:
                          configMapRef:
                            description: The ConfigMap to select from
                            properties:
                              name:
                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                  TODO: Add other useful fields. apiVersion, kind, uid?'
                                type: string
                              optional:
                                description: Specify whether the ConfigMap must be defined
                                type: boolean
                            type: object
                          prefix:
                            description: An optional identifier to prepend to each key in
                              the ConfigMap. Must be a C_IDENTIFIER.
                            type: string
                          secretRef:
                            description: The Secret to select from
                            properties:
                              name:
                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                  TODO: Add other useful fields. apiVersion, kind, uid?'
                                type: string
                              optional:
                                description: Specify whether the Secret must be defined
                                type: boolean
                            type: object
                        type: object
                      minItems: 1
                      type: array
                      x-kubernetes-list-type: atomic
                    replicas:
                      description: Replicas is the desired number of replicas for the application
                      format: int32
                      minimum: 0
                      type: integer
                    resources:
                      description: 'ResourcesSpec defines the resources used by the WildFlyServer,
                        ie CPU and memory, use limits and requests. More info: https://pkg.go.dev/k8s.io/api@v0.18.14/core/v1#ResourceRequirements'
                      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-compute-resources-container/'
                          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-compute-resources-container/'
                          type: object
                      type: object
                    secrets:
                      description: Secrets is a list of Secrets in the same namespace as
                        the WildFlyServer object, which shall be mounted into the WildFlyServer
                        Pods. The Secrets are mounted into /etc/secrets/<secret-name>.
                      items:
                        type: string
                      minItems: 1
                      type: array
                      x-kubernetes-list-type: set
                    securityContext:
                      description: SecurityContext defines the security capabilities required
                        to run the application.
                      properties:
                        allowPrivilegeEscalation:
                          description: 'AllowPrivilegeEscalation controls whether a process
                            can gain more privileges than its parent process. This bool
                            directly controls if the no_new_privs flag will be set on the
                            container process. AllowPrivilegeEscalation is true always when
                            the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN'
                          type: boolean
                        capabilities:
                          description: The capabilities to add/drop when running containers.
                            Defaults to the default set of capabilities granted by the container
                            runtime.
                          properties:
                            add:
                              description: Added capabilities
                              items:
                                description: Capability represent POSIX capabilities type
                                type: string
                              type: array
                            drop:
                              description: Removed capabilities
                              items:
                                description: Capability represent POSIX capabilities type
                                type: string
                              type: array
                          type: object
                        privileged:
                          description: Run container in privileged mode. Processes in privileged
                            containers are essentially equivalent to root on the host. Defaults
                            to false.
                          type: boolean
                        procMount:
                          description: procMount denotes the type of proc mount to use for
                            the containers. The default is DefaultProcMount which uses the
                            container runtime defaults for readonly paths and masked paths.
                            This requires the ProcMountType feature flag to be enabled.
                          type: string
                        readOnlyRootFilesystem:
                          description: Whether this container has a read-only root filesystem.
                            Default is false.
                          type: boolean
                        runAsGroup:
                          description: The GID to run the entrypoint of the container process.
                            Uses runtime default if unset. May also be set in PodSecurityContext.  If
                            set in both SecurityContext and PodSecurityContext, the value
                            specified in SecurityContext takes precedence.
                          format: int64
                          type: integer
                        runAsNonRoot:
                          description: Indicates that the container must run as a non-root
                            user. If true, the Kubelet will validate the image at runtime
                            to ensure that it does not run as UID 0 (root) and fail to start
                            the container if it does. If unset or false, no such validation
                            will be performed. May also be set in PodSecurityContext.  If
                            set in both SecurityContext and PodSecurityContext, the value
                            specified in SecurityContext takes precedence.
                          type: boolean
                        runAsUser:
                          description: The UID to run the entrypoint of the container process.
                            Defaults to user specified in image metadata if unspecified.
                            May also be set in PodSecurityContext.  If set in both SecurityContext
                            and PodSecurityContext, the value specified in SecurityContext
                            takes precedence.
                          format: int64
                          type: integer
                        seLinuxOptions:
                          description: The SELinux context to be applied to the container.
                            If unspecified, the container runtime will allocate a random
                            SELinux context for each container.  May also be set in PodSecurityContext.  If
                            set in both SecurityContext and PodSecurityContext, the value
                            specified in SecurityContext takes precedence.
                          properties:
                            level:
                              description: Level is SELinux level label that applies to
                                the container.
                              type: string
                            role:
                              description: Role is a SELinux role label that applies to
                                the container.
                              type: string
                            type:
                              description: Type is a SELinux type label that applies to
                                the container.
                              type: string
                            user:
                              description: User is a SELinux user label that applies to
                                the container.
                              type: string
                          type: object
                        seccompProfile:
                          description: The seccomp options to use by this container. If
                            seccomp options are provided at both the pod & container level,
                            the container options override the pod options.
                          properties:
                            localhostProfile:
                              description: localhostProfile indicates a profile defined
                                in a file on the node should be used. The profile must be
                                preconfigured on the node to work. Must be a descending
                                path, relative to the kubelet's configured seccomp profile
                                location. Must only be set if type is "Localhost".
                              type: string
                            type:
                              description: "type indicates which kind of seccomp profile
                                will be applied. Valid options are: \n Localhost - a profile
                                defined in a file on the node should be used. RuntimeDefault
                                - the container runtime default profile should be used.
                                Unconfined - no profile should be applied."
                              type: string
                          required:
                          - type
                          type: object
                        windowsOptions:
                          description: The Windows specific settings applied to all containers.
                            If unspecified, the options from the PodSecurityContext will
                            be used. If set in both SecurityContext and PodSecurityContext,
                            the value specified in SecurityContext takes precedence.
                          properties:
                            gmsaCredentialSpec:
                              description: GMSACredentialSpec is where the GMSA admission
                                webhook (https://github.com/kubernetes-sigs/windows-gmsa)
                                inlines the contents of the GMSA credential spec named by
                                the GMSACredentialSpecName field.
                              type: string
                            gmsaCredentialSpecName:
                              description: GMSACredentialSpecName is the name of the GMSA
                                credential spec to use.
                              type: string
                            runAsUserName:
                              description: The UserName in Windows to run the entrypoint
                                of the container process. Defaults to the user specified
                                in image metadata if unspecified. May also be set in PodSecurityContext.
                                If set in both SecurityContext and PodSecurityContext, the
                                value specified in SecurityContext takes precedence.
                              type: string
                          type: object
                      type: object
                    serviceAccountName:
                      type: string
                    sessionAffinity:
                      description: SessionAffinity defines if connections from the same
                        client ip are passed to the same WildFlyServer instance/pod each
                        time (false if omitted)
                      type: boolean
                    standaloneConfigMap:
                      description: StandaloneConfigMapSpec defines the desired configMap
                        configuration to obtain the standalone configuration for WildFlyServer
                      properties:
                        key:
                          description: Key of the config map whose value is the standalone
                            XML configuration file ("standalone.xml" if omitted)
                          type: string
                        name:
                          type: string
                      required:
                      - name
                      type: object
                    storage:
                      description: StorageSpec defines specific storage required for the
                        server own data directory. If omitted, an EmptyDir is used (that
                        will not persist data across pod restart).
                      properties:
                        emptyDir:
                          description: Represents an empty directory for a pod. Empty directory
                            volumes support ownership management and SELinux relabeling.
                          properties:
                            medium:
                              description: 'What type of storage medium should back this
                                directory. The default is "" which means to use the node''s
                                default medium. Must be an empty string (default) or Memory.
                                More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                              type: string
                            sizeLimit:
                              anyOf:
                              - type: integer
                              - type: string
                              description: 'Total amount of local storage required for this
                                EmptyDir volume. The size limit is also applicable for memory
                                medium. The maximum usage on memory medium EmptyDir would
                                be the minimum value between the SizeLimit specified here
                                and the sum of memory limits of all containers in a pod.
                                The default is nil which means that the limit is undefined.
                                More info: http://kubernetes.io/docs/user-guide/volumes#emptydir'
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                          type: object
                        volumeClaimTemplate:
                          description: VolumeClaimTemplate defines the template to store
                            WildFlyServer standalone data directory. The name of the template
                            is derived from the WildFlyServer name. The corresponding volume
                            will be mounted in ReadWriteOnce access mode. This template
                            should be used to specify specific Resources requirements in
                            the template spec.
                          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'
                              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: 'This field can be used to specify either:
                                    * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot
                                    - Beta) * An existing PVC (PersistentVolumeClaim) *
                                    An existing custom resource/object that implements data
                                    population (Alpha) In order to use VolumeSnapshot object
                                    types, the appropriate feature gate must be enabled
                                    (VolumeSnapshotDataSource or AnyVolumeDataSource) 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 specified data source is not supported, the volume
                                    will not be created and the failure will be reported
                                    as an event. In the future, we plan to support more
                                    data source types and the behavior of the provisioner
                                    may change.'
                                  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. 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-compute-resources-container/'
                                      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-compute-resources-container/'
                                      type: object
                                  type: object
                                selector:
                                  description: 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: '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
                                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: Represents the actual resources of the underlying
                                    volume.
                                  type: object
                                conditions:
                                  description: 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: 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, 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
                              type: object
                          type: object
                      type: object
                  required:
                  - applicationImage
                  - replicas
                  type: object
                status:
                  description: WildFlyServerStatus defines the observed state of WildFlyServer
                  properties:
                    hosts:
                      items:
                        type: string
                      type: array
                      x-kubernetes-list-type: set
                    pods:
                      items:
                        description: PodStatus defines the observed state of pods running
                          the WildFlyServer application
                        properties:
                          name:
                            type: string
                          podIP:
                            type: string
                          state:
                            description: Represent the state of the Pod, it is used especially
                              during scale down.
                            enum:
                            - ACTIVE
                            - SCALING_DOWN_RECOVERY_INVESTIGATION
                            - SCALING_DOWN_RECOVERY_DIRTY
                            - SCALING_DOWN_CLEAN
                            type: string
                        required:
                        - name
                        - podIP
                        - state
                        type: object
                      type: array
                      x-kubernetes-list-type: atomic
                    replicas:
                      description: Replicas is the actual number of replicas for the application
                      format: int32
                      type: integer
                    scalingdownPods:
                      description: "Represents the number of pods which are in scaledown
                        process what particular pod is scaling down can be verified by PodStatus
                        \n Read-only."
                      format: int32
                      type: integer
                    selector:
                      description: selector for pods, used by HorizontalPodAutoscaler
                      type: string
                  required:
                  - replicas
                  - scalingdownPods
                  type: object
              type: object
          served: true
          storage: true
          subresources:
            scale:
              labelSelectorPath: .status.selector
              specReplicasPath: .spec.replicas
              statusReplicasPath: .status.replicas
            status: {}
  clusterServiceVersions: |-
    - apiVersion: operators.coreos.com/v1alpha1
      kind: ClusterServiceVersion
      metadata:
        name: eap-operator.v2.4.0
        namespace: placeholder
        annotations:
          capabilities: Seamless Upgrades
          categories: "Application Runtime"
          repository: https://github.com/wildfly/wildfly-operator
          description: Operator that creates and manages Java applications running on JBoss EAP.
          containerImage: registry-proxy.engineering.redhat.com/rh-osbs/jboss-eap-7-eap73-rhel8-operator:2.4-17
          support: Red Hat
          certified: "false"
          createdAt: "2021-07-23T08:00:00Z"
          operators.openshift.io/valid-subscription: '["Red Hat JBoss Enterprise Application Platform", "Red Hat Runtimes", "Red Hat Integration", "Red Hat Process Automation"]'
        labels:
          operatorframework.io/arch.amd64: supported
          operatorframework.io/arch.s390x: supported
          operatorframework.io/arch.ppc64le: supported
          operatorframework.io/arch.arm64: supported

      spec:
        displayName: JBoss EAP
        description: |
          ### Optimized for cloud and containers
          JBoss EAP 7 is built to provide simplified deployment and full Java™ EE performance for applications in any environment. Whether on-premise or in virtual, private, public, and hybrid clouds, JBoss EAP features a modular architecture that starts services only as they are required. The extreme low memory footprint and fast startup times mean that JBoss EAP is ideal for environments where efficient resource utilization is a priority, such as Red Hat OpenShift.

          ### Lightweight, flexible architecture
          JBoss EAP 7 is built for high performance and maximum flexibility in modern application environments. Its extremely modular architecture and services-driven set of components reduces scale-out times and provides flexibility for applications deployed in different environments. Well-suited for microservices and traditional applications, JBoss EAP offers the flexibility to build the applications your business requires—from traditional to new web-scale, microservices applications.

          ### More productive developers
          JBoss EAP allows developers to be more productive and responsive to line-of-business demands. Support for Java EE and a wide range of Java EE web-based frameworks, such as Spring, Spring Web Flow, Spring WS, Spring Security, Arquillian, AngularJS, jQuery, jQuery Mobile, and Google Web Toolkit (GWT) comes standard. Use JBoss EAP with common DevOps tools to maximize productivity, decrease quality issues, and get new apps out to market faster.

          ### Flexible management, configuration, and administration
          JBoss EAP 7 maximizes administrative productivity by making it easy to maintain and update your deployments. JBoss EAP 7 features an updated management console user interface with intuitive navigation and support for large-scale domain configurations. The updated command-line interface provides a quick, unified view into configurations and subsystems, while offering the ability to manage servers offline. This can be used with popular configuration management tools, such as Ansible Tower by Red Hat or Puppet—making editing XML configuration files unnecessary.

          ### Flexible, future-friendly subscription model
          A subscription to JBoss EAP provides you both technical and business flexibility. Eliminate upfront, binding licensing decisions that lock you into specific deployment environments, hardware machines, infrastructure, or levels of enterprise support. With a Red Hat subscription, you’re free to build your application and then decide where and how you’ll deploy.

        keywords: ['eap', 'java', 'open source', 'application runtime']
        version: 2.4.0
        replaces: eap-operator.v2.3.10
        maturity: alpha
        minKubeVersion: 1.19.0
        provider:
          name: Red Hat
        labels:
          operated-by: eap-operator
        selector:
          matchLabels:
            operated-by: eap-operator
        links:
        - name: EAP Homepage
          url: https://www.redhat.com/en/technologies/jboss-middleware/application-platform
        - name: Documentation
          url: https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/
        - name: Blog
          url: https://developers.redhat.com/blog/
        - name: Quickstart
          url: https://github.com/jboss-developer/jboss-eap-quickstarts
        - name: Red Hat Customer Portal
          url: https://access.redhat.com/support
        maintainers:
        - email: customerservice@redhat.com
          name: Red Hat, Inc.
        icon:
        - base64data: PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2Q3MWUwMDt9LmNscy0ye2ZpbGw6I2MyMWEwMDt9LmNscy0ze2ZpbGw6I2NkY2RjZDt9LmNscy00e2ZpbGw6I2I3YjdiNzt9LmNscy01e2ZpbGw6I2VhZWFlYTt9LmNscy02e2ZpbGw6I2ZmZjt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPkxvZ288L3RpdGxlPjxnIGlkPSJMYXllcl8xIiBkYXRhLW5hbWU9IkxheWVyIDEiPjxjaXJjbGUgY2xhc3M9ImNscy0xIiBjeD0iNTAiIGN5PSI1MCIgcj0iNTAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMC43MSA1MCkgcm90YXRlKC00NSkiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik04NS4zNiwxNC42NEE1MCw1MCwwLDAsMSwxNC42NCw4NS4zNloiLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik02MC4xNyw0My4xM2EzLjQxLDMuNDEsMCwwLDEsLjA3LjY4QTMuNCwzLjQsMCwwLDAsNjAuMTcsNDMuMTNaIi8+PHBhdGggY2xhc3M9ImNscy0zIiBkPSJNNTkuMjEsNDEuMzhBMy40OCwzLjQ4LDAsMCwxLDYwLDQyLjQ3LDMuNDgsMy40OCwwLDAsMCw1OS4yMSw0MS4zOFoiLz48cG9seWdvbiBjbGFzcz0iY2xzLTMiIHBvaW50cz0iNTkuMTMgNDEuMjkgNTkuMTMgNDEuMjkgNTkuMDQgNDEuMjEgNTkuMTMgNDEuMjkiLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik01OS4xMiw0Ni4zNCwzMy41NCw2OS43M2wyNS41OC0yMy40YTMuNDUsMy40NSwwLDAsMCwuOTEtMS40QTMuNDUsMy40NSwwLDAsMSw1OS4xMiw0Ni4zNFoiLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik0yOC41NCw3MS40OCw1OC44Nyw0MSw1OC43OSw0MWEzLjcsMy43LDAsMCwwLTUuMjEuMkwyOSw2OC4yNmMtMSwxLTEuMTksMi41Mi0uMzUsMy4zMWExLjc1LDEuNzUsMCwwLDAsLjc0LjQxLDEuNzUsMS43NSwwLDAsMS0uNzQtLjQxWiIvPjxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTI4LjYyLDcxLjU3QTIuNTIsMi41MiwwLDAsMCwzMiw3MS4xMUw1OS4xMiw0Ni4zNGEzLjQyLDMuNDIsMCwwLDAsMC01TDU4Ljg3LDQxLDI4LjU0LDcxLjQ4WiIvPjxwYXRoIGNsYXNzPSJjbHMtNSIgZD0iTTM0LjQ2LDM0LjcxbC0xMC42LTguNDNhMi42LDIuNiwwLDAsMC00LjIsMi4zM2wuMTksMS42NGExOC4yMSwxOC4yMSwwLDAsMCwxMS42OSwxNWwxMy42OSw1LjE0LDIuMzEtMi41NUwzNi4xNiwzNi43M0ExNi40NSwxNi40NSwwLDAsMSwzNC40NiwzNC43MVoiLz48cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik03NC42OSw3NS40MSw2NS44OCw2NS4xMmExNi40NSwxNi40NSwwLDAsMS0yLjA4LTEuNjNMNTIuMzMsNTIuNTVsLTIuNTIsMi4zLDUuNjcsMTMuNThBMTguMjEsMTguMjEsMCwwLDAsNzAuODcsNzkuNTZsMS42NC4xM0EyLjYsMi42LDAsMCwwLDc0LjY5LDc1LjQxWiIvPjxwYXRoIGNsYXNzPSJjbHMtNSIgZD0iTTU4LjY0LDQ2Ljc4YTMsMywwLDAsMCwzLjg1LTIuMTcsMy4yOCwzLjI4LDAsMCwwLTMtNC4xNWgwbC0uNTkuNTloMGwuMjYuMjVhMy40MiwzLjQyLDAsMCwxLDAsNVoiLz48cGF0aCBjbGFzcz0iY2xzLTYiIGQ9Ik0zMi43NywxNy4xOGwtLjUsMS41M2ExNy42LDE3LjYsMCwwLDAsMy44OSwxOEw0Ny41Myw0Ny44MmwzLjYxLTQtMTMuNy0yN0EyLjU0LDIuNTQsMCwwLDAsMzIuNzcsMTcuMThaIi8+PHBhdGggY2xhc3M9ImNscy02IiBkPSJNODMuNjUsNjEuNDgsNTYuMzUsNDguODdsLTQsMy42OEw2My44LDYzLjQ5YTE3LjYsMTcuNiwwLDAsMCwxOC4xNSwzLjIzbDEuNTEtLjU1QTIuNTQsMi41NCwwLDAsMCw4My42NSw2MS40OFoiLz48cGF0aCBjbGFzcz0iY2xzLTYiIGQ9Ik01My41OCw0MS4xN2EzLjcsMy43LDAsMCwxLDUuMjEtLjJsLjA4LjA4aDBsLjU5LS41OWgwYTMuNDEsMy40MSwwLDAsMC00LjI5LTIuOTNjLTIsLjM4LTMuMDcsMi42OC0yLDQuMTFaIi8+PC9nPjwvc3ZnPg==
          mediatype: image/svg+xml
        customresourcedefinitions:
          owned:
          - name: wildflyservers.wildfly.org
            version: v1alpha1
            kind: WildFlyServer
            displayName: WildFlyServer
            description: An application running on EAP application runtime.
            resources:
            - kind: Service
              name: ''
              version: v1
            - kind: Pod
              name: ''
              version: v1
            - kind: StatefulSet
              name: ''
              version: v1
            - kind: Route
              name: ''
              version: v1
            specDescriptors:
            - description: Desired number of replicas for the application
              displayName: Replicas
              path: replicas
              x-descriptors:
              - urn:alm:descriptor:com.tectonic.ui:podCount
            - description: Name of the application image to be deployed.
              displayName: Application Image
              path: applicationImage
            - description: Specifies whether the application image is using S2I Builder/Runtime images or Bootable Jar
              displayName: Bootable Jar
              path: bootableJar
              x-descriptors:
              - urn:alm:descriptor:com.tectonic.ui:booleanSwitch
            statusDescriptors:
            - description: The host to access the application outside the Container platform
              displayName: Host
              path: hosts[0]
            - description: The actual number of replicas for the application
              displayName: Replicas
              path: replicas
              x-descriptors:
              - urn:alm:descriptor:com.tectonic.ui:podCount
        install:
          spec:
            deployments:
            - name: eap-operator
              spec:
                replicas: 1
                selector:
                  matchLabels:
                    name: eap-operator
                strategy: {}
                template:
                  metadata:
                    labels:
                      name: eap-operator
                  spec:
                    securityContext:
                      runAsNonRoot: true
                      seccompProfile:
                        type: RuntimeDefault
                    containers:
                      securityContext:
                        allowPrivilegeEscalation: false
                        runAsNonRoot: true
                        capabilities:
                          drop:
                          - ALL
                    - command:
                      - wildfly-operator
                      env:
                      - name: WATCH_NAMESPACE
                        valueFrom:
                          fieldRef:
                            fieldPath: metadata.annotations['olm.targetNamespaces']
                      - name: POD_NAME
                        valueFrom:
                          fieldRef:
                            fieldPath: metadata.name
                      - name: OPERATOR_NAME
                        value: eap-operator
                      image: registry-proxy.engineering.redhat.com/rh-osbs/jboss-eap-7-eap73-rhel8-operator:2.4-17
                      imagePullPolicy: Always
                      name: eap-operator
                      resources: {}
                    serviceAccountName: eap-operator
            permissions:
            - rules:
              - apiGroups:
                - ""
                resources:
                - pods
                - pods/exec
                - pods/log
                - services
                - endpoints
                - persistentvolumeclaims
                - events
                - configmaps
                - secrets
                verbs:
                - create
                - delete
                - get
                - list
                - patch
                - update
                - watch
              - apiGroups:
                - ""
                resources:
                - namespaces
                verbs:
                - get
              - apiGroups:
                - apps
                resources:
                - deployments
                - daemonsets
                - replicasets
                - statefulsets
                - deployments/finalizers
                verbs:
                - create
                - delete
                - get
                - list
                - patch
                - update
                - watch
              - apiGroups:
                - monitoring.coreos.com
                resources:
                - servicemonitors
                verbs:
                - create
                - delete
                - get
                - list
                - watch
              - apiGroups:
                - wildfly.org
                resources:
                - '*'
                verbs:
                - create
                - delete
                - get
                - list
                - patch
                - update
                - watch
              - apiGroups:
                - route.openshift.io
                resources:
                - routes
                verbs:
                - create
                - delete
                - get
                - list
                - patch
                - update
                - watch
              serviceAccountName: eap-operator
          strategy: deployment
        installModes:
        - supported: true
          type: OwnNamespace
        - supported: true
          type: SingleNamespace
        - supported: false
          type: MultiNamespace
        - supported: true
          type: AllNamespaces
        relatedImages:
        - name: eap73-rhel8-operator-9143beee2de2debbf308dc18586b9b8669d52739110b4ef074b7c2d2d7fef18d-annotation
          image: registry-proxy.engineering.redhat.com/rh-osbs/jboss-eap-7-eap73-rhel8-operator:2.4-17
        - name: eap-operator
          image: registry-proxy.engineering.redhat.com/rh-osbs/jboss-eap-7-eap73-rhel8-operator:2.4-17
    - apiVersion: operators.coreos.com/v1alpha1
      kind: ClusterServiceVersion
      metadata:
        name: eap-operator.v2.3.10
      spec:
        displayName: JBoss EAP
        install:
          strategy: deployment
  packages: |-
    - packageName: eap
      channels:
      - name: alpha
        currentCSV: eap-operator.v2.4.0
---
apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
  name: eap-operator
spec:
  configMap: eap-operator
  displayName: EAP Operator (QE)
  publisher: Red Hat
  sourceType: internal
