Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions apis/ingress/v1/pomerium_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -280,6 +280,36 @@ type PomeriumSpec struct {

// PassIdentityHeaders sets the <a href="https://www.pomerium.com/docs/reference/pass-identity-headers">pass identity headers</a> option.
PassIdentityHeaders *bool `json:"passIdentityHeaders,omitempty"`

// TracingProvider sets the name of the tracing provider (e.g. Jaeger, Zipkin) (<a href="https://www.pomerium.com/docs/reference/tracing">see tracing</a>)
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
TracingProvider *string `json:"tracingProvider,omitempty"`

// TracingSampleRate sets Percentage of requests to sample in decimal notation. Default is 0.0001, or .01% (<a href="https://www.pomerium.com/docs/reference/tracing">see tracing</a>)
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
TracingSampleRate *string `json:"tracingSampleRate,omitempty"`

// Datadog tracing address (<a href="https://www.pomerium.com/docs/reference/tracing">see tracing</a>)
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
TracingDatadogAddress *string `json:"tracingDatadogAddress,omitempty"`

// Jaeger CollectorEndpoint is the url to the Jaeger HTTP Thrift collector (<a href="https://www.pomerium.com/docs/reference/tracing">see tracing</a>)
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
TracingJaegerCollectorEndpoint *string `json:"tracingJaegerCollectorEndpoint,omitempty"`

// Jaeger AgentEndpoint instructs exporter to send spans to jaeger-agent at this address (<a href="https://www.pomerium.com/docs/reference/tracing">see tracing</a>)
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
TracingJaegerAgentEndpoint *string `json:"tracingJaegerAgentEndpoint,omitempty"`

// ZipkinEndpoint configures the zipkin collector URI (<a href="https://www.pomerium.com/docs/reference/tracing">see tracing</a>)
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Type=string
TracingZipkinEndpoint *string `json:"tracingZipkinEndpoint,omitempty"`
}

// Timeouts allows to configure global timeouts for all routes.
Expand Down
30 changes: 30 additions & 0 deletions apis/ingress/v1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

28 changes: 28 additions & 0 deletions config/crd/bases/ingress.pomerium.io_pomerium.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -322,6 +322,34 @@ spec:
format: duration
type: string
type: object
tracingDatadogAddress:
description: Datadog tracing address (<a href="https://www.pomerium.com/docs/reference/tracing">see
tracing</a>)
type: string
tracingJaegerAgentEndpoint:
description: Jaeger AgentEndpoint instructs exporter to send spans
to jaeger-agent at this address (<a href="https://www.pomerium.com/docs/reference/tracing">see
tracing</a>)
type: string
tracingJaegerCollectorEndpoint:
description: Jaeger CollectorEndpoint is the url to the Jaeger HTTP
Thrift collector (<a href="https://www.pomerium.com/docs/reference/tracing">see
tracing</a>)
type: string
tracingProvider:
description: TracingProvider sets the name of the tracing provider
(e.g. Jaeger, Zipkin) (<a href="https://www.pomerium.com/docs/reference/tracing">see
tracing</a>)
type: string
tracingSampleRate:
description: TracingSampleRate sets Percentage of requests to sample
in decimal notation. Default is 0.0001, or .01% (<a href="https://www.pomerium.com/docs/reference/tracing">see
tracing</a>)
type: string
tracingZipkinEndpoint:
description: ZipkinEndpoint configures the zipkin collector URI (<a
href="https://www.pomerium.com/docs/reference/tracing">see tracing</a>)
type: string
useProxyProtocol:
description: UseProxyProtocol enables <a href="https://www.pomerium.com/docs/reference/use-proxy-protocol">Proxy
Protocol</a> support.
Expand Down
17 changes: 17 additions & 0 deletions pomerium/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"encoding/base64"
"fmt"
"net/url"
"strconv"

"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/durationpb"
Expand Down Expand Up @@ -118,6 +119,22 @@ func applySetOtherOptions(_ context.Context, p *pb.Config, c *model.Config) erro
} else {
p.Settings.PassIdentityHeaders = nil
}
p.Settings.TracingProvider = c.Spec.TracingProvider

if c.Spec.TracingSampleRate != nil {
tracingSampleRate, err := strconv.ParseFloat(*c.Spec.TracingSampleRate, 64)
if err != nil {
return fmt.Errorf("parsing %s: %w", *c.Spec.TracingSampleRate, err)
}
p.Settings.TracingSampleRate = &tracingSampleRate
} else {
p.Settings.TracingSampleRate = nil
}

p.Settings.TracingDatadogAddress = c.Spec.TracingDatadogAddress
p.Settings.TracingJaegerCollectorEndpoint = c.Spec.TracingJaegerCollectorEndpoint
p.Settings.TracingJaegerAgentEndpoint = c.Spec.TracingJaegerAgentEndpoint
p.Settings.TracingZipkinEndpoint = c.Spec.TracingZipkinEndpoint
return nil
}

Expand Down
98 changes: 97 additions & 1 deletion reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,103 @@ PomeriumSpec defines Pomerium-specific configuration parameters.

</td>
</tr>


<tr>
<td>
<p>
<code>tracingDatadogAddress</code>&#160;&#160;

<strong>string</strong>&#160;

</p>
<p>

Datadog tracing address (<a href="https://www.pomerium.com/docs/reference/tracing">see tracing</a>)
</p>

</td>
</tr>

<tr>
<td>
<p>
<code>tracingJaegerAgentEndpoint</code>&#160;&#160;

<strong>string</strong>&#160;

</p>
<p>

Jaeger AgentEndpoint instructs exporter to send spans to jaeger-agent at this address (<a href="https://www.pomerium.com/docs/reference/tracing">see tracing</a>)
</p>

</td>
</tr>

<tr>
<td>
<p>
<code>tracingJaegerCollectorEndpoint</code>&#160;&#160;

<strong>string</strong>&#160;

</p>
<p>

Jaeger CollectorEndpoint is the url to the Jaeger HTTP Thrift collector (<a href="https://www.pomerium.com/docs/reference/tracing">see tracing</a>)
</p>

</td>
</tr>

<tr>
<td>
<p>
<code>tracingProvider</code>&#160;&#160;

<strong>string</strong>&#160;

</p>
<p>

TracingProvider sets the name of the tracing provider (e.g. Jaeger, Zipkin) (<a href="https://www.pomerium.com/docs/reference/tracing">see tracing</a>)
</p>

</td>
</tr>

<tr>
<td>
<p>
<code>tracingSampleRate</code>&#160;&#160;

<strong>string</strong>&#160;

</p>
<p>

TracingSampleRate sets Percentage of requests to sample in decimal notation. Default is 0.0001, or .01% (<a href="https://www.pomerium.com/docs/reference/tracing">see tracing</a>)
</p>

</td>
</tr>

<tr>
<td>
<p>
<code>tracingZipkinEndpoint</code>&#160;&#160;

<strong>string</strong>&#160;

</p>
<p>

ZipkinEndpoint configures the zipkin collector URI (<a href="https://www.pomerium.com/docs/reference/tracing">see tracing</a>)
</p>

</td>
</tr>

<tr>
<td>
<p>
Expand Down