- Dependencies
- Deploy Setup Locally (Minikube)
- Configuring the Setup
- Serve From Git Branch
- Trust Self-Signed Certificates
-
Setup Kubernetes cluster and necessary resources:
make setup
If you need to specify cluster resources:
make setup cpu=4 memory=8g
-
Deploy the integration chart:
make deploy
-
Check the pods:
kubectl get pods -n opnc-integration
-
Add these hosts to your
/etc/hostsfile:sudo echo "$(minikube ip) openproject.test nextcloud.test keycloak.test" | sudo tee -a /etc/hosts
NOTE: make sure at least one setup-job-* pod is completed successfully before proceeding.
NAME READY STATUS RESTARTS AGE
setup-job-5nwlm 0/1 Error 0 17m
setup-job-mkgrf 0/1 Completed 0 12mAccess the services via the following URLs:
- OpenProject: https://openproject.test
- Nextcloud: https://nextcloud.test
- Keycloak: https://keycloak.test
To uninstall the deployment, run:
make teardownor if you want to delete the K8s cluster as well, run:
make teardown-allcharts/opnc-integration/values.yaml directly.
All configuration must go into environments/default/config.yaml.
This file overrides the chart defaults and is the source of truth for deployments.
To change the version of the integration_openproject app in Nextcloud:
# environments/default/config.yaml
nextcloud:
extraApps:
- name: integration_openproject
version: '2.8.1'You can serve the OpenProject and Nextcloud servers using a specific git branch. Set the following config in the config.yaml file:
openproject:
gitSourceBranch: '<git-branch-name>'
nextcloud:
gitSourceBranch: '<git-branch-name>'Similarly, you can enable Nextcloud apps using a specific git branch:
nextcloud:
enableApps:
- name: 'app_name'
gitBranch: '<app-git-branch>'NOTE: This can take a long time to build the source code and deploy the application.
You can serve the OpenProject using the local source path. Run the following command:
make deploy-dev LOCAL_SOURCE_PATH=<path-to-local-openproject-repo>NOTE: This can take a long time to build the source code and deploy the application.
If you are using self-signed certificates, you may need to trust them in your browser. Follow these steps:
-
Get the certificate from the cluster:
kubectl get secret opnc-ca-secret -n opnc-integration -o jsonpath='{.data.ca\.crt}' | base64 -d > opnc-root-ca.crt
-
Import the certificate:
a. Linux
sudo cp opnc-root-ca.crt /usr/local/share/ca-certificates/ sudo update-ca-certificates
Import the certificate into the certificates store (for browsers):
certutil -A -n "NC-OP Integration Root CA" -t TC -d sql:"$HOME/.pki/nssdb" -i opnc-root-ca.crt
b. macOS
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain opnc-root-ca.crt