Possibile inizializzare Consul Key Value store all'avvio?

Posso inizializzare i servizi Consul all'avvio utilizzando la directory / consul / config. Vorrei poter inizializzare le impostazioni dell'applicazione nel negozio Consul kv quando avvio il contenitore Console. È ansible?

Volevo un approccio semplice per impostare le impostazioni delle applicazioni in Consul per un progetto di microservizio. Sono sicuro che ci sono un certo numero di strumenti esistenti, ma ho voluto qualcosa di leggero e adatto al mio process di sviluppo. Quindi, piuttosto che cercare di lavorare con alcuni suggerimenti di @ mgyongyosi ho scritto una rapida applicazione dotnet console per fare il sollevamento pesante (non così). Sotto la directory principale del progetto ho creato una struttura di directory Consul/kv . Le directory figlio in quel path rappresentano le chiavi nel negozio Consul KV e un file json in una foglia rappresenta le impostazioni dell'applicazione. Nota: è previsto solo un singolo file json per directory foglia. L'applicazione utilizza il pacchetto nuget Consul.NET per comunicare con Consul.

 using System; using System.IO; using System.Net.Http; using System.Text; using System.Threading.Tasks; using Consul; namespace ConfigureConsulKv { class Program { private static readonly string _basePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Projects", "MyProject", "Consul", "kv"); static void Main(string[] args) { RecurseDirectory(_basePath); } static void RecurseDirectory(string path) { foreach (var dir in Directory.EnumerateDirectories(path)) RecurseDirectory(dir); var file = Directory.EnumerateFiles(path, "*.json").FirstOrDefault(); if (!string.IsNullOrWhiteSpace(file)) { var key = path.Substring(_basePath.Length + 1); var json = File.ReadAllBytes(file); Console.WriteLine($"key {key} file {file}"); using (var client = new ConsulClient()) { var attempt = client.KV.Put(new KVPair(key) { Value = json }).Result; Console.WriteLine($"status {attempt.StatusCode}"); } } } } }