Add IRC bot improvement spec
Change-Id: Ic22c7c74088ba607a29fbb0a7d7ae2dab07fec6e
This commit is contained in:
parent
b3df3dc134
commit
67d95bf15f
@ -43,6 +43,7 @@ permits.
|
|||||||
specs/translation_check_site
|
specs/translation_check_site
|
||||||
specs/wiki_modernization
|
specs/wiki_modernization
|
||||||
specs/project-hosting
|
specs/project-hosting
|
||||||
|
specs/irc
|
||||||
|
|
||||||
Help Wanted
|
Help Wanted
|
||||||
===========
|
===========
|
||||||
|
126
specs/irc.rst
Normal file
126
specs/irc.rst
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
::
|
||||||
|
|
||||||
|
Copyright 2018 Red Hat, Inc.
|
||||||
|
|
||||||
|
This work is licensed under a Creative Commons Attribution 3.0
|
||||||
|
Unported License.
|
||||||
|
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||||
|
|
||||||
|
=====================
|
||||||
|
IRC Bot Consolidation
|
||||||
|
=====================
|
||||||
|
|
||||||
|
TBD: https://storyboard.openstack.org/...
|
||||||
|
|
||||||
|
Reduce the number of IRC bots and ensure they can operate in all channels.
|
||||||
|
|
||||||
|
Problem Description
|
||||||
|
===================
|
||||||
|
|
||||||
|
We have a couple of IRC-related problems converging:
|
||||||
|
|
||||||
|
* Too many channels (more than limit of 120 per connection)
|
||||||
|
* Lots of individual bots, which all must be configured and all have that limit
|
||||||
|
* Bots are written for different frameworks
|
||||||
|
* Difficult to react to spam in one or more channels across so many
|
||||||
|
|
||||||
|
Proposed Change
|
||||||
|
===============
|
||||||
|
|
||||||
|
We use supybot for channel and meeting logs. It is not under active
|
||||||
|
development, but it has a successor called Limnoria, which is in later
|
||||||
|
Ubuntu releases (after xenial). It's python and is easy to install in
|
||||||
|
a venv in the interim. Using it lets us continue to use our existing
|
||||||
|
meetbot system, which is the most difficult part of our irc services
|
||||||
|
to change. Our other bots are mostly home-grown and could be ported
|
||||||
|
fairly easily. With it, we can have the same bot instance participate
|
||||||
|
in all channels by using its ability to support multiple connections.
|
||||||
|
That will let us log all 186 channels, hold meetings in them, send
|
||||||
|
status updates, gerrit notifications, etc, with one config.
|
||||||
|
|
||||||
|
The following config example illustrates how to use the multiple
|
||||||
|
connection feature of limnoria to address the channel limit::
|
||||||
|
|
||||||
|
supybot.networks: freenode1 freenode2
|
||||||
|
supybot.networks.freenode1.nick: openstack1
|
||||||
|
supybot.networks.freenode2.nick: openstack2
|
||||||
|
supybot.networks.freenode1.servers: chat.freenode.net:6667
|
||||||
|
supybot.networks.freenode2.servers: chat.freenode.net:6667
|
||||||
|
supybot.networks.freenode1.channels: #openstack
|
||||||
|
supybot.networks.freenode2.channels: #openstack-infra
|
||||||
|
|
||||||
|
Alternatives
|
||||||
|
------------
|
||||||
|
|
||||||
|
We could switch to errbot, though we would additionally need to
|
||||||
|
address the meetbot and logging functionality we currently use with
|
||||||
|
supybot, as well as develop a new method of updating configuration.
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
==============
|
||||||
|
|
||||||
|
Assignee(s)
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Your name here.
|
||||||
|
|
||||||
|
Gerrit Topic
|
||||||
|
------------
|
||||||
|
|
||||||
|
Use Gerrit topic "ircbots" for all patches related to this spec.
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
git-review -t ircbots
|
||||||
|
|
||||||
|
Work Items
|
||||||
|
----------
|
||||||
|
|
||||||
|
* Install limnoria on eavesdrop, to replace supybot
|
||||||
|
* Configure freenode1 and freenode2 networks, using openstack1 and openstack2 nicks
|
||||||
|
* Add all channels to the config, splitting across freenode1 and freenode2
|
||||||
|
* Set all channels to extban based on #openstack so it's easy to
|
||||||
|
update a global ban list.
|
||||||
|
* Add a plugin to watch for highlight spam, and automatically kick
|
||||||
|
accounts and add a ban to #openstack
|
||||||
|
* Auto-generate the limnoria config based on a yaml file with channel descriptions
|
||||||
|
* Convert statusbot into a plugin and retire
|
||||||
|
* Convert gerritbot into a plugin and retire
|
||||||
|
* Convert recheckwatch into a plugin and retire
|
||||||
|
|
||||||
|
Repositories
|
||||||
|
------------
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
Servers
|
||||||
|
-------
|
||||||
|
|
||||||
|
Changes to eavesdrop.o.o and other servers which currently run bots.
|
||||||
|
|
||||||
|
DNS Entries
|
||||||
|
-----------
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Bot configuration docs should be updated in infra-manual.
|
||||||
|
|
||||||
|
Security
|
||||||
|
--------
|
||||||
|
|
||||||
|
This will probably put an unprivileged gerrit ssh key on eavesdrop,
|
||||||
|
but otherwise should not adversely affect security posture. Ceasing
|
||||||
|
to run gerritbot on review.o.o is a likely security benefit.
|
||||||
|
|
||||||
|
Testing
|
||||||
|
-------
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
============
|
||||||
|
|
||||||
|
None.
|
Loading…
x
Reference in New Issue
Block a user