Giter VIP home page Giter VIP logo

ibm-licensing-operator's Introduction

IMPORTANT: The master branch contains the currently developed version of License Service and its content should not be used. Switch to another branch to view the content for the already-released version of License Service, for example release-<version> branch.

You can install License Service with ibm-licensing-operator to collect license usage information in two scenarios:

ibm-licensing-operator

Scenario: License Service as a part of an IBM Cloud Pak (included in IBM Cloud Pak foundational services)

Important: Do not install this operator directly. Only install this operator using the IBM IBM Cloud Pak foundational services operator. For more information about installing this operator and other foundational services operators, see Installer documentation. If you are using this operator as part of an IBM Cloud Pak, see the documentation for that IBM Cloud Pak to learn more about how to install and use the operator service. For more information about IBM Cloud Paks, see IBM Cloud Paks that use IBM Cloud Pak foundational services.

You can use the ibm-licensing-operator to install License Service as a part of IBM Cloud Pak foundational services or an IBM Cloud Pak. You can use License Service to collect information about license usage of IBM containerized products and IBM Cloud Paks per cluster. You can retrieve license usage data through a dedicated API call and generate an audit snapshot on demand.

For more information about the available IBM Cloud Pak foundational services, see the IBM Documentation.

Supported platforms

Red Hat OpenShift Container Platform 4.2 or newer installed on Linux x86_64, Linux on Power (ppc64le), Linux on IBM Z and LinuxONE.

Operator versions

  • 1.0.0, 1.1.0, 1.1.1, 1.1.2, 1.1.3, 1.2.2, 1.2.3, 1.3.1, 1.4.1, 1.5.0, 1.6.0, 1.7.0, 1.8.0, 1.9.0, 1.10.0, 1.11.0, 1.12.0, 1.13.0, 1.14.0, 1.15.0, 1.16.0, 1.17.0, 1.18.0, 1.19.0, 1.20.0, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.20.7, 1.20.8, 1.20.9, 1.20.10, 1.20.11, 1.20.12

Prerequisites

Before you install this operator, you need to first install the operator dependencies and prerequisites:

Important: If you installed License Service with the stand-alone IBM containerized software and you want to install an IBM Cloud Pak, it is recommended to first uninstall License Service from every cluster. Before uninstalling, the best practice is to retrieve an audit snapshot to ensure no data is lost. The Cloud Pak will install a new instance of License Service. This is a temporary action that we would like to automate in the future.

Documentation

To install the operator with the IBM Cloud Pak foundational services Operator follow the installation and configuration instructions within the IBM Documentation.

SecurityContextConstraints Requirements

License Service supports running with the OpenShift Container Platform 4.3 default restricted Security Context Constraints (SCCs).

For more information about the OpenShift Container Platform Security Context Constraints, see Managing Security Context Constraints.

ibm-licensing-operator for deploying License Service without an IBM Cloud Pak

Scenario: Learn how to deploy License Service on Kubernetes clusters without an IBM CLoud Pak

You can use the ibm-licensing-operator to install License Service on any Kubernetes cluster without an IBM Cloud Pak. License Service collects information about license usage of IBM Containerized Products. You can retrieve license usage data through a dedicated API call and generate an audit snapshot on demand.

Product documentation

For the overview and documentation, see License Service deployment without an IBM Cloud for IBM stand-alone IBM Containerized Software.

Note: License Service Reporter, which is an extension of License Service that aggregates the license usage data from multiple clusters, is not available without an IBM Cloud Pak on OpenShift Container Platform. License Service Reporter is only available as a part of an IBM Cloud Pak on OpenShift Container Platform (included in IBM Cloud Pak foundational services).

ibm-licensing-operator's People

Contributors

ab-ibm avatar adamdyszy avatar antyona avatar arturobrzut avatar ashank07 avatar geforcelive avatar horis233 avatar ibm-ci-bot avatar imgbot[bot] avatar imgbotapp avatar jakubsolecki avatar jan-olszowka avatar kacperkrzyzak avatar kmigielek avatar krzysztof-buda avatar marcin-ozog avatar martabereta avatar pawicao-ibm avatar pejdzor avatar piotr-kotara-ibm avatar piotrwodecki avatar stevemar avatar szymonkowalczyk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ibm-licensing-operator's Issues

