I am going through the GCP Quick Start guide and having an issue where the Iglu server instance is failing health checks and keeps restarting. The terraform deploy will time out after 20 minutes waiting for the health checks to pass.
module.iglu_server.module.service.google_compute_region_instance_group_manager.grp: Still creating…
- I can SSH into the instance with the GCP UI.
- I have activated the 5 appropriate APIs in the quick start guide (Compute Engine API, Cloud Resource Manager API, Identity and Access Management (IAM) API, Cloud Pub/Sub API, Cloud SQL Admin API)
- I setup a Cloud NAT, and confirmed I can receive a response when I curl example.com when I am SSH’d into the instance
- The logs for the instance don’t appear to give any errors, only system message notices about it booting and being recreated
There are several topics with similar issues but none of them solved it. I am on windows and even tried converting the .tf files with dos2unix
I am not sure how to verify that the server is running correctly. When I SSH in there is no /opt/snowplow folder that I see mentioned in the startup-script of the iglu_server module.
Appreciate any help, thanks!
Here is my config, stripped of credentials
# Please accept the terms of the Snowplow Limited Use License Agreement to proceed. (https://docs.snowplow.io/limited-use-license-1.0/)
accept_limited_use_license = true
# Will be prefixed to all resource names
# Use this to easily identify the resources created and provide entropy for subsequent environments
prefix = "sp"
# The project to deploy the infrastructure into
project_id = "project-4358349857394"
# Where to deploy the infrastructure
region = "us-central1"
# --- Network
# NOTE: The network & sub-network configured must be configured with a Cloud NAT to allow the deployed Compute Engine instances to
# connect to the internet to download the required assets
network = "default"
subnetwork = ""
# --- SSH
# Update this to the internal IP of your Bastion Host
ssh_ip_allowlist = ["XX.XX.XX.XX/32"]
# Generate a new SSH key locally with `ssh-keygen`
# ssh-keygen -t rsa -b 4096
# ssh_key_pairs = []
ssh_key_pairs = [
{
user_name = "snowplow"
public_key = "MY_PUBLIC_KEY"
}
]
# --- Snowplow Iglu Server
iglu_db_name = "iglu"
iglu_db_username = "iglu"
# Change and keep this secret!
iglu_db_password = "MY_PASSWORD"
# Used for API actions on the Iglu Server
# Change this to a new UUID and keep it secret!
iglu_super_api_key = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
# NOTE: To push schemas to your Iglu Server, you can use igluctl
# igluctl: https://docs.snowplowanalytics.com/docs/pipeline-components-and-applications/iglu/igluctl
# igluctl static push --public schemas/ http://CHANGE-TO-MY-IGLU-IP 00000000-0000-0000-0000-000000000000
# See for more information: https://github.com/snowplow-devops/terraform-google-iglu-server-ce#telemetry
# Telemetry principles: https://docs.snowplowanalytics.com/docs/open-source-quick-start/what-is-the-quick-start-for-open-source/telemetry-principles/
user_provided_id = ""
telemetry_enabled = false
# --- SSL Configuration (optional)
ssl_information = {
certificate_id = ""
enabled = false
}
# --- Extra Labels to append to created resources (optional)
labels = {}
Edit - I noticed HTTP traffic is off for the instances, not sure if that matters