Update inspec tests to manage RVM usage in different distros
[arvados-formula.git] / kitchen.yml
index 08950d5f715a46a4dbd46bfa7441bf09f7924ea7..8c1086d5a5c78fff2edcae1bb7a820bb2fbd6d6f 100644 (file)
@@ -1,5 +1,9 @@
 # -*- coding: utf-8 -*-
 # vim: ft=yaml
+
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: Apache-2.0
 ---
 # For help on this file's format, see https://kitchen.ci/
 driver:
@@ -8,161 +12,100 @@ driver:
   privileged: true
   run_command: /lib/systemd/systemd
 
-# Make sure the platforms listed below match up with
-# the `env.matrix` instances defined in `.travis.yml`
+provisioner:
+  name: salt_solo
+  log_level: debug
+  salt_install: none
+  require_chef: false
+  formula: arvados
+  salt_copy_filter:
+    - .kitchen
+    - .git
+
 platforms:
-  ## SALT `master`
-  - name: debian-10-master-py3
-    driver:
-      image: netmanagers/salt-master-py3:debian-10
-  - name: ubuntu-1804-master-py3
-    driver:
-      image: netmanagers/salt-master-py3:ubuntu-18.04
-  - name: centos-8-master-py3
-    driver:
-      image: netmanagers/salt-master-py3:centos-8
-  - name: fedora-31-master-py3
+  ## SALT `tiamat`
+  - name: debian-10-tiamat-py3
     driver:
-      image: netmanagers/salt-master-py3:fedora-31
-  - name: opensuse-leap-151-master-py3
+      image: saltimages/salt-tiamat-py3:debian-10
+  - name: ubuntu-2004-tiamat-py3
     driver:
-      image: netmanagers/salt-master-py3:opensuse-leap-15.1
-      run_command: /usr/lib/systemd/systemd
-    # Workaround to avoid intermittent failures on `opensuse-leap-15.1`:
-    # => SCP did not finish successfully (255):  (Net::SCP::Error)
-    transport:
-      max_ssh_sessions: 1
-  - name: amazonlinux-2-master-py3
+      image: saltimages/salt-tiamat-py3:ubuntu-20.04
+  - name: ubuntu-1804-tiamat-py3
     driver:
-      image: netmanagers/salt-master-py3:amazonlinux-2
-  - name: arch-base-latest-master-py2
+      image: saltimages/salt-tiamat-py3:ubuntu-18.04
+  - name: centos-7-tiamat-py3
     driver:
-      image: netmanagers/salt-master-py2:arch-base-latest
-      run_command: /usr/lib/systemd/systemd
+      image: saltimages/salt-tiamat-py3:centos-7
 
-  ## SALT `3000.1`
-  - name: debian-10-3000-1-py3
-    driver:
-      image: netmanagers/salt-3000.1-py3:debian-10
-  - name: ubuntu-1804-3000-1-py3
-    driver:
-      image: netmanagers/salt-3000.1-py3:ubuntu-18.04
-  - name: centos-8-3000-1-py3
-    driver:
-      image: netmanagers/salt-3000.1-py3:centos-8
-  - name: fedora-31-3000-1-py3
+  ## SALT `master`
+  - name: debian-10-master-py3
     driver:
-      image: netmanagers/salt-3000.1-py3:fedora-31
-  - name: opensuse-leap-151-3000-1-py3
+      image: saltimages/salt-master-py3:debian-10
+  - name: ubuntu-2004-master-py3
     driver:
-      image: netmanagers/salt-3000.1-py3:opensuse-leap-15.1
-      run_command: /usr/lib/systemd/systemd
-    # Workaround to avoid intermittent failures on `opensuse-leap-15.1`:
-    # => SCP did not finish successfully (255):  (Net::SCP::Error)
-    transport:
-      max_ssh_sessions: 1
-  - name: amazonlinux-2-3000-1-py3
+      image: saltimages/salt-master-py3:ubuntu-20.04
+  - name: ubuntu-1804-master-py3
     driver:
