Skip to content

Commit f3ca7e4

Browse files
authored
Merge pull request #273 from stakater/changelog-to-main
Changelog to main
2 parents 3028e8c + 2863be3 commit f3ca7e4

File tree

6 files changed

+56
-8
lines changed

6 files changed

+56
-8
lines changed

content/changelog.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,18 @@
2626
- Fix a bug in sandbox creations where sandbox namespaces were not being created if there were only groups in the tenant.
2727
- Fix for IC controller where it would not reconcile if the cluster had too many Configmaps, making the informer cache too big to be watched.
2828

29+
#### Pre-Upgrade Checklist
30+
31+
Before upgrading to v1.1.0, perform the following steps:
32+
33+
- Disable `console` in the integration config.
34+
- Remove the `tenant-operator-casbin-config` Configmap from the `multi-tenant-operator` namespace, if it exists.
35+
36+
#### Post-Upgrade Checklist
37+
38+
- Enable `console` in the integration config. [Link](./installation/openshift.md#enabling-console)
39+
- If the `prometheus-server` pod is failing, ensure that only one `prometheus-server` deployment exists in the `multi-tenant-operator` namespace. If multiple deployments exist, delete the older one.
40+
2941
#### Components
3042

3143
| Name | Tag | Image |

content/crds-api-reference/integration-config.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ Integration config will be managing the following resources required for console
202202
- `Prometheus` resources
203203
- `Opencost` resources
204204
- `MTO Console, Gateway, Keycloak` resources
205-
- `Showback` cron job
205+
- `Showback` cron-job
206206

207207
Details on console GUI and showback can be found [here](../explanation/console.md)
208208

@@ -346,7 +346,7 @@ This field contains roles that will be used to create default `roleBindings` for
346346

347347
##### Custom
348348

349-
An array of custom roles. Similar to the `default` field, you can mention roles within this field as well. However, the custom roles also require the use of a `labelSelector` for each iteration within the array. The roles mentioned here will only apply to the namespaces that are matched by the labelSelector. If a namespace is matched by 2 different `labelSelectors`, then both roles will apply to it. Additionally, roles can be skipped within the labelSelector. These missing roles are then inherited from the `default` roles field . For example, if the following custom roles arrangement is used:
349+
An array of custom roles. Similar to the `default` field, you can mention roles within this field as well. However, the custom roles also require the use of a `labelSelector` for each iteration within the array. The roles mentioned here will only apply to the namespaces that are matched by the `labelSelector`. If a namespace is matched by 2 different `labelSelectors`, then both roles will apply to it. Additionally, roles can be skipped within the `labelSelector`. These missing roles are then inherited from the `default` roles field . For example, if the following custom roles arrangement is used:
350350

351351
```yaml
352352
custom:

content/crds-api-reference/template.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,11 +100,46 @@ resources:
100100
chart:
101101
repository:
102102
name: redis
103+
version: 14.6.0
103104
repoUrl: https://charts.bitnami.com/bitnami
105+
username:
106+
key: username
107+
name: redis-creds
108+
namespace: namespace-n1
109+
password:
110+
key: password
111+
name: redis-creds
112+
namespace: namespace-n1
113+
setValues:
114+
- name: port
115+
value: '6379'
116+
forceString: false
104117
values: |
105118
redisPort: 6379
106119
```
107120

121+
A brief explanation of the fields in the Helm section:
122+
123+
* `releaseName`: The name of the Helm release.
124+
* `chart`: The Helm chart details.
125+
* `repository`: The Helm repository details.
126+
* `name`: The name of the Helm repository.
127+
* `version`: The version of the Helm chart.
128+
* `repoUrl`: The URL of the Helm repository.
129+
* `username`: A reference to the secret containing the username for the Helm repository in case the chart is in a private repository.
130+
* `key`: The key in the secret containing the username.
131+
* `name`: The name of the secret containing the username.
132+
* `namespace`: The namespace of the secret containing the username.
133+
* `password`: A reference to the secret containing the password for the Helm repository in case the chart is in a private repository.
134+
* `key`: The key in the secret containing the password.
135+
* `name`: The name of the secret containing the password.
136+
* `namespace`: The namespace of the secret containing the password.
137+
* `setValues`: The values to set in the Helm chart.
138+
* `name`: The name of the value.
139+
* `value`: The value to set.
140+
* `forceString`: Whether to use `--set` or `--set-string` when setting the value. Default is `false` (use `--set`).
141+
* `values`: The values file for the Helm chart.
142+
108143
### 3. Resource Mapping
109144

110145
This approach maps secrets and configmaps from one tenant's namespace to another tenant's namespace, or within a tenant's namespace.

content/how-to-guides/azure-pricing.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ Next, create a secret for the Azure Service Principal
7474
When managing the service account key as a Kubernetes secret, the secret must reference the service account key JSON file, and that file must be named `service-key.json`.
7575

7676
```bash
77-
kubectl create secret generic azure-service-key -n opencost --from-file=service-key.json
77+
kubectl create secret generic azure-service-key -n multi-tenant-operator --from-file=service-key.json
7878
```
7979

8080
### Update the IntegrationConfig
@@ -130,7 +130,7 @@ As well as the billing account ID, OpenCost also needs the offer ID for your sub
130130
The billing account and offer ID need to be passed to OpenCost in environment variables. To do this, create a secret with the following values:
131131

132132
```bash
133-
kubectl create secret generic customer-specific-pricing -n opencost --from-literal=azure-billing-account=<your billing account ID> --from-literal=azure-offer-id=<your offer ID>
133+
kubectl create secret generic customer-specific-pricing -n multi-tenant-operator --from-literal=azure-billing-account=<your billing account ID> --from-literal=azure-offer-id=<your offer ID>
134134
```
135135

136136
Finally, update the IntegrationConfig with the Azure pricing model:
@@ -266,7 +266,7 @@ In this guide, we have seen how to configure OpenCost to use Azure pricing model
266266
for example:
267267

268268
```bash
269-
kubectl create secret generic azure-pricing -n opencost --from-file=service-key.json --from-literal=azure-billing-account=<your billing account ID> --from-literal=azure-offer-id=<your offer ID> --from-file=./cloud-integration.json
269+
kubectl create secret generic azure-pricing -n multi-tenant-operator --from-file=service-key.json --from-literal=azure-billing-account=<your billing account ID> --from-literal=azure-offer-id=<your offer ID> --from-file=./cloud-integration.json
270270
```
271271

272272
Update the IntegrationConfig to use the secret:

content/how-to-guides/extend-default-roles.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,5 @@ rules:
2121
- groups
2222
```
2323
24-
> Note: You can learn more about `aggregated-cluster-roles` [here](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#aggregated-clusterroles)
24+
!!! note
25+
You can learn more about `aggregated-cluster-roles` [here](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#aggregated-clusterroles)

content/installation/azure-aks.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ cert-manager-webhook-757c9d4bb7-wd9g8 1/1 Running 0 7m18s
220220

221221
Helm will be used to install MTO as it is the only available way of installing it on Kubernetes Clusters.
222222

223-
Use helm install command to install MTO helm chart. Here, `bypassedGroups` has to be set as `system:masters` as it is used by `masterclient` of AKS and `<mto-admins-id>`as it is used by the `test-admin-user`:
223+
Use helm install command to install MTO helm chart. Here, `bypassedGroups` has to be set as `system:masters` as it is used by `masterclient` of AKS and `<mto-admins-id>`as it is used by `test-admin-user`:
224224

225225
```terminal
226226
helm install tenant-operator oci://ghcr.io/stakater/public/charts/multi-tenant-operator --version 0.12.62 --namespace multi-tenant-operator --create-namespace --set bypassedGroups='system:masters\,<mto-admins-id>'
@@ -362,7 +362,7 @@ Notice that MTO has created two namespaces under each tenant.
362362

363363
### AppDev group
364364

365-
AppDev is one of the previously created groups, its scope is limited to Tenant A namespaces as we mentioned its group ID in Tenant A. Start by clearing token of test-admin-user:
365+
AppDev is one of the previously created groups, its scope is limited to Tenant A namespaces as we mentioned its group ID in Tenant A. Start by clearing token of `test-admin-user`:
366366

367367
```terminal
368368
kubelogin remove-tokens

0 commit comments

Comments
 (0)