This unofficial gist contains a list of commands typically ran for Kubernetes and Runtime Fabric MuleSoft.
- Install Java using any of the methods available for your OS, e.g. download the binaries and place them in a local folder (recommended to use a simple path with no spaces), OR, follow any installation method for your OS.
- https://adoptium.net/en-GB/temurin/archive/?version=8
- Must Configure the JAVA_HOME environment variable in your OS,
- Test that Java it's properly installed:
java -version
and also runjavac -version
At the moment of writing this guide, the current maven version 3.9.0 it's not supported. (downgrade previous version)
- Download a previous version of maven 3.8.4 - 3.8.7 from here https://archive.apache.org/dist/maven/maven-3/
- Install Maven using any of the methods available OS, e.g. https://maven.apache.org/guides/getting-started/windows-prerequisites.html
- Configure the MAVEN_HOME environment variable, e.g.
MAVEN_HOME="/Users/andrespedesmorales/OSS/apache-maven-3.8.7/bin"
- Test that maven it's properly configured running
mvn -v
, compare that the java version used by maven it's the same previously configured.
Both CLIs are required.
- AWS IAM Auth, please follow the respective guide for your OS: https://docs.aws.amazon.com/eks/latest/userguide/install-aws-iam-authenticator.html
- AWS CLI Installation guide: https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
- Please follow the official guide: https://kubernetes.io/docs/tasks/tools/#kubectl
- Check the AWS User
aws --version (good checking the version of AWS CLI and AWS IAM Authenticator)
aws-iam-authenticator version
aws sts get-caller-identity
- Check the connectivity with the Kubernetes Cluster
kubectl version --client (There's a know bug from the kubectl if version is higher than 1.23.14)
kubectl cluster-info
kubectl get --raw='/healthz?verbose'
- RTF Installation, see more details at RTF Install Docs
rtfctl validate VALIDATIONDATA
rtfctl install VALIDATIONDATA
Verify the installation is correct by running
kubectl get pods -n rtf
kubectl get services
NAME | TYPE | CLUSTER-IP | EXTERNAL-IP | PORT(S) | AGE |
---|---|---|---|---|---|
kubernetes | ClusterIP | 10.100.0.1 | 443/TCP | 47m |
- Install License
rtfctl apply mule-license '2+W35iUhD9mRa1RQ5yxMSg99bjtQ7lERTjkAhtYNmbmnUBLui7iWk51KZQgbmhglKF9KevKV1fb4q7utJWU0c3FguWRykowE2Wu91UD7io6vXqafcAipvXvr26WhH6+HM6oRBzc71vqio6n01nOSnTswqwtq5hAeKkNLlz4ltLxN/ukhWArMNU57b/U3TWcFGE/ZfbnCpYbXX0wTnWZCu+0B1v3Nor44tQXgLy2n1FIlJTHmzd1fg0OESQaF8zqRBrBjjYau/MIRrz69cZCInFcBuMdVntNf2MDWqUJe1IXtAR8mgOyqhIBsRXrtEme0wanQf52ID8MwBFRalcc9CliZHsr0/eP7QuLU9EUNIfVzX0A5+he7nJNFfdbgULSLjsS9NH71gDp1x+bFGC3LSmOG0qNf5E/dJBo1RXHQPKJi05cBHCSINIIKKeNIMx3q7qZCCTwcsTVkO0K19Ex58AJh5mitxXgSxbPtmC7dgcI7ldOmo2nkj5h4wOtytCd2zi5E5BEMexqICe/Y9+QCnIAwyoVnHUKDtFUGqlPnNqhKH5b43sYrK5EPenoYSfdCAPa4vO4YpHsICDiGziXJaHZ7+3RXS950hu8Od8DDDQFUoh6I9gHA5/ILlZzTgeRRrW/iz8SFCdOBJVyINWeC+L4DO5v6ie3j36bTjVlZm7N01Y0Ngl2UF51Ybi4rXv+MuduP8qFZNJMnKzpHmAIouZt+uI1626gnH5NggyPDDMSayQcEaQFqwOlbxAcyeM++F8wL5UJNNASGFH8jo5qltGYnkPAnxnOtTPdsBJK99cDmeYml0PnQNrqFKYDsVYBvnPImlfEQo3o='
Get all running pods in ALL namespaces
kubectl get pods -A --field-selector=status.phase=Running
Installation logs
kubectl logs rtf-install-job-ljpdz -n rtf > install.log
Get Events (audit your cluster)
kubectl get events -A > events.log
- Get extra information about your pods
kubectl get pods -A -o yaml
kubectl get pods -A -o json
kubectl get pods -A -o wide
Restart the RTF Agent Pod
kubectl delete pods -n rtf -lapp=agent
Enable Log4J Custom Appenders from Mule Apps
kubectl -nrtf patch secret custom-properties -p '{"data":{"CUSTOM_LOG4J_ENABLED":"dHJ1ZQ=="}}'
See the secret content in plain text
kubectl get secret custom-properties -n rtf -o json | jq -r '.data | map_values(@base64d)'
More details at Deploy RTF-app via API
Change the namespace value by the one where the mule apps are running.
JSON Output with the CPU Limits assigned to each app container
kubectl get pods -n ed890e53-f35f-4ff8-9c96-91f95dcc82e4 -o json | jq '.items[] | {name: .metadata.name, containers: [.spec.containers[] | select(.name == "app") | {name: .name, cpuLimits: .resources.limits.cpu}]}'
- https://meetups.mulesoft.com/events/details/mulesoft-online-group-english-presents-externalize-tls-certificates-and-properties-for-runtime-fabric-appliance-and-self-managed-kubernetes/
- https://help.mulesoft.com/s/article/How-to-deploy-a-Mule-4-app-s-JAR-file-completely-via-API-to-RTF
- Meetup RTF: https://www.youtube.com/watch?v=qRTGhq-gU_E&ab_channel=AkshataSawant
- Ingress Load Balancer help: https://help.mulesoft.com/s/article/Path-based-Nginx-Ingress-Routing-Example-for-Runtime-Fabric-on-Self-Managed-Kubernetes
- https://help.mulesoft.com/s/article/How-to-Get-Runtime-Fabric-RTF-CPU-Reserved-and-Limit-for-Self-Managed-Kubernetes-and-RTF-Appliance
kubectl logs mule-info-86b8f77d95-mv6tl -n 82bcfacc-14f6-437f-abe3-069d0a25bee2 -c app
Check license applied to mule container