Kong / deck

decK: Configuration management and drift detection for Kong

Home Page:https://docs.konghq.com/deck/overview

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Plugins scoped to consumers groups are shown as global

aldredb opened this issue · comments

I have rate limiting advanced plugin attached to a consumer group (see deck file below). When performing deck sync, the plugin is shown as global instead. I used deck v1.26.0 against Kong EE 3.4.0.0. This is confusing and potentially misleading

deck sync --headers "Kong-Admin-Token:admin"
creating consumer Jane
creating consumer Jill
creating consumer Amal
creating consumer Joe
creating consumer-group fun-group
creating consumer-group Gold
creating service mockbin_service
creating key-auth sword for consumer Jill
creating key-auth sword for consumer Joe
creating key-auth sword for consumer Jane
creating key-auth sword for consumer Amal
creating route mockbin_route
creating consumer-group-consumer Jane
creating consumer-group-consumer Amal
creating consumer-group-consumer Joe
creating plugin key-auth for service mockbin_service
creating plugin rate-limiting-advanced (global)
_format_version: "3.0"
consumer_groups:
- name: Gold
  plugins:
  - config:
      consumer_groups: null
      dictionary_name: kong_rate_limiting_counters
      disable_penalty: false
      enforce_consumer_groups: false
      error_code: 429
      error_message: API rate limit exceeded
      header_name: null
      hide_client_headers: false
      identifier: consumer
      limit:
      - 5
      namespace: IyKX8pI4hLLR1CYozJxZo0LAkVQawgsx
      path: null
      redis:
        cluster_addresses: null
        connect_timeout: null
        database: 0
        host: null
        keepalive_backlog: null
        keepalive_pool_size: 30
        password: null
        port: null
        read_timeout: null
        send_timeout: null
        sentinel_addresses: null
        sentinel_master: null
        sentinel_password: null
        sentinel_role: null
        sentinel_username: null
        server_name: null
        ssl: false
        ssl_verify: false
        timeout: 2000
        username: null
      retry_after_jitter_max: 0
      strategy: local
      sync_rate: -1
      window_size:
      - 30
      window_type: sliding
    name: rate-limiting-advanced
- name: fun-group
consumers:
- groups:
  - name: Gold
  keyauth_credentials:
  - key: AmalPassword
  username: Amal
- custom_id: Jane
  groups:
  - name: fun-group
  keyauth_credentials:
  - key: JanePassword
  username: Jane
- custom_id: Jill
  keyauth_credentials:
  - key: JillPassword
  username: Jill
- custom_id: Joe
  groups:
  - name: fun-group
  keyauth_credentials:
  - key: JoePassword
  username: Joe
services:
- connect_timeout: 60000
  enabled: true
  host: mockbin.org
  name: mockbin_service
  path: /request
  plugins:
  - config:
      anonymous: null
      hide_credentials: false
      key_in_body: false
      key_in_header: true
      key_in_query: true
      key_names:
      - apikey
      run_on_preflight: true
    enabled: true
    name: key-auth
    protocols:
    - grpc
    - grpcs
    - http
    - https
    - ws
    - wss
  port: 8000
  protocol: http
  read_timeout: 60000
  retries: 5
  routes:
  - https_redirect_status_code: 426
    name: mockbin_route
    path_handling: v0
    paths:
    - /mockbin
    preserve_host: false
    protocols:
    - http
    - https
    regex_priority: 0
    request_buffering: true
    response_buffering: true
    strip_path: true
  write_timeout: 60000