Как преобразовать YAML в JSON при сохранении файлов в контейнер с помощью Kubernetes Configmap

Я использовал метод отражения от Ричарда, но разработал метод set для обработки других используемых типов, таких как строки и нули.

public object this[string propertyName]
{
    get
    {
        PropertyInfo property = GetType().GetProperty(propertyName);
        return property.GetValue(this, null);
    }
    set
    {
        PropertyInfo property = GetType().GetProperty(propertyName);
        Type propType = property.PropertyType;
        if (value == null)
        {
            if (propType.IsValueType && Nullable.GetUnderlyingType(propType) == null)
            {
                throw new InvalidCastException();
            }
            else
            {
                property.SetValue(this, null, null);
            }
        }
        else if (value.GetType() == propType)
        {
            property.SetValue(this, value, null);
        }
        else
        {
            TypeConverter typeConverter = TypeDescriptor.GetConverter(propType);
            object propValue = typeConverter.ConvertFromString(value.ToString());
            property.SetValue(this, propValue, null);
        }
    }
}

Функция SetValue () выдает ошибку, если преобразование не работает.

1
задан Community 18 March 2019 в 19:07
поделиться

1 ответ

Я не думаю, что есть что-то нестандартное, но у вас есть варианты, в зависимости от вашей мотивации.

Ваше приложение ищет json, и карта конфигурации смонтирована так, чтобы приложение считывало этот json. Ваше развертывание руля не собирается изменять сам контейнер. Но вы можете изменить свое приложение, чтобы читать yaml вместо json.

Если вы хотите иметь возможность легко видеть версии yaml и json, вы можете создать два файла конфигурации - один, содержащий yaml, а другой с json.

Или, если вы просто хотите увидеть, какой yaml был использован для создания карты конфигурации, вы можете использовать helm get values <release_name> для просмотра значений создать этот выпуск (который будет включать в себя содержание записи conffiles).

0
ответ дан Ryan Dawson 18 March 2019 в 19:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: