From eb71347f8b1e3bc758ac40c6788785c5b8caa062 Mon Sep 17 00:00:00 2001 From: droid-dhruv Date: Wed, 10 Sep 2025 13:56:33 +0530 Subject: [PATCH 1/2] include the is k8s flag --- .github/workflows/build-and-push.yaml | 2 ++ Dockerfile | 6 ++++++ agent.docker-compose.yaml | 10 ++++++++++ agent/settings.py | 2 ++ agent/tasks.py | 9 ++++++++- deploy_docker.sh | 2 +- 6 files changed, 29 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-push.yaml b/.github/workflows/build-and-push.yaml index 6d6eafb..0e8796b 100644 --- a/.github/workflows/build-and-push.yaml +++ b/.github/workflows/build-and-push.yaml @@ -102,6 +102,8 @@ jobs: --tag ${REPO_NAME}:$IMAGE_TAG_BRANCH \ --tag ${REPO_NAME}:latest \ --build-arg BUILDKIT_INLINE_CACHE=1 \ + --build-arg is_kubernetes=True \ + --build-arg last_commit_hash=${{ github.sha }} \ --file Dockerfile \ $EXPORT_FLAG \ . diff --git a/Dockerfile b/Dockerfile index 251aa37..f1348ff 100644 --- a/Dockerfile +++ b/Dockerfile @@ -27,10 +27,16 @@ COPY nginx.default /etc/nginx/sites-available/default RUN ln -sf /dev/stdout /var/log/nginx/access.log \ && ln -sf /dev/stderr /var/log/nginx/error.log +# Accept build arguments +ARG is_kubernetes +ARG last_commit_hash + # Set environment variables ENV PIP_DISABLE_PIP_VERSION_CHECK 1 ENV PYTHONDONTWRITEBYTECODE 1 ENV PYTHONUNBUFFERED 1 +ENV IS_KUBERNETES=${is_kubernetes} +ENV LAST_COMMIT_HASH=${last_commit_hash} # Install Rust for building dependencies ENV PATH="/root/.cargo/bin:${PATH}" diff --git a/agent.docker-compose.yaml b/agent.docker-compose.yaml index b0f7259..3a21175 100644 --- a/agent.docker-compose.yaml +++ b/agent.docker-compose.yaml @@ -20,6 +20,9 @@ services: build: context: . dockerfile: Dockerfile + args: + - is_kubernetes=${IS_KUBERNETES:-False} + - last_commit_hash=${COMMIT_HASH:-} image: drd_agent command: ./start-celery-worker.sh environment: @@ -29,6 +32,8 @@ services: - "REDIS_URL=redis://redis:6379/0" - DRD_CLOUD_API_TOKEN=${DRD_CLOUD_API_TOKEN} - VPC_AGENT_COMMIT_HASH=${COMMIT_HASH:-unknown} + - IS_KUBERNETES=${IS_KUBERNETES:-False} + - LAST_COMMIT_HASH=${COMMIT_HASH:-} depends_on: - redis - fluentd @@ -45,6 +50,9 @@ services: build: context: . dockerfile: Dockerfile + args: + - is_kubernetes=${IS_KUBERNETES:-False} + - last_commit_hash=${COMMIT_HASH:-} image: drd_agent command: ./start-celery-beat.sh environment: @@ -54,6 +62,8 @@ services: - "REDIS_URL=redis://redis:6379/0" - DRD_CLOUD_API_TOKEN=${DRD_CLOUD_API_TOKEN} - VPC_AGENT_COMMIT_HASH=${COMMIT_HASH:-unknown} + - IS_KUBERNETES=${IS_KUBERNETES:-False} + - LAST_COMMIT_HASH=${COMMIT_HASH:-} depends_on: - redis - fluentd diff --git a/agent/settings.py b/agent/settings.py index 11863f5..66505b4 100644 --- a/agent/settings.py +++ b/agent/settings.py @@ -209,6 +209,8 @@ def load_yaml(filepath, native_k8s_connector_mode=False): DRD_CLOUD_API_TOKEN = env.str("DRD_CLOUD_API_TOKEN") DRD_CLOUD_API_HOST = env.str("DRD_CLOUD_API_HOST", default="https://agent-api.drdroid.io") VPC_AGENT_COMMIT_HASH = env.str("VPC_AGENT_COMMIT_HASH", default="unknown") +IS_KUBERNETES = env.str("IS_KUBERNETES", default="False") +LAST_COMMIT_HASH = env.str("LAST_COMMIT_HASH", default="") NATIVE_KUBERNETES_API_MODE = env.bool("NATIVE_KUBERNETES_API_MODE", default=False) diff --git a/agent/tasks.py b/agent/tasks.py index d86dd4d..0d3e058 100644 --- a/agent/tasks.py +++ b/agent/tasks.py @@ -14,12 +14,19 @@ def send_ping_to_drd_cloud(): drd_cloud_host = settings.DRD_CLOUD_API_HOST drd_cloud_api_token = settings.DRD_CLOUD_API_TOKEN commit_hash = settings.VPC_AGENT_COMMIT_HASH + is_kubernetes = settings.IS_KUBERNETES current_epoch = current_epoch_timestamp() + # Prepare query parameters + params = { + 'commit_hash': commit_hash, + 'is_kubernetes': is_kubernetes, + } + # Establish reachability with DRD Cloud response = requests.get(f'{drd_cloud_host}/connectors/proxy/ping', headers={'Authorization': f'Bearer {drd_cloud_api_token}'}, - params={'commit_hash': commit_hash}) + params=params) if response.status_code != 200: logger.error(f'Failed to connect to DRD Cloud at {current_epoch} with code: {response.status_code} ' diff --git a/deploy_docker.sh b/deploy_docker.sh index c453f66..26ddf73 100755 --- a/deploy_docker.sh +++ b/deploy_docker.sh @@ -30,6 +30,6 @@ echo "📝 Capturing current commit hash..." COMMIT_HASH=$(git rev-parse HEAD) echo "🚀 Starting Docker Compose with new deployment... with commit hash: $COMMIT_HASH" -DRD_CLOUD_API_TOKEN="$DRD_CLOUD_API_TOKEN" COMMIT_HASH="$COMMIT_HASH" docker-compose -f agent.docker-compose.yaml up -d +DRD_CLOUD_API_TOKEN="$DRD_CLOUD_API_TOKEN" COMMIT_HASH="$COMMIT_HASH" IS_KUBERNETES="False" docker-compose -f agent.docker-compose.yaml up -d echo "✅ Deployment complete." \ No newline at end of file From 08f7fdf44d0037591e60997fa6ac82ba14bd566b Mon Sep 17 00:00:00 2001 From: droid-dhruv Date: Wed, 10 Sep 2025 14:01:39 +0530 Subject: [PATCH 2/2] var name uniformity --- .github/workflows/build-and-push.yaml | 2 +- Dockerfile | 4 ++-- agent.docker-compose.yaml | 7 +++---- agent/settings.py | 1 - 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-and-push.yaml b/.github/workflows/build-and-push.yaml index 0e8796b..0d4db9f 100644 --- a/.github/workflows/build-and-push.yaml +++ b/.github/workflows/build-and-push.yaml @@ -103,7 +103,7 @@ jobs: --tag ${REPO_NAME}:latest \ --build-arg BUILDKIT_INLINE_CACHE=1 \ --build-arg is_kubernetes=True \ - --build-arg last_commit_hash=${{ github.sha }} \ + --build-arg vpc_agent_commit_hash=${{ github.sha }} \ --file Dockerfile \ $EXPORT_FLAG \ . diff --git a/Dockerfile b/Dockerfile index f1348ff..934bddb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -29,14 +29,14 @@ RUN ln -sf /dev/stdout /var/log/nginx/access.log \ # Accept build arguments ARG is_kubernetes -ARG last_commit_hash +ARG vpc_agent_commit_hash # Set environment variables ENV PIP_DISABLE_PIP_VERSION_CHECK 1 ENV PYTHONDONTWRITEBYTECODE 1 ENV PYTHONUNBUFFERED 1 ENV IS_KUBERNETES=${is_kubernetes} -ENV LAST_COMMIT_HASH=${last_commit_hash} +ENV VPC_AGENT_COMMIT_HASH=${vpc_agent_commit_hash} # Install Rust for building dependencies ENV PATH="/root/.cargo/bin:${PATH}" diff --git a/agent.docker-compose.yaml b/agent.docker-compose.yaml index 3a21175..08e2e48 100644 --- a/agent.docker-compose.yaml +++ b/agent.docker-compose.yaml @@ -22,7 +22,7 @@ services: dockerfile: Dockerfile args: - is_kubernetes=${IS_KUBERNETES:-False} - - last_commit_hash=${COMMIT_HASH:-} + - vpc_agent_commit_hash=${COMMIT_HASH:-} image: drd_agent command: ./start-celery-worker.sh environment: @@ -33,7 +33,7 @@ services: - DRD_CLOUD_API_TOKEN=${DRD_CLOUD_API_TOKEN} - VPC_AGENT_COMMIT_HASH=${COMMIT_HASH:-unknown} - IS_KUBERNETES=${IS_KUBERNETES:-False} - - LAST_COMMIT_HASH=${COMMIT_HASH:-} + - vpc_agent_commit_hash=${COMMIT_HASH:-} depends_on: - redis - fluentd @@ -52,7 +52,7 @@ services: dockerfile: Dockerfile args: - is_kubernetes=${IS_KUBERNETES:-False} - - last_commit_hash=${COMMIT_HASH:-} + - vpc_agent_commit_hash=${COMMIT_HASH:-unknown} image: drd_agent command: ./start-celery-beat.sh environment: @@ -63,7 +63,6 @@ services: - DRD_CLOUD_API_TOKEN=${DRD_CLOUD_API_TOKEN} - VPC_AGENT_COMMIT_HASH=${COMMIT_HASH:-unknown} - IS_KUBERNETES=${IS_KUBERNETES:-False} - - LAST_COMMIT_HASH=${COMMIT_HASH:-} depends_on: - redis - fluentd diff --git a/agent/settings.py b/agent/settings.py index 66505b4..5cdad2d 100644 --- a/agent/settings.py +++ b/agent/settings.py @@ -210,7 +210,6 @@ def load_yaml(filepath, native_k8s_connector_mode=False): DRD_CLOUD_API_HOST = env.str("DRD_CLOUD_API_HOST", default="https://agent-api.drdroid.io") VPC_AGENT_COMMIT_HASH = env.str("VPC_AGENT_COMMIT_HASH", default="unknown") IS_KUBERNETES = env.str("IS_KUBERNETES", default="False") -LAST_COMMIT_HASH = env.str("LAST_COMMIT_HASH", default="") NATIVE_KUBERNETES_API_MODE = env.bool("NATIVE_KUBERNETES_API_MODE", default=False)