x-google-marketplace:
  schemaVersion: v2

  applicationApiVersion: v1beta1

  publishedVersion: "$TAG"
  publishedVersionMetadata:
    releaseNote: >-
      A regular update.
    releaseTypes:
      - Feature
    recommended: false

  clusterConstraints:
    resources:
    - replicas: 1
      requests:
        cpu: 100m
        memory: 100Mi

  images:
    '':
      properties:
        rabbitmq.image.repo:
          type: REPO_WITH_REGISTRY
        rabbitmq.image.tag:
          type: TAG
    debian:
      properties:
        rabbitmq.initImage:
          type: FULL
    prometheus-to-sd:
      properties:
        metrics.image:
          type: FULL

properties:
  name:
    type: string
    x-google-marketplace:
      type: NAME
  namespace:
    type: string
    x-google-marketplace:
      type: NAMESPACE
  rabbitmq.replicas:
    type: integer
    title: Replicas
    description: The number of Pod replicas
    default: 3
    minimum: 1
    maximum: 11
  rabbitmq.erlangCookie:
    type: string
    x-google-marketplace:
      type: GENERATED_PASSWORD
      generatedPassword:
        length: 32
  rabbitmq.user:
    # TODO(wgrzelak): define pattern
    type: string
    title: RabbitMQ username
    description: Username to be used for connecting to RabbitMQ
    default: rabbit
  rabbitmq.password:
    type: string
    x-google-marketplace:
      type: GENERATED_PASSWORD
      generatedPassword:
        length: 12
  rabbitmq.serviceAccount:
    type: string
    title: RabbitMQ service account
    x-google-marketplace:
      type: SERVICE_ACCOUNT
      serviceAccount:
        description: >-
          Service account used by RabbitMQ StatefulSet.
          It should have ability to query endpoints in the same namespace
        roles:
        - type: Role
          rulesType: CUSTOM
          rules:
          - apiGroups: [""]
            resources: ["endpoints"]
            verbs: ["get"]
  rabbitmq.persistence.storageClass:
    type: string
    title: StorageClass
    description: You can choose an existing StorageClass or create a new one.
    x-google-marketplace:
      type: STORAGE_CLASS
      storageClass:
        type: SSD
  rabbitmq.persistence.size:
    type: string
    title: Storage size for persistent volumes
    default: "5Gi"
    description: RabbitMQ storage size
    pattern: '^[1-9][0-9]*(\.[0-9]+)?[TGM]i?$'

  metrics.exporter.enabled:
    type: boolean
    title: Enable Stackdriver Metrics Exporter
    description: Your GCP project should have Stackdriver enabled. For non-GCP clusters, export of metrics to Stackdriver is not supported yet
    default: false

required:
- name
- namespace
- rabbitmq.replicas
- rabbitmq.erlangCookie
- rabbitmq.user
- rabbitmq.password
- rabbitmq.serviceAccount
- metrics.exporter.enabled
