Repository navigation
Expand file tree
/
Copy pathspec.html
More file actions
116 lines (105 loc) · 7.42 KB
/
Copy pathspec.html
File metadata and controls
116 lines (105 loc) · 7.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Profile Shape | Runtime Conditions</title>
<link rel="stylesheet" href="assets/styles.css" />
</head>
<body>
<header class="site-header">
<div class="header-inner">
<a class="brand" href="index.html">Runtime Conditions</a>
<nav class="top-links" aria-label="Top links">
<a href="https://github.com/runtimeconditions/spec/blob/main/docs/sixth-draft.md" data-tip="Read the latest draft of the specification"><svg class="nav-icon" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z"/><path d="M14 3v5h5"/><path d="M9 13h6"/><path d="M9 17h6"/></svg><span>Current Draft</span></a>
<a href="https://github.com/runtimeconditions/rc-demos/blob/main/README.md" data-tip="Run Runtime Conditions end to end on your own machine"><svg class="nav-icon" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><circle cx="12" cy="12" r="10"/><polygon points="10 8 16 12 10 16 10 8"/></svg><span>Run Demo</span></a>
<a href="reference.html" data-tip="See where each part of this guide comes from in the source repositories"><svg class="nav-icon" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M3 6l6-3 6 3 6-3v15l-6 3-6-3-6 3z"/><path d="M9 3v15"/><path d="M15 6v15"/></svg><span>Source Map</span></a>
<a href="https://github.com/runtimeconditions" data-tip="Browse the Runtime Conditions repositories on GitHub"><svg class="nav-icon" viewBox="0 0 24 24" width="16" height="16" fill="currentColor" aria-hidden="true" focusable="false"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg><span>GitHub</span></a>
<a href="https://cloud-native.slack.com/archives/C0C0R4M65FZ" data-tip="Join the conversation on the CNCF Slack"><svg class="nav-icon" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M4 9h16"/><path d="M4 15h16"/><path d="M10 3L8 21"/><path d="M16 3l-2 18"/></svg><span>Slack</span></a>
</nav>
</div>
</header>
<div class="guide-layout">
<aside class="sidebar" aria-label="Guide chapters">
<p class="sidebar-title">Reader Guide</p>
<ol class="chapter-list">
<li><a href="index.html"><span class="num">00</span><span>Start here</span></a></li>
<li><a href="concepts.html"><span class="num">01</span><span>Core concepts</span></a></li>
<li><a aria-current="page" href="spec.html"><span class="num">02</span><span>Profile shape</span></a></li>
<li><a href="developers.html"><span class="num">03</span><span>Code to profile</span></a></li>
<li><a href="extensions.html"><span class="num">04</span><span>Extensions</span></a></li>
<li><a href="platform.html"><span class="num">05</span><span>Adapters</span></a></li>
<li><a href="demo.html"><span class="num">06</span><span>Run the demo</span></a></li>
<li><a href="reference.html"><span class="num">07</span><span>Reference</span></a></li>
</ol>
</aside>
<main class="content">
<p class="chapter-label">Chapter 2</p>
<h1 class="page-title">The core spec defines the document contract.</h1>
<p class="intro">
Core fields are stable. Concrete values such as `cache`, `redis`, and `aws.s3` come from extensions.
</p>
<section class="section">
<h2>Envelope</h2>
<div class="example">
<div class="example-title">
<span>Required top-level fields</span>
<a href="https://github.com/runtimeconditions/spec/blob/main/docs/sixth-draft.md">full draft</a>
</div>
<pre><code>apiVersion: runtimeconditions.io/v1alpha1
kind: RuntimeConditionsProfile
metadata:
name: request-logger-http
workload:
uri: github.com/runtimeconditions/rc-demos/apps/request-logger-http
version: v0.1.0
extensions: []
conditions: []</code></pre>
</div>
</section>
<section class="section">
<h2>Condition shape</h2>
<div class="example">
<div class="example-title">Core owns structure; extensions own values</div>
<pre><code>conditions:
- name: optional-condition-name
optional: false
kind: extension-defined-kind
interface:
type: extension-defined-interface-type</code></pre>
</div>
</section>
<section class="section">
<h2>Extension declaration</h2>
<div class="example">
<div class="example-title">A profile declares every vocabulary source it uses</div>
<pre><code>extensions:
- https://aws.example.com/runtimeconditions/object-store/v1alpha1/runtimeconditions.extension.yaml
- https://runtimeconditions.io/extensions/common-integrations/v1alpha1/runtimeconditions.extension.yaml
- https://runtimeconditions.io/extensions/env-configuration/v1alpha1/runtimeconditions.extension.yaml</code></pre>
</div>
</section>
<section class="section">
<h2>Validation order</h2>
<ol class="step-list">
<li><span class="step-num">1</span><div><strong>Structural validation</strong><span>Required fields, types, nulls, duplicate keys.</span></div></li>
<li><span class="step-num">2</span><div><strong>Extension resolution</strong><span>Declared extensions and dependencies resolve deterministically.</span></div></li>
<li><span class="step-num">3</span><div><strong>Vocabulary validation</strong><span>Every kind, interface, field, and value has exactly one owner.</span></div></li>
<li><span class="step-num">4</span><div><strong>Schema validation</strong><span>Core and extension schemas validate semantic rules.</span></div></li>
</ol>
</section>
<nav class="page-nav" aria-label="Page navigation">
<a href="concepts.html">Previous: Core concepts</a>
<a href="developers.html">Next: Code to profile</a>
</nav>
</main>
</div>
<footer class="footer">
<div class="footer-inner">
<span>Chapter 2 of 7</span>
<a href="developers.html">Continue</a>
</div>
</footer>
<script src="assets/syntax.js" defer></script>
</body>
</html>