or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
RFC 3158 - Working Examples
Gating Flux
Example of a Gating mechanism to control when a
GitRepository
would be allowedto pull the latest sources in order to deploy into a given environment.
On this example there will be two Gates
change-freeze
andbypass-signoff
.At least one of them must be opened for the release to go ahead.
Static Gates
Both Gates are created statically, but a GateKeeper will be used to manage
change-freeze
's state.The
change-freeze
Gate represents the time window in which a change freezeis defined, and no releases can be deployed into the environment:
The
bypass-signoff
Gate represents manual overrides, in which managementallowed for a release to take place:
GitRepository using both gates
GateKeeper
A GateKeeper adds dynamic behavior to Gates. In this example, one GateKeeper will
be used to keep
change-freeze
closed two change freeze windows: Black Fridayand Xmas.
Override Gates
The Gate
bypass-signoff
is always closed. The Gatechange-freeze
is onlyclosed during the change freezes defined by
change-freeze-gatekeeper
.To allow a new release during a change freeze period, users
can temporarily open
the Gate
bypass-signoff
, force a reconciliation and then close it again.As a result,
GitRepository
will fetch the latest version of its source and makeit available to the other Flux controllers, which will then apply it to the cluster.
The message used on the command
flux gate open
will appear on Gate Controller'slogs, highlighting the change of state:
Source Controller will also output the considered gates, their status:
Follow-up
Auditing
Further discussions are needed around log and auditing, to ensure the correct level
of assurance and cross-references amongst the different states that may lead to a
reconciliation to pass through gates.
Edge Cases
The gating mechanism should not yield corrupt state, however that could happen when
multiple sources depend on each other, and a Gate only allows one to be reconciled.
Therefore, it is vital that when gating is in place, users take special care around
not creating dependencies across Flux Sources that have different gating rules.