Я хочу получить секретный объект из кластера k8s, используя go-client API
У меня есть функция, которая выглядит так
func GetSecret( version string) (retVal interface{}, err error){
clientset := GetClientOutOfCluster()
labelSelector := metav1.LabelSelector{MatchLabels: map[string]string{"version":version}}
listOptions := metav1.ListOptions{
LabelSelector: labelSelector.String(),
Limit: 100,
}
secretList, err := clientset.CoreV1().Secrets("namespace").List( listOptions )
retVal = secretList.Items[0]
return retVal, err
}
GetClientOutOfCluster в основном извлекает конфигурацию из кластера или из локального ~ / .kube / config
Я использовал metav1.LabelSelector так же, как и я, когда генерирую новый объект Deployment. Так что я подумал, что я крутой. Но ListOptions.LabelSelector - это строка.
Когда я запускаю свою функцию, она не работает.
unable to parse requirement: invalid label key "&LabelSelector{MatchLabels:map[string]string{version:": name part must consist of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]')
Я не могу найти пример использования этой функции нигде. Документация предполагает, что вы знаете, что такое LabelSelector.
Что такое формат LabelSelector для ListOptions?
Спасибо