Как масштабировать несколько развертываний и ожидать параллельного развертывания - PullRequest
0 голосов
/ 12 апреля 2019

Я хочу масштабировать развертывание с клиентом kubernetes go и ждать успешного завершения развертывания.Я уже создал рабочее решение, но мне было интересно, пропущу ли я какие-либо крайние случаи или смогу его улучшить.

Мое первое очень простое решение:

for _, deployment := range deploymentList.Items {
  deployment.Spec.Replicas = int32Ptr(1)
  _, err := deploymentsClient.Update(&deployment)
  if err != nil {
    panic(err)
  }
}

for {
  deploymentList, err = deploymentsClient.List(opts)
  if err != nil {
    panic(fmt.Errorf("List deployments failed: %v", err))
  }
  # checks if DeploymentAvailable and Status is "True"
  if available(deploymentList) {
    fmt.Println("Rolled out")
    break
  }
  fmt.Println("Not rolled out")
  time.Sleep(5 * time.Second)
}

Это работает, но мне не нравится идеяопроса.

Второе решение основано на состоянии развертывания kubectl .Я настроил код под свои нужды, и он работает.Но я не уверен, как сделать это для нескольких параллельных развертываний (что-то сделать с каналами?).

...