Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 68 additions & 6 deletions gen/proto/ctrl/v1/cluster.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

28 changes: 26 additions & 2 deletions pkg/db/deployment_topology_by_id_and_region.sql_generated.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 18 additions & 2 deletions pkg/db/deployment_topology_list_by_versions.sql_generated.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 14 additions & 2 deletions pkg/db/querier_generated.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 8 additions & 1 deletion pkg/db/queries/deployment_topology_by_id_and_region.sql
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,18 @@ SELECT
d.command,
d.port,
d.shutdown_signal,
d.healthcheck
d.healthcheck,
d.git_commit_sha,
d.git_branch,
d.git_commit_message,
e.slug AS environment_slug,
grc.repository_full_name AS git_repo
FROM `deployment_topology` dt
INNER JOIN `deployments` d ON dt.deployment_id = d.id
INNER JOIN `workspaces` w ON d.workspace_id = w.id
INNER JOIN `regions` r ON dt.region_id = r.id
INNER JOIN `environments` e ON d.environment_id = e.id
LEFT JOIN `github_repo_connections` grc ON d.app_id = grc.app_id
WHERE r.name = sqlc.arg(region)
AND dt.deployment_id = sqlc.arg(deployment_id)
LIMIT 1;
7 changes: 6 additions & 1 deletion pkg/db/queries/deployment_topology_list_by_versions.sql
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,16 @@
SELECT
sqlc.embed(dt),
sqlc.embed(d),
w.k8s_namespace
w.k8s_namespace,
e.slug AS environment_slug,
r.name AS region_name,
grc.repository_full_name AS git_repo
FROM `deployment_topology` dt
INNER JOIN `deployments` d ON dt.deployment_id = d.id
INNER JOIN `workspaces` w ON d.workspace_id = w.id
INNER JOIN `regions` r ON dt.region_id = r.id
INNER JOIN `environments` e ON d.environment_id = e.id
LEFT JOIN `github_repo_connections` grc ON d.app_id = grc.app_id
WHERE r.id = sqlc.arg(region_id) AND dt.version > sqlc.arg(afterVersion)
ORDER BY dt.version ASC
LIMIT ?;
8 changes: 8 additions & 0 deletions svc/ctrl/proto/ctrl/v1/cluster.proto
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,14 @@ message ApplyDeployment {
// app_id identifies the app within the project.
// Used for pod labels so Vector can extract it into runtime logs.
string app_id = 18;

// Runtime environment variable fields for user workloads.
optional string environment_slug = 21;
optional string region = 22;
optional string git_commit_sha = 23;
optional string git_branch = 24;
optional string git_repo = 25;
optional string git_commit_message = 26;
}

// DeleteDeployment identifies a deployment to remove from the cluster.
Expand Down
15 changes: 15 additions & 0 deletions svc/ctrl/services/cluster/rpc_get_desired_deployment_state.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,21 @@ func (s *Service) GetDesiredDeploymentState(ctx context.Context, req *connect.Re
Command: deployment.Command,
Port: deployment.Port,
ShutdownSignal: string(deployment.ShutdownSignal),
EnvironmentSlug: &deployment.EnvironmentSlug,
Region: &deployment.Region,
}

if deployment.GitCommitSha.Valid {
apply.GitCommitSha = &deployment.GitCommitSha.String
}
if deployment.GitBranch.Valid {
apply.GitBranch = &deployment.GitBranch.String
}
if deployment.GitCommitMessage.Valid {
apply.GitCommitMessage = &deployment.GitCommitMessage.String
}
if deployment.GitRepo.Valid {
apply.GitRepo = &deployment.GitRepo.String
}

if deployment.Healthcheck.Valid {
Expand Down
15 changes: 15 additions & 0 deletions svc/ctrl/services/cluster/rpc_watch_deployments.go
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,21 @@ func (s *Service) deploymentRowToState(row db.ListDeploymentTopologyByRegionRow)
Command: row.Deployment.Command,
Port: row.Deployment.Port,
ShutdownSignal: string(row.Deployment.ShutdownSignal),
EnvironmentSlug: &row.EnvironmentSlug,
Region: &row.RegionName,
}

if row.Deployment.GitCommitSha.Valid {
apply.GitCommitSha = &row.Deployment.GitCommitSha.String
}
if row.Deployment.GitBranch.Valid {
apply.GitBranch = &row.Deployment.GitBranch.String
}
if row.Deployment.GitCommitMessage.Valid {
apply.GitCommitMessage = &row.Deployment.GitCommitMessage.String
}
if row.GitRepo.Valid {
apply.GitRepo = &row.GitRepo.String
}

if row.Deployment.Healthcheck.Valid {
Expand Down
12 changes: 9 additions & 3 deletions svc/krane/internal/deployment/apply.go
Original file line number Diff line number Diff line change
Expand Up @@ -91,10 +91,16 @@ func (c *Controller) ApplyDeployment(ctx context.Context, req *ctrlv1.ApplyDeplo
ImagePullPolicy: corev1.PullIfNotPresent,
Env: []corev1.EnvVar{
{Name: "PORT", Value: strconv.Itoa(int(req.GetPort()))},
{Name: "UNKEY_WORKSPACE_ID", Value: req.GetWorkspaceId()},
{Name: "UNKEY_PROJECT_ID", Value: req.GetProjectId()},
{Name: "UNKEY_ENVIRONMENT_ID", Value: req.GetEnvironmentId()},
{Name: "UNKEY_DEPLOYMENT_ID", Value: req.GetDeploymentId()},
{Name: "UNKEY_ENVIRONMENT_SLUG", Value: req.GetEnvironmentSlug()},
{Name: "UNKEY_REGION", Value: req.GetRegion()},
{Name: "UNKEY_GIT_COMMIT_SHA", Value: req.GetGitCommitSha()},
{Name: "UNKEY_GIT_BRANCH", Value: req.GetGitBranch()},
{Name: "UNKEY_GIT_REPO", Value: req.GetGitRepo()},
{Name: "UNKEY_GIT_COMMIT_MESSAGE", Value: req.GetGitCommitMessage()},
{Name: "UNKEY_INSTANCE_ID", ValueFrom: &corev1.EnvVarSource{
FieldRef: &corev1.ObjectFieldSelector{FieldPath: "metadata.name"},
}},
Comment thread
Flo4604 marked this conversation as resolved.
// Override kubelet-injected K8s service env vars with empty strings.
// These can't be suppressed via enableServiceLinks, but setting them
// explicitly prevents leaking cluster internals to customer code.
Expand Down
Loading
Loading