letsencrypt / letsencrypt/boulder
Creating an "overarching" configurable ceremony type
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 5.8k
- Forks
- 649
- Avg merge
- 3d 23h
- Merged PRs (30d)
- 24
Description
Captured from a conversation that @aarongable and I had:
Create a new ceremony config which acts as a meta-config, saying "process these config files in this order, sending the outputs of this step to the inputs of that step"
A declarative replacement for what currently lives in run.sh and some hard-coded paths in the config files.
As an added feature, the program should be able to output a dot file diagramming the hierarchy
digraph structs {
node [style=filled shape=note fontname=Arial];
rankdir=TB;
splines=ortho;
pad="0";
ranksep=".8";
nodesep=".3";
concentrate=true;
{rank = same; dstrootcax3; isrgrootx1; isrgrootx2}
{rank = same; leax1; leax3; r3; e1;}
subgraph R {
dstrootcax3 -> isrgrootx1 -> isrgrootx2 [arrowhead=vee]
dstrootcax3 [label="DST Root CA X3" fillcolor=orange];
isrgrootx1 [label="ISRG Root X1" fillcolor=orange];
isrgrootx2 [label="ISRG Root X2" fillcolor=cadetblue3];
}
subgraph IR {
isrgrootx1 -> leax1 -> ee1 [arrowhead=vee]
isrgrootx1 -> leax3 -> ee2 [arrowhead=vee]
isrgrootx1 -> r3 -> ee3 [arrowhead=vee]
dstrootcax3 -> leax1 [color=gray40 style=dotted arrowhead=vee]
dstrootcax3 -> leax3 [color=gray40 style=dotted arrowhead=vee]
dstrootcax3 -> r3 [color=gray40 style=dotted arrowhead=vee]
leax1 [label="LEA X1" fillcolor=orange];
leax3 [label="LEA X3" fillcolor=orange];
r3 [label="R3" fillcolor=orange];
ee1 [label="EE"];
ee2 [label="EE"];
ee3 [label="EE"];
}
subgraph IE {
isrgrootx2 -> e1 -> ee4 [arrowhead=vee]
e1 [label="E1" fillcolor=cadetblue3];
ee4 [label="EE"];
}

Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by examining run.sh and the existing ceremony config files to understand the current ordering, hard-coded paths, and data flow. Define how the overarching config represents those steps and how the program should emit a Graphviz dot diagram; done should include a working declarative replacement and the requested hierarchy output.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100