`MCS` will authenticate against `Mkube`using bearer tokens via HTTP `Authorization` header. The user will provide this token once in the login form, MCS will validate it against Mkube (list tenants) and if valid will generate and return a new MCS sessions with encrypted claims (the user Service account token will be inside the JWT in the data field) Kubernetes The provided `JWT token` corresponds to the `Kubernetes service account` that `Mkube` will use to run tasks on behalf of the user, ie: list, create, edit, delete tenants, storage class, etc. Development If you are running mcs in your local environment and wish to make request to `Mkube` you can set `MCS_M3_HOSTNAME`, if the environment variable is not present by default `MCS` will use `"http://m3:8787"`, additionally you will need to set the `MCS_MKUBE_ADMIN_ONLY=on` variable to make MCS display the Mkube UI Extract the Service account token and use it with MCS For local development you can use the jwt associated to the `m3-sa` service account, you can get the token running the following command in your terminal: ``` kubectl get secret $(kubectl get serviceaccount m3-sa -o jsonpath="{.secrets[0].name}") -o jsonpath="{.data.token}" | base64 --decode ``` Then run the mcs server ``` MCS_M3_HOSTNAME=http://localhost:8787 MCS_MKUBE_ADMIN_ONLY=on ./mcs server ``` Self-signed certificates and Custom certificate authority for Mkube If Mkube uses TLS with a self-signed certificate, or a certificate issued by a custom certificate authority you can add those certificates usinng the `MCS_M3_SERVER_TLS_CA_CERTIFICATE` env variable ```` MCS_M3_SERVER_TLS_CA_CERTIFICATE=cert1.pem,cert2.pem,cert3.pem ./mcs server ````
31 lines
1.1 KiB
Modula-2
31 lines
1.1 KiB
Modula-2
module github.com/minio/mcs
|
|
|
|
go 1.13
|
|
|
|
require (
|
|
github.com/coreos/go-oidc v2.2.1+incompatible
|
|
github.com/dgrijalva/jwt-go v3.2.0+incompatible
|
|
github.com/elazarl/go-bindata-assetfs v1.0.0
|
|
github.com/go-openapi/errors v0.19.4
|
|
github.com/go-openapi/loads v0.19.5
|
|
github.com/go-openapi/runtime v0.19.12
|
|
github.com/go-openapi/spec v0.19.7
|
|
github.com/go-openapi/strfmt v0.19.5
|
|
github.com/go-openapi/swag v0.19.8
|
|
github.com/go-openapi/validate v0.19.7
|
|
github.com/gorilla/websocket v1.4.2
|
|
github.com/jessevdk/go-flags v1.4.0
|
|
github.com/json-iterator/go v1.1.9
|
|
github.com/minio/cli v1.22.0
|
|
github.com/minio/mc v0.0.0-20200515235434-3b479cf92ed6
|
|
github.com/minio/minio v0.0.0-20200603201854-5686a7e27319
|
|
github.com/minio/minio-go/v6 v6.0.56
|
|
github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35 // indirect
|
|
github.com/satori/go.uuid v1.2.0
|
|
github.com/stretchr/testify v1.5.1
|
|
github.com/unrolled/secure v1.0.7
|
|
golang.org/x/crypto v0.0.0-20200214034016-1d94cc7ab1c6
|
|
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e
|
|
golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a
|
|
)
|