Changes between Initial Version and Version 1 of Meetings/Workshops/20120320


Ignore:
Timestamp:
Mar 20, 2012, 7:07:06 PM (14 years ago)
Author:
/O=GRID-FR/C=FR/O=CNRS/OU=LAL/CN=Michel Jouvin
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Meetings/Workshops/20120320

    v1 v1  
     1= Quattor Workshop - Budapest - 20/3/2012 =
     2[[TracNav]]
     3
     4[[TOC(inline)]]
     5
     6[https://indico.cern.ch/conferenceTimeTable.py?confId=176310#20120320 Agenda]
     7
     8Community web, development toos and processes
     9 * Web landng page : move to Git
     10 * IRC
     11 * Twitter
     12 * Quattor releases
     13
     14Components
     15 * Configuration status report
     16 * Delayed execution
     17 * Support for removal of escaping in Pan
     18   * If a flag is present on the profile, CCM could just do nothing when unescape is called
     19
     20
     21== Community News ==
     22
     23CERN looking at Puppet for their new infrastructure and possibly as a Quattor replacement on the future
     24 * Report at a future Quattor Workshop
     25
     26DESY still using Quattor, may try to reestablish contact
     27
     28SLAC looking at Quattor and requiring some help.
     29 * CNAF has contact
     30
     31
     32== PAN Compiler ==
     33
     34v8 frozen: 8.4.7 is the last version released
     35 * No more support
     36 * If still using, upgrade to v9!
     37
     38v9 first versions
     39 * Last released version is 9.1
     40   * RC1, RC2, RC3 released
     41   * 9.1 is RC3 + Windows-related fixes
     42 * v8 deprecated features removed
     43 * "panc nutshell book"
     44 * "root" element for build info
     45   * May be an interesting feature to implement "profile cloning"
     46 * various bug fixes
     47 
     48v9.2 recently released
     49 * plan for removal of escaping: deprecate XMLDB, change tests to use pan xml
     50   * Enabled by a switch, the only option in v10
     51   * Profile may contain a flag saying if escaping has been used or not
     52   * Impact on SCDB
     53   * Componenent need update to be prepared to handle unescaped keys (values)
     54 * Expanded maven support
     55   * Currently archetype, simple build
     56   * Future: Maven has a Pan interface, in addition to ant
     57 * Support for JSON output format
     58   * Will enable transparent gziping almost for free in term of performance during compilation or even a positive one when IO is the limiting factor (eg. laptops)
     59   * Need to document how to enable gzip in downstream components
     60 * Skeleton for updated panc command in clojure
     61   * More consistency in the options, simplified/cleaner code for processing options in the compiler
     62   
     63v9 series roeadmap
     64 * Streamlined, simplified code with limited changes to functionality
     65 * Gradual migration to clojure: CLI, template compilation, functions, output formats...
     66   * Can be done incrementally
     67 * Limited inclusion of other libraries (e.g. Clojure, JSON)
     68   * Until now panc has been self contained
     69   * All included components have an Apache 2 (compatible) license
     70   
     71New requests from discussion
     72 * Range starting with a negative number (Luis): may lead to some grammar ambiguity not trivial to fix
     73 * panc as a service (Gabor): idea is to have a continuously running service to avoid the starting time cost when compiling only one profile
     74 * Functions to convert IP addresses (v4 and v6) to long integer (and vice versa) to help with netmasking and other similar things (Gabor)
     75 * Readd debugging information during dependency calculation to help identify the reason a dependency is not considered up to date (Michel)
     76   * Disappeared during v9 code refactoring
     77 * Add an info() function in addition to the warning() one to avoid abuse of warning() (Gabor)
     78 * function or pragma to activate debugging in a given template as an alternative to command line switches (Gabor)
     79   * Easier to use for people who are not Pan experts
     80   * May be great to say debug this template and all included templates...
     81   * Not easy to implement as compilation occurs before execution and debug code is removed in the debug flag is not set for the template: possible performance impact if checked during execution
     82 * In `include`, support a list of template rather than just one (Ronald)
     83 * Rename nlist to hash
     84   * Keep both as a function and deprecate nlist at some point
     85   * Add a section to the manual explaining the Pan vocabulary and how it matches the vocabulary in other languages
     86 
     87Discussion but no agreement on how to allow structure templates with rights to modify other part of the configuration than the one they are assign to or to pass parameters to normal templates...
     88 * Several goals: make things cleaner than using global variables (variable scope), make easier to non expert to use pan, entitlement (restrict a user to use one specific template to achieve a specific configuration action)...
     89 
     90
     91=== Annotation Support ===
     92
     932 possible approaches for building the output files produced by annotation processing
     94 * Hierarchy based on input templates hierarchy: related to layout of input files
     95   * Makes input options more complex as some specific options are required just for annotation
     96 * Namespace : conflict between similar namespace in different template sets
     97   * Requires a wrapper to handle possible conflicts.
     98 
     99Decision : move annotation processing outside of panc compiler to a separate tool
     100 * Will reuse the compilation module of panc
     101 * Makes having distinct options easier: keep the current behaviour
     102 * Will put less constraint on further extensions of the tool
     103 
     104 
     105== CCM ==
     106
     107Problems
     108 * Scalability because of the backend storage format: mainly MS and Gent
     109 * Difficult to support new backend format like JSON
     110 * Supports only http URL: makes testing difficult
     111 * Remove of unescape() function
     112 
     113MS contributions in the last years
     114 * CDB_File format x3 faster
     115   * Require an additional perl module: perl-CDB-File
     116 * Kerberos support for encryption
     117 
     118Recent work
     119 * JSON support: quite advanced, able to run components from the JSON file
     120   * Still need to test/Validate the results
     121 * Support of new protocols for downloading profiles: file://, ftp://, ssh://
     122   * But the underlying modules may not support all of them
     123 
     124Status
     125 * Rewritten modules have a large number of unit tests
     126 * Introduces new dependencies
     127
     128JSON support issues
     129 * Some data types are lost: impossible to distinguish long and double
     130   * And Perl doesn't distinguish them internally from string...: means that you cannot know if the information was a string or a number
     131   * Pb doesn't exist with language distinguishing thems
     132 * No way to ask JSON about the type of a data
     133 * In fact getTree() already loose this information
     134   
     135unescape() removal
     136 * Will check the flag saying that the profile has been generated without escaping
     137 * IF the flag is set, will do nothing: just return the argument unmodified
     138   * No modification required to components, except if they use their private version of unescape()
     139   
     140Requests:
     141 * Have distinct exit code in ccm-fetch for failures related to network errors (Gabor)
     142   * May allow to switch between different profile sources
     143   
     144
     145== AII ==
     146
     147Known limitations
     148 * SL6 issues
     149 * LVM and reinstallation
     150 * Large installation disk support
     151 * Scalability: lack of large installation
     152
     153 
     154MS additions/improvemnents
     155 * Profile caching: Profiles are cached for future reuse for better performances, using CDB_FIle format for improved performances
     156 * Fine-grained locking: per-profile instead of globally
     157   * Allow to run aii-shellfe in // for several nodes
     158   * Allow monitoring of stalled installation by looking at lock timestamp
     159 * Partition alignment based on some provided information
     160   * Not really working with SL4
     161 * Parallel installation support: only partially merged as it requires PRocess::Parallel which is MS-specific
     162   * Some alternative may be found
     163 * New options: `-firmware` and `-livecd` to boot alternate images in a way similar to rescue
     164   * Target of these options defined in node profile
     165   
     166*Full RHEL6/SL6 support
     167 * Schema made more flexible to add/remove mandatory or deprecated options
     168 * GPT used for partition tables, using `parted `
     169  * Anaconda doesn't die with large disks, much faster
     170 * Built with Maven tools
     171 
     172New issues
     173 * Code quality is becoming a problem: many contributors, few tests, spaghetti code
     174   * May require a significant rewrite with unit tests
     175 * Kickstart file more and more difficult to read....
     176   * Debugging of Kickstart %pre and %post scripts can be very difficult...
     177   * May redirect everything to a file in /tmp and ensure all commands are logged
     178   
     179Pending issues/requests
     180 * Implement deferred reboot during installation based on a profile property: needed by MS
     181 * DHCP plugin by MS: would be great to have it release to the community
     182   * Replacement for aii-dhcp able to do more things looking at the whole profile information (like adding info required by Windows machine)
     183 * MS saw problems with machines where boot disk is renamed after some events (change) on the machine or OS upgrade
     184   * Would like to think at a mechanism to give an abstract name to disks and do late binding but difficult to implement into Kickstart
     185   
     186MS Stanley still considering reviving the Solaris port, including installation port.
     187
     188 
     189== Network Configuration ==
     190
     191=== ncm-network ===
     192
     193Among the problems
     194 * Network restart during reconfiguration: potentially a problem on diskless systems
     195 * Code very difficult to maintain
     196 
     197Rewrite requirements
     198 * Separate each part of the configuration: interface, routing...
     199 * Reconfiguration without network restart
     200 * Support all current features
     201 * Add all the features that RH scripts support
     202 * Easy path from old to new component if possible
     203 * Use `ip` command rather than `ifconfig`and  `route`
     204 
     205Routing configuration: rely on `ip route` rather than ADRESS/NETMASK/GATEWAY
     206 * Convert root definition to a nlist: key is the subnet usual notation xx.xx.xx.xx/nn (nn being the number of bits in the netmaks)
     207 * Policy routing contributed by Gabor
     208 * Multipath routing: done by `ip route nexthop`
     209
     210Status
     211 * Main missing part is the routing... Loic expects to have some time to work on it in the coming months...
     212 
     213IPv6 support required: no real reason to manage it in a separate component, need to add it
     214
     215Network schema
     216 * May require some refactoring: some information are improperly placed under `/system/network` and we need to support more information interface specific
     217   * An idea is to move this kind of information into the hardware description part and have the network configuration module looking there for this part of the information, based on the interface name
     218   
     219Other issues
     220 * loopback interface is not configured by network configuration module and is ignored. This doesn't allow to define aliases on it (Gabor)
     221 
     222 
     223