You are browsing a read-only backup copy of Wikitech. The live site can be found at wikitech.wikimedia.org

Puppet coding/Todo: Difference between revisions

From Wikitech-static
Jump to navigation Jump to search
imported>Quiddity
({{orphan}} {{outdated|year=2014}})
imported>BCornwall
(BCornwall moved page Puppet coding/Todo to Obsolete:Puppet coding/Todo: Last updated nearly a decade ago)
 
Line 1: Line 1:
{{orphan}}
#REDIRECT [[Obsolete:Puppet coding/Todo]]
{{outdated|year=2014}}
= Ongoing Puppet work =
 
This page will keep track of current and future refactors in our puppet codebase.
 
== CI and Testing ==
 
The page tracking progress on our CI infrastructure is [[Puppet Testing|here]].
 
== Manifest file: generic-definitions.pp ==
 
I've exhaustively listed all the classes and defines present in this manifest to make sure we don't miss anything.  I don't mean to imply that there will be anything like a 1:1 relationship between present and future classes; only that these are all the bits that must be moved, purged, or replaced. [[User:Andrew Bogott|andrew]] ([[User talk:Andrew Bogott|talk]]) 22:31, 1 July 2013 (UTC)
 
=== apache (done) ===
* define apache_site($name, $prefix="", $ensure="link")
* define apache_module($name)
* define apache_confd($install="false", $enable="true", $ensure="present")
 
Remove in favor of the new apache module.
 
Team:  Ori Livneh, Alexandros Kosiaris, Giuseppe Lavagetto
 
=== lighttpd ===
* define lighttpd_config($install="false")
 
Create a new simple lighttpd module or, better yet, replace all current uses with <s>Apache</s> NGINX.
 
=== nginx (Done) ===
* define nginx_site($install=false, $template="", $enable=true)
 
Move to existing nginx module
 
Team: Ryan Lane, Ariel
 
=== network-interface (Done) ===
* define interface_ip($interface, $address, $prefixlen="32")
* define interface_manual($interface, $family="inet")
* define interface_up_command($interface, $command)
* define interface_setting($interface, $setting, $value)
* define interface_tun6to4($remove=undef)
* define interface_tagged($base_interface, $vlan_id, $address=undef, $netmask=undef, $family="inet", $method="static", $up=undef, $down=undef, $remove=undef)
* define interface_aggregate_member($master)
* define interface_aggregate($orig_interface=undef, $members=[], $lacp_rate="fast", $hash_policy="layer2+3")
* define interface_add_ip6_mapped($interface=undef, $ipv4_address=undef)
* define interface_offload($interface="eth0", $setting, $value)
 
This is a subject that I know nothing about, but these things seem related!
 
=== wmf-defines ===
* define system_role($description, $ensure=present)
* define systemuser($name, $home=undef, $managehome=true, $shell="/bin/false", $groups=undef, $default_group=$name, $ensure=present)
* class generic::wikidev-umask
(Possible 'users' module for those last two?)
* define upstart_job($install="false", $start="false")
* define generic::debconf::set($value)
* class generic::sysfs::enable-rps
* class generic::locales::international
 
There are lots of definitions and classes that are too small or simple to warrant their own module.  I propose that they be dumped into a module called 'wmf-defines.'  I don't care about the name, so bikeshedding is welcome!
 
:How about ''generic''? :) As that's what's used now. Only drawback to that name that I can see is that it's not very clear that it's not generic beyond WMF. -- [[User:Mark Bergsma|mark]] ([[User talk:Mark Bergsma|talk]])
 
=== wmf-packages ===
* class generic::packages::ant18
* class base::mwclient
 
Ideally almost nothing will land here as most packages will fit into other modules.  We're going to need this as a grab-bag though.
 
Obviously these are not actually WMF packages, so what should this module be called?
 
=== git-client (done) ===
* define git::clone
* define git::init($directory)
 
Moved into new, tiny 'git' module
 
=== gluster ===
class generic::gluster-client
class generic::gluster-server
 
Create or import a new module
 
Copy-paste solution here:  https://gerrit.wikimedia.org/r/#/c/91884/
 
Team: Ryan Lane
 
=== apparmor (done) ===
* class generic::apparmor::service
 
This is only used by mysql.pp which is, hopefully, deprecated in favor of the mysql module.  However,
the mysql module makes no mention of app-armor.  Not sure what's going on here.
 
== Manifest file: base.pp ==
 
moved into base module!
 
== Manifests status ==
# puppetmaster.pp: Alex is working on a new Puppet architecture, work includes moving it into a module and rearranging it
# misc/install-server.pp: Alex has a refactor in progress
# dns.pp: Faidon is working on new AuthDNS infrastructure in a module, will move recursor DNS into a module as well
# ganglia.pp: Mark already created modules/ganglia_new, transition needs to finish.  Alex working on this.
# nagios.pp: Alex working on this.
# nrpe.pp, nagios.pp, misc/icinga.pp: Alex to modularize those
# backups.pp: Alex is working on a new backup infrastructure, perhaps this will become obsolete as part of that work
# geoip.pp: https://gerrit.wikimedia.org/r/#/c/53714/5 needs restoring and merging
# iptables.pp, misc/firewall.pp: these need to be completely ripped out and replaced with (to be merged) https://gerrit.wikimedia.org/r/#/c/61744/
# search.pp: this can likely wait until the deployment of the new search infrastructure
# mysql.pp: Much of this is about to be moved to mysql_wmf https://gerrit.wikimedia.org/r/#/c/88666/ -- the fate of the remaining classes remains in flux
# imagescaler.pp:matanya is converting into a module.
# misc/irc.pp: mutante started converting into a module (https://gerrit.wikimedia.org/r/#/c/94407/)
# misc/wikistats.pp mutante started converting into a module (https://gerrit.wikimedia.org/r/#/c/94409/)
# misc/bugzilla.pp mutante started converting into a module (https://gerrit.wikimedia.org/r/#/c/94075/)
# misc/download.pp matanya converted into a module (https://gerrit.wikimedia.org/r/#/c/95460/) (but merge in role changes from https://gerrit.wikimedia.org/r/#/c/94408/)
# misc/planet.pp mutante is working on it: (https://gerrit.wikimedia.org/r/#/c/108674/)
 
== Existing modules that need work (done) ==
# Mongodb depends on 'apt' but is expecting puppet labs apt, totally different from our apt.  Ori is going to tear out/fix these dependencies.
 
[[Category:Puppet]]

Latest revision as of 16:55, 29 June 2022