Skip to content

Merge 2.9 master#494

Merged
jujubot merged 46 commits intojuju:masterfrom
SimonRichardson:merge-2.9-master
May 26, 2021
Merged

Merge 2.9 master#494
jujubot merged 46 commits intojuju:masterfrom
SimonRichardson:merge-2.9-master

Conversation

@SimonRichardson
Copy link
Copy Markdown
Member

The following merges 2.9 into master.

eed19e4 (upstream/2.9, origin/2.9, 2.9) Merge pull request #492 from tlm/kube-proxy-support-2
ab33f33 Merge pull request #493 from SimonRichardson/remove-machine-workaround
5c2dfa9 Merge pull request #491 from tlm/2.9.1-facades
b24e750 Merge pull request #490 from tlm/kube-proxy-support-2
aaa651c Merge pull request #482 from SimonRichardson/find-parameters
bde724b Merge pull request #481 from SimonRichardson/merge-master-2.9
fa1b85f Merge pull request #464 from SimonRichardson/charm-hub-url
195191b Merge pull request #463 from SimonRichardson/charm-hub-origin
d6d157f Merge pull request #462 from SimonRichardson/charm-hub-find
6fab2ee Merge pull request #460 from SimonRichardson/charm-hub-info
5e61dd2 Merge pull request #459 from SimonRichardson/rename-upgrade-charm-refresh
73604c8 Merge pull request #456 from SimonRichardson/update-schema-2.9-rc3
6c0437a Merge pull request #457 from SimonRichardson/ensure-charm-store-prefix
eb849e4 Merge pull request #455 from SimonRichardson/2.9
1a77394 Merge pull request #449 from achilleasa/support-new-expose-params-for-applications
ad3c449 Merge pull request #448 from achilleasa/gen-2.9-beta-client

achilleasa and others added 30 commits October 6, 2020 12:17
This change allows us to easily mock the facade in tests.
…-for-applications

juju#449

This PR adds support for granular, per-endpoint expose parameters to the expose/unexpose methods of the Application model as well as an example for using the new feature. For more details on using this feature please refer to https://discourse.juju.is/t/granular-control-of-application-expose-parameters-in-the-upcoming-2-9-juju-release/3597
juju#455

This is a clean merge from master to 2.9 to ensure that 2.9 is kept in sync.
The following updates the 2.9 branch to the latest schema. The generated
python is the fallout from this.
The following PR ensures that all the URLs have the correct prefix, that
way when we come to implement the charm-hub deployment workflow we do
that without breaking the old tests.

Eventually the cs: (charm-store) will be removed, but whilst we're in
transition, we should still support it and the tests associated with
them.

The code is very mechanical and should show that a cs: prefix is
mandatory if the user wants to contact the charm-store.
…refix

juju#457

The following PR ensures that all the URLs have the correct prefix, that
way when we come to implement the charm-hub deployment workflow we do
that without breaking the old tests.

Eventually the cs: (charm-store) will be removed, but whilst we're in
transition, we should still support it and the tests associated with
them.

The code is very mechanical and should show that a cs: prefix is
mandatory if the user wants to contact the charm-store.
juju#456

The following updates the 2.9 branch to the latest schema. The generated
python is the fallout from this.
To remain consistent with juju nomenclature, the following redirects
upgrade_charm to refresh. Once juju 3 is released upgrade_charm can be
removed (along with other alias methods), to ensure a clean API.

This is a purely mechanical change.
Application facade has a new method for calling configuration values on
it. Use that instead of the old way. This is a breaking change if you're
using it from pylibjuju and we should probably be aware of that in the
future.

Luckily the fix is to just use the latest pylibjuju with this fix in it.
…-refresh

juju#459

To remain consistent with juju nomenclature, the following redirects
upgrade_charm to refresh. Once juju 3 is released upgrade_charm can be
removed (along with other alias methods), to ensure a clean API.

This is a purely mechanical change.
The following introduces queries to the charmhub store API. Now that all
requests go through a juju controller it makes it very trivial for other
clients like pylibjuju to gain the same powers as the go CLI.

The code is rather simple, it farms off a new type to encapsulate the
charmhub related calls (info and find which will follow) as the model
type is large and unwieldly, once there we just create a new facade and
perform the query.

Offically it would be nice to have to channel validation, but for now
we'll let the controller handle that.
The following sends an empty channel instead of guessing, so that the
controller can correctly determine the right channel for hinting.
juju#460

The following introduces queries to the charmhub store API. Now that all
requests go through a juju controller it makes it very trivial for other
clients like pylibjuju to gain the same powers as the go CLI.

The code is rather simple, it farms off a new type to encapsulate the
charmhub related calls (info and find which will follow) as the model
type is large and unwieldly, once there we just create a new facade and
perform the query.

Offically it would be nice to have to channel validation, but for now
we'll let the controller handle that.
The following adds the ability to query the charmhub repository. It uses
the controller to query the charmhub repository so is really easy for
clients to also use the same logic/code path as the go CLI.
juju#462

This requires juju#460 to land first.

The following adds the ability to query the charmhub repository. It uses
the controller to query the charmhub repository so is really easy for
clients to also use the same logic/code path as the go CLI.
Only looking over the code did I see that there already exists a charm
store and so we should make it easier for others reading this to see
that this exists along with charm hub. Extracting the contents into
another file shows this.

