Install Krew
(
set -x; cd "$(mktemp -d)" &&
OS="$(uname | tr '[:upper:]' '[:lower:]')" &&
ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" &&
KREW="krew-${OS}_${ARCH}" &&
curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" &&
tar zxvf "${KREW}.tar.gz" &&
./"${KREW}" install krew
)
# add this to ~/.profile
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
Install the Operator
Installation?
kubectl krew update
kubectl krew install minio
kubectl minio version
kubectl minio init
kubectl get pods -n minio-operator
API Access
Is actually located under the minio general service. I thought the API would get it’s own pods and service per tenant, however it is a general service that streams down to every tenant based on access keys/ and secret keys.
This api gets assigned a LoadBalancer IP which looks like the following:
minio LoadBalancer 10.102.11.139 10.0.1.241 443:32582/TCP 4d19h
Ruby/AWS API for Remote Access
Aws.config.update(
endpoint: 'https://10.0.1.241',
access_key_id: 'jmoore53',
secret_access_key: 'jmoore53',
force_path_style: true,
region: 'us-east-1',
ssl_verify_peer: false
)
rubys3_client = Aws::S3::Client.new
rubys3_client.put_object(
key: 'testobject',
body: 'Hello from MinIO!!',
bucket: 'test',
content_type: 'text/plain'
)
rubys3_client.get_object(
bucket: 'test',
key: 'testobject',
response_target: 'download_testobject'
)
# DNS was working with the AWS Cli...
aws --no-verify-ssl --endpoint-url https://minio.k8stest.jmoore53.com s3 ls