Preheat your oven to 350°F and spray a 9x5-inch loaf pan with cooking spray. If you want, you can also line the pan with a strip of parchment paper, leaving some hanging over the sides. This makes it easier to lift the bread out after baking.
In a large bowl, whisk together the flour, baking powder, baking soda, and salt. Set aside.
In a medium bowl, whisk together the brown sugar and oil until smooth. Then whisk in the sour cream, eggs, orange juice, orange zest, and vanilla until combined.
Pour the wet ingredients into the dry, and mix about halfway through. There should be visible streaks of flour and lumps.
Add in the whole cranberries and the walnuts, and finish mixing gently until the cranberries and nuts are evenly distributed and no streaks of flour remain.
Pour the batter into the greased 9x5” loaf pan. Bake the cranberry bread at 350ºF 60-70 minutes until risen in the center and a toothpick inserted comes out clean.
Remove the bread from the oven. Let it sit in the pan for 15 minutes and then turn the bread out onto a cooling rack until fully cooled. While the bread is cooling, make the glaze
Combine the powdered sugar, orange zest, and orange juice in a small bowl, whisk until smooth. The icing will be thick, but should still run off a spoon. If it's too thick, add more orange juice to thin it out.
Once the cranberry bread is cooled, drizzle the orange glaze over the top. Slice and serve!