-      image: netmanagers/salt-3000.1-py3:amazonlinux-2
-  - name: arch-base-latest-3000-1-py2
+      image: saltimages/salt-master-py3:ubuntu-18.04
+  - name: centos-7-master-py3
     driver:
-      image: netmanagers/salt-3000.1-py2:arch-base-latest
-      run_command: /usr/lib/systemd/systemd
+      image: saltimages/salt-master-py3:centos-7
 
-  ## SALT `2019.2`
-  - name: debian-10-2019-2-py3
-    driver:
-      image: netmanagers/salt-2019.2-py3:debian-10
-  - name: debian-9-2019-2-py3
-    driver:
-      image: netmanagers/salt-2019.2-py3:debian-9
-  - name: ubuntu-1804-2019-2-py3
+  ## SALT `3003.1`
+  - name: debian-10-3003-1-py3
     driver:
-      image: netmanagers/salt-2019.2-py3:ubuntu-18.04
-  - name: ubuntu-1604-2019-2-py3
+      image: saltimages/salt-3003.1-py3:debian-10
+  - name: ubuntu-2004-3003-1-py3
     driver:
-      image: netmanagers/salt-2019.2-py3:ubuntu-16.04
-  - name: centos-8-2019-2-py3
+      image: saltimages/salt-3003.1-py3:ubuntu-20.04
+  - name: ubuntu-1804-3003-1-py3
     driver:
-      image: netmanagers/salt-2019.2-py3:centos-8
-  - name: centos-7-2019-2-py3
+      image: saltimages/salt-3003.1-py3:ubuntu-18.04
+  - name: centos-7-3003-1-py3
     driver:
-      image: netmanagers/salt-2019.2-py3:centos-7
-  - name: fedora-31-2019-2-py3
-    driver:
-      image: netmanagers/salt-2019.2-py3:fedora-31
-  - name: opensuse-leap-151-2019-2-py3
-    driver:
-      image: netmanagers/salt-2019.2-py3:opensuse-leap-15.1
-      run_command: /usr/lib/systemd/systemd
-    # Workaround to avoid intermittent failures on `opensuse-leap-15.1`:
-    # => SCP did not finish successfully (255):  (Net::SCP::Error)
-    transport:
-      max_ssh_sessions: 1
-  - name: amazonlinux-2-2019-2-py3
+      image: saltimages/salt-3003.1-py3:centos-7
+
+  ## SALT `3002.6`
+  - name: debian-10-3002-6-py3
     driver:
-      image: netmanagers/salt-2019.2-py3:amazonlinux-2
-  - name: ubuntu-1804-2019-2-py2
+      image: saltimages/salt-3002.6-py3:debian-10
+  - name: ubuntu-2004-3002-6-py3
     driver:
-      image: netmanagers/salt-2019.2-py2:ubuntu-18.04
-  - name: amazonlinux-1-2019-2-py2
+      image: saltimages/salt-3002.6-py3:ubuntu-20.04
+  - name: ubuntu-1804-3002-6-py3
     driver:
-      image: netmanagers/salt-2019.2-py2:amazonlinux-1
-      run_command: /sbin/init
-  - name: arch-base-latest-2019-2-py2
+      image: saltimages/salt-3002.6-py3:ubuntu-18.04
+  - name: centos-7-3002-6-py3
     driver:
-      image: netmanagers/salt-2019.2-py2:arch-base-latest
-      run_command: /usr/lib/systemd/systemd
+      image: saltimages/salt-3002.6-py3:centos-7
 
-  ## SALT `2018.3`
-  - name: centos-7-2018-3-py3
-    driver:
-      image: netmanagers/salt-2018.3-py3:centos-7
-  - name: fedora-30-2018-3-py3
+  ## SALT `3001.7`
+  - name: debian-10-3001-7-py3
     driver:
-      image: netmanagers/salt-2018.3-py3:fedora-30
-  - name: debian-9-2018-3-py2
+      image: saltimages/salt-3001.7-py3:debian-10
+  - name: ubuntu-2004-3001-7-py3
     driver:
-      image: netmanagers/salt-2018.3-py2:debian-9
-  - name: debian-8-2018-3-py2
+      image: saltimages/salt-3001.7-py3:ubuntu-20.04
+  - name: ubuntu-1804-3001-7-py3
     driver:
