github.com/apprenda/kismatic@v1.12.0/docs/development/INTEGRATION_TESTING.md (about)

     1  # Integration Testing
     2  
     3  Kismatic is tested using public cloud infrastructure providers. We support running tests
     4  on the following providers:
     5  - AWS
     6  - Packet.net
     7  
     8  The integration test framework will skip any infrastructure-dependent test if the
     9  required provider-specific environment variables have not been defined.
    10  
    11  ## AWS
    12  In order to run tests against AWS, you'll need two sets of AWS credentials:
    13   - An AWS User with access
    14      - This can be any user account; you should have a personal one.
    15      - You will need to set in your environment:
    16          - AWS_ACCESS_KEY_ID
    17          - AWS_SECRET_ACCESS_KEY
    18   - A private key used to SSH into newly created boxes
    19      - This must be the same user used to build images and thus the private key is shared
    20      - This should be installed in ~/.ssh/kismatic-integration-testing.pem and chmod to 0600
    21  
    22  Our AWS infrastructure provisioner has defaults for other pieces of information, such as
    23  the AMI ID, the subnet ID, etc. All these options can be overridden using environment variables:
    24  - AWS_TARGET_REGION: The AWS region to be used for provisioning machines (e.g. "us-east-1")
    25  - AWS_SUBNET_ID: The ID of the VPC subnet to use
    26  - AWS_HOSTED_ZONE_ID: The Route53 ID configured for the VPC
    27  - AWS_KEY_NAME: The name of the AWS key pair to use when creating the machines
    28  - AWS_SECURITY_GROUP_ID: The ID of the security group
    29  - AWS_SSH_KEY_PATH: The path to the SSH key to be used for SSH'ing into the machines
    30  
    31  ## Packet.net
    32  In order to run tests against Packet.net, you'll need to define the following environment variables:
    33  - PACKET_AUTH_TOKEN: The authentication token for accessing the Packet.net API
    34  - PACKET_PROJECT_ID: The ID of the Packet.Net project to provision machines in
    35  - PACKET_SSH_KEY_PATH: The path to the SSH key that should be used for accessing the machines
    36  
    37  # Running tests
    38  
    39   You run integration tests via
    40  
    41   ```make integration-test```
    42  
    43   which will also build a distributable for your machine's architecture.
    44  
    45   To avoid rebuild, you can also call
    46  
    47   ```make just-integration-test```
    48  
    49   This step will complain if your keys aren't set up, with clues as to how you can remedy the issue.
    50  
    51  To run a specific test, you can call:
    52  ```
    53  FOCUS=[pattern to match here] make focus-integration-test
    54  ```
    55  
    56   Test early. Test often. Test hard.
    57  
    58  # Adding new provisioners
    59  The integration test framework can be extended to run against other cloud infrastructure providers.
    60  
    61  New provisioners can be defined in `provision.go`, and they must implement the `infrastructureProvisioner`
    62  interface.