PSARC/2016/607 Puppet 4.7.0, Hiera 3.2.0
19429313 address_object type should support vrrp addresses
19888183 publisher provider is applied on each puppet run
22125767 nsswitch provider missing ipnodes, protocols, printers
22126108 add process scheduler administration provider
22960016 Puppet needs a native way to set ZFS ACLs
23107546 race condition with smf provider and manifest-import
23119445 Upgrade Ruby Hiera to 3.2.0
23547788 Add ILB type to Puppet
23593229 rspec tests need to be written for solaris_providers boot_environment
23593308 rspec tests need to be written for solaris_providers ipmp_interface
23593316 rspec tests need to be written for solaris_providers protocol_properties
23593225 rspec tests need to be written for solaris_providers etherstub
23593319 rspec tests need to be written for solaris_providers vnic
23593310 puppet module rspec tests and validation for nsswitch
24674283 current puppet.stencil implementation restricts some valid puppet use cases
24680838 puppet agent failures should be visible to administrator via SMF interfaces
24681179 puppet's logadm.conf is pointing at wrong location for master, ignoring agent
24696742 puppet svccfg doesn't work for some value types
24696809 Puppet link aggregation modules cascading errors
24825868 Update to Puppet 4, Puppet 3 is EOL
24836004 '-' is valid in pkg mediator implementation
24836209 nis provider needs to support multiple securenets entries
24928890 keystone and horizon modules patches create invalid metadata.json
25022632 puppet ipmp_interface type should not validate interface existence
25022714 Puppet SMF service should not refresh on every apply operation
25225039 puppet svccfg should not declare a property absent if it does not match desired
25060925 puppet resource address_object generates invalid puppet code for dhcp interfaces
25065015 update puppet oracle-solaris_providers 2.0.0
25071521 puppet svccfg type should return a clear error if value is not provided
25071681 puppet dns resource generates invalid manifest
25071686 puppet resource ldap; Error: Could not run: No ability to determine if ldap...
25071690 puppet resource nis; Error: Could not run: No ability to determine if nis exists
25092384 puppet module files should be owned by root
25093408 puppet-solaris should be part of puppet again
25106150 Nis provider is not idempotent
25106155 DNS provider is not idempotent
25163776 puppet link_aggregation misunderstands 'address' -u output
25163791 puppet link_aggregation should use resource values instead of property_hash
25163815 puppet address_object errors and validations could be better
25163840 puppet Puppet::Property::List types conflict with internally generated arrays
25163864 puppet link_aggregation type specs need to be written
25177901 puppet beadm should not use both -e and -p
25178928 puppet link_aggregation should try to copy existing values on change of mode
25179040 puppet link_aggregation should delete with -t for temporary
25192742 puppet svccfg shouldn't try to update properties for a non-existent fmri
25196056 puppet interface and address _properties namevars are problematic
25191982 puppet type 'dns' is not able to set 'options' property in resolv.conf
25211935 puppet link_aggregation needs to permanently delete before modifying temporary
25217063 puppet protocol_properties is not idempotent
25218036 puppet resource svccfg emits a warning for every property
25218053 puppet svccfg prefetch should match individually specified parameters
25218208 puppet svccfg should enforce well-formedness in fmri parameters
25224661 puppet resource address_properties shouldn't output read-only properties
25224777 puppet address_properties should not reset unchanged properties
25306835 puppet boot_environment needs to understand the new snapshot format
25306877 puppet svccfg should check for pg and allow nested property groups
25306904 puppet dns,nis,ldap,protocol_properties prefetch fails after input auto munge
25348321 puppet boot_environment needs to validate all properties and parameters
25354751 puppet vnic provider needs to support / and - as valid vnic name characters
Userland Gate Mechanics
The userland consolidation operates a set of Mercurial repositories that work
together to manage the tools, source code, and build recipies. These
repositories are the integration repository, gate, and external mirror. This is
similiar to how the Solaris ON, SFW, and other gates operates, however there
are a few subtle differences. In ON and other consolidations, the integration
repository is that gate and contains the canonical source. Once a changeset
is committed, it becomes a part of the canonical source. In the case of ON,
the changeset is immediately pushed to the clone repository. SFW and other
consolidations push changes from their canonical gate to a clone repository
nightly. In the userland consolidation, developers will commit changes to the
integration gate. These changes will not be accepted until some basic
validation is performed. Once the validation completes successfully, the
changes are accepted and pushed into the canonical source gate.
Integration repository (ssh://[email protected]//gates/incoming)
The integration gate is the Mercurial repository that all tools, source
code, and build recipies are committed to. Unlike ON, SFW, and other
Solaris gates this source code repository does not contains the canonical
source for the product. This repository is a staging area for change
integration and acceptance.
hg push to integration gate
|
v
lock gate
|
v
validate changeset(s) -> failed --> rollback changeset(s)
| |
v |
accepted |
| |
v v
push to clone -------------------> unlock gate
|
v
update bug db
|
v
notify committer
So, the basic flow works something like this: A user pushes a changeset
to the integration gate. Mercurial locks the gate to block any other
attempts to operate on the gate while it is validating the changeset.
At this point, validation is started in the background, a message is
displayed, and control is returned to the user. Validation continues
in the background. If validation completes successfully, the changeset(s)
are pushed to the clone, the gate is unlocked, the bug database is updated,
and the user is notified of the changeset acceptance. If the validation
fails, the changeset(s) are rolled back, the gate is unlocked, and the
user is notified of the failure.
Changeset validation will include the following:
multi-delta update check
commit comment validation
bugdb validation
future operations
source archive download
incremental build on all architectures
unit test on all architectures
package publication for all architectures
Canonical source repository (ssh://[email protected]//gates/gate)
The clone gate is actually the mercurial repository that contains the
canonical tools, source code, and build recipies for the product. It
should always be in a stable, buildable state. When changes are pushed
to this gate, they are mirrored on the external mirror repository from
here.
clone update
|
v
push to external mirror
|
v
notify gatelings
External mirror repository (https://hg.java.net/hg/solaris-userland~gate)
The external mirror is the mercurial repository that contains an externally
accessible copy of the canonical tools, source code, and build recipies for
the product. It should always be in a stable, buildable state.
external mirror update
|
v
notify gatelings
# vi:set fdm=marker expandtab ts=4: