Skip to content

Commit 23253dd

Browse files
ravindk89feorlenallanrogerrdjwfyi
authored
DOCS-1273: Operator 6.0.0 Deploy/Upgrade docs, removing Console references (#1284)
Addresses #1273 # Summary This pass does three things: 1. Updates all tutorials related to Operator/Tenant deployment for Kustomize and Helm 2. Removes references to Operator Console + updates to reference Kustomize/Helm wherever possible 3. Slightly tidies up old or dangling references This pass does not do these things: - Link out heavily to Kubernetes docs (for later) - Clean up organization (singleplat build handles this) - Addresses OpenShift, Rancher, etc. --------- Co-authored-by: Andrea Longo <[email protected]> Co-authored-by: Allan Roger Reid <[email protected]> Co-authored-by: Daryl White <[email protected]>
1 parent 7722414 commit 23253dd

20 files changed

+955
-1372
lines changed

Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ sync-operator-version:
174174
@echo "Retrieving latest Operator version"
175175
@$(eval OPERATOR = $(shell curl --retry 10 -Ls -o /dev/null -w "%{url_effective}" https://github.com/minio/operator/releases/latest | sed "s/https:\/\/github.com\/minio\/operator\/releases\/tag\///" | sed "s/v//"))
176176
@$(eval kname = $(shell uname -s))
177+
@$(eval K8SFLOOR = $(shell curl -sL https://raw.githubusercontent.com/minio/operator/master/testing/kind-config-floor.yaml | grep -F -m 1 'node:v' | awk 'BEGIN { FS = ":" } ; {print $$3}'))
177178

178179
@echo "Updating Operator to ${OPERATOR}"
179180

@@ -182,9 +183,11 @@ sync-operator-version:
182183
@case "${kname}" in \
183184
"Darwin") \
184185
sed -i "" "s|OPERATOR|${OPERATOR}|g" source/conf.py;\
186+
sed -i "" "s|K8SFLOOR|${K8SFLOOR}|g" source/conf.py; \
185187
;; \
186188
*) \
187189
sed -i "s|OPERATOR|${OPERATOR}|g" source/conf.py; \
190+
sed -i "s|K8SFLOOR|${K8SFLOOR}|g" source/conf.py; \
188191
;; \
189192
esac
190193

source/_static/scss/includes/_misc.scss

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -379,4 +379,16 @@ figcaption {
379379
table thead tr.header {
380380
background-color: lightgray;
381381
box-shadow: none;
382+
}
383+
384+
// --------------------------------------
385+
// Improving readability of ordered lists
386+
// --------------------------------------
387+
388+
div.procedure ol.arabic li > p:first-child {
389+
font-weight: bold;
390+
}
391+
392+
div.procedure ol.arabic li ul.simple li p {
393+
font-weight: normal; // stupid hack, not sure how else to fix this
382394
}

source/administration/console/managing-deployment.rst

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@ You can use the MinIO Console to perform many of the deployment monitoring and m
1818
- Set up :ref:`site replication <minio-console-site-replication>` to synchronize datacenters for timely access across geographically dispersed workforces or for disaster preparedness.
1919
- Configure deployment :ref:`settings <minio-console-settings>`.
2020

21+
.. important::
22+
23+
The MinIO Console is a web-based interface for the MinIO Server.
24+
25+
It is distinct and independent from the MinIO Kubernetes Operator Console which was deprecated and removed as of Operator 6.0.0.
26+
2127
.. _minio-console-monitoring:
2228

2329
Monitoring
@@ -62,8 +68,6 @@ Audit
6268

6369
The Audit Log section provides an interface for viewing :ref:`audit logs <minio-logging>` collected by a configured PostgreSQL service.
6470

65-
The Audit Logging feature is configured and enabled automatically for MinIO deployments created using the :ref:`MinIO Operator Console <minio-operator-console>`.
66-
6771
Trace
6872
~~~~~
6973

source/default-conf.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,10 +331,12 @@
331331
.. |SNSD| replace:: :abbr:`SNSD (Single-Node Single-Drive)`
332332
.. |SNMD| replace:: :abbr:`SNMD (Single-Node Multi-Drive)`
333333
.. |MNMD| replace:: :abbr:`MNMD (Multi-Node Multi-Drive)`
334-
.. |operator-version-stable| replace:: 5.0.15
334+
335+
.. |operator-version-stable| replace:: OPERATOR
335336
.. |helm-charts| replace:: `Helm Charts <https://github.com/minio/operator/tree/vOPERATOR/helm>`__
336337
.. |helm-operator-chart| replace:: `Helm Operator Charts <https://github.com/minio/operator/blob/vOPERATOR/helm/operator>`__
337338
.. |helm-tenant-chart| replace:: `Helm Tenant Charts <https://github.com/minio/operator/tree/vOPERATOR/helm/tenant>`__
339+
.. |k8s-floor| replace:: K8SFLOOR
338340
339341
.. |cpp-sdk-version| replace:: CPPVERSION
340342
.. |dotnet-sdk-version| replace:: DOTNETVERSION

source/includes/common/common-install-operator-kustomize.rst

Lines changed: 5 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -66,42 +66,6 @@ The following procedure uses ``kubectl -k`` to install the Operator from the Min
6666

6767
.. _minio-k8s-deploy-operator-access-console:
6868

69-
#. *(Optional)* Configure access to the Operator Console service
70-
71-
The Operator Console service does not automatically bind or expose itself for external access on the Kubernetes cluster.
72-
You must instead configure a network control plane component, such as a load balancer or ingress, to grant that external access.
73-
74-
For testing purposes or short-term access, expose the Operator Console service through a NodePort using the following patch:
75-
76-
.. code-block:: shell
77-
:class: copyable
78-
79-
kubectl patch service -n minio-operator console -p '
80-
{
81-
"spec": {
82-
"ports": [
83-
{
84-
"name": "http",
85-
"port": 9090,
86-
"protocol": "TCP",
87-
"targetPort": 9090,
88-
"nodePort": 30090
89-
},
90-
{
91-
"name": "https",
92-
"port": 9443,
93-
"protocol": "TCP",
94-
"targetPort": 9443,
95-
"nodePort": 30433
96-
}
97-
],
98-
"type": "NodePort"
99-
}
100-
}'
101-
102-
The patch command should output ``service/console patched``.
103-
You can now access the service through ports ``30433`` (HTTPS) or ``30090`` (HTTP) on any of your Kubernetes worker nodes.
104-
10569
#. Verify the Operator installation
10670

10771
Check the contents of the specified namespace (``minio-operator``) to ensure all pods and services have started successfully.
@@ -123,7 +87,6 @@ The following procedure uses ``kubectl -k`` to install the Operator from the Min
12387
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
12488
service/operator ClusterIP 10.43.135.241 <none> 4221/TCP 5m20s
12589
service/sts ClusterIP 10.43.117.251 <none> 4223/TCP 5m20s
126-
service/console NodePort 10.43.235.38 <none> 9090:30090/TCP,9443:30433/TCP 5m20s
12790
12891
NAME READY UP-TO-DATE AVAILABLE AGE
12992
deployment.apps/console 1/1 1 1 5m20s
@@ -133,63 +96,10 @@ The following procedure uses ``kubectl -k`` to install the Operator from the Min
13396
replicaset.apps/console-56c7d8bd89 1 1 1 5m20s
13497
replicaset.apps/minio-operator-6c758b8c45 2 2 2 5m20s
13598
136-
#. Retrieve the Operator Console JWT for login
137-
138-
.. code-block:: shell
139-
:class: copyable
140-
141-
kubectl apply -f - <<EOF
142-
apiVersion: v1
143-
kind: Secret
144-
metadata:
145-
name: console-sa-secret
146-
namespace: minio-operator
147-
annotations:
148-
kubernetes.io/service-account.name: console-sa
149-
type: kubernetes.io/service-account-token
150-
EOF
151-
SA_TOKEN=$(kubectl -n minio-operator get secret console-sa-secret -o jsonpath="{.data.token}" | base64 --decode)
152-
echo $SA_TOKEN
153-
154-
The output of this command is the JSON Web Token (JWT) login credential for Operator Console.
155-
156-
#. Log into the MinIO Operator Console
157-
158-
159-
.. tab-set::
160-
161-
.. tab-item:: NodePort
162-
:selected:
163-
164-
If you configured the service for access through a NodePort, specify the hostname of any worker node in the cluster with that port as ``HOSTNAME:NODEPORT`` to access the Console.
165-
166-
For example, a deployment configured with a NodePort of 30090 and the following ``InternalIP`` addresses can be accessed at ``http://172.18.0.5:30090``.
167-
168-
.. code-block:: shell
169-
:class: copyable
170-
171-
kubectl get nodes -o custom-columns=IP:.status.addresses[:]
172-
IP
173-
map[address:172.18.0.5 type:InternalIP],map[address:k3d-MINIO-agent-3 type:Hostname]
174-
map[address:172.18.0.6 type:InternalIP],map[address:k3d-MINIO-agent-2 type:Hostname]
175-
map[address:172.18.0.2 type:InternalIP],map[address:k3d-MINIO-server-0 type:Hostname]
176-
map[address:172.18.0.4 type:InternalIP],map[address:k3d-MINIO-agent-1 type:Hostname]
177-
map[address:172.18.0.3 type:InternalIP],map[address:k3d-MINIO-agent-0 type:Hostname]
178-
179-
.. tab-item:: Ingress or Load Balancer
180-
181-
If you configured the ``svc/console`` service for access through ingress or a cluster load balancer, you can access the Console using the configured hostname and port.
182-
183-
.. tab-item:: Port Forwarding
184-
185-
You can use ``kubectl port forward`` to temporary forward ports for the Console:
186-
187-
.. code-block:: shell
188-
:class: copyable
189-
190-
kubectl port-forward svc/console -n minio-operator 9090:9090
99+
#. Next Steps
191100

192-
You can then use ``http://localhost:9090`` to access the MinIO Operator Console.
101+
You can deploy MinIO tenants using the :ref:`MinIO CRD and Kustomize. <minio-k8s-deploy-minio-tenant>`
102+
MinIO also provides a :ref:`Helm chart for deploying Tenants <deploy-tenant-helm>`.
193103

194-
Once you access the Console, use the Console JWT to log in.
195-
You can now :ref:`deploy and manage MinIO Tenants using the Operator Console <deploy-minio-distributed>`.
104+
MinIO recommends using the same method of Tenant deployment and management used to install the Operator.
105+
Mixing Kustomize and Helm for Operator or Tenant management may increase operational complexity.

source/includes/common/common-k8s-connect-operator-console-no-plugin.rst

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
The Operator Console service does not automatically bind or expose itself for external access on the Kubernetes cluster.
22
Instead, you must configure a network control plane component, such as a load balancer or ingress, to grant external access.
33

4-
.. cond:: k8s
5-
64
For testing purposes or short-term access, expose the Operator Console service through a NodePort using the following patch:
75

86
.. code-block:: shell

source/includes/k8s/deploy-operator.rst

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,15 @@ While this documentation *may* provide guidance for configuring or deploying Kub
3131
MinIO Operator Components
3232
-------------------------
3333

34-
The MinIO Operator exists in its own namespace.
35-
Within the Operator's namespace, the MinIO Operator utilizes two pods:
34+
The MinIO Operator exists in its own namespace in which it creates Kubernetes resources.
35+
Those resources includes pods, services, replicasets, and deployments.
3636

37-
- The Operator pod for the base Operator functions to deploy, manage, modify, and maintain tenants.
38-
- Console pod for the Operator's Graphical User Interface, the Operator Console.
37+
The Operator pods monitor all namespaces by default for objects using the MinIO CRD and manages those resources automatically.
3938

4039
When you use the Operator to create a tenant, the tenant *must* have its own namespace.
4140
Within that namespace, the Operator generates the pods required by the tenant configuration.
4241

43-
Each pod runs three containers:
42+
Each Tenant pod runs three containers:
4443

4544
- MinIO Container that runs all of the standard MinIO functions, equivalent to basic MinIO installation on baremetal.
4645
This container stores and retrieves objects in the provided mount points (persistent volumes).
@@ -51,32 +50,29 @@ Each pod runs three containers:
5150
- SideCar container that monitors configuration secrets for the tenant and updates them as they change.
5251
This container also monitors for root credentials and creates an error if it does not find root credentials.
5352

54-
Starting with v5.0.6, the MinIO Operator supports custom :kube-docs:`init containers <concepts/workloads/pods/init-containers>` for additional pod initialization that may be required for your environment.
55-
5653
The tenant utilizes Persistent Volume Claims to talk to the Persistent Volumes that store the objects.
5754

58-
.. image:: /images/k8s/OperatorsComponent-Diagram.png
59-
:width: 600px
60-
:alt: A diagram of the namespaces and pods used by or maintained by the MinIO Operator.
61-
:align: center
55+
.. Image references Console pods, need to fix this up
56+
57+
.. .. image:: /images/k8s/OperatorsComponent-Diagram.png
58+
.. :width: 600px
59+
.. :alt: A diagram of the namespaces and pods used by or maintained by the MinIO Operator.
60+
.. :align: center
6261
6362
.. _minio-operator-prerequisites:
6463

6564
Prerequisites
6665
-------------
6766

68-
Kubernetes Version 1.21.0
69-
~~~~~~~~~~~~~~~~~~~~~~~~~
70-
71-
.. important::
67+
Kubernetes Version |k8s-floor|
68+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7269

73-
MinIO **strongly recommends** upgrading Production clusters running `End-Of-Life <https://kubernetes.io/releases/patch-releases/#non-active-branch-history>`__ Kubernetes APIs.
70+
MinIO tests |operator-version-stable| against a floor of Kubernetes API of |k8s-floor|.
71+
MinIO **strongly recommends** maintaining Kubernetes infrastructure using `actively maintained Kubernetes API versions <https://kubernetes.io/releases/>`__.
7472

75-
Starting with v5.0.0, MinIO **requires** Kubernetes 1.21.0 or later for both the infrastructure and the ``kubectl`` CLI tool.
7673

77-
.. versionadded:: Operator 5.0.6
74+
MinIO **strongly recommends** upgrading Kubernetes clusters running with `End-Of-Life API versions <https://kubernetes.io/releases/patch-releases/#non-active-branch-history>`__
7875

79-
For Kubernetes 1.25.0 and later, MinIO supports deploying in environments with the :kube-docs:`Pod Security admission (PSA) <concepts/security/pod-security-admission>` ``restricted`` policy enabled.
8076

8177

8278
Kustomize and ``kubectl``
@@ -100,7 +96,7 @@ Kubernetes TLS Certificate API
10096
The MinIO Operator manages TLS Certificate Signing Requests (CSR) using the Kubernetes ``certificates.k8s.io`` :kube-docs:`TLS certificate management API <tasks/tls/managing-tls-in-a-cluster/>` to create signed TLS certificates in the following circumstances:
10197

10298
- When ``autoCert`` is enabled.
103-
- For the MinIO Console when the :envvar:`MINIO_CONSOLE_TLS_ENABLE` environment variable is set to ``on``.
99+
- For the MinIO Tenant Console when the :envvar:`MINIO_CONSOLE_TLS_ENABLE` environment variable is set to ``on``.
104100
- For :ref:`STS service <minio-security-token-service>` when :envvar:`OPERATOR_STS_ENABLED` environment variable is set to ``on``.
105101
- For retrieving the health of the cluster.
106102

source/includes/k8s/steps-configure-keycloak-identity-management.rst

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -37,59 +37,11 @@ Set the value to any :ref:`policy <minio-policy>` on the MinIO deployment.
3737

3838
MinIO supports multiple methods for configuring Keycloak authentication:
3939

40-
- Using the MinIO Operator Console
4140
- Using the MinIO Tenant Console
4241
- Using a terminal/shell and the :mc:`mc idp openid` command
4342

4443
.. tab-set::
4544

46-
.. tab-item:: MinIO Operator Console
47-
48-
You can use the MinIO Operator Console to configure Keycloak as the External Identity Provider for the MinIO Tenant.
49-
See :ref:`minio-operator-console-connect` for specific instructions.
50-
51-
Select :guilabel:`Identity Provider` from the left-hand navigation bar, then select :guilabel:`OpenID`.
52-
Select :guilabel:`Create Configuration` to create a new configuration.
53-
54-
Enter the following information into the modal:
55-
56-
.. list-table::
57-
:stub-columns: 1
58-
:widths: 30 70
59-
:width: 100%
60-
61-
* - :guilabel:`Name`
62-
- Enter a unique name for the Keycloak instance
63-
64-
* - :guilabel:`Config URL`
65-
- Specify the address of the Keycloak OpenID configuration document (|KEYCLOAK_URL|)
66-
67-
Ensure the ``REALM`` matches the Keycloak realm you want to use for authenticating users to MinIO
68-
69-
* - :guilabel:`Client ID`
70-
- Specify the name of the Keycloak client created in Step 1
71-
72-
* - :guilabel:`Client Secret`
73-
- Specify the secret credential value for the Keycloak client created in Step 1
74-
75-
* - :guilabel:`Display Name`
76-
- Specify the user-facing name the MinIO Console should display as part of the Single-Sign On (SSO) workflow for the configured Keycloak service
77-
78-
* - :guilabel:`Scopes`
79-
- Specify the OpenID scopes to include in the JWT, such as ``preferred_username`` or ``email``
80-
81-
You can reference these scopes using supported OpenID policy variables for the purpose of programmatic policy configurations
82-
83-
* - :guilabel:`Redirect URI Dynamic`
84-
- Toggle to ``on``
85-
86-
Substitutes the MinIO Console address used by the client as part of the Keycloak redirect URI.
87-
Keycloak returns authenticated users to the Console using the provided URI.
88-
89-
For MinIO Console deployments behind a reverse proxy, load balancer, or similar network control plane, you can instead use the :envvar:`MINIO_BROWSER_REDIRECT_URL` variable to set the redirect address for Keycloak to use.
90-
91-
Select :guilabel:`Save` to apply the configuration.
92-
9345
.. tab-item:: MinIO Tenant Console
9446

9547
You can use the MinIO Tenant Console to configure Keycloak as the External Identity Provider for the MinIO Tenant.

source/includes/openshift/deploy-minio-on-openshift.rst

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ Once installation completes, click :guilabel:`View Operator` to view the MinIO O
133133
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
134134

135135
If you have installed the MinIO Operator from Red Hat OperatorHub, the installation process also configures the :openshift-docs:`OpenShift Service CA Operator <security/certificate_types_descriptions/service-ca-certificates.html>`.
136-
This Operator manages the TLS certificates required to access the MinIO Operator Console and Tenants.
136+
This Operator manages the TLS certificates required to access MinIO Tenants.
137137
It automatically renews and rotates the certificates 13 months before expiration.
138138
No additional action is required.
139139

@@ -287,29 +287,8 @@ You can find the MinIO Operator Interface from the :guilabel:`Operators` left-ha
287287
3. Select :guilabel:`MinIO Operators` from the list of installed operators.
288288
The :guilabel:`Status` column must read :guilabel:`Success` to access the Operator interface.
289289

290-
5) Access the Operator Console
291-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
292290

293-
The MinIO Operator includes the Operator Console, a browser-based management interface for managed MinIO tenants.
294-
295-
.. include:: /includes/common/common-k8s-connect-operator-console.rst
296-
297-
You can create a permanent routing rule by creating a :openshift-docs:`Route or Ingress <networking/understanding-networking.html#nw-ne-comparing-ingress-route_understanding-networking>` to allow access from external clients, such as your local computer browser.
298-
299-
The following steps provides a summary of actions necessary to create a Route.
300-
301-
#. From :guilabel:`Networking`, go to :guilabel:`Routes`
302-
#. Create a new Route in the MinIO Operator project.
303-
Select a recognizable route name, such as ``operator-console-route``.
304-
#. Set the :guilabel:`Hostname` as per your organizations networking and hostname topology.
305-
Omit the hostname to allow OpenShift to generate it automatically
306-
#. Set the :guilabel:`Service` to :guilabel:`console`
307-
#. Set the :Guilabel:`Target Port` to ``9090``
308-
309-
You can then access the Operator Console using the configured Route.
310-
The Operator Console still requires using the generated JWT token for access, which you can generate at any time using ``oc minio port-forward``.
311-
312-
6) Next Steps
291+
5) Next Steps
313292
~~~~~~~~~~~~~
314293

315294
After deploying the MinIO Operator, you can create a new MinIO Tenant.

source/operations/concepts.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,8 @@ There are several options to manage your MinIO deployments and clusters:
132132

133133
- Use the command line with :mc:`mc` and :mc:`mc admin`
134134
- The :ref:`MinIO Console <minio-console>` graphical user interface for individual instances
135-
- In Kubernetes, with the :ref:`MinIO Operator Console <minio-operator-console>`
135+
136+
.. Reference Enterprise Operator Console eventually
136137
137138
.. _minio-rebalance:
138139

0 commit comments

Comments
 (0)