static async Task ScaleKubeDeployment(long messageCount) { var cert = GetCert(Settings.Kubernetes.CACertificatePath); using (var client = new KuberClient(Settings.Kubernetes.Server, Settings.Kubernetes.AccessToken, cert)) { var deployment = await client.GetDeploymentAsync(Settings.Kubernetes.Deployment.Name); deployment.spec.replicas += Settings.Kubernetes.Deployment.Replicas; await client.UpdateDeploymentAsync(deployment); } }
static async Task CreateKubeJob(int pods) { var cert = GetCert(Settings.Kubernetes.CACertificatePath); var containerName = Settings.Kubernetes.Job.ContainerName; var containerImage = Settings.Kubernetes.Job.ContainerImage; var server = Settings.Kubernetes.Server; var accessToken = Settings.Kubernetes.AccessToken; var jobName = $"{containerName}-{DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss")}"; var parallelism = pods; var completions = pods; var imagePullSecret = Settings.Kubernetes.Job.ImagePullSecret; using (var client = new KuberClient(Settings.Kubernetes.Server, Settings.Kubernetes.AccessToken, cert)) { var job = await client.CreateJobAsync(jobName, parallelism, completions, containerName, containerImage, imagePullSecret); } }