name: cf-services-contrib
director_uuid: DIRECTOR_UUID   # CHANGE
---

releases:
  - name: cf-services-contrib
    version: 1

compilation:
  workers: 3
  network: default
  reuse_compilation_vms: true
  cloud_properties:
    instance_type: m1.small # CHANGE

update:
  canaries: 1
  canary_watch_time: 30000-60000
  update_watch_time: 30000-60000
  max_in_flight: 4

networks:
  - name: floating
    type: vip
    cloud_properties: {}
  - name: default
    type: dynamic
    cloud_properties:
      security_groups:
        - cf # CHANGE

resource_pools:
  - name: common
    network: default
    size: 8
    stemcell:
      name: bosh-stemcell
      version: latest
    cloud_properties:
      instance_type: m1.small # CHANGE

jobs:
  - name: gateways
    release: cf-services-contrib
    template:
    - elasticsearch_gateway
    - mongodb_gateway
    - memcached_gateway
    - postgresql_gateway_ng
    - redis_gateway
    - rabbit_gateway
    - vblob_gateway
    instances: 1
    resource_pool: common
    networks:
      - name: default
        default: [dns, gateway]
    properties:
      # Service credentials
      uaa_client_id: "cf"
      uaa_endpoint: http://uaa.mycloud.com # CHANGE
      uaa_client_auth_credentials:
        username: services
        password: SERVICES_PASSWORD # CHANGE

  - name: mongodb_service_node
    release: cf-services-contrib
    template: mongodb_node_ng
    instances: 1
    resource_pool: common
    persistent_disk: 10000
    properties:
      plan: default
    networks:
      - name: default
        default: [dns, gateway]

  - name: memcached_service_node
    release: cf-services-contrib
    template: memcached_node_ng
    instances: 1
    resource_pool: common
    persistent_disk: 10000
    properties:
      plan: default
    networks:
      - name: default
        default: [dns, gateway]

  - name: vblob_service_node
    release: cf-services-contrib
    template: vblob_node_ng
    instances: 1
    resource_pool: common
    persistent_disk: 10000
    properties:
      plan: default
    networks:
      - name: default
        default: [dns, gateway]

  - name: elasticsearch_service_node
    release: cf-services-contrib
    template: elasticsearch_node
    instances: 1
    resource_pool: common
    persistent_disk: 10000
    properties:
      plan: "free"
    networks:
      - name: default
        default: [dns, gateway]

  - name: postgresql_service_node
    release: cf-services-contrib
    template: postgresql_node_ng
    instances: 1
    resource_pool: common
    persistent_disk: 10000
    properties:
      postgresql_node:
        plan: default
    networks:
      - name: default
        default: [dns, gateway]

  - name: redis_service_node
    release: cf-services-contrib
    template: redis_node_ng
    instances: 1
    resource_pool: common
    persistent_disk: 10000
    properties:
      plan: default
    networks:
      - name: default
        default: [dns, gateway]

  - name: rabbit_service_node
    release: cf-services-contrib
    template: rabbit_node_ng
    instances: 1
    resource_pool: common
    persistent_disk: 10000
    properties:
      plan: default
    networks:
      - name: default
        default: [dns, gateway]

