Most customers (public sector and not only) are not ready to work in an Agile environment, because
a) They have established fixed-price contract practices (including tenders)
b) Customer representatives often do not have the authority or desire to give feedback on each iteration, because this is additional responsibility and time.
However, even with such customers, it is possible to work in Agile environment.
In this case, the contract must be broken down into stages (even if large). The product owner’s task is to build the backlog and obtain resources in such a way that the necessary results (backlog elements) get to the control points set by the contract. Each stage consists of several iterations. In case the customer doesn’t want to see intermediate results, they are only shown internally. For each subsequent iteration, internal feedback from the demonstration is used.
The customer receives only the result of the final iteration of each stage.
The product owner can send the intermediate result of some iterations to the customer and try to get feedback. If the customer gives feedback, this way it is possible to accustom the customer to the Agile style of interaction by increasing the frequency, little by little. If this does not work, then for the customer the project looks like a cascade project, and inside it is done in Agile.
If the budget of each stage and the project as a whole is fixed in advance, the product owner will need the knowledge and skills of project cost management to budget iterations and stages.