中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

apisix~升級原始(shi)插(cha)件的方法

擴展apisix原始插件

當apisix提供的插件不能滿足我們要求時,我們可能需要將它的plugin進行個性化擴展,例如一個jwt認證插件jwt-auth,它本身具有(you)驗(yan)證jwt有(you)效性功(gong)能(neng),支(zhi)持rs256,hs256等常用簽名算法,但在驗(yan)證之后(hou),如果希望將jwt中的用戶信(xin)息(xi)取出(chu)來,并放請求頭向上游傳遞(di),目(mu)前這個插件是不支(zhi)持的,我(wo)們需要擴(kuo)展一下它,下面(mian)看具體的步驟。

  1. 下載apisix源代碼,找個原來的插件,在上面直接開發
  2. 找到_M.rewirte方法,在解析jwt之后,添加向下一請求頭寫入的代碼
core.request.add_header(ctx,"sub", jwt_obj.payload.sub)
core.request.add_header(ctx,"preferred_username", jwt_obj.payload.preferred_username)
  1. 將插件內容修改后,放到我們自己擴展的目錄,文件名還是jwt-auth.lua
  2. 部署configmap,我們可以通過下面語句來實現由lua文件到configMap的導入
kubectl create configmap jwt-auth-app-header-config -n apisix --from-file=./jwt-auth-app-header.lua
  1. 在values.override.yaml文件中,添加jwt-auth的部署如下
apisix:
  customPlugins:
    enabled: true
    luaPath: "/opt/?.lua"
    plugins:
      - name: "jwt-auth"
        configMap:
          name: "jwt-auth-config"
          mounts:
            - key: "jwt-auth.lua"
              path: "/opt/apisix/plugins/jwt-auth.lua"
  1. 升級你的apisix服務即可helm -n apisix upgrade apisix -f ./apisix/values.override.yaml ./apisix,之后重新訪問服務,請求頭就出現了sub這些擴展字段

一鍵更新擴展插件包的方法

  • 遍歷插件目錄下所有lua文件
  • 生成configmap的名稱,以lua文件主名-config為標準
  • 使用kubectl create | kubectl apply -f -,存在就從文件更新,不存在就從文件建立configmap

具體sh腳本代碼

#!/bin/sh
# 不存大就建立,存在就更新
for file in "$(pwd)"/*.lua
do
    if [ -f "$file" ]; then
        echo "通過lua腳本更新configmap配置:$file"
        configName=$(basename "$file" .lua)
        kubectl create configmap "$configName"-config -n apisix --from-file="$file" --dry-run=true -o yaml |  kubectl apply -f -
    fi
done
posted @ 2024-05-15 09:25  張占嶺  閱讀(158)  評論(0)    收藏  舉報