func daemonSetIsReady()

in gke-deploy/core/resource/ready.go [43:85]


func daemonSetIsReady(ctx context.Context, obj *Object) (bool, error) {
	generation, ok, err := unstructured.NestedInt64(obj.Object, "metadata", "generation")
	if err != nil {
		return false, fmt.Errorf("failed to get metadata.generation field: %v", err)
	}
	if !ok {
		return false, nil
	}

	observedGeneration, ok, err := unstructured.NestedInt64(obj.Object, "status", "observedGeneration")
	if err != nil {
		return false, fmt.Errorf("failed to get status.observedGeneration field: %v", err)
	}
	if !ok || observedGeneration != generation {
		return false, nil
	}

	desiredNumberScheduled, ok, err := unstructured.NestedInt64(obj.Object, "status", "desiredNumberScheduled")
	if err != nil {
		return false, fmt.Errorf("failed to get status.desiredNumberScheduled field: %v", err)
	}
	if !ok {
		return false, nil
	}

	numberAvailable, ok, err := unstructured.NestedInt64(obj.Object, "status", "numberAvailable")
	if err != nil {
		return false, fmt.Errorf("failed to get status.numberAvailable field: %v", err)
	}
	if !ok || numberAvailable != desiredNumberScheduled {
		return false, nil
	}

	numberReady, ok, err := unstructured.NestedInt64(obj.Object, "status", "numberReady")
	if err != nil {
		return false, fmt.Errorf("failed to get status.numberReady field: %v", err)
	}
	if !ok || numberReady != desiredNumberScheduled {
		return false, nil
	}

	return true, nil
}