定义模板文件 service_tpl.yaml ,如下
cat > service_tpl.yaml <<EOF
apiVersion: v1
kind: Service
metadata:
name: ${APPNAME}
namespace: ${NAMESPACE}
spec:
ports:
- port: ${PORT}
targetPort: ${PORT}
protocol: TCP
selector:
workload.user.cattle.io/workloadselector: ${NAMESPACE}-${APPNAME}
EOF
将模板文件生成为新文件
#!/bin/bash
PORT="$1"
## 将上面模板文件中的变量名定义好值
NAMESPACE="test-namespace"
APPNAME="test-app"
if [[ -z $NAMESPACE || -z $APPNAME ]];then
echo "$0 [ namespace ] [ appname ] [ port ]"
echo "port default 8080"
exit 1
fi
if [ -z $PORT ];then
PORT=8080
fi
## 将变量实例化到模板中
file_text=$(< ./service_tpl.yaml)
eval "cat <<EOF
$file_text
EOF" > ${APPNAME}_service.yaml
查看新生成的文件