feat:add payment secvet set env (#1848)

Signed-off-by: 晓杰 <2561589453@qq.com>

Signed-off-by: 晓杰 <2561589453@qq.com>
This commit is contained in:
晓杰
2022-10-09 23:07:58 +08:00
committed by GitHub
parent bc02dce384
commit 3d43c7de8a
5 changed files with 37 additions and 9 deletions
+1 -1
View File
@@ -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
+23
View File
@@ -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
```
@@ -39,6 +39,9 @@ spec:
args:
- --leader-elect
image: controller:latest
envFrom:
- secretRef:
name: payment-secret
imagePullPolicy: IfNotPresent
name: manager
securityContext:
@@ -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
}
@@ -897,6 +897,9 @@ spec:
- --leader-elect
command:
- /manager
envFrom:
- secretRef:
name: payment-secret
image: ghcr.io/labring/user-controller:dev
imagePullPolicy: IfNotPresent
livenessProbe: