Skip to content

Commit c100ea5

Browse files
committed
use charm-tracing-config and push cacert to charm
1 parent f8cfe7e commit c100ea5

File tree

3 files changed

+16
-7
lines changed

3 files changed

+16
-7
lines changed

lib/charms/mysql/v0/tls.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
TLS_SSL_CA_FILE,
4646
TLS_SSL_CERT_FILE,
4747
TLS_SSL_KEY_FILE,
48+
CHARM_CA_CERT_PATH
4849
)
4950

5051
logger = logging.getLogger(__name__)
@@ -123,6 +124,7 @@ def _on_certificate_available(self, event: CertificateAvailableEvent) -> None:
123124
self.charm.set_secret(SCOPE, "certificate", event.certificate)
124125
self.charm.set_secret(SCOPE, "certificate-authority", event.ca)
125126

127+
self.push_tls_files_to_charm_container()
126128
self.push_tls_files_to_workload()
127129
try:
128130
self.charm._mysql.tls_setup(
@@ -249,6 +251,12 @@ def get_tls_content(self) -> Tuple[Optional[str], Optional[str], Optional[str]]:
249251
cert = self.charm.get_secret(SCOPE, "certificate")
250252
return key, ca_file, cert
251253

254+
def push_tls_files_to_charm_container(self) -> None:
255+
"""Push TLS files to charm container."""
256+
_, _, ssl_cert = self.get_tls_content()
257+
if ssl_cert:
258+
Path(CHARM_CA_CERT_PATH).write_text(ssl_cert)
259+
252260
def push_tls_files_to_workload(self) -> None:
253261
"""Push TLS files to unit."""
254262
ssl_key, ssl_ca, ssl_cert = self.get_tls_content()

src/charm.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
from charms.prometheus_k8s.v0.prometheus_scrape import MetricsEndpointProvider
5050
from charms.rolling_ops.v0.rollingops import RollingOpsManager
5151
from charms.tempo_coordinator_k8s.v0.charm_tracing import trace_charm
52-
from charms.tempo_coordinator_k8s.v0.tracing import TracingEndpointRequirer
52+
from charms.tempo_coordinator_k8s.v0.tracing import TracingEndpointRequirer, charm_tracing_config
5353
from ops import EventBase, RelationBrokenEvent, RelationCreatedEvent
5454
from ops.charm import RelationChangedEvent, UpdateStatusEvent
5555
from ops.model import (
@@ -89,6 +89,7 @@
8989
SERVER_CONFIG_USERNAME,
9090
TRACING_PROTOCOL,
9191
TRACING_RELATION_NAME,
92+
CHARM_CA_CERT_PATH,
9293
)
9394
from k8s_helpers import KubernetesHelpers
9495
from log_rotate_manager import LogRotateManager
@@ -104,7 +105,8 @@
104105

105106

106107
@trace_charm(
107-
tracing_endpoint="tracing_endpoint",
108+
tracing_endpoint="charm_tracing_endpoint",
109+
server_cert="charm_tracing_server_cert",
108110
extra_types=(
109111
GrafanaDashboardProvider,
110112
KubernetesHelpers,
@@ -197,11 +199,9 @@ def __init__(self, *args):
197199
self, protocols=[TRACING_PROTOCOL], relation_name=TRACING_RELATION_NAME
198200
)
199201

200-
@property
201-
def tracing_endpoint(self) -> Optional[str]:
202-
"""Otlp http endpoint for charm instrumentation."""
203-
if self.tracing.is_ready():
204-
return self.tracing.get_endpoint(TRACING_PROTOCOL)
202+
self.charm_tracing_endpoint, self.charm_tracing_server_cert = charm_tracing_config(
203+
self.tracing,
204+
CHARM_CA_CERT_PATH)
205205

206206
@property
207207
def _mysql(self) -> MySQL:

src/constants.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
MYSQLD_DEFAULTS_CONFIG_FILE = "/etc/mysql/my.cnf"
4949
MYSQLD_EXPORTER_PORT = "9104"
5050
MYSQLD_EXPORTER_SERVICE = "mysqld_exporter"
51+
CHARM_CA_CERT_PATH = "/usr/local/share/ca-certificates/ca.cert"
5152
GR_MAX_MEMBERS = 9
5253
# TODO: should be changed when adopting cos-agent
5354
COS_AGENT_RELATION_NAME = "metrics-endpoint"

0 commit comments

Comments
 (0)