Skip to content

Commit

Permalink
Test push
Browse files Browse the repository at this point in the history
  • Loading branch information
markbotterill committed Jul 8, 2024
2 parents af3d575 + 57ac896 commit 509629c
Show file tree
Hide file tree
Showing 17 changed files with 90 additions and 311 deletions.
30 changes: 18 additions & 12 deletions .github/workflows/deploy_gcp_admin_app.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ on:
- production
paths:
- "admin_app/**"
- "deployment/gcp/cloudbuild_admin_app.yaml"
- ".github/workflows/deploy_gcp_admin_app.yaml"
workflow_dispatch:

Expand All @@ -20,10 +19,12 @@ jobs:
contents: "read"
id-token: "write"

# TODO: replace improve-gcp-deploy with main
environment: gcp-${{ (github.ref_name == 'main' && 'testing') || github.ref_name }}

env:
RESOURCE_PREFIX: ${{ secrets.PROJECT_NAME }}-${{ (github.ref_name == 'main' && 'testing') || github.ref_name }}
REPO: ${{ secrets.DOCKER_REGISTRY_DOMAIN }}/${{ secrets.GCP_PROJECT_ID }}/${{ secrets.PROJECT_NAME }}-${{ (github.ref_name == 'main' && 'testing') || github.ref_name }}

steps:
- uses: "actions/checkout@v4"
Expand All @@ -36,17 +37,29 @@ jobs:
workload_identity_provider: projects/${{ secrets.GCP_PROJECT_NUMBER }}/locations/global/workloadIdentityPools/${{ vars.POOL_ID }}/providers/${{ vars.PROVIDER_ID }}
service_account: ${{ secrets.GCP_SERVICE_ACCOUNT_EMAIL }}

- name: Retrieve secrets from Secret Manager
id: "secrets"
uses: "google-github-actions/get-secretmanager-secrets@v2"
with:
min_mask_length: 4
secrets: |-
domain:${{ secrets.GCP_PROJECT_ID }}/${{ env.RESOURCE_PREFIX }}-domain
google_login_client_id:${{ secrets.GCP_PROJECT_ID }}/${{ env.RESOURCE_PREFIX }}-google-login-client-id
- name: Configure Docker to use gcloud as a credential helper
run: |
gcloud auth configure-docker ${{ secrets.DOCKER_REGISTRY_DOMAIN}}
- name: Build and push admin_app image
working-directory: admin_app
run: |
gcloud builds submit \
--config=../deployment/gcp/cloudbuild_admin_app.yaml \
--substitutions \
_RESOURCE_PREFIX=${{ env.RESOURCE_PREFIX }},_DOCKER_REGISTRY_DOMAIN=${{ secrets.DOCKER_REGISTRY_DOMAIN }}
docker build \
--build-arg NEXT_PUBLIC_BACKEND_URL="https://${{ steps.secrets.outputs.domain }}/api" \
--build-arg NEXT_PUBLIC_GOOGLE_LOGIN_CLIENT_ID="${{ steps.secrets.outputs.google_login_client_id }}" \
-t ${{ env.REPO }}/admin_app:latest \
-t ${{ env.REPO }}/admin_app:${{ github.sha }} \
.
docker image push --all-tags ${{ env.REPO }}/admin_app
- name: Deploy admin_app container
id: "compute-ssh"
Expand Down Expand Up @@ -82,13 +95,6 @@ jobs:
run: sleep 1m
shell: bash

- name: Retrieve domain from Secret Manager
id: "secrets"
uses: "google-github-actions/get-secretmanager-secrets@v2"
with:
secrets: |-
domain:${{ secrets.GCP_PROJECT_ID }}/${{ env.RESOURCE_PREFIX }}-domain
- name: Check if deployment was successful
id: check-deployment
run: |
Expand Down
37 changes: 15 additions & 22 deletions .github/workflows/deploy_gcp_caddy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ on:
- production
paths:
- "deployment/docker-compose/caddy/**"
- "deployment/gcp/cloudbuild_caddy.yaml"
- ".github/workflows/deploy_gcp_caddy.yaml"
workflow_dispatch:

Expand All @@ -20,6 +19,7 @@ jobs:
contents: "read"
id-token: "write"

# TODO: replace improve-gcp-deploy with main
environment: gcp-${{ (github.ref_name == 'main' && 'testing') || github.ref_name }}

env:
Expand All @@ -36,43 +36,43 @@ jobs:
workload_identity_provider: projects/${{ secrets.GCP_PROJECT_NUMBER }}/locations/global/workloadIdentityPools/${{ vars.POOL_ID }}/providers/${{ vars.PROVIDER_ID }}
service_account: ${{ secrets.GCP_SERVICE_ACCOUNT_EMAIL }}