-      image: netmanagers/salt-2018.3-py2:debian-8
-  - name: ubuntu-1804-2018-3-py2
+      image: saltimages/salt-3001.7-py3:ubuntu-18.04
+  - name: centos-7-3001-7-py3
     driver:
-      image: netmanagers/salt-2018.3-py2:ubuntu-18.04
-  - name: ubuntu-1604-2018-3-py2
-    driver:
-      image: netmanagers/salt-2018.3-py2:ubuntu-16.04
-  - name: centos-6-2018-3-py2
+      image: saltimages/salt-3001.7-py3:centos-7
+
+  ## SALT `3000.9`
+  - name: debian-10-3000-9-py3
     driver:
-      image: netmanagers/salt-2018.3-py2:centos-6
-      run_command: /sbin/init
-  - name: opensuse-leap-151-2018-3-py2
+      image: saltimages/salt-3000.9-py3:debian-10
+  - name: ubuntu-1804-3000-9-py3
     driver:
-      image: netmanagers/salt-2018.3-py2:opensuse-leap-15.1
-      run_command: /usr/lib/systemd/systemd
-    # Workaround to avoid intermittent failures on `opensuse-leap-15.1`:
-    # => SCP did not finish successfully (255):  (Net::SCP::Error)
-    transport:
-      max_ssh_sessions: 1
-  - name: amazonlinux-1-2018-3-py2
+      image: saltimages/salt-3000.9-py3:ubuntu-18.04
+  - name: centos-7-3000-9-py3
     driver:
-      image: netmanagers/salt-2018.3-py2:amazonlinux-1
-      run_command: /sbin/init
-  - name: arch-base-latest-2018-3-py2
+      image: saltimages/salt-3000.9-py3:centos-7
+  - name: ubuntu-1804-3000-9-py2
     driver:
-      image: netmanagers/salt-2018.3-py2:arch-base-latest
-      run_command: /usr/lib/systemd/systemd
-
-provisioner:
-  name: salt_solo
-  log_level: debug
-  salt_install: none
-  require_chef: false
-  formula: TEMPLATE
-  salt_copy_filter:
-    - .kitchen
-    - .git
+      image: saltimages/salt-3000.9-py2:ubuntu-18.04
 
 verifier:
   # https://www.inspec.io/
@@ -173,43 +116,156 @@ verifier:
     - cli
 
 suites:
