MCPcopy Create free account
hub / github.com/NVIDIA/OpenShell / run_kubernetes

Function run_kubernetes

crates/openshell-server/src/certgen.rs:123–264  ·  view source on GitHub ↗
(args: &CertgenArgs, bundle: &PkiBundle)

Source from the content-addressed store, hash-verified

121}
122
123async fn run_kubernetes(args: &CertgenArgs, bundle: &PkiBundle) -> Result<()> {
124 let namespace = args
125 .namespace
126 .as_deref()
127 .ok_or_else(|| miette::miette!("--namespace is required (or set POD_NAMESPACE)"))?;
128
129 let client = Client::try_default()
130 .await
131 .into_diagnostic()
132 .wrap_err("failed to construct in-cluster Kubernetes client")?;
133 let api: Api<Secret> = Api::namespaced(client, namespace);
134
135 if args.jwt_only {
136 let jwt_name = args
137 .jwt_secret_name
138 .as_deref()
139 .ok_or_else(|| miette::miette!("--jwt-secret-name is required"))?;
140 let jwt_exists = api
141 .get_opt(jwt_name)
142 .await
143 .into_diagnostic()
144 .wrap_err_with(|| format!("failed to read secret {jwt_name}"))?
145 .is_some();
146 if jwt_exists {
147 info!(
148 namespace = %namespace,
149 jwt = %jwt_name,
150 "JWT signing secret already exists, skipping."
151 );
152 return Ok(());
153 }
154
155 let jwt_secret = jwt_signing_secret(
156 jwt_name,
157 &bundle.jwt_signing_key_pem,
158 &bundle.jwt_public_key_pem,
159 &bundle.jwt_key_id,
160 );
161 api.create(&PostParams::default(), &jwt_secret)
162 .await
163 .into_diagnostic()
164 .wrap_err_with(|| format!("failed to create secret {jwt_name}"))?;
165 info!(
166 namespace = %namespace,
167 jwt = %jwt_name,
168 "JWT signing secret created."
169 );
170 return Ok(());
171 }
172
173 let server_name = args
174 .server_secret_name
175 .as_deref()
176 .ok_or_else(|| miette::miette!("--server-secret-name is required"))?;
177 let client_name = args
178 .client_secret_name
179 .as_deref()
180 .ok_or_else(|| miette::miette!("--client-secret-name is required"))?;

Callers 1

runFunction · 0.85

Calls 4

jwt_signing_secretFunction · 0.85
decide_k8sFunction · 0.85
create_tls_secretsFunction · 0.85
createMethod · 0.45

Tested by

no test coverage detected