From 3ecdd9ffa0156edb15cf6ca88244f1b37972b787 Mon Sep 17 00:00:00 2001 From: geoffsee <> Date: Thu, 4 Sep 2025 15:03:17 -0400 Subject: [PATCH] update deployment tooling to remove dependencies on unused metadata --- .github/workflows/docker.yml | 46 +++++++++++++++++++++++++ crates/embeddings-engine/Cargo.toml | 7 ---- crates/inference-engine/Cargo.toml | 6 ---- crates/predict-otron-9000/Cargo.toml | 7 ---- integration/helm-chart-tool/README.md | 7 +--- integration/helm-chart-tool/src/main.rs | 13 ++----- 6 files changed, 50 insertions(+), 36 deletions(-) create mode 100644 .github/workflows/docker.yml diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000..5d6e06d --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,46 @@ +name: Build and Push Docker Image + +on: + tags: + - 'v*' +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + +jobs: + build-and-push: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Log in to Container Registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + type=ref,event=branch + type=ref,event=pr + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=sha + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file diff --git a/crates/embeddings-engine/Cargo.toml b/crates/embeddings-engine/Cargo.toml index 76efe88..205d3af 100644 --- a/crates/embeddings-engine/Cargo.toml +++ b/crates/embeddings-engine/Cargo.toml @@ -25,13 +25,6 @@ rand = "0.8.5" async-openai = "0.28.3" once_cell = "1.19.0" - - -[package.metadata.compose] -image = "ghcr.io/geoffsee/predict-otron-9000:latest" -port = 8080 -cmd = ["./bin/embeddings-engine"] - # generates kubernetes manifests [package.metadata.kube] image = "ghcr.io/geoffsee/predict-otron-9000:latest" diff --git a/crates/inference-engine/Cargo.toml b/crates/inference-engine/Cargo.toml index 692924f..9ad2136 100644 --- a/crates/inference-engine/Cargo.toml +++ b/crates/inference-engine/Cargo.toml @@ -73,12 +73,6 @@ bin = [] name = "inference-engine" path = "src/main.rs" - -[package.metadata.compose] -image = "ghcr.io/geoffsee/predict-otron-9000:latest" -cmd = ["./bin/inference-engine"] -port = 8080 - # generates kubernetes manifests [package.metadata.kube] image = "ghcr.io/geoffsee/predict-otron-9000:latest" diff --git a/crates/predict-otron-9000/Cargo.toml b/crates/predict-otron-9000/Cargo.toml index 8130a6a..22e829e 100644 --- a/crates/predict-otron-9000/Cargo.toml +++ b/crates/predict-otron-9000/Cargo.toml @@ -34,13 +34,6 @@ chat-ui = { path = "../chat-ui", features = ["ssr", "hydrate"], optional = true mime_guess = "2.0.5" log = "0.4.27" - -[package.metadata.compose] -name = "predict-otron-9000" -image = "ghcr.io/geoffsee/predict-otron-9000:latest" -port = 8080 -cmd = ["./bin/predict-otron-9000"] - # generates kubernetes manifests [package.metadata.kube] image = "ghcr.io/geoffsee/predict-otron-9000:latest" diff --git a/integration/helm-chart-tool/README.md b/integration/helm-chart-tool/README.md index f216d55..62f5b51 100644 --- a/integration/helm-chart-tool/README.md +++ b/integration/helm-chart-tool/README.md @@ -64,14 +64,9 @@ version = "0.1.0" # Required: Kubernetes metadata [package.metadata.kube] -image = "ghcr.io/myorg/my-service:latest" +image = "ghcr.io/geoffsee/predict-otron-9000:latest" replicas = 1 port = 8080 - -# Optional: Docker Compose metadata (currently not used but parsed) -[package.metadata.compose] -image = "ghcr.io/myorg/my-service:latest" -port = 8080 ``` ### Required Fields diff --git a/integration/helm-chart-tool/src/main.rs b/integration/helm-chart-tool/src/main.rs index 16809b9..b3623bd 100644 --- a/integration/helm-chart-tool/src/main.rs +++ b/integration/helm-chart-tool/src/main.rs @@ -1,9 +1,8 @@ use anyhow::{Context, Result}; use clap::{Arg, Command}; -use serde::{Deserialize, Serialize}; -use std::collections::HashMap; +use serde::Deserialize; use std::fs; -use std::path::{Path, PathBuf}; +use std::path::Path; use walkdir::WalkDir; #[derive(Debug, Deserialize)] @@ -20,7 +19,6 @@ struct Package { #[derive(Debug, Deserialize)] struct Metadata { kube: Option, - compose: Option, } #[derive(Debug, Deserialize)] @@ -30,11 +28,6 @@ struct KubeMetadata { port: u16, } -#[derive(Debug, Deserialize)] -struct ComposeMetadata { - image: Option, - port: Option, -} #[derive(Debug, Clone)] struct ServiceInfo { @@ -377,7 +370,7 @@ spec: Ok(()) } -fn generate_ingress_template(templates_dir: &Path, services: &[ServiceInfo]) -> Result<()> { +fn generate_ingress_template(templates_dir: &Path, _services: &[ServiceInfo]) -> Result<()> { let ingress_template = r#"{{- if .Values.ingress.enabled -}} apiVersion: networking.k8s.io/v1 kind: Ingress