apiVersion: operators.coreos.com/v1alpha1
kind: ClusterServiceVersion
metadata:
  annotations:
    alm-examples: |-
      [
        {
          "apiVersion": "charts.helm.k8s.io/v1alpha1",
          "kind": "OpenshiftPipeline",
          "metadata": {
            "name": "openshiftpipeline"
          },
          "spec": {
            "pipelines": {
              "global": {
                "postgresql": {
                  "host": "OVERRIDE",
                  "port": "OVERRIDE",
                  "database": "OVERRIDE",
                  "user": "OVERRIDE",
                  "password": "OVERRIDE",
                  "ssl": "false"
                }
              },
              "initContainer": {
                "image": "registry.connect.redhat.com/jfrog/pipelines-init:1.8.0",
                "pullPolicy": "Always"
              },
              "imageRegistry": "registry.connect.redhat.com",
              "securityContext": {
                "enabled": true,
                "uid": "1000721117",
                "gid": "1000721117"
              },
              "pipelines": {
                "version": "1.8.0",
                "jfrogUrl": "OVERRIDE",
                "jfrogUrlUI": "OVERRIDE",
                "accessControlAllowOrigins_0": "OVERRIDE",
                "accessControlAllowOrigins_1": "OVERRIDE",
                "joinKey": "OVERRIDE",
                "masterKey": "OVERRIDE",
                "api": {
                  "image": {
                    "repository": "jfrog/pipelines-api",
                    "pullPolicy": "Always"
                  },
                  "externalUrl": "OVERRIDE"
                },
                "www": {
                  "image": {
                    "repository": "jfrog/pipelines-www",
                    "pullPolicy": "Always"
                  },
                  "externalUrl": "OVERRIDE"
                },
                "router": {
                  "image": {
                    "repository": "jfrog/pipelines-router",
                    "pullPolicy": "Always"
                  }
                },
                "msg": {
                  "uiUser": "OVERRIDE",
                  "uiUserPassword": "OVERRIDE"
                },
                "pipelineSync": {
                  "image": {
                    "repository": "jfrog/pipelines-micro",
                    "pullPolicy": "Always"
                  }
                },
                "runTrigger": {
                  "image": {
                    "repository": "jfrog/pipelines-micro",
                    "pullPolicy": "Always"
                  }
                },
                "stepTrigger": {
                  "image": {
                    "repository": "jfrog/pipelines-micro",
                    "pullPolicy": "Always"
                  }
                },
                "cron": {
                  "image": {
                    "repository": "jfrog/pipelines-micro",
                    "pullPolicy": "Always"
                  }
                },
                "nexec": {
                  "image": {
                    "repository": "jfrog/pipelines-micro",
                    "pullPolicy": "Always"
                  }
                },
                "hookHandler": {
                  "image": {
                    "repository": "jfrog/pipelines-micro",
                    "pullPolicy": "Always"
                  }
                },
                "marshaller": {
                  "image": {
                    "repository": "jfrog/pipelines-micro",
                    "pullPolicy": "Always"
                  }
                },
                "logup": {
                  "image": {
                    "repository": "jfrog/pipelines-micro",
                    "pullPolicy": "Always"
                  }
                },
                "extensionSync": {
                  "image": {
                    "repository": "jfrog/pipelines-micro",
                    "pullPolicy": "Always"
                  }
                },
                "pipelinesInit": {
                  "image": {
                    "repository": "jfrog/pipelines-installer",
                    "pullPolicy": "Always"
                  }
                }
              },
              "postgresql": {
                "enabled": false
              },
              "rabbitmq": {
                "enabled": true,
                "externalUrl": "OVERRIDE",
                "image": {
                  "registry": "registry.connect.redhat.com",
                  "repository": "jfrog/pipelines-rabbitmq",
                  "tag": "3.8.9"
                }
              },
              "redis": {
                "enabled": true,
                "master": {
                  "command": "container-entrypoint run-redis"
                },
                "image": {
                  "registry": "registry.redhat.io",
                  "repository": "rhel8/redis-5",
                  "tag": "1-98"
                }
              },
              "vault": {
                "enabled": true,
                "disablemlock": false,
                "image": {
                  "repository": "registry.connect.redhat.com/jfrog/pipelines-vault",
                  "tag": "1.8.0"
                },
                "init": {
                  "repository": "jfrog/pipelines-vault-init",
                  "pullPolicy": "Always"
                }
              }
            }
          }
        }
      ]
    capabilities: Seamless Upgrades
    categories: Developer Tools,Integration & Delivery
    certified: 'true'
    containerImage: registry.connect.redhat.com/jfrog/pipelines-operator:1.8-1
    createdAt: 2020-10-09 00:00:00+00:00
    description: JFrog Pipeline Enterprise deploys Pipeline CI/CD Openshift (Requires Jfrog Artifactory)
    repository: https://github.com/jfrog/JFrog-Cloud-Installers/tree/openshift4/Openshift4
    support: JFrog
  creationTimestamp: null
  name: pipeline-operator.v1.0.0
  namespace: default
