我想用powershell更改我的deploy.yaml文件的版本。我的文件(deploy.yaml):
apiVersion: apps/v1
kind: Deployment
metadata:
name: worker
labels:
app: worker
spec:
replicas: 1
template:
metadata:
labels:
app: worker
spec:
nodeSelector:
environment: production
role: apps
containers:
- name: worker
image: https://hub.docker.com/worker:$version
env:
- name: ENVIRONMENT
value: "Production"
- name: LOGS_DIRECTORY
value: "/var/log/worker/"当我执行powershell时:
$version = "1.01"
$workerTemplate = (Get-Content ./deploy.yaml) -join "`n"
$expandedWorkerTemplate = Invoke-Expression "`"$workerTemplate`""我得到了错误:
Invoke-Expression : At line:22 char:19
+ value: "Production"
+ ~~~~~~~~~~~
Unexpected token 'Production"
- name: LOGS_DIRECTORY
value: "/var/log/worker/""' in expression or statement.
At line:4 char:27
+ $expandedWorkerTemplate = Invoke-Expression "`"$workerTemplate`""
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ParserError: (:) [Invoke-Expression], ParseException
+ FullyQualifiedErrorId : UnexpectedToken,Microsoft.PowerShell.Commands.InvokeExpressionCommand我能做些什么来避免这种情况?
发布于 2020-01-17 20:37:55
我认为,对于PowerShell的format string operator来说,这将是一项不错的工作
apiVersion: apps/v1
kind: Deployment
metadata:
name: worker
labels:
app: worker
spec:
replicas: 1
template:
metadata:
labels:
app: worker
spec:
nodeSelector:
environment: production
role: apps
containers:
- name: worker
image: https://hub.docker.com/worker:{0}
env:
- name: ENVIRONMENT
value: "Production"
- name: LOGS_DIRECTORY
value: "/var/log/worker/"然后展开模板,如下所示:
$version = "1.01"
$workerTemplate = Get-Content ./deploy.yaml -Raw
$expandedWorkerTemplate = $workerTemplate -f $versionhttps://stackoverflow.com/questions/59786827
复制相似问题