|
I'm writing a script to create and approve CertificateSigningRequests. With the following, I'm able to create CSRs, but I'm not sure how to call the approval subresource to approve the CSR. package dev.hnaderi.k8s.client
import apis.certificates._
trait CertificatesV1 {
final val certificateSigningRequests = CertificateSigningRequestAPI
}
object CertificatesV1 extends APIGroupAPI("apis/certificates.k8s.io/v1") with CertificatesV1package dev.hnaderi.k8s.client
package apis.certificates
import io.k8s.api.certificates.v1.CertificateSigningRequest
import io.k8s.api.certificates.v1.CertificateSigningRequestList
object CertificateSigningRequestAPI extends CertificatesV1.ClusterResourceAPI[CertificateSigningRequest, CertificateSigningRequestList]("certificatesigningrequests") |
Answered by
hnaderi
Jan 2, 2026
Replies: 2 comments
|
It needs a custom API request, as this API has its own subresource, You need something like this: package dev.hnaderi.k8s.client
package apis.certificates
import io.k8s.api.certificates.v1.CertificateSigningRequest
import io.k8s.api.certificates.v1.CertificateSigningRequestList
object CertificateSigningRequestAPI
extends CertificatesV1.ClusterResourceAPI[
CertificateSigningRequest,
CertificateSigningRequestList
]("certificatesigningrequests") {
case class ApprovalRequest(
name: String,
body: CertificateSigningRequest,
dryRun: Option[String] = None,
fieldManager: Option[String] = None,
fieldValidation: Option[String] = None
) extends ReplaceRequest(
s"${urlFor(name)}/approval",
body,
dryRun = dryRun,
fieldManager = fieldManager,
fieldValidation = fieldValidation
)
def approve(
name: String,
csr: CertificateSigningRequest,
dryRun: Option[String] = None,
fieldManager: Option[String] = None,
fieldValidation: Option[String] = None
): ApprovalRequest = ApprovalRequest(
name,
csr,
dryRun = dryRun,
fieldManager = fieldManager,
fieldValidation = fieldValidation
)
}And then you can use it like: CertificatesV1.certificateSigningRequests.approve("csr-name", csrWithApprovedConditionInStatus)I'll add this API to the next version as well, let me know if you had any suggestions on it, or any other useful missing APIs in the base client. |
0 replies
Answer selected by
a01fe
|
Awesome, ty so much! Having all the generated resource definitions in |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
It needs a custom API request, as this API has its own subresource, You need something like this: