In a large dutch oven or similar large soup pot, heat the oil over medium-high heat until shimmering then, add the diced onion and celery along with a generous pinch of salt. Sauté for 5-7 minutes, stirring occasionally until the onion is soft and aromatic, then add the cabbage, white beans and garlic, continue cooking and stirring for another 3-5 minutes.
Next, gently place the ham shank into the pot followed by the chicken stock, thyme and parmesan rind (if using). Bring the soup to a simmer then reduce the heat to low, cover and simmer gently for 30 minutes.
After 30 minutes, remove the lid then add the diced potato, stir to combine. Continue cooking, stirring occasionally until the potatoes are tender, about 20 minutes. Using tongs, transfer the ham shank to a cutting board, set aside until cool enough to handle. Pluck out and discard the thyme stems and parmesan rind. Note: If you like a brothy soup leave everything as-is. If you prefer a thicker, creamier soup; transfer 1-2 cups of broth, potatoes and vegetables to a blender and pulse until mostly smooth then pour the blended soup back into the pot and stir to combine.
Once the ham shank is cool enough to handle, use clean hands (gloves are handy here) or two forks to shred the meat into bite sized pieces; discard the skin, bones, and fat. Add the shredded ham back into the soup, stir to combine.
Just before serving taste the soup and adjust the seasonings as needed. Divide between bowls, top with lots of freshly cracked black pepper and grated parmesan cheese – serve right away.