Code Monkey home page Code Monkey logo

quickstart-examples's Introduction

Quick start examples for Snowplow Deployment

Release License Discourse posts

Examples of how to automate creating a Snowplow Community pipeline.

These examples cover deploying an Iglu Server, for hosting your schemas, and a Snowplow pipeline.

Supported Platforms

Tool Cloud Components Status Deployment Summary
Terraform AWS Iglu Server Published
Terraform AWS Pipeline (PostgreSQL) Published AWS PostgreSQL Summary
Terraform AWS Pipeline (Snowflake) Published AWS Snowflake Summary
Terraform AWS Pipeline (Redshift) Published AWS Redshift Summary
Terraform AWS Pipeline (Databricks) Published AWS Databricks Summary
Terraform GCP Iglu Server Published
Terraform GCP Pipeline (PostgreSQL) Published GCP PostgreSQL Summary
Terraform GCP Pipeline (BigQuery) Published GCP BigQuery Summary
Terraform Azure Iglu Server Published
Terraform Azure Pipeline (Snowflake) Published Azure Snowflake Summary
Terraform Azure Pipeline (Databricks) Published Azure Snowflake Summary
Terraform Azure Pipeline (Synapse Analytics) Published Azure Snowflake Summary

Documentation

Installation Guide FAQ
i1 i3
Installation Guide FAQ

Updating READMEs

To generate the READMEs, use terraform-docs.

For example:

terraform-docs -c .terraform-docs.yml terraform/aws/iglu_server/default
terraform-docs -c .terraform-docs.yml terraform/aws/iglu_server/secure
terraform-docs -c .terraform-docs.yml terraform/aws/pipeline/default
terraform-docs -c .terraform-docs.yml terraform/aws/pipeline/secure
terraform-docs -c .terraform-docs.yml terraform/gcp/iglu_server/default
terraform-docs -c .terraform-docs.yml terraform/gcp/iglu_server/secure
terraform-docs -c .terraform-docs.yml terraform/gcp/pipeline/default
terraform-docs -c .terraform-docs.yml terraform/gcp/pipeline/secure

Copyright and license

Copyright (c) 2022-present Snowplow Analytics Ltd. All rights reserved.

Licensed under the Snowplow Limited Use License Agreement. (If you are uncertain how it applies to your use case, check our answers to frequently asked questions.)

quickstart-examples's People

Contributors

colmsnowplow avatar jbeemster avatar paulboocock avatar spenes avatar stanch avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

quickstart-examples's Issues

Update documentation links

The documentation links on the README are currently directing to holding pages. Once the documentation pages are published we need to update the README to point to the final URLs.

Bump AWS modules to latest

We've published a number of patches to AWS Terraform Modules. These should be bumped and a patch for 20.08 released.

Add Snowflake as destination

The Snowflake Loader is now improved with v3 of the RDB Loader and ready to be added to the Quick Start Examples.

azure lake-loader module app_registration gets insufficient privileges error

I created a new azure account with pay as you go subscription and gave myself all administrator roles as well as the contributor, user access admin, storage blob data contributor for the resource groups created. But I still get this error.

Error: Could not create application

