3
This is a purpose-oriented charm, to provide a caching proxy mirror of the
4
Ubuntu archive on cloud platforms.
6
This is a hybrid mirror. All data except /ubuntu/pool is synced from
7
upstream Ubuntu mirrors every 2 hours. /ubuntu/pool is forwarded internally
8
to squid-deb-proxy, which keeps a local cache of .deb files as they are
3
** EXPERIMENTAL QUALITY WARNING **
5
This charm provides a partial caching proxy mirror of the
6
[Ubuntu Software Repository](https://help.ubuntu.com/community/Repositories/Ubuntu
7
"Repository Documentation"). This is intended for deployment in cloud
8
environments to provide a cloud-local repository.
10
This is a hybrid mirror / cache. All data except /ubuntu/pool is synced from
11
upstream Ubuntu mirrors and checked to ensure that it is consistent.
12
Requests for package files in /ubuntu/pool are forwarded internally
13
to squid-deb-proxy, which keeps a local cache of .deb files as they
13
Deploy the charm with the command:
18
Deploy the charm with these [exmaple][id] commands:
15
21
juju set-constraints --service ubuntu-repository-cache mem=8G root-disk=80G
16
22
juju deploy ubuntu-repository-cache
18
You can then browse to http://ip-address to view the repository when complete or add a proxy in front of this service.
22
Scale out is currently unsupported.
24
# Provide ntp service with local NTP masters
26
juju deploy -n 2 ntpmaster
27
juju add-relationship ntp ntpmaster
28
juju add-relationship ntp ubuntu-repository-cache
30
The ubuntu-repository-cache charm's constraint for disk size is optional,
31
the intention is to allocate sufficient space for the metadata mirror
32
(approximately 4GB) plus as much space as can be afforded for squid to cache
35
Ideally this charm should be deployed with this disk space allocated as fast
36
storage (which may require ephemeral storage depending on the provider); use
37
of the manual provider may be necessary to achieve this.
39
When running, you can browse to http://ip-address to view the repository
40
when the initial mirror sync has completed. Alternatively, you may add a
41
proxy in front of this service.
45
Scale out is currently unsupported but not blocked. Scaling out past one unit
46
will result in units serving metadata from different points in time, when put
47
behind a load balancer the client will get an inconsistent view of the
48
repository which will break apt. The result will be `hash sum mismatch`
49
errors for the apt client.
51
See the TODO file for items marked `[Scale]`.
24
53
## Known Limitations and Issues
30
The configuration options will be listed on the charm store, however If you're making assumptions or opinionated decisions in the charm (like setting a default administrator password), you should detail that here so the user knows how to change it immediately, etc.
32
61
# Contact Information
34
Though this will be listed in the charm store itself don't assume a user will know that, so include that information here:
63
Though this will be listed in the charm store itself don't assume a user
64
will know that, so include that information here:
36
66
## Upstream Project Name