pivotal-cf / cf-rabbitmq-release

A BOSH Release of RabbitMQ
Apache License 2.0
26 stars 55 forks source link

New bosh links doesn't seem to work with previous manifest #553

Open peterellisjones opened 2 years ago

coro commented 2 years ago

Hello Peter, thanks for the issue. Would you mind providing some sample manifests or minimal repro to demonstrate what problem you're seeing? Thanks!

julweber commented 2 years ago

Hi @coro ,

here is an extract of our manifest:

instance_groups:
- azs:
  - z1
  - z2
  - z3
  instances: 1
  jobs:
  - name: cf-cli-6-linux
    release: cf-cli
  - name: rabbitmq-service-broker
    properties:
      cf:
        domain: ((system-domain))
      rabbitmq-service-broker:
        cc_endpoint: http://api.((system-domain))
        logging:
          level: debug
          print_stack_traces: false
        rabbitmq:
          administrator:
            password: ((rabbitmq-broker-password))
            username: admin
          hosts:
          - 192.168.4.2
          - 192.168.4.3
          - 192.168.4.4
          management:
            username: operator
          management_domain: rabbitmq-management.((system-domain))
          operator_set_policy:
            enabled: true
            policy_definition: '{"ha-mode":"exactly","ha-params":2,"ha-sync-mode":"automatic"}'
            policy_name: operator_set_policy
            policy_priority: 50
        route: rabbitmq-broker
        service:
          name: rabbitmq
          password: ((multitenant-rabbitmq-broker-password))
          plan_uuid: ((rabbitmq-broker-plan-uuid))
          shareable: true
          username: admin
          uuid: ((rabbitmq-broker-uuid))
    release: cf-rabbitmq-multitenant-broker
  - consumes:
      nats-tls:
        deployment: cf
        from: nats-tls
    name: route_registrar
    properties:
      nats:
        tls:
          client_cert: ((nats_tls_client_cert))
          client_key: ((nats_tls_client_key))
          enabled: true
      route_registrar:
        routes:
        - name: rabbitmq-broker
          port: 4567
          registration_interval: 20s
          uris:
          - rabbitmq-broker.((system-domain))
        routing_api:
          ca_certs:
          - ((routing_api_server_ca_cert))
          client_cert: ((routing_api_client_cert))
          client_id: ((routing_api_client_id))
          client_private_key: ((routing_api_client_private_key))
          client_secret: ((routing_api_client_secret))
          server_ca_cert: ((routing_api_server_ca_cert))
    release: routing
  - name: bpm
    release: bpm
  - name: broker-registrar
    properties:
      broker:
        host: rabbitmq-broker.((system-domain))
        name: rabbitmq
        password: ((multitenant-rabbitmq-broker-password))
        protocol: https
        service:
          name: rabbitmq
        username: admin
      cf:
        admin_password: ((cf-admin-password))
        admin_username: ((cf-admin-username))
        api_url: https://api.((system-domain))
    release: cf-rabbitmq-multitenant-broker
  - name: broker-deregistrar
    properties:
      broker:
        name: rabbitmq
        service:
          name: rabbitmq
      cf:
        admin_password: ((cf-admin-password))
        admin_username: ((cf-admin-username))
        api_url: https://api.((system-domain))
    release: cf-rabbitmq-multitenant-broker
  migrated_from:
  - name: rabbitmq-broker
  name: rmq-broker
  networks:
  - name: rabbitmq
  stemcell: default
  vm_extensions:
  - rabbitmq_deployment
  vm_type: ((rabbitmq_rabbitmq-broker_vm_type))
- azs:
  - z1
  - z2
  - z3
  instances: 3
  jobs:
  - name: rabbitmq-server
    properties:
      rabbitmq-server:
        administrators:
          broker:
            password: ((rabbitmq-broker-password))
            username: admin
          management:
            password: ((rabbitmq-management-password))
            username: operator
        cluster_partition_handling: autoheal
        config: asgfagasgf
        cookie: rabbit-cluster:aws
        disk_alarm_threshold: '{mem_relative,0.4}'
        plugins:
        - rabbitmq_management
        - rabbitmq_mqtt
        - rabbitmq_stomp
        ports:
        - 5672
        - 5671
        - 1883
        - 8883
        - 61613
        - 61614
        - 15672
        - 15674
        restart_statsdb_cron_schedule: 42 */4 * * *
    provides:
      rabbitmq-server-dns-name:
        as: rabbitmq-server
    release: cf-rabbitmq
  migrated_from:
  - name: rabbitmq
  name: rmq
  networks:
  - name: rabbitmq
  persistent_disk_type: 100GB
  stemcell: default
  vm_extensions:
  - rabbitmq_deployment
  vm_type: ((rabbitmq_rabbitmq_vm_type))