Only products deployed to same namespace as operator seem to be tracked

Hi

I've deployed the IBM Licensing Operator following the instructions specified here:
https://github.com/IBM/ibm-licensing-operator/blob/latest/docs/Content/Install_on_OCP.md

Following these instructions the operator is installed in the ibm-common-services namespace.
The operator installs correctly and the instance is running.
However none of our products are being picked up in their respective namespaces.

As a test I deployed a demo application in the ibm-common-services namespace and this does get picked up by the IBM Licensing instance.

The product we deploy is IBM WebSphere Liberty using the OpenLiberty Operator
Following annotations are set (example data):
productChargedContainers: All
productID: 87f3487c22f34742a799164f3f3ffa78
productMetric: VIRTUAL_PROCESSOR_CORE
productName: IBM WebSphere Application Server Liberty Core

How can I configure the IBM Licensing Operator to pick up products in namespaces other than the ibm-common-services?

Security Context / Seccomp Settings

Hello,

It it possible to set

spec.securityContext.seccompProfile.type, 
spec.containers[*].securityContext.seccompProfile.type, 
spec.initContainers[*].securityContext.seccompProfile.type, and 
spec.ephemeralContainers[*].securityContext.seccompProfile.type 

to RuntimeDefault within an IBM Licensing service deployment without disabling any functionality?
This is needed for security hardening.

Thank you

Helm Chart - IBM License operator

Hi,

Is there any helm chart available or in pipeline to have the license operator installed and managed more efficiently than shell scripts. It would help us in GitOps CD deployment on all clusters.

Error when creating an instance in IBM Cloud ROKS

On IBM Cloud ROKS,
An error occurs when trying to create an instance with the following options.
deployments are not created because of this error.
Setting "routeEnabled: true" resolves this issue, but I would like to keep it to false.
This error does not occur in IKS, and it does not occur in versions prior to 1.20.3.

httpsEnable: false
ingressEnabled: false
routeEnabled: false

Operator version: 1.20.3

Error message

E0514 23:50:44.735331       1 filtered-cache.go:222] Failed to retrieve resource listerrorresource name may not be empty
2023-05-14T23:50:44Z	INFO	controllers.IBMLicensing	certificate secret not existing. Generating self signed certificate	{"cert name": "/"}
2023-05-14T23:50:53Z	ERROR	controllers.IBMLicensing	Error creating self signed certificate	{"error": "an empty namespace may not be set during creation"}
github.com/IBM/ibm-licensing-operator/controllers.(*IBMLicensingReconciler).reconcileCertificateSecrets
	/home/prow/go/src/github.com/IBM/ibm-licensing-operator/controllers/ibmlicensing_controller.go:581
github.com/IBM/ibm-licensing-operator/controllers.(*IBMLicensingReconciler).Reconcile
	/home/prow/go/src/github.com/IBM/ibm-licensing-operator/controllers/ibmlicensing_controller.go:199
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile
	/home/prow/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:121
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler
	/home/prow/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:320
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
	/home/prow/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:273
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
	/home/prow/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:234
2023-05-14T23:50:53Z	ERROR	Reconciler error	{"controller": "ibmlicensing", "controllerGroup": "operator.ibm.com", "controllerKind": "IBMLicensing", "iBMLicensing": {"name":"instance"}, "namespace": "", "name": "instance", "reconcileID": "fed9ecbe-9e48-40a0-8d1b-d8aa3028c479", "error": "an empty namespace may not be set during creation"}
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
	/home/prow/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:273
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
	/home/prow/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:234

ILS Reporter

hi!

As license server reporter is part of this installation (crd, container,...)
-> Is the license server reporter installation available for offline installation (non cloudpak, non openshift - default kubernetes)?

kind regards

Report does not appear to find installed software

When using IBM License Service 1.16.3 installed as per https://www.ibm.com/docs/en/cpfs?topic=software-offline-installation, no products appear to be found after multiple data imports.

IBM Software is running in containers on this cluster, however. IBM License Metric Tool agents that are running on the worker Nodes of this cluster are finding that software.

The logs from the service instance Pod look like this:

