小编ube*_*ebu的帖子

如何使用Helm图表拉取环境变量

我在Helm图表的templates目录中有我的deployment.yaml文件,其中包含我将使用Helm运行的容器的几个环境变量.

现在我希望能够从运行helm的任何机器本地提取环境变量,这样我就可以隐藏秘密.

当我使用Helm运行应用程序时,如何传入此函并让helm在本地获取环境变量?

这是我的deployment.yaml文件的一部分

...
...
    spec:
      restartPolicy: Always
      containers:
        - name: sample-app
          image: "sample-app:latest"
          imagePullPolicy: Always
          env:          
            - name: "USERNAME"
              value: "app-username"
            - name: "PASSWORD"
              value: "28sin47dsk9ik"
...
...
Run Code Online (Sandbox Code Playgroud)

当我运行helm时,如何从本地环境变量中提取USERNAME和PASSWORD的值?

这可能吗?如果是,那我该怎么做?

kubernetes kubectl kubernetes-helm

36
推荐指数
8
解决办法
4万
查看次数

恐慌接口转换接口{}是float64而不是int64

我收到以下错误

panic: interface conversion: interface {} is float64, not int64
Run Code Online (Sandbox Code Playgroud)

我不确定 float64 来自哪里 我已将类型设置为 int64 但不确定 float64 来自哪里

type AccessDetails struct {
    AccessUuid   string  `json:"access_uuid"`
    Email        string  `json:"email"`
    Refresh      int64    `json:"refresh"`
    Expiry       int64   `json:"expiry"`
    Permission   string  `json:"permission"`
    Scope        string  `json:"scope"`
}