- name: Configure Docker to use gcloud as a credential helper
run: |
gcloud auth configure-docker ${{ secrets.DOCKER_REGISTRY_DOMAIN}}
- name: Retrieve secrets from Secret Manager
id: "secrets"
uses: "google-github-actions/get-secretmanager-secrets@v2"
with:
secrets: |-
domain:${{ secrets.GCP_PROJECT_ID }}/${{ env.RESOURCE_PREFIX }}-domain
- name: Build and push caddy image
working-directory: deployment/docker-compose/caddy
- name: Copy Caddy deployment files
working-directory: deployment/docker-compose
run: |
gcloud builds submit --config=../../gcp/cloudbuild_caddy.yaml \
--substitutions \
_RESOURCE_PREFIX=${{ env.RESOURCE_PREFIX }},_DOCKER_REGISTRY_DOMAIN=${{ secrets.DOCKER_REGISTRY_DOMAIN }}
gcloud compute scp Caddyfile \
${{ secrets.DEPLOYMENT_INSTANCE_NAME }}:~/Caddyfile \
--zone ${{ secrets.DEPLOYMENT_ZONE }}
- name: Deploy Caddy container
id: "compute-ssh"
uses: "google-github-actions/ssh-compute@v1"
env:
REPO: ${{ secrets.DOCKER_REGISTRY_DOMAIN }}/${{ secrets.GCP_PROJECT_ID }}/${{ env.RESOURCE_PREFIX }}
with:
instance_name: "${{ secrets.DEPLOYMENT_INSTANCE_NAME }}"
zone: "${{ secrets.DEPLOYMENT_ZONE }}"
ssh_private_key: "${{ secrets.GCP_SSH_PRIVATE_KEY }}"
command: |
docker-credential-gcr configure-docker \
--registries ${{ secrets.DOCKER_REGISTRY_DOMAIN }}
docker pull ${{ env.REPO }}/caddy:latest
docker stop caddy
docker rm caddy
docker run -d \
-v caddy_data:/data \
-v caddy_config:/config \
-e DOMAIN=${{ steps.secrets.outputs.domain }} \
-p 80:80 \
-p 443:443 \
-p 443:443/udp \
-v ~/Caddyfile:/etc/caddy/Caddyfile \
--log-driver=gcplogs \
--restart always \
--network aaq-network \
--name caddy \
${{ env.REPO }}/caddy:latest
caddy:2.7.6
docker system prune --volumes -f
- name: Show deployment command output
Expand All @@ -85,13 +85,6 @@ jobs:
run: sleep 1m
shell: bash

- name: Retrieve domain from Secret Manager
id: "secrets"
uses: "google-github-actions/get-secretmanager-secrets@v2"
with:
secrets: |-
domain:${{ secrets.GCP_PROJECT_ID }}/${{ env.RESOURCE_PREFIX }}-domain
- name: Check if deployment was successful
id: check-deployment
run: |
Expand Down
49 changes: 37 additions & 12 deletions .github/workflows/deploy_gcp_core_backend.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ on:
- production
paths:
- "core_backend/**"
- "deployment/gcp/cloudbuild_core_backend.yaml"
- ".github/workflows/deploy_gcp_core_backend.yaml"
workflow_dispatch:

Expand All @@ -20,10 +19,12 @@ jobs:
contents: "read"
id-token: "write"

# TODO: replace improve-gcp-deploy with main
environment: gcp-${{ (github.ref_name == 'main' && 'testing') || github.ref_name }}

env:
RESOURCE_PREFIX: ${{ secrets.PROJECT_NAME }}-${{ (github.ref_name == 'main' && 'testing') || github.ref_name }}
REPO: ${{ secrets.DOCKER_REGISTRY_DOMAIN }}/${{ secrets.GCP_PROJECT_ID }}/${{ secrets.PROJECT_NAME }}-${{ (github.ref_name == 'main' && 'testing') || github.ref_name }}

steps:
- uses: "actions/checkout@v4"
Expand All @@ -36,17 +37,34 @@ jobs:
workload_identity_provider: projects/${{ secrets.GCP_PROJECT_NUMBER }}/locations/global/workloadIdentityPools/${{ vars.POOL_ID }}/providers/${{ vars.PROVIDER_ID }}
service_account: ${{ secrets.GCP_SERVICE_ACCOUNT_EMAIL }}