2022-09-13 16:32:20.261 [scheduling-1] INFO  Starting data import with datacollector data source
2022-09-13 16:32:20.261 [scheduling-1] INFO  Using namespace ibm-common-services
2022-09-13 16:32:22.619 [scheduling-1] INFO  Starting data snapshots processing
2022-09-13 16:32:22.620 [scheduling-1] INFO  Processing data snapshot from 2022-09-13T16:32:22.568329Z
2022-09-13 16:32:22.620 [scheduling-1] INFO  No products processed during this import
2022-09-13 16:32:22.620 [scheduling-1] INFO  Data import with datacollector data source finished
2022-09-13 16:33:05.745 [qtp1196982797-19] INFO  Api Request: GET - /
2022-09-13 16:34:05.744 [qtp1196982797-16] INFO  Api Request: GET - /
2022-09-13 16:35:05.744 [qtp1196982797-13] INFO  Api Request: GET - /
2022-09-13 16:35:31.954 [qtp1196982797-17] INFO  Api Request: GET - /
2022-09-13 16:36:05.744 [qtp1196982797-13] INFO  Api Request: GET - /
2022-09-13 16:37:05.744 [qtp1196982797-19] INFO  Api Request: GET - /
2022-09-13 16:37:20.261 [scheduling-1] INFO  Starting data import with datacollector data source
2022-09-13 16:37:20.261 [scheduling-1] INFO  Using namespace ibm-common-services
2022-09-13 16:37:23.208 [scheduling-1] INFO  Starting data snapshots processing
2022-09-13 16:37:23.208 [scheduling-1] INFO  Processing data snapshot from 2022-09-13T16:37:23.043093Z
2022-09-13 16:37:23.208 [scheduling-1] INFO  No products processed during this import
2022-09-13 16:37:23.208 [scheduling-1] INFO  Data import with datacollector data source finished
<snip>

Accessing the status endpoint through an ingress shows the status page, but products, bundled products, nodes and pods are all empty. Downloading a report works, but the contents of the zip file appear to mostly be empty other than the header rows.

excluding namespaces in a multi-tenant kubernetes environment

Hi,
we have a feature request to be able to exclude namespaces in a multi-tenant kubernetes cluster. For compliance reasons we can't allow the license operator to scan all namespaces in our AKS cluster. We have tried modifying the role binding for the service account but the software fails.
This feature would be greatly appreciated so that we can monitor the license usage only for the IBM related namespaces in our cluster.
Thanks in advance!

//Jonas

Namespace field missing from config/manager/manager.yaml when using offline install for stand-alone IBM Containerized Software

The instructions here:
https://www.ibm.com/docs/en/cpfs?topic=software-offline-installation

Using latest branch (at the time 1.16.3), in point 3e, it indicates to use kubectl to apply config/manager/manager.yaml to the Kubernetes cluster. This file, however, includes a Deployment definition that does not include a namespace name in the metadata:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: ibm-licensing-operator
spec:
<snip>

Unless the user has specified a default Namespace for kubectl of ibm-common-services, this will be deployed to whatever their default Namespace happens to be (typically "default", but could be other values as well).

The Deployment, however, references a serviceAccountName: ibm-licensing-operator , which is defined in config/rbac/service_account.yaml - and this ServiceAccount does specify the ibm-common-services namespace. As a result, the Deployment does not work.

To be consistent with the other manifests, the Deployment defined in config/manager/manager.yaml should have a namespace attribute of ibm-common-services added to the metadata.

Operator pod fails to watch deployment when not using OLM

We've deployed this operator into Openshift 3.11 which doesn't have Operator Lifecycle Manager (OLM) and using the instructions on this page (https://github.com/IBM/ibm-licensing-operator/blob/v1.7.0/docs/Content/Install_without_OLM.md) the operator pod fails to start with the following error:

E0825 03:18:28.082831 1 reflector.go:127] pkg/mod/k8s.io/[email protected]/tools/cache/reflector.go:156: Failed to watch 
*v1.Deployment: failed to list *v1.Deployment: deployments.apps is forbidden: User "system:serviceaccount:ibm-common- 
services:ibm-licensing-operator" cannot list deployments.apps at the cluster scope: no RBAC policy matched

