@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Unprototype Almanac

Summary: Fixes T10449. Almanac doesn't do a whole lot for the average user, but is in good shape technically and works well, and exposing it in the cluster won't let installs destroy themselves now.

Test Plan: Re-read documentation; grepped for `TODO` (there are a couple, but reasonable to push off); browsed around all the UI things (new two-column looks great), called API methods.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T10449

Differential Revision: https://secure.phabricator.com/D15400

+13 -14
-4
src/applications/almanac/application/PhabricatorAlmanacApplication.php
··· 35 35 ); 36 36 } 37 37 38 - public function isPrototype() { 39 - return true; 40 - } 41 - 42 38 public function getRoutes() { 43 39 return array( 44 40 '/almanac/' => array(
+13 -10
src/docs/user/userguide/almanac.diviner
··· 6 6 Overview 7 7 ======== 8 8 9 - IMPORTANT: Almanac is a prototype application. See 10 - @{article:User Guide: Prototype Applications}. 11 - 12 9 Almanac is a device and service inventory application. It allows you to create 13 10 lists of //devices// and //services// that humans and other applications can 14 11 use to keep track of what is running where. 15 12 13 + Almanac is an infrastructure application that will normally be used by 14 + administrators to configure advanced Phabricator features. In most cases, 15 + normal users will very rarely interact with Almanac directly. 16 + 16 17 At a very high level, Almanac can be thought of as a bit like a DNS server. 17 18 Callers ask it for information about services, and it responds with details 18 19 about which devices host those services. However, it can respond to a broader 19 20 range of queries and provide more detailed responses than DNS alone can. 20 21 21 - Today, the primary use cases for Almanac involve configuring Phabricator 22 - itself: Almanac is used to configure Phabricator to operate in a cluster setup, 23 - and to expose hardware to Drydock so it can run build and integration tasks. 22 + Today, the primary use cases for Almanac are internal to Phabricator: 23 + 24 + - Providing a list of build servers to Drydock so it can run build and 25 + integration tasks. 26 + - Configuring Phabricator to operate in a cluster setup. 24 27 25 28 Beyond internal uses, Almanac is a general-purpose service and device inventory 26 29 application and can be used to configure and manage other types of service and ··· 37 40 together. 38 41 39 42 In this scenario, we want to use Drydock to run some sort of build process. To 40 - do this, Drydock needs hardware to run on. We're going to use Almanac to tell 41 - Drydock about the hardware it should use. 43 + do this, Drydock needs hardware to run on. We're going to use Almanac to give 44 + Drydock a list of hosts it should use. 42 45 43 46 In this scenario, Almanac will work a bit like a DNS server. When we're done, 44 47 Drydock will be able to query Almanac for information about a service (like 45 48 `build.mycompany.com`) and get back information about which hosts are part of 46 - that service and where it should connect to. 49 + that service and which addresses/ports it should connect to. 47 50 48 51 Before getting started, we need to create a **network**. For simplicity, let's 49 52 suppose everything will be connected through the public internet. If you ··· 52 55 Once we have a network, we create the actual physical or virtual hosts by 53 56 launching instances in EC2, or racking and powering on some servers, or already 54 57 having some hardware on hand we want to use. We set the hosts up normally and 55 - connect them to the internet or network. 58 + connect them to the internet (or another network). 56 59 57 60 After the hosts exist, we add them to Almanac as **devices**, like 58 61 `build001.mycompany.com`, `build002.mycompany.com`, and so on. In Almanac,