OnionKey
tor.agabani.co.uk / v1
apiVersion: tor.agabani.co.uk/v1
kind: OnionKey
metadata:
name: example
spec object required
An `OnionKey` is an abstraction of a Tor Onion Key.
A Tor Onion Key consists of the following files:
- `hostname`
- `hs_ed25519_public_key`
- `hs_ed25519_public_key`
A user can import their existing Tor Onion Key by creating a secret.
```ignore
kubectl create secret generic tor-ingress-example \
--from-file=hostname=./hostname \
--from-file=hs_ed25519_public_key=./hs_ed25519_public_key \
--from-file=hs_ed25519_secret_key=./hs_ed25519_secret_key
```
A user can have the Tor Operator create a new random Tor Onion Key by using the
auto generate feature controlled by `.autoGenerate`.
autoGenerate
boolean
Auto generate a random Onion Key. default: false.
## Auto Generate: False
Tor Operator will use an existing Onion Key from the Secret specified
in `.secret.name`.
## Auto Generate: True
The Tor Operator will generate a random Onion Key and save it in the
secret specified in `.secret.name`.
If the `OnionKey`'s secret key is missing or malformed, the Tor Operator
will recreate the secret key.
If the `OnionKey`'s public key is missing, malformed, or does not match
the secret key, the Tor Operator will deterministically recreate the
public key from the secret key.
If the `OnionKey`'s hostname is missing, malformed, or does not match
the public key, the Tor Operator will deterministically recreate the
hostname from the public key.
secret object required
Secret settings.
annotations
object
Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: <http://kubernetes.io/docs/user-guide/annotations>
labels
object
Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: <http://kubernetes.io/docs/user-guide/labels>
name
string required
Name of the secret.
Secret data must have keys `hostname`, `hs_ed25519_public_key` and
`hs_ed25519_secret_key`.
status object
autoGenerated
boolean required
Auto generated `OnionKey`.
conditions []object
Represents the latest available observations of a deployment's current state.
### Ready
`SecretNotFound`,
`SecretKeyNotFound`, `SecretKeyMalformed`,
`PublicKeyNotFound`, `PublicKeyMalformed`, `PublicKeyMismatch`,
`HostnameNotFound`, `HostnameMalformed`, `HostnameMismatch`,
`Ready`
lastTransitionTime
string required
lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format:
date-time
message
string required
message is a human readable message indicating details about the transition. This may be an empty string.
observedGeneration
integer
observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
format:
int64
reason
string required
reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
status
string required
status of the condition, one of True, False, Unknown.
type
string required
type of condition in CamelCase or in foo.example.com/CamelCase.
hostname
string
`OnionKey` hostname.
The hostname is only populated once `state` is ready.
summary
object
Represents the latest available observations of a deployment's current state.
No matches. Try .spec.autoGenerate for an exact path