- Tokens must be tracked per service, only updated tokens must be sent to task managers
- Dynamic token initialization from user code must be added
package org.apache.flink.api.common.security;
/**
* Manager for obtaining delegation tokens dynamically at runtime.
* This allows user code to request tokens for services not known at cluster startup.
Python is not able to handle 2 different versions from the same package.
When Pip <20.3 finds an unresolvable dependency (resolves a dependecy to 2+ versions) then would not halt the installation process.
It’d successfully continue the process by installing the first matching dependency in the list of conflicts.
@SuppressWarnings("unchecked")
public static void setEnv(String key, String value) {
try {
Map<String, String> env = System.getenv();
Class<?> cl = env.getClass();
Field field = cl.getDeclaredField("m");
field.setAccessible(true);
Map<String, String> writableEnv = (Map<String, String>) field.get(env);
writableEnv.put(key, value);
$ kubectl get cert
NAME READY SECRET AGE
flink-operator-serving-cert True webhook-server-cert 91m
- Install any container system like docker/Virtualbox/hyperkit
- Install minikube
mkdir -p ${HOME}/sharechmod 777 ${HOME}/shareminikube start --mount-string="${HOME}/share:/share" --mountkubectl create clusterrolebinding flink-role-binding-default --clusterrole=edit --serviceaccount=default:defaultkubectl create -f https://github.com/jetstack/cert-manager/releases/download/v1.8.2/cert-manager.yaml
Clone the necessary repos:
sun.net.www.protocol.http.NegotiateAuthentication caches per host (and no port information in the key)
whether negotiation is supported or not (for instance SPNEGO). Worth to mention the cache is static (god knows why).
This is so far so good but can lead to issues in unit tests. For example:
- Developer writes a positive and negative test case for an SPNEGO protected server
- Normally the order of test cases are not defined
- Negative test case executes where SPNEGO turned off and expect 401
NegotiateAuthenticationstores false in a map- Negative test case pass
- Positive test case executes where SPNEGO turned on and expect 200
NegotiateAuthenticationgives baseisSupported=falsefrom cache
NewerOlder