diff --git a/.github/workflows/deploy.sh b/.github/workflows/deploy.sh index 720744a5..667a09b4 100755 --- a/.github/workflows/deploy.sh +++ b/.github/workflows/deploy.sh @@ -25,7 +25,7 @@ else if [ "$SP_MINI_SIZE" == "large" ] then - # prepare env vars for docker-compose + # prepare env vars for docker compose echo -n > provisioning/roles/docker/files/.env echo "ELASTICSEARCH_MEM_SIZE=2560m" >> provisioning/roles/docker/files/.env echo "ELASTICSEARCH_HEAP_SIZE=1280m" >> provisioning/roles/docker/files/.env @@ -47,7 +47,7 @@ else fi elif [ "$SP_MINI_SIZE" == "xlarge" ] then - # prepare env vars for docker-compose + # prepare env vars for docker compose echo -n > provisioning/roles/docker/files/.env echo "ELASTICSEARCH_MEM_SIZE=5g" >> provisioning/roles/docker/files/.env echo "ELASTICSEARCH_HEAP_SIZE=2560m" >> provisioning/roles/docker/files/.env @@ -69,7 +69,7 @@ else fi elif [ "$SP_MINI_SIZE" == "xxlarge" ] then - # prepare env vars for docker-compose + # prepare env vars for docker compose echo -n > provisioning/roles/docker/files/.env echo "ELASTICSEARCH_MEM_SIZE=10g" >> provisioning/roles/docker/files/.env echo "ELASTICSEARCH_HEAP_SIZE=5g" >> provisioning/roles/docker/files/.env diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 78e437f9..0f6cb438 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -22,18 +22,19 @@ jobs: cd $GITHUB_WORKSPACE/provisioning/resources/control-plane go test *.go + - name: Provision a local Mini instance run: ansible-playbook -i $GITHUB_WORKSPACE/provisioning/inventory $GITHUB_WORKSPACE/provisioning/local_setup.yml --connection=local --become - id: 'auth' if: startsWith(github.ref, 'refs/tags/') - uses: 'google-github-actions/auth@v0' + uses: 'google-github-actions/auth@v2' with: credentials_json: '${{ secrets.GOOGLE_APPLICATION_CREDENTIALS_JSON_BASE64 }}' - name: 'Set up Cloud SDK' if: startsWith(github.ref, 'refs/tags/') - uses: 'google-github-actions/setup-gcloud@v0' + uses: 'google-github-actions/setup-gcloud@v2' - name: SSH config for Ansible run: mkdir ~/.ssh && echo -e "Host 127.0.0.1\nHostKeyAlgorithms +ssh-rsa\nPubkeyAcceptedKeyTypes +ssh-rsa" >> ~/.ssh/config diff --git a/Packerfile.json b/Packerfile.json index 1bb37c2d..65ee7236 100644 --- a/Packerfile.json +++ b/Packerfile.json @@ -40,12 +40,11 @@ "post-processors": [ [ { - "type": "googlecompute-export", + "type": "shell-local", "only": ["googlecompute"], - "paths": [ - "gs://snowplow-mini/{{user `gcp_image_name`}}.tar.gz" - ], - "keep_input_artifact": true + "inline": [ + "gcloud compute images export --destination-uri gs://snowplow-mini/{{user `gcp_image_name`}}.tar.gz --image {{user `gcp_image_name`}} --image-project snowplow-images" + ] }, { "type": "shell-local", diff --git a/provisioning/resources/control-plane/restart_services.go b/provisioning/resources/control-plane/restart_services.go index 573808d0..5ef3a661 100644 --- a/provisioning/resources/control-plane/restart_services.go +++ b/provisioning/resources/control-plane/restart_services.go @@ -34,8 +34,8 @@ func restartSPService(service string) (error, int) { return nil, 200 } else { if serviceName, ok := initMap[service]; ok { - restartCommandArgs := []string{"restart", serviceName} - cmd := exec.Command("docker-compose", restartCommandArgs...) + restartCommandArgs := []string{"compose", "restart", serviceName} + cmd := exec.Command("docker", restartCommandArgs...) cmd.Dir = "/home/ubuntu/snowplow" err := cmd.Run() if err != nil { @@ -48,8 +48,8 @@ func restartSPService(service string) (error, int) { } func restartSPServices() error { - restartCommandArgs := []string{"-f", "/home/ubuntu/snowplow/docker-compose.yml", "restart"} - cmd := exec.Command("docker-compose", restartCommandArgs...) + restartCommandArgs := []string{"compose", "-f", "/home/ubuntu/snowplow/docker-compose.yml", "restart"} + cmd := exec.Command("docker", restartCommandArgs...) cmd.Dir = "/home/ubuntu/snowplow" err := cmd.Run() if err != nil { diff --git a/provisioning/resources/init/snowplow_mini.service b/provisioning/resources/init/snowplow_mini.service index 589574dc..35e0c55f 100644 --- a/provisioning/resources/init/snowplow_mini.service +++ b/provisioning/resources/init/snowplow_mini.service @@ -7,9 +7,9 @@ Type=oneshot RemainAfterExit=true WorkingDirectory=/home/ubuntu/snowplow ExecStartPre=/usr/sbin/service docker restart -ExecStartPre=docker-compose down -ExecStart=docker-compose up -d -ExecStop=docker-compose down +ExecStartPre=docker compose down +ExecStart=docker compose up -d +ExecStop=docker compose down [Install] WantedBy=multi-user.target \ No newline at end of file diff --git a/provisioning/roles/docker/tasks/main.yml b/provisioning/roles/docker/tasks/main.yml index 5f1a6a0b..4102ca31 100644 --- a/provisioning/roles/docker/tasks/main.yml +++ b/provisioning/roles/docker/tasks/main.yml @@ -1,23 +1,11 @@ --- - include_vars: ../../common_vars.yml -- name: Install ca-certificates curl gnupg - become: yes - shell: sudo apt-get install ca-certificates curl gnupg --yes - -- name: Add Docker’s official GPG key - become: yes - shell: | - sudo install -m 0755 -d /etc/apt/keyrings - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg - sudo chmod a+r /etc/apt/keyrings/docker.gpg - -- name: Set up Docker repo - become: yes - shell: echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable" > /etc/apt/sources.list.d/docker.list +- name: Remove containerd + apt: name=containerd.io state=absent -- name: Install docker-compose - apt: name=docker-compose state=latest +- name: Install docker compose v2 + apt: name=docker-compose-v2 state=latest - name: Copy docker-compose.yml and its environment file copy: src={{ item.src }} dest={{ item.dest }} owner=ubuntu group=ubuntu mode=0644 @@ -33,9 +21,9 @@ become: yes shell: echo "vm.max_map_count=262144" >> /etc/sysctl.conf && service procps restart -- name: Start snowplow mini (docker-compose up) +- name: Start snowplow mini (docker compose up) become: yes - shell: cd {{main_dir}} && docker-compose up -d && sleep 20 + shell: cd {{main_dir}} && docker compose up -d && sleep 20 - name: Wait for Elasticsearch port 9200 to become open on the host, don't start checking for 10 seconds wait_for: diff --git a/utils/scripts/user_data.sh b/utils/scripts/user_data.sh index d5afb102..a7c72dc5 100755 --- a/utils/scripts/user_data.sh +++ b/utils/scripts/user_data.sh @@ -8,7 +8,7 @@ password='password' iglu_server_super_uid='deadbeef-dead-beef-dead-beefdeadbeef' # DO NOT ALTER BELOW # -docker-compose -f /home/ubuntu/snowplow/docker-compose.yml restart iglu-server +docker compose -f /home/ubuntu/snowplow/docker-compose.yml restart iglu-server sudo service snowplow_mini_control_plane_api restart sleep 10