Skip to content

Commit

Permalink
#27: Moved to Github Actions (#28)
Browse files Browse the repository at this point in the history
Co-authored-by: jakobbraun <jakob.braun@posteo.de>
  • Loading branch information
morazow and jakobbraun authored Nov 24, 2021
1 parent 709a3f2 commit bb2806f
Show file tree
Hide file tree
Showing 5 changed files with 115 additions and 70 deletions.
59 changes: 59 additions & 0 deletions .github/workflows/ci-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: CI Build

on:
- push

jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
include:
- terraform_version: 0.12.31
sha256sum: "e5eeba803bc7d8d0cae7ef04ba7c3541c0abd8f9e934a5e3297bf738b31c5c6d"
- terraform_version: 1.0.11
sha256sum: "eeb46091a42dc303c3a3c300640c7774ab25cbee5083dafa5fd83b54c8aca664"

steps:
- name: Checkout the repository
uses: actions/checkout@v2
with:
fetch-depth: 0

- name: Prepare bin directory
run: |
mkdir -p ${HOME}/bin
echo "${HOME}/bin/" >> $GITHUB_PATH
- name: Install shellcheck
run: |
wget -O shellcheck-stable.tar.xz "https://github.com/koalaman/shellcheck/releases/download/stable/shellcheck-stable.linux.x86_64.tar.xz"
echo "754516e4e6927b1b83417dcbc4fffe43acfc12716f8d789ed0952ad4d976d0bc shellcheck-stable.tar.xz" | sha256sum -c
tar -xvf shellcheck-stable.tar.xz
cp shellcheck-stable/shellcheck ${HOME}/bin/
chmod +x ${HOME}/bin/shellcheck
rm -rf shellcheck-stable*
shellcheck --version
- name: Install terraform
run: |
wget -O terraform.zip "https://releases.hashicorp.com/terraform/${{ matrix.terraform_version }}/terraform_${{ matrix.terraform_version }}_linux_amd64.zip"
echo "${{ matrix.sha256sum }} terraform.zip" | sha256sum -c
unzip terraform.zip
rm -f terraform.zip
chmod +x terraform
mv terraform ${HOME}/bin/
terraform -v
- name: Install tflint
run: |
wget -O tflint.zip "https://github.com/wata727/tflint/releases/download/v0.33.1/tflint_linux_amd64.zip"
echo "312435bc332df0bd986346adb6819bac7b3918e8d3b2ada6a54cf6899753ad48 tflint.zip" | sha256sum -c
unzip tflint.zip
install tflint ${HOME}/bin/
chmod +x ${HOME}/bin/tflint
rm -rf tflint*
tflint -v
- name: Run CI Script
run: ./scripts/ci.sh
23 changes: 0 additions & 23 deletions .travis.yml

This file was deleted.

89 changes: 43 additions & 46 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,17 @@

<img alt="terraform-aws-exasol logo" src="doc/images/terraform-aws-exasol_128x128.png" style="float:left; padding:0px 10px 10px 10px;"/>

