I had the same issue, creaking upper control arm ball joints, 2017 Model X 75D with about 62,000 miles. Sure enough, the ball joints felt like there was no grease or lubrication in them.
I figured it can't hurt to do the following:
I purchased a needle valve and some good quality grease for my grease gun. Very easy, I carefully pierced the needle into the rubber ball joint and injected grease all around until the rubber ball joint felt full and plump. Don't overfill though.
Then I purchased some self-fusing waterproof tape from Home Depot:
E-Z Fuse Tape is a versatile, easy-to-use product. Designed to adhere to itself, this product leaves NO residue when removed. The bond is permanent, waterproof, airtight, non-conductive, insulating, and
www.homedepot.com
Wrap the tape according to directions on package.
Note that it will take several miles after grease injection for the ball and new grease to work it's way around in the joint so you may hear some creaking for a short time.
I'm happy to report 5k miles later, creaking is still resolved.