-
Notifications
You must be signed in to change notification settings - Fork 409
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BUG 1670700: *: add support for etcd metrics proxy #517
Conversation
@hexfusion could you please also add a target for these PRs (4.0 or 4.1 or next)? We're after freeze and if this is a feature I'd love someone like Clayton or Derek or Eric or others to approve |
/hold |
Is this for 4.0 or 4.1? |
As mentioned in openshift/installer#1291, this needs to land in 4.0. |
e2es are failing with starting kube though, could you take a look? /retest |
working through this now |
I am building
But bootstrap wants different so back to the installer.
|
935cc96
to
d308d79
Compare
/test e2e-aws |
We have a little bit of a chicken and egg issue here :) as bootstrap depends on itself from the installer. |
RootCAData []byte `json:"rootCAData"` | ||
|
||
// Metrics | ||
EtcdMetricsServerCertData []byte `json:"etcdMetricsServerCertData"` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would like to use objectrefs for secret object.
} | ||
) | ||
|
||
func init() { | ||
rootCmd.AddCommand(bootstrapCmd) | ||
bootstrapCmd.PersistentFlags().StringVar(&bootstrapOpts.etcdCAFile, "etcd-ca", "/etc/ssl/etcd/ca.crt", "path to etcd CA certificate") | ||
bootstrapCmd.PersistentFlags().StringVar(&bootstrapOpts.etcdMetricsCAFile, "etcd-metrics-ca", "", "path to etcd metrics CA certificate") | ||
bootstrapCmd.PersistentFlags().StringVar(&bootstrapOpts.etcdMetricsServerCertFile, "etcd-metrics-server-crt", "", "path to etcd metrics server certificate") | ||
bootstrapCmd.PersistentFlags().StringVar(&bootstrapOpts.etcdMetricsServerKeyFile, "etcd-metrics-server-key", "", "path to etcd metrics server key") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AIUI, these flags should provide a dummy/default value for this PR to not depend on the installer. After this goes in, you can land the installer PR and then create another PR here to remove the dummy/default value to always honor what bootkube gives you.
(this is not changing or adding images from the release payload so it should be an easier dance)
/cc @cgwalters
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok sounds good that was my thought as well.
I can see the metrics client cert in the e2e test artifacts 🎉 now just need to satisfy CI I guess :) |
@abhinavdahiya PTAL /cc @brancz |
@hexfusion does this have/need an exception granted? cc: @runcom |
Yeah @kikisdeliveryservice monitoring will chime in, probably tomorrow. |
/approve Note that I do not have the authority to grant exceptions though! This must be done higher level. |
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
We have a confirmation on this exception from @derekwaynecarr. /cc @runcom |
just saw that, thanks /lgtm |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: hexfusion, runcom, s-urbaniak The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
/hold cancel |
@runcom @hexfusion awesome, thanks for the hard work ... now let's see if etcd appears in monitoring! 🎉 |
This PR adds support for new TLS assets to support the etcd metrics proxy. This proxy will create a separate chain of trust for metrics consumer which will not give allow access to server data directly. The proxy itself is a feature of etcd called the
grpc-proxy
. By exposing a separate metrics port on the server and then using the proxy to listen to that port we eliminate direct gRPC transactions.The grpc-proxy forwards only
/metrics
endpoint requests to the server./cc @brancz @abhinavdahiya
depends on: openshift/installer#1291 merged