You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: en/includes/deploy/deploy-is-in-kubernetes.md
+78-11Lines changed: 78 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -38,9 +38,55 @@ Ensure that the specified namespace exists or create a new one using the followi
38
38
kubectl get namespace $NAMESPACE|| kubectl create namespace $NAMESPACE
39
39
```
40
40
41
+
## Create a Kubernetes TLS secret
42
+
43
+
To enable secure HTTPS communication for your service (e.g., WSO2 Identity Server) within the Kubernetes cluster, you need to provide a TLS certificate and key. Kubernetes uses these to serve traffic over HTTPS using Ingress controllers or other resources that terminate TLS.
44
+
45
+
If you already have an SSL certificate and its private key (typically in .crt and .key format), you can create a Kubernetes TLS secret using the following command:
46
+
47
+
```shell
48
+
kubectl create secret tls is-tls \
49
+
--cert=path/to/cert/file \
50
+
--key=path/to/key/file \
51
+
-n $NAMESPACE
52
+
```
53
+
54
+
-`is-tls` is the name of the secret.
55
+
56
+
- Replace `path/to/cert/file` and `path/to/key/file` with the actual paths to your certificate and key.
57
+
58
+
!!! note
59
+
60
+
- Ensure that the certificate includes `localhost` as a Subject Alternative Name (SAN) to support B2B related use cases without triggering certification validation errors.
61
+
- When generating the keystore, use the default password `wso2carbon`.
62
+
63
+
## Create a Kubernetes secret for Java Keystore files
64
+
65
+
To support secure communication and cryptographic operations, the deployment requires four Java keystore files. These keystores are mounted into the container and used for tasks such as internal encryption, message signing, TLS, and trust validation.
66
+
67
+
-**Internal keystore (internal.p12):** Used for encrypting/decrypting internal data.
68
+
-**Primary keystore (primary.p12):** Certificates used for signing messages that are communicated with external parties (such as SAML, OIDC id_token signing).
69
+
-**TLS keystore (tls.p12):** Used for TLS communication.
70
+
-**Client truststore (client-truststore.p12):** Certificates of trusted third parties.
71
+
72
+
```shell
73
+
kubectl create secret generic keystores \
74
+
--from-file=internal.p12 \
75
+
--from-file=primary.p12 \
76
+
--from-file=tls.p12 \
77
+
--from-file=client-truststore.p12 \
78
+
-n $NAMESPACE
79
+
```
80
+
81
+
!!! note
82
+
83
+
- Make sure to import the public key certificates of all three keystores into the truststore (client-truststore.p12).
84
+
- To learn how to create these keystores and truststores, refer to [Create New Keystores]({{base_path}}/deploy/security/keystores/create-new-keystores/).
85
+
- The `tls.p12` file used here should contain the same certificate and key that were used to create the `is-tls` TLS secret above, to ensure consistency in TLS communication.
86
+
41
87
## Install the Helm chart
42
88
43
-
There are two ways to install the {{product_name}} Helm chart. The Helm chart source code can be found in the [kubernets-is repository](https://github.com/wso2/kubernetes-is/tree/master){:target=" _blank"}.
89
+
There are two ways to install the {{product_name}} using the Helm chart. The Helm chart source code can be found in the [kubernetes-is repository](https://github.com/wso2/kubernetes-is/tree/master){:target=" _blank"}.
44
90
45
91
### Option 1: Install the chart from the Helm repository
46
92
1. Add the WSO2 Helm chart repository
@@ -54,21 +100,23 @@ There are two ways to install the {{product_name}} Helm chart. The Helm chart so
54
100
2. Install the Helm chart from the Helm repository.
@@ -99,11 +147,12 @@ If you prefer to build the chart from the source, follow the steps below:
99
147
2. Install the Helm chart from the cloned repository:
100
148
101
149
```shell
102
-
helm install "$RELEASE_NAME" -n "$NAMESPACE". \
150
+
helm install $RELEASE_NAME -n $NAMESPACE. \
103
151
--set deployment.image.registry="wso2" \
104
152
--set deployment.image.repository="wso2is" \
105
153
--set deployment.image.tag="{{is_version}}" \
106
-
--set deployment.apparmor.enabled="false"
154
+
--set deployment.apparmor.enabled="false" \
155
+
--set deployment.externalJKS.enabled="true"
107
156
```
108
157
109
158
!!! note "Use a custom docker image"
@@ -114,6 +163,24 @@ If you prefer to build the chart from the source, follow the steps below:
114
163
--set deployment.image.digest=<digest>
115
164
```
116
165
166
+
## (Optional) Change of Keystore passwords
167
+
168
+
Generate the keystore using the default password "wso2carbon". However, if you have used a different password, update the following configurations accordingly:
By default, WSO2 Identity Server requests and limits the following resources in your Kubernetes cluster:
@@ -153,10 +220,10 @@ If your Kubernetes cluster has limited resources, you can adjust these values wh
153
220
154
221
## Obtain the External IP
155
222
156
-
After deploying WSO2 Identity Server, you need to find its external IP address to access it outside the cluster. Run the following command to list the Ingress resources in your namespace:
223
+
After deploying WSO2 Identity Server, you need to find its external IP address to access it outside the cluster. Run the following command to list the ingress resources in your namespace:
0 commit comments