In some situations, the Smartfacts server has no access to the internet. In this case, it is not possible to download the needed software and images. This article describes which options we have to install Smartfacts in such scenarios.
...
Table of Contents | ||||||
---|---|---|---|---|---|---|
|
Preparations
Server
Please provide a server that meets the following requirements:
CPU:
x64 / AMD64 processor - ARM based servers will not work
Minimum: 6 Cores
RAM: minimum 32 GB
Hard disk: minimum 150 GB
Most of the data will be stored under
/var/lib/rancher/k3s
Operating System: Linux
All Linux distributions running K3s can be used.
If you are using a Red Hat / CentOS Linux, please perform these preparations:
It is recommended to turn off firewalld:
systemctl disable firewalld --now
If enabled, it is required to disable nm-cloud-setup and reboot the node:
systemctl disable nm-cloud-setup.service nm-cloud-setup.timer
reboot
The user performing the installation will need sudo privileges
The server must be connected to the internet
DNS
Please define a domain for Smartfacts. Either add a wildcard entry *.<domain-name>
to the DNS or enter the required URLs individually:
smartfacts.<domain-name>
camp.<domain-name>
identity.<domain-name>
genoslc.<domain-name>
oslc.<domain-name>
Certificates
Please prepare certificates for the server which meet the following requirements:
It is an X.509 certificate which is suitable for server authentication
Base64-coded in PEM format
Hostnames
The certificat must be issued on the hostnames
smartfacts.<domain-name>
camp.<domain-name>
identity.<domain-name>
genoslc.<domain-name>
oslc.<domain-name>
Hostnames must also be stored in the "Subject Alternative Name" attribute of the certificate
All hostnames and subject alternative names must be written in lower case
The certificat must be valid (valid from, valid to)
It is suitable for the provided private key
The private key may not be password protected
The certificate should comprise the complete certificate chain where possible
If this is missing, then an attempt is made to download the missing intermediate and root certificate during installation.
Install the software
If not done so far please prepare your infrastructure as described in https://smartfacts.atlassian.net/wiki/spaces/SPD/pages/54624257/Installing+Smartfacts+for+Proof+of+Concepts#Prepare-your-infrastructure.
Setup the Kubernetes Environment
Download the software
Download “k3s” and “k3s-airgap-images-amd64.tar.gz” from the “Assets” section “Assets” at of https://github.com/k3s-io/k3s/releases - use version
v1.27.9+k3s1
Download the Helm binaries for Linux amd64 from https://github.com/helm/helm/releases
Copy the content contents of the K3s install script at https://get.k3s.io into a new text file named called “install.sh”
Download the file https://cp.mid.de/releases/smartfacts-air-gapped/install_airgapped_software.sh
Copy the files to the server
In your home directory, create Create a new directory “download” in your home directory
Create a new directory “software” under “download”
Copy all downloaded files to ~/download/software
After copying all files, the file structure should look like this:Code Block download └── software ├── helm-v3.10.3-linux-amd64.tar.gz ├── install.sh ├── install_airgapped_software.sh ├── k3s └── k3s-airgap-images-amd64.tar.gz
...
Download the Smartfacts Helm Chart
Log with the provided credential into the Smartfacts Chart Registry using the credentials provided and download the latest chart version that does not have contain the postfix “-dev”.
Copy the downloaded helm chart to your home directory on the Smartfacts server
Extract the helm chart with using the command
Code Block tar -xvzfxf smartfacts-*.tgz
Create the deployment configuration
Provide Certificates and Key as Base64 String
The Prerequisite is: The complete certificate chain is available in a file as base64-encoded x509 certificates. The certificates are contained in the file in the correct order (server certificate at the top, root certificate at the bottom). See Section “Certificates” above in this article.
Save the certificate chain as a base64-encoded string:
Code Block |
---|
cat <your certificate chain.crt> | base64 -w0 > chain.crt.base64 |
Save certificate key as a base64-encoded string:
Code Block |
---|
cat <your certificate key.key> | base64 -w0 > key.base64 |
Customize Values File
Change to the home directory of your user 's home directory on the server and create a new text file
values.yaml
with the following content:Code Block global: domain: "<your-domain>" smartfactsVersionOverrideinstance: "<downloaded common version>" #Syntax example: "2022.11.3" or "2022.12" commonVersionOverride: "<downloaded common version>" genoslcVersionOverride: "<downloaded common version>" instance: "smartfacts-poc" registry: "library" certsmartfacts-poc" cert: crtFullChain: "<FULL-CHAIN-CERT-BASE64>" key: "<CERT-KEY-BASE64>" ingress: enabled: true # Smartfacts supports Traefik and nginx as Ingress Controller. # The default is Traefik. # If you use nginx as ingress controller please comment in this line: #ingressClassType: "nginx" spa: cspConf: crtFullChainexternalUrls: "<FULL-CHAIN-CERT-BASE64>" key: "<CERT-KEY-BASE64>" ingress: " # space separated list of your tool urls (IBM Jazz, Jama, Codebeamer) plugin: importPlugins: true # "true" for first installation, "false" for minor updates will speed up the update process a lot genoslc: enabled: false mailservice: enabled: truefalse mailservicecamp: enabled: false genoslckafka: enabled: false
Replace the value of the property domain property with your domain name.
Replace the value of the properties “smartfactsVersionOverride”, “commonVersionOverride“ and “genoslcVersionOverride“ with the exact versions of the images. You will see these versions by visiting the page https://cp.mid.de/releases/smartfacts-air-gapped/smartfacts_air_gapped_<HELM_CHART_VERSION>.html, where <HELM_CHART_VERSION> is the exact version of the Helm chart downloaded.
If for example the helm chart version 3.12.14 is downloaded you will find the versions to insert here:Replace the placeholder of the property crtFullChain property with the content of the file
chain.crt.base64
.Replace the placeholder of the property key property with the content of the
key.base64
file.Save the file
values.yaml
file.
Provide the container images
The Kubernetes environment at the Smartfacts server needs to must have access to the Smartfacts container images of Smartfacts.
The recommended way of providing to gain access to the container images is to add the Smartfacts registry https://repo.mid.de to an existing container registry at in your company which organisation that has access to the internet. This registry works serves as a proxy registry , so that the air gapped Smartfacts server can load the Smartfacts images through that this proxy registry. Follow the instructions in the section Provide container images with a proxy container registry if you can use a proxy registry.
If it is not possible to use a proxy repositoryregistry, the container images can be loaded directly into the container service at of the Smartfacts server. To do this, follow the instructions in the section Provide container images without a container registry.
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
Providecontainer imagesContainer Images with aproxy container registryProxy Container RegistryPlease contact your administrators to add the Smartfacts registry https://repo.mid.de to the proxy registry. Add login data to the proxy registryTo connect to your proxy registry you must insert the login information of the proxy registry in , you will need to add the proxy registry login information to your values.yaml file. To do sothis, replace the placeholder in the following text and insert it into a file called “registrylogin.txt” on the Smartfacts server.
|
Expand | ||||
---|---|---|---|---|
| ||||
Provide container images without a container registryIn this scenario you will download the container images manually and copy it to the server.
Load the container images into k3sOn the Smartfacts server
The script will check if checks wether all files are present and correct. If this is the case, it will load the container images from the files. To save disk space, you can delete the image- and sha256-files the directory after loading. You can view the loaded images with the following command.
|
Install Smartfacts
Execute the Installation
Enter In the user's home directory, enter the following command to execute the Installation:
Code Block |
---|
sudo helm upgrade --install --timeout 15m0s smartfacts ./smartfacts -f values.yaml --version 4.7.5-genoslcv2 -n smartfacts --create-namespace |
Watch Deployment events (in a new Session)
Open a second session on the server and enter the following command:
Code Block |
---|
sudo watch kubectl get alldeployments -n smartfacts |
...
Enter the following command to show the Smartfacts URLs:URLs (please make sure to prefix it with “https://” in your browser):
Code Block |
---|
sudo kubectl get ingress -n smartfacts |
Prepare the Smartfacs Model Warehouse
A note on Smartfacts PoC Test Users
For the Smartfacts PoC you can use the generated test users “poc1”…”poc50”. All poc-users have the same password “poc”. For managing the test users in the CAMP use the account administrator user “acm” which has the password “acm”.
Setting-Up the CAMP (Customer Accounts for MID Products)
This section is used to add the users who will be authorized to use the instance and to assign the licenses. When you open https://camp.<yoursmartfactsdomain>
, and log in with the user “acm” (password “acm”) you will be taken to this page:
...
In section 1, upload the license file MID has provided in step 4 by clicking the upload button in the upper right-hand corner and by selecting the license file.
In section 2, set an account name.
In section 3, synchronize the users from OpenLDAP to CAMP by clicking UPDATE USERS AND GROUPS.
Assign licenses to users and groups in the CAMP.
Check all users and/or groups that should have a license and assign licenses by clicking ASSIGN LICENSES.
The creation of the account is now complete and licenses are assigned to the users.
Create a Smartfacts Model Warehouse
Open the Smartfacts URL in your browser:
https://smartfacts.<yoursmartfactsdomain>
and log-in with the account manager credentials (user “acm”, password “acm”).You will now be asked to create a Model Warehouse.
Click on CREATE A NEW MODEL WAREHOUSE.
In the create dialog, first select the previously created account.
Provide a name for the Model Warehouse.
Optionally, activate the check box Create Demo Models if you want some demo content to be added to the Model Warehouse.
Model Warehouse creation is the final step in the Smartfacts platform set-up process.
Install the Plug-Ins
It depends on which tools you want to use in connection with Smartfacts. Smartfacts provides a plug-in for every tool which is supported. You can download the plug-ins from the main menu via the command Get Plug-ins.
Troubleshooting
Display events
If the deployments don`t get healthy, you can display the event messages of the installation:
Code Block |
---|
sudo kubectl get events -n smartfacts |
These events show some common error conditions (e.g. Images are not found; insufficient ressources)
How to Move k3s data to another partition or disk
Insert excerpt | ||||||||
---|---|---|---|---|---|---|---|---|
|