Washington (CNN) President Donald Trump announced on Tuesday that US Ambassador to the United Nations Nikki Haley has resigned and will leave her post by the end of the year.

Sitting side-by-side in the Oval Office, Trump praised Haley as a "fantastic person" who has "done an incredible job" and said he would gladly welcome her back into his administration down the line.

"She's done a fantastic job and we've done a fantastic job together. We've solved a lot of problems and we're in the process of solving a lot of problems," Trump said.

"She told me probably six months ago, 'You know maybe at end of the year -- at the end of the two year period -- but by the end of the year I want to take a little time off, I want to take a break,'" he added.

However, a source familiar with the situation told CNN that Haley notified Trump about her decision last week and did not tell Secretary of State Mike Pompeo or White House national security adviser John Bolton.

Both Bolton and Pompeo were surprised by the announcement, a source familiar told CNN.

Officials inside the White House, who had little indication Haley was resigning on Tuesday, are questioning her timing.

While Trump said she told him six months ago she wanted time off, there are questions among senior administration aides about why Haley chose this moment -- four weeks before midterms, and right after a bruising political battle involving gender -- to take her leave.

One official says there was little coordination on the announcement and sources tell CNN that almost all senior administration officials found themselves caught off guard by the announcement.

Possible replacements?

Still, Trump lavished praise on Haley during the Oval Office event, saying she has "been very special to me" and calling her "somebody that gets it."

The President also said Haley could have her "pick" of administration posts if she ever decides she wants to rejoin his administration.

"We're all happy for you in one way, but we hate to lose -- hopefully you'll be coming back at some point but in a different capacity. You can have your pick," Trump said as Haley smiled broadly.

Yet, in the wake of her resignation, two sources familiar with Haley's relationship with Trump told CNN that she had lost clout with the President in recent months.

When Rex Tillerson was still secretary of state, Trump sought out Haley's advice often and she was regularly seen in the Oval Office. But with Pompeo in that role, and with Bolton serving as national security adviser, Haley has seen her time with the President diminish, sources said.

The President said he plans to name a successor for the US's top diplomatic post at the United Nations in two to three weeks.

Trump has a working list of contenders to succeed Haley, but has not shared it widely with even the most senior White House officials, one senior White House official told CNN.

He plans to work through it and seek advice from advisers as he works to make a decision in the coming weeks, the official said.

Among the names floated as possible replacements for Haley are: Trump's former deputy national security adviser Dina Powell, US Ambassador to Germany Richard Grenell and senior adviser and daughter of the President Ivanka Trump.

"We actually have many names," Trump told reporters on the South Lawn hours after the announcement.

Trump later said on Air Force One during his trip to Iowa that he has five people on his shortlist to replace Haley, but Grenell is not among them.

"He is doing so well in a position that is so important," Trump said. "Ric is doing so well that I wouldn't want to move him. I'd personally rather keep Ric where he is."

Powell was with Haley in South Carolina over the weekend, according to a photo posted to her Twitter feed. A source who talked to the President in the last week about replacing Haley told CNN that the Trump mentioned he likes Dina a lot.

While speaking to reporters on the South Lawn of the White House Tuesday, Trump said he is considering "numerous people" including Powell, whom he said "is under consideration."

Grenell was confirmed as ambassador to Germany in April but he also served as the US spokesman and political appointee at the UN from 2001-2008.

A source familiar with discussions told CNN that Ivanka Trump laughed Tuesday morning when she heard about the speculation that she would replace Haley.

However, Trump later told reporters that his daughter would be "incredible" as US Ambassador to the United Nations, but said he would be "accused of nepotism" if he appointed her to succeed Haley.

"I've heard a lot of names. I've heard Ivanka. How good would Ivanka be?" Trump said. "I think Ivanka would be incredible but it doesn't mean I'd pick her. Because I'd be accused of nepotism even though I'm not sure there's anybody more competent in the world."

He then said his daughter would be "dynamite" as UN ambassador.

