github.com/interconnectedcloud/qdr-operator@v0.0.0-20210826174505-576d2b33dac7/deploy/olm-catalog/qdr-operator/0.2.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.2.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.2.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                              fallback:
   403                                type: boolean
   404                            required:
   405                              - address
   406                              - direction
   407                            type: object
   408                          type: array
   409                        connectors:
   410                          type: array
   411                          description: Configuration of each individual router connnector
   412                          items:
   413                            properties:
   414                              cost:
   415                                format: int32
   416                                type: integer
   417                              host:
   418                                type: string
   419                              name:
   420                                type: string
   421                              port:
   422                                format: int32
   423                                type: integer
   424                              routeContainer:
   425                                type: boolean
   426                              sslProfile:
   427                                type: string
   428                              verifyHostname:
   429                                type: boolean
   430                                description: Verify hostname of server when using TLS
   431                            required:
   432                              - host
   433                              - port
   434                            type: object
   435                          type: array
   436                        interRouterConnectors:
   437                          type: array
   438                          description: Configuration of each individual inter router connector
   439                          items:
   440                            properties:
   441                              cost:
   442                                format: int32
   443                                type: integer
   444                              host:
   445                                type: string
   446                              name:
   447                                type: string
   448                              port:
   449                                format: int32
   450                                type: integer
   451                              routeContainer:
   452                                type: boolean
   453                              sslProfile:
   454                                type: string
   455                              verifyHostname:
   456                                type: boolean
   457                                description: Verify hostname of server when using TLS
   458                            required:
   459                              - host
   460                              - port
   461                            type: object
   462                          type: array
   463                        edgeConnectors:
   464                          type: array
   465                          description: Configuration of each individual edge uplink connector
   466                          items:
   467                            properties:
   468                              cost:
   469                                format: int32
   470                                type: integer
   471                              host:
   472                                type: string
   473                              name:
   474                                type: string
   475                              port:
   476                                format: int32
   477                                type: integer
   478                              routeContainer:
   479                                type: boolean
   480                                description: Indicator for a router-broker connection
   481                              sslProfile:
   482                                type: string
   483                              verifyHostname:
   484                                type: boolean
   485                                description: Verify hostname of server when using TLS
   486                            required:
   487                              - host
   488                              - port
   489                            type: object
   490                          type: array
   491                        interRouterListeners:
   492                          type: array
   493                          description: Configuration of each individual inter router listener
   494                          items:
   495                            type: object
   496                            description: interconnect listener configuration
   497                            properties:
   498                              name:
   499                                type: string
   500                                description: Listener name
   501                              host:
   502                                type: string
   503                                description: Host name
   504                              port:
   505                                type: integer
   506                                description: Port number
   507                              routeContainer:
   508                                type: boolean
   509                                description: Indicator for a router-broker connection
   510                              http:
   511                                type: boolean
   512                                description: Accept HTTP connections
   513                              cost:
   514                                type: integer
   515                                description: Cost metric for inter router connections
   516                              sslProfile:
   517                                type: string
   518                                description: Name of the ssl profile to use
   519                              expose:
   520                                type: boolean
   521                              authenticatePeer:
   522                                type: boolean
   523                                description: Require incoming connections to authenticate
   524                              saslMechanisms:
   525                                type: string
   526                                description: List of space separate SASL mechanisms to offer
   527                        edgeListeners:
   528                          type: array
   529                          description: Configuration of each individual inter edge listener
   530                          items:
   531                            type: object
   532                            description: interconnect listener configuration
   533                            properties:
   534                              name:
   535                                type: string
   536                                description: Listener name
   537                              host:
   538                                type: string
   539                                description: Host name
   540                              port:
   541                                type: integer
   542                                description: Port number
   543                              routeContainer:
   544                                type: boolean
   545                                description: Indicator for a router-broker connection
   546                              http:
   547                                type: boolean
   548                                description: Accept HTTP connections
   549                              cost:
   550                                type: integer
   551                                description: Cost metric for inter router connections
   552                              sslProfile:
   553                                type: string
   554                                description: Name of the ssl profile to use
   555                              expose:
   556                                type: boolean
   557                              authenticatePeer:
   558                                type: boolean
   559                                description: Require incoming connections to authenticate
   560                              saslMechanisms:
   561                                type: string
   562                                description: List of space separate SASL mechanisms to offer
   563                        addresses:
   564                          type: array
   565                          description: Configuration of each address distribution and phasing
   566                          items:
   567                            type: object
   568                            description: address configuration
   569                            properties:
   570                              prefix:
   571                                type: string
   572                                description: The address prefix for the configured setting
   573                              pattern:
   574                                type: string
   575                                description: A wildcarded pattern for address matching
   576                              distribution:
   577                                type: string
   578                                description: Treatment of traffic associated with the address
   579                                enum:
   580                                  - balanced
   581                                  - closest
   582                                  - multicast
   583                              waypoint:
   584                                type: boolean
   585                                description: Indicator for waypoint use
   586                              ingressPhase:
   587                                type: integer
   588                                minimum: 0
   589                                maximum: 9
   590                                description: Ingress phase override for the address
   591                              egressPhase:
   592                                type: integer
   593                                minimum: 0
   594                                maximum: 9
   595                                description: Egress phase override for the address
   596                              priority:
   597                                type: integer
   598                                minimum: 0
   599                                maximum: 9
   600                                description: Priority assigned to address for inter router transfer
   601                              enableFallback:
   602                                type: boolean
   603                                description: Indicator for treatment of undeliverable messages
   604                        sslProfiles:
   605                          items:
   606                            properties:
   607                              caCert:
   608                                type: string
   609                              ciphers:
   610                                type: string
   611                              credentials:
   612                                type: string
   613                              generateCredentials:
   614                                type: boolean
   615                              generateCaCert:
   616                                type: boolean
   617                              name:
   618                                type: string
   619                              protocols:
   620                                type: string
   621                              mutualAuth:
   622                                type: boolean
   623                            type: object
   624                          type: array
   625                        linkRoutes:
   626                          items:
   627                            properties:
   628                              addExternalPrefix:
   629                                type: string
   630                              connection:
   631                                type: string
   632                              containerId:
   633                                type: string
   634                              direction:
   635                                type: string
   636                              pattern:
   637                                type: string
   638                              prefix:
   639                                type: string
   640                              delExternalPrefix:
   641                                type: string
   642                            type: object
   643                          type: array
   644                        issuer:
   645                          type: string
   646                      type: object
   647                    status:
   648                      type: object
   649                      required:
   650                      - pods
   651                      - conditions
   652                      properties:
   653                        revNumber:
   654                          type: string
   655                        pods:
   656                          items:
   657                            type: string
   658                          type: array
   659                        phase:
   660                          type: string
   661                        conditions:
   662                          description: Conditions keeps most recent interconnect conditions
   663                          items:
   664                            properties:
   665                              reason:
   666                                type: string
   667                              transitionTime:
   668                                format: date-time
   669                                type: object
   670                              type:
   671                                type: string
   672                            required:
   673                            - type
   674                            type: object
   675                          type: array
   676        packages: >
   677          - #! package-manifest: deploy/olm-catalog/qdr-operator/0.2.0/qdr-operator.v0.2.0.clusterserviceversion.yaml
   678            packageName: qdr-operator
   679            channels:
   680              - name: beta
   681                currentCSV: qdr-operator.v0.2.0
   682  
   683    - apiVersion: operators.coreos.com/v1alpha1
   684      kind: CatalogSource
   685      metadata:
   686        name: qdr-resources
   687        namespace: operator-lifecycle-manager
   688      spec:
   689        configMap: qdr-resources
   690        displayName: Qdr Operators
   691        publisher: Red Hat
   692        sourceType: internal
   693      status:
   694        configMapReference:
   695          name: qdr-resources
   696          namespace: operator-lifecycle-manager