1 PSARC Questions Version 1.22 2 Approved Oct. 2008 (PSARC/2008/625) 3 4 The 20 questions outline serves several purposes. One is to present to 5 the ARC in a uniform manner pertinent information about any case. Many 6 of the answers to these questions can be direct and specific references 7 to other case materials (although care must be taken to keep the 8 references current). A second purpose is to allow an ARC member to get 9 a concise overview of the case in an efficient manner. Another purpose 10 is that the 20 questions should provoke thought and questions for 11 project teams unfamiliar with the ARC process, by asking questions 12 about aspects of the project that need be considered. Lastly, the 20 13 questions serves as a vehicle between the case owner and the project 14 team as an indicator of preparedness. The 20 questions, as do other ARC 15 materials, remain as documentation of the case plan of record. 16 17 18 1. What is the proposal being presented for review? 19 20 * Give an overview of the project and its phase(s). 21 22 The Distribution Constructor(DC) is a tool for building 23 and customizing OpenSolaris installation images. 24 Users specify the processing needed to create an image 25 containing the desired content via a configuration file. 26 DC also provides checkpointing and logging features to 27 allow for rapid development and testing. 28 29 DC has been delivered by the Caiman project to OpenSolaris 30 since October 2008. 31 32 * Describe the exposure (OpenSolaris), scope and type of review desired 33 (overview, full case, etc.) 34 35 The Distribution Constructor is part of OpenSolaris. 36 The project was developed in the open since inception. 37 38 We are requesting an open full case review. 39 40 * Indicate the release binding requested by the project team. See: 41 http://www.opensolaris.org/os/community/arc/policies/release-taxonomy/ 42 43 Minor 44 45 * What are the project's deliverables? 46 47 This project will deliver a new package, SUNWdistro-const, which 48 will include the following: 49 * distro_const(1M) command 50 * sample finalizer scripts which are used for building 51 shipping OpenSolaris images 52 * Man pages 53 * User's Guide 54 55 Libraries added or modified by this project are delivered in 56 the SUNWinstall package. 57 58 * How does this project align with existing or proposed ARC cases? 59 60 The DC project is a subproject under the new Solaris installation 61 umbrella. 62 PSARC/2007/039 - Caiman: New Solaris Installation Experience 63 64 Some use cases of DC uses pkg(1) commands extensively. Some images 65 DC builds today uses pkg(1). 66 PSARC/2008/190 - Image Packaging System 67 68 2. Describe user interactions. 69 70 * Are new user interfaces being proposed, or existing interfaces being 71 changed? 72 73 new user interfaces: 74 - distro_const(1M) is a new command. 75 76 * Explain the similarities in proposed interfaces with existing OS user 77 interfaces (Solaris, Linux, Windows, etc.). 78 79 N/A 80 81 * Are there any install time changes? 82 83 No install time changes. 84 85 3. What are the exported (defined by your project) and imported (defined by 86 another project that your project then references) interfaces or protocols 87 and their respective stability levels? See: 88 http://www.opensolaris.org/os/community/arc/policies/interface-taxonomy/ 89 The Distribution Constructor will introduce the following interfaces: 90 91 Table 1 Interfaces Exported 92 ____________________________________________________________________________ 93 | Interface |Commitment |Comments | 94 |_______________________________________|____________|_______________________| 95 |/usr/share/man/man1m/distro_const.1m |committed | man page | 96 |/usr/share/man/man4/dc_parameters.4 |uncommitted | man page | 97 |manifest schema |uncommitted | | 98 |finalizer API |uncommitted | | 99 |ManifestServ |uncommitted | | 100 |ManifestRead |uncommitted | | 101 |SUNWdistro-const |committed | package | 102 |_______________________________________|____________|_______________________| 103 104 The Distribution Constructor will import the following interfaces: 105 106 Table 2 Interfaces Imported by Distribution Constructor 107 _____________________________________________________________________________ 108 |Interface | Classification | Comments | 109 |_______________________|_______________________|____________________________| 110 |zfs(1m) | committed | man page | 111 |xmllint(1) | committed | PSARC/2001/175 | 112 |libxml(3) | committed | PSARC/2001/175 | 113 |_______________________|_______________________|____________________________| 114 115 The sample scripts delivered by the Distribution Constructor 116 project will import the following interfaces: 117 118 Table 3 Interfaces Imported by Distribution Constructor sample scripts 119 _____________________________________________________________________________ 120 |Interface | Classification | Comments | 121 |_______________________|_______________________|____________________________| 122 |pkg(1m) | under development | PSARC/2008/190 | 123 |lofiadm(1m) | committed | PSARC/1999/463 | 124 |_______________________|_______________________|____________________________| 125 126 127 * Is there a versioning scheme in place? 128 129 Not yet. 130 131 * Has the team secured interface contracts where necessary? 132 133 N/A 134 135 * Use an ARC prescribed interface table format. 136 137 See above 138 139 4. Describe any dependencies on hardware (e.g. SPARC exclusive), and on other 140 projects within Solaris. 141 142 N/A 143 144 5. Projects need to be aware of the overall security of the system and how 145 their components affect it. Which parts of this project are critical to 146 the security of the system to avoid such unintended consequences such 147 as unauthorized system entry, unauthorized access to or modification of 148 data, elevation of privilege, denial of service, violation of labeled 149 security, ...? Does this project require elevated privilege? 150 151 A number of specific policies and practices address various aspects of 152 the security of the system. They are found in appendix 1. Which of 153 these are applicable to this project, and how are they addressed? 154 155 The Distribution Constructor must usually be run as root since 156 the operations the finalizer scripts perform are often on 157 files and other objects that require administrative privileges 158 to modify. At present the tool checks for, and requires, 159 root privileges to execute, but further development should 160 make this unnecessary. 161 162 6. Describe means of observing project functionality and performance, by 163 an end user or by a system administrator. 164 165 The Distribution Constructor logs all standard out and standard 166 error to log files. Users can track the progress of a build 167 by observing the log files. 168 169 7. How does the project deal with faults and interruptions? Initialization 170 and restarting? 171 172 The DC executes user specified finalizer scripts to do the work 173 of image construction. Users have the option to specify whether 174 to continue the build or not if one of the finalizer script fails. 175 176 Upon successful execution of each finalizer script, a checkpoint 177 is taken. Users can choose to re-start from any checkpoint. 178 They can also re-run the build from the beginning. 179 180 If a user interrupts manually when one of the finalizer script 181 is executing, the DC application will exit. Users can choose 182 to restart the build from the very beginning or restart from 183 one of the previous successful checkpoints. 184 185 8. How does the project interact with Solaris virtualization technologies 186 (xVM, LDOMs, zones, Branded zones, SunCluster, etc.)? 187 188 N/A 189 190 9. Does this project require administration (i.e., configuration or 191 management)? If so, 192 193 No. This project does not require administration. 194 195 * How is the project administered, and what sort of review process has 196 this user interface undergone? 197 * Is there a means of aggregating management and/or configuration with 198 other related projects? 199 * Does this project deliver its own administration along with the other 200 components, or is this project an administration interface for other 201 projects? 202 * Are there any external (to Solaris) management interfaces to 203 consider, or being consumed? 204 205 Projects that require or deliver administrative interfaces are often by 206 their nature security components of the system and should likely 207 address the security question (#5 above, with attention to RBAC and 208 Audit). (See also appendix 2). 209 210 10. Have you reviewed the Policies and Best Practices? Are there any 211 exceptions this project needs? See 212 213 http://www.opensolaris.org/os/community/arc/policies/ 214 http://www.opensolaris.org/os/community/arc/bestpractices/ 215 216 Reviewed the Policies and Best Practices links. This project 217 does not need any exceptions. 218