update deployment tooling to remove dependencies on unused metadata

This commit is contained in:
geoffsee
2025-09-04 15:03:17 -04:00
parent 296d4dbe7e
commit 3ecdd9ffa0
6 changed files with 50 additions and 36 deletions

46
.github/workflows/docker.yml vendored Normal file
View File

@@ -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 }}

View File

@@ -25,13 +25,6 @@ rand = "0.8.5"
async-openai = "0.28.3" async-openai = "0.28.3"
once_cell = "1.19.0" 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 # generates kubernetes manifests
[package.metadata.kube] [package.metadata.kube]
image = "ghcr.io/geoffsee/predict-otron-9000:latest" image = "ghcr.io/geoffsee/predict-otron-9000:latest"

View File

@@ -73,12 +73,6 @@ bin = []
name = "inference-engine" name = "inference-engine"
path = "src/main.rs" path = "src/main.rs"
[package.metadata.compose]
image = "ghcr.io/geoffsee/predict-otron-9000:latest"
cmd = ["./bin/inference-engine"]
port = 8080
# generates kubernetes manifests # generates kubernetes manifests
[package.metadata.kube] [package.metadata.kube]
image = "ghcr.io/geoffsee/predict-otron-9000:latest" image = "ghcr.io/geoffsee/predict-otron-9000:latest"

View File

@@ -34,13 +34,6 @@ chat-ui = { path = "../chat-ui", features = ["ssr", "hydrate"], optional = true
mime_guess = "2.0.5" mime_guess = "2.0.5"
log = "0.4.27" 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 # generates kubernetes manifests
[package.metadata.kube] [package.metadata.kube]
image = "ghcr.io/geoffsee/predict-otron-9000:latest" image = "ghcr.io/geoffsee/predict-otron-9000:latest"

View File

@@ -64,14 +64,9 @@ version = "0.1.0"
# Required: Kubernetes metadata # Required: Kubernetes metadata
[package.metadata.kube] [package.metadata.kube]
image = "ghcr.io/myorg/my-service:latest" image = "ghcr.io/geoffsee/predict-otron-9000:latest"
replicas = 1 replicas = 1
port = 8080 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 ### Required Fields

View File

@@ -1,9 +1,8 @@
use anyhow::{Context, Result}; use anyhow::{Context, Result};
use clap::{Arg, Command}; use clap::{Arg, Command};
use serde::{Deserialize, Serialize}; use serde::Deserialize;
use std::collections::HashMap;
use std::fs; use std::fs;
use std::path::{Path, PathBuf}; use std::path::Path;
use walkdir::WalkDir; use walkdir::WalkDir;
#[derive(Debug, Deserialize)] #[derive(Debug, Deserialize)]
@@ -20,7 +19,6 @@ struct Package {
#[derive(Debug, Deserialize)] #[derive(Debug, Deserialize)]
struct Metadata { struct Metadata {
kube: Option<KubeMetadata>, kube: Option<KubeMetadata>,
compose: Option<ComposeMetadata>,
} }
#[derive(Debug, Deserialize)] #[derive(Debug, Deserialize)]
@@ -30,11 +28,6 @@ struct KubeMetadata {
port: u16, port: u16,
} }
#[derive(Debug, Deserialize)]
struct ComposeMetadata {
image: Option<String>,
port: Option<u16>,
}
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
struct ServiceInfo { struct ServiceInfo {
@@ -377,7 +370,7 @@ spec:
Ok(()) 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 -}} let ingress_template = r#"{{- if .Values.ingress.enabled -}}
apiVersion: networking.k8s.io/v1 apiVersion: networking.k8s.io/v1
kind: Ingress kind: Ingress