我在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的值?
这可能吗?如果是,那我该怎么做?
我收到以下错误
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) 在 docker-compose YAML 文件中引用 Træfik v2 自签名证书的文档非常有限。以下是让我们加密的方法:
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 …
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) 我想传递 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) 我正在尝试使用 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) 我有以下函数,我正在尝试处理错误并将其发送给哨兵
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 中,可以使用 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包
这是文档
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 …
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) go ×3
python ×3
fastapi ×2
kubectl ×2
kubernetes ×2
docker ×1
format ×1
go-fiber ×1
jwt ×1
post ×1
postgresql ×1
proxy ×1
react-router ×1
reactjs ×1
sentry ×1
sqlalchemy ×1
terraform ×1
tls1.2 ×1
traefik ×1
types ×1