Soon after the President's remarks, Ivanka Trump took to Twitter to rule herself out of the running:

"It is an honor to serve in the White House alongside so many great colleagues and I know that the President will nominate a formidable replacement for Ambassador Haley. That replacement will not be me."

'Honor of a lifetime'

Haley called serving as UN ambassador "an honor of a lifetime," but added that it was time for her to depart the administration.

"There's no personal reason," she said, explaining her rationale for departing. "It's very important for government officials to understand when it's time to step aside."

"I want to make sure this administration, this president, has the strongest person to fight," she said.

But a source familiar with the issue told CNN that financial considerations did come into play for Haley, something she alluded to in her resignation letter dated October 3, a copy of which was obtained by CNN.

With one child in college and another heading there soon, Haley felt like she needs to make some money, the source said.

Sitting alongside Trump in the Oval Office Tuesday, Haley went on to praise the current administration's foreign policy, saying "the US is respected."

"Countries may not like what we do, but they respect what we do," she said.

She also complimented members of Trump's team, including senior advisers Jared Kushner and Ivanka Trump.

"Jared is such a hidden genius that no one understands," she said. "We're a better country because they're in the administration."

In response to the news, Ivanka Trump tweeted out kind words about Haley, saying: "Ambassador Haley has served America with dignity + distinction. She is a bold reformer and has been an unwavering champion of truth, principled realism and integrity within the United Nations."

Haley 'not running for 2020'

Haley sought to tamp down speculation she may challenge President Trump in two years.

"No, I am not running for 2020," Haley said. She raised the topic unprompted, saying she knew it would likely arise.

"I can promise you what I'll be doing is campaigning for this one," Haley said.

She said she was stepping aside after almost a decade on the national stage, including her tenure as South Carolina governor.

"It's been 8 years of intense time," she said. "I'm a believer in term limits.

In her resignation letter Haley noted that she has served in public office for 14 straight years and expressed a desire to return to the private sector.

Axios was first to report the news that Haley resigned.

A senior State Department official said Haley told her staff this morning.

The announcement comes one day after Citizens for Responsibility and Ethics in Washington (CREW) requested that Haley be investigated by the State Department Inspector General for potential ethics violations for accepting free flights from a South Carolina businessmen.

The watchdog group, citing Haley's 2017 financial disclosures, said Haley and her husband accepted seven flights on luxury private aircraft from three South Carolina businessmen, but that Haley claimed the flights qualified for an exception based on a personal relationship with the giver.

CREW charges that the financial disclosures do not provide enough information to determine whether the flights were eligible for such an exception.

"In this case, Ambassador Haley's relationships with these individuals appear to have significant political and professional components," CREW's request reads.

There is no evidence to suggest that CREW's request played any role in Haley's resignation.

How she got here

The former South Carolina governor was tapped as ambassador to the UN following Trump's election win despite supporting Florida Sen. Marco Rubio in her state's all-important 2016 presidential primary and later backing Texas Sen. Ted Cruz.

When asked if she would take the job by then-chief of staff Reince Priebus, Haley was intrigued but had some conditions.

First, she told Trump she wanted to be a member of the Cabinet and the National Security Council, privileges enjoyed by her predecessors in the Obama administration. Perhaps most importantly, she wanted the latitude to be herself, to say what she wanted.

"I said 'I am a policy girl, I want to be part of the decision-making process,'" she told CNN in a 2017 interview, recalling the conversation with Trump. "He said, 'done.' And I said, 'I don't want to be a wallflower or a talking head. I want to be able to speak my mind.' He said, 'That is why I asked you to do this.' In all honesty, I didn't think they were going to take me up on everything I asked for. And they gave me all that. So how do you turn that down?"

During her more than a year-and-a-half on the job, she has repeatedly spoken her mind, whether it's going further on human rights than many of her administration colleagues or denouncing racism at home.

In her resignation letter, Haley thanked Trump for honoring those conditions.