- name: Retrieve secrets from Secret Manager
id: "secrets"
uses: "google-github-actions/get-secretmanager-secrets@v2"
with:
secrets: |-
domain:${{ secrets.GCP_PROJECT_ID }}/${{ env.RESOURCE_PREFIX }}-domain
jwt-secret:${{ secrets.GCP_PROJECT_ID }}/${{ env.RESOURCE_PREFIX }}-jwt-secret
google-login-client-id:${{ secrets.GCP_PROJECT_ID }}/${{ env.RESOURCE_PREFIX }}-google-login-client-id
langfuse-secret-key:${{ secrets.GCP_PROJECT_ID }}/${{ env.RESOURCE_PREFIX }}-langfuse-secret-key
langfuse-public-key:${{ secrets.GCP_PROJECT_ID }}/${{ env.RESOURCE_PREFIX }}-langfuse-public-key
db-host:${{ secrets.GCP_PROJECT_ID }}/${{ env.RESOURCE_PREFIX }}-db-host
db-password:${{ secrets.GCP_PROJECT_ID }}/${{ env.RESOURCE_PREFIX }}-db-password
admin-username:${{ secrets.GCP_PROJECT_ID }}/${{ env.RESOURCE_PREFIX }}-admin-username
admin-password:${{ secrets.GCP_PROJECT_ID }}/${{ env.RESOURCE_PREFIX }}-admin-password
admin-api-key:${{ secrets.GCP_PROJECT_ID }}/${{ env.RESOURCE_PREFIX }}-admin-api-key
- name: Configure Docker to use gcloud as a credential helper
run: |
gcloud auth configure-docker ${{ secrets.DOCKER_REGISTRY_DOMAIN}}
- name: Build and push core_backend image
working-directory: core_backend
run: |
gcloud builds submit \
--config=../deployment/gcp/cloudbuild_core_backend.yaml \
--substitutions \
_RESOURCE_PREFIX=${{ env.RESOURCE_PREFIX }},_DOCKER_REGISTRY_DOMAIN=${{ secrets.DOCKER_REGISTRY_DOMAIN }}
docker build \
-t ${{ env.REPO }}/core_backend:latest \
-t ${{ env.REPO }}/core_backend:${{ github.sha }} \
.
docker image push --all-tags ${{ env.REPO }}/core_backend
- name: Deploy core_backend container
id: "compute-ssh"
Expand All @@ -69,6 +87,20 @@ jobs:
--restart always \
--network aaq-network \
--name core_backend \
-e JWT_SECRET="${{ steps.secrets.outputs.jwt-secret }}" \
-e NEXT_PUBLIC_GOOGLE_LOGIN_CLIENT_ID="${{ steps.secrets.outputs.google-login-client-id }}" \
-e DOMAIN="${{ steps.secrets.outputs.domain }}" \
-e POSTGRES_HOST="${{ steps.secrets.outputs.db-host }}" \
-e POSTGRES_PASSWORD="${{ steps.secrets.outputs.db-password }}" \
-e ADMIN_USERNAME="${{ steps.secrets.outputs.admin-username }}" \
-e ADMIN_PASSWORD="${{ steps.secrets.outputs.admin-password }}" \
-e ADMIN_API_KEY="${{ steps.secrets.outputs.admin-api-key }}" \
-e PROMETHEUS_MULTIPROC_DIR=/tmp \
-e LITELLM_ENDPOINT=http://litellm_proxy:4000 \
-e LANGFUSE=True \
-e LANGFUSE_SECRET_KEY="${{ steps.secrets.outputs.langfuse-secret-key }}" \
-e LANGFUSE_PUBLIC_KEY="${{ steps.secrets.outputs.langfuse-public-key }}" \
-e BACKEND_ROOT_PATH=/api \
${{ env.REPO }}/core_backend:latest
docker system prune -f
Expand All @@ -82,13 +114,6 @@ jobs:
run: sleep 1m
shell: bash

- name: Retrieve domain from Secret Manager
id: "secrets"
uses: "google-github-actions/get-secretmanager-secrets@v2"
with:
secrets: |-
domain:${{ secrets.GCP_PROJECT_ID }}/${{ env.RESOURCE_PREFIX }}-domain
- name: Check if deployment was successful
id: check-deployment
run: |
Expand Down
39 changes: 16 additions & 23 deletions .github/workflows/deploy_gcp_litellm_proxy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ on:
- production
paths:
- "deployment/docker-compose/litellm_proxy/**"
- "deployment/gcp/cloudbuild_litellm_proxy.yaml"
- ".github/workflows/deploy_gcp_litellm_proxy.yaml"
workflow_dispatch:

Expand All @@ -20,6 +19,7 @@ jobs:
contents: "read"
id-token: "write"

