Skip to content

Technical Specification

Riley O'Donnell edited this page Apr 14, 2024 · 21 revisions

This is the technical specification for g8s' CRDs, meant to be read by humans.

User-facing types

Login

Spec
- username: string
- password:
    length: int
    characterSet: string
Backend Secret Values
type: kubernetes.io/basic-auth
data:
  - username: string
  - password: string

SelfSignedTLSBundle

Spec
- appName: string
- sans:
  - string
Backend Secret Values
type: g8s.io/self-signed-tls-bundle
data:
  - key.pem: string
  - cert.pem: string
  - cacert.pem: string

SSHKeyPair

Spec
# optional; only used if keytype == 'rsa'
- bitSize: int

# one of 'rsa' or 'ed25519'
- keyType: string 
Backend Secret Values
type: g8s.io/ssh-key-pair
data:
  - ssh.pub: string
  - ssh.key: string

Admin-facing types

Allowlist

logins:
  - name: root
    targets:
      - namespace: my-app
        selector:
          matchLabels:
            app: my-app
        # optional; if not specified, all containers are matched
        containers:
          - one
selfsignedtlsbundles:
  ...
sshkeypairs:
  ...