github.com/interconnectedcloud/qdr-operator@v0.0.0-20210826174505-576d2b33dac7/deploy/olm-catalog/qdr-operator/0.1.0/catalog-source.yaml (about)

     1  apiVersion: v1
     2  kind: List
     3  items:
     4    - apiVersion: v1
     5      kind: ConfigMap
     6      metadata:
     7        name: qdr-resources
     8        namespace: operator-lifecycle-manager
     9      data:
    10        clusterServiceVersions: |
    11          - apiVersion: operators.coreos.com/v1alpha1
    12            kind: ClusterServiceVersion
    13            metadata:
    14              annotations:
    15                alm-examples: >-
    16                  [{"apiVersion":"interconnectedcloud.github.io/v1alpha1","kind":"Interconnect","metadata":{"name":"amq-interconnect"},"spec":{"deploymentPlan":{"size":2,"role":"interior","placement":"Any"}}}]
    17                capabilities: Basic Install
    18                categories: Messaging
    19              name: qdr-operator.v0.1.0
    20              namespace: placeholder
    21            spec:
    22              apiservicedefinitions: {}
    23              customresourcedefinitions:
    24                owned:
    25                - version: v1alpha1
    26                  kind: Interconnect
    27                  description: An instance of Interconnect
    28                  displayName: Interconnect
    29                  name: interconnects.interconnectedcloud.github.io
    30                  resources:
    31                  - kind: Service
    32                    version: v1
    33                  - kind: Deployment
    34                    version: v1
    35                  - kind: ServiceAccount
    36                    version: v1
    37                  - kind: interconnects
    38                    version: v1alpha1
    39                  - kind: rolebindings
    40                    version: v1
    41                  - kind: pods
    42                    version: v1
    43                  - kind: configmaps
    44                    version: v1
    45                  - kind: roles
    46                    version: v1
    47                  - kind: routes
    48                    version: v1
    49                  - kind: secrets
    50                    version: v1
    51                  specDescriptors:
    52                  - description: The role and placement plan for the interconnect deployment
    53                    displayName: DeploymentPlan
    54                    path: deploymentPlan
    55                  - description: Listeners for incoming connections to the router
    56                    displayName: Listeners
    57                    path: listeners
    58                  - description: Listeners for inter router mesh connections
    59                    displayName: InterRouterListeners
    60                    path: interRouterListeners
    61                  - description: Listeners for edge downlink connections
    62                    displayName: EdgeListeners
    63                    path: edgeListeners
    64                  - description: TLS/SSL configuration for connections
    65                    displayName: SslProfiles
    66                    path: sslProfiles
    67                  - description: Address configuration for distribution and phasing
    68                    displayName: Addresses
    69                    path: addresses
    70                  - description: Auto links address configuration
    71                    displayName: AutoLinks
    72                    path: autoLinks
    73                  - description: Link routes address configuration
    74                    displayName: LinkRoutes
    75                    path: linkRoutes
    76                  - description: Outbound client connections to AMQP 1.0 entity
    77                    displayName: Connectors
    78                    path: connectors
    79                  - description: Outbound interior router connections for mesh operation
    80                    displayName: InterRouterConnectors
    81                    path: interRouterConnectors
    82                  - description: Outbound edge router connections for edge uplink
    83                    displayName: EdgeConnectors
    84                    path: edgeConnectors
    85                  statusDescriptors:
    86                  - description: The current revision of the Interconnect cluster
    87                    displayName: Revision Number
    88                    path: revNumber
    89                  - description: The current pods
    90                    displayName: Pods
    91                    path: pods
    92                  - description: The current conditions
    93                    displayName: Conditions
    94                    path: conditions
    95              description: |
    96            
    97                The Qdr Operator is a lightweight [AMQP 1.0](https://www.amqp.org/) message router for building large, highly resilient messaging networks for hybrid cloud and IoT/edge deployments. Qdr transparently learns the addresses of messaging endpoints (such as clients, servers, and message brokers) and flexibly routes messages between them.
    98            
    99                ### Core Capabilities
   100            
   101                * High throughput, low latency, shortest path message forwarding based on Layer 7 address routing mechanisms.
   102            
   103                * `Interior` mode deployments for any arbitrary topology of geographically-distributed and interconnected Qdrs.
   104            
   105                * `Edge` mode deployments for extremely large scale device endpoint connectivity.
   106            
   107                * Automatic message traffic re-routing when the network topology changes (resiliency without restrictions).
   108            
   109                * Flexible addressing schemes and delivery semantics (anycast, multicast, closest, balanced).
   110            
   111                * Integrated management with full support for the draft AMQP management specification.
   112            
   113                * Full-featured security capabilities for authentication, authorization, and policy-based resource access control.
   114            
   115                ### Operator Features
   116            
   117                * **Flexible deployment plans** - Configurable deployment plans are available for `interior` and `edge` mode scenarios. These plans include all dependent resources.
   118            
   119                * **Placement directives** - Directives are provided to control how the pods should be scheduled.
   120            
   121                * **Connectivity configuration defaults** - Configuration defaults are automatically generated for listeners, connectors, and SSL/TLS setup.
   122            
   123                * **Exposes the service** - Integrated management of OpenShift Routes for exposed listener services for client, inter-router, and edge communications.
   124            
   125                * **Security certificate management** - Certificates are created and managed through integration with [jetstack cert-manager](https://github.com/jetstack/cert-manager).
   126            
   127                ### Troubleshooting
   128            
   129                After deploying Interconnect, check any of the following to verify that it is operating correctly:
   130            
   131                * The Interconnect instance
   132            
   133                * The Deployment (or DaemonSet) instance
   134            
   135                * An individual pod for the Deployment (or DaemonSet)
   136            
   137                * A Route created for exposed services
   138            
   139                In addition, use `qdstat` commands to verify connectivity.
   140            
   141              displayName: Qdr Operator
   142              install:
   143                spec:
   144                  deployments:
   145                  - name: qdr-operator
   146                    spec:
   147                      replicas: 1
   148                      selector:
   149                        matchLabels:
   150                          name: qdr-operator
   151                      template:
   152                        metadata:
   153                          labels:
   154                            name: qdr-operator
   155                        spec:
   156                          serviceAccountName: qdr-operator
   157                          containers:
   158                          - command:
   159                            - qdr-operator
   160                            env:
   161                            - name: WATCH_NAMESPACE
   162                              valueFrom:
   163                                fieldRef:
   164                                  fieldPath: metadata.namespace
   165                            - name: POD_NAME
   166                              valueFrom:
   167                                fieldRef:
   168                                  fieldPath: metadata.name
   169                            - name: OPERATOR_NAME
   170                              value: qdr-operator
   171                            image: quay.io/interconnectedcloud/qdr-operator
   172                            imagePullPolicy: Always
   173                            name: qdr-operator
   174                            ports:
   175                            - containerPort: 60000
   176                              name: metrics
   177                            resources: {}
   178                  permissions:
   179                  - rules:
   180                    - apiGroups:
   181                      - ""
   182                      resources:
   183                      - pods
   184                      - services
   185                      - endpoints
   186                      - serviceaccounts
   187                      - persistentvolumeclaims
   188                      - events
   189                      - configmaps
   190                      - secrets
   191                      verbs:
   192                      - '*'
   193                    - apiGroups:
   194                      - "route.openshift.io"
   195                      resources:
   196                      - routes
   197                      - routes/custom-host
   198                      - routes/status
   199                      verbs:
   200                      - get
   201                      - list
   202                      - watch
   203                      - create
   204                      - delete
   205                    - apiGroups:
   206                      - rbac.authorization.k8s.io
   207                      resources:
   208                      - rolebindings
   209                      - roles
   210                      verbs:
   211                      - get
   212                      - list
   213                      - watch
   214                      - create
   215                      - delete
   216                    - apiGroups:
   217                      - ""
   218                      resources:
   219                      - namespaces
   220                      verbs:
   221                      - get
   222                    - apiGroups:
   223                      - apps
   224                      resources:
   225                      - deployments
   226                      - daemonsets
   227                      - replicasets
   228                      - statefulsets
   229                      verbs:
   230                      - '*'
   231                    - apiGroups:
   232                      - "certmanager.k8s.io"
   233                      resources:
   234                      - issuers
   235                      - certificates
   236                      verbs:
   237                      - get
   238                      - list
   239                      - watch
   240                      - create
   241                      - delete
   242                    - apiGroups:
   243                      - monitoring.coreos.com
   244                      resources:
   245                      - servicemonitors
   246                      verbs:
   247                      - get
   248                      - create
   249                    - apiGroups:
   250                      - interconnectedcloud.github.io
   251                      resources:
   252                      - '*'
   253                      verbs:
   254                      - '*'
   255                    serviceAccountName: qdr-operator
   256                strategy: deployment
   257              installModes:
   258              - supported: true
   259                type: OwnNamespace
   260              - supported: true
   261                type: SingleNamespace
   262              - supported: false
   263                type: MultiNamespace
   264              - supported: true
   265                type: AllNamespaces
   266              maturity: alpha
   267              provider: {}
   268              version: 0.1.0
   269        customResourceDefinitions: |
   270          - apiVersion: apiextensions.k8s.io/v1beta1
   271            kind: CustomResourceDefinition
   272            metadata:
   273              name: interconnects.interconnectedcloud.github.io
   274            spec:
   275              group: interconnectedcloud.github.io
   276              names:
   277                kind: Interconnect
   278                listKind: InterconnectList
   279                plural: interconnects
   280                singular: interconnect
   281              scope: Namespaced
   282              version: v1alpha1
   283              subresources:
   284                status: {}
   285              validation:
   286               # openAPIV3Schema is the schema for validating custom objects.
   287                openAPIV3Schema:
   288                  required:
   289                    - spec
   290                  properties:
   291                    spec:
   292                      properties:
   293                        deploymentPlan:
   294                          type: object
   295                          properties:
   296                            image:
   297                              type: string
   298                              description: The image used for the interconnect deployment
   299                            size:
   300                              type: integer
   301                              minimum: 1
   302                              maximum: 16
   303                              description: The number of interconnect pods to deploy
   304                            role:
   305                              description: The interconnect deployment role
   306                              type: string
   307                              enum:
   308                                - edge
   309                                - interior
   310                            placement:
   311                              description: The interconnect placement plan
   312                              type: string
   313                              enum:
   314                                - Any
   315                                - Every
   316                                - AntiAffinity
   317                                - Node
   318                            resources:
   319                              type: object
   320                              properties:
   321                                requests:
   322                                  type: object
   323                                  properties:
   324                                    cpu:
   325                                      type: string
   326                                    memory:
   327                                      type: string
   328                                limits:
   329                                  type: object
   330                                  properties:
   331                                    cpu:
   332                                      type: string
   333                                    memory:
   334                                      type: string
   335                            issuer:
   336                              type: string
   337                              description: The externally provided credentials
   338                            livenessPort:
   339                              type: integer
   340                              description: The liveness probe port number
   341                            serviceType:
   342                              type: string
   343                              description: The type of service to create
   344                        users:
   345                          type: string
   346                          description: The name of a secret holding user and password details
   347                        listeners:
   348                          type: array
   349                          description: Configuration of each individual interconnect listener
   350                          minItems: 1
   351                          items:
   352                            type: object
   353                            description: interconnect listener configuration
   354                            properties:
   355                              name:
   356                                type: string
   357                                description: Listener name
   358                              host:
   359                                type: string
   360                                description: Host name
   361                              port:
   362                                type: integer
   363                                description: Port number
   364                              routeContainer:
   365                                type: boolean
   366                                description: Indicator for a router-broker connection
   367                              http:
   368                                type: boolean
   369                                description: Accept HTTP connections
   370                              cost:
   371                                type: integer
   372                                description: Cost metric for inter router connections
   373                              sslProfile:
   374                                type: string
   375                                description: Name of the ssl profile to use
   376                              role:
   377                                type: boolean
   378                              expose:
   379                                type: boolean
   380                              authenticatePeer:
   381                                type: boolean
   382                                description: Require incoming connections to authenticate
   383                              saslMechanisms:
   384                                type: string
   385                                description: List of space separate SASL mechanisms to offer
   386                        autoLinks:
   387                          items:
   388                            properties:
   389                              address:
   390                                type: string
   391                              connection:
   392                                type: string
   393                              containerId:
   394                                type: string
   395                              direction:
   396                                type: string
   397                              externalAddress:
   398                                type: string
   399                              phase:
   400                                format: int32
   401                                type: integer
   402                            required:
   403                              - address
   404                              - direction
   405                            type: object
   406                          type: array
   407                        connectors:
   408                          type: array
   409                          description: Configuration of each individual router connnector
   410                          items:
   411                            properties:
   412                              cost:
   413                                format: int32
   414                                type: integer
   415                              host:
   416                                type: string
   417                              name:
   418                                type: string
   419                              port:
   420                                format: int32
   421                                type: integer
   422                              routeContainer:
   423                                type: boolean
   424                              sslProfile:
   425                                type: string
   426                              verifyHostname:
   427                                type: boolean
   428                                description: Verify hostname of server when using TLS
   429                            required:
   430                              - host
   431                              - port
   432                            type: object
   433                          type: array
   434                        interRouterConnectors:
   435                          type: array
   436                          description: Configuration of each individual inter router connector
   437                          items:
   438                            properties:
   439                              cost:
   440                                format: int32
   441                                type: integer
   442                              host:
   443                                type: string
   444                              name:
   445                                type: string
   446                              port:
   447                                format: int32
   448                                type: integer
   449                              routeContainer:
   450                                type: boolean
   451                              sslProfile:
   452                                type: string
   453                              verifyHostname:
   454                                type: boolean
   455                                description: Verify hostname of server when using TLS
   456                            required:
   457                              - host
   458                              - port
   459                            type: object
   460                          type: array
   461                        edgeConnectors:
   462                          type: array
   463                          description: Configuration of each individual edge uplink connector
   464                          items:
   465                            properties:
   466                              cost:
   467                                format: int32
   468                                type: integer
   469                              host:
   470                                type: string
   471                              name:
   472                                type: string
   473                              port:
   474                                format: int32
   475                                type: integer
   476                              routeContainer:
   477                                type: boolean
   478                                description: Indicator for a router-broker connection
   479                              sslProfile:
   480                                type: string
   481                              verifyHostname:
   482                                type: boolean
   483                                description: Verify hostname of server when using TLS
   484                            required:
   485                              - host
   486                              - port
   487                            type: object
   488                          type: array
   489                        interRouterListeners:
   490                          type: array
   491                          description: Configuration of each individual inter router listener
   492                          items:
   493                            type: object
   494                            description: interconnect listener configuration
   495                            properties:
   496                              name:
   497                                type: string
   498                                description: Listener name
   499                              host:
   500                                type: string
   501                                description: Host name
   502                              port:
   503                                type: integer
   504                                description: Port number
   505                              routeContainer:
   506                                type: boolean
   507                                description: Indicator for a router-broker connection
   508                              http:
   509                                type: boolean
   510                                description: Accept HTTP connections
   511                              cost:
   512                                type: integer
   513                                description: Cost metric for inter router connections
   514                              sslProfile:
   515                                type: string
   516                                description: Name of the ssl profile to use
   517                              expose:
   518                                type: boolean
   519                              authenticatePeer:
   520                                type: boolean
   521                                description: Require incoming connections to authenticate
   522                              saslMechanisms:
   523                                type: string
   524                                description: List of space separate SASL mechanisms to offer
   525                        edgeListeners:
   526                          type: array
   527                          description: Configuration of each individual inter edge listener
   528                          items:
   529                            type: object
   530                            description: interconnect listener configuration
   531                            properties:
   532                              name:
   533                                type: string
   534                                description: Listener name
   535                              host:
   536                                type: string
   537                                description: Host name
   538                              port:
   539                                type: integer
   540                                description: Port number
   541                              routeContainer:
   542                                type: boolean
   543                                description: Indicator for a router-broker connection
   544                              http:
   545                                type: boolean
   546                                description: Accept HTTP connections
   547                              cost:
   548                                type: integer
   549                                description: Cost metric for inter router connections
   550                              sslProfile:
   551                                type: string
   552                                description: Name of the ssl profile to use
   553                              expose:
   554                                type: boolean
   555                              authenticatePeer:
   556                                type: boolean
   557                                description: Require incoming connections to authenticate
   558                              saslMechanisms:
   559                                type: string
   560                                description: List of space separate SASL mechanisms to offer
   561                        addresses:
   562                          type: array
   563                          description: Configuration of each address distribution and phasing
   564                          items:
   565                            type: object
   566                            description: address configuration
   567                            properties:
   568                              prefix:
   569                                type: string
   570                                description: The address prefix for the configured setting
   571                              pattern:
   572                                type: string
   573                                description: A wildcarded pattern for address matching
   574                              distribution:
   575                                type: string
   576                                description: Treatment of traffic associated with the address
   577                                enum:
   578                                  - balanced
   579                                  - closest
   580                                  - multicast
   581                              waypoint:
   582                                type: boolean
   583                                description: Indicator for waypoint use
   584                              ingressPhase:
   585                                type: integer
   586                                minimum: 0
   587                                maximum: 9
   588                                description: Ingress phase override for the address
   589                              egressPhase:
   590                                type: integer
   591                                minimum: 0
   592                                maximum: 9
   593                                description: Egress phase override for the address
   594                              priority:
   595                                type: integer
   596                                minimum: 0
   597                                maximum: 9
   598                                description: Priority assigned to address for inter router transfer
   599                        sslProfiles:
   600                          items:
   601                            properties:
   602                              caCert:
   603                                type: string
   604                              ciphers:
   605                                type: string
   606                              credentials:
   607                                type: string
   608                              generateCredentials:
   609                                type: boolean
   610                              generateCaCert:
   611                                type: boolean
   612                              name:
   613                                type: string
   614                              protocols:
   615                                type: string
   616                              mutualAuth:
   617                                type: boolean
   618                            type: object
   619                          type: array
   620                        linkRoutes:
   621                          items:
   622                            properties:
   623                              addExternalPrefix:
   624                                type: string
   625                              connection:
   626                                type: string
   627                              containerId:
   628                                type: string
   629                              direction:
   630                                type: string
   631                              pattern:
   632                                type: string
   633                              prefix:
   634                                type: string
   635                              delExternalPrefix:
   636                                type: string
   637                            type: object
   638                          type: array
   639                        issuer:
   640                          type: string
   641                      type: object
   642                    status:
   643                      type: object
   644                      required:
   645                      - pods
   646                      - conditions
   647                      properties:
   648                        revNumber:
   649                          type: string
   650                        pods:
   651                          items:
   652                            type: string
   653                          type: array
   654                        phase:
   655                          type: string
   656                        conditions:
   657                          description: Conditions keeps most recent interconnect conditions
   658                          items:
   659                            properties:
   660                              reason:
   661                                type: string
   662                              transitionTime:
   663                                format: date-time
   664                                type: object
   665                              type:
   666                                type: string
   667                            required:
   668                            - type
   669                            type: object
   670                          type: array
   671        packages: >
   672          - #! package-manifest: deploy/olm-catalog/qdr-operator/0.1.0/qdr-operator.v0.1.0.clusterserviceversion.yaml
   673            packageName: qdr-operator
   674            channels:
   675              - name: beta
   676                currentCSV: qdr-operator.v0.1.0
   677  
   678    - apiVersion: operators.coreos.com/v1alpha1
   679      kind: CatalogSource
   680      metadata:
   681        name: qdr-resources
   682        namespace: operator-lifecycle-manager
   683      spec:
   684        configMap: qdr-resources
   685        displayName: Qdr Operators
   686        publisher: Red Hat
   687        sourceType: internal
   688      status:
   689        configMapReference:
   690          name: qdr-resources
   691          namespace: operator-lifecycle-manager