Code Monkey home page Code Monkey logo

oracle / oci-service-operator Goto Github PK

View Code? Open in Web Editor NEW
31.0 11.0 21.0 9.34 MB

The OCI Service Operator for Kubernetes (OSOK) makes it easy to connect and manage OCI services from a cloud native application running in a Kubernetes environment.

License: Other

Dockerfile 0.09% Makefile 0.60% Go 99.31%
kubernetes kubernetes-operator operator-sdk oracle-cloud-infrastructure oci-service-operator autonomous-database cloud oracle-cloud oracle-streaming

oci-service-operator's Issues

Install plan is not available for the subscription oci-service-operator

I am trying to install service mesh in OKE.
I am following https://docs.oracle.com/en-us/iaas/Content/service-mesh/ovr-getting-started-osok.htm and https://github.com/oracle/oci-service-operator/blob/v1.1.3/docs/installation.md to install it.

Versions I am using:
Kubernetes: 1.24.1
Operator: 1.23.0
OLM: 0.22.0
oci-service-operator: 1.1.3

But every time it stuck in one step.

INFO[0003] Creating a File-Based Catalog of the bundle "iad.ocir.io/oracle/oci-service-operator-bundle:1.1.3"
INFO[0004] Generated a valid File-Based Catalog
INFO[0007] Created registry pod: iad-ocir-io-oracle-oci-service-operator-bundle-1-1-3
INFO[0007] Created CatalogSource: oci-service-operator-catalog
INFO[0007] OperatorGroup "operator-sdk-og" created
INFO[0007] Created Subscription: oci-service-operator-v1-1-3-sub
FATA[0300] Failed to run bundle: install plan is not available for the subscription oci-service-operator-v1-1-3-sub: timed out waiting for the condition

I tried with different versions too, like
OLM: 0.20.0
oci-service-operator: 1.1.1
But issue is always same.

I have checked the old issue '#5' and it did not give any resolution and without providing it, issue got closed.

Can you guys please help me here to resolve it?

pulling the OSOK container gives unauthorised error

