apache / apisix-helm-chart

Apache APISIX Helm Chart
https://apisix.apache.org/
Apache License 2.0
219 stars 209 forks source link

Unable to install and enable plugins from helm chart #642

Open yagelkt opened 9 months ago

yagelkt commented 9 months ago

I installed apisix successfully helm chart with ArgoCd application.

I then tried to add the "limit-count" plugin, but when I open the dashboard I don't see this plugin.

I can add this plugin manually.

This is the Apisix application yaml I used:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: loadbalancer-apisix
  namespace: argocd
  annotations:
    argocd.argoproj.io/sync-wave: "1"
  finalizers:
  - resources-finalizer.argocd.argoproj.io
spec:
  destination:
    namespace: api-gw
    server: https://kubernetes.default.svc
  project: default
  source:
    chart: apisix
    repoURL: https://charts.apiseven.com
    targetRevision: v2.1.0
    helm:
      releaseName: apisix
      values: |
        service:
          type: LoadBalancer
          annotations:
            service.beta.kubernetes.io/aws-load-balancer-internal: "true"
            service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
            service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tls 
            service.beta.kubernetes.io/aws-load-balancer-additional-resource-tags: Environment=dev
        ingress-controller:
          enabled: "true"
          config:
            apisix:
              serviceNamespace: "api-gw"
              adminAPIVersion: v3

        plugins: ["limit-count"]

        pluginAttrs: {
          "limit-count": {
            "count": 2,
            "time_window": 60,
            "rejected_code": 503,
            "key": "remote_addr",
            "policy": "redis",
            "redis_host": "apisix-redis-master.default.svc.cluster.local",
            "redis_port": 6379,
            "redis_password": "my_pass",
            "redis_database": 1,
            "redis_timeout": 1001
          }
        }

        dashboard:
          enabled: "true"
  syncPolicy:
    automated: {}
    syncOptions:
    - CreateNamespace=true

Any idea why it didn't work? (I don't think it has anything to do with argocd - it just a normal helm installation).


I also tried to edit the configmap to enable the plugin, but it didn't work also:

apiVersion: v1
kind: ConfigMap
metadata:
  name: apisix-configmap
  namespace: api-gw
data:
  config.yaml: |
    plugins:
      limit-count:
        enable: true
        config:
          count: 100
ventaubain commented 9 months ago

I have the same problem. I have to use the admin API to enable complete prometheus metrics logs (bandwith and HTTP).

Via helm (no work):

  plugins:
    - prometheus
  prometheus:
    enabled: true
    metrics:
      http_status:
        extra_labels:
          - upstream_addr: $upstream_addr
          - status: $upstream_status  # The label name does not need to be the same as the variable name.
      http_latency:
        extra_labels:
          - upstream_addr: $upstream_addr
      bandwidth:
        extra_labels:
          - upstream_addr: $upstream_addr
    default_buckets:
     - 10
     - 50
     - 100
     - 200
     - 500
pluginAttrs:
  prometheus:
    enable_export_server: false

Via API (work):

curl http://127.0.0.1:9180/apisix/admin/global_rules  -H 'X-API-KEY: <YOUR_TOKEN>' -i -X PUT -d '
{ 
    "id": "rule-for-metrics",
    "plugins": {
      "prometheus": {
        "disable": false
      }
    }
}'
adussarps commented 3 months ago

Any news on this issue?