github.com/hernad/nomad@v1.6.112/ui/mirage/scenarios/topo.js (about)

     1  /**
     2   * Copyright (c) HashiCorp, Inc.
     3   * SPDX-License-Identifier: MPL-2.0
     4   */
     5  
     6  import faker from 'nomad-ui/mirage/faker';
     7  import { generateNetworks, generatePorts } from '../common';
     8  
     9  const genResources = (CPU, Memory) => ({
    10    Cpu: { CpuShares: CPU },
    11    Memory: { MemoryMB: Memory },
    12    Disk: { DiskMB: 10000 },
    13    Networks: generateNetworks(),
    14    Ports: generatePorts(),
    15  });
    16  
    17  export function topoSmall(server) {
    18    server.createList('agent', 3, 'withConsulLink', 'withVaultLink');
    19    server.createList('node-pool', 4);
    20    server.createList('node', 12, {
    21      datacenter: 'dc1',
    22      status: 'ready',
    23      nodeResources: genResources(3000, 5192),
    24    });
    25  
    26    const jobResources = [
    27      ['M: 2560, C: 150'],
    28      ['M: 128, C: 400'],
    29      ['M: 512, C: 100'],
    30      ['M: 256, C: 150'],
    31      ['M: 200, C: 50'],
    32      ['M: 64, C: 100'],
    33      ['M: 128, C: 150'],
    34      ['M: 1024, C: 500'],
    35      ['M: 100, C: 300', 'M: 200, C: 150'],
    36      ['M: 512, C: 250', 'M: 600, C: 200'],
    37    ];
    38  
    39    jobResources.forEach((spec) => {
    40      server.create('job', {
    41        status: 'running',
    42        datacenters: ['dc1'],
    43        type: 'service',
    44        createAllocations: false,
    45        resourceSpec: spec,
    46      });
    47    });
    48  
    49    server.createList('allocation', 25, {
    50      forceRunningClientStatus: true,
    51    });
    52  }
    53  
    54  export function topoMedium(server) {
    55    server.createList('agent', 3, 'withConsulLink', 'withVaultLink');
    56    server.createList('node', 10, {
    57      datacenter: 'us-west-1',
    58      status: 'ready',
    59      nodeResources: genResources(3000, 5192),
    60    });
    61    server.createList('node', 12, {
    62      datacenter: 'us-east-1',
    63      status: 'ready',
    64      nodeResources: genResources(3000, 5192),
    65    });
    66    server.createList('node', 11, {
    67      datacenter: 'eu-west-1',
    68      status: 'ready',
    69      nodeResources: genResources(3000, 5192),
    70    });
    71  
    72    server.createList('node', 8, {
    73      datacenter: 'us-west-1',
    74      status: 'ready',
    75      nodeResources: genResources(8000, 12192),
    76    });
    77    server.createList('node', 9, {
    78      datacenter: 'us-east-1',
    79      status: 'ready',
    80      nodeResources: genResources(8000, 12192),
    81    });
    82  
    83    const jobResources = [
    84      ['M: 2560, C: 150'],
    85      ['M: 128, C: 400'],
    86      ['M: 512, C: 100'],
    87      ['M: 256, C: 150'],
    88      ['M: 200, C: 50'],
    89      ['M: 64, C: 100'],
    90      ['M: 128, C: 150'],
    91      ['M: 1024, C: 500'],
    92  
    93      ['M: 1200, C: 50'],
    94      ['M: 1400, C: 200'],
    95      ['M: 50, C: 150'],
    96      ['M: 5000, C: 1800'],
    97  
    98      ['M: 100, C: 300', 'M: 200, C: 150'],
    99      ['M: 512, C: 250', 'M: 600, C: 200'],
   100    ];
   101  
   102    jobResources.forEach((spec) => {
   103      server.create('job', {
   104        status: 'running',
   105        datacenters: ['dc1'],
   106        type: 'service',
   107        createAllocations: false,
   108        createRecommendations: true,
   109        resourceSpec: spec,
   110      });
   111    });
   112  
   113    server.createList('allocation', 100, {
   114      forceRunningClientStatus: true,
   115    });
   116  }