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

     1  apiVersion: operators.coreos.com/v1alpha1
     2  kind: ClusterServiceVersion
     3  metadata:
     4    annotations:
     5      alm-examples: >-
     6        [{"apiVersion":"interconnectedcloud.github.io/v1alpha1","kind":"Interconnect","metadata":{"name":"amq-interconnect"},"spec":{"deploymentPlan":{"size":2,"role":"interior","placement":"Any"}}}]
     7      capabilities: Basic Install
     8      categories: Messaging
     9    name: qdr-operator.v0.1.0
    10    namespace: placeholder
    11  spec:
    12    apiservicedefinitions: {}
    13    customresourcedefinitions:
    14      owned:
    15      - version: v1alpha1
    16        kind: Interconnect
    17        description: An instance of Interconnect
    18        displayName: Interconnect
    19        name: interconnects.interconnectedcloud.github.io
    20        resources:
    21        - kind: Service
    22          version: v1
    23        - kind: Deployment
    24          version: v1
    25        - kind: ServiceAccount
    26          version: v1
    27        - kind: interconnects
    28          version: v1alpha1
    29        - kind: rolebindings
    30          version: v1
    31        - kind: pods
    32          version: v1
    33        - kind: configmaps
    34          version: v1
    35        - kind: roles
    36          version: v1
    37        - kind: routes
    38          version: v1
    39        - kind: secrets
    40          version: v1
    41        specDescriptors:
    42        - description: The role and placement plan for the interconnect deployment
    43          displayName: DeploymentPlan
    44          path: deploymentPlan
    45        - description: Listeners for incoming connections to the router
    46          displayName: Listeners
    47          path: listeners
    48        - description: Listeners for inter router mesh connections
    49          displayName: InterRouterListeners
    50          path: interRouterListeners
    51        - description: Listeners for edge downlink connections
    52          displayName: EdgeListeners
    53          path: edgeListeners
    54        - description: TLS/SSL configuration for connections
    55          displayName: SslProfiles
    56          path: sslProfiles
    57        - description: Address configuration for distribution and phasing
    58          displayName: Addresses
    59          path: addresses
    60        - description: Auto links address configuration
    61          displayName: AutoLinks
    62          path: autoLinks
    63        - description: Link routes address configuration
    64          displayName: LinkRoutes
    65          path: linkRoutes
    66        - description: Outbound client connections to AMQP 1.0 entity
    67          displayName: Connectors
    68          path: connectors
    69        - description: Outbound interior router connections for mesh operation
    70          displayName: InterRouterConnectors
    71          path: interRouterConnectors
    72        - description: Outbound edge router connections for edge uplink
    73          displayName: EdgeConnectors
    74          path: edgeConnectors
    75        statusDescriptors:
    76        - description: The current revision of the Interconnect cluster
    77          displayName: Revision Number
    78          path: revNumber
    79        - description: The current pods
    80          displayName: Pods
    81          path: pods
    82        - description: The current conditions
    83          displayName: Conditions
    84          path: conditions
    85    description: |
    86  
    87      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.
    88  
    89      ### Core Capabilities
    90  
    91      * High throughput, low latency, shortest path message forwarding based on Layer 7 address routing mechanisms.
    92  
    93      * `Interior` mode deployments for any arbitrary topology of geographically-distributed and interconnected Qdrs.
    94  
    95      * `Edge` mode deployments for extremely large scale device endpoint connectivity.
    96  
    97      * Automatic message traffic re-routing when the network topology changes (resiliency without restrictions).
    98  
    99      * Flexible addressing schemes and delivery semantics (anycast, multicast, closest, balanced).
   100  
   101      * Integrated management with full support for the draft AMQP management specification.
   102  
   103      * Full-featured security capabilities for authentication, authorization, and policy-based resource access control.
   104  
   105      ### Operator Features
   106  
   107      * **Flexible deployment plans** - Configurable deployment plans are available for `interior` and `edge` mode scenarios. These plans include all dependent resources.
   108  
   109      * **Placement directives** - Directives are provided to control how the pods should be scheduled.
   110  
   111      * **Connectivity configuration defaults** - Configuration defaults are automatically generated for listeners, connectors, and SSL/TLS setup.
   112  
   113      * **Exposes the service** - Integrated management of OpenShift Routes for exposed listener services for client, inter-router, and edge communications.
   114  
   115      * **Security certificate management** - Certificates are created and managed through integration with [jetstack cert-manager](https://github.com/jetstack/cert-manager).
   116  
   117      ### Troubleshooting
   118  
   119      After deploying Interconnect, check any of the following to verify that it is operating correctly:
   120  
   121      * The Interconnect instance
   122  
   123      * The Deployment (or DaemonSet) instance
   124  
   125      * An individual pod for the Deployment (or DaemonSet)
   126  
   127      * A Route created for exposed services
   128  
   129      In addition, use `qdstat` commands to verify connectivity.
   130  
   131    displayName: Qdr Operator
   132    install:
   133      spec:
   134        deployments:
   135        - name: qdr-operator
   136          spec:
   137            replicas: 1
   138            selector:
   139              matchLabels:
   140                name: qdr-operator
   141            template:
   142              metadata:
   143                labels:
   144                  name: qdr-operator
   145              spec:
   146                serviceAccountName: qdr-operator
   147                containers:
   148                - command:
   149                  - qdr-operator
   150                  env:
   151                  - name: WATCH_NAMESPACE
   152                    valueFrom:
   153                      fieldRef:
   154                        fieldPath: metadata.namespace
   155                  - name: POD_NAME
   156                    valueFrom:
   157                      fieldRef:
   158                        fieldPath: metadata.name
   159                  - name: OPERATOR_NAME
   160                    value: qdr-operator
   161                  image: quay.io/interconnectedcloud/qdr-operator
   162                  imagePullPolicy: Always
   163                  name: qdr-operator
   164                  ports:
   165                  - containerPort: 60000
   166                    name: metrics
   167                  resources: {}
   168        permissions:
   169        - rules:
   170          - apiGroups:
   171            - ""
   172            resources:
   173            - pods
   174            - services
   175            - endpoints
   176            - serviceaccounts
   177            - persistentvolumeclaims
   178            - events
   179            - configmaps
   180            - secrets
   181            verbs:
   182            - '*'
   183          - apiGroups:
   184            - "route.openshift.io"
   185            resources:
   186            - routes
   187            - routes/custom-host
   188            - routes/status
   189            verbs:
   190            - get
   191            - list
   192            - watch
   193            - create
   194            - delete
   195          - apiGroups:
   196            - rbac.authorization.k8s.io
   197            resources:
   198            - rolebindings
   199            - roles
   200            verbs:
   201            - get
   202            - list
   203            - watch
   204            - create
   205            - delete
   206          - apiGroups:
   207            - ""
   208            resources:
   209            - namespaces
   210            verbs:
   211            - get
   212          - apiGroups:
   213            - apps
   214            resources:
   215            - deployments
   216            - daemonsets
   217            - replicasets
   218            - statefulsets
   219            verbs:
   220            - '*'
   221          - apiGroups:
   222            - "certmanager.k8s.io"
   223            resources:
   224            - issuers
   225            - certificates
   226            verbs:
   227            - get
   228            - list
   229            - watch
   230            - create
   231            - delete
   232          - apiGroups:
   233            - monitoring.coreos.com
   234            resources:
   235            - servicemonitors
   236            verbs:
   237            - get
   238            - create
   239          - apiGroups:
   240            - interconnectedcloud.github.io
   241            resources:
   242            - '*'
   243            verbs:
   244            - '*'
   245          serviceAccountName: qdr-operator
   246      strategy: deployment
   247    installModes:
   248    - supported: true
   249      type: OwnNamespace
   250    - supported: true
   251      type: SingleNamespace
   252    - supported: false
   253      type: MultiNamespace
   254    - supported: true
   255      type: AllNamespaces
   256    maturity: alpha
   257    provider: {}
   258    version: 0.1.0