Installation
The installation of the Fabric Services System integration for OpenShift is done through Helm charts that are provided as part of each release of the Fabric Services System.
Package information
The Fabric Services System integration for OpenShift is provided as a tar ball (example: fsc-v22.12.1-46.tar.gz) which contains the following files:
- fsc-*-<release>-images.tar: The container images for the different components.
- fsc-charts-<release>.tgz: A tar ball containing the Helm charts for the installation of the integration components.
- fsc-installer.sh: Utility that can be used to upload the images and charts to a registry.
Using the installer script to push the container images and charts
Through the fsc-installer.sh script, it is possible to push the container images to a container image registry and optionally push the Helm charts to a Helm repository.
The script accepts the following information:
- User ID: Username to connect to the container image registry. (required)
- Registry URL: Path to the container image registry. (required)
- Helm repository URL: URL to the Helm repository to where the charts need to be uploaded. (optional).
The script can be run with the following command:
# ./fsc-installer.sh -u <user-id> -r <registry-url> -e <helm-repo>
For example:
# ./fsc-installer.sh -u imageuploader -r registry.domain.tld/fsc -e http://helm-repo.domain.tld/fsc
OpenShift supporting objects
- Helm chart values
- Local values .yaml file
Helm chart values
The Helm charts for the Fabric Services System integration for OpenShift have the following structure and properties. Default values are provided.
fss-fsc:
replicaCount: 1 # Number of replicas of FSC (do not change)
image:
repository: localhost # Container repository
pullPolicy: IfNotPresent # Pull policy
tag: v22.12.1-46 # Version to deploy
mgrImageName: fsc-manager # FSC Manager image name
cniImageName: fsc-cni # FSC CNI image name
certImageName: fsc-cert # FSC Cert service image name
nameOverride: "" # Override the (do not change)
serviceAccount: # Do not change anything in this section
name: "" # Set the name of the FSC service Account name
global: # Do not change anything in this section
crdGroup: ""
openShift: true # Must be true
fscInfo:
dockerConfig: "" # base64 encoded secret for accessing the container registry
cniInfo:
log:
level: info # trace, debug, info, warning, error, fatal, panic
genFile: "true" # Whether to save a file or not
maxAge: "7" # Max age in days for log file
maxBackup: "3" # Number of files to keep
maxSize: "100" # Max size of log file in MB
path: /var/log/fsc-cni.log # Path of the log file
injectCni: "true" # Whether to inject the CNI info in each NAD
maxUnavailable: 3 # Max unavailable CNI daemonsets during upgrade
fssInfo:
hostName: "fss.nokia.com" # Fabric Services System hostname
ipAddr: "127.0.0.1" # Fabric Services System IP
port: "8090" # Fabric Services System port
userId: "" # Fabric Services System username
password: "" # Fabric Services System password
tlsEnable: false # Whether Fabric Services System uses TLS
pluginId: "k8s-plugin-id" # Must be a unique value across the environment
pluginName: "k8s-plugin-name" # Human readable plugin name
deploymentName: "k8s-deployment-name" # Human readable deployment name
deploymentDescription: "k8s connect deployment" # Human readable description
tlsSkipVerify: true # Whether to verify the server certificate
tlsCertData: "" # TLS Certificate data – valid only if tlsSkipVerify is true
tlsCertKey: "" # TLS Certificate key – No longer used, but a value must be provided
mgrInfo: # Do not change anything in this section, except for log if necessary
heartbeatInterval: "3" # Keep-alive timer
supportsHeartbeat: "true" # Whether Connect will generate heartbeat alarms
actionables: | # Only supported value is DEPLOYMENT_UPDATED
DEPLOYMENT_UPDATED
log:
level: info # trace, debug, info, warning, error, fatal, panic
genFile: "true" # Whether to save a file or not
maxAge: "7" # Max age in days for log file
maxBackup: "3" # Number of files to keep
maxSize: "100" # Max size of log file in MB
path: /fss/data/fsc-data/logs/fsc-controller-manager.log # Log file path
service: # Do not change anything in this section
type: ClusterIP # Type of service created for FSC (do not change)
port: 8443 # Port used by FSC (do not change)
grpcPort: 50051 # Internal GRPC port of FSC (do not change)
webHookPort: 443 # Webhook port for FSC (do not change)
Creating a local values yaml file
When deploying the Fabric Services System integration with OpenShift, you can use a local
values .yaml file to overwrite the defaults of the values.yaml
file
provided in the charts.
The minimum changes are:
fss-fsc:
image:
repository: localhost # Container repository
tag: v22.12.1-46 # Version to deploy
fscInfo:
dockerConfig: "<base64 encoded secret>" # today a secret is required
fssInfo:
hostName: "fss.domain.tld"
ipAddr: "192.0.2.100"
port: "443"
userId: "fscuser"
password: "secret-password"
tlsEnable: true
pluginId: "ocp-fsc-01"
pluginName: "OpenShift FSC 01"
deploymentName: "ocp-fsc-01-deployment"
deploymentDescription: "First OpenShift Cluster with FSC"
tlsSkipVerify: true
tlsCertData: "" # the base64 encoded certificate file
tlsCertKey: "Tm9uZQo="
tlsSkipVerify
set to
true, the tlsCertData and tlsCertKey require a value. For the tlsCertKey, any valid base64
encoded value can be entered as it is not used at any time. Installing and configuring the OpenShift and Kubernetes plugin
-
Run the installation script with the following command:
./fsc-installer.sh -u <user-id> -r <registry-url> -e <helm-repo>
$ ./fsc-installer.sh -r registry.domain.tld/fsc -u registryuser -e https://repository.domain.tld/fsc-charts/ Enter Registry Password: WARNING! Using --password via the CLI is insecure. Use --password-stdin. WARNING! Your password will be stored unencrypted in /home/fsc-helper/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded Docker Login success Is the credentials for helm repo same as the docker registry?. y|n: n Enter Helm Repo Userid: fsc-charts-rw 4ba5346beac5: Loading layer [==================================================>] 1.536kB/1.536kB 00c259f593c6: Loading layer [==================================================>] 14.98MB/14.98MB 14dcfc27fc3e: Loading layer [==================================================>] 55.53MB/55.53MB fdab6045c7d5: Loading layer [==================================================>] 13.16MB/13.16MB Loaded image: fsc-manager:v22.12.1-47 336eecb6d6f7: Loading layer [==================================================>] 1.536kB/1.536kB 70e11503e7f0: Loading layer [==================================================>] 11.39MB/11.39MB 352689f7e766: Loading layer [==================================================>] 43.5MB/43.5MB Loaded image: fsc-cni:v22.12.1-47 b3c73d8d2b99: Loading layer [==================================================>] 1.536kB/1.536kB 057930989262: Loading layer [==================================================>] 10.5MB/10.5MB aa9b2d5cc420: Loading layer [==================================================>] 40.21MB/40.21MB Loaded image: fsc-cert:v22.12.1-47 The push refers to repository [registry.domain.tld/fsc/fsc-manager] fdab6045c7d5: Pushed 14dcfc27fc3e: Pushed 00c259f593c6: Pushed 4ba5346beac5: Pushed 5510fa9aff79: Layer already exists daeca4c64c94: Layer already exists c31017bc1cae: Layer already exists 8bd900abc571: Layer already exists 994393dc58e7: Layer already exists v22.12.1-47: digest: sha256:d25836c54943ce2c5b50d0265e941d13b89172e9840551e1be459fbdbc649ad0 size: 2205 The push refers to repository [registry.domain.tld/fsc/fsc-cni] 352689f7e766: Pushed 70e11503e7f0: Pushed 336eecb6d6f7: Pushed 5510fa9aff79: Layer already exists daeca4c64c94: Layer already exists c31017bc1cae: Layer already exists 8bd900abc571: Layer already exists 994393dc58e7: Layer already exists v22.12.1-47: digest: sha256:21b3632b9bb134409a79dbbd6f8a158d52a13d483a79257a45f1fefb6009f5d0 size: 1994 The push refers to repository [registry.domain.tld/fsc/fsc-cert] aa9b2d5cc420: Pushed 057930989262: Pushed b3c73d8d2b99: Pushed 5510fa9aff79: Layer already exists daeca4c64c94: Layer already exists c31017bc1cae: Layer already exists 8bd900abc571: Layer already exists 994393dc58e7: Layer already exists v22.12.1-47: digest: sha256:e4ff6b4d00e69b237161c476e7b6dcbadf3fd60e723fa696c2de74e2fd855398 size: 1994 Untagged: fsc-manager:v22.12.1-47 Untagged: fsc-cni:v22.12.1-47 Untagged: fsc-cert:v22.12.1-47 fsc-charts/Chart.yaml fsc-charts/values.yaml fsc-charts/.helmignore fsc-charts/charts/fss-fsc/Chart.yaml fsc-charts/charts/fss-fsc/values.yaml fsc-charts/charts/fss-fsc/templates/_helpers.tpl fsc-charts/charts/fss-fsc/templates/configmap.yaml fsc-charts/charts/fss-fsc/templates/crd.yaml fsc-charts/charts/fss-fsc/templates/deployment.yaml fsc-charts/charts/fss-fsc/templates/scc.yaml fsc-charts/charts/fss-fsc/templates/secret.yaml fsc-charts/charts/fss-fsc/templates/service.yaml fsc-charts/charts/fss-fsc/templates/serviceaccount.yaml
-
Do one of the following:
If Then You have created a local values file (see Prerequisites), Go to step 3. You used the fsc-installer.sh script to upload the charts to a Helm repository, or another tool was used to do so, Go to step 5. -
Use the following command to deploy the Fabric Services System integration with
OpenShift:
helm install -f local-values.yaml fsc-deployment fsc-charts-v22.12.1-46.tgz
- Go to step 6.
-
Use the following commands to deploy the Fabric Services System integration
with OpenShift
# helm repo add fscrepo https://helm-repo.domain.tld/repository/fsp-charts/ --username "fsp-charts-ro" --password "******" "fscrepo" has been added to your repositories # helm repo update Hang tight while we grab the latest from your chart repositories... ...Successfully got an update from the "fscrepo" chart repository Update Complete. ??Happy Helming!?? # helm install prod fsprepo/fsc-charts --version v22.12.1-46 -f local.yaml
-
Verify that the installation was successful by checking that the required pods
are in the Running or Completed state as shown below:
# oc get pods -n fsc-system NAME READY STATUS RESTARTS AGE prod-fss-fsc-cert-manager 0/1 Completed 0 35s prod-fss-fsc-cni-ds-wrqrs 1/1 Running 0 35s prod-fss-fsc-cni-ds-wtlf7 1/1 Running 0 35s prod-fss-fsc-cni-ds-xt9qj 1/1 Running 0 35s prod-fss-fsc-controller-manager-5898c6b5b9-xh459 2/2 Running 0 35s
Note: The Cert Manager pod should be in the Completed state for a successful deployment.