[Notes] [Git][BuildGrid/buildgrid][mablanch/docker-compose] 3 commits: Move example configuration out of source tree



Title: GitLab

Martin Blanchard pushed to branch mablanch/docker-compose at BuildGrid / buildgrid

Commits:

13 changed files:

Changes:

  • .dockerignore
    1
    +# Ignore everything:
    
    2
    +*
    
    3
    +
    
    4
    +# Whitelist:
    
    5
    +!buildgrid
    
    6
    +!tests
    
    7
    +!LICENSE
    
    8
    +!README.rst
    
    9
    +!setup.cfg
    
    10
    +!setup.py
    
    11
    +!_version.py
    
    12
    +!.coveragerc
    
    13
    +!.pylintrc

  • .gitlab-ci.yml
    ... ... @@ -31,7 +31,7 @@ before_script:
    31 31
     .run-dummy-job-template: &dummy-job
    
    32 32
       stage: test
    
    33 33
       script:
    
    34
    -    - ${BGD} server start buildgrid/_app/settings/default.yml &
    
    34
    +    - ${BGD} server start data/config/default.conf &
    
    35 35
         - sleep 1 # Allow server to boot
    
    36 36
         - ${BGD} bot dummy &
    
    37 37
         - ${BGD} cas upload-dummy
    

  • Dockerfile
    1 1
     FROM python:3.5-stretch
    
    2 2
     
    
    3
    -# Point the path to where buildgrid gets installed
    
    4
    -ENV PATH=$PATH:/root/.local/bin/
    
    3
    +# Use /app as working directory:
    
    4
    +WORKDIR /app
    
    5 5
     
    
    6
    -# Upgrade python modules
    
    7
    -RUN python3 -m pip install --upgrade setuptools pip
    
    6
    +# Copy the repo. contents:
    
    7
    +COPY . /app
    
    8 8
     
    
    9
    -# Use /app as the current working directory
    
    10
    -WORKDIR /app
    
    9
    +# Create a virtual environment:
    
    10
    +RUN python3 -m venv /app/env
    
    11 11
     
    
    12
    -# Copy the repo contents (source, config files, etc) in the WORKDIR
    
    13
    -COPY . .
    
    12
    +# Upgrade Python core modules:
    
    13
    +RUN /app/env/bin/python -m pip install --upgrade setuptools pip wheel
    
    14 14
     
    
    15
    -# Install BuildGrid
    
    16
    -RUN pip install --user --editable .
    
    15
    +# Install BuildGrid:
    
    16
    +RUN /app/env/bin/python -m pip install --editable ".[auth,tests]"
    
    17 17
     
    
    18
    -# Entry Point of the image (should get an additional argument from CMD, the path to the config file)
    
    19
    -ENTRYPOINT ["bgd", "server", "start", "-vv"]
    
    18
    +# Entry-point for the image:
    
    19
    +ENTRYPOINT ["/app/env/bin/bgd"]
    
    20 20
     
    
    21
    -# Default config file (used if no CMD specified when running)
    
    22
    -CMD ["buildgrid/_app/settings/default.yml"]
    21
    +# Default command (server with default config.):
    
    22
    +CMD ["server", "start", "data/config/default.conf", "-vvv"]

  • buildgrid/_app/settings/default.yml deleted
    1
    -server:
    
    2
    -  - !channel
    
    3
    -    port: 50051
    
    4
    -    insecure-mode: true
    
    5
    -
    
    6
    -description: |
    
    7
    -  A single default instance.
    
    8
    -
    
    9
    -instances:
    
    10
    -  - name: ''
    
    11
    -    description: |
    
    12
    -      The main server
    
    13
    -
    
    14
    -    storages:
    
    15
    -      - !disk-storage &main-storage
    
    16
    -        path: !expand-path $HOME/cas
    
    17
    -
    
    18
    -    services:
    
    19
    -      - !action-cache &main-action
    
    20
    -        storage: *main-storage
    
    21
    -        max-cached-refs: 256
    
    22
    -        allow-updates: true
    
    23
    -
    
    24
    -      - !execution
    
    25
    -        storage: *main-storage
    
    26
    -        action-cache: *main-action
    
    27
    -
    
    28
    -      - !cas
    
    29
    -        storage: *main-storage
    
    30
    -
    
    31
    -      - !bytestream
    
    32
    -        storage: *main-storage

  • buildgrid/_app/settings/remote-storage.yml deleted
    1
    -server:
    
    2
    -  - !channel
    
    3
    -    port: 50051
    
    4
    -    insecure-mode: true
    
    5
    -
    
    6
    -description: |
    
    7
    -  A single default instance with remote storage.
    
    8
    -
    
    9
    -instances:
    
    10
    -  - name: ''
    
    11
    -    description: |
    
    12
    -      The main server
    
    13
    -
    
    14
    -    storages:
    
    15
    -      - !remote-storage &main-storage
    
    16
    -        url: http://localhost:50052
    
    17
    -        instance-name: main
    
    18
    -        # credentials:
    
    19
    -        #   tls-client-key: null
    
    20
    -        #   tls-client-cert: null
    
    21
    -        #   tls-server-cert: null
    
    22
    -
    
    23
    -    services:
    
    24
    -      - !action-cache &main-action
    
    25
    -        storage: *main-storage
    
    26
    -        max-cached-refs: 256
    
    27
    -        allow-updates: true
    
    28
    -
    
    29
    -      - !execution
    
    30
    -        storage: *main-storage
    
    31
    -        action-cache: *main-action
    
    32
    -
    
    33
    -      - !cas
    
    34
    -        storage: *main-storage
    
    35
    -
    
    36
    -      - !bytestream
    
    37
    -        storage: *main-storage

  • buildgrid/_app/settings/cas.ymldata/config/artifacts.conf
    ... ... @@ -2,31 +2,34 @@ server:
    2 2
       - !channel
    
    3 3
         port: 50052
    
    4 4
         insecure-mode: true
    
    5
    -    # credentials:
    
    6
    -    #   tls-server-key: null
    
    7
    -    #   tls-server-cert: null
    
    8
    -    #   tls-client-certs: null
    
    9 5
     
    
    10
    -description: |
    
    11
    -  Just a CAS with some reference storage.
    
    6
    +description: >
    
    7
    +  Artifact server configuration:
    
    8
    +    - Unauthenticated plain HTTP at :50052
    
    9
    +    - Single instance: (empty-name)
    
    10
    +    - On-disk data stored in $HOME
    
    11
    +    - Hosted services:
    
    12
    +       - ReferenceStorage
    
    13
    +       - ContentAddressableStorage
    
    14
    +       - ByteStream
    
    12 15
     
    
    13 16
     instances:
    
    14 17
       - name: ''
    
    15 18
         description: |
    
    16
    -      The main server
    
    19
    +      The unique '' instance.
    
    17 20
     
    
    18 21
         storages:
    
    19
    -      - !disk-storage &main-storage
    
    20
    -        path: !expand-path $HOME/cas
    
    22
    +      - !disk-storage &data-store
    
    23
    +        path: !expand-path $HOME/.cache/buildgrid/store
    
    21 24
     
    
    22 25
         services:
    
    23 26
           - !cas
    
    24
    -        storage: *main-storage
    
    27
    +        storage: *data-store
    
    25 28
     
    
    26 29
           - !bytestream
    
    27
    -        storage: *main-storage
    
    30
    +        storage: *data-store
    
    28 31
     
    
    29 32
           - !reference-cache
    
    30
    -        storage: *main-storage
    
    31
    -        max-cached-refs: 256
    
    33
    +        storage: *data-store
    
    34
    +        max-cached-refs: 512
    
    32 35
             allow-updates: true

  • data/config/controller.conf
    1
    +server:
    
    2
    +  - !channel
    
    3
    +    port: 50051
    
    4
    +    insecure-mode: true
    
    5
    +
    
    6
    +description: >
    
    7
    +  Docker Compose controller configuration:
    
    8
    +    - Unauthenticated plain HTTP at :50051
    
    9
    +    - Single instance: local
    
    10
    +    - Expects a remote CAS at :50052
    
    11
    +    - Hosted services:
    
    12
    +       - ActionCache
    
    13
    +       - Execute
    
    14
    +
    
    15
    +authorization:
    
    16
    +  method: none
    
    17
    +
    
    18
    +monitoring:
    
    19
    +  enabled: false
    
    20
    +
    
    21
    +instances:
    
    22
    +  - name: local
    
    23
    +    description: |
    
    24
    +      The unique 'local' instance.
    
    25
    +
    
    26
    +    storages:
    
    27
    +      - !remote-storage &data-store
    
    28
    +        url: http://storage:50052
    
    29
    +        instance-name: local
    
    30
    +
    
    31
    +    services:
    
    32
    +      - !action-cache &build-cache
    
    33
    +        storage: *data-store
    
    34
    +        max-cached-refs: 256
    
    35
    +        cache-failed-actions: true
    
    36
    +        allow-updates: true
    
    37
    +
    
    38
    +      - !execution
    
    39
    +        storage: *data-store
    
    40
    +        action-cache: *build-cache

  • data/config/default.conf
    1
    +server:
    
    2
    +  - !channel
    
    3
    +    port: 50051
    
    4
    +    insecure-mode: true
    
    5
    +
    
    6
    +description: >
    
    7
    +  BuildGrid's default configuration:
    
    8
    +    - Unauthenticated plain HTTP at :50052
    
    9
    +    - Single instance: main
    
    10
    +    - In-memory data, max. 2Gio
    
    11
    +    - Hosted services:
    
    12
    +       - ActionCache
    
    13
    +       - Execute
    
    14
    +       - ContentAddressableStorage
    
    15
    +       - ByteStream
    
    16
    +
    
    17
    +authorization:
    
    18
    +  method: none
    
    19
    +
    
    20
    +monitoring:
    
    21
    +  enabled: false
    
    22
    +
    
    23
    +instances:
    
    24
    +  - name: ''
    
    25
    +    description: |
    
    26
    +      The unique '' instance.
    
    27
    +
    
    28
    +    storages:
    
    29
    +      - !lru-storage &data-store
    
    30
    +        size: 2048M
    
    31
    +
    
    32
    +    services:
    
    33
    +      - !action-cache &build-cache
    
    34
    +        storage: *data-store
    
    35
    +        max-cached-refs: 256
    
    36
    +        cache-failed-actions: true
    
    37
    +        allow-updates: true
    
    38
    +
    
    39
    +      - !execution
    
    40
    +        storage: *data-store
    
    41
    +        action-cache: *build-cache
    
    42
    +
    
    43
    +      - !cas
    
    44
    +        storage: *data-store
    
    45
    +
    
    46
    +      - !bytestream
    
    47
    +        storage: *data-store

  • data/config/storage.conf
    1
    +server:
    
    2
    +  - !channel
    
    3
    +    port: 50052
    
    4
    +    insecure-mode: true
    
    5
    +
    
    6
    +description: >
    
    7
    +  Docker Compose storage configuration:
    
    8
    +    - Unauthenticated plain HTTP at :50052
    
    9
    +    - Single instance: local
    
    10
    +    - On-disk data stored in /var
    
    11
    +    - Hosted services:
    
    12
    +       - ReferenceStorage
    
    13
    +       - ContentAddressableStorage
    
    14
    +       - ByteStream
    
    15
    +
    
    16
    +authorization:
    
    17
    +  method: none
    
    18
    +
    
    19
    +monitoring:
    
    20
    +  enabled: false
    
    21
    +
    
    22
    +instances:
    
    23
    +  - name: local
    
    24
    +    description: |
    
    25
    +      The unique 'local' instance.
    
    26
    +
    
    27
    +    storages:
    
    28
    +      - !disk-storage &data-store
    
    29
    +        path: /var/lib/buildgrid/store
    
    30
    +
    
    31
    +    services:
    
    32
    +      - !cas
    
    33
    +        storage: *data-store
    
    34
    +
    
    35
    +      - !bytestream
    
    36
    +        storage: *data-store
    
    37
    +
    
    38
    +      - !reference-cache
    
    39
    +        storage: *data-store
    
    40
    +        max-cached-refs: 1024
    
    41
    +        allow-updates: true

  • docker-compose.yml
    1
    +##
    
    2
    +# BuildGrid's Docker Compose manifest.
    
    3
    +#
    
    4
    +#   ¡FOR LOCAL TESTING ONLY!
    
    5
    +#
    
    6
    +# Spins-up a 'local' grid instance:
    
    7
    +#   - Controller at http://localhost:50051
    
    8
    +#   - CAS + AC at: http://localhost:50052
    
    9
    +#
    
    10
    +# Basic usage:
    
    11
    +#  - docker-compose build
    
    12
    +#  - docker-compose up --scale bots=10
    
    13
    +#  - docker-compose down
    
    14
    +#  - docker volume inspect buildgrid_data
    
    15
    +#  - docker volume rm buildgrid_data
    
    16
    +#
    
    17
    +version: "3.2"
    
    18
    +
    
    19
    +services:
    
    20
    +  storage:
    
    21
    +    build:
    
    22
    +      context: .
    
    23
    +    image: buildgrid:local
    
    24
    +    command: [
    
    25
    +      "server", "start", "-vvv",
    
    26
    +      "/app/config/storage.conf"]
    
    27
    +    volumes:
    
    28
    +      - type: volume
    
    29
    +        source: data
    
    30
    +        target: /var/lib/buildgrid/store
    
    31
    +        volume:
    
    32
    +          nocopy: true
    
    33
    +      - type: bind
    
    34
    +        source: ./data/config/storage.conf
    
    35
    +        target: /app/config/storage.conf
    
    36
    +    ports:
    
    37
    +      - "50052:50052"
    
    38
    +    networks:
    
    39
    +      - backend
    
    40
    +      - host
    
    41
    +
    
    42
    +  controller:
    
    43
    +    image: buildgrid:local
    
    44
    +    command: [
    
    45
    +      "server", "start", "-vvv",
    
    46
    +      "/app/config/controller.conf"]
    
    47
    +    volumes:
    
    48
    +      - type: bind
    
    49
    +        source: ./data/config/controller.conf
    
    50
    +        target: /app/config/controller.conf
    
    51
    +    ports:
    
    52
    +      - "50051:50051"
    
    53
    +    networks:
    
    54
    +      - backend
    
    55
    +      - host
    
    56
    +
    
    57
    +  bots:
    
    58
    +    image: buildgrid:local
    
    59
    +    command: [
    
    60
    +      "bot", "--parent=local",
    
    61
    +      "--remote=http://controller:50051",
    
    62
    +      "--remote-cas=http://storage:50052",
    
    63
    +      "host-tools"]
    
    64
    +    depends_on:
    
    65
    +      - controller
    
    66
    +    networks:
    
    67
    +      - backend
    
    68
    +
    
    69
    +networks:
    
    70
    +  backend:
    
    71
    +  host:
    
    72
    +
    
    73
    +volumes:
    
    74
    +  data:

  • docs/source/installation.rst
    ... ... @@ -110,7 +110,7 @@ To clone the source code and build a Docker image, simply run:
    110 110
         the image.
    
    111 111
     
    
    112 112
     After building the Docker image, to run BuildGrid using the default configuration file 
    
    113
    -(found in `buildgrid/_app/settings/default.yml`), simply run:
    
    113
    +(found in `data/config/default.conf`), simply run:
    
    114 114
     
    
    115 115
     .. code-block:: sh
    
    116 116
     
    

  • docs/source/using_cas_server.rst
    ... ... @@ -27,7 +27,7 @@ This defines a single ``main`` instance of the ``CAS``, ``Bytestream`` and ``Ref
    27 27
     
    
    28 28
     .. code-block:: sh
    
    29 29
     
    
    30
    -   bgd server start example.conf
    
    30
    +   bgd server start data/config/artifacts.conf
    
    31 31
     
    
    32 32
     The server should now be available to use.
    
    33 33
     
    

  • docs/source/using_internal.rst
    ... ... @@ -17,7 +17,7 @@ In one terminal, start a server:
    17 17
     
    
    18 18
     .. code-block:: sh
    
    19 19
     
    
    20
    -   bgd server start buildgrid/_app/settings/default.yml
    
    20
    +   bgd server start data/config/default.conf
    
    21 21
     
    
    22 22
     In another terminal, upload an action to CAS:
    
    23 23
     
    
    ... ... @@ -78,7 +78,7 @@ Now start a BuildGrid server, passing it a directory it can write a CAS to:
    78 78
     
    
    79 79
     .. code-block:: sh
    
    80 80
     
    
    81
    -   bgd server start buildgrid/_app/settings/default.yml
    
    81
    +   bgd server start data/config/default.conf
    
    82 82
     
    
    83 83
     Start the following bot session:
    
    84 84
     
    



  • [Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]