spec:
  apiservicedefinitions: {}
  customresourcedefinitions:
    owned:
    - description: Represents Pipeline Instances
      displayName: Pipeline
      kind: OpenshiftPipeline
      name: openshiftpipelines.charts.helm.k8s.io
      resources:
      - kind: Deployment
        name: ''
        version: v1
      - kind: Service
        name: ''
        version: v1
      - kind: ReplicaSet
        name: ''
        version: v1
      - kind: Pod
        name: ''
        version: v1
      - kind: Secret
        name: ''
        version: v1
      - kind: ConfigMap
        name: ''
        version: v1
      - kind: StatefulSet
        name: ''
        version: apps/v1
      version: v1alpha1
  description: '## Overview


    Openshift Operator to deploy JFrog Pipelines into your Openshift cluster.

    ## Usage


    An external DB is required. The operator will not deploy a DB but will require
    you to specify the configuration values to connect to it.


    Search for JFrog and click JFrog Pipeline Operator to install.


    Go to the Installed Operators.


    Wait for the JFrog Pipeline Operator to complete the installation.


    Open the Operator and click on the provided API: Xray


    Click Create New Instance and provide the following parameters for your DB configuration:


    ```

     pipelines.global.postgresql.host=<postgresql_host>
     pipelines.global.postgresql.port=<postgresql_port>
     pipelines.global.postgresql.database=<postgresql_dbname>
     pipelines.global.postgresql.user=<postgresql_user>
     pipelines.global.postgresql.password=<postgresql_password>

    ```


    JFROG_URL is the external ip or DNS of your Artifactory to connect Pipelines to. Artifactory
    is required to use this operator.

    You will need to specify your JFROG_URL in the follow locations:

    Use the cluster DNS name of the service for most operator deployments this will be: http://openshiftartifactoryha-nginx

    ```
      pipelines.pipelines.jfrogUrl=<JFROG_URL>
      pipelines.pipelines.jfrogUrlUI=<JFROG_URL>
      pipelines.pipelines.accessControlAllowOrigins_0=<JFROG_URL>
      pipelines.pipelines.accessControlAllowOrigins_1=<JFROG_URL>
    ```

    Setup a unique master key and use the same join key you used when creating Artifactory:

    ```
       pipelines.pipelines.masterKey=$MASTER_KEY
       pipelines.pipelines.joinKey=$JOIN_KEY
    ```

    Setup a unique username and password for Rabbitmq user:

    ```
       pipelines.pipelines.msg.uiUser=monitor
       pipelines.pipelines.msg.uiUserPassword=monitor
    ```

    Specify external urls that will be your Openshift routes if desired:

    ```
       pipelines.rabbitmq.externalUrl=amqps://pipelines-rabbit.example.com
       pipelines.pipelines.api.externalUrl=http://pipelines-api.example.com
       pipelines.pipelines.www.externalUrl=http://pipelines-www.example.com
    ```

    Deploy JFrog Pipelines into your cluster.

    ## Build Plane Usage

    To use the pipelines build plane you can either use your Openshift cluster or a 3rd party cloud provider like AWS.

    Setup the Pipelines build plane.

    ## Sync issue fix

    To resolve the known host issue when syncing from a new site for now users can rsh into the pod or open the terminal into the pod in the Openshift web console.

    Once inside the container `pipelinesync` run the follow command:

    ```
    /pipelineSync/clone.sh
    ```

    Type yes to accept the host verification and then re-sync your pipeline.
    '
  displayName: JFrog Pipeline Operator
  icon:
  - base64data: [encoded data, 16712 characters]
    mediatype: image/png
  install:
    spec:
      deployments:
      - name: pipeline-operator
        spec:
          replicas: 1
          selector:
            matchLabels:
              name: pipeline-operator
          strategy: {}
          template:
            metadata:
              labels:
                name: pipeline-operator
            spec:
              containers:
              - env:
                - name: WATCH_NAMESPACE
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.annotations['olm.targetNamespaces']
                - name: POD_NAME
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.name
                - name: OPERATOR_NAME
                  value: pipeline-operator
                - name: RELATED_IMAGE_PIPELINE_API_IMAGE_REPOSITORY
                  value: registry.connect.redhat.com/jfrog/pipelines-api:1.8.0
                - name: RELATED_IMAGE_PIPELINE_ROUTER_IMAGE_REPOSITORY
                  value: registry.connect.redhat.com/jfrog/pipelines-router:1.8.0
                - name: RELATED_IMAGE_PIPELINE_WWW_IMAGE_REPOSITORY
                  value: registry.connect.redhat.com/jfrog/pipelines-www:1.8.0
                - name: RELATED_IMAGE_PIPELINE_MICRO_IMAGE_REPOSITORY
                  value: registry.connect.redhat.com/jfrog/pipelines-micro:1.8.0
                - name: RELATED_IMAGE_PIPELINE_INSTALLER_IMAGE_REPOSITORY
                  value: registry.connect.redhat.com/jfrog/pipelines-installer:1.8.0
                - name: RELATED_IMAGE_PIPELINE_RABBITMQ_IMAGE_REPOSITORY
                  value: registry.connect.redhat.com/jfrog/pipelines-rabbitmq:3.8.9
                - name: RELATED_IMAGE_PIPELINE_REDIS_IMAGE_REPOSITORY
                  value: registry.redhat.io/rhel8/redis-5:1-98
                - name: RELATED_IMAGE_PIPELINE_VAULT_INIT_IMAGE_REPOSITORY
                  value: registry.connect.redhat.com/jfrog/pipelines-vault-init:1.8.0
                - name: RELATED_IMAGE_PIPELINE_VAULT_IMAGE_REPOSITORY
                  value: registry.connect.redhat.com/jfrog/pipelines-vault:1.8.0
                image: registry.connect.redhat.com/jfrog/pipelines-operator:1.8-1
                imagePullPolicy: Always
                name: pipeline-operator
                resources: {}
              serviceAccountName: pipeline-operator
      permissions:
      - rules:
        - apiGroups:
          - ''
          resources:
          - pods
          - services
          - services/finalizers
          - endpoints
          - persistentvolumeclaims
          - events
          - configmaps
          - secrets
          - serviceaccounts
          verbs:
          - create
          - delete
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - apps
          resources:
          - deployments
          - daemonsets
          - replicasets
          - statefulsets
          verbs:
          - create
          - delete
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - ''
          resources:
          - namespaces
          verbs:
          - get
        - apiGroups:
          - ''
          resourceNames:
          - pipeline-operator
          resources:
          - '*'
          verbs:
          - '*'
        - apiGroups:
          - ''
          resources:
          - events
          verbs:
          - create
        - apiGroups:
          - monitoring.coreos.com
          resources:
          - servicemonitors
          verbs:
          - get
          - create
        - apiGroups:
          - apps
          resourceNames:
          - pipeline-operator
          resources:
          - deployments/finalizers
          verbs:
          - update
        - apiGroups:
          - ''
          resources:
          - pods
          verbs:
          - get
        - apiGroups:
          - apps
          resources:
          - replicasets
          - deployments
          verbs:
          - get
        - apiGroups:
          - charts.helm.k8s.io
          resources:
          - '*'
          verbs:
          - create
          - delete
          - get
          - list
          - patch
          - update
          - watch
        - apiGroups:
          - networking.k8s.io
          resources:
          - '*'
          verbs:
          - '*'
        - apiGroups:
          - policy
          resources:
          - '*'
          verbs:
          - '*'
        - apiGroups:
          - rbac.authorization.k8s.io
          resources:
          - '*'
          verbs:
          - '*'
        serviceAccountName: pipeline-operator
    strategy: deployment
  installModes:
  - supported: true
    type: OwnNamespace
  - supported: true
    type: SingleNamespace
  - supported: false
    type: MultiNamespace
  - supported: true
    type: AllNamespaces
  keywords:
  - DevOps
  - CI/CD
  - Developers
  - Software
  - Productivity
  - Artifact Repository
  - Repository Manager
  - Docker
  - Maven
  - Git
  - Helm
  - npm
  - go
  - golang
  - kubernetes
  - k8s
  - rpm
  - yum
  links:
  - name: JFrog
    url: https://www.jfrog.com
  - name: JFrog Pipelines
    url: https://jfrog.com/pipelines/
  - name: JFrog Pipelines Video
    url: https://www.youtube.com/watch?v=5xbMYabN1MQ
  maintainers:
  - email: partner-support@jfrog.com
    name: JFrog
  maturity: alpha
  provider:
    name: JFrog
  version: 1.0.0
status:
  certsLastUpdated: null
  certsRotateAt: null
  lastTransitionTime: null
  lastUpdateTime: null
