0

J'essaie de comprendre comment créer un tableau avec une adresse IP CIDR afin d'avoir le même tableau dans mon pipeline. Voici donc un exemple de fichier var:Concourse CI - variable de tableau

whitelist-ip-ranges: |- 
- 10.0.0.0/24 
- 11.0.0.0/24 
- 12.0.0.0/24 

Mon pipeline est comme:

.... 
.... 
.... 
params: 
    variables: 
     loadBalancerSourceRanges: 
      {{whitelist-ip-ranges}} 

Et je veux que ce soit:

.... 
.... 
.... 
params: 
    variables: 
     loadBalancerSourceRanges: 
      - 10.0.0.0/24 
      - 11.0.0.0/24 
      - 12.0.0.0/24 

ou

.... 
.... 
.... 
params: 
    variables: 
     loadBalancerSourceRanges: [10.0.0.0/24,11.0.0.0/24,12.0.0.0/24] 

intérieur mon modèle de barre j'ai mon fichier de values.yaml que j'ai Bien sûr:

loadBalancerSourceRanges: null 

et il sera prioritaire par le pipeline. Et finalement, dans mon dossier de service que je fais une boucle:

{{if .Values.loadBalancerSourceRanges}} 
    loadBalancerSourceRanges: 
    {{range $rangeList := .Values.loadBalancerSourceRanges}} 
    - {{ $rangeList }} 
    {{end}} 
{{end}} 

Est-ce que l'un des gars a été en mesure de faire quelque chose comme ça?

Répondre

0

Je suis désolé, je ne peux pas parler à n'importe quoi helm basé. Je peux parler pour un pipeline de concours, cependant.

Concourse ne prend pas en charge la fourniture de params aux tâches qui sont un tableau. params sont passées en tant que variables d'environnement à une tâche en cours d'exécution, elles sont donc transformées de YAML en une paire clé-valeur de chaîne simple.

Si vous souhaitez transmettre des informations plus complexes. Il y a deux options:

  • encode le param JSON/YAML afin qu'il puisse être analysé en tant que chaîne de votre environnement de tâches
  • fournir la tâche une entrée d'une ressource, où un fichier peut être fourni - par exemple une ressource s3 avec le contenu des loadBalanceSourceRanges

Ces moyens programmatiques sont des exemples que j'ai utilisé avant d'accomplir le passage des données plus complexes (par exemple des réseaux) à une tâche.