我想使用python-click库向cli命令添加未指定的选项.所以我的cli功能可能如下所示
$ my-cmd --option1 value1 --options2 value2 --unknown_var value3
Run Code Online (Sandbox Code Playgroud)
我目前的代码:
import click
@click.option('--option1')
@click.option('--option2')
@click.command(name='my-cmd')
def cli(option1, option2):
click.echo("my test")
Run Code Online (Sandbox Code Playgroud)
我希望看到如下内容:
import click
@click.option('--option1')
@click.option('--option2')
@click.command(name='my-cmd')
def cli(option1, option2, **kwargs):
click.echo("my test")
# Manually manage **kwargs
Run Code Online (Sandbox Code Playgroud) 我正在尝试找到在 Gitlab 中记录我的项目的最佳方法。我发现了两种不同的选择:
my-repo.git)my-repo/wiki.git)请注意,后缀.git表明这是两个不同的 git 存储库。
我喜欢使用网页中的 markdown 来简单修改 Wiki 的方法(为了每个人的简单性),但我缺少如何在它们或 Gitlab 中的任何其他项目之间进行链接。
文档中提供了一些链接(问题、提交等)到其他项目的信息,但没有像README.md和其他文档那样链接文件。
有这样的功能吗?
我正在尝试创建一个自定义异常处理程序,以便Exception在asynio.
有一个协程,如:
@asyncio.coroutine
def process_notification(device):
results = yield from get_notifications(device)
# here I am creating other tasks
return result
Run Code Online (Sandbox Code Playgroud)
自定义异常处理程序定义如下:
def custom_exception_handler(loop, context):
asyncio.base_events.BaseEventLoop.default_exception_handler(loop, context)
future = context.get('future')
#TODO: how to get the argument device and create a new task with it
Run Code Online (Sandbox Code Playgroud)
在应用程序中:
...
loop = asyncio.get_event_loop()
loop.set_exception_handler(custom_exception_handler)
task = asyncio.ensure_future(process_notification(device))
...
Run Code Online (Sandbox Code Playgroud)
正如所见,在 TODO 中,我缺少如何从任务初始调用中获取参数。
我们的 Kubernetes 集群包含一个 nginx 负载均衡器,用于将请求转发到其他 Pod。
但是,nginx 看到本地源 IP,因此无法设置正确的 X-Real-IP 标头。我尝试将 nginx 的 externalTrafficPolicy 值设置为“Local”,但 IP 没有改变。
nginx 服务配置部分:
"selector": {
"app": "nginx-ingress",
"component": "controller",
"release": "loping-lambkin"
},
"clusterIP": "10.106.1.182",
"type": "LoadBalancer",
"sessionAffinity": "None",
"externalTrafficPolicy": "Local",
"healthCheckNodePort": 32718
Run Code Online (Sandbox Code Playgroud)
结果:
GET / HTTP/1.1
Host: example.com:444
X-Request-ID: dd3310a96bf154d2ac38c8877dec312c
X-Real-IP: 10.39.0.0
X-Forwarded-For: 10.39.0.0
Run Code Online (Sandbox Code Playgroud)
我们使用带有 Metallb 的裸机集群。
load-balancing kubernetes weave kubernetes-ingress nginx-ingress
我花了一些时间研究如何将参数传递给 helm 以便nodeSelector正确配置。
不同的尝试导致不同的错误,例如:
Error: unable to build kubernetes objects from release manifest: error validating "": error validating data: ValidationError(Deployment.spec.template.spec.nodeSelector.kubernetes): invalid type for io.k8s.api.core.v1.PodSpec.nodeSelector: got "map", expected "string"
Run Code Online (Sandbox Code Playgroud)
coalesce.go:196: warning: cannot overwrite table with non table for nodeSelector (map[])
Run Code Online (Sandbox Code Playgroud) 使用scala(2.12.2),在类中创建新Map时
private var myMap = Map.empty[String, ActorRef]
Run Code Online (Sandbox Code Playgroud)
默认情况下,我得到一个不可变的类
scala.collection.immutable.Map[String,akka.actor.ActorRef]
Run Code Online (Sandbox Code Playgroud)
我期待它是可变的,因为我把它定义为'var'