The instructions say to install the OSOK, however attempting to pull the bundle results in an Unauthorised error
docker pull iad.ocir.io/oracle/oci-service-operator-bundle:1.1.1
The same applies when trying to use the operator-sdk to install it.
The container image repo needs to be made public readable
(This also applies to the 1.1.0 version, I haven't tested others, but I suspect as they are tags on the same repo that this will apply to all versions)

does oci-service-operator-bundle support ARM?

Hi, I am facing issue in run oci-service-operator-bundle on ARM nodes in kubernetes cluster.

Here is command for run:
operator-sdk run bundle iad.ocir.io/oracle/oci-service-operator-bundle:1.1.0 -n oci-service-operator-system --timeout 5m

Error:
The above command stuck at "Waiting for ClusterServiceVersion "oci-service-operator-system/oci-service-operator.v1.1.0" to reach 'Succeeded' phase". And after that timeout happened. And there will be pods in "oci-service-operator-system" namespace with "Init:Error" status. This pods are created by Kubernetes Job.

Screenshot 2022-05-24 at 12 47 47 AM

Screenshot 2022-05-24 at 12 47 21 AM

Provide an installer manifest or helm chart

The installation process is cumbersome and requires the installation of several dependencies that are only used to deploy the operator. Since there are really no configuration options, it seems like it would be simple to generate a single manifest for deployment, which could be used directly from GitHub as akubectl apply -f <manifest url> and would make installation and adoption much simpler.

Update the Provisioned Autonomous Database

OSOK know the OCID of the ADB provisioned by OSOK. But the k8s ADB resource have the ocid as status.status.ocid, not spec.id. And so when updating a parameter of the ADB resource, a update is not occurred.
I want to update an ADB provisioned by OSOK without adding spec.id manually.

How to remove catalog source

I was following the installation guide for OCI Service Operator for Kubernetes (OSOK) from the following this link:
https://github.com/oracle/oci-service-operator/blob/main/docs/installation.md

I have successfully installed the operator-sdk and OLM.
However, when I wanted to deploy OSOK, I missed the step of pulling the docker image.
So, I straight away ran this command:
operator-sdk run bundle iad.ocir.io/oracle/oci-service-operator-bundle:1.0.0

according to the installation guide, I should've pull the docker image first
$ docker pull iad.ocir.io/oracle/oci-service-operator-bundle:1.0.0

so, it gave me an error like this:

INFO[0028] Successfully created registry pod: iad-ocir-io-oracle-oci-service-operator-bundle-1-0-0 
INFO[0028] Created CatalogSource: oci-service-operator-catalog 
INFO[0029] OperatorGroup "operator-sdk-og" created    
INFO[0029] Created Subscription: oci-service-operator-v1-0-0-sub 
FATA[0124] Failed to run bundle: install plan is not available for the subscription oci-service-operator-v1-0-0-sub: timed out waiting for the condition

I noticed that it created a pod called "iad-ocir-io-oracle-oci-service-operator-bundle-1-0-0" so I deleted the pod
kubectl delete pod iad-ocir-io-oracle-oci-service-operator-bundle-1-0-0

And it gave me this message
pod "iad-ocir-io-oracle-oci-service-operator-bundle-1-0-0" deleted

Then when I ran the command
operator-sdk run bundle iad.ocir.io/oracle/oci-service-operator-bundle:1.0.0

It returned with the following error message

FATA[0004] Failed to run bundle: create catalog: error creating catalog source: catalogsources.operators.coreos.com "oci-service-operator-catalog" already exists

How can I remove that catalog completely so I can execute the operator-sdk run bundle command again?
Environment

Kubernetes cluster type:

Kubernetes on Oracle Cloud Infrastructure

$ operator-sdk version

operator-sdk version: "v1.13.0", commit: "6e84414b468029c5c3e07352cabe64cf3a682111", kubernetes version: "1.21", go version: "go1.16.8", GOOS: "linux", GOARCH: "amd64"

$ kubectl version

Server Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.8", GitCommit:"50317190d44dbdb51ae7ff430917b32ba96188b5", GitTreeState:"clean", BuildDate:"2021-06-30T14:20:31Z", GoVersion:"go1.15.13 BoringCrypto", Compiler:"gc", Platform:"linux/amd64"}
WARNING: version difference between client (1.22) and server (1.20) exceeds the supported minor version skew of +/-1

CR Deletion is reported as an error

Hello there!

Do we have to report CR deletion as an error? I created a stream object and deleted it but operator reported not found as an error.

2022-05-12T22:52:23.152Z    DEBUG    controllers.Streams     {  Message: Fetching the resource from server , name: osok-stream , namespace: oci-operators }                                                      │
│ 2022-05-12T22:52:23.152Z    ERROR    controllers.Streams     {  Message: The resource could be in deleting state. Ignoring , name: osok-stream , namespace: oci-operators }     {"error": "Stream.oci.oracle.com │
│ github.com/go-logr/zapr.(*zapLogger).Error                                                                                                                                                                       │
│     /workspace/vendor/github.com/go-logr/zapr/zapr.go:132                                                                                                                                                        │
│ github.com/oracle/oci-service-operator/pkg/loggerutil.(*OSOKLogger).ErrorLog                                                                                                                                     │
│     /workspace/pkg/loggerutil/logger.go:89                                                                                                                                                                       │
│ github.com/oracle/oci-service-operator/pkg/core.(*BaseReconciler).Reconcile                                                                                                                                      │
│     /workspace/pkg/core/reconciler.go:53                                                                                                                                                                         │
│ github.com/oracle/oci-service-operator/controllers.(*StreamReconciler).Reconcile                                                                                                                                 │
│     /workspace/controllers/stream_controller.go:37                                                                                                                                                               │
│ sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler                                                                                                                            │
│     /workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:263                                                                                                                   │
│ sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem                                                                                                                         │
│     /workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:235                                                                                                                   │
│ sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func1.1                                                                                                                               │
│     /workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:198                                                                                                                   │
│ k8s.io/apimachinery/pkg/util/wait.JitterUntilWithContext.func1                                                                                                                                                   │
│     /workspace/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:185                                                                                                                                              │
│ k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1                                                                                                                                                             │
│     /workspace/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:155                                                                                                                                              │
│ k8s.io/apimachinery/pkg/util/wait.BackoffUntil                                                                                                                                                                   │
│     /workspace/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:156                                                                                                                                              │
│ k8s.io/apimachinery/pkg/util/wait.JitterUntil                                                                                                                                                                    │
│     /workspace/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133                                                                                                                                              │
│ k8s.io/apimachinery/pkg/util/wait.JitterUntilWithContext                                                                                                                                                         │
│     /workspace/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:185                                                                                                                                              │
│ k8s.io/apimachinery/pkg/util/wait.UntilWithContext                                                                                                                                                               │
│     /workspace/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:99

Perhaps this should be informational

install the bundle ends up in a failure

Install the bundle ends up in a failure
operator-sdk run bundle iad.ocir.io/oracle/oci-service-operator-bundle:1.1.1 -n oci-service-operator-system

The pod ends in CrashLoopBackOff
Look into the pod there's a permission problem:
2022-07-10T19:37:05.808Z | mkdir: can't create directory '/database': Permission denied

Do you know what might causes this?

How to delete instance from OCI ?

Running

kubectl delete MySqlDbSystem mysqlsapub
mysqldbsystem.oci.oracle.com "mysqlsapub" deleted 

does not delete instance from OCI side ...

Dependency on OLM & Operator SDK

Hello! Thank you for this writing & maintaining this operator.

Could we as a user of the operator bypass dependency on Operator-SDK & OLM? These tools are great and allow us to install/deploy our operator easily. However, as an end user I would like to use either

  • Helm
  • Kustomize
  • Kubectl
    to deploy the operator. Installing OLM which in turn installs additional CRDs/Service accounts etc is just exposing my cluster to a big threat radius. Plus it also puts onus on me to manage/maintain OLM which at present, we do not want to uptake.

Looking at the docs, I should have been able to use kustomize ( makefile ) & in fact I did try to install the operator using Kustomize bypassing the above as shown below

> make install # CRDs installed

> make deploy IMG=iad.ocir.io/oracle/oci-service-operator-bundle:1.1.0

However, I see this issues:

# Error when make deploy 
unable to recognize "STDIN": no matches for kind "Certificate" in version "cert-manager.io/v1"
unable to recognize "STDIN": no matches for kind "Issuer" in version "cert-manager.io/v1"
make: *** [deploy] Error 1

Assuming there is some dependency on some sort of certmanager but I cannot find that in Makefile. Trying to debug this further

Also, when deploying via OLM, the operator gets deployed in default namespace but when using kustomize, it creates a namespace oci-service-operator-system. Perhaps OLM should also default to this behavior.

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.