You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The sample apps use inconsistent naming for the "same" application across object types and between apps (rust vs java). Surfaced while investigating an IAM PassRole failure (fixed generically in #816). Not a functional break today (see verification), but confusing for participants and it coupled IAM to a name substring.
Naming map (kro path, current feature/agent-platform)
Concern
rust
java
AppmodService / Service / Rollout
rust-microservice-<env>
java-webservice
-<environment> suffix
yes
no
type suffix
-microservice
-webservice
image_name
rust-microservice
java-app
serviceAccount
rust-service-account-<env>
java-service-account
KubeVela Application wrapper
rust-application
java-application
ingress path
/rust-app
/java-app
DynamoDB table
rust-app-table-<env>
(n/a, dynamodb disabled)
derived IAM role (${name}-role)
rust-microservice-<env>-role
(none)
So a single app appears under 3-4 different base identifiers (*-microservice/*-webservice, *-application, *-app), rust carries an -<env> suffix and java does not, and image_name diverges from the k8s name for java.
Verification (services are functionally consistent)
services.yaml names match the AppmodService name and the Rollout stableService/canaryService refs (${name} / ${name}-preview) for both rust and java.
The content instructions document cp services.yaml ... and use the same names (java-webservice, rust-microservice-<env>).
✅ No service-name mismatch code↔content. The E2E "service 'java-app' not found" came from naming the AppmodService java-app (a deviation from the templates), not from a code/content gap.
Why it still matters
Clarity: participants see rust-app, rust-microservice, rust-application, rust-app-table for one app.
IAM coupling (now mitigated): the ${PREFIX}-cluster-mgmt-ekseks-access-management PassRole only matched *-microservice-*, so any app not named *-microservice-* (e.g. java-webservice, or a participant-chosen rust-app) that enables DynamoDB would fail PassRole. fix(iam): allow cluster-mgmt-eks to PassRole any pod-identity app role #816 decouples this via a pod-identity iam:PassedToService condition.
Proposed convention (for discussion)
Pick one base name per app and use it everywhere (AppmodService, Service, Rollout, SA, image_name, KubeVela Application, ingress path, table prefix), with a consistent (or no) env suffix:
Option 1: <app>-microservice for all (rust stays, java java-webservice -> java-microservice).
Option 2: drop the type suffix -> <app> (rust, java), simplest.
Standardize the -<env> suffix (apply to both or neither).
Summary
The sample apps use inconsistent naming for the "same" application across object types and between apps (rust vs java). Surfaced while investigating an IAM
PassRolefailure (fixed generically in #816). Not a functional break today (see verification), but confusing for participants and it coupled IAM to a name substring.Naming map (kro path, current
feature/agent-platform)rust-microservice-<env>java-webservice-<environment>suffix-microservice-webserviceimage_namerust-microservicejava-apprust-service-account-<env>java-service-accountApplicationwrapperrust-applicationjava-application/rust-app/java-apprust-app-table-<env>${name}-role)rust-microservice-<env>-roleSo a single app appears under 3-4 different base identifiers (
*-microservice/*-webservice,*-application,*-app), rust carries an-<env>suffix and java does not, andimage_namediverges from the k8s name for java.Verification (services are functionally consistent)
services.yamlnames match the AppmodService name and the RolloutstableService/canaryServicerefs (${name}/${name}-preview) for both rust and java.cp services.yaml ...and use the same names (java-webservice,rust-microservice-<env>).java-app(a deviation from the templates), not from a code/content gap.Why it still matters
rust-app,rust-microservice,rust-application,rust-app-tablefor one app.${PREFIX}-cluster-mgmt-ekseks-access-managementPassRole only matched*-microservice-*, so any app not named*-microservice-*(e.g.java-webservice, or a participant-chosenrust-app) that enables DynamoDB would fail PassRole. fix(iam): allow cluster-mgmt-eks to PassRole any pod-identity app role #816 decouples this via a pod-identityiam:PassedToServicecondition.Proposed convention (for discussion)
Pick one base name per app and use it everywhere (AppmodService, Service, Rollout, SA, image_name, KubeVela Application, ingress path, table prefix), with a consistent (or no) env suffix:
<app>-microservicefor all (rust stays, javajava-webservice->java-microservice).<app>(rust,java), simplest.-<env>suffix (apply to both or neither).image_namewith the k8s name.Scope of the alignment change
applications/{rust,java,...}/deployment/templates/{kro,kubevela}/*(appmod-blueprints, targetfeature/agent-platform).platform-engineering-on-eks(all locales) — AppmodService manifests, service copy steps, ingress paths, Backstage/Kargo project names.