运行 `kubectl apply` 使用存储在变量中的 yaml
Run `kubectl apply` using yaml stored in a variable
我有一个资源想作为自动化脚本的一部分应用(运行 在 powershell 中)。我宁愿不必将它写到一个文件中,然后不得不处理清理它。
是否可以将 yaml 作为脚本的一部分应用?
与此类似的内容:
$myYaml = @'
apiVersion: "rbac.authorization.k8s.io/v1"
kind: RoleBinding
metadata:
name: ServiceAccount-clusteradmin
roleRef:
apiGroup: "rbac.authorization.k8s.io"
kind: ClusterRole
name: ClusterAdmin
subjects:
- apiGroup: "rbac.authorization.k8s.io"
kind: User
name: "MyAdminServiceAccount"
'@
kubectl apply @myYaml
显然,上面的 kubectl
命令不起作用。
我的问题是:是否可以在不创建文件的情况下应用此 yaml(使用 powershell)?
myYaml
是一个具有数据的变量:
$myYaml = @'
apiVersion: "rbac.authorization.k8s.io/v1"
kind: RoleBinding
metadata:
name: ServiceAccount-clusteradmin
roleRef:
apiGroup: "rbac.authorization.k8s.io"
kind: ClusterRole
name: ClusterAdmin
subjects:
- apiGroup: "rbac.authorization.k8s.io"
kind: User
name: "MyAdminServiceAccount"
'@
执行以下操作以回显 $myYaml
变量的内容并将其通过管道传输到 kubectl apply -f -
,这里最后的 -
用于管道输入。
$myYaml |kubectl.exe apply -f -
rolebinding.rbac.authorization.k8s.io/ServiceAccount-clusteradmin created
kubectl.exe get rolebindings
NAME ROLE AGE
ServiceAccount-clusteradmin ClusterRole/ClusterAdmin 18s
这与 linux
环境非常相似,其中 echo "$var" |kubectl apply -f -
用于执行相同的操作。
我有一个资源想作为自动化脚本的一部分应用(运行 在 powershell 中)。我宁愿不必将它写到一个文件中,然后不得不处理清理它。
是否可以将 yaml 作为脚本的一部分应用?
与此类似的内容:
$myYaml = @'
apiVersion: "rbac.authorization.k8s.io/v1"
kind: RoleBinding
metadata:
name: ServiceAccount-clusteradmin
roleRef:
apiGroup: "rbac.authorization.k8s.io"
kind: ClusterRole
name: ClusterAdmin
subjects:
- apiGroup: "rbac.authorization.k8s.io"
kind: User
name: "MyAdminServiceAccount"
'@
kubectl apply @myYaml
显然,上面的 kubectl
命令不起作用。
我的问题是:是否可以在不创建文件的情况下应用此 yaml(使用 powershell)?
myYaml
是一个具有数据的变量:
$myYaml = @'
apiVersion: "rbac.authorization.k8s.io/v1"
kind: RoleBinding
metadata:
name: ServiceAccount-clusteradmin
roleRef:
apiGroup: "rbac.authorization.k8s.io"
kind: ClusterRole
name: ClusterAdmin
subjects:
- apiGroup: "rbac.authorization.k8s.io"
kind: User
name: "MyAdminServiceAccount"
'@
执行以下操作以回显 $myYaml
变量的内容并将其通过管道传输到 kubectl apply -f -
,这里最后的 -
用于管道输入。
$myYaml |kubectl.exe apply -f -
rolebinding.rbac.authorization.k8s.io/ServiceAccount-clusteradmin created
kubectl.exe get rolebindings
NAME ROLE AGE
ServiceAccount-clusteradmin ClusterRole/ClusterAdmin 18s
这与 linux
环境非常相似,其中 echo "$var" |kubectl apply -f -
用于执行相同的操作。