This is due to the operator deployment setting the WATCH_NAMESPACE environment variable to
metadata.annotations['olm.targetNamespaces']. This causes the operator pod to try to start watching all namespaces but doesn't have the required cluster roles. The work around for us is to set the WATCH_NAMESPACE env variable to metadata.namespace .

Option to specify host & path for route

Hi

We are currently installing the IBM Licensing Operator on openshift without a cloudpak.
Our instance looks as following:

apiVersion: operator.ibm.com/v1alpha1
kind: IBMLicensing
metadata:
  name: instance
spec:
  apiSecretToken: ibm-licensing-token
  datasource: datacollector
  httpsEnable: false
  routeEnabled: true
  routeOptions:
    tls:
      termination: edge
  resources:
    limits:
      cpu: 500m
      memory: 512Mi
    requests:
      cpu: 200m
      memory: 256Mi

This works great and we get a route with termination edge, however I would like to be able to specify the host (and path) used for the route. This seems to be possible when defining an ingress using ingressOptions, but not for a route using routeOptions.

Could this be implemented?

Install IBM Licensing Operator in Kubernetes without Ingress and OLM (Using Istio LB and Virtual Services instead)

Hello,

Our current Infrastructure in Kubernetes does not use Ingress for accessing the Kubernetes Cluster and exposing Endpoints. Instead we are using the Managed Istio in the IBM Cloud and we are Using Istio Loadbalancer, Istio Gateways and Virtual Services for exposing the Endpoints outside of the Cluster.

We also don't use Cloud Packs.

But in the installation documentation of the IBM Licensing there is no instruction of how to use the IBM Licensing Operator without Istio and there is also no instruction of how to test the installation.

Could you provide a documentation or Guidelines of how to use the IBM Licensing Operator with Istio?

Thank you

AKS installation - Role / API issues

Hello,

In order to follow new licencing rules, we tried installation of ibm-licensing-operator in AKS Rbac enabled cluster.
We tried to install License Service for stand-alone IBM Containerized Software without IBM Cloud Paks.

Apparently there is issues with roles and roleBinding.

Some additional rules seems needed at cluster scope.

Failed to watch *v1.Deployment: failed to list *v1.Deployment: deployments.apps is forbidden: User "system:serviceaccount:ibm-common-services:ibm-licensing-operator" cannot list resource "deployments" in API group "apps" at the cluster scope
Failed to watch *v1.Service: failed to list *v1.Service: services is forbidden: User "system:serviceaccount:ibm-common-services:ibm-licensing-operator" cannot list resource "services" in API group "" at the cluster scope
Failed to watch *v1.Secret: failed to list *v1.Secret: secrets is forbidden: User "system:serviceaccount:ibm-common-services:ibm-licensing-operator" cannot list resource "secrets" in API group "" at the cluster scope
.....

We need this rule to be at cluster scope level so in clusterRole ibm-licensing-operator

  • apiGroups:
    • ""
      resources:
    • services
    • secrets
    • configmaps
    • pods
      verbs:
    • get
    • list
    • watch
  • apiGroups:
    • extensions
      resources:
    • ingresses
      verbs:
    • get
    • list
    • watch

The ibm-license-service is not in the role.yaml file but in role_operand.yaml

The documentation seems incorrect, the same with the tag to use when we clone the repo.

Once done how to contact this service to retrieve data? Snapshot?
Only calling the service thanks to ingress seems not to work.
even calling the /version return an malformed response

Regards,

No product found/ Empty audit snapshot

Hello,

We installed the ibm-licensing-operator following documentation below

https://github.com/IBM/ibm-licensing-operator/blob/release-1.4/docs/Content/Install_without_OLM.md

We make a simple by deploying websphere-liberty on AKS based on dockerfile like below ..
'FROM websphere-liberty:kernel
...

RUN configure.sh

EXPOSE 9080
'

The snapshop is download but all excels are empty,
Bundle and products reports return [].

Is there something missing? Did we need to activate specific feature ?

What should be in unrecognized-apps ? It's linked to IBM resources or to list others apps, deployment withour IBM products?
This file is empty too.

Thanks in advance.

Regards,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.