From 3d43c7de8a52c78616a9cb89cdfced0388b5f4f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=99=93=E6=9D=B0?= <87080562+xiao-jay@users.noreply.github.com> Date: Sun, 9 Oct 2022 23:07:58 +0800 Subject: [PATCH] feat:add payment secvet set env (#1848) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 晓杰 <2561589453@qq.com> Signed-off-by: 晓杰 <2561589453@qq.com> --- controllers/user/Makefile | 2 +- controllers/user/README.md | 23 +++++++++++++++++++ controllers/user/config/manager/manager.yaml | 3 +++ .../user/controllers/payment_controller.go | 15 ++++++------ controllers/user/deploy/manifests/deploy.yaml | 3 +++ 5 files changed, 37 insertions(+), 9 deletions(-) diff --git a/controllers/user/Makefile b/controllers/user/Makefile index ab65335d9..57fe40b09 100644 --- a/controllers/user/Makefile +++ b/controllers/user/Makefile @@ -123,7 +123,7 @@ ENVTEST ?= $(LOCALBIN)/setup-envtest ## Tool Versions KUSTOMIZE_VERSION ?= v3.8.7 -CONTROLLER_TOOLS_VERSION ?= v0.9.0 +CONTROLLER_TOOLS_VERSION ?= v0.10.0 KUSTOMIZE_INSTALL_SCRIPT ?= "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" .PHONY: kustomize diff --git a/controllers/user/README.md b/controllers/user/README.md index ec5622052..0f71dff3e 100644 --- a/controllers/user/README.md +++ b/controllers/user/README.md @@ -482,4 +482,27 @@ metadata: spec: userID: 51d368d3-06c7-42c5-97b1-c1f0d0c8636e amount: 1 +``` + +payment need some env,add secret is a good choice,inject into the env of the Pod. +Note: The content in secret needs to be converted to base 64, don't convert the double quotes into it. +```yaml +apiVersion: v1 +kind: Secret +metadata: + name: paymentSecret +type: Opaque +data: + USER_NAME: xxxx + PASSWORD: xxxx +``` + +example of set the secret env of the crd +file path :config/manager/manager.yaml +```yaml +image: controller:latest +envFrom: +- secretRef: + name: payment-secret +imagePullPolicy: IfNotPresent ``` \ No newline at end of file diff --git a/controllers/user/config/manager/manager.yaml b/controllers/user/config/manager/manager.yaml index 5b03147cc..7a901081e 100644 --- a/controllers/user/config/manager/manager.yaml +++ b/controllers/user/config/manager/manager.yaml @@ -39,6 +39,9 @@ spec: args: - --leader-elect image: controller:latest + envFrom: + - secretRef: + name: payment-secret imagePullPolicy: IfNotPresent name: manager securityContext: diff --git a/controllers/user/controllers/payment_controller.go b/controllers/user/controllers/payment_controller.go index a143a68a1..ade865c39 100644 --- a/controllers/user/controllers/payment_controller.go +++ b/controllers/user/controllers/payment_controller.go @@ -22,12 +22,12 @@ import ( "time" "github.com/go-logr/logr" + "k8s.io/apimachinery/pkg/runtime" "github.com/labring/sealos/pkg/pay" "github.com/mdp/qrterminal" - "k8s.io/apimachinery/pkg/runtime" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/log" @@ -56,12 +56,11 @@ type PaymentReconciler struct { // For more details, check Reconcile and its Result here: // - https://pkg.go.dev/sigs.k8s.io/controller-runtime@v0.12.2/pkg/reconcile func (r *PaymentReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { - log := log.FromContext(ctx) - + r.Logger = log.FromContext(ctx) p := &userv1.Payment{} if err := r.Get(ctx, req.NamespacedName, p); err != nil { - log.Error(err, "get payment failed") - return ctrl.Result{}, err + r.Logger.Error(err, "get payment failed") + return ctrl.Result{}, client.IgnoreNotFound(err) } if p.Status.TradeNO != "" { return ctrl.Result{}, nil @@ -69,21 +68,21 @@ func (r *PaymentReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct if p.Status.Status == "" { p.Status.Status = "Created" if err := r.Status().Update(ctx, p); err != nil { - log.Error(err, "update payment failed: %v", *p) + r.Logger.Error(err, "update payment failed: %v", *p) return ctrl.Result{Requeue: true}, err } } tradeNO := pay.GetRandomString(32) codeURL, err := pay.WechatPay(p.Spec.Amount, p.Spec.UserID, tradeNO, "", os.Getenv(pay.CallbackURL)) if err != nil { - log.Error(err, "get codeURL failed") + r.Logger.Error(err, "get codeURL failed") return ctrl.Result{Requeue: true, RequeueAfter: time.Second}, err } p.Status.CodeURL = codeURL p.Status.TradeNO = tradeNO if err := r.Status().Update(ctx, p); err != nil { - log.Error(err, "update payment failed: %v", *p) + r.Logger.Error(err, "update payment failed: %v", *p) return ctrl.Result{}, err } diff --git a/controllers/user/deploy/manifests/deploy.yaml b/controllers/user/deploy/manifests/deploy.yaml index 4b81da396..4826c7563 100644 --- a/controllers/user/deploy/manifests/deploy.yaml +++ b/controllers/user/deploy/manifests/deploy.yaml @@ -897,6 +897,9 @@ spec: - --leader-elect command: - /manager + envFrom: + - secretRef: + name: payment-secret image: ghcr.io/labring/user-controller:dev imagePullPolicy: IfNotPresent livenessProbe: