3 Installing CNC Console
This section describes the prerequisites and installation procedure for the CNC Console.
CNC Console (cncc) helm chart is a common helm chart to be used for deploying Manager CNCC IAM (M-CNCC IAM), Manager CNCC Core (M-CNCC Core), and Agent CNCC Core (A-CNCC Core).
The package
occncc_custom_configtemplates_<marketing-release-number>.zip
consists of
occncc_custom_values_<version>.yaml
file and can be used for deployment
of M-CNCC IAM, M-CNCC Core and A-CNCC Core.
This section covers installation instructions for M-CNCC IAM, M-CNCC Core and A-CNCC Core deployment.
Note:
- For a single cluster deployment both manager (M-CNCC IAM, M-CNCC Core) and agent(A-CNCC Core) to be deployed on the same cluster.
- For a multi cluster deployment if manager cluster has a local NF deployment then both manager(M-CNCC IAM, M-CNCC Core) and agent(A-CNCC Core) to be deployed on the same cluster. In case manager cluster do not have a local NF deployment then only manager(M-CNCC IAM, M-CNCC Core) to be deployed and agent(A-CNCC Core) to be deployed on a cluster where NFs are present on the cluster.
- Manager manages CNE or OSO common service if present in a cluster.
- Manager in a cluster is preferred over Agent in the same cluster to manage the CNE common services.
- Agent in a cluster can manage CNE common service in absence of a Manager in the same cluster.
- Agent is needed only when NFs are present on the cluster.
CNC Console Predeployment Configurations
Following are the predeployment configuration procedures:
Verifying and Creating CNC Console Namespace
This section explains how to verify or create new namespace in the system.
To create a namespace, perform the steps described in the procedure below:
Note:
To install CNC Console in NF specific namespace, replace cncc namespace with custom namespace.To verify if the required namespace already exists in the system, run the following command:
$ kubectl get namespaces
If the namespace exists, you may continue with the next steps of installation.
If the required namespace is not available, create a namespace using the following command:
$ kubectl create namespace <required namespace>
Example:
$ kubectl create namespace cncc
namespace/cncc created
Naming Convention for Namespaces
While choosing the name of the namespace where you wish to deploy CNC Console, make sure the following requirements are met:
- starts and ends with an alphanumeric character
- Contains a maximum of "63" characters
- contains only alphanumeric characters or '-'
Note:
It is recommended to avoid using prefixkube-
when creating
namespace. This is required as the prefix is reserved for Kubernetes system
namespaces.
Note:
For the information about extra privileges required to enable Debug tools, see the steps mentioned in the section CNCConsole Debug Tools.Configuring Database
This section explains how database administrator can configure the databases.
Caution:
Verify the value of the following parameters, before deploying CNC Console on a cnDBTier 3 site georedundency setup:
ndb:
MaxNoOfOrderedIndexes: 1024
MaxNoOfTables: 1024
NoOfFragmentLogFiles: 512
If the values are not matching, see Oracle communications cnDBTier Installation Guide for details on how to update these parameters.
Configuring the Database User
This section explains how to create or verify the existing cncc user.
- Log in to the server or machine which has permission to access the SQL nodes of the NDB cluster.
- Connect to the SQL node of the NDB cluster or connect to the
cnDbTier.
Run the following command to connect to cnDbTier:
Example:$ kubectl -n <cndbtier_namespace> exec -it <cndbtier_sql_pod_name> -c <cndbtier_sql_container_name> -- bash
$ kubectl -n cndbtier exec -it ndbmysqld-0 -c mysqlndbcluster -- bash
- Log in to the MySQL prompt using root permission or user, which has
permission to create users with
permissions.
mysql -h 127.0.0.1 -u root -p
Note:
Provide MySQL password, when prompted. - Check if CNCC user already exists by running the following
command:
$ SELECT User FROM mysql.user;
- If the user does not exist, create a cncc-user by running the
following
command:
$ CREATE USER '<CNCC User Name>'@'%' IDENTIFIED BY '<CNCC Password>';
- Run the following command to grant NDB_STORED_USER permission to the
cncc-user:
Example:$ GRANT NDB_STORED_USER ON *.* TO '<username>'@'%' WITH GRANT OPTION;
$ GRANT NDB_STORED_USER ON *.* TO 'cnccusr'@'%' WITH GRANT OPTION;
Configuring MySQL Secret
This section explains how to create and verify the kubernetes secret for MySQL.
- Run the following command to create the kubernetes secret for
MySQL:
kubectl create secret generic <database secret name> --from-literal=dbUserNameKey=<CNCC MySQL database username> --from-literal=dbPasswordKey='<CNCC MySQL database passsword>' -n <Namespace of MySQL secret>
- Verify the secret created using following
command:
Example:kubectl describe secret <database secret name> -n <Namespace of MYSQL secret>
$ kubectl create secret generic cncc-db-secret --from-literal=dbUserNameKey=cnccusr --from-literal=dbPasswordKey='<db password>' -n cncc $ kubectl describe secret cncc-db-secret -n cncc
Global Configurations
CNC Console Deployment Configurations
Table 3-1 CNC Console Deployment Configurations
Deployment | isMultiClusterDeployment enabled | cncc-iam enabled | mcncc-core enabled | acncc-core enabled |
---|---|---|---|---|
Single Cluster | false | true | true | true |
Multi Cluster(manager only) | true | true | true | false |
Multi Cluster(managing local NF’s) | true | true | true | true |
Multi cluster(agent only) | true | false | false | true |
In case of single cluster deployment(global.isMultiClusterDeployment: false) the user must configure cncc-iam, mcncc-core and acncc-core flag to true.
global:
isMultiClusterDeployment: false
cncc-iam:
enabled: true
mcncc-core:
enabled: true
acncc-core:
enabled: true
CNC Console Configuration for Service Account
Global Service Account Configuration
CNC Console provides option to configure custom service account. Skip this, if already created as part of ASM configuration.
Sample CNCC service account yaml file
## Service account yaml file for cncc-sa
apiVersion: v1
kind: ServiceAccount
metadata:
name: cncc-sa
namespace: cncc
annotations: {}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: cncc-role
namespace: cncc
rules:
- apiGroups:
- "" # "" indicates the core API group
resources:
- services
- configmaps
- pods
- secrets
- endpoints
- persistentvolumeclaims
verbs:
- get
- watch
- list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: cncc-rolebinding
namespace: cncc
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: cncc-role
subjects:
- kind: ServiceAccount
name: cncc-sa
namespace: cncc
Configure service account for ingress-gateway and keycloak in occncc_custom_values_<version>.yaml file as follows:
For Ingress Gateway and Keycloak provide custom service account under global.serviceAccountName.
global:
serviceAccountName: &serviceAccountName cncc-sa
cncc-iam:
kc:
keycloak:
serviceAccount:
# The name of the service account to use.
name: *serviceAccountName
Helm Test Service Account Configuration
Helm Test Service Account is an optional field. It should be added only if helm test kubernetes resource logging feature is enabled.
Custom service account can be provided for helm test in
global.helmTestServiceAccountName
:
global:
# ******** Sub-Section Start: Common Global Parameters ********
# ***********************************************************************
helmTestServiceAccountName: cncc-helmtest-serviceaccount
Sample
helm test service account :
cncc-helmtest-serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: cncc-helmtest-serviceaccount
namespace: cncc
annotations: {}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: cncc-helmtest-role
namespace: cncc
rules:
- apiGroups:
- "" # "" indicates the core API group
resources:
- services
- configmaps
- pods
- secrets
- endpoints
- persistentvolumeclaims
- serviceaccounts
verbs:
- get
- watch
- list
- apiGroups:
- policy
resources:
- poddisruptionbudgets
verbs:
- get
- watch
- list
- update
- apiGroups:
- apps
resources:
- deployments
- statefulsets
verbs:
- get
- watch
- list
- update
- apiGroups:
- autoscaling
resources:
- horizontalpodautoscalers
verbs:
- get
- watch
- list
- update
- apiGroups:
- rbac.authorization.k8s.io
resources:
- roles
- rolebindings
verbs:
- get
- watch
- list
- update
- apiGroups:
- monitoring.coreos.com
resources:
- prometheusrules
verbs:
- get
- watch
- list
- update
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: cncc-helmtest-rolebinding
namespace: cncc
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: cncc-helmtest-role
subjects:
- kind: ServiceAccount
name: cncc-helmtest-serviceaccount
namespace: cncc
Note:
If user doesn't want to create the separate service account for helm test then also logging of resources and complaint check could be done using global service account . For that, required resources should be added to the global service account. For more details on helmTestserviceAccount, see Helm Test section.Configuring ASM and OSO in CNC Console
For M-CNCC IAM ASM and OSO Configurations, see CNC Console Configuration to support ASM and OSO.
M-CNCC IAM Predeployment Configuration
The following are the predeployment configuration procedures of M-CNCC IAM:
Configuring M-CNCC IAM Database
This section explains how to create M-CNCC IAM Database and grant permissions to the CNC Console user for relevant operations on the Database.
Note:
CNCC Database Naming Convention
As the CNCC instances cannot share the same database, user must provide a unique name to the CNCC DB in the cnDBTier either limited to a site or spanning across sites.
<database-name>_<site-name>_<cluster>
cnccdb_site1_cluster1
- starts and ends with an alphanumeric character
- contains a maximum of 63 characters
- contains only alphanumeric characters or '-' In this guide, the commands use "cnccdb" as sample database name. If a custom database name is used, user must use it in place of cnccdb.
- Log in to the server or machine with permission to access the SQL nodes of NDB cluster.
- Connect to the SQL node of the NDB cluster or connect to the
cnDBTier.
Run the following command to connect to the cnDBTier:
$ kubectl -n <cndbtier_namespace> exec -it <cndbtier_sql_pod_name> -c <cndbtier_sql_container_name> -- bash
Example:$ kubectl -n cndbtier exec -it ndbmysqld-0 -c mysqlndbcluster -- bash
- Run the following command to log in to the MySQL prompt as a user
with root permissions, which has permission to create users with permissions:
mysql -h 127.0.0.1 -u root -p
Note:
Enter the above command, and use the MYSQL password. - Check if CNCC database already exists:
- Run the following command to check if database exists:
show databases;
- Run the following command to drop the existing cnccdb
database:
DROP DATABASE <CNCC IAM Database>
DROP DATABASE cnccdb;
- Run the following command to create the
Database:
$ CREATE DATABASE IF NOT EXISTS <CNCC IAM Database>;
- Run the following command to grant permission to cncc-user:
$ GRANT SELECT, INSERT, CREATE, ALTER, DROP, LOCK TABLES, REFERENCES, INDEX, CREATE TEMPORARY TABLES, DELETE, UPDATE, EXECUTE ON <M-CNCC IAM Database>.* TO'<CNCC IAM DB User Name>'@'%';
- Run the following command to check if database exists:
# Command to check if database exists:
$ show databases;
# Drop the existing cnccdb database:
$ DROP DATABASE cnccdb;
# Database creation for CNCC:
$ CREATE DATABASE IF NOT EXISTS cnccdb;
#Granting permission to user:
$ GRANT SELECT, INSERT, CREATE, ALTER, DROP, LOCK TABLES, REFERENCES, INDEX, CREATE TEMPORARY TABLES, DELETE, UPDATE, EXECUTE ON cnccdb .* TO'cnccusr'@'%';
Configuring Secret for Default or Admin User in M-CNCC IAM
This section describes how to create kubernetes secret for default (admin) user.
- Run the following command to create the Kubernetes secret for admin
user:
$ kubectl create secret generic <secret-name> --from-literal=iamAdminPasswordKey='<password>'--namespace <namespace>
Example:$ kubectl create secret generic cncc-iam-secret --from-literal=iamAdminPasswordKey='password' --namespace cncc
- Run the following command to verify the secret creation:
$ kubectl describe secret <secret name> -n <namespace>
Example:$ kubectl describe secret cncc-iam-secret -n cncc
Configuring Secret to Enable HTTPS in M-CNCC IAM
This section describes how create and configure secrets to enable HTTPS. This section must be run before Configuring Secret to Enable HTTPS CNCC Core Ingress Gateway.
Note:
The passwords for TrustStore and KeyStore are stored in respective password files.Prerequisites to create kubernetes secret for HTTPS:
- ECDSA private key and CA signed certificate of CNCC (if initialAlgorithm is ES256)
- RSA private key and CA signed certificate of CNCC (if initialAlgorithm is RSA256)
- TrustStore password file
- KeyStore password file
- CA certificate/ CA Bundle
CA Bundle creation
When combining multiple CA certificates into a single certificate, add a delimiter after each certificate.
Delimiter: "--------"
Sample CA Bundle-----BEGIN CERTIFICATE----- MIID4TCC... ... ...jtUl/zQ== -----END CERTIFICATE----- -------- -----BEGIN CERTIFICATE----- MIID4TCC... ... ...jtUl/zQ== -----END CERTIFICATE----- -------- -----BEGIN CERTIFICATE----- MIID4TCC... ... ...jtUl/zQ== -----END CERTIFICATE-----
Perform the following procedure to create the secrets to enable HTTPS after required certificates and password files are generated:
- Run the following command to create
secret:
$ kubectl create secret generic <secret-name> --from-file=<ssl_ecdsa_private_key.pem> --from-file=<rsa_private_key_pkcs1.pem> --from-file=<ssl_truststore.txt> --from-file=<ssl_keystore.txt> --from-file=<caroot.cer> --from-file=<ssl_rsa_certificate.crt> --from-file=<ssl_ecdsa_certificate.crt> -n <Namespace of CNCC IAM Ingress Gateway secret>
Example:
$ kubectl create secret generic cncc-iam-ingress-secret --from-file=ssl_ecdsa_private_key.pem --from-file=rsa_private_key_pkcs1.pem --from-file=ssl_truststore.txt --from-file=ssl_keystore.txt --from-file=caroot.cer --from-file=ssl_rsa_certificate.crt --from-file=ssl_ecdsa_certificate.crt -n cncc
Note:
Note down the command used during the creation of Kubernetes secret as this command is used for future updates. - On successfully running the above command, the following message is
displayed:
secret/cncc-iam-ingress-secret created
- Run the following command to verify the secret creation:
$ kubectl describe secret cncc-iam-ingress-secret -n cncc
Perform the following procedure to update existing secrets to enable HTTPS, if they already exist:
- Run the following command to create
secret:
$ kubectl create secret generic <secret-name> --from-file=<ssl_ecdsa_private_key.pem> --from-file=<rsa_private_key_pkcs1.pem> --from-file=<ssl_truststore.txt> --from-file=<ssl_keystore.txt> --from-file=<caroot.cer> --from-file=<ssl_rsa_certificate.crt> --from-file=<ssl_ecdsa_certificate.crt> --dry-run -o yaml -n <Namespace of CNCC IAM Ingress Gateway secret> | kubectl replace -f --n <Namespace of CNCC IAM Ingress Gateway secret>
Example:
$ kubectl create secret generic cncc-iam-ingress-secret --from-file=ssl_ecdsa_private_key.pem --from-file=rsa_private_key_pkcs1.pem --from-file=ssl_truststore.txt --from-file=ssl_keystore.txt --from-file=caroot.cer --from-file=ssl_rsa_certificate.crt --from-file=ssl_ecdsa_certificate.crt --dry-run -o yaml -n cncc | kubectl replace -f --n cncc
- On successfully running the above command, the following message is
displayed:
secret/cncc-iam-ingress-secret replaced
Dynamic Reloading of Certificates of M-CNCC IAM
Perform the following procedure for configuring CNC Console IAM to Support Dynamic Reloading of Certificates of M-CNCC IAM:
CNC Console supports Dynamic Reload of Certificates that are used to establish both TLS and mTLS connections.
To enable dynamic reloading of certificates, the following flags must be enabled in the occncc_custom_values_<version>.yaml file.
cncc-iam:
global:
ingressGwCertReloadEnabled:
&iamIGwCertReloadEnabled true
Note:
The new certificate must be created with the existing secret and certificate name.- Delete the existing certificates with which existing secure connections were established.
- Create the new certificate as per the requirement. The certificate must be created with the same name as the existing certificate.
- The Ingress Gateway pods automatically pick up the new certificates and the changes will be reflected in the browser.
Note:
Naming Update of Certificates and Secrets
If the name of the secret or the certificate is changed then the corresponding changes must be made in the occncc_custom_values_<version>.yaml file and either a reinstall or a helm upgrade must be done.
Configuring LDAPS in M-CNCC IAM
This section explains the procedure to enable LDAPS in M-CNCC IAM.
When you configure a secured connection URL to your LDAP store (Example:
`ldaps://myhost.com:636'
), CNCC IAM uses SSL for communication with
the LDAP server. The truststore must be properly configured on the CNCC IAM server side;
otherwise CNCC IAM cannot trust the SSL connection to LDAP.
For enabling LDAPS update kc section of occncc_custom_values_<version>.yaml as below:
cncc-iam
kc:
ldaps:
enabled: true
M-CNCC IAM Secret configuration for enabling LDAPS
Note:
The passwords for TrustStore and KeyStore are stored in respective password files.To create Kubernetes secret for LDAPS, following files are required:
- TrustStore password file
- CA certificate or CA Bundle
Creating CA Bundle
When combining multiple CA certificates into a single certificate, add a delimiter after each certificate.
Delimiter: "--------"
-----BEGIN CERTIFICATE-----
MIID4TCC...
...
...jtUl/zQ==
-----END CERTIFICATE-----
--------
-----BEGIN CERTIFICATE-----
MIID4TCC...
...
...jtUl/zQ==
-----END CERTIFICATE-----
Note:
Creation process for private keys, certificates and passwords is on discretion of user.Perform the following procedure to create the secrets to enable LDAPS after required certificates and password files are generated and update details in kc section:
Note:
The value of ssl_truststore.txt and ssl_truststore-password-key value must be same.- Run the following command to create secret:
kubectl create secret generic <secret-name> --from-file=<caroot.cer> --from-file=ssl_truststore.txt --from-literal=ssl_truststore-password-key=<password> --namespace cncc
Note:
Note down the command used during the creation of Kubernetes secret as this command is used for future updates.Example:
$ kubectl create secret generic cncc-iam-kc-root-ca --from-file=caroot.cer --from-file=ssl_truststore.txt --from-literal=ssl_truststore-password-key=<password> --namespace cncc
Run the following to display the sample ssl_truststore.txt:echo <password> > ssl_truststore.txt
- On successfully running the above command, the following message is
displayed:
secret/cncc-iam-kc-root-ca created
- Run the following command to verify the secret creation:
$ kubectl describe secret cncc-iam-kc-root-ca -n cncc
M-CNCC IAM Service Account configuration for enabling LDAPS
This section describes the customizations that you should make in custom-value.yaml file to configure Kubernetes service account. M-CNCC IAM provides option to configure custom service account.
Note:
Skip this section if service account is already configured as part of HTTPS or ASM configuration.Configure service account for ingress-gateway and keycloak in custom-cncc_values_<version>.yaml as follows:
- For ingress-gateway provide custom service account under
global.serviceAccountName.
global: serviceAccountName: &serviceAccountName cncc-sa cncc-iam: kc: keycloak: serviceAccount: # The name of the service account to use. name: *serviceAccountName
For CNCC IAM LDAP related configurations, see Integrating CNC Console LDAP Server with CNC Console IAM section in Oracle Communications Cloud Native Core Console User Guide.
## Service account yaml file for cncc-sa
apiVersion: v1
kind: ServiceAccount
metadata:
name: cncc-sa
namespace: cncc
annotations: {}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: cncc-role
namespace: cncc
rules:
- apiGroups:
- "" # "" indicates the core API group
resources:
- services
- configmaps
- pods
- secrets
- endpoints
- persistentvolumeclaims
verbs:
- get
- watch
- list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: cncc-rolebinding
namespace: cncc
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: cncc-role
subjects:
- kind: ServiceAccount
name: cncc-sa
namespace: cncc
M-CNCC Core Predeployment Configuration
Following are the predeployment configuration procedures:
Configuring MySQL in M-CNCC Core
This section explains how to create M-CNCC Core database (mcncccommonconfig) and grant permissions to the M-CNCC Core database user for relevant operations on the mcncccommonconfig Database.
Note:
CNCC Common Config DB Naming Convention
As the CNCC instances cannot share the same database, operator has to provide a unique name to the M-CNCC Common Config DB in the cnDBTier either limited to a site or spanning across sites.
<database-name>_<site-name>_<cluster>
mcncccommonconfig_site1_cluster1
While
choosing the name of the namespace, make sure the following requirements are
met: - starts and ends with an alphanumeric character
- Contains a maximum of 63 characters
- contains only alphanumeric characters or '-'
- Log in to the server or machine which has permission to access the SQL nodes of the NDB cluster.
- Connect to the SQL node of the NDB cluster or connect to the
cnDBTier.
Run the following command to connect to the cnDBTier:
Example:$ kubectl -n <cndbtier_namespace> exec -it <cndbtier_sql_pod_name> -c <cndbtier_sql_container_name> -- bash
$ kubectl -n occne-cndbtier exec -it ndbmysqld-0 -c mysqlndbcluster -- bash
- Log in to the MySQL prompt using root permission or as a user with
permission to create new users (with permissions).
$ mysql -h 127.0.0.1 -u root -p
Note:
After running the command mentioned above, user must enter MySQL password. - Run the following command to check if Database
mcncccommonconfig exists:
$ show databases;
- Run the following command to create a mcncccommonconfig, if the
mcncccommonconfig does not
exist:
$ CREATE DATABASE IF NOT EXISTS <M-CNCC Common Config Database>;
- Run the following command to grant permission to cncc-user:
$ GRANT SELECT, INSERT, CREATE, ALTER, DROP, LOCK TABLES, CREATE TEMPORARY TABLES, DELETE, UPDATE, EXECUTE ON <M-CNCC Core Common Config Database>.* TO'<CNCC User Name>'@'%';
# Command to check if database exists:
$ show databases;
# Database creation for CNCC mcncccommonconfig if do not exists
$ CREATE DATABASE IF NOT EXISTS mcncccommonconfig;
# Granting permission to user:
$ GRANT SELECT, INSERT, CREATE, ALTER, DROP, LOCK TABLES, CREATE TEMPORARY TABLES, DELETE, UPDATE, EXECUTE ON mcncccommonconfig .* TO'cnccusr'@'%';
Configuring Secret to Enable HTTPS in M-CNCC Core
This section describes how to create secret configuration for enabling HTTPS. This section must be run before enabling HTTPS in CNCC Core Ingress Gateway.
Note:
The passwords for TrustStore and KeyStore are stored in respective password files.To create kubernetes secret for HTTPS, following files are required:
- ECDSA private key and CA signed certificate of CNCC (if initialAlgorithm is ES256)
- RSA private key and CA signed certificate of CNCC (if initialAlgorithm is RSA256)
- TrustStore password file
- KeyStore password file
- CA certificate or CA Bundle
Note:
For single cluster deployment, both M-CNCC Core and A-CNCC Core can use same configurations as both resides in same cluster namespace.Note:
For multi cluster deployment configurations need to be created on both the clusters separately.CA Bundle creation
When combining multiple CA certificates into a single certificate, add a delimiter after each certificate.
Delimiter: "--------"
Sample CA Bundle
-----BEGIN CERTIFICATE----- MIID4TCC... ... ...jtUl/zQ== -----END CERTIFICATE----- -------- -----BEGIN CERTIFICATE----- MIID4TCC... ... ...jtUl/zQ== -----END CERTIFICATE----- -------- -----BEGIN CERTIFICATE----- MIID4TCC... ... ...jtUl/zQ== -----END CERTIFICATE-----
Note:
Creation process for private keys, certificates and passwords is on discretion of user.This section explains how to create the secrets for enabling HTTPS after required certificates and password files are generated:
- Run the following command to create
secret:
$ kubectl create secret generic <secret-name> --from-file=<ssl_ecdsa_private_key.pem> --from-file=<rsa_private_key_pkcs1.pem> --from-file=<ssl_truststore.txt> --from-file=<ssl_keystore.txt> --from-file=<caroot.cer> --from-file=<ssl_rsa_certificate.crt> --from-file=<ssl_ecdsa_certificate.crt> -n <Namespace of CNCC Core Ingress Gateway secret>
Example:
kubectl create secret generic cncc-core-ingress-secret --from-file=ssl_ecdsa_private_key.pem --from-file=rsa_private_key_pkcs1.pem --from-file=ssl_truststore.txt --from-file=ssl_keystore.txt --from-file=caroot.cer --from-file=ssl_rsa_certificate.crt --from-file=ssl_ecdsa_certificate.crt -n cncc
secret/cncc-core-ingress-secret created
Note:
Note down the command used during the creation of kubernetes secret, this command is used for updates in future. - Run the following command to verify the secret creation:
$ kubectl describe secret cncc-core-ingress-secret -n cncc
Perform the following procedure to update existing secrets to enable HTTPS:
- Run the following command to create
secret:
$ kubectl create secret generic <secret-name> --from-file=<ssl_ecdsa_private_key.pem> --from-file=<rsa_private_key_pkcs1.pem> --from-file=<ssl_truststore.txt> --from-file=<ssl_keystore.txt> --from-file=<caroot.cer> --from-file=<ssl_rsa_certificate.crt> --from-file=<ssl_ecdsa_certificate.crt> --dry-run -o yaml -n <Namespace of M-CNCC Core Ingress Gateway secret> | kubectl replace -f - -n <Namespace of CNCC Core Ingress Gateway secret>
Example:
$ kubectl create secret generic cncc-core-ingress-secret --from-file=ssl_ecdsa_private_key.pem --from-file=rsa_private_key_pkcs1.pem --from-file=ssl_truststore.txt --from-file=ssl_keystore.txt --from-file=caroot.cer --from-file=ssl_rsa_certificate.crt --from-file=ssl_ecdsa_certificate.crt --dry-run -o yaml -n cncc | kubectl replace -f - -n cncc
- On successfully running the above command, the following message
will be displayed:
secret/cncc-core-ingress-secret replaced
Dynamic Reloading of Certificates of M-CNCC Core
CNC Console supports dynamic reloading of certificates that are used to establish both TLS and mTLS connections. To enable dynamic reloading of certificates, the following flags must be enabled in the occncc_custom_values_<version>.yaml file.
mcncc-core:
global:
ingressGwCertReloadEnabled: & mcoreIGwCertReloadEnabled true
Note:
Here the new certificate must be created with the existing secret and certificate name.- Delete the existing certificates with which existing secure connections were established.
- Create the new certificate as per the requirement. The certificate must be created with the same name as the existing certificate.
- The IGW pods automatically pick up the new certificates and the changes will be reflected in the browser.
Note:
Naming update of Certificates and Secrets
If the name of the secret or the certificate is changed then the corresponding changes must be made in the occncc_custom_values_<version>.yaml file and either a reinstall or a helm upgrade must be done.
A-CNCC Core Predeployment Configuration
Following are the predeployment configuration procedures:
Configuring A-CNCC Core Database
This section explains how to create A-CNCC Core database (acncccommonconfig) and grant permissions to the A-CNCC Core database user for relevant operations on acncccommonconfig Database.
Note:
CNCC Common Config DB Naming Convention
As the CNCC instances cannot share the same database, operator has to provide a unique name to the CNCC Common Config DB in the cnDBTier either limited to a site or spanning across sites.
<database-name>_<site-name>_<cluster>
acncccommonconfig_site1_cluster1
While
choosing the name of the namespace, make sure the following requirements are
met: - starts and ends with an alphanumeric character
- Contains a maximum of "63" characters
- contains only alphanumeric characters or '-'
- Log in to the server or machine which has permission to access the SQL nodes of the NDB cluster.
- Connect to the SQL node of the NDB cluster or connect to the
cnDBTier.
Run the following command to connect to the cnDBTier:
Example:$ kubectl -n <cndbtier_namespace> exec -it <cndbtier_sql_pod_name> -c <cndbtier_sql_container_name> -- bash
$ kubectl -n occne-cndbtier exec -it ndbmysqld-0 -c mysqlndbcluster -- bash
- Log in to the MySQL prompt using root permission or as a user with
permissions to create users (with specific permissions).
$ mysql -h 127.0.0.1 -u root -p
Note:
After running the command mentioned above, user must enter MySQL password. - Run the following command to check if Database
acncccommonconfig exists:
$ show databases;
- Run the following command to create a acncccommonconfig, if the
acncccommonconfig does not
exist:
$ CREATE DATABASE IF NOT EXISTS <A-CNCC Common Config Database>;
- Run the following command to grant permission to cncc-user:
$ GRANT SELECT, INSERT, CREATE, ALTER, DROP, LOCK TABLES, CREATE TEMPORARY TABLES, DELETE, UPDATE, EXECUTE ON <A-CNCC Common Config Database>.* TO'<CNCC User Name>'@'%';
# Command to check if database exists:
$ show databases;
# Database creation for CNCC acncccommonconfig if do not exists
$ CREATE DATABASE IF NOT EXISTS acncccommonconfig;
# Granting permission to user:
$ GRANT SELECT, INSERT, CREATE, ALTER, DROP, LOCK TABLES, CREATE TEMPORARY TABLES, DELETE, UPDATE, EXECUTE ON acncccommonconfig .* TO'cnccusr'@'%';
Configuring Secret to Enable HTTPS in A-CNCC Core
This section describes how to create secret configuration for enabling HTTPS. This section must be run before enabling HTTPS in A-CNCC Core Ingress Gateway.
Note:
The passwords for TrustStore and KeyStore are stored in respective password files.To create kubernetes secret for HTTPS, following files are required:
- ECDSA private key and CA signed certificate of CNCC (if initialAlgorithm is ES256)
- RSA private key and CA signed certificate of CNCC (if initialAlgorithm is RSA256)
- TrustStore password file
- KeyStore password file
- CA certificate or CA Bundle
Note:
For single cluster deployment, both M-CNCC Core and A-CNCC can use same configurations as both reside in same cluster namespace.Note:
For multi cluster deployment configurations need to be created on both the clusters separately.CA Bundle creation
When combining multiple CA certificates into a single certificate, add a delimiter after each certificate.
Delimiter: "--------"
Sample CA Bundle
-----BEGIN CERTIFICATE----- MIID4TCC... ... ...jtUl/zQ== -----END CERTIFICATE----- -------- -----BEGIN CERTIFICATE----- MIID4TCC... ... ...jtUl/zQ== -----END CERTIFICATE----- -------- -----BEGIN CERTIFICATE----- MIID4TCC... ... ...jtUl/zQ== -----END CERTIFICATE-----
Note:
Creation process for private keys, certificates and passwords is on discretion of user.
This section explains how to create the secrets for enabling HTTPS after required certificates and password files are generated:
- Run the following command to create
secret:
$ kubectl create secret generic <secret-name> --from-file=<ssl_ecdsa_private_key.pem> --from-file=<rsa_private_key_pkcs1.pem> --from-file=<ssl_truststore.txt> --from-file=<ssl_keystore.txt> --from-file=<caroot.cer> --from-file=<ssl_rsa_certificate.crt> --from-file=<ssl_ecdsa_certificate.crt> -n <Namespace of CNCC Core Ingress Gateway secret>
Example:
kubectl create secret generic cncc-core-ingress-secret --from-file=ssl_ecdsa_private_key.pem --from-file=rsa_private_key_pkcs1.pem --from-file=ssl_truststore.txt --from-file=ssl_keystore.txt --from-file=caroot.cer --from-file=ssl_rsa_certificate.crt --from-file=ssl_ecdsa_certificate.crt -n cncc
Note:
Note down the command used during the creation of Kubernetes secret, this command is used for updating the secrets in future.secret/cncc-core-ingress-secret created
- Run the following command to verify the secret creation:
$ kubectl describe secret cncc-core-ingress-secret -n cncc
Perform the following procedure to update existing secrets to enable HTTPS:
- Run the following command to create
secret:
$ kubectl create secret generic <secret-name> --from-file=<ssl_ecdsa_private_key.pem> --from-file=<rsa_private_key_pkcs1.pem> --from-file=<ssl_truststore.txt> --from-file=<ssl_keystore.txt> --from-file=<caroot.cer> --from-file=<ssl_rsa_certificate.crt> --from-file=<ssl_ecdsa_certificate.crt> --dry-run -o yaml -n <Namespace of CNCC Core Ingress Gateway secret> | kubectl replace -f - -n <Namespace of CNCC Core Ingress Gateway secret>
Example:
$ kubectl create secret generic cncc-core-ingress-secret --from-file=ssl_ecdsa_private_key.pem --from-file=rsa_private_key_pkcs1.pem --from-file=ssl_truststore.txt --from-file=ssl_keystore.txt --from-file=caroot.cer --from-fileS=ssl_rsa_certificate.crt --from-file=ssl_ecdsa_certificate.crt --dry-run -o yaml -n cncc | kubectl replace -f - -n cncc
- On successfully running the above command, the following message
will be displayed:
secret/cncc-core-ingress-secret replaced
Dynamic Reloading of Certificates of A-CNCC Core
CNC Console supports dynamic reloading of certificates that are used to establish both TLS and mTLS connections. To enable dynamic reloading of certificates, the following flags must be enabled in the occncc_custom_values_<version>.yaml file.
acncc-core:
global:
ingressGwCertReloadEnabled: &acoreIGwCertReloadEnabled true
Note:
Here the new certificate must be created with the existing secret and certificate name.- Delete the existing certificates with which existing secure connections were established.
- Create the new certificate as per the requirement. The certificate must be created with the same name as the existing certificate.
- The IGW pods automatically pick up the new certificates and the changes will be reflected in the browser.
Note:
Naming update of Certificates and Secrets
If the name of the secret or the certificate is changed then the corresponding changes must be made in the occncc_custom_values_<version>.yaml file and either a reinstall or a helm upgrade must be done.
Configuring A-CNCC Core mTLS
This section describes the A-CNCC Core Configuration for enabling mTLS.
mTLS Configuration at A-CNCC Core
mTLS must be enabled at the ingress-gateway SSL configuration section of the A-CNCC Core occncc_custom_values_<version>.yaml file. The parameter scheme must be set to https in the occncc_custom_values_<version>.yaml file.
Sample TLS Configuration section of A-CNCC Core:
acncc-core:
global
# CNCC https enabled
httpsEnabled: &httpsEnabled true
# Server Configuration for http and https support
enableIncomingHttp: &enableIncomingHttp false
enableIncomingHttps: &enableIncomingHttps true
# Enables server with MTLS
needClientAuth: &needClientAuth true
Note:
While enabling mTLS, needClientAuth must be set to true in A-CNCC Core.
Deploying CNC Console
This section provides installation procedures to install CNC Console using Command Line Interface (CLI). To install CNC Console using CDCS, see Oracle Communications Cloud Native Core CD Control Server User Guide.
- Run the following command to check the version of the helm chart
installation:
Example:helm search repo <release_name> -l
helm search repo cncc -l
NAME CHART VERSION APP VERSION DESCRIPTION ocspf-helm-repo/cncc 22.3.2 22.3.2 A Helm chart for CNC Console
- Prepare the
occncc_custom_values_<version>.yaml
file with the required parameter information. For configuring custom-cncc_values.yaml file, see CNC Console Configuration Parameters section.Note:
The annotation metallb.universe.tf/address-pool: signaling/oam is required in global section if MetalLB in CNE 1.8.x onwards is used.customExtension: lbServices: labels: {} annotations: # The annotation metallb.universe.tf/address-pool: signaling/oam is required if MetalLB in CNE 1.8.x is used metallb.universe.tf/address-pool: oam service.beta.kubernetes.io/oci-load-balancer-internal: "true"
Note:
The annotationoracle.com.cnc/app-protocols: '{"http2-tls":"TCP"}'
is required in global section of custom-cncc-iam_values.yaml file when CNC Console is deployed with HTTPs enabled in CNE.customExtension: lbServices: labels: {} annotations: oracle.com.cnc/app-protocols: '{"http2-tls":"TCP"}'
Following configurations are needed in occncc_custom_values_<version>.yaml file. This includes configuring the following based on the deployment:
- Update unique CNCC ID per cluster (global.self.cnccId )
- Provide the details of M-CNCC IAMs (mCnccIams)
- Provide the details of A-CNCC (aCnccs)
- Provide the details of Agent Instances (instances)
- In case of M-CNCC Core, additionally provide the details of M-CNCC Cores and M-CNCC Instances (instances)
Note:
-
For instances configuration details see, CNC Console Instances Configurations section and section CNC Console Instances Configuration Options section.
- There are multiple M-CNCC, A-CNCC, NF Instances, and OCCNE Instances. So, be cautious while updating coccncc_custom_values_<version>.yaml file.
-
In case of M-CNCC Core,
cmservice.envSystemName in occncc_custom_values_<version>.yaml file
can be used to display cluster name.
Example: envSystemName: CNCC - Site Name
- Routes creation happens automatically, there is no need to provide routes in the ingress-gateway section; only instances details have to be provided in global section. A-CNCC and M-CNCC Core uses same cncc helm chart, only deployment configurations may differ.
- See CNC Console Deployment Configuration Workflow section for details on deployment specific configuration updates CNC Console Deployment Configuration Workflow.
- The following are the Sample configuration section for CNCC:
- Single Cluster Deployment
Sample configuration section for CNCC in case of single cluster deployment
global: cncc-iam: enabled: true mcncc-core: enabled: true acncc-core: enabled: true isMultiClusterDeployment: false # Automatic route generation for CNCC Manager Deployment self: cnccId: Cluster1 mCnccIams: - id: Cluster1 ip: 10.xx.xx.xx mCnccCores: - id: Cluster1 aCnccs: - id: Cluster1 role: Cluster1 fqdn: cncc-acore-ingress-gateway.cncc.svc.bumblebee port: 80 instances: - id: Cluster1-grafana type: CS owner: Cluster1 fqdn: occne-kube-prom-stack-grafana.occne-infra.svc.bumblebee apiPrefix: /bumblebee/grafana - id: Cluster1-kibana type: CS owner: Cluster1 fqdn: occne-kibana.occne-infra.svc.bumblebee apiPrefix: /bumblebee/kibana - id: Cluster1-scp-instance1 type: SCP owner: Cluster1 fqdn: ocscp-scpc-configuration.scp.svc.bumblebee port: 80
- Multi Cluster Deployment
Sample configuration section for manager only deployment set cncc-iam, mcncc-core to "true" and acncc-core to "false".
global: cncc-iam: enabled: true mcncc-core: enabled: true acncc-core: enabled: false isMultiClusterDeployment: true # Automatic route generation for CNCC Manager Deployment self: cnccId: Cluster1 mCnccIams: - id: Cluster1 ip: 10.xx.xx.xx mCnccCores: - id: Cluster1 aCnccs: - id: Cluster2 role: Cluster2 ip: 10.xx.xx.xx port: 80 instances: - id: Cluster1-grafana type: CS owner: Cluster1 fqdn: occne-kube-prom-stack-grafana.occne-infra.svc.bumblebee apiPrefix: /bumblebee/grafana - id: Cluster1-kibana type: CS owner: Cluster1 fqdn: occne-kibana.occne-infra.svc.bumblebee apiPrefix: /bumblebee/kibana - id: Cluster2-kibana type: CS owner: Cluster2 fqdn: occne-kibana.occne-infra.svc.jazz apiPrefix: /jazz/kibana - id: Cluster2-scp-instance2 type: SCP owner: Cluster2 fqdn: ocscp-scpc-configuration.scp.svc.jazz port: 80
Sample configuration section for manager managing local NFs. User must configure cncc-iam, mcncc-core and acncc-core flag to "true".global: cncc-iam: enabled: true mcncc-core: enabled: true acncc-core: enabled: true isMultiClusterDeployment: true # Automatic route generation for CNCC Manager Deployment self: cnccId: Cluster1 mCnccIams: - id: Cluster1 ip: 10.xx.xx.xx mCnccCores: - id: Cluster1 aCnccs: - id: Cluster1 role: Cluster1 fqdn: cncc-acore-ingress-gateway.cncc.svc.bumblebee port: 80 - id: Cluster2 role: Cluster2 ip: 10.xx.xx.xx port: 80 instances: - id: Cluster1-grafana type: CS owner: Cluster1 fqdn: occne-kube-prom-stack-grafana.occne-infra.svc.bumblebee apiPrefix: /bumblebee/grafana - id: Cluster1-kibana type: CS owner: Cluster1 fqdn: occne-kibana.occne-infra.svc.bumblebee apiPrefix: /bumblebee/kibana - id: Cluster1-scp-instance1 type: SCP owner: Cluster1 fqdn: ocscp-scpc-configuration.scp.svc.bumblebee port: 80 - id: Cluster2-scp-instance2 type: SCP owner: Cluster2 fqdn: ocscp-scpc-configuration.scp.svc.jazz port: 80
Sample configuration section for agent only deployment. User must configure cncc-iam and mcncc-core to "false" and acncc-core to "true".
global: cncc-iam: enabled: false mcncc-core: enabled: false acncc-core: enabled: true isMultiClusterDeployment: true # Automatic route generation for CNCC Manager Deployment self: cnccId: Cluster2 mCnccIams: - id: Cluster1 ip: 10.xx.xx.xx mCnccCores: - id: Cluster1 aCnccs: - id: Cluster2 role: Cluster2 instances: - id: Cluster2-kibana type: CS owner: Cluster2 fqdn: occne-kibana.occne-infra.svc.jazz apiPrefix: /jazz/kibana - id: Cluster2-scp-instance2 type: SCP owner: Cluster2 fqdn: ocscp-scpc-configuration.scp.svc.jazz port: 80
Note:
- In the above examples, mCnccIams port is assumed as "80". The mCnccIams port configuration must be added only if port value is other than "80".
- Instance id must be globally unique as it will be used for routing, here is the recommendation for id naming
id: <owner>-<instance name>
Example:
id: Cluster2-scp-instance2
aCnccs.id
:- is mandatory as its needed for site authorization
aCnccs.id
value must be same asself.cnccId
aCnccs.role
andmCnccCores.role
are optional, which can be used for overriding site role name.
- For HTTPS enabled deployment scheme and port has to be updated to "https" and
"https port value" in
mCnccIams
andaCnccs
. For sample configuration, see CNCC Core InstancesConfiguration examples listed in appendix.
- Single Cluster Deployment
- Deploy M-CNCC IAM using repository and helm tar.
Caution:
The CNCC helm install command may take longer than usual time to run because the kubernetes job runs through install helm hook. Helm deployment status is shown as DONE after the applicable hook is run.
Caution:
Pod restarts maybe observed at M-CNCC Core ingress-gateway during fresh installation, upgrade, or rollback. This is because M-CNCC Core ingress-gateway internally check if CNCC IAM KC pod is up or not via CNCC IAM ingress-gateway. Once CNCC IAM KC pod is up then you should see M-CNCC Core ingress-gateway in running state.
To verify the deployment status, open a new terminal and run the following command:
Example:kubectl get pods -n <namespace_name> -w
kubectl get pods -n cncc -w
The pod status gets updated on a regular interval. When helm install command is run and exits with the status, you may stop watching the status of Kubernetes pods.
Note:
If helm purge do not clean the deployment and Kubernetes objects completely, then follow CNC Console IAM Clean up section.dbVendor: mysql dbName: cnccdb dbHost: mysql-sds.default.svc.cluster.local dbPort: 3306
Note:
Database must be created first and that Database name must be mentioned as dbName.- Run the following command for installing using helm repository:
helm install <release_name> <helm-repo> -f occncc_custom_values_22.3.2.yaml --namespace <namespace_name> --version <helm_version>
Where:
helm-repo: repository name where the helm images, charts are stored
values: helm configuration file which needs to be updated based on the docker registry
release_name and namespace_name: depends on customer configuration
Example:
helm install cncc ocscp-helm-repo/cncc -f occncc_custom_values_22.3.2.yaml --namespace cncc --version 22.3.2
- Run the following command for Installing using helm tar:
helm install cncc -f occncc_custom_values_22.3.2.yaml --namespace <namespace> <chartpath>./<chart>.tgz
Example:
helm install cncc -f occncc_custom_values_22.3.2.yaml --namespace cncc occncc-22.3.2.tgz
- Run the following command for installing using helm repository:
- Run the following commands to upgrade the CNCC Configuration:
Note:
For details about CNC Console Deployment Configuration workflow, see CNC Console Deployment Configuration Workflow section.- Prepare the occncc_custom_values_<version>.yaml file for upgrade
- Upgrade CNCC
- Run the following command for upgrading using helm
repository:
Example:$ helm3 upgrade <release_name> <helm_chart> -f <occncc_custom_values_<version>.yaml> --namespace <namespace-name>
$ helm3 upgrade cncc ocspf-helm-repo/cncc -f occncc_custom_values_22.3.2.yaml --namespace cncc
- Run the following command for upgrading using helm
tar:
Example:helm upgrade cncc -f occncc_custom_values_<version>.yaml --namespace <namespace> <chartpath>./<chart>.tgz
helm upgrade cncc -f occncc_custom_values_22.3.2.yaml --namespace cncc occncc-22.3.2s.tgz
- Run the following command to check the deployment status:
helm status <release_name>
- Run the following command to check if all the services are deployed and
running:
kubectl -n <namespace_name> get services
Example:
Example:$ kubectl -n cncc get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE cncc-acore-cmservice ClusterIP 10.233.41.221 <none> 8442/TCP 24h cncc-acore-igw-cache ClusterIP None <none> 8000/TCP 24h cncc-acore-ingress-gateway ClusterIP 10.233.47.246 <none> 80/TCP 24h cncc-iam-igw-cache ClusterIP None <none> 8000/TCP 24h cncc-iam-ingress-gateway LoadBalancer 10.233.3.123 10.75.224.188 80:30185/TCP 24h cncc-iam-kc-headless ClusterIP None <none> 8285/TCP 24h cncc-iam-kc-http ClusterIP 10.233.42.16 <none> 8285/TCP,8443/TCP,9990/TCP 24h cncc-mcore-cmservice ClusterIP 10.233.9.144 <none> 8442/TCP 24h cncc-mcore-igw-cache ClusterIP None <none> 8000/TCP 24h cncc-mcore-ingress-gateway LoadBalancer 10.233.44.167 10.75.224.189 80:30175/TCP 24h
- Run the following command to check if all the pods are up and
running:
kubectl -n <namespace_name> get pods
Example:
$ kubectl -n cncc get pods
Example:NAME READY STATUS RESTARTS AGE cncc-acore-cmservice-8699559488-jxwwt 1/1 Running 0 24h cncc-acore-ingress-gateway-c685bf678-bgmdf 1/1 Running 0 24h cncc-iam-ingress-gateway-6776df55cd-xzx2m 1/1 Running 0 24h cncc-iam-kc-0 2/2 Running 0 24h cncc-mcore-cmservice-587749d58d-8lnd7 1/1 Running 0 24h cncc-mcore-ingress-gateway-59758876b-zc7d7 1/1 Running 0 24h
Caution:
Do not exit from helm install command manually. After running the helm install command, it will take a while to install all the services. This is because during installation Kubernetes jobs are initiated by helm hooks. For verifying the installation status, see Verifying CNC Console IAM Installation.Note:
timeout duration (optional): If not specified, the default value will be 5m (5 minutes) in Helm3. Specifies the time to wait for any individual Kubernetes operation (like Jobs for hooks). The default value is 5m0s. If the helm install command fails at any point to create a Kubernetes object, it will internally call the purge to delete after timeout value (default: 300s). Here timeout value is not for overall install, but it is for automatic purge on installation failure.Verifying CNC Console Installation
This section describes how to verify if CNC Console is installed successfully.
- To check the installation status, run the following
command:
For example:helm ls -n <release-namespace>
helm ls -n cncc
You should see the status as DEPLOYED if the deployment is successful.
- To get the status of jobs and pods, run the following
command:
For example:kubectl get jobs,pods -n release_namespace
kubectl get pod -n cncc
You should see the status as Running and Ready for all the pods if the deployment is successful.
- Run the following command to check the status of the services:
kubectl get services -n release_namespace
kubectl get services -n cncc
Note:
Take a backup of the following files that are required during disaster recovery:
- Updated occncc_custom_values_<version>.yaml file
- Updated helm charts
- secrets, certificates, and keys that are used during installation
Note:
If the installation is not successful or you do not see the status as Running for all the pods, perform the troubleshooting steps provided in Oracle Communications Cloud Native Core Console Troubleshooting Guide.CNC Console Microservices
This section provides the details of CNC Console microservices.
M-CNCC IAM Microservices
M-CNCC IAM has the microservices which are responsible for Identity Access Management:
Table 3-2 CNC Console IAM Microservices
NAME | TYPE | CLUSTER-IP | EXTERNAL-IP | PORT(S) | AGE |
---|---|---|---|---|---|
cncc-iam-kc-headless | ClusterIP | None | <none> | 8285/TCP | 9m13s |
cncc-iam-kc-http | ClusterIP | 10.233.25.75 | <none> | 8285/TCP | 9m13s |
cncc-iam-ingress-gateway | LoadBalancer | 10.233.7.236 | 10.75.182.72 | 8080:30346/TCP | 9m13s |
cncc-iam-cncc-iam-igw-cache | ClusterIP | None | <none> | 8000/TCP | 9m13s |
Note:
cncc-iam-cncc-iam-igw-cache
is an ingress gateway coherence
service which is enabled by default by ingress-gateway chart. CNC Console IAM
does not use this feature.
M-CNCC Core Microservices
M-CNCC Core has two microservices:
- cncc-mcore-ingress-gateway: cncc-mcore-ingress-gateway is responsible to redirect the request to either producer NF or CNCC Core GUI.
- cncc-mcore_cmservice: cncc-mcore_cmservice is responsible for displaying CNCC Core GUI.
Following is an example of services M-CNCC Core offers:
Table 3-3 M-CNCC Core Microservices
NAME | TYPE | CLUSTER-IP | EXTERNAL-IP | PORT(S) | AGE |
---|---|---|---|---|---|
cncc-mcore-cmservice | ClusterIP | 10.108.119.182 | <none> | 8442/TCP | 24h |
cncc-mcore-igw-cache | ClusterIP | None | <none> | 8000/TCP | 24h |
cncc-mcore-ingress-gateway | LoadBalancer | 10.103.6.17 | <pending> | 8080:31417/TCP | 24h |
A-CNCC Core Microservices
A-CNCC Core has the following microservices:
- cncc-acore-ingress-gateway: cncc-acore-ingress-gateway is responsible to redirect the request to either producer NF or CNCC Core GUI.
- cncc-acore_cmservice: cncc-acore_cmservice is responsible for displaying CNCC Core GUI.
Following is an example of services A-CNCC Core offers:
Table 3-4 A-CNCC Core Microservices
NAME | TYPE | CLUSTER-IP | EXTERNAL-IP | PORT(S) | AGE |
---|---|---|---|---|---|
cncc-acore-cmservice | ClusterIP | 10.106.93.165 | <none> | 8442/TCP | 24h |
cncc-acore-cncc-core-igw-cache | ClusterIP | None | <none> | 8000/TCP | 24h |
cncc-acore-ingress-gateway | ClusterIP | 10.105.11.175 | <none> | 8080/TCP | 24h |
Note:
cncc-acore-igw-cache
is an
ingress gateway coherence service which is enabled by default by ingress-gateway
helm chart, CNC Console Core does not use this feature.