No, it's not about immutable fields.
It's all about the way to control the creation process of complex objects with a step by step approach + you isolate the complex construction code from the business logic of the product.
But then, nothing wrong to not(!) us a pattern. If you think your code may not benefit from using a pattern then don't use it.
Jason Cheng
Why not just have methods to set auto_upgrade and node_pool in KubernetesCluster itself? Is it because we want to keep those fields immutable?