properties:
  networks:
    apps: default
    management: default

  cc:
    srv_api_uri: http://api.mycloud.com #CHANGE

  nats:
    address: 0.core.default.cf.bosh #CHANGE
    port: 4222 #CHANGE
    user: nats #CHANGE
    password: NATS_PASSWORD #CHANGE
    authorization_timeout: 5

  service_plans:
    mongodb:
      default:
        description: "Developer, shared VM, 250MB storage, 10 connections"
        free: true
        job_management:
          high_water: 230
          low_water: 20
        configuration:
          capacity: 125
          max_clients: 10
          quota_files: 4
          quota_data_size: 240
          enable_journaling: true
          backup:
            enable: true
          lifecycle:
            enable: true
            serialization: enable
            snapshot:
              quota: 1

    memcached:
      default:
        description: "Developer"
        free: true
        job_management:
          high_water: 230
          low_water: 20
        configuration:
          capacity: 125

    vblob:
      default:
        description: "Developer"
        free: true
        job_management:
          high_water: 230
          low_water: 20
        configuration:
          capacity: 125

    elasticsearch:
      "free":
        description: "Developer"
        free: true
        job_management:
          high_water: 230
          low_water: 20
        configuration:
          capacity: 125

    postgresql:
      default:
        description: "Developer, 250MB storage, 10 connections"
        free: true
        job_management:
          high_water: 230
          low_water: 20
        configuration:
          capacity: 125
          max_clients: 10
          quota_files: 4
          quota_data_size: 240
          enable_journaling: true
          backup:
            enable: false
          lifecycle:
            enable: false
            serialization: enable
            snapshot:
              quota: 1

    redis:
      default:
        description: "Developer, 250MB storage, 10 connections"
        free: true
        job_management:
          high_water: 230
          low_water: 20
        configuration:
          capacity: 125
          max_clients: 10
          quota_files: 4
          quota_data_size: 240
          enable_journaling: true
          backup:
            enable: false
          lifecycle:
            enable: false
            serialization: enable
            snapshot:
              quota: 1


    rabbit:
      default:
        description: "Developer, 250MB storage, 10 connections"
        free: true
        job_management:
          high_water: 230
          low_water: 20
        configuration:
          capacity: 125
          max_clients: 10
          quota_files: 4
          quota_data_size: 240
          enable_journaling: true
          bandwidth_quotas:
            per_second: 1
            per_day: 10
            time_window: 86400          
          backup:
            enable: false
          lifecycle:
            enable: false
            serialization: enable
            snapshot:
              quota: 1

  mongodb_gateway:
    token: MONGODB_SERVICE_TOKEN # CHANGE - the token you use later with `cf create-service-auth-token`
    default_plan: default
    supported_versions: ["2.2"]
    version_aliases:
      current: "2.2"
    cc_api_version: v2
  mongodb_node:
    supported_versions: ["2.2"]
    default_version: "2.2"
    max_tmp: 900

  memcached_gateway:
    token: MEMCACHED_SERVICE_TOKEN # CHANGE - the token you use later with `cf create-service-auth-token`
    supported_versions: ["1.4"]
    version_aliases:
      current: "1.4"
    cc_api_version: v2
  memcached_node:
    supported_versions: ["1.4"]
    default_version: "1.4"

  vblob_gateway:
    token: VBLOB_SERVICE_TOKEN # CHANGE - the token you use later with `cf create-service-auth-token`
    supported_versions: ["0.51"]
    version_aliases:
      current: "0.51"
    cc_api_version: v2
  vblob_node:
    supported_versions: ["0.51"]
    default_version: "0.51"

  elasticsearch_gateway:
    token: ELASTICSEARCH_SERVICE_TOKEN # CHANGE - the token you use later with `cf create-service-auth-token`
    supported_versions: ["0.20"]
    version_aliases:
      current: "0.20"
    cc_api_version: v2
  elasticsearch_node:
    supported_versions: ["0.20"]
    default_version: "0.20"

  postgresql_gateway:
    token: POSTGRESQL_SERVICE_TOKEN # CHANGE - the token you use later with `cf create-service-auth-token`
    default_plan: default
    supported_versions: ["9.3"]
    version_aliases:
      current: "9.3"
    cc_api_version: v2
  postgresql_node:
    supported_versions: ["9.3"]
    default_version: "9.3"
    max_tmp: 900
    password: POSTGRESQL_ROOT_PASSWORD # CHANGE

  redis_gateway:
    token: REDIS_SERVICE_TOKEN # CHANGE - the token you use later with `cf create-service-auth-token`
    default_plan: default
    supported_versions: ["2.6"]
    version_aliases:
      current: "2.6"
    cc_api_version: v2
  redis_node:
    supported_versions: ["2.6"]
    default_version: "2.6"
    max_tmp: 900

  rabbit_gateway:
    token: RABBIT_SERVICE_TOKEN # CHANGE - the token you use later with `cf create-service-auth-token`
    default_plan: "default"
    supported_versions: ["3.0"]
    version_aliases:
      current: "3.0"
    cc_api_version: v2
  rabbit_node:
    supported_versions: ["3.0"]
    default_version: "3.0"
    max_tmp: 900
    m_actions: ["restart"] #restarts crashed rabbitMQ nodes
    
  swift_gateway:
    token: SWIFT_SERVICE_TOKEN # CHANGE - the token you use later with `cf create-service-auth-token`
    default_plan: "free"
    supported_versions: ["1.0"]
    cc_api_version: v2
  swift_node:
    supported_versions: ["1.0"]
    default_version: "1.0"
    name_suffix: 'a9s.eu'
    swift_operator_role_id: '2021022271a74ecdb94ceeeeeae657ad'
    admin_reseller_role_id: '3032033371a74ecdb94asedt4df896bj'
    fog:
      identity:
        provider: 'OpenStack'
        openstack_username: "username"
        openstack_api_key: "password"
        openstack_auth_url:  'https://auth.example.de:5000/v2.0/tokens'
        openstack_service_type: ['identity']
      storage:
        provider: 'HP'
        hp_access_key: "yourtenant"
        hp_secret_key: "yourpass"
        hp_tenant_id: "eee1c14691d840f6b52a24c6c4cc2a0e"
        hp_auth_uri:  'https://auth.example.de:5000/v2.0/'
        hp_use_upass_auth_style: true
        hp_avl_zone: 'nova'
        hp_auth_version: "v2"
        self_signed_ssl: false
        hp_service_type: "Object Storage"