-  - name: default
-    excludes:
-      - centos-6-2018-3-py2
+  #### api,websocket,keepproxy,keepweb,controller
+  - name: api
+    driver:
+      hostname: fixme.example.net
+    provisioner:
+      dependencies:
+        - name: single_host
+          path: test/salt/states/examples
+        - name: locale
+          repo: git
+          source: https://github.com/saltstack-formulas/locale-formula.git
+        - name: postgres
+          repo: git
+          source: https://github.com/saltstack-formulas/postgres-formula.git
+        - name: nginx
+          repo: git
+          source: https://github.com/saltstack-formulas/nginx-formula.git
+      state_top:
+        base:
+          '*':
+            - arvados._mapdata
+            - single_host.host_entries
+            - single_host.snakeoil_certs
+            - locale
+            - nginx.passenger
+            - postgres
+            - arvados.repo
+            - arvados.api
+            - arvados.websocket
+            - arvados.keepproxy
+            - arvados.keepweb
+            - arvados.controller
+            - arvados.dispatcher
+      pillars:
+        top.sls:
+          base:
+            '*':
+              - arvados
+              - example_locale
+              - example_postgres
+              - example_nginx
+              - example_nginx_api
+              - example_nginx_websocket
+              - example_nginx_keepweb
+              - example_nginx_controller
+              # keepproxy expects to retrieve a list of services from API, so
+              # installing/testing it without an api server running will fail
+              - example_nginx_keepproxy
+      pillars_from_files:
+        # yamllint disable rule:line-length
+        arvados.sls: test/salt/pillar/arvados.sls
+        example_locale.sls: test/salt/pillar/examples/locale.sls
+        example_postgres.sls: test/salt/pillar/examples/postgresql.sls
+        example_nginx.sls: test/salt/pillar/examples/nginx_passenger.sls
+        example_nginx_api.sls: test/salt/pillar/examples/nginx_api_configuration.sls
+        example_nginx_websocket.sls: test/salt/pillar/examples/nginx_websocket_configuration.sls
+        example_nginx_keepweb.sls: test/salt/pillar/examples/nginx_keepweb_configuration.sls
+        example_nginx_keepproxy.sls: test/salt/pillar/examples/nginx_keepproxy_configuration.sls
+        example_nginx_controller.sls: test/salt/pillar/examples/nginx_controller_configuration.sls
+        # yamllint enable rule:line-length
+    verifier:
+      inspec_tests:
+        - path: test/integration/api
+        - path: test/integration/websocket
+        - path: test/integration/keepproxy
+        - path: test/integration/keepweb
+        - path: test/integration/controller
+  #### workbench,workbench2,webshell
+  - name: workbench
+    driver:
+      hostname: workbench.fixme.example.net
+    provisioner:
+      dependencies:
+        - name: single_host
+          path: test/salt/states/examples
+        - name: nginx
+          repo: git
+          source: https://github.com/saltstack-formulas/nginx-formula.git
+      state_top:
+        base:
+          '*':
+            - arvados._mapdata
+            - single_host.host_entries
+            - single_host.snakeoil_certs
+            - nginx.passenger
+            - arvados.repo
+            - arvados.workbench
+            - arvados.workbench2
+      pillars:
+        top.sls:
+          base:
+            '*':
+              - arvados
+              - example_nginx
+              - example_nginx_workbench
+              - example_nginx_workbench2
+              - example_nginx_webshell
+      pillars_from_files:
+        # yamllint disable rule:line-length
+        arvados.sls: test/salt/pillar/arvados.sls
+        example_nginx.sls: test/salt/pillar/examples/nginx_passenger.sls
+        example_nginx_workbench.sls: test/salt/pillar/examples/nginx_workbench_configuration.sls
+        example_nginx_workbench2.sls: test/salt/pillar/examples/nginx_workbench2_configuration.sls
+        example_nginx_webshell.sls: test/salt/pillar/examples/nginx_webshell_configuration.sls
+        # yamllint enable rule:line-length
+    verifier:
+      inspec_tests:
+        - path: test/integration/repo
+        - path: test/integration/workbench
+        - path: test/integration/workbench2
+  #### shell
+  - name: shell
+    driver:
+      hostname: shell.fixme.example.net
     provisioner:
       state_top:
         base:
           '*':
-            - TEMPLATE
+            - arvados._mapdata
+            # We also test repo here. No sense for a whole separate suite
+            - arvados.repo
+            - arvados.shell
       pillars:
         top.sls:
           base:
             '*':
-              - TEMPLATE
-              - define_roles
+              - arvados
       pillars_from_files:
-        TEMPLATE.sls: pillar.example
-        define_roles.sls: test/salt/pillar/define_roles.sls
+        arvados.sls: test/salt/pillar/arvados_dev.sls
     verifier:
       inspec_tests:
-        - path: test/integration/default
-  - name: centos6
-    includes:
-      - centos-6-2018-3-py2
+        - path: test/integration/shell
+  #### keepstore
+  - name: keepstore
+    driver:
+      hostname: keep0.fixme.example.net
     provisioner:
       state_top:
         base:
           '*':
-            - TEMPLATE
+            - arvados._mapdata
+            - arvados.repo
+            - arvados.keepstore
       pillars:
         top.sls:
           base:
             '*':
-              - TEMPLATE
-              - define_roles
+              - arvados
       pillars_from_files:
-        TEMPLATE.sls: test/salt/pillar/centos6.sls
-        define_roles.sls: test/salt/pillar/define_roles.sls
+        arvados.sls: test/salt/pillar/arvados_dev.sls
     verifier:
       inspec_tests:
-        - path: test/integration/default
+        - path: test/integration/keepstore