我正在寻找正确的方法来测试下面的代码,我找不到任何示例如何做到这一点。只有main_test.go但缺少 main.go,对我来说,如何使用它并不明显。我也浏览了 Github issues,但找不到任何有用的东西。
import (
"fmt"
"k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
fake "k8s.io/client-go/kubernetes/fake"
"time"
)
func GetNamespaceCreationTime(namespace string) int64 {
config, err := rest.InClusterConfig()
if err != nil {
panic(err.Error())
}
clientset, err := kubernetes.NewForConfig(config)
if err != nil {
panic(err.Error())
}
ns, err := clientset.CoreV1().Namespaces().Get(namespace, metav1.GetOptions{})
if err != nil {
panic(err.Error())
}
fmt.Printf("%v \n", ns.CreationTimestamp)
return (ns.GetCreationTimestamp().Unix())
}
Run Code Online (Sandbox Code Playgroud)
我认为我的测试应该如下所示,但是我该如何使用config := fake.NewSimpleClientset(),我应该将它传递到GetNamespaceCreationTime函数中吗?
func TestGetNamespaceCreationTime(t *testing.T) {
config := fake.NewSimpleClientset()
got …Run Code Online (Sandbox Code Playgroud) 如何仅列出具有给定前缀 ( prefix_) 的数据库?
package main
import (
"context"
"fmt"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
"log"
)
type foo struct {
Value string
}
func main() {
clientOptions := options.Client().ApplyURI("mongodb://10.0.12.76:27018")
client, err := mongo.Connect(context.TODO(), clientOptions)
if err != nil {
log.Fatal(err)
}
db := [3]string{"prefix_foo", "prefix_bar", "bar"}
for _, element := range db {
_, err := client.Database(element).Collection("placeholder").InsertOne(context.TODO(), foo{"sth"})
if err != nil {
log.Fatal(err)
}
}
filter := bson.D{{}}
dbs, err := client.ListDatabaseNames(context.TODO(), filter)
if err != nil …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用此脚本从 Mongo / K8S 进行备份
export POD=$(kubectl get pods -l app=mongo-client -o custom-columns=:metadata.name -n espace-client)
kubectl exec "$POD" sh -c 'mongodump --archive' > ~/backup/mongo/$(date +%F).db.dump
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Error from server (NotFound): pods "\nmongo-client-79667cc85d-tsg72" not found
Run Code Online (Sandbox Code Playgroud)
当我检查豆荚时,我可以看到 mongo-client-79667cc85d-tsg72
当我将名称放在没有变量的情况下时,效果很好,所以可能是因为初始\n. 我怎样才能避免它?如何从名称中删除它?
请看下面的命令:
helm install --name mymssql stable/mssql-linux --set acceptEula.value=Y --set edition.value=Developer
Run Code Online (Sandbox Code Playgroud)
我从这里得到的:https : //github.com/helm/charts/tree/master/stable/mssql-linux
仅仅一个月后,似乎不再需要 --name ,所以我现在有了(请参阅此处:Helm install unknown flag --name):
helm install mymssql stable/mssql-linux --set acceptEula.value=Y --set edition.value=Developer
Run Code Online (Sandbox Code Playgroud)
我现在看到的错误是:
Error: failed to download "stable/mssql-linux" (hint: running `helm repo update` may help)
Run Code Online (Sandbox Code Playgroud)
问题是什么?
更新
从答案开始;上面的命令现在可以工作,但是我无法从本地 PC 使用 SQL Studio Manager 连接到数据库。我遵循的其他步骤是:
1) kubectl expose deploymentmymssql-mssql-linux --type=NodePort --name=mymssql-mssql-linux-service
2) kubectl get service- 下面的服务是相关的 mymssql-mssql-linux-service NodePort 10.107.98.68 1433:32489/TCP 7s
3)然后尝试使用SQL Studio Manager 2019连接数据库:Server Name: localhost,32489 Authentication: SQL Server …