# TODO: replace improve-gcp-deploy with main
environment: gcp-${{ (github.ref_name == 'main' && 'testing') || github.ref_name }}

env:
Expand All @@ -36,39 +36,39 @@ jobs:
workload_identity_provider: projects/${{ secrets.GCP_PROJECT_NUMBER }}/locations/global/workloadIdentityPools/${{ vars.POOL_ID }}/providers/${{ vars.PROVIDER_ID }}
service_account: ${{ secrets.GCP_SERVICE_ACCOUNT_EMAIL }}

- name: Configure Docker to use gcloud as a credential helper
run: |
gcloud auth configure-docker ${{ secrets.DOCKER_REGISTRY_DOMAIN}}
- name: Retrieve secrets from Secret Manager
id: "secrets"
uses: "google-github-actions/get-secretmanager-secrets@v2"
with:
secrets: |-
domain:${{ secrets.GCP_PROJECT_ID }}/${{ env.RESOURCE_PREFIX }}-domain
openai-api-key:${{ secrets.GCP_PROJECT_ID }}/${{ env.RESOURCE_PREFIX }}-openai-api-key
- name: Build and push LiteLLM Proxy image
working-directory: deployment/docker-compose/litellm_proxy
- name: Copy LiteLLM deployment files
working-directory: deployment/docker-compose
run: |
gcloud builds submit --config=../../gcp/cloudbuild_litellm_proxy.yaml \
--substitutions \
_RESOURCE_PREFIX=${{ env.RESOURCE_PREFIX }},_DOCKER_REGISTRY_DOMAIN=${{ secrets.DOCKER_REGISTRY_DOMAIN }},_GCP_LOCATION=${{ vars.VERTEX_AI_LOCATION }}
gcloud compute scp litellm_proxy_config.yaml \
${{ secrets.DEPLOYMENT_INSTANCE_NAME }}:~/litellm_proxy_config.yaml \
--zone ${{ secrets.DEPLOYMENT_ZONE }}
- name: Deploy LiteLLM Proxy container
id: "compute-ssh"
uses: "google-github-actions/ssh-compute@v1"
env:
REPO: ${{ secrets.DOCKER_REGISTRY_DOMAIN }}/${{ secrets.GCP_PROJECT_ID }}/${{ env.RESOURCE_PREFIX }}
with:
instance_name: "${{ secrets.DEPLOYMENT_INSTANCE_NAME }}"
zone: "${{ secrets.DEPLOYMENT_ZONE }}"
ssh_private_key: "${{ secrets.GCP_SSH_PRIVATE_KEY }}"
command: |
docker-credential-gcr configure-docker \
--registries ${{ secrets.DOCKER_REGISTRY_DOMAIN }}
docker pull \
${{ env.REPO }}/litellm_proxy:latest
docker stop litellm_proxy
docker rm litellm_proxy
docker run -d \
-v ~/litellm_proxy_config.yaml:/app/config.yaml \
-e OPENAI_API_KEY="${{ steps.secrets.outputs.openai-api-key }}" \
--log-driver=gcplogs \
--restart always \
--network aaq-network \
--name litellm_proxy \
${{ env.REPO }}/litellm_proxy:latest
ghcr.io/berriai/litellm:main-v1.34.6 --config /app/config.yaml
docker system prune -f
- name: Show deployment command output
Expand All @@ -81,13 +81,6 @@ jobs:
run: sleep 1m
shell: bash

- name: Retrieve domain from Secret Manager
id: "secrets"
uses: "google-github-actions/get-secretmanager-secrets@v2"
with:
secrets: |-
domain:${{ secrets.GCP_PROJECT_ID }}/${{ env.RESOURCE_PREFIX }}-domain
- name: Check if deployment was successful
id: check-deployment
run: |
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ setup-llm-proxy:
@docker run \
--name litellm-proxy \
--rm \
-v "$(CURDIR)/deployment/docker-compose/litellm_proxy/litellm_proxy_config.yaml":/app/config.yaml \
-v "$(CURDIR)/deployment/docker-compose/litellm_proxy_config.yaml":/app/config.yaml \
-e OPENAI_API_KEY=$(OPENAI_API_KEY) \
-e GEMINI_API_KEY=$(GEMINI_API_KEY) \
-e EMBEDDINGS_API_KEY=$(EMBEDDINGS_API_KEY) \
Expand Down
1 change: 1 addition & 0 deletions admin_app/src/app/dashboard/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import NavBar from "@/components/NavBar";
import { ProtectedComponent } from "@/components/ProtectedComponent";
import React from "react";


export default function RootLayout({
children,
}: Readonly<{
Expand Down
Loading

0 comments on commit 509629c

Please sign in to comment.