amazon-eks - 如何参数化 eksctl 的配置文件?
问题描述
我有以下配置文件(为简洁而编辑):
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: FOO-CLUSTER
region: eu-central-1
nodeGroups:
- name: FOO-CLUSTER-group-1
[..]
- name: FOO-CLUSTER-group-2
[..]
这将用于创建具有eksctl create cluster -f config.yml
.
我想避免硬编码集群名称(即FOO-CLUSTER
在这种情况下)并将其提取到参数(例如环境变量或附加文件或 CLI 参数),以便我以后可以使用相同的文件来创建BAR-CLUSTER
,FEE-CLUSTER
等等。
可能吗?
解决方案
我不认为这是可能的。但是,您可以做的是sed
在运行命令之前将该文件用作模板并使用它。因为kubectl apply
我使用过这种技术并且效果很好。你甚至可以使用变量。例如:
template=`curl -sS https://raw.githubusercontent.com/kubernetes-sigs/aws-alb-ingress-controller/v1.1.4/docs/examples/alb-ingress-controller.yaml | sed -e "s/# - --cluster-name=devCluster/- --cluster-name=$CLUSTER_NAME/g" -e "s/# - --aws-vpc-id=vpc-xxxxxx/- --aws-vpc-id=$VPC_ID/g" -e "s/# - --aws-region=us-west-1/- --aws-region=$AWS_REGION/g"`
echo "$template" | kubectl apply -f -
我从来没有用过这个,eksctl
但我看不出它不应该工作的原因。
以类似的方式,您可以使用envsubst
.
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: ${CLUSTER_NAME}
region: eu-central-1
nodeGroups:
- name: ${CLUSTER_NAME}-group-1
[..]
- name: ${CLUSTER_NAME}-group-2
[..]
export CLUSTER_NAME=foo
cat cluster-config.yml | envsubst '${CLUSTER_NAME}' > cluster-config-foo.yml
推荐阅读
- lingo - 如何用术语写一个 t 减一的约束
- ios - SwiftUI - MenuPickerStyle 不起作用,但任何其他样式都有效
- c++ - C++ 逻辑错误:无法打印方形图案
- mysql - CMD 中的 mysql.exe 刚刚开始出现“此应用程序无法在您的电脑上运行”错误
- python - 如何在 PYTHON 中使用循环或其他进程在新列表中附加两个字符串值?
- swagger - Swagger UI 未在 Swashbuckle.AspNetCore 中加载
- r - 如何使用 selectInput 更改 actionButton 的值?
- django-models - 书籍、个人资料和作者之间的关系在 Django 中是否正确
- typescript - Nestjs中的续集和打字稿集成错误
- flask - 另一个文件的 Flask Socket-Io 导入错误