union elementRelationship: atomic - name: elementType type: namedType: typeRef - name: elementRelationship type: scalar: string - name: unionField map: fields: - name: fieldName type: scalar: string - name: discriminatorValue type: scalar: string - name: union map: fields: - name: discriminator type: scalar: string - name: deduceInvalidDiscriminator type: scalar: boolean - name: fields type: list: elementRelationship: associative elementType: namedType: unionField keys: - fieldName - name: structField map: fields: - name: name type: scalar: string - name: type type: namedType: typeRef - name: default type: namedType: __untyped_atomic_ - name: list map: fields: - name: elementType type: namedType: typeRef - name: elementRelationship type: scalar: string - name: keys type: list: elementType: scalar: string elementRelationship: atomic - name: untyped map: fields: - name: elementRelationship type: scalar: string - name: __untyped_atomic_ scalar: untyped list: elementType: namedType: __untyped_atomic_ elementRelationship: atomic map: elementType: namedType: __untyped_atomic_ elementRelationship: atomic Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. For example, a variable named 'foo' can be accessed as 'variables.foo'. - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the request resource. The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are: "true", "false", "null", "in", "as", "break", "const", "continue", "else", "for", "function", "if", "import", "let", "loop", "package", "namespace", "return". Examples: - Expression accessing a property named "namespace": {"Expression": "object.__namespace__ > 0"} - Expression accessing a property named "x-prop": {"Expression": "object.x__dash__prop > 0"} - Expression accessing a property named "redact__d": {"Expression": "object.redact__underscores__d > 0"} Equality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type: - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and non-intersecting elements in `Y` are appended, retaining their partial order. - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with non-intersecting keys are appended, retaining their partial order. Required. {{template "Prolog" .}} {{template "StatusTable" .}} {{template "Epilog" .}} {{define "Prolog"}}
| {{$fam}} | {{$n := index $.ActiveTraceCount $fam}}{{if $n}}{{end}} [{{$n}} active] {{if $n}}{{end}} | {{$f := index $.CompletedTraces $fam}} {{range $i, $b := $f.Buckets}} {{$empty := $b.Empty}}{{if not $empty}}{{end}} [{{.Cond}}] {{if not $empty}}{{end}} | {{end}} {{$nb := len $f.Buckets}}[minute] | [hour] | [total] |
Showing {{len $.Traces}} of {{$.Total}} traces.
{{end}}| When | Elapsed (s) | |
|---|---|---|
| {{$tr.When}} | {{$tr.ElapsedTime}} | {{$tr.Title}} | {{/* TODO: include traceID/spanID */}}
| {{.WhenString}} | {{elapsed .Elapsed}} | {{if or $.ShowSensitive (not .Sensitive)}}... {{.What}}{{else}}[redacted]{{end}} |