Многострочные аннотации для провайдера terraform kubernetes

Хорошо, поэтому, отправив вопрос, отправился на обед, вернулся, и я нашел решение. Вместо использования данных расширения JSON.nets я обнаружил, что у них есть функция «слияния» http://james.newtonking.com/archive/2014/08/04/json-net-6-0-release -4-json-merge-dependency-injection

IMO Я думаю, что это намного чище и решил пойти с этим методом.

Ниже приведен образец, который я писал

public class Cell
{
  public string Text { get; set; }
  public int ID { get; set; }
  public CellStyle Style { get; set; }
}

public class CellStyle
{
  public string BgColor { get; set; }
  public string TextColor { get; set; }
}

string json = @"{
  'Text': 'My Cell',
  'ID': 20,
  'TsID': 100,
  'Style':  {
              'BgColor' : 'Red',
              'TextColor' : 'Black',
              'Caption' : 'Help My Cell',
            }
}";

var orgCell = JsonConvert.DeserializeObject(json);
orgCell.Style.TextColor = "White";
orgCell.Style.BgColor = "Blue";

var obj = JsonConvert.SerializeObject(orgCell);

JObject o1 = JObject.Parse(json);
JObject o2 = JObject.Parse(obj);

o1.Merge(o2, new JsonMergeSettings
{
  // union array values together to avoid duplicates
  MergeArrayHandling = MergeArrayHandling.Union
});

o1.ToString(); // gives me the intended string 

0
задан zdebra 16 January 2019 в 13:27
поделиться

1 ответ

Документация Terraform содержит раздел о многострочных строках с использованием <<EOF your multiline string EOF:

resource "kubernetes_service" "my-service" {
  "metadata" {
    name = "my-service"
    annotations {
      "getambassador.io/config" = <<EOF
        apiVersion: ambassador/v0
        kind:  Mapping
        name:  my_service_mapping
        prefix: /my-service/
        service: my-service
        EOF
    }
  }
  "spec" {
    selector {
      app = "MyApp"
    }
    port {
      protocol = "TCP"
      port = 80
      target_port = "9376"
    }
  }
}

Убедитесь, что в конфигурации yaml нет тройной черты (---). Terraform анализирует это неправильно.

0
ответ дан zdebra 16 January 2019 в 13:27
поделиться
Другие вопросы по тегам:

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