Authentication
If you want to experiment with kopeio authentication, you can use . However please be aware that kopeio authentication has not yet been formally released, and thus there is not a lot of upstream documentation.
Alternatively, you can add this block to your cluster:
For example:
apiVersion: kops.k8s.io/v1alpha2
kind: Cluster
metadata:
name: cluster.example.com
spec:
authentication:
kopeio: {}
authorization:
AWS IAM Authenticator
For example:
apiVersion: kops.k8s.io/v1alpha2
kind: Cluster
metadata:
spec:
authentication:
aws: {}
authorization:
rbac: {}
If no backendMode
is configured, by default the aws-iam-authenticator
will require the creation of an AWS IAM authenticator config as a ConfigMap. For more details on AWS IAM authenticator please visit
Example config using a ConfigMap:
This requires an aws-iam-authenticator image >= 0.5.0 For more information see usergroup-mappings
authentication:
aws:
backendMode: CRD,MountedFile
When setting the backendMode
configuration to CRD
, it is possible to provide a list of inline AWS IAM identity mappings in the cluster template.
- Create a cluster following the
- When you reach the “Customize Cluster Configuration” section of the guide modify the cluster spec and add the Authentication and Authorization configs to the YAML config.
- Optionally set the
backendMode: CRD
and configure the identityMappings inline. - Continue following the cluster creation guide to build the cluster.
- :warning: When no
backendMode
is configured (or it is set toMountedFile
) and the cluster first comes up the aws-iam-authenticator PODs will be in a bad state as it is trying to find the aws-iam-authenticator ConfigMap and we have not yet created it.
- :warning: When no
If no backendMode
is configured, or it is set to `MountedFile, the following additional steps are necessary:
- Once the cluster is up, you’ll need to create an aws-iam-authenticator configMap on the cluster
kubectl apply -f aws-iam-authenticator_example-config.yaml
-
kubectl get pods -n kube-system | grep aws-iam-authenticator | awk '{print $1}' | xargs kubectl delete pod -n kube-system
Turning on IAM Authenticator on an existing cluster.
- Create an aws-iam-authenticator configMap on the cluster
kubectl apply -f aws-iam-authenticator_example-config.yaml
- Edit the clusters configuration
kops edit cluster ${NAME}
and add the Authentication and Authorization configs to the YAML config. - Update the clusters configuration
kops update cluster ${CLUSTER_NAME} --yes
- Temporarily disable aws-iam-authenticator DaemonSet
kubectl patch daemonset -n kube-system aws-iam-authenticator -p '{"spec": {"template": {"spec": {"nodeSelector": {"disable-aws-iam-authenticator": "true"}}}}}'
- Re-enable aws-iam-authenticator DaemonSet
kubectl patch daemonset -n kube-system aws-iam-authenticator --type json -p='[{"op": "remove", "path": "/spec/template/spec/nodeSelector/disable-aws-iam-authenticator"}]'