with module.lake_loader[0].azuread_application.app_registration,
on .terraform/modules/lake_loader/main.tf line 115, in resource "azuread_application" "app_registration":
115: resource "azuread_application" "app_registration" {

ApplicationsClient.BaseClient.Post(): unexpected status 403 with OData error: Authorization_RequestDenied: Insufficient
privileges to complete the operation.

Add Azure Lake Loader as a destination

This enables users to deploy the Lake Loader to build a data-lake in Azure within a Storage Container that can then be connected to Azure Synapse, Databricks and Azure Fabric.

SSL certificate on the Pipeline + Iglu server deployment does not appear to work

This is such a great repo and I've followed the Quickstart guide on the snowplow website. The issue I'm experiencing is that the ELB is not accepting a HTTPS curl and the DNS name is not working either.

What I've done

  1. Created a certificate using the Amazon Certificate Manager
  2. Added the ARN to the pipeline/secure and igluserver/secure configuration
  3. Run Terraform Apply

Any chance anyone can help with this?

ssl_information = {
  certificate_arn = "arn:aws:acm:us-east-1:631219223101:certificate/874481b6-510b-48c1-a4e1-4c719637016d"
  enabled         = true
}

AWS Launch Configurations no longer supported

AWS is planning to stop supporting launch configurations and replace them with launch templates.

Is there a plan already to migrate these? All ec2 are running on top of the launch configs.
image

Prevent name prefix length error for bigquery

With bigquery default pipeline, when prefix is more than 6 characters long, terraform plan errors with:

│ Error: "name_prefix" cannot be longer than 37 characters, name is limited to 63
│ 
│   with module.bigquery_loader[0].google_compute_instance_template.tpl["streamloader"],
│   on .terraform/modules/bigquery_loader/main.tf line 309, in resource "google_compute_instance_template" "tpl":
│  309:   name_prefix = "${var.name}-${each.key}-"

Info to reproduce:

  • On Terraform 1.3.0
  • On gcp/pipeline/default
  • In bigquery.terraform.tfvars supply a prefix with a value more than 6 chars long,e.g. testersp
  • terraform init and terraform plan -var-file=bigquery.terraform.tfvars

Provide missing postgres variables on GCP bigquery pipeline

When setting up the default pipeline on GCP and running terraform plan with bigquery specific var-file, i.e.

terraform plan -var-file=bigquery.terraform.tfvars

there is error about missing postgres variables (Error: No value for required variable), namely for postgres_db_name, postgres_db_username, postgres_db_password. As those don't have defaults in variables.tf, a workaround was to provide dummy values for them in the bigquery tfvars file.

Terraform configuration for Docker

From the README, it seems that the configuration in this repository only supports the 3 big cloud providers.

I would like to try to setup things locally first before attempting to do it in the cloud.

Is it possible to create a Terraform config using development using Docker?

Bump gce-proxy to latest version

Update gce-proxy from 1.19 to 1.31.2 (see cloud-sql-proxy changelog https://github.com/GoogleCloudPlatform/cloud-sql-proxy/blob/main/CHANGELOG.md) in the GCP Quick Start examples.

We encountered some issues with a fresh install of Iglu server and SQL over the last few days with the proxy failing to connect to SQL. The error message was 2023/01/13 08:03:19 couldn't connect to \"xx-snowplow:rrrrrrr:terraform-xxxxx\": x509: certificate is valid for 12-a123456b-1ab2-1a1b-a123-1a123456b12c.rrrrrrr.sql.goog, not xx-snowplow:terraform-xxxxx. The Iglu pods were unable to start and kept recycling. Updating to the latest gce-proxy resolved the issue and allowed the Iglu pods to restart.

Split deployment summary into AWS and GCP

Once the documentation is published for GCP, we should split the Deployment Summary so it links to both AWS and GCP as they have different deployments.

I'd recommend moving this into the top table, and placing the links next to the Pipeline sections.

Using underscores in `prefix` breaks the flow for deploying iglu_server for Azure

When you have a prefix value with underscores in Azure, e.g. snowplow_test, everything will run as expected in the base module. However, in the iglu_server module you then run into the following error after trying to terraform apply:

│ Error: domain_name_label must contain only lowercase alphanumeric characters, numbers and hyphens. It must start with a letter, end only with a number or letter and not exceed 63 characters in length
│ 
│   with module.iglu_lb.azurerm_public_ip.ip,
│   on .terraform/modules/iglu_lb/main.tf line 33, in resource "azurerm_public_ip" "ip":
│   33:   domain_name_label = "${var.name}-${random_uuid.ip_domain_name_label.result}"
│ 

This error also persists when then trying to run terraform destroy to restart everything, which can be solved by using the terraform state rm module.iglu_lb.random_uuid.ip_domain_name_label command to clean it up.

Bump GCP modules to latest

We've published a number of patches to GCP Terraform Modules. These should be bumped and a patch for 20.08 released.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.