Greetings,

With the putback for the following issues in revision 1504:

   9969 client support for multiple origins desired
   11715 ImageConfig does not handle None for publisher correctly
   11793 image-create example partially disagrees with the usage

...the client now supports multiple origins for publisher repositories.

==================
What is an origin?
==================
An origin is simply a location of a package repository that contains 
package file, manifest, and catalog data; such as: 
http://pkg.opensolaris.org/dev.  The default mode for the pkg.depotd 
process is to run as an 'origin'.

A mirror, in contrast, only contains package file data and is currently 
provided by a pkg.depotd server running in --mirror mode.

===========================
What does this change mean?
===========================
This change means that you redundancy can now more easily be built into 
package server infrastructure.  For example, you could have 
http://pkg1.example.com/, http://pkg2.example.com/, and 
http://pkg3.example.com/.

A client, once configured, would have pkg publisher output similar to 
the following:

PUBLISHER                TYPE   STATUS URI
example.com  (preferred) origin online http://pkg1.example.com/
example.com  (preferred) origin online http://pkg2.example.com/
example.com  (preferred) origin online http://pkg3.example.com/

During package operations, the client will automatically attempt to 
select and use the best repository origin if any data needs to be 
retrieved for that publisher.

In addition, ipkg branded zone creation and attach has been updated to 
use this additional origin and mirror information when configuring zones.

==================
How do I use this?
==================
For consistency, and to support this new client functionality, the 
image-create and set-publisher subcommands for pkg(1) have changed as 
follows:

image-create
  New Options:
   [-g|--origin ...] [-m|--mirror ...]

set-publisher
  New Options:
   [-g origin_to_add | --add-origin=origin_to_add ...]
   [-G origin_to_remove | --remove-origin=origin_to_remove ...]

  Deprecated Options:
   [-O uri]

So, as an example, to create a new, full image, with publisher 
example.com, that also has an additional mirror, two additional origins 
and that is stored at /aux0/example_root:

$ pkg image-create -F -p example.com=http://pkg.example.com:10000 \
   -g http://alternate1.example.com:10000/ \
   -g http://alternate2.example.com:10000/ \
   -m http://mirror.example.com:10000/ \
   /aux0/example_root

Alternatively, to add a new publisher or update an existing publisher 
with the above information:

$ pkg set-publisher \
   -g http://pkg.example.com:10000 \
   -g http://alternate1.example.com:10000/ \
   -g http://alternate2.example.com:10000/ \
   -m http://mirror.example.com:10000/ \
   example.com

================================================
Are there are any client compatibility concerns?
================================================
No.  Clients upgrading from older versions of the pkg client software to 
this version of the client software will not experience any issues.  In 
addition, some care has been taken to ensure older clients that 
understand the current image format are compatible with this new 
configuration, although they will be limited to using the first origin 
for a repository.

===============================================
Do I need to update my scripts or client usage?
===============================================
While the '-O' option has been deprecated for the set-publisher command 
and is no longer documented, it will continue to work exactly as it has 
in the past so no change is strictly necessary.  The command-line option 
compatibility for -O is currently planned to be maintained through the 
next major OpenSolaris release (2010.x), but will be dropped after that.

However, if you are using any scripts or programs that parse the output 
of the 'pkg publisher' command, and only expect a single origin to be 
listed for each publisher, they will need to be updated to account for this.

Comments or concerns should be sent to pkg-discuss.

Cheers,
-- 
Shawn Walker

Reply via email to