This is a mechanical change that helps with readability, nothing else.
The following starts to implement charm origin. These are required for
the deploy commands where we're talking about origin, channels and
platforms. If we make types of these then we can pass them around
knowing exactly the correct types at hand.

The code is pretty much a copy and pasted from juju itself with some
modifications to channels that don't take into account branches.
The following cleans up some non-idiomatic code with in python.
juju#463

Requires juju#460 and juju#462 to land first

The following starts to implement charm origin. These are required for
the deploy commands where we're talking about origin, channels and
platforms. If we make types of these then we can pass them around
knowing exactly the correct types at hand.

The code is pretty much a copy and pasted from juju itself with some
modifications to channels that don't take into account branches.
The following introduces a charm URL, this will help when trying to
ensure that what we get from the API is indeed a valid URL. The code is
pretty much a lift from the juju/charm package, minus the FQDN charm
URLs, which should never have been added to the charm package.

The code is rather procedural and doesn't validate the name or series,
but the controller can do that once we know the pattern is correct.

Essentially we want the charm URL for the schema and the name, so rather
than have methods that sort of do the job, we should replicate the exact
same parsing layout so we don't get it wrong.
jujubot and others added 16 commits January 12, 2021 00:23
juju#464

Requires juju#463 to land, then rebase this on top.

The following introduces a charm URL, this will help when trying to
ensure that what we get from the API is indeed a valid URL. The code is
pretty much a lift from the juju/charm package, minus the FQDN charm
URLs, which should never have been added to the charm package.

The code is rather procedural and doesn't validate the name or series,
but the controller can do that once we know the pattern is correct.

Essentially we want the charm URL for the schema and the name, so rather
than have methods that sort of do the job, we should replicate the exact
same parsing layout so we don't get it wrong.
juju#481

Merge 2.9 into master

This is brings in 2.9-rc3 schema as well, so that we're dealing with
the latest changes.

Conflicts:
 _client3.py - just re-ran the `make client` as the code is autogenerated.

5e23162 (upstream/master) Merge pull request juju#480 from SimonRichardson/release-2.8.6
3e23b74 (origin/master, origin/HEAD, master) Merge pull request juju#479 from SimonRichardson/schema-update-2.8.10
7f96863 Merge pull request juju#478 from SimonRichardson/scale-typo
fd1438c Merge pull request juju#475 from achilleasa/provide-accessor-for-machine-hostname-field
1015f4d Expand wait_for_idle to support waiting for status (juju#473)
7829fd0 Merge pull request juju#471 from SimonRichardson/release-2.8.5
fd36c8f Merge pull request juju#470 from juju/johnsca/bundle-charm-files-and-wait
3d91d6b Merge pull request juju#469 from juju/johnsca/accept-charm-files
4e4e108 Merge pull request juju#465 from juju/johnsca/update-websockets/py39
d696937 Merge pull request juju#467 from gnuoy/issue/466
The following adds the optional find parameters that are exposed in the
API. The find API already existed, this is just to augment what was
already there.
juju#482

The following adds the optional find parameters that are exposed in the
API. The find API already existed, this is just to augment what was
already there.

It's now possible to just request bundles.

```py
result = await model.charmhub.find("kuber", charm_type="bundle")
```
juju#490

Updating facades to Juju version 2.9.0
Specifically adds support for kubernetes api port forward proxies that
appear in Juju 2.9
The following change removes the workaround for the 2.2.3 release and
subsequent 2.3-beta1 release. As these are older releases that users
should have moved away from, it's time to remove the workarounds.

The code in question was highly contentious anyway, as it was never
awaited on the machine, so might not have been doing what we wanted it
to do in the long run.
…round

juju#493

The following change removes the workaround for the 2.2.3 release and
subsequent 2.3-beta1 release. As these are older releases that users
should have moved away from, it's time to remove the workarounds.

The code in question was highly contentious anyway, as it was never
awaited on the machine, so might not have been doing what we wanted it
to do in the long run.
juju#492

Adds support for Kubernetes client proxies introduced in Juju 2.9.

Relates to bug https://bugs.launchpad.net/juju/+bug/1926595
Copy link
Copy Markdown
Contributor

@pengale pengale left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. It's time to do this.

@SimonRichardson
Copy link
Copy Markdown
Member Author

$$merge$$

2 similar comments
@SimonRichardson
Copy link
Copy Markdown
Member Author

$$merge$$

@SimonRichardson
Copy link
Copy Markdown
Member Author

$$merge$$

@SimonRichardson
Copy link
Copy Markdown
Member Author

!!build!!

3 similar comments
@SimonRichardson
Copy link
Copy Markdown
Member Author

!!build!!

@SimonRichardson
Copy link
Copy Markdown
Member Author

!!build!!

@SimonRichardson
Copy link
Copy Markdown
Member Author

!!build!!

@SimonRichardson
Copy link
Copy Markdown
Member Author

$$merge$$

@jujubot jujubot merged commit c960198 into juju:master May 26, 2021
@SimonRichardson SimonRichardson deleted the merge-2.9-master branch May 26, 2021 11:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants