GafaelfawrIngress¶
- pydantic model gafaelfawr.models.kubernetes.GafaelfawrIngress¶
Representation of a
GafaelfawrIngress
resource.- Parameters:
data (
Any
)
Show JSON schema
{ "title": "GafaelfawrIngress", "description": "Representation of a ``GafaelfawrIngress`` resource.", "type": "object", "properties": { "metadata": { "$ref": "#/$defs/KubernetesMetadata" }, "config": { "$ref": "#/$defs/GafaelfawrIngressConfig" }, "template": { "$ref": "#/$defs/GafaelfawrIngressTemplate" } }, "$defs": { "AuthType": { "description": "Authentication types for the WWW-Authenticate header.", "enum": [ "basic", "bearer" ], "title": "AuthType", "type": "string" }, "GafaelfawrIngressConfig": { "description": "Configuration settings for an ingress using Gafaelfawr for auth.", "properties": { "authCacheDuration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Authcacheduration" }, "authType": { "anyOf": [ { "$ref": "#/$defs/AuthType" }, { "type": "null" } ], "default": null }, "baseUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Baseurl" }, "delegate": { "anyOf": [ { "$ref": "#/$defs/GafaelfawrIngressDelegate" }, { "type": "null" } ], "default": null }, "loginRedirect": { "default": false, "title": "Loginredirect", "type": "boolean" }, "onlyServices": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Onlyservices" }, "replace403": { "default": false, "title": "Replace403", "type": "boolean" }, "scopes": { "anyOf": [ { "$ref": "#/$defs/GafaelfawrIngressScopesAll" }, { "$ref": "#/$defs/GafaelfawrIngressScopesAny" }, { "$ref": "#/$defs/GafaelfawrIngressScopesAnonymous" } ], "title": "Scopes" }, "service": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Service" }, "username": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Username" } }, "required": [ "scopes" ], "title": "GafaelfawrIngressConfig", "type": "object" }, "GafaelfawrIngressDelegate": { "description": "Configuration for delegated tokens requested for a service.", "properties": { "notebook": { "anyOf": [ { "$ref": "#/$defs/GafaelfawrIngressDelegateNotebook" }, { "type": "null" } ], "default": null }, "internal": { "anyOf": [ { "$ref": "#/$defs/GafaelfawrIngressDelegateInternal" }, { "type": "null" } ], "default": null }, "minimumLifetime": { "anyOf": [ { "format": "duration", "type": "string" }, { "type": "null" } ], "default": null, "title": "Minimumlifetime" }, "useAuthorization": { "default": false, "title": "Useauthorization", "type": "boolean" } }, "title": "GafaelfawrIngressDelegate", "type": "object" }, "GafaelfawrIngressDelegateInternal": { "description": "Configuration for a delegated internal token.", "properties": { "service": { "title": "Service", "type": "string" }, "scopes": { "items": { "type": "string" }, "title": "Scopes", "type": "array" } }, "required": [ "service", "scopes" ], "title": "GafaelfawrIngressDelegateInternal", "type": "object" }, "GafaelfawrIngressDelegateNotebook": { "description": "Configuration for a delegated notebook token.\n\nNotes\n-----\nThis model is currently empty and represents an empty dict on the\nKubernetes side, but it is still an object for parallelism with\n`GafaelfawrIngressDelegateInternal`. It may have parameters for notebook\ntokens in the future.", "properties": {}, "title": "GafaelfawrIngressDelegateNotebook", "type": "object" }, "GafaelfawrIngressMetadata": { "description": "Metadata used to create an ``Ingress`` object.", "properties": { "name": { "title": "Name", "type": "string" }, "annotations": { "additionalProperties": { "type": "string" }, "title": "Annotations", "type": "object" }, "labels": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "default": null, "title": "Labels" } }, "required": [ "name" ], "title": "GafaelfawrIngressMetadata", "type": "object" }, "GafaelfawrIngressPath": { "description": "A path routing rule for an ingress.", "properties": { "path": { "title": "Path", "type": "string" }, "pathType": { "$ref": "#/$defs/PathType" }, "backend": { "$ref": "#/$defs/GafaelfawrIngressPathBackend" } }, "required": [ "path", "pathType", "backend" ], "title": "GafaelfawrIngressPath", "type": "object" }, "GafaelfawrIngressPathBackend": { "description": "Backend that serves a given path.", "properties": { "service": { "$ref": "#/$defs/GafaelfawrIngressPathService" } }, "required": [ "service" ], "title": "GafaelfawrIngressPathBackend", "type": "object" }, "GafaelfawrIngressPathService": { "description": "Service that serves a given path.", "properties": { "name": { "title": "Name", "type": "string" }, "port": { "anyOf": [ { "$ref": "#/$defs/GafaelfawrServicePortName" }, { "$ref": "#/$defs/GafaelfawrServicePortNumber" } ], "title": "Port" } }, "required": [ "name", "port" ], "title": "GafaelfawrIngressPathService", "type": "object" }, "GafaelfawrIngressRule": { "description": "A routing rule for an ingress.", "properties": { "host": { "title": "Host", "type": "string" }, "http": { "$ref": "#/$defs/GafaelfawrIngressRuleHTTP" } }, "required": [ "host", "http" ], "title": "GafaelfawrIngressRule", "type": "object" }, "GafaelfawrIngressRuleHTTP": { "description": "Routing rules for HTTP access.", "properties": { "paths": { "items": { "$ref": "#/$defs/GafaelfawrIngressPath" }, "title": "Paths", "type": "array" } }, "required": [ "paths" ], "title": "GafaelfawrIngressRuleHTTP", "type": "object" }, "GafaelfawrIngressScopesAll": { "additionalProperties": false, "description": "Represents scopes where all scopes are required.", "properties": { "all": { "items": { "type": "string" }, "title": "All", "type": "array" } }, "required": [ "all" ], "title": "GafaelfawrIngressScopesAll", "type": "object" }, "GafaelfawrIngressScopesAnonymous": { "additionalProperties": false, "description": "Represents anonymous access.", "properties": { "anonymous": { "const": true, "enum": [ true ], "title": "Anonymous", "type": "boolean" } }, "required": [ "anonymous" ], "title": "GafaelfawrIngressScopesAnonymous", "type": "object" }, "GafaelfawrIngressScopesAny": { "additionalProperties": false, "description": "Represents scopes where any scope is sufficient.", "properties": { "any": { "items": { "type": "string" }, "title": "Any", "type": "array" } }, "required": [ "any" ], "title": "GafaelfawrIngressScopesAny", "type": "object" }, "GafaelfawrIngressSpec": { "description": "Template for ``spec`` portion of ``Ingress`` resource.", "properties": { "rules": { "items": { "$ref": "#/$defs/GafaelfawrIngressRule" }, "title": "Rules", "type": "array" }, "tls": { "anyOf": [ { "items": { "$ref": "#/$defs/GafaelfawrIngressTLS" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Tls" } }, "required": [ "rules" ], "title": "GafaelfawrIngressSpec", "type": "object" }, "GafaelfawrIngressTLS": { "description": "A TLS certificate rule for an ingress.", "properties": { "hosts": { "items": { "type": "string" }, "title": "Hosts", "type": "array" }, "secretName": { "title": "Secretname", "type": "string" } }, "required": [ "hosts", "secretName" ], "title": "GafaelfawrIngressTLS", "type": "object" }, "GafaelfawrIngressTemplate": { "description": "Template for ``Ingress`` created from ``GafaelfawrIngress`` resource.", "properties": { "metadata": { "$ref": "#/$defs/GafaelfawrIngressMetadata" }, "spec": { "$ref": "#/$defs/GafaelfawrIngressSpec" } }, "required": [ "metadata", "spec" ], "title": "GafaelfawrIngressTemplate", "type": "object" }, "GafaelfawrServicePortName": { "additionalProperties": false, "description": "Port for a service.", "properties": { "name": { "title": "Name", "type": "string" } }, "required": [ "name" ], "title": "GafaelfawrServicePortName", "type": "object" }, "GafaelfawrServicePortNumber": { "additionalProperties": false, "description": "Port for a service.", "properties": { "number": { "title": "Number", "type": "integer" } }, "required": [ "number" ], "title": "GafaelfawrServicePortNumber", "type": "object" }, "KubernetesMetadata": { "description": "The metadata section of a Kubernetes resource.", "properties": { "name": { "title": "Name", "type": "string" }, "namespace": { "title": "Namespace", "type": "string" }, "annotations": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "default": null, "title": "Annotations" }, "labels": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "default": null, "title": "Labels" }, "uid": { "title": "Uid", "type": "string" }, "generation": { "title": "Generation", "type": "integer" } }, "required": [ "name", "namespace", "uid", "generation" ], "title": "KubernetesMetadata", "type": "object" }, "PathType": { "description": "Matching types for paths in ingress rules.", "enum": [ "Exact", "ImplementationSpecific", "Prefix" ], "title": "PathType", "type": "string" } }, "required": [ "metadata", "config", "template" ] }
- Fields:
- field config: GafaelfawrIngressConfig [Required]¶
Configuration settings for Gafaelfawr for this ingress.
- field metadata: KubernetesMetadata [Required]¶
Metadata section of the Kubernetes resource.
- field template: GafaelfawrIngressTemplate [Required]¶
Template for the
Ingress
resource to create.