-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #108 from wunderio/feature/slt-945-uks-docs
SLT-945: Added vendor page about Upcloud UKS.
- Loading branch information
Showing
2 changed files
with
124 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
# Upcloud compatibility | ||
|
||
Silta is mostly Upcloud compatible, there are some requirements for environments deployed to UKS cluster. | ||
|
||
## Cluster requirements | ||
|
||
- Load balancers are configured using json in annotations, see https://github.com/UpCloudLtd/uks-instructions/blob/main/ccm/README.md#customising-load-balancer-configuration | ||
- By default, they are in HTTP mode, which needs to be changed to TCP | ||
- Example configuration for ingress-nginx: | ||
```yaml | ||
ingress-nginx: | ||
controller: | ||
admissionWebhooks: | ||
enabled: true | ||
autoscaling: | ||
enabled: false | ||
config: | ||
use-forwarded-headers: "true" | ||
compute-full-forwarded-for: "true" | ||
use-proxy-protocol: "true" | ||
real-ip-header: "proxy_protocol" | ||
service: | ||
type: LoadBalancer | ||
annotations: | ||
service.beta.kubernetes.io/upcloud-load-balancer-config: | | ||
{ | ||
"name": "silta-ingress-1", | ||
"plan": "production-small", | ||
"frontends": [ | ||
{ | ||
"name": "https", | ||
"mode": "tcp", | ||
"port": 443 | ||
}, | ||
{ | ||
"name": "http", | ||
"mode": "tcp", | ||
"port": 80 | ||
} | ||
], | ||
"backends": [ | ||
{ | ||
"name": "https", | ||
"properties": { "outbound_proxy_protocol": "v1"} | ||
}, | ||
{ | ||
"name": "http", | ||
"properties": { "outbound_proxy_protocol": "v1"} | ||
} | ||
] | ||
} | ||
``` | ||
- To enable whitelist for VPN, SSH service has to annotated with: | ||
``` | ||
gitAuth: | ||
annotations: | ||
service.beta.kubernetes.io/upcloud-load-balancer-config: | | ||
{ | ||
"name": "silta-ssh-1", | ||
"plan": "development", | ||
"frontends": [ | ||
{ | ||
"name": "ssh", | ||
"mode": "tcp", | ||
"port": 22, | ||
"rules": [ | ||
{ | ||
"name": "allow-vpn", | ||
"priority": 100, | ||
"matchers": [ | ||
{ | ||
"type": "src_ip", | ||
"inverse": true, | ||
"match_src_ip": { | ||
"value": "<VPN_IP_HERE>" | ||
} | ||
} | ||
], | ||
"actions": [ | ||
{ | ||
"type": "tcp_reject", | ||
"action_tcp_reject": {} | ||
} | ||
] | ||
} | ||
] | ||
} | ||
] | ||
} | ||
``` | ||
- Creating an object storage and configuring rclone is quite well explained at https://upcloud.com/resources/tutorials/migrate-object-storage-rclone | ||
- Example configuration: | ||
```yaml | ||
rclone: | ||
params: | ||
remote: s3 | ||
remotePath: silta-shared | ||
s3-access-key-id: <ACCESS_KEY> | ||
s3-acl: private | ||
s3-endpoint: xyz.fi-hel2.upcloudobjects.com | ||
s3-provider: Other | ||
s3-region: fi-hel2 | ||
s3-secret-access-key: <SECRET_KEY> | ||
``` | ||
- If using managed database, create a new database user and set authentication method to `mysql_native_password` | ||
|
||
- Smallest size for UKS storage volumes is 1Gi - set this for mariadb, elasticsearch pods | ||
|
||
There are few more requirements listed on [silta-cluster chart page](https://github.com/wunderio/charts/tree/master/silta-cluster#requirements), those are common for all silta-cluster installations | ||
|
||
|
||
## Missing functionality | ||
|
||
- Managed Docker image registry | ||
- Managed NFS storage | ||
|
||
## Deployment specifics | ||
|
||
There is no extra configuration required for basic deployments. The only change would be `cluster.type` but it's normally overridden in CI pipeline. |