diff --git a/cli/test-setup/docker-compose-pmm-client.yaml b/cli/test-setup/docker-compose-pmm-client.yaml new file mode 100644 index 000000000..9a21faf81 --- /dev/null +++ b/cli/test-setup/docker-compose-pmm-client.yaml @@ -0,0 +1,70 @@ +version: '3.7' + +services: + pmm-server: + container_name: pmm-server-1 + image: ${DOCKER_VERSION:-perconalab/pmm-server:3-dev-latest} + ports: + - "2553:8443" + - "8085:8080" + environment: + - PMM_DEBUG=1 + networks: + - docker-client-check + + pmm-client: + container_name: pmm-client-1 + image: ${CLIENT_DOCKER_VERSION:-perconalab/pmm-client:3-dev-latest} + environment: + - PMM_AGENT_SERVER_ADDRESS=pmm-server-1:8443 + - PMM_AGENT_SERVER_USERNAME=admin + - PMM_AGENT_SERVER_PASSWORD=admin + - PMM_AGENT_SERVER_INSECURE_TLS=1 + - PMM_AGENT_SETUP=1 + - PMM_AGENT_SETUP_FORCE=1 + - PMM_AGENT_CONFIG_FILE=/usr/local/percona/pmm/config/pmm-agent.yaml + depends_on: + pmm-server: + condition: service_healthy + ps: + condition: service_started + mongodb: + condition: service_started + postgres: + condition: service_started + networks: + - docker-client-check + + ps: + container_name: ps-1 + image: percona:8.0 + environment: + - MYSQL_ROOT_PASSWORD=root + - MYSQL_USER=pmm + - MYSQL_PASSWORD=pmm-pass + - PMM_AGENT_SERVER_ADDRESS=pmm-server-1:8443 + networks: + - docker-client-check + + mongodb: + container_name: psmdb-1 + image: percona/percona-server-mongodb:7.0 + environment: + - PMM_AGENT_SERVER_ADDRESS=pmm-server-1:8443 + - MONGO_INITDB_ROOT_USERNAME=pmm + - MONGO_INITDB_ROOT_PASSWORD=pmm-pass + networks: + - docker-client-check + + postgres: + container_name: pdpgsql-1 + image: percona/percona-distribution-postgresql:16 + environment: + - POSTGRES_USER=pmm + - POSTGRES_PASSWORD=pmm-pass + - PMM_AGENT_SERVER_ADDRESS=pmm-server-1:8443 + networks: + - docker-client-check + +networks: + docker-client-check: diff --git a/cli/tests/pmm-client-docker.spec.ts b/cli/tests/pmm-client-docker.spec.ts index b919407b6..72e9329f2 100644 --- a/cli/tests/pmm-client-docker.spec.ts +++ b/cli/tests/pmm-client-docker.spec.ts @@ -3,9 +3,13 @@ import * as cli from '@helpers/cli-helper'; test.describe('PMM Client Docker CLI tests', async () => { test.beforeAll(async ({}) => { - const result = await cli.exec('docker ps | grep pmm-client-1 | awk \'{print $NF}\''); - await result.outContains('pmm-client-1', 'Docker container pmm-client-1 should exist. please run pmm-framework with --database dockerclients'); + await cli.exec('docker compose -f test-setup/docker-compose-pmm-client.yaml up -d --quiet-pull'); + await cli.exec('sleep 2'); + await cli.exec('docker exec pmm-client-1 pmm-admin add mysql --username=pmm --password=pmm-pass --service-name=ps-8.0 --query-source=perfschema --host=ps-1 --port=3306 --server-url=https://admin:admin@pmm-server-1:8443 --server-insecure-tls=true'); + await cli.exec('docker exec pmm-client-1 pmm-admin add postgresql --query-source=pgstatements --username=pmm --password=pmm-pass --service-name=pdpgsql-1 --host=pdpgsql-1 --port=5432 --server-url=https://admin:admin@pmm-server-1:8443 --server-insecure-tls=true'); + await cli.exec('docker exec pmm-client-1 pmm-admin add mongodb --username=pmm --password=pmm-pass --service-name=mongodb-7.0 --host=psmdb-1 --port=27017 --server-url=https://admin:admin@pmm-server-1:8443 --server-insecure-tls=true'); }); + /** * @link https://github.com/percona/pmm-qa/blob/main/pmm-tests/pmm-2-0-bats-tests/pmm-client-docker-tests.bats#L6 */