Cloud Foundry bosh 错误 140003:未知资源池

Cloud Foundry bosh Error 140003: unknown resource pool

我正在尝试设置服务代理以将 postgres 添加到我们的 Cloud Foundry 安装中。我们 运行 在 vmWare 上安装我们的系统。我正在使用此版本来做到这一点:

cf-contrib-release

我在bosh中添加了release:

 #bosh releases
Acting as user 'director' on 'microbosh-ba846726bed7032f1fd4'

+-----------------------+----------------------+-------------+
| Name                  | Versions             | Commit Hash |
+-----------------------+----------------------+-------------+
| cf                    | 208.12*              | a0de569a+   |
| cf-autoscaling        | 13*                  | 927bc7ed+   |
| cf-metrics            | 34*                  | 22f7e1e1    |
| cf-mysql              | 20*                  | caa23b3d+   |
|                       | 22*                  | af278086+   |
| cf-rabbitmq           | 161*                 | 4d298aec    |
| cf-riak-cs            | 10*                  | 5e7e46c9+   |
| cf-services-contrib   | 6*                   | 57fd2098+   |
| docker                | 23*                  | 82346881+   |
| newrelic_broker       | 1.3*                 | 1ce3471d+   |
| notifications-with-ui | 18*                  | 490b6446+   |
| postgresql-docker     | 4*                   | a53c9333+   |
| push-console-release  | console-du-jour-203* | d2d31585+   |
| spring-cloud-broker   | 1.0.0*               | efd69612    |
+-----------------------+----------------------+-------------+
(*) Currently deployed
(+) Uncommitted changes

Releases total: 13

我根据以下说明在我的 yaml 文件中设置了我的资源池和作业: http://bosh.io/docs/vsphere-cpi.html#resource-pools

这是我们集群的样子:

vmware cluster

这是我放入 yaml 文件的内容:

resource_pools:
- name: default
  network: default
  stemcell:
    name: bosh-vsphere-esxi-ubuntu-trusty-go_agent
    version: '2865.1'
  cloud_properties:
    cpu: 2
    ram: 4096
    disk: 10240
    datacenters:
    - name: 'Universal City'
      clusters:
      - USH_UCS_CLOUD_FOUNDRY_NONPROD_01: {resource_pool: 'USH_UCS_CLOUD_FOUNDRY_NONPROD_01_RP'}


jobs:
  - name: gateways
    release: cf-services-contrib
    templates:
    - name: postgresql_gateway_ng
    instances: 1
    resource_pool: 'USH_UCS_CLOUD_FOUNDRY_NONPROD_01_RP'
    networks:
      - name: default
        default: [dns, gateway]
    properties:
      # Service credentials
      uaa_client_id: "cf"
      uaa_endpoint: http://uaa.devcloudwest.example.com
      uaa_client_auth_credentials:
        username: admin
        password: secret

当我 运行 'bosh deploy' 时我收到一个错误消息:

Error 140003: Job `gateways' references an unknown resource pool `USH_UCS_CLOUD_FOUNDRY_NONPROD_01_RP'

这是我的完整 yaml 文件:

name: cf-22b9f4d62bb6f0563b71 
director_uuid: fd713790-b1bc-401a-8ea1-b8209f1cc90c 

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

compilation:
  workers: 3
  network: default
  reuse_compilation_vms: true
  cloud_properties:
    ram: 5120 
    disk: 10240 
    cpu: 2

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

networks:
- name: default
  type: manual 
  subnets:
  - range: exam 10.114..130.0/24
    gateway: exam 10.114..130.1
    cloud_properties:
      name: 'USH_UCS_CLOUD_FOUNDRY'


#resource_pools:
#  - name: common
#    network: default
#    size: 8
#    stemcell:
#      name: bosh-vsphere-esxi-ubuntu-trusty-go_agent
#      version: '2865.1'


resource_pools:
- name: default
  network: default
  stemcell:
    name: bosh-vsphere-esxi-ubuntu-trusty-go_agent
    version: '2865.1' 
  cloud_properties:
    cpu: 2
    ram: 4096 
    disk: 10240
    datacenters:
    - name: 'Universal City' 
      clusters:
      - USH_UCS_CLOUD_FOUNDRY_NONPROD_01: {resource_pool: 'USH_UCS_CLOUD_FOUNDRY_NONPROD_01_RP'}

jobs:
  - name: gateways
    release: cf-services-contrib
    templates:
    - name: postgresql_gateway_ng
    instances: 1
    resource_pool: 'USH_UCS_CLOUD_FOUNDRY_NONPROD_01_RP' 
    networks:
      - name: default
        default: [dns, gateway]
    properties:
      # Service credentials
      uaa_client_id: "cf"
      uaa_endpoint: http://uaa.devcloudwest.example.com
      uaa_client_auth_credentials:
        username: admin
        password: secret 


  - 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]

properties:
  networks:
    apps: default
    management: default

  cc:
    srv_api_uri: http://api.devcloudwest.example.com

  nats:
    address: exam 10.114..130.11 
    port: 25555 
    user: nats #CHANGE
    password: secret 
    authorization_timeout: 5

  service_plans:
    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

  postgresql_gateway:
    token: f75df200-4daf-45b5-b92a-cb7fa1a25660
    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: secret 

下面是该错误的调试输出要点:

postgres_2423_debug.txt

jobs 块的 docs 表示:

  • resource_pool [String, required]: A valid resource pool name from the Resource Pools block. BOSH runs instances of this job in a VM from the named resource pool.

这需要匹配您的 resource_pools 之一的 name,即 default,而不是 vSphere 中资源池的名称。

唯一直接引用 IaaS 的部分是 cloud_properties。资源的特定名称(如 vSphere 中的网络、集群或数据中心,或 AWS 中的子网、可用区和实例类型)仅显示在 cloud_properties.

的位置

您使用该数据在更高的抽象级别 IaaS-agnostic 上定义 "networks" 和 "resource pools",例如除了云属性,无论您是部署到 vSphere、AWS、OpenStack 等,您为资源池提供的规范都是相同的。

然后您的作业通过您为抽象提供的逻辑名称引用这些网络、资源池等。特别是,作业不需要任何 IaaS-specific 配置,只需引用您在清单中其他地方定义的逻辑网络和资源池。