OpenFief Give your AI agents a fief, not the kingdom.

Custom resources

The fields of every OpenFief custom resource, read from the CRDs the operator's Go types generate.

Generated from deploy/crds on every build; controller-gen writes those files from the Go types (task gen). The operator page explains how the resources are used.

PluginGrant#

openfief.io/v1alpha1, namespaced-scoped, plural plugingrants.

PluginGrant v1alpha1#

FieldTypeRequiredDescription
specobjectyesSpec is the approved permissions.
spec.capabilities[]stringCapabilities are what the plugin may act as.
spec.dataTiers[]stringDataTiers lists data tier names.
spec.egress[]stringEgress lists hosts as “host” (port 443) or “host:port”.
spec.secrets[]stringSecrets lists Secret names.
statusobjectPluginGrantStatus says whether the grant is well-formed.
status.conditions[]objectConditions holds Valid.
status.conditions[].lastTransitionTimestringyeslastTransitionTime is the last time the condition transitioned from one status to another.
status.conditions[].messagestringyesmessage is a human readable message indicating details about the transition.
status.conditions[].observedGenerationintegerobservedGeneration represents the .metadata.generation that the condition was set based upon.
status.conditions[].reasonstring matching ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$yesreason contains a programmatic identifier indicating the reason for the condition’s last transition.
status.conditions[].statusstring: True, False, Unknownyesstatus of the condition, one of True, False, Unknown.
status.conditions[].typestring matching ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$yestype of condition in CamelCase or in foo.example.com/CamelCase.
status.observedGenerationintegerObservedGeneration is the spec generation the status describes.

Plugin#

openfief.io/v1alpha1, namespaced-scoped, plural plugins.

Plugin v1alpha1#

FieldTypeRequiredDescription
specobjectyesPluginSpec is one version of a plugin.
spec.configobjectConfig is the plugin’s configuration, a JSON object checked against manifest.configSchema.
spec.imagestring matching ^[^@]+@sha256:[0-9a-f]{64}$yesImage is the plugin’s container image, pinned by digest: repository@sha256:<64 hex digits>.
spec.manifestobjectyesManifest is what the plugin requests.
spec.manifest.capabilities[]stringyesCapabilities are what the plugin acts as.
spec.manifest.configSchemaobjectConfigSchema is the JSON Schema that spec.config must satisfy.
spec.manifest.dataTiers[]stringDataTiers lists the classes of data the plugin asks to see.
spec.manifest.egress[]stringEgress lists the hosts the plugin reaches through the egress proxy, as “host” (port 443) or “host:port”.
spec.manifest.secrets[]objectSecrets lists the Kubernetes Secrets, in the openfief namespace, that the plugin needs mounted read-only.
spec.manifest.secrets[].mountPathstringyesMountPath is an absolute path outside /var/run/secrets.
spec.manifest.secrets[].namestringyesName is the Secret’s name.
statusobjectPluginStatus is what the operator observed and did.
status.conditions[]objectConditions are Ready, ApprovalRequired and SignatureVerified.
status.conditions[].lastTransitionTimestringyeslastTransitionTime is the last time the condition transitioned from one status to another.
status.conditions[].messagestringyesmessage is a human readable message indicating details about the transition.
status.conditions[].observedGenerationintegerobservedGeneration represents the .metadata.generation that the condition was set based upon.
status.conditions[].reasonstring matching ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$yesreason contains a programmatic identifier indicating the reason for the condition’s last transition.
status.conditions[].statusstring: True, False, Unknownyesstatus of the condition, one of True, False, Unknown.
status.conditions[].typestring matching ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$yestype of condition in CamelCase or in foo.example.com/CamelCase.
status.deployedobjectDeployed is the plugin version that runs now; absent when nothing runs.
status.deployed.configobjectConfig is the plugin’s configuration, a JSON object checked against manifest.configSchema.
status.deployed.imagestring matching ^[^@]+@sha256:[0-9a-f]{64}$yesImage is the plugin’s container image, pinned by digest: repository@sha256:<64 hex digits>.
status.deployed.manifestobjectyesManifest is what the plugin requests.
status.deployed.manifest.capabilities[]stringyesCapabilities are what the plugin acts as.
status.deployed.manifest.configSchemaobjectConfigSchema is the JSON Schema that spec.config must satisfy.
status.deployed.manifest.dataTiers[]stringDataTiers lists the classes of data the plugin asks to see.
status.deployed.manifest.egress[]stringEgress lists the hosts the plugin reaches through the egress proxy, as “host” (port 443) or “host:port”.
status.deployed.manifest.secrets[]objectSecrets lists the Kubernetes Secrets, in the openfief namespace, that the plugin needs mounted read-only.
status.deployed.manifest.secrets[].mountPathstringyesMountPath is an absolute path outside /var/run/secrets.
status.deployed.manifest.secrets[].namestringyesName is the Secret’s name.
status.effectiveobjectEffective is what the running version is allowed: only what it requests and the PluginGrant approves (D-16).
status.effective.capabilities[]stringCapabilities are what the plugin may act as.
status.effective.dataTiers[]stringDataTiers lists data tier names.
status.effective.egress[]stringEgress lists hosts as “host” (port 443) or “host:port”.
status.effective.secrets[]stringSecrets lists Secret names.
status.observedGenerationintegerObservedGeneration is the spec generation the status describes.
status.pendingApprovalobjectPendingApproval is what spec requests and the PluginGrant does not approve.
status.pendingApproval.capabilities[]stringCapabilities are what the plugin may act as.
status.pendingApproval.dataTiers[]stringDataTiers lists data tier names.
status.pendingApproval.egress[]stringEgress lists hosts as “host” (port 443) or “host:port”.
status.pendingApproval.secrets[]stringSecrets lists Secret names.

Generated from the repository at build time; it cannot go stale.