API Server Changes

This commit includes all the changes needed for APIServer. Instead of modifying the existing signatures for the methods which either generate or return stopChannel, we generate a context from the channel and use the generated context to be passed to the controllers which are started in APIServer. This ensures we don't have to touch APIServer dependencies.
This commit is contained in:
Ravi Gudimetla
2022-03-07 09:20:45 -05:00
parent e777f72163
commit 8b84a793b3
14 changed files with 122 additions and 66 deletions

View File

@@ -17,6 +17,7 @@ limitations under the License.
package app
import (
"context"
"errors"
"fmt"
"reflect"
@@ -95,8 +96,18 @@ func BuildAuthn(client authenticationclient.AuthenticationV1Interface, authn kub
}
return authenticator, func(stopCh <-chan struct{}) {
// generate a context from stopCh. This is to avoid modifying files which are relying on this method
// TODO: See if we can pass ctx to the current method
ctx, cancel := context.WithCancel(context.Background())
go func() {
select {
case <-stopCh:
cancel() // stopCh closed, so cancel our context
case <-ctx.Done():
}
}()
if dynamicCAContentFromFile != nil {
go dynamicCAContentFromFile.Run(1, stopCh)
go dynamicCAContentFromFile.Run(ctx, 1)
}
}, err
}