[![Build Status][travis-badge]][travis-link]
[![Build Status](https://github.com/exasol/terraform-aws-exasol/actions/workflows/ci-build.yml/badge.svg)](https://github.com/exasol/terraform-aws-exasol/actions/workflows/ci-build.yml)
[![GitHub Latest Release][gh-release-badge]][gh-release-link]
![Terraform Version][terraform-version]

A [Terraform](https://www.terraform.io) module to create an
[Exasol](https://www.exasol.com) cluster on [Amazon
AWS](https://aws.amazon.com/).
A [Terraform](https://www.terraform.io) module to create an [Exasol](https://www.exasol.com) cluster on [Amazon AWS](https://aws.amazon.com/).

## Prerequisites

* [terraform][terraform-install] version `>= 0.12`
* [aws-cli profile][aws-cli-profile] with administrative access
* [python3][python3-install]
- [terraform][terraform-install] version `>= 0.12`
- [aws-cli profile][aws-cli-profile] with administrative access
- [python3][python3-install]

## Usage example

Expand Down Expand Up @@ -135,6 +133,7 @@ resource "aws_security_group" "exasol_db_security_group" {
```

Then you can configure the exasol module like:

```
subnet_id = aws_subnet.exasol_db_vpc.id
security_group_id = aws_security_group.exasol_db_security_group.id
Expand All @@ -144,57 +143,55 @@ Then you can configure the exasol module like:

The following configuration variables are available.

| Variable name | Default | Description
|:----------------------------------|:-----------------|:------------------------------------------------------------------------------------------------|
|``cluster_name`` |``exasol-cluster``|A name for the to be deployed cluster. |
|``database_name`` |``exadb`` |A name of the Exasol database. |
|``ami_image_id`` |``null`` |An Exasol release AMI image id, e.g, `ami-05fad9f0c2609cef0`. |
|``ami_image_name`` |*<none>* |An Exasol release AMI image name, e.g, `R6.1.5-PAYG` or `R6.2.1-BYOL`. |
|``sys_user_password`` |*<none>* |An Exasol database `sys` user password. |
|``admin_user_password`` |*<none>* |An EXAOperation `admin` user password. |
|``management_server_instance_type``|``m5.large`` |An EC2 instance type for management server. |
|``datanode_instance_type`` |``m5.xlarge`` |An EC2 instance type for Exasol datanodes. |
|``datanode_count`` |``3`` |The number of Exasol datanodes. |
|``standbynode_count`` |``0`` |The number of Exasol standby nodes. |
|``license`` |``null`` |An optional path for the Bring Your Own (BYOL) image license file, e.g, `./mor_byol_license.xml`.|
|``public_ip`` |``true`` |A boolean variable whether to set public IPv4 address to nodes. Skips waiting if set to `false`. |
|``key_pair_name`` |*<none>* |An EC2 key pair name to attach to nodes. |
|``subnet_id`` |*<none>* |A subnet id to deploy the Exasol cluster. |
|``security_group_id`` |*<none>* |A security group id to attach to nodes. Please ensure that it has correct inbound rules. |
|``project`` |``""`` |A name for the project used in resource tagging as ``exa:project`` and ``Project``. |
|``project_name`` |``""`` |A name for the project used in resource tagging as ``exa:project.name`` |
|``owner`` |``""`` |An email address of the owner used in resource tagging. |
|``environment`` |``""`` |An environment name to deploy the cluster used in resource tagging. |
|``waited_on`` |``null`` |An optional variable that can include other resource id-s to wait before deploying the cluster. |
| Variable name | Default | Description |
| :-------------------------------- | :--------------- | :------------------------------------------------------------------------------------------------ |
| `cluster_name` | `exasol-cluster` | A name for the to be deployed cluster. |
| `database_name` | `exadb` | A name of the Exasol database. |
| `ami_image_id` | `null` | An Exasol release AMI image id, e.g, `ami-05fad9f0c2609cef0`. |
| `ami_image_name` | _<none>_ | An Exasol release AMI image name, e.g, `R6.1.5-PAYG` or `R6.2.1-BYOL`. |
| `sys_user_password` | _<none>_ | An Exasol database `sys` user password. |
| `admin_user_password` | _<none>_ | An EXAOperation `admin` user password. |
| `management_server_instance_type` | `m5.large` | An EC2 instance type for management server. |
| `datanode_instance_type` | `m5.xlarge` | An EC2 instance type for Exasol datanodes. |
| `datanode_count` | `3` | The number of Exasol datanodes. |
| `standbynode_count` | `0` | The number of Exasol standby nodes. |
| `license` | `null` | An optional path for the Bring Your Own (BYOL) image license file, e.g, `./mor_byol_license.xml`. |
| `public_ip` | `true` | A boolean variable whether to set public IPv4 address to nodes. Skips waiting if set to `false`. |
| `key_pair_name` | _<none>_ | An EC2 key pair name to attach to nodes. |
| `subnet_id` | _<none>_ | A subnet id to deploy the Exasol cluster. |
| `security_group_id` | _<none>_ | A security group id to attach to nodes. Please ensure that it has correct inbound rules. |
| `project` | `""` | A name for the project used in resource tagging as `exa:project` and `Project`. |
| `project_name` | `""` | A name for the project used in resource tagging as `exa:project.name` |
| `owner` | `""` | An email address of the owner used in resource tagging. |
| `environment` | `""` | An environment name to deploy the cluster used in resource tagging. |
| `waited_on` | `null` | An optional variable that can include other resource id-s to wait before deploying the cluster. |

### Remarks

* If the `ami_image_id` is provided it will used. Otherwise, an AMI image id
- If the `ami_image_id` is provided it will used. Otherwise, an AMI image id
will be used corresponding to the provided `ami_image_name` value.
* The `security_group_id` should have at least these ports open for basic
- The `security_group_id` should have at least these ports open for basic
operations.
* ``22`` for SSH
* ``443`` for EXAOperation
* ``8563`` for Exasol database
* ``8835`` for Cloud UI
* The `project` input value is also used to create a `exa:project` tag.
* Similarly, the `owner` input value is used to create a `exa:owner` tag.
- `22` for SSH
- `443` for EXAOperation
- `8563` for Exasol database
- `8835` for Cloud UI
- The `project` input value is also used to create a `exa:project` tag.
- Similarly, the `owner` input value is used to create a `exa:owner` tag.

## Outputs

| Output name | Description
|:----------------------------------|:-----------------------------------------------|
|``management_server_ip`` |The Exasol management server public ip address. |
|``first_datanode_ip`` |The first Exasol datanode public ip address. |
| Output name | Description |
| :--------------------- | :---------------------------------------------- |
| `management_server_ip` | The Exasol management server public ip address. |
| `first_datanode_ip` | The first Exasol datanode public ip address. |

## Additional Information

* [Tests](test/README.md)
* [Changelog](doc/changes/changelog.md)
* [Contribution guidelines](CONTRIBUTING.md)
- [Tests](test/README.md)
- [Changelog](doc/changes/changelog.md)
- [Contribution guidelines](CONTRIBUTING.md)

[travis-badge]: https://travis-ci.com/exasol/terraform-aws-exasol.svg?branch=main
[travis-link]: https://travis-ci.com/exasol/terraform-aws-exasol
[gh-release-badge]: https://img.shields.io/github/tag/exasol/terraform-aws-exasol.svg?label=latest
[gh-release-link]: https://github.com/exasol/terraform-aws-exasol/releases/latest
[terraform-version]: https://img.shields.io/badge/tf-%3E%3D0.12.0-blue.svg
Expand Down
3 changes: 2 additions & 1 deletion doc/changes/changelog.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Changes

* [1.0.2](changes_1.0.2.md)
* [1.0.1](changes_1.0.1.md)
* [1.0.0](changes_1.0.0.md)
* [0.0.2](changes_0.0.2.md)
* [0.0.1](changes_0.0.1.md)
* [0.0.1](changes_0.0.1.md)
11 changes: 11 additions & 0 deletions doc/changes/changes_1.0.2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# terraform-aws-exasol 1.0.2, released 2021-11-24

Code name: Migrated to Github Actions

## Summary

In this release, we migrated our Continuous Integration (CI) from Travis CI to Github Actions.

## Refactoring

- #27: Migrated to Github Actions from Travis CI

0 comments on commit bb2806f

Please sign in to comment.