func()

in pkg/provider/k8s/k8s.go [1303:1330]


func (c *K8s) deploymentReady(resource runtime.Object) (bool, error) {
	req := resource.(*appsV1.Deployment)
	kind := resource.GetObjectKind().GroupVersionKind().Kind
	if len(req.Namespace) == 0 {
		req.Namespace = "default"
	}

	switch v := resource.GetObjectKind().GroupVersionKind().Version; v {
	case "v1":
		client := c.clt.AppsV1().Deployments(req.Namespace)

		res, err := client.Get(c.ctx, req.Name, apiMetaV1.GetOptions{})
		if err != nil {
			return false, errors.Wrapf(err, "Checking Deployment resource:'%v' status failed err:%v", req.Name, err)
		}

		replicas := int32(1)
		if req.Spec.Replicas != nil {
			replicas = *req.Spec.Replicas
		}
		if res.Status.AvailableReplicas == replicas {
			return true, nil
		}
		return false, nil
	default:
		return false, fmt.Errorf("unknown object version: %v kind:'%v', name:'%v'", v, kind, req.Name)
	}
}