用于添加 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。如果这不是你要问的,请重新表述问题,提供你想做什么的确切细节。