Цель Makefile для добавления конфигурации кластера k8s - PullRequest
1 голос
/ 01 мая 2020

В одной команде с args для настройки kubeconfig я хочу подключиться к кластеру k8s.

Я попробовал следующее, что не работает.

cfg:
    mkdir ~/.kube

kube: cfg
    touch config $(ARGS)

В аргументах пользователь должен передать файл конфигурации content кластера (kubeconfig).

Если есть более короткий путь, пожалуйста, дайте мне знать.

update

Я использовал следующее, что (из ответа) частично решить проблему.

kube: cfg
    case "$(ARGS)" in \
      ("") printf "Please provide ARGS=/some/path"; exit 1;; \
      (*)  cp "$(ARGS)" /some/where/else;; \
    esac

Проблема в том, что cfg создает каталог в случае, если пользователь не предоставил args, и во время секундного запуска при предоставлении путь к каталогу уже существует, и вы получаете сообщение об ошибке, есть ли способ избежать этого? что-то вроде, если аргумент не указан, не запускать cfg

1 Ответ

2 голосов
/ 01 мая 2020

Я предполагаю, что пользовательский ввод - это путь к файлу. Утилита 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. Если это не то, о чем вы спрашивали, перефразируйте вопрос, указав точные детали того, что вы хотите сделать.

...