CreateHPAAsync(Kubernetes k8sClient, V1HorizontalPodAutoscaler yamlModel, MTAHPAModel hpaModel) { try { var namespaceParams = PrepareNamespaceParams(_groupName); var hpaParams = PrepareHPAParams(_hpaName, _deployName); yamlModel.Metadata.Name = hpaParams.Item1; yamlModel.Metadata.NamespaceProperty = namespaceParams; yamlModel.Spec.ScaleTargetRef.Name = hpaParams.Item2; yamlModel.Spec.MaxReplicas = hpaModel.MaxReplicas; yamlModel.Spec.MinReplicas = hpaModel.MinReplicas; yamlModel.Spec.TargetCPUUtilizationPercentage = hpaModel.AvgCPU; var v1HorizontalPodAutoscaler = await k8sClient .CreateNamespacedHorizontalPodAutoscalerAsync (yamlModel, namespaceParams); hpaModel = new MTAHPAModel(v1HorizontalPodAutoscaler); return(new Tuple <MTAHPAModel, MTAErrorModel>(hpaModel, null)); } catch (HttpOperationException ex) { var errorModel = new MTAErrorModel(ex); return(new Tuple <MTAHPAModel, MTAErrorModel>(null, errorModel)); } catch (Exception) { throw; } }
public MTAHPAModel(V1HorizontalPodAutoscaler v1HorizontalPodAutoscaler) { HPAName = v1HorizontalPodAutoscaler.Metadata.Name; HPANamespace = v1HorizontalPodAutoscaler.Metadata.NamespaceProperty; DeploymentName = v1HorizontalPodAutoscaler.Spec.ScaleTargetRef.Name; MaxReplicas = v1HorizontalPodAutoscaler.Spec.MaxReplicas; MinReplicas = (int)v1HorizontalPodAutoscaler.Spec.MinReplicas; AvgCPU = (int)v1HorizontalPodAutoscaler.Spec.TargetCPUUtilizationPercentage; }
private async Task <string> DescribeObject(Kubernetes client, V1Namespace ns, V1HorizontalPodAutoscaler o, StringBuilder buffer) { var fetched = await client.ReadNamespacedHorizontalPodAutoscalerAsync(o.Metadata.Name, ns.Metadata.Name).ConfigureAwait(false); buffer.AppendLine($"API Veresion: {fetched.ApiVersion}"); buffer.AppendLine($"Kind: {fetched.Kind}"); buffer.AppendLine(DescribeMetadata(fetched.Metadata)); return($"Horizontal Pod Autoscaler - {fetched.Metadata.Name}"); }