用于添加 k8s 集群配置的 Makefile 目标
Makefile target to add k8s cluster config
我想在一个带有 args 的命令中配置 kubeconfig
,能够连接到 k8s 集群。
我尝试了以下方法,但没有用。
cfg:
mkdir ~/.kube
kube: cfg
touch config $(ARGS)
在 args 中,用户 应该传递集群 (kubeconfig) 的配置文件 content。
如果有更短的方法请告诉我。
更新
我使用了以下内容(来自答案)部分解决了问题。
kube: cfg
case "$(ARGS)" in \
("") printf "Please provide ARGS=/some/path"; exit 1;; \
(*) cp "$(ARGS)" /some/where/else;; \
esac
问题是因为 cfg
正在创建目录以防用户不提供 args
并且在 second 运行 当提供路径时,目录已经存在并且你得到一个错误,有没有办法避免它? 如果没有提供 arg,就不要 运行 cfg
我假设用户输入的是文件的路径名。 make
实用程序可以以 make NAME=VALUE
的形式将变量赋值作为参数。你像往常一样在 Makefile
中引用这些,使用 $(NAME)
。所以像
kube: cfg
case "$(ARGS)" in \
("") printf "Please provide ARGS=/some/path"; exit 1;; \
(*) cp "$(ARGS)" /some/where/else;; \
esac
调用
make ARGS=/some/path/file kube
然后会执行cp /some/path/file /some/where/else
。如果这不是你要问的,请重新表述问题,提供你想做什么的确切细节。
我想在一个带有 args 的命令中配置 kubeconfig
,能够连接到 k8s 集群。
我尝试了以下方法,但没有用。
cfg:
mkdir ~/.kube
kube: cfg
touch config $(ARGS)
在 args 中,用户 应该传递集群 (kubeconfig) 的配置文件 content。
如果有更短的方法请告诉我。
更新
我使用了以下内容(来自答案)部分解决了问题。
kube: cfg
case "$(ARGS)" in \
("") printf "Please provide ARGS=/some/path"; exit 1;; \
(*) cp "$(ARGS)" /some/where/else;; \
esac
问题是因为 cfg
正在创建目录以防用户不提供 args
并且在 second 运行 当提供路径时,目录已经存在并且你得到一个错误,有没有办法避免它? 如果没有提供 arg,就不要 运行 cfg
我假设用户输入的是文件的路径名。 make
实用程序可以以 make NAME=VALUE
的形式将变量赋值作为参数。你像往常一样在 Makefile
中引用这些,使用 $(NAME)
。所以像
kube: cfg
case "$(ARGS)" in \
("") printf "Please provide ARGS=/some/path"; exit 1;; \
(*) cp "$(ARGS)" /some/where/else;; \
esac
调用
make ARGS=/some/path/file kube
然后会执行cp /some/path/file /some/where/else
。如果这不是你要问的,请重新表述问题,提供你想做什么的确切细节。