func GetAccessDetails(c *fiber.Ctx) (*AccessDetails, error) {
    ad := &AccessDetails{}

    cookie := c.Cookies("access_token")

    var err error
    token, err := jwt.Parse(cookie, func(token *jwt.Token) (interface{}, error) {
        return []byte(os.Getenv("ACCESS_SECRET")), nil
    })

    if err != nil {
        return nil, err
    }

    payload := …
Run Code Online (Sandbox Code Playgroud)

types go jwt go-fiber

9
推荐指数
1
解决办法
2万
查看次数

如何在 docker-compose 文件中为 traefik v2 引用自签名 SSL 证书?

在 docker-compose YAML 文件中引用 Træfik v2 自签名证书的文档非常有限。以下是让我们加密的方法

https://github.com/containous/blog-posts/blob/master/2019_09_10-101_docker/docker-compose-07.yml#L11-L14

version: "3.3"

services:
  traefik:
    image: "traefik:v2.0.0"
    command:
      - --entrypoints.web.address=:80
      - --entrypoints.websecure.address=:443
      - --providers.docker
      - --api
      - --certificatesresolvers.leresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory
      - --certificatesresolvers.leresolver.acme.email=your@email.com
      - --certificatesresolvers.leresolver.acme.storage=/acme.json
      - --certificatesresolvers.leresolver.acme.tlschallenge=true
Run Code Online (Sandbox Code Playgroud)

但是我试图检查文档,我没有看到任何方法可以在没有 toml 文件的情况下在 docker-compose 文件中引用自签名证书。

我试过这个:

version: "3.3"

services:
  traefik:
    image: "traefik:v2.0.0"
    command:
      - --entrypoints.web.address=:80
      - --entrypoints.websecure.address=:443
      - --providers.docker
      - --api
      - --providers.docker.tls.cert=/etc/certs/server.crt
      - --providers.docker.tls.key=/etc/certs/server.key
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

无法检索 docker 客户端和服务器主机的信息:连接时出错:获取 https://%2Fvar%2Frun%2Fdocker.sock/v1.24/version:http:服务器给 HTTPS 客户端提供 HTTP 响应” providerName=docker

以下是我使用的资源,它们没有提供任何方法来设置自签名证书以在 docker-compose YAML 文件中为 Træfik v2 启用 HTTPS:

我确实在此页面上看到了这一点:https …

ssl-certificate docker docker-compose tls1.2 traefik

8
推荐指数
1
解决办法
5805
查看次数

如何在 Terraform 中将列表转换为字符串?

join 有效但我想保留双引号连接给我这个

[ben,linda,john]

但我想要这个

["ben", "linda", "john"]

这太疯狂了,花了两个多小时试图解决这个问题我想将列表作为字符串变量传递为什么不能 terraform 只是将我的列表作为字符串接收?为什么这么难?

所以我有

name = ["ben", "linda", "john"]

我想将它传递给 terrform 中使用的变量

var.name

为什么 terrform 不能接受这个?

我收到错误消息,说 epxtected a string,到处搜索后我无法在线找到解决方案

我已经能够得到

[ ben,linda,john ]使用join(",", var.name)但我想要["ben", "linda", "john"]

$ terraform --version
Terraform v0.12.18
+ provider.aws v2.42.0
+ provider.template v2.1.2
Run Code Online (Sandbox Code Playgroud)

interpolation terraform

8
推荐指数
1
解决办法
1万
查看次数

如何使用 golang 在多个转发代理之间轮换发出请求

我想传递 POST 请求的转发代理服务器列表

目前我只能使用单个转发代理来完成此操作

serverProxy := "http://user:password@123.45.67.89:3128"

request, error := http.NewRequest("POST", httpposturl, bytes.NewBuffer(requestJSON))
request.Header.Set("Content-Type", "application/json; charset=UTF-8")

proxyURL, _ := url.Parse(serverProxy)
proxy := http.ProxyURL(proxyURL)
transport := &http.Transport{Proxy: proxy}
client := &http.Client{Transport: transport}
Run Code Online (Sandbox Code Playgroud)

我想做的是将列表传递给url.Parse并希望它使用循环平衡来使用它们

所以像这样

serverProxy := "http://user:password@123.45.67.89:3128, http://user:password@223.45.67.89:3128"
Run Code Online (Sandbox Code Playgroud)

然后它将选择要使用的代理服务器并在请求中轮换它们

这可能吗?

更新:

我希望能够像这样传递旋转的代理服务器

proxyServer := roundRobin("http://round:robin@123.45.67.89:3128, http://robin:round@223.45.67.89:3128")
fmt.Println("proxy server used", proxyServer, "\n")
transport := &http.Transport{Proxy: proxyServer}
client := &http.Client{Transport: transport}
Run Code Online (Sandbox Code Playgroud)

proxy post go

8
推荐指数
1
解决办法
1119
查看次数

如何使用 React 从 url 获取参数?

我正在尝试使用 React 设置验证帐户,并在我的App.js文件中包含以下内容

应用程序.js

import SigninPage from './pages/signin';
import ResetPasswordPage from './pages/resetPassword'
import VerifyAccountPage from './pages/verifyAccount'
...
...
import { useHistory } from 'react-router';
import { logout } from './utils/auth';

function App() {

  const history = useHistory();
  
  return (
    <Router>
      <Switch>
        <Route path='/' component={Home} exact />
        <Route
            path="/signout"
            render={() => {
              logout();
              history.push('/');
              return null;
            }}
        />
        <Route path='/signin' component={SigninPage} exact />
        <Route path='/reset-password?reset-password-token=:resetPasswordToken' component={ResetPasswordPage} />
        <Route path='/verify-account?token=:token&email=:email' component={VerifyAccountPage} exact />
      </Switch>
    </Router>
  );
}

export default App; …
Run Code Online (Sandbox Code Playgroud)

reactjs react-router react-router-dom

6
推荐指数
2
解决办法
5万
查看次数

如何使用哨兵处理 fastapi 错误?

我有以下函数,我正在尝试处理错误并将其发送给哨兵

import sentry_sdk
...
...
...
def create_orders(
    orders: orders_schema.OrderCreate
):
    try:
        query = "INSERT INTO orders VALUES (nextval('orders_id_seq'), :price, :currency, :created_on, :note)"
        values = {
            "price": orders.price,
            "currency": orders.currency,
            "created_on": datetime.utcnow(),
            "note": orders.note
        }
    except Exception as err:
        sentry_sdk.capture_exception(err)
    return database.execute(query, values=values)
Run Code Online (Sandbox Code Playgroud)

这是调用该函数的路由器端点

@router.post("/orders/create", response_model=orders_schema.OrderCreate)
async def create_new_order(
    orders: orders_schema.OrderCreate
):

    await crud.create_orders(orders)
    return {**orders.dict()}
Run Code Online (Sandbox Code Playgroud)

哨兵集成的工作原理是我已经测试过接收其他一些未处理的错误事件,但现在我想实际使用哨兵来满足我的需要;这是为了帮助管理已处理的错误

但是当我尝试向 api 端点发送错误的值或错误的密钥时,没有任何内容发送到哨兵

我是否遗漏了某些内容或者我该怎么做才能发送错误?

python error-handling sentry fastapi

5
推荐指数
1
解决办法
2126
查看次数

Golang 相当于使用 F 字符串的 Python 格式化字符串

在 python 中,可以使用 f-string 来格式化字符串,如下所示

name1 = 'Ele'
name2 = 'Ben'
name3 = 'Frank'
age = 45

print(f"My name is {name1} but i also get called {name2} and at times {name3}. Generally I prefer {name1} and my age is {age}")
Run Code Online (Sandbox Code Playgroud)

golang 相当于什么?我可以在哪里准确指定哪个变量在哪个位置

目前,这就是我在 golang 中看到的所有内容,但它会不必要地创建重复变量,如下所示

name1 := "Ele"
name2 := "Ben"
name3 := "Frank"
age := 45

message := fmt.Sprintf("My name is %s but i also get called %s and at times %s. Generally I prefer %s and my age …
Run Code Online (Sandbox Code Playgroud)

python format go

5
推荐指数
1
解决办法
3024
查看次数

为什么我无法从使用编码数据库中获取 SQL 查询结果?

我有以下内容,但由于某种原因,我没有得到查询结果,而是得到了其他东西

这是我使用的Python包

https://pypi.org/project/databases/

这是文档

https://www.encode.io/databases/database_queries/

from databases import Database
database=Database('postgres://redacted')
await database.connect()
...
...
...
query = "SELECT orders.id AS orders_id, orders.notification_method AS orders_notification_method WHERE shipped=True"
result = await database.fetch_all(query=query))
Run Code Online (Sandbox Code Playgroud)

这是我得到的而不是获取查询结果

打印(结果)

[<databases.backends.postgres.Record object at 0x7fb3f415ac50>, <databases.backends.postgres.Record object at 0x7fb3f415ae30>, <databases.backends.postgres.Record object at 0x7fb3f415a470>, <databases.backends.postgres.Record object at 0x7fb3f415af50>, <databases.backends.postgres.Record object at 0x7fb3f415ad70>, <databases.backends.postgres.Record object at 0x7fb3f415ab30>, <databases.backends.postgres.Record object at 0x7fb3f415a7d0>, <databases.backends.postgres.Record object at 0x7fb3f415ae90>]
Run Code Online (Sandbox Code Playgroud)

type 表示这是一个列表

打印(类型(结果))

<class 'list'>
Run Code Online (Sandbox Code Playgroud)

如何返回 SQL 查询的实际结果(即返回查询中的所有行)?

我真正想做的事

这是sqlalchemy有效的版本,但使用databases包无法正常工作,如上所述

我非常想要实现的是从 sqlalchemy …

python postgresql sqlalchemy python-asyncio fastapi

4
推荐指数
1
解决办法
2619
查看次数

将 kubernetes yaml 转换为 kubectl cli 命令

kubectl 我正在寻找以下 yaml 文件的单个命令或命令组合

---
#
# Create a role, `pod-reader`, that can list pods and
# bind the default service account in the `mynamespace` namespace
# to that role.
#

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: pod-reader
  namespace: mynamespace
rules:
- apiGroups: [""] # "" indicates the core API group
  resources: ["pods"]
  verbs: ["get", "watch", "list"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: read-pods
  namespace: mynamespace
subjects:
- kind: Group
  name: system:serviceaccounts:mynamespace
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: pod-reader …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubectl

3
推荐指数
1
解决办法
578
查看次数