mirror of
https://github.com/labring/sealos.git
synced 2026-09-24 15:46:19 +08:00
feat:add payment secvet set env (#1848)
Signed-off-by: 晓杰 <2561589453@qq.com> Signed-off-by: 晓杰 <2561589453@qq.com>
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user