Files
nip/k8s/document_root_k-v.io/index.html
Brian Cunnie 14df91e967 k-v.io website has useful information
It's a beginning, but I really wanted to get this done. I can polish it
later.
2022-04-22 20:46:19 -07:00

114 lines
5.7 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta name="generator" content="HTML Tidy for HTML5 for Apple macOS version 5.8.0">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="Mark Otto, Jacob Thornton, and Bootstrap contributors">
<meta name="generator" content="Jekyll v3.8.5">
<title>k-v.io</title>
<meta name="description" content="k-v.io">
<meta name="author" content="Brian Cunnie"><!-- cute Green Lock icon -->
<link rel="shortcut icon" type="image/x-svg" href="img/favicon.svg"><!-- Latest
<link rel="canonical" href="https://getbootstrap.com/docs/4.3/examples/starter-template/"><!-- Bootstrap core CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity=
"sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<style>
.bd-placeholder-img {
font-size: 1.125rem;
text-anchor: middle;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
@media (min-width: 768px) {
.bd-placeholder-img-lg {
font-size: 3.5rem;
}
}
</style><!-- Custom styles for this template -->
<link href="starter-template.css" rel="stylesheet">
</head>
<body>
<!--
<nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top">
<a class="navbar-brand" href="#">k-v.io</a>
<div class="collapse navbar-collapse" id="navbarsExampleDefault">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="dropdown01" data-toggle="dropdown" aria-haspopup="true"
aria-expanded="false">Dropdown</a>
<div class="dropdown-menu" aria-labelledby="dropdown01">
<a class="dropdown-item" href="#">Action</a> <a class="dropdown-item" href="#">Another action</a> <a class=
"dropdown-item" href="#">Something else here</a>
</div>
</li>
</ul>
</div>
</nav>
-->
<main role="main" class="container">
<div class="starter-template">
<h1>k-v.io</h1>
<p>A DNS-based Key-Value Store.</p>
<h2>Quick Start</h2>
<p>In the following examples, <i>my-key</i> is the key, and <i>my-value</i> is the value.</p>
<ul>
<li>To set a key: <code>dig put.my-value.my-key.k-v.io txt +short</code></li>
<li>To get a key: <code>dig my-key.k-v.io txt +short</code></li>
<li>To delete a key: <code>dig delete.my-key.k-v.io txt +short</code></li>
</ul>
<p>Notes:</p>
<ul>
<li>Values are stored as TXT records.</li>
<li>Keys must be valid DNS subdomains, i.e. only alphanumerics and dashes, and cannot exceed 63 characters.
"my-key" is valid, but "my#key" is not.</li>
<li>Values can be one or more subdomains, i.e. alphanumerics, dashes, and dots. For example, <code>dig
put.3.14159.pi.k-v.io txt +short</code> sets the the key "pi" to the value "3.14159".</li>
<li>If you need special characters ("!@#$%^😊"), consider <a href=
"https://en.wikipedia.org/wiki/Base32">Base32</a> encoding, but remember that the padding character ("=") is
illegal.
</li>
<li>The three verbs are <code>put</code>, <code>get</code>, and <code>delete</code>, e.g. <code>dig
delete.pi.k-v.io txt +short</code>.</li>
<li>The verb <code>get</code> is the default verb: <code>dig pi.k-v.io txt +short</code> is identical to
<code>dig get.pi.k-v.io txt +short</code>.</li>
<li>When you change or delete a key, it may take up to 3 minutes for the change to propagate due to DNS
caching.</li>
<li>There's no security: you may set the key "best-rugby-team" to the value "all-blacks", and someone else
could change it a minute later to "springboks".</li>
<li>If you don't want someone to mess with your keys, you should probably use GUIDs or something fairly unique
as a key, e.g. <code>dig put.my-value.df616686-26e8-4da8-8104-a24aa0196bc7.k-v.io txt +short</code></li>
<li>There are three servers that back this service: two in the USA, one in Singapore, on different platforms:
AWS, Azure, and Google Cloud.</li>
<li>The underlying key-value store is an etcd cluster. I chose etcd for no particular reason other than that's
what Kubernetes uses.</li>
<li>I have no idea how well this system will scale.</li>
<li>I'll probably expire keys that haven't been accessed in a month, but I haven't written that code yet.</li>
<li>This project is very much in beta. Assume you may lose your keys at any time.</li><code>dig get.pi.k-v.io
txt +short</code>.
</ul>
</div>
</main><!-- /.container -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity=
"sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script>
window.jQuery || document.write('<script src="/docs/4.3/assets/js/vendor/jquery-slim.min.js"><\/script>')
</script>
<script src="/docs/4.3/dist/js/bootstrap.bundle.min.js" integrity=
"sha384-xrRywqdh3PHs8keKZN+8zzc5TX0GRTLCcmivcbNJWm2rs5C8PRhcEn3czEjhAO9o" crossorigin="anonymous"></script>
</body>
</html>