- azs:
  - z1
  - z2
  - z3
  instances: 1
  jobs:
  - name: rabbitmq-haproxy
    properties:
      rabbitmq-haproxy:
        do-not-configure-syslog: true
        stats:
          password: ((haproxy-stats-password))
          username: admin
    release: cf-rabbitmq
  - consumes:
      nats-tls:
        deployment: cf
        from: nats-tls
    name: route_registrar
    properties:
      nats:
        tls:
          client_cert: ((nats_tls_client_cert))
          client_key: ((nats_tls_client_key))
          enabled: true
      route_registrar:
        routes:
        - name: rabbitmq-management
          port: 15672
          registration_interval: 20s
          uris:
          - rabbitmq-management.((system-domain))
        routing_api:
          ca_certs:
          - ((routing_api_server_ca_cert))
          client_cert: ((routing_api_client_cert))
          client_id: ((routing_api_client_id))
          client_private_key: ((routing_api_client_private_key))
          client_secret: ((routing_api_client_secret))
          server_ca_cert: ((routing_api_server_ca_cert))
    release: routing
  - name: bpm
    release: bpm
  name: haproxy
  networks:
  - name: rabbitmq
  stemcell: default
  vm_extensions:
  - rabbitmq_deployment
  vm_type: ((rabbitmq_haproxy_vm_type))
name: rabbitmq
releases:
- name: cf-rabbitmq-multitenant-broker
  version: 107.0.0
- name: routing
  version: 0.228.0
- name: cf-cli
  version: 1.36.0
- name: bpm
  version: 1.1.16
- name: bosh-dns
  version: 1.30.0
- name: nessus_agent
  version: 1.0.45
- name: node-exporter
  version: 5.0.0
- name: cf-rabbitmq
  version: 418.0.0
- name: syslog
  version: 11.7.7
stemcells:
- alias: default
  version: "1.59"
variables:
- name: rabbitmq-broker-password
  type: password
- name: multitenant-rabbitmq-broker-password
  type: password

This is the commit that introduced the problem: https://github.com/pivotal-cf/cf-rabbitmq-release/commit/8fa636e61d7efc3319ac55dd5d6e19179baaf081

In this line: jobs/rabbitmq-server/spec

There's a new required link introduced: rabbitmq-server-dns-name with type: address. Which job should provide this link of type address? Right now we don't know what to link it to.

This is our bosh deployment error:

Task 6363884 | 01:39:56 | Creating new packages: rabbitmq-upgrade-preparation/3d73dc52ee0db14694398f6f8cc1cc0181573c94bec44081450fa7e29065d670 (00:00:01)

Task 6363884 | 01:39:57 | Processing 8 existing packages: Processing 8 existing packages (00:00:00)

Task 6363884 | 01:39:57 | Creating new jobs: rabbitmq-server/47e9b0464396a784590991b442f4d6f110f1fb0a02f42b3e495fa16e23f46ab5 (00:00:00)

Task 6363884 | 01:39:57 | Processing 1 existing job: Processing 1 existing job (00:00:00)

Task 6363884 | 01:39:57 | Release has been created: cf-rabbitmq/418.0.0 (00:00:00)

Task 6363884 Started  Sat Jan 29 01:39:51 UTC 2022

Task 6363884 Finished Sat Jan 29 01:39:57 UTC 2022

Task 6363884 Duration 00:00:06

Task 6363884 done

  releases:

  - name: cf-rabbitmq

-   sha1: 97727a22f05b8e206e58f9eb4fbd7f90f0fb2b17

+   sha1: 28a7693da971297317232919087f035adf11d512

-   url: https://artifactory.wob.vw.vwg:8443/artifactory/gitc/ocf/releases/cf-rabbitmq/cf-rabbitmq-416.0.0.tgz

+   url: https://artifactory.wob.vw.vwg:8443/artifactory/gitc/ocf/releases/cf-rabbitmq/cf-rabbitmq-418.0.0.tgz

-   version: 416.0.0

+   version: 418.0.0

Task 6363885

Task 6363885 | 01:40:03 | Error: Failed to resolve links from deployment 'rabbitmq'. See errors below:

  - Failed to resolve link 'rabbitmq-server-dns-name' with type 'address' from job 'rabbitmq-server' in instance group 'rmq'. Details below:

    - No link providers found

Task 6363885 Started  Sat Jan 29 01:40:03 UTC 2022

Task 6363885 Finished Sat Jan 29 01:40:03 UTC 2022

Task 6363885 Duration 00:00:00

Task 6363885 error

Updating deployment:

  Expected task '6363885' to succeed but state is 'error'

Exit code 1

We already tried linking the "rabbitmq-server" link, but as this is of type "rabbitmq-server" link this does not work.

Kind regards, Julian

ablease commented 2 years ago

Hello @julweber.

Sorry for this, we did indeed introduce a new link, which we require for the prom scraper job. In fact we realized that this link can be optional, and will introduce this in this commit.

A new release will be out soon.

Hopefully this well mean you wont need to provide the link anymore, and your deployments will continue to work as normal :)

Thanks,